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