Web Ontology Language (OWL)

OWL, short for the Web Ontology Language, is an extension of RDF Schema (RDFS) and is based upon DAML-OIL (The markup language made from the DARPA Agent Markup Language and the Ontology Inference Layer). It was created to be an improvement to RDFS in terms of expressiveness, as RDFS was intended to be a simple, easy to understand language without much expressiveness. OWL is based on RDF syntax, which is in turn based on XML syntax, and is currently gaining popularity to be the markup language used for the semantic web.

Because of the better expressibility of OWL, it is more machine-friendly in that its inference capability is superior. Its semantics are well-defined, and since it produces unambiguous results, it is very useful for automated reasoning.

However, one might ask why there is only one language OWL; why is there a one-size-fits-all approach to the task of defining ontologies? Surely for applications where a lot of reasoning is required, it would be better to have a less expressive language? We could use RDFS, but in fact OWL is split into three different languages: OWL-Full, OWL-Lite and OWL-DL, in which DL stands for Description Logic (a very good subset of OWL for reasoning) and Full being the only one of the three that is downwards compatible with RDFS.

On the other hand, the work of Walton (2007) states that "...there is a trade-off between expressibility and efficient reasoning. In general, the more features we have in the language, the more difficult it becomes to reason with the language." As such, although OWL produces good results, it is not so computationally efficient; in particular, the OWL-Full species is so expressively powerful that it has 'undecidable' reasoning: i.e. it has almost no reasoning support at all, as the language is too complex for the machine to reason with it in any practical manner. On the other hand, OWL-DL, the description logic branch of the language, is geared towards efficient reasoning; however, it is therefore limited in its expressiveness, as the efficient reasoning capabilities of the language comes at a price.

Here is some example OWL-Lite code (adapted from Agency and the Semantic Web by Walton (2007), p41):

<owl:Class rdf:ID="PCType" />
<owl:Class rdf:ID="Manufacturer" >
  <rdfs:subClassOf rdf:resource="#PCType" />
</owl:Class>
<rdf:Description rdf:ID="HewlettPackard">
  <rdf:type rdf:resource="#Manufacturer" />
</rdf:Description>

OWL's extension to RDFS vocabulary essentially allows the following things: