Submitted by Benjamin Doherty on Sat, 04/07/2012 - 8:36am

I wrote a significant part of Taxonomy module in D7 (the taxonomy term reference field) and am named in the MAINTAINERS.TXT for this work.

Taxonomy.module is a strange beast, because there are easy ways to accomplish what it does for most users without ever touching taxonomy.module's functionality. Likewise, if Taxonomy.module ever became a more advanced and powerful tool for building controlled vocabularies and actual scientific taxonomies, the "Drupal core" use case is marginalized.

The way I use taxonomy module is this: my content (nodes) are original to my site, but the terms that describe it (taxonomy terms) are concepts that are part of universal, cultural and scientific truths that exist independently of the content on my site. For these concepts, I only need a name to represent those concepts. Taxonomy.module is a place where relationships of meaning are played out against the content of my site.

Taxonomy.module is basically three unique things:

1. An inflexible hierarchical relationship.

2. Free-tagging or the automatic creation of entities by name.

3. A UI for managing controlled vocabularies and their hierarchies.

The data and UI of taxonomy.module's hierarchical relationship has not kept up with the rest of Drupal. This is a lot more complicated than simply indicating that a term has a parent. It's also a method of querying data hierarchically: show me content whose nature is like X, where X is also things that encapsulate a thousand other concepts.

The UI for managing vocabularies is barely suitable for hierarchical, controlled vocabularies. How useful is Taxonomy.module's vocabulary admin UI for a tagging vocabulary with 1 million terms? Not at all.

The tagging field could be better, but it's probably the least problematic of all.

Meanwhile, there are a few things Taxonomy.module needs to be but isn't:

1. Terms need to link against concepts externally and universally not just internally. We have no way to associate the "Drupal" tag on my site to Drupal tags on other sites or to larger concepts of "CMS" and "web development."

2. The hierarchical relationship needs to be re-imagined merely as a transitive relationship. Terms need to be able to have lots of these not just one.

3. Terms should always be unique. The same term should be able to appear in many vocabularies.

4. Data sources like dbpedia should be usable as field data sources for taxonomy terms. I shouldn't have to create new terms ever unless I've invented something truly new.

The content of this field is kept private and will not be shown publicly.

Plain text

  • Lines and paragraphs break automatically.
  • Web page addresses and email addresses turn into links automatically.