We consider following
SKOS property definitions which were not expressible in OWL1:
- S55: The property chain (skosxl:prefLabel, skosxl:literalForm) is a sub-property of skos:prefLabel.
- S56: The property chain (skosxl:altLabel, skosxl:literalForm) is a sub-property of skos:altLabel.
- S57: The property chain (skosxl:hiddenLabel, skosxl:literalForm) is a sub-property of skos:hiddenLabel.
OWL2
One of the new and exciting features of OWL2 is the facility that a property can be defined as the composition of several properties; called a
property chain.
The traditional example here is that the property :hasUncle is a composition of the properties :hasParent and :hasBrother.
You will find an elaborate explanation of this example at the
Semantic Web Programming site.
More formally we have the following axiom:
SubObjectPropertyOf( ObjectPropertyChain( OPE1 ... OPEn ) OPE ).
This axiom states that, if an individual x is connected with an individual y by a sequence of object property expressions OPE1, ..., OPEn ,
then x is also connected with y by the object property expression OPE.
Such axioms are also known as complex role inclusions [SROIQ].
Now let's move to SKOS where:
- skosxl:prefLabel is an Object property.
- skosxl:literalForm is a Data property.
- skos:prefLabel is an Annotation property.
This mixture of property types is, as far as I understand OWL2,
not allowed in property chain axioms.
But let's try anyhow.
skos:prefLabel rdf:type owl:AnnotationProperty.
xl:prefLabel rdf:type owl:ObjectProperty.
xl:literalForm rdf:type owl:DatatypeProperty.
skos:prefLabel owl:propertyChainAxiom (
xl:prefLabel
xl:literalForm
).
Pellet 2.1.0 throws as expected a warning:
WARNING: Unsupported axiom: Bnode in owl:propertyChainAxiom axiom is not a valid
property expression.
Conclusion: this type of property chaining cannot be done in OWL2.
SPIN
In
SPIN once again implementing this constraint is fairly easy.
Adding following SPARQL CONSTRUCT as a spin:rule to e.g. the skos:Concept class does the work.
CONSTRUCT {
?this skos:prefLabel ?label .
}
WHERE {
?this xl:prefLabel ?prefLabel .
?prefLabel xl:literalForm ?label .
}The result as shown in TopBraid Composer:
Conclusion
SPIN wins again.
Comments