Я изучаю понятие ограничений OWL с помощью Protege 4 с использованием FaCT ++ и тривиальной онтологии. Предположим, у меня есть отдельный foo
класса Something
:Вывод типа OWL с ограничением
:Something a owl:Class.
:foo a :Something, owl:NamedIndividual.
и другого класса, определенного с ограничением на hasBar
собственности:
:hasBar a owl:ObjectProperty.
:SomethingElse owl:equivalentClass [a owl:Restriction;
owl:onProperty :hasBar;
owl:allValuesFrom :Something].
Если я утверждаю, что:
:x :hasBar :foo.
почему может Из этого я делаю вывод, что x
является SomethingElse
(через то, что foo
является Something
)? Единственный способ, которым я могу заставить его работать, если это range
из hasBar
определяется:
:hasBar a owl:ObjectProperty;
rdfs:range :Something.
Но я хотел бы избежать этого, потому что это ставит ограничение на то, что может быть предметом hasBar
(который вызывает меня дальнейшая проблема).
Спасибо за подробный ответ! Я уже понял, что с помощью 'owl: someValuesFrom' работает лучше в этом случае, но это объясняет, почему.Несмотря на то, что моя интуиция легко принимает вашу интерпретацию на естественном языке, я все же считаю, что в некотором смысле вы можете утверждать, что учитывая все, что вы знаете о мире (а именно, что «Джон» ест «Морковку», которая является «Овощной»), условие для того, чтобы быть в версии 'owl: allValuesFrom'« вегетарианского »ограничения, таким образом, полностью удовлетворено. Но я думаю, что это связано с открытым/закрытым мировым понятием, которое я еще не все еще пробовал. – cjauvin
Да, ограничения очень сложны, но рассудитель помогает вам, как вы видели, чтобы лучше понять семантику OWL. Удачи! – loopasam