Вопрос

Я новичок в онтологиях, и у меня есть основной вопрос о рассуждениях OWL.Вопрос может показаться многословным, извините за это..

Рассмотрим онтологию со следующими аксиомами (OWL: класс C1) и (OWL: класс P), со свойством объекта (RDFS: Domain наблюдает C1) (RDFS: диапазон наблюдает P), вместе с индивидуумом (RDF: тип P P P P P )

Затем я ограничиваю класс C1, создавая класс C2 (rdfs:subClassOf C2 C1) с ограничением (соблюдает C2 p)

Теперь, когда я затем создаю нового человека (rdf:type x owl:Thing) (наблюдает x p), тогда рассуждающий делает вывод, что (rdf:type x C1).Однако определение отдельного x кажется более близким к C2, так что не должен ли исследователь сделать вывод, что x имеет тип C2?

Пожалуйста помоги!

Я экспериментирую с использованием фреймворка Jena.

Это было полезно?

Решение

Причина, по которой этого не происходит, заключается в том, что вы создали ограничение, используя подкласс, а это означает, что вы создали необходимое (но недостаточное) условие.Другими словами, вы сказали рассуждающему следующее:

«ЕСЛИ человек относится к типу С2, ТО он должен обладать свойством «наблюдает»»

Но у тебя есть нет сказал наоборот:

«ЕСЛИ человек обладает свойством «наблюдает», ТО оно должно быть типа С2»

Чтобы рассуждающий мог сделать вывод, что ваш индивидуум относится к типу C2, у вас также должно быть второе правило (достаточное условие).Вы можете сделать это в OWL, используя owl:equivalentClass отношение к вашему ограничению (вместо rdfs:subClassOf связь).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top