<?xml version="1.0"?>

<!DOCTYPE tp SYSTEM "http://nb.vse.cz/~svabo/patomat/tp/tp.dtd" [      
   <!ENTITY ann "http://nb.vse.cz/~svabo/patomat/PatternAnnotation.owl#" >
]>

<tp name="tp_l-n-ary-relation" xmlns="http://nb.vse.cz/~svabo/patomat/tp/tp-schema.xsd">
  <op1>
    <entity_declarations>      
      <placeholder type="Class">?A</placeholder>
      <placeholder type="Class">?B</placeholder>
      <placeholder type="Class">?C</placeholder>
      <placeholder type="Class">?D</placeholder>
      <placeholder type="ObjectProperty">?p</placeholder>
      <placeholder type="ObjectProperty">?s</placeholder>
      <placeholder type="ObjectProperty">?t</placeholder>
      <placeholder type="Literal">?label</placeholder>
      <entity type="AnnotationProperty">&ann;patomat</entity>
<!--      <placeholder type="Literal">?An</placeholder> -->
    </entity_declarations>
    <axioms>
      <axiom>ObjectProperty: ?p Domain: ?A</axiom>
      <axiom>ObjectProperty: ?p Range: ?B</axiom>
      <axiom>ObjectProperty: ?s Domain: ?B</axiom>
      <axiom>ObjectProperty: ?s Range: ?C</axiom>
      <axiom>ObjectProperty: ?t Domain: ?B</axiom>
      <axiom>ObjectProperty: ?t Range: ?D</axiom>
      <axiom>Class: ?B Annotations: patomat ?label</axiom>
    </axioms>
    <ndp>
      <!-- reified relation is ?B 
      object_term(?p)=head_term(?s)=head_term(?t) -->
      <!-- TO IMPLEMENT: -->
      <!-- <comparison threshold="1.0" measure="equal"><s1>object_term(?p)</s1><s2>head_term(?s)</s2></comparison> -->
       <comparison threshold="1.0" measure="equal"><s1>?label</s1><s2>reified_relation</s2></comparison>
       <comparison threshold="1.0" measure="equal"><s1>object_term(?p)</s1><s2>head_term(?t)</s2></comparison>
    </ndp>
  </op1>
  <op2>
    <entity_declarations>      
      <placeholder type="Class">?E</placeholder>
      <placeholder type="Class">?F</placeholder>
      <placeholder type="ObjectProperty">?q</placeholder>
      <placeholder type="Literal">?X</placeholder>
      <entity type="AnnotationProperty">&ann;additional</entity>
    </entity_declarations>
    <axioms>      
      <axiom>ObjectProperty: ?q Range: ?F</axiom>
      <axiom>ObjectProperty: ?q Domain: ?E</axiom>
      <axiom>ObjectProperty: ?q Annotations: additional ?X</axiom>
    </axioms>
  </op2>
  <pt>
    <eq op1="?A" op2="?E"/>    
    <eq op1="?C" op2="?F"/>
    <eqHet op1="?B" op2="?q"/>
    <eqAnn op1="?D" op2="?X"/>
    <!-- <enp entity="?q">make_passive_verb_of_head_noun(?B)+?C</enp> -->
    <ntp entity="?q">make_passive_verb(?B)+?C</ntp>
  </pt>
</tp>