2016-06-21 3 views
0

В онтологии OWL, с учетом класса Student; Я хочу, чтобы определить другой класс StudentsPair, который является любой парой студентов, таким образом, автоматически вычисляет все возможные двойные комбинации Student, т.е.Определение класса физических лиц как совокупности лиц другого класса

Student(x) and Student (y) --> StudentsPair(x,y) 

Я хочу StudentsPair как класс, а не собственность, потому что он может иметь дополнительные функции (например, averagePerformanceForPair и т. д.).

Например,

Предпосылка

Student(John) 
Student(Alex) 
Student(Mary) 
----------------- 

Заключение

StudentPair((John, Alex)) 
StudentPair((John, Mary)) 
StudentPair((Alex, Mary)) 

рассуждающий должен каким-то образом создать эти новых людей! Это возможно?

+0

Во-первых, это, вероятно, проще попытаться создать девять пар (3 × 3), так как вероятно, нет отличного способа ограничить порядок, и может быть трудно предотвратить самопар. Но, как говорит AKSW, легко добраться до точки, где вы можете связать каждого ученика с каждым другим учеником, но может быть невозможно привести примеры существования другого класса. –

ответ

1

Вам нужна дополнительная роль student, то вы можете использовать Описание Правила логики, что-то подобное может работать:

Student ≡ ∃student.Self 
student ◦ U ◦ student ⊑ StudentPair 
+0

Что такое 'U' во второй строке вашего кода, и вы намеревались« StudentPair »как свойство? Потому что я хочу, чтобы это класс, как я заявляю в своем вопросе. –

+0

Это не может быть класс, который является унарным отношением, если у вас есть двоичное отношение. И 'U' будет универсальной ролью. Вы должны знать, что OWL не имеет переменных, поэтому вам обычно приходится использовать правила. Но для вашего случая я не уверен, как рассудитель должен создавать пары экземпляров, которые сами являются экземплярами класса. Это звучит как логика высшего порядка, а не логика первого порядка. Но я не уверен, и, возможно, кто-то еще может вам помочь. – AKSW

+0

Используемая здесь конструкция известна как ротация, и она обсуждалась по ряду других вопросов, включая [OWL 2 rolification] (http://stackoverflow.com/questions/16989042/owl-2-rolification). –

Смежные вопросы