OWL = RDF Schema + New Constructs for Expressiveness
OWL is the latest W3C recommendation and the most popular language for creating ontologies today.
While RDF Schema is still valid for simple ontologies, OWL's rich expressiveness makes it the preferred choice for complex ontology development.
owl:Thing - Root of all classes in OWL
URI: http://www.w3.org/2002/07/owl#Thing
owl:Thing → rdfs:Resource → rdfs:Class → owl:Class
OWL creates a new class owl:Class to define classes in OWL documents, which is a subclass of rdfs:Class.
Properties in RDFS are global - once defined, they apply to the entire domain class and all subclasses.
OWL provides mechanisms to localize property constraints to specific classes.
ExpensiveSLR is a subclass of SLR with property owned_by, and only instances of Professional can be values of this property.
At least one value of this property must be of the specified type
ExpensiveSLR can be owned by Professionals OR Amateurs, but at least one owner must be Professional
Property must have this specific value
Every ExpensiveSLR has expensiveOrNot property with value "expensive"
allValuesFrom: All values must be of this type (but property may not appear)
someValuesFrom: At least one value must be of this type (property must appear)
hasValue: At least one value must equal this specific instance
If ExpensiveSLR has owl:cardinality = 1 for owned_by property:
Agent sees: NikonD200 owned by Liyang and Jin
Agent concludes: Liyang and Jin must be the same person!
Explicitly enumerate all members of a class for precise semantics
Descriptive: "ExpensiveSLR is owned by Professionals" - many instances qualify
Enumerative: "ExpensiveSLR consists of exactly these cameras" - more precise semantics
Connects resource to resource
Camera → Photographer SLR → Specifications
Connects resource to literal/typed value
Camera → "Nikon D70" Digital → 10.2 (MegaPixel)
Both owl:ObjectProperty and owl:DatatypeProperty are subclasses of rdf:Property
friend_with - if Liyang is friend_with Jin, then Jin is friend_with LiyangbetterQualityPriceRatiomodel - each camera has exactly one model nameIf property P connects R1 to R2, then inverse property P⁻¹ connects R2 to R1
For a given range value, the domain value must be unique
Example: If own is InverseFunctional and both LiyangJin and JinLiyang own NikonD70, then agent concludes: LiyangJin = JinLiyang (same person!)
Multiple ontologies may describe the same domain using different terms and structures. How do we connect them?
Any instance described as Digital in our ontology is also understood as DigitalCamera in another ontology - enabling seamless data integration!
Reuse URIs whenever possible! If you know a resource has already been described with a specific URI and you agree with its semantics, use that URI instead of creating your own.
This is how information connects across the distributed web!
More expressiveness → More powerful ontologies
BUT also → More complex reasoning (sometimes computationally impossible!)
Everything available - All OWL + RDF + RDFS constructs
✓ Maximum expressiveness
✗ No guarantees on computational completeness/efficiency
Restricted subset - Constraints on how constructs can be combined
✓ Complete & decidable reasoning
✓ Maximum expressiveness while maintaining computational properties
✗ Some restrictions (e.g., class cannot be instance of another class)
Further restricted - Simplest subset
✓ Easiest to implement reasoners
✓ Quick response from reasoning engines
✗ Limited expressiveness (e.g., cardinality only 0 or 1)
Cannot use:
Cardinality values restricted to 0 or 1 only
Camera
├── Film
└── Digital
├── SLR
│ └── ExpensiveSLR
└── PointAndShoot
Our camera ontology is OWL Full because it uses owl:hasValue and functional properties on DatatypeProperty
ExpensiveSLR is a special type of SLR → which is Digital → which is Camera
Professional is a Photographer → which is a Person
Digital class = DigitalCamera in another ontology
SLR class = SingleLensReflex in another ontology
An SLR instance cannot be a PointAndShoot instance (disjoint)
A Professional cannot be an Amateur (disjoint)
ExpensiveSLR must be owned by at least one Professional (someValuesFrom)
ExpensiveSLR always has expensiveOrNot = "expensive" (hasValue)
Each Specification has exactly one model name (functional property)
Over 100 lines of OWL express rich domain knowledge that enables intelligent agents to perform complex reasoning automatically!
OWL enables us to build ontologies that not only describe domain knowledge but also encode reasoning rules that machines can use to infer new knowledge automatically.
Reuse URIs! The semantic web works because we use common identifiers. When describing resources, use existing URIs when available to enable data integration across the distributed web.