Извлечение суперклассов, подразумеваемых классами пересечения OWL
Онтология OWL может иметь классы A, B и C и аксиому (в нотации DL): A ⊑
(B ⊓ C)
или в приблизительном синтаксисе Манчестерской СОВ: A
subClassOf (Ва также C)
Логически верно, что A является подклассом B, и что A является подклассом C, но утраивает
A rdfs:subClassOf B
A rdfs:subClassOf C
не обязательно присутствуют в сериализации RDF онтологии OWL. Например, рассмотрим эту очень простую онтологию в Protégé и его сериализация RDF в RDF / XML и Turtle:
@prefix : .
@prefix rdfs: .
@prefix owl: .
@prefix xsd: .
@prefix rdf: .
a owl:Ontology .
:B a owl:Class .
:C a owl:Class .
:A a owl:Class ;
rdfs:subClassOf [ a owl:Class ;
owl:intersectionOf ( :B :C )
] .
Сериализация имеет тройку сrdfs:subClassOf
, но объект не:B
или же:C
так что запрос как
:A rdfs:subClassOf ?superclass
победил'вернуть суперклассы:A
, Как я могу написать запрос SPARQL, который будет возвращать эти суперклассы?:A