Styrheim

Taxonomies in OWL

The simplest ontology I can think of, is the taxonomy: A hierarchic structure of classes and subclasses (without multiple inheritance). E.g. the taxonomy of the Germanic languages (based on Hugin & Munin and Wikipedia):

Taxonomy in HTML (UL-element)

Taxonomy in XML

languages.xml is the same taxonomy, this time represented in plain (non-ontologic) XML. I find that format quite intuitive, too.

Taxonomy in OWL

When I try to express this taxonomy in OWL, the result is languages.owl.xml, where the structure is not visible in the typography of the code.

Maybe we just have to learn to live with the fact that RDF/OWL is more like relational database 3-tuples, than like XML. But I'd really like to have taxonomies look more intuitive.

If we could use hasSubClass rather than subClassOf, the code would look better to the human eye. But that would leave us with two properties that express the same relation. Maybe that would not be a problem, as OWL allows two properties to be declared as inverseOf each other.

Dropping subClassOf in favour of hasSubClass would be a really bad idea. The semantic web is distributed, we need to allow each object to declare its superclass, Swedish is a Continental North Germanic language..

We can't live with a requirement that all Continental North Germanic languages are declared in one place, like The Continental North Germanic languages are Nynorsk, Swedish, Danish and Bokmål.

The OWL form is a tree turned inside-out. Maybe it is possible to write XSLT to display the tree outside-in again. I'll look into that later, unless someone else does it first.