In an OWL ontology, given a class Student
; I want to define another class StudentsPair
, which is any pair of students, in such a way that automatically computes all the possible dual combinations of Student
, i.e.
Student(x) and Student (y) --> StudentsPair(x,y)
I want StudentsPair
as a class, not a property, because it may have additional features (such as averagePerformanceForPair
, etc.).
For example,
Premise
Student(John)
Student(Alex)
Student(Mary)
-----------------
Conclusion
StudentPair((John, Alex))
StudentPair((John, Mary))
StudentPair((Alex, Mary))
The reasoner has to somehow create these new individuals! Is this possible?