Meaning that according to the SKOS spec the following data are not allowed:S13 skos:prefLabel, skos:altLabel and skos:hiddenLabel are pairwise disjoint properties.
<skos:Concept rdf:ID="Concept_1">
<skos:altLabel xml:lang="en">test</skos:altLabel>
<skos:prefLabel xml:lang="en">test</skos:prefLabel>
<rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
>Concept_1</rdfs:label>
</skos:Concept>
We investigate if and how this constraint can be implemented using following technologies:
ASKand translated to a spin:constraint on e.g. the Class skos:Concept
WHERE {
OPTIONAL {?subject skos:prefLabel ?pref.}
OPTIONAL {?subject skos:altLabel ?alt.}
OPTIONAL {?subject skos:hiddenLabel ?hidden.}
FILTER (?pref = ?alt || ?alt = ?hidden || ?pref = ?hidden)}
ASK WHERE {
OPTIONAL {
?this skos:prefLabel ?pref .
} .
OPTIONAL {
?this skos:altLabel ?alt .
} .
OPTIONAL {
?this skos:hiddenLabel ?hidden .
} .
FILTER (((?pref = ?alt) || (?alt = ?hidden)) || (?pref = ?hidden)) .
}The result of the SPIN constraint checking in Topbraid Composer:DisjointObjectProperties := 'DisjointObjectProperties' '(' axiomAnnotations ObjectPropertyExpression ObjectPropertyExpression { ObjectPropertyExpression } ')'
DisjointDataProperties := 'DisjointDataProperties' '(' axiomAnnotations DataPropertyExpression DataPropertyExpression { DataPropertyExpression } ')'I do not find anything in the OWL 2 spec about being able to say that annotation properties are disjoint.<owl:AnnotationProperty rdf:about="http://www.w3.org/2004/02/skos/core#altLabel">together with these data
<owl:propertyDisjointWith rdf:resource="http://www.w3.org/2004/02/skos/core#prefLabel"/>
<rdfs:comment xml:lang="en">skos:prefLabel, skos:altLabel and
skos:hiddenLabel are pairwise disjoint properties.</rdfs:comment>
<rdfs:label xml:lang="en">alternative label</rdfs:label>
<skos:definition xml:lang="en">An alternative lexical label for a resource.</skos:definition>
<rdfs:isDefinedBy rdf:resource="http://www.w3.org/2004/02/skos/core"/>
<rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
<skos:example xml:lang="en">Acronyms, abbreviations, spelling
variants, and irregular plural/singular forms may be included among the
alternative labels for a concept. Mis-spelled terms are normally
included as hidden labels (see skos:hiddenLabel).</skos:example>
</owl:AnnotationProperty>
<skos:Concept rdf:about="http://ec.europa.eu/esco/S13#Concept_1">
<skos:prefLabel xml:lang="en">aaa</skos:prefLabel>
<skos:altLabel xml:lang="en">aaa</skos:altLabel>
<skos:hiddenLabel xml:lang="en">aaaaa</skos:hiddenLabel>
<rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
>Concept_1</rdfs:label>
</skos:Concept>
Changing the skos:altlabel to 'aaaa' gives:Consistent: No
Reason: null
UPDATE: The same results with version Pellet 2.1.0.Consistent: Yes
It all went pear-shaped: c
skos:altLabel a owl:AnnotationProperty .Running then following data through pellet icv 0.4 using the constraints file above:
skos:hiddenLabel a owl:AnnotationProperty .
skos:prefLabel a owl:AnnotationProperty .
[] a owl:AllDisjointProperties ;
owl:members (skos:prefLabel skos:altLabel skos:hiddenLabel) .
[] a owl:Ontology ;gives indeed a constraint violation:
owl:imports <http://www.w3.org/TR/skos-reference/skos.rdf> .
<Test_1> a test:Thing.
<Test_1> skos:prefLabel "test"@en; skos:altLabel "test"@en; skos:hiddenLabel "test"@en .
Validating 3 integrity constraints
Will stop after 1 constraint violation(s) are found
Validating constraint: disjointProperties prefLabel altLabel hiddenLabelConstraint violated : Yes
Violating individuals (1): Test_1,
Number of constraint(s) violated: 1
However, if I leave out from my data the statements
[] a owl:Ontology ;
owl:imports <http://www.w3.org/TR/skos-reference/skos.rdf> .
and /or
<Test_1> a test:Thing.
I get:
Validating constraint: disjointProperties prefLabel altLabel hiddenLabel
Constraint violated : No
Validating constraint: disjointProperties prefLabel altLabel hiddenLabel
Constraint violated : No
Validating constraint: disjointProperties prefLabel altLabel hiddenLabel
Constraint violated : No
Number of constraint(s) violated: 0
Which leaves me completely puzzled.
Comments
Rinke Hoekstra (unauthenticated)
Mar 25, 2010
The disjointness of data, object and annotation-properties is indeed required by the OWL 2 spec, as we set ourselves the goal to come up with a good use case for every type of 'punning'. For some reason, we did not find property-punning use-cases (though I can certainly think of several now), but it was probably late in the F2F. However, there is no technical reason that requires properties to be excluded from the punning capabilities of a reasoner. That's why Pellet 2 is able to raise the inconsistency.