owl: ограничение домена свойства на значение свойства

Я изучаю вывод в OWL, в настоящее время ограничение в определении домена:

@prefix : <http://www.test.org/2015/4/ontology#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@base <http://www.test.org/2015/4/ontology> .

<http://www.test.org/2015/4/ontology> rdf:type owl:Ontology .


:Class1 rdf:type owl:Class .

:Prop1 rdf:type owl:DatatypeProperty ;
       rdfs:domain [ rdf:type owl:Class ;
                 owl:intersectionOf ( :Class1
                                      [ rdf:type owl:Restriction ;
                                        owl:onProperty :Prop1 ;
                                        owl:hasValue "class1"
                                      ]
                                    )
               ] .

:Ind1 rdf:type owl:NamedIndividual ;
      :Prop1 "p" .

Я ожидал, что рассуждающий (Пелле) сделает вывод

:Ind1 rdf:type :Class1 

только если есть

:Ind1 :Prop1 "class1"

но, похоже, игнорирует ограничение в определении домена.

Правильно ли определять ограничения в определениях damain? Резонер (Пелле) не запрещает мне этого делать.


person igor.br    schedule 02.04.2015    source источник
comment
кажется, игнорирует ограничение в определении damain. На чем вы это основываете? Говорит ли Пелле, что что-то не так? Вы видите результат, которого не ожидаете? Разве вы не видите ожидаемого результата? Обратите внимание, что Protege по умолчанию не отображает выводы о типах данных, как объясняется в этом ответе; вам нужно изменить настройки Protege для отображения выводов о типах данных.   -  person Joshua Taylor    schedule 03.04.2015
comment
Возможно, я ошибаюсь в понимании доменного ограничения свойства Prop1 :Class1 и :Prop1 value class1. Я так понимаю, что :Prop1 принадлежит домену :Class1, если его значение равно class1. Таким образом, если :Ind1 :Prop1 p, то :Ind1 не должен быть типа :Class1   -  person igor.br    schedule 03.04.2015
comment
Ограничение значения — это еще один вид класса. Например, (hasFavoriteFlavor value vanilla) — это класс лиц, у которых ваниль является значением свойства hasFavoriteFlavor.   -  person Joshua Taylor    schedule 03.04.2015
comment
Когда вы говорите, что доменом prop1 является Class1 и (prop1 value class1), вы говорите, что если что-то имеет какое-либо значение для prop1, то оно является членом Class1 и членом (prop1 value class1), что означает, что он имеет class1 в качестве значения для prop1. Помните, что у отдельных лиц может быть более одного значения свойства, поэтому у вас могут быть x hasName "Abe" и x hasName "Abraham".   -  person Joshua Taylor    schedule 03.04.2015
comment
Резонер вывел именно :Ind1 :Prop1 class1. Хорошо, я понял ваше объяснение. Спасибо. Я искал, как определить условие в определении домена свойства. Это вообще возможно?   -  person igor.br    schedule 04.04.2015
comment
Что вы подразумеваете под условием в домене свойств?   -  person Joshua Taylor    schedule 04.04.2015
comment
Например. Prop1 принадлежит домену :Class1, если его значение равно class1   -  person igor.br    schedule 04.04.2015
comment
Конечно, вы просто используете аксиому подкласса: (Prop1 value class1) SubClassOf Class1 Это говорит о том, что ЕСЛИ индивидуум имеет значение class1 для Prop1, ТО он является членом Class1. Это общая аксиома класса, поскольку в левой части находится сложное выражение класса. Этот ответ показывает, куда их вводить в Protege (поскольку это не очевидно). Как и этот ответ. И этот ответ.   -  person Joshua Taylor    schedule 04.04.2015
comment
Я попробую. Спасибо за помощь.   -  person igor.br    schedule 04.04.2015