Смысл OWL не работает для "min" кардинальности (но работает для "some") - PullRequest
0 голосов
/ 03 декабря 2018

Я создаю простую онтологию в Protege, есть проблема с рассуждениями о кардинальности.Ниже представлена ​​игрушечная модель онтологии.Есть три экземпляра A, B и C, каждый из которых имеет свойство 1, 2 и 3 hasOwner соответственно.Есть также три :Onwer экземпляра X, Y и Z.

Есть два класса, определенных с owl:equivalentClass, один :Project с owl:someValuesFrom :Owner,другой - :JV один с owl:minQualifiedCardinality "2" ; owl:onClass :Owner.

Теперь мыслитель правильно классифицирует :JV как подкласс :Project;и он выводит все три экземпляра A, B и C как экземпляры :Project, но ни один как :JV.Принимая во внимание, что технически, рассудитель должен поместить все три в качестве экземпляров :Project, а B и C в качестве экземпляров :JV (поскольку они имеют 2 и 3 утвержденных свойства :hasOwner.

Может кто-нибудь сказать мне, что мне не хватает, возможно? Это, похоже, не проблема предположения об открытом мире, так как мы имеем дело с минимальным количеством элементов.

:Owner rdf:type owl:Class .
:hasOwner rdf:type owl:ObjectProperty .
:Project rdf:type owl:Class ;
    owl:equivalentClass [ rdf:type owl:Restriction ;
                          owl:onProperty :hasOwner ;
                          owl:someValuesFrom :Owner
                        ] .
:JV rdf:type owl:Class ;
     owl:equivalentClass [ rdf:type owl:Restriction ;
                           owl:onProperty :hasOwner ;
                           owl:minQualifiedCardinality "2"^^xsd:nonNegativeInteger ;
                           owl:onClass :Owner
                         ] .
:A rdf:type owl:NamedIndividual ;
   :hasOwner :X .
:B rdf:type owl:NamedIndividual ;
   :hasOwner :X ,
             :Y .
:C rdf:type owl:NamedIndividual ;
   :hasOwner :X ,
             :Y ,
             :Z .
:X rdf:type owl:NamedIndividual , :Owner .
:Y rdf:type owl:NamedIndividual , :Owner .
:Z rdf:type owl:NamedIndividual , :Owner .
...