organising information
this page is an attempt to organise the ways in which information
can be organised.
hierarchical
examples
organising pets
example:
suppose we want to organize our pets in a hierarchical structure,
noting their species, sex and color. we might do this as follows:
- mammal/cat/female/red
- mammal/dog/male/black
- fish/pirana/male/red
- bird/parrot/male/green
- bird/crow/female/
there is only one really hierarchical part here : type of animal/species
the sex and color are independent properties of it's species.
you might as well organise them as:
- female/mammal/cat/red
- male/mammal/dog/black
- male/fish/pirana/red
- male/bird/parrot/green
- female/bird/crow/
also for crows the color is a less important feature, since they are all black.
organising project files
another example:
each project has certain groups of files associated with it:
- documentation
- source
- test
each project have several versions, releases, demo versions etc.
each project is being worked on by several people, it is payed for by
a certain customer.
how would you encode all this information in a hierarchical system?
organising downloaded files
files downloaded might be organised by:
- operating system
- type of application
- vendor
organising security problems
- by operating system [windows, unix, ...]
- by subsystem attacked [mail, news, networklayer, configurationmgt, ...]
- by osi-layer
- by type of attack [trojan, buffer-overflow, social-engineering]
- by resulting problem [rootaccess, DOS, ...]
animal species
kingdom-phylum-class-order-family-genus_species-subspecies
- kingdom {plant, animals, fungi, ...}
- phylum
- class {birds, fish, reptiles, mammals, ... }
- order {rodents, carnivores, marsuials, eventoed, ...}
- family {doglikes, catlikes, bears, ...}
actually, reading some biology paper, its more complicated:
f.i. the platypus is classified as follows:
- Kingdom Animalia
- Subkingdom Eumetazoa
- Phylum Chordata
- Subphylum Vertebrata
- Superclass Gnathostomata
- Class Mammalia
- Subclass Theria
- Infraclass Ornithodelphia
- Order Carnivora
- Family Canida
- species: dogs, wolves, ...
telephone numbers
you want to organise your telephone book:
people have a place where they live, but some may live at more than one address [fi, girlfriend, studenthome, parents, ...]
people can have many types of phonenumbers, mobile, fax, work, home, bar, ...
people often share work, or home phones with other people.
some people move around a lot, their location data may get out of date quickly.
so you provide a link to a friend or parent who often knows where this person
is.
you may also want to store a history of whereabouts of a person, in order to
facilitate locating them if they moved.
then you may want to store birthdays, mariagedays, ....
to be really general the datastructure should support dataitems/facts,
which have relations to other dataitmes, each relation has a validity period.
facts and relations have types, can inherit from others.
these types prescribe what properties and relations(for facts) and facts(for relations) should, or can be related to.
problems
- independent attributes
- how to order attributes
- you might want to locate the information in
more than one way
- not all parts of the hierarchy have to be structured identically.
relational
dimensional
taxonomy
from [3]:
properties a taxonomy should have:
- mutually exclusive
- exhaustive
- unambiguous
- repeatable
- accepted
- useful
terminology
- category
- classification
- taxonomy
- systematics
links