Using OWL, the Web Ontology Language
While the RDF and corresponding schema definitions (RDFS) provide a structure for the semantic view of the information assets, there are some limitations with RDFS. RDFS cannot describe the entities in sufficient detail. There is no way to define localized ranges for the entity attributes, and the domain-specific constraints cannot be explicitly expressed. The existence or non-existence of a related entity, along with cardinality constraints (one-to-one, one-to-many, and so on), cannot be represented with RDFS. It is difficult to represent transitive, inverse, and symmetrical relationships. One of the important aspects of real-world entity relationships is logical reasoning and inferences, without explicit mention of the relationship. RDFS cannot provide reasoning support for the related entities.
The Web Ontology Language (OWL) extends and builds on top of RDF/RDFS. OWL is a family of knowledge representation languages for authoring Ontologies.
Actually, OWL is not a real acronym. The language started out as WOL. However, the working group disliked the acronym WOL. Based on conversations within the working group, OWL had just one obvious pronunciation that was easy on the ear, and it opened up great opportunities for a logo—owls are associated with wisdom!
For building intelligent systems that can communicate across domains, there is a need to overcome the limitations of RDFS and equip the machines with access to structured collections of knowledge assets and sets of inference rules that can be used for automated reasoning. OWL provides formal semantics for knowledge representation and attempts to describe the meaning of the entities and their relationships and reasoning precisely.
There are three species of OWL:
- OWL DL: This is used for supporting description logic. This supports maximum expressiveness and logical reasoning capabilities. This is characterized by:
- Well-defined semantics
- Well-understood formal properties for the entities
- The ease of implementation of known reasoning algorithms
- OWL Full: This is based on RDFS-compatible semantics. It complements the predefined RDF and OWL vocabulary. However, with OWL Full, the software cannot completely reason and inference.
- OWL Lite: This is used for expressing taxonomy and simple constraints such as zero-to-one cardinality.
OWL represents entities as classes. For example, let's define an entity of PlayGround with OWL:
<owl:Class rdf:ID="PlayGround">
Now, define FootballGround and state that FootballGround is a type of PlayGround:
<owl:Class rdf:ID="FootballGround">
<rdf:subClassOf rdf:resource="#PlayGround"/>
</owl:Class>
OWL provides several other mechanisms for defining classes:
- equivalentClass: Represents that the two classes (across Ontologies and domains) are synonymous.
- disjointWith: Represents that an instance of a class cannot be an instance of another class. For example, FootballGround and HockyGround are stated as disjointed classes.
- Boolean combinations:
- unionOf: Represents that a class contains things that are from more than one class
- intersectionOf: Represents that a class contains things that are in both one and the other
- complementOf: Represents that a class contains things that are not other things