--- a/model/prov-constraints.html Fri Jul 20 08:45:57 2012 +0100
+++ b/model/prov-constraints.html Fri Jul 20 09:18:06 2012 +0100
@@ -1589,184 +1589,234 @@
<section id="type-rules">
<h2>Type inference rules</h2>
-The rules in this section establish the existence of entities, activities, and agents from their use within expressions.
-
+The following table summarizes rules which establish the existence of entities, activities, and agents from their use within expressions. </p>
+
+ <table border=1 align="center">
+ <tr>
+ <th>Relation</th>
+ <th>Inference rule</th>
+ </tr>
+ <tr>
+ <td class="name">Generation</td>
+ <td>
<div class='inference' id="generation-type-inference">
-<p>
<span class='conditional'>IF</span>
<span class='name'>wasGeneratedBy(gen;e,a,t,attrs)</span>
<span class='conditional'>THEN</span>
-<span class="name">entity(e,[])</span>,
- <span class="name">activity(a, -,-,[])</span>
-both hold.
-</p>
+there exist <span class="name">_t1</span>, <span class="name">_t2</span> such that <span class="name">entity(e,[])</span> AND
+ <span class="name">activity(a, _t1, _t2,[])</span> holds.
</div>
-
-
+</td>
+ </tr>
+
+<tr>
+<td class="name">Usage</td>
+
+<td>
<div class='inference' id="usage-type-inference">
-<p>
<span class='conditional'>IF</span>
<span class='name'>used(u;a,e,t,attrs)</span>
<span class='conditional'>THEN</span>
-<span class="name">entity(e,[])</span>,
- <span class="name">activity(a, -,-,[])</span>
-both hold.
-</p>
- </div>
-
-
+there exist <span class="name">_t1</span>, <span class="name">_t2</span> such that <span class="name">entity(e,[])</span> AND
+ <span class="name">activity(a, _t1, _t2,[])</span> holds.
+</div>
+</td>
+</tr>
+
+
+<tr>
+<td class="name">Communication</td>
+
+<td>
<div class='inference' id="communication-type-inference">
-<p>
<span class='conditional'>IF</span>
<span class='name'>wasInformedBy(id;a2,a1,attrs)</span>
<span class='conditional'>THEN</span>
- <span class="name">activity(a1, -,-,[])</span>,
- <span class="name">activity(a2, -,-,[])</span>
- both hold.
-</p>
+there exist <span class="name">_t1</span>, <span class="name">_t2</span>, <span class="name">_t3</span>, <span class="name">_t4</span> such that
+ <span class="name">activity(a1, _t1,_t2,[])</span> AND
+ <span class="name">activity(a2, _t3,_t4,[])</span> holds.
</div>
-
+</td>
+</tr>
+
+<tr>
+<td class="name">Start</td>
+<td>
<div class='inference' id="start-type-inference">
-<p>
<span class='conditional'>IF</span>
<span class='name'>wasStartedBy(id;a2,e,a1,t,attrs)</span>
<span class='conditional'>THEN</span>
- <span class="name">activity(a1, -,-,[])</span>,
- <span class="name">activity(a2, -,-,[])</span>,
+there exist <span class="name">_t1</span>, <span class="name">_t2</span>, <span class="name">_t3</span>, <span class="name">_t4</span> such that
+ <span class="name">activity(a1, _t1,_t2,[])</span> AND
+ <span class="name">activity(a2, _t3,_t4,[])</span> AND
<span class="name">entity(e,[])</span>
- hold.
-</p>
+ holds.
</div>
-
-
+</td>
+</tr>
+
+<tr>
+<td class="name">End</td>
+<td>
<div class='inference' id="end-type-inference">
-<p>
<span class='conditional'>IF</span>
<span class='name'>wasEndedBy(id;a2,e,a1,t,attrs)</span>
<span class='conditional'>THEN</span>
- <span class="name">activity(a1, -,-,[])</span>,
- <span class="name">activity(a2, -,-,[])</span>,
-<span class="name">entity(e,[])</span>
- hold.
-</p>
+there exist <span class="name">_t1</span>, <span class="name">_t2</span>, <span class="name">_t3</span>, <span class="name">_t4</span> such that
+ <span class="name">activity(a1, _t1,_t2,[])</span> AND
+ <span class="name">activity(a2, _t3,_t4,[])</span> AND
+<span class="name">entity(e,[])</span> holds.
</div>
-
-
+</td>
+</tr>
+
+
+<tr>
+<td class="name">Invalidation</td>
+<td>
<div class='inference' id="invalidation-type-inference">
-<p>
<span class='conditional'>IF</span>
<span class='name'>wasInvalidatedBy(id;e,a,t,attrs)</span>
<span class='conditional'>THEN</span>
- <span class="name">activity(a, -,-,[])</span>,
+there exist <span class="name">_t1</span>, <span class="name">_t2</span> such that
+ <span class="name">activity(a1, _t1,_t2,[])</span> AND
<span class="name">entity(e,[])</span>
hold.
-</p>
</div>
-
-
-
+</td>
+</tr>
+
+
+<tr>
+<td class="name">Derivation</td>
+<td>
<div class='inference' id="derivation-type-inference">
-<p>
<span class='conditional'>IF</span>
<span class='name'>wasDerivedFrom(id; e2, e1, a, g2, u1, attrs)</span>
<span class='conditional'>THEN</span>
-<span class="name">entity(e1,[])</span>,
-<span class="name">entity(e2,[])</span>,
- <span class="name">activity(a, -,-,[])</span>
- hold.
-</p>
+there exist <span class="name">_t1</span>, <span class="name">_t2</span> such that
+<span class="name">entity(e1,[])</span> AND
+<span class="name">entity(e2,[])</span> AND
+ <span class="name">activity(a, _t1,_t2,[])</span>
+ holds.
</div>
-
-
+</td>
+</tr>
+
+
+<tr>
+<td class="name">Attribution</td>
+<td>
<div class='inference' id="attribution-type-inference">
-<p>
<span class='conditional'>IF</span>
<span class='name'>wasAttributedTo(id;e,ag,attr)</span>
<span class='conditional'>THEN</span>
-<span class="name">entity(e,[])</span>,
+<span class="name">entity(e,[])</span> AND
<span class="name">agent(ag,[])</span>
hold.
-</p>
</div>
-
-
+</td>
+</tr>
+
+
+<tr>
+<td class="name">Association</td>
+<td>
<div class='inference' id="association-type-inference">
-<p>
<span class='conditional'>IF</span>
<span class='name'>wasAssociatedWith(id;a,ag,pl,attrs)</span>
<span class='conditional'>THEN</span>
- <span class="name">activity(a, -,-,[])</span>,
-<span class="name">agent(ag,[])</span>,
+there exist <span class="name">_t1</span>, <span class="name">_t2</span> such that
+ <span class="name">activity(a, _t1,_t2,[])</span> AND
+<span class="name">agent(ag,[])</span> AND
<span class="name">entity(pl,[prov:type='prov:Plan'])</span>
hold.
-</p>
</div>
-
+</td>
+</tr>
+
+
+<tr>
+<td class="name">Delegation</td>
+<td>
<div class='inference' id="delegation-type-inference">
-<p>
<span class='conditional'>IF</span>
<span class='name'>actedOnBehalfOf(id;ag2,ag1,a,attrs)</span>
<span class='conditional'>THEN</span>
- <span class="name">activity(a, -,-,[])</span>,
-<span class="name">agent(ag1,[])</span>,
+there exist <span class="name">_t1</span>, <span class="name">_t2</span> such that
+ <span class="name">activity(a, _t1,_t2,[])</span> AND
+<span class="name">agent(ag1,[])</span> AND
<span class="name">agent(ag2,[])</span>
- hold.
-</p>
+ holds.
</div>
-
-
-
+</td>
+</tr>
+
+<tr>
+<td class="name">Alternate</td>
+<td>
<div class='inference' id="alternate-type-inference">
-<p>
<span class='conditional'>IF</span>
<span class='name'>alternateOf(alt1, alt2)</span>
<span class='conditional'>THEN</span>
-<span class="name">entity(alt1,[])</span>,
+<span class="name">entity(alt1,[])</span> AND
<span class="name">entity(alt2,[])</span>
- hold.
-</p>
+ holds.
</div>
-
+</td>
+</tr>
+
+
+<tr>
+<td class="name">Specialization</td>
+<td>
<div class='inference' id="specialization-type-inference">
-<p>
<span class='conditional'>IF</span>
<span class='name'>specializationOf(infra, supra)</span>
<span class='conditional'>THEN</span>
-<span class="name">entity(infra,[])</span>,
+<span class="name">entity(infra,[])</span> AND
<span class="name">entity(supra,[])</span>
hold.
-</p>
</div>
-
-
+</td>
+</tr>
+
+
+<tr>
+<td class="name">Mention</td>
+<td>
<div class='inference' id="mention-type-inference">
-<p>
<span class='conditional'>IF</span>
<span class='name'>mentionOf(infra, supra,bundle)</span>
<span class='conditional'>THEN</span>
-<span class="name">entity(infra,[])</span>,
+<span class="name">entity(infra,[])</span> AND
<span class="name">entity(supra,[])</span>
hold.
-</p>
</div>
-
-
-<div class="note">not sure about this one below: the type could as well be EmptyCollection</div>
+</td>
+</tr>
+
+
+<tr>
+<td class="name">Membership</td>
+<td>
<div class='inference' id="membership-type-inference">
-<p>
<span class='conditional'>IF</span>
<span class='name'>hadMember(c, e)</span>
<span class='conditional'>THEN</span>
-<span class="name">entity(c,[prov:type="prov:Collection"])</span>,
+<span class="name">entity(c,[prov:type="prov:Collection"])</span> AND
<span class="name">entity(e,[])</span>
hold.
-</p>
</div>
-
-
+</td>
+</tr>
+
+
+
+</table>