The Web Ontology Language (OWL) is designed to be used when the document content needs to be processed by applications rather than making it understandable for humans.
It can be used to represent Ontologies, including:
- vocabulary and the relationships between them.
- definitions of concepts and their relations.
It also provides more facilities that RDF and RDFS, including:
- the way in which semantics can be represented.
- performance of reasoning tasks.
There are three sublanguages of OWL:
- OWL Lite: trades expressivity for efficiency.
- Supports encoding simple classification hierarchy (e.g. taxonomy and thesaurus) and assigning cardinality constraints.
- OWL DL: a balance between expressivity and computational completeness.
- More expressive than OWL Lite but still guarantees conclusions and decidability.
- Uses all OWL constructs (although some of them have restrictions).
- OWL Full: trade computational completeness for expressivity.
- An extension of RDF with maximum expressiveness.
- Users are allowed to use a subset of the OWL, RDF, and RDFS vocabulary.
- To define a class, one must use the OWL construct owl:Class.
- OWL constructs (namely complementOf, disjointWith, hasValue, oneOf, and unionOf) are not allowed.
- Some OWL constructs are allowed but their use is limited.
- All three cardinality constructs (cardinality, minCardinality, and maxCardinality) can only use 0 or 1 values.
- The constructs equivalentClass and intersectionOf cannot be used in a triple if the subject or object represents and anonymous class.
- Each individual must be an extension of a class.
- Even if an individual cannot be classified under any defined class, it must be classified under the general owl:Thing class.
- Individuals cannot be used as properties, and vice versa.
- The computational complexity is the same as the corresponding Description Logic.
- Given that a property P is inverse of another property Q (P owl:inverseOf Q) and two individuals x and y are connected with x P y, then we can infer that y Q x.
- For example, the property hasChild can be an inverse property of hasParent.
- Given that a property P is symmetric (P rdf:type owl:symmetricProperty) and two individuals x and y are connected with x P y, then we can infer that y P x.
- For example, the property isMarriedTo is symmetric.
- x owl:equivalentProperty y
- For example, the toBuy and toPurhase properties can be equivalent.
- A functional property can have only one value attached for any individual.
- Given that a property P is functional (P rdf:type owl:FunctionalProperty) and the individuals x, y, and z are connected with x P y and x P z. We can then infer that y owl:sameAs z.
- For example, the property hasMother is functional.
Inverse Functional Property
- An inverse functional property can only have one individual as a subject attached to it for any value.
- Given that a property P is inverse functional (P rdf:type owl:InverseFunctionalProperty) and the individuals x, y, and z are connected with x P y and z P y, then we can infer that x owl:sameAs z.
- For example, the property motherOf is inverse functional.