Taxonomy
At first glance, it might seem that taxonomy is yet another term indicating that
your job is going to be more complex for some reason or other. After all, it's
perfectly reasonable to set up a website to allow blog writers to blog, forum
posters to post, administrators to administer, or any other type of content
producer to produce content and leave it at that. With what we have covered so
far, this is all quite possible, so why does Drupal insist on adding the burden
of learning about new concepts and terms?
|
|
This excerpt from Chapter No. 7 "Advance content" of
Building Powerful and Robust Websites with Drupal 6 by
David Mercer, Matt Butcher, is printed with permission from
Packt Publishing, Copyright 2007.
If your site is never going to gather a substantial amount of content (perhaps
it is only meant as a more static, placeholder type of site), then spending
time working with taxonomies and so on is probably not going to bring much
advantage—go ahead and enable whatever content types you require and let users
add whatever they want.
However, the aim is not generally to remain in obscurity when creating a
website, so assuming that you do want to attract a community of users, then the
method of categorizing content in Drupal makes it one of the most sophisticated
content management systems around!
Take the time to master working with taxonomy in Drupal, because not only will
this help you to work out how to manage content better, but it will also really
set your site apart from others because of the flexible and intuitive manner in
which the content is organized. These attributes allow you to manage a site of
pretty much any size imaginable (just in case what you are working on is "the
next big thing").
|
What and Why?
Taxonomy is described as the science of classification. In terms of how it
applies to Drupal, it is the method by which content is organized using several
distinct types of relationship between terms. Simple as that! This doesn't
really encompass how useful it is, though, but before we move on to that, there
is a bit of terminology that to pick up first:
-
Term: A term used to describe content (also known as a descriptor)
-
Vocabulary: A grouping of related terms
-
Thesaurus: A categorization of content, which describes is similar to
relationships
-
Taxonomy: A categorization of content into a hierarchical structure
-
Tagging: The process of associating a term (descriptor) with content
-
Synonym: Can be thought of as another word for the current term. It may help to
view the following diagram in order to properly grasp how these terms
inter-relate:
This serves to illustrate the fact that there are two main types of vocabulary.
Each type consists of a set of terms, but the relationship between them are
different in that a taxonomy deals with a hierarchy of information, and a
thesaurus deals with relationships between terms. The terms (shown as small
boxes) and their relationships (shown as arrows) play a critical role in which
type of vocabulary you use.
We have already seen an example of a taxonomy when the Forum module was
discussed. In this case, there was a hierarchical relationship between forum
containers and the forum topics they contained. But what would we need thesauri
for? For one thing, if you were working on creating a scientific document and
wanted to allow plenty of references between terms so that users could browse
related pages, which didn't necessarily have child-parent relationships, then
you would go for this type of structure.
What we have discussed so far is how to control a taxonomy from the
administrator's point of view. It is also possible to pass that control on to
everyone who uses the site to by creating a free taxonomy. One of the things
that makes the Drupal taxonomy system so powerful, is that it allows content to
be categorized on the fly (as and when it is created). This unburdens
administrators because it is no longer necessary to moderate every bit of
content coming into the site in order to put it into pre-determined categories.
We'll discuss both methods in some detail in the coming sections, but it's also
worth noting quickly that it is also possible to tag a given node more than
once. This means that content can belong to several vocabularies, at once. This
is very useful for cross-referencing purposes because it highlights
relationships between terms or vocabularies through the actual nodes.
|