Определение индивидов класса как комбинации индивидов другого класса

В онтологии 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))

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


person Median Hilal    schedule 21.06.2016    source источник
comment
Сначала, вероятно, было бы проще попытаться создать девять пар (3 × 3), так как, вероятно, нет хорошего способа ограничить порядок, и может быть трудно предотвратить самопары. Но, как говорит AKSW, легко добраться до точки, когда вы можете связать каждого ученика с каждым другим учеником, но может быть невозможно создать экземпляры другого класса.   -  person Joshua Taylor    schedule 23.06.2016


Ответы (1)


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

Student ≡ ∃student.Self
student ◦ U ◦ student ⊑ StudentPair
person UninformedUser    schedule 21.06.2016
comment
Что такое U во второй строке вашего кода, и вы предполагали StudentPair в качестве свойства? Потому что я хочу, чтобы это был класс, как я утверждаю в своем вопросе. - person Median Hilal; 21.06.2016
comment
Это не может быть класс, являющийся унарным отношением, если у вас есть бинарное отношение. И U будет универсальной ролью. Вы должны знать, что в OWL нет переменных, поэтому вам обычно приходится использовать правила. Но в вашем случае я не уверен, как аргументатор должен создавать пары экземпляров, которые сами являются экземплярами класса. Это звучит как логика высшего порядка, а не логика первого порядка. Но я не уверен, и, возможно, кто-то еще может вам помочь. - person UninformedUser; 22.06.2016
comment
Используемая здесь конструкция известна как ролификация и обсуждалась в ряде других вопросов, включая роляцию OWL 2. - person Joshua Taylor; 23.06.2016