Reputation: 17
I have some severe issues importing the "Rhizomik" MPEG7 Ontology in all common ontology Editors. Primarily I tend to work with Protege. Import allways leads to several 100 errors. I fixed a few of them. One of the remaining seems to be connected to the following class:
<owl:Class rdf:about="&mpeg7;SpatioTemporalLocatorType">
<rdfs:subClassOf>
<owl:Class>
<owl:intersectionOf rdf:parseType="Collection">
<owl:Restriction>
<owl:onProperty rdf:resource="&mpeg7;CoordRef"/>
<owl:allValuesFrom>
<owl:Class>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="&mpeg7;ref"/>
<owl:allValuesFrom rdf:resource="&xsd;string"/>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="&mpeg7;ref"/>
<owl:minCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:minCardinality>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="&mpeg7;spatialRef"/>
<owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema&mpeg7;boolean"/>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="&mpeg7;spatialRef"/>
<owl:minCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:minCardinality>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
</owl:allValuesFrom>
</owl:Restriction>
<owl:Class>
<owl:unionOf rdf:parseType="Collection">
<owl:Restriction>
<owl:onProperty rdf:resource="&mpeg7;FigureTrajectory"/>
<owl:allValuesFrom rdf:resource="&mpeg7;FigureTrajectoryType"/>
</owl:Restriction>
<owl:Restriction>
<owl:onProperty rdf:resource="&mpeg7;ParameterTrajectory"/>
<owl:allValuesFrom rdf:resource="&mpeg7;ParameterTrajectoryType"/>
</owl:Restriction>
<owl:Restriction>
<owl:onProperty rdf:resource="&mpeg7;MediaTime"/>
<owl:allValuesFrom rdf:resource="&mpeg7;MediaTimeType"/>
</owl:Restriction>
</owl:unionOf>
</owl:Class>
</owl:intersectionOf>
</owl:Class>
</rdfs:subClassOf>
</owl:Class>
Is someone in the position to check this class for any logical error?
Kind regards, Patrick
Upvotes: 1
Views: 791
Reputation: 10684
The problem is in the construction of the axioms. subClassOf
axioms appear embedded in class usage, but the rdfs:subClassOf
token is not allowed in those positions (see https://www.w3.org/TR/owl2-mapping-to-rdf/ for the recognised mappings).
For example, the Error1 URL refers to this axiom:
ObjectPropertyRange(<#Mpeg7> <http://org.semanticweb.owlapi/error#Error1>)
The corresponding XML is:
<owl:ObjectProperty rdf:ID="Mpeg7">
<rdfs:range>
<owl:Class>
<rdfs:subClassOf rdf:resource="&mpeg7;Mpeg7Type"/>
<rdfs:subClassOf>
<owl:Class>
<owl:unionOf rdf:parseType="Collection">
<owl:Restriction>
<owl:onProperty rdf:resource="#DescriptionUnit"/>
<owl:allValuesFrom rdf:resource="&mpeg7;Mpeg7BaseType"/>
</owl:Restriction>
<owl:Restriction>
<owl:onProperty rdf:resource="#Description"/>
<owl:allValuesFrom rdf:resource="&mpeg7;CompleteDescriptionType"/>
</owl:Restriction>
</owl:unionOf>
</owl:Class>
</rdfs:subClassOf>
</owl:Class>
</rdfs:range>
</owl:ObjectProperty>
The intent here is clear, but the anonymous class is intended to be an intersection - it cannot be parsed as such because it is created as nested subclass axioms, which are not valid OWL syntax.
When the above sample is changed to this:
<owl:ObjectProperty rdf:ID="Mpeg7">
<rdfs:range>
<owl:Class>
<owl:intersectionOf rdf:parseType="Collection">
<rdf:Description rdf:about="&mpeg7;Mpeg7Type"/>
<owl:Class>
<owl:unionOf rdf:parseType="Collection">
<owl:Restriction>
<owl:onProperty rdf:resource="#DescriptionUnit"/>
<owl:allValuesFrom rdf:resource="&mpeg7;Mpeg7BaseType"/>
</owl:Restriction>
<owl:Restriction>
<owl:onProperty rdf:resource="#Description"/>
<owl:allValuesFrom rdf:resource="&mpeg7;CompleteDescriptionType"/>
</owl:Restriction>
</owl:unionOf>
</owl:Class>
</owl:intersectionOf>
</owl:Class>
</rdfs:range>
</owl:ObjectProperty>
The parsed axiom becomes
ObjectPropertyRange(<#Mpeg7>
ObjectIntersectionOf(
<http://rhizomik.net/ontologies/2005/03/Mpeg7-2001.owl#Mpeg7Type>
ObjectUnionOf(
ObjectAllValuesFrom(<#Description> <http://rhizomik.net/ontologies/2005/03/Mpeg7-2001.owl#CompleteDescriptionType>)
ObjectAllValuesFrom(<#DescriptionUnit> <http://rhizomik.net/ontologies/2005/03/Mpeg7-2001.owl#Mpeg7BaseType>)
)
)
)
I count about 175 similar problems in the file...
Upvotes: 1