Смысл OWL не работает для "min" кардинальности (но работает для "some")

Я создаю простую онтологию в 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 .

0 ответов

Другие вопросы по тегам