Извлечение суперклассов, подразумеваемых классами пересечения 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

Ответы на вопрос(1)

Ваш ответ на вопрос