Вывод типа OWL с ограничением
Я изучаю понятие ограничений OWL в Protege 4, используя FaCT ++ и тривиальную онтологию. Предположим, у меня есть человекfoo
классаSomething
:
: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
(что вызывает у меня дальнейшие неприятности).