2016-05-10 8 views
2

Предположим, у нас есть два класса с именем People и Disease. Эти классы связаны объектным свойством has.OWL: Как получить наследование отношений собственности между двумя классами из классов суперклассов?

:People :has :Disease 

People имеет подкласс (или индивидуальные) John и Disease имеет подкласс (или индивидуальные) Cancer.

:John a :People 
:Cancer a :Disease 

Как мы можем получить отношения между этими подклассами путем вывода?

:John :has :Cancer 
+0

Вы говорите, что хотите сделать вывод, что у Джона есть Рак, потому что у Иоанна есть люди и люди, имеющие болезни? Это не имеет смысла, поэтому может быть хорошей идеей быть немного понятнее, какие факты у вас есть и что вы хотите сделать. (И уникальные существительные лучше подходят для имен классов - т.е. ': Person' вместо': People'. – scotthenninger

ответ

2

Прежде чем вы сможете получить ответ, существует ряд неправильных представлений, которые вам необходимо решить.

Во-первых, подкласс и индивидуум - очень разные понятия. Отдельные лица (экземпляры) являются членами классов. Подкласс означает, что класс является подмножеством другого класса, что означает, что импликация (посредством вывода) состоит в том, что все члены подкласса являются членами класса (супер). (Только для справки: нет концепции наследования в OWL.)

Свойства второго уровня, такие как :People :has :Disease, не имеют значения для лиц класса. Способ определения отношений свойства к классам заключается в том, чтобы установить домен и диапазон свойства. (Только с помощью :has как имя свойства указывает на широкий набор неправильных представлений, возможно, от других типов языков.) Так что я хотел бы предложить имя :hasDisease и утверждения:

:hasDisease rdfs:domain :People . 
:hasDisease rdfs:range :Disease . 

В-третьих, вы можете утверждать, что :John :hasDisease :Cancer и что Джон заболел, учитывая, что :Cancer является подклассом :Disease. Для этого требуется стандартный аргумент RDFS. Кроме того, с учетом вышеприведенных определений в области и диапазонах и утверждения :Joy :hasDisease :Gout, разумный разработчик RDFS будет заключить, что :Joy a :Person и :Gout a :Disease.

Есть несколько OWL-праймеров, которые вы можете найти через Google. Я бы посоветовал перечислить некоторые из них, чтобы получить общее представление о том, как работают OWL и аналитические профили.

+0

Спасибо за ваше предложение. Я прочитал [этот праймер] (https://www.w3.org/TR/owl2-primer /), и я задаюсь вопросом, правильно ли я понимаю: праймер говорит, технически, отношение подкласса между классами транзитивно. То есть, класс 'person' имеет свойство' hasTwoLegs', то его подкласс 'John' также имеет те же отношения свойств. Однако, если 'Джон' является индивидуумом, то он не имеет свойства' hasTwoLegs'. Почему? не должен ли он иметь свойство, потому что он является ЧЛЕНОМ класса 'person'? и мне интересно, есть ли способ получить этот результат вывода. –

+1

Да, отношение подкласса транзитивно. Но единственным значением для подкласса в RDFS является членство класса. Член подкласса является членом класса. свойства не «наследуются» экземплярами или подклассами. Опять же, свойства связаны с c с помощью доменов и диапазонов с вышеупомянутыми последствиями. Ничего больше. Это сбивает с толку, поскольку оно не использует принципы OO. Подумайте о классе OWL как о наборе, и это может быть лучшим принципом для начала. Кроме того, «индивид» является членом класса (он же «экземпляр»). – scotthenninger