* Fixed up table formatting
authorJames Cheney <jcheney@inf.ed.ac.uk>
Thu, 16 Aug 2012 15:37:02 +0100
changeset 4342 7c2676a77460
parent 4341 aae9c125b746
child 4345 71a68b12248b
* Fixed up table formatting
model/prov-constraints.html
--- a/model/prov-constraints.html	Thu Aug 16 15:23:19 2012 +0100
+++ b/model/prov-constraints.html	Thu Aug 16 15:37:02 2012 +0100
@@ -783,192 +783,193 @@
 <p> As set out in other specifications, the identifiers used in PROV
 documents have associated type information.  An identifier can have
 more than one type, reflecting subtyping or allowed overlap between
-types, and so we define a set of types of each identifier, $<typeof(id)>$.  Some types are, however,
+types, and so we define a set of types of each identifier, <span class="name">typeof(id)</span>.  Some types are, however,
 required not to overlap (for example, no identifier can describe both
 an entity and an activity).
 In addition, an identifier cannot be used to identify both an object
 (that is, an entity, activity or agent) and a property (that is, a
 named event such as usage, generation, or a relationship such as
 attribution.)
-This specification includes disjointness and typing constraints that
+This specification includes <a href="#type-constraints">disjointness and typing constraints</a> that
 check these requirements.  Here, we merely
 summarize the type constraints in <a href="#typing-table">Table 1</a>.
 </p>
 
-
-    <table id="typing-table" border="1" class="thinborder" style="margin-left: auto; margin-right: auto; border-color: black;">
+<div id="typing-table-fig">
+    <table id="typing-table" border="1"class="thinborder" style="margin-left: auto; margin-right: auto; border-color: black;">
 <caption id="typing-table-caption">Table 1: Summary of Typing Constraints</caption>
 <tr><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td></tr>
       <tr>
-	<th>Relation</th>
-	<th>Identifier </th>
-	<th>Types</th>
+	<th>In relation...</th>
+	<th>identifier</th>
+	<th>has type(s)...</th>
       </tr>
-      <tr>
+      <tr align="center" >
 	<td class="name">entity(e,attrs)</td>
-	<td class="name">e</td>
+	<td class="name" align="center">e</td>
 	<td class="name">'entity'</td>
       </tr>
-      <tr>
+      <tr align="center" >
 	<td class="name">activity(a,t1,t2,attrs)</td>
 	<td class="name">a</td>
 	<td class="name">'activity'</td>
       </tr>
-      <tr>
+      <tr align="center" >
 	<td class="name">agent(ag,attrs)</td>
 	<td class="name">ag</td>
 	<td class="name">'agent'</td>
-      </tr>      <tr>
+      </tr>
+      <tr align="center" >
 	<td rowspan="2" class="name">used(id; a,e,t,attrs)</td>
 	<td class="name">e</td>
 	<td class="name">'entity'</td>
      </tr>
-     <tr>
+     <tr align="center" >
 	<td class="name">a</td>
 	<td class="name">'activity'</td>
       </tr>
-     <tr >
+     <tr align="center"  >
 	<td rowspan="2" class="name">wasGeneratedBy(id; e,a,t,attrs)</td>
 	<td class="name">e</td>
 	<td class="name">'entity'</td>
       </tr>
-     <tr>
+     <tr align="center">
 	<td class="name">a</td>
 	<td class="name">'activity'</td>
     </tr>
-      <tr>
+      <tr align="center">
 	<td rowspan="2" class="name">wasInformedBy(id; a2,a1,attrs)</td>
 	<td class="name">a1</td>
 	<td class="name">'activity'</td>
       </tr>
-      <tr>
+      <tr align="center">
 	<td class="name">a2</td>
 	<td class="name">'activity'</td>
       </tr>
-    <tr>
+    <tr align="center">
 	<td rowspan=3 class="name">wasStartedBy(id; a2,e,a1,t,attrs)</td>
 	<td class="name">a2</td>
 	<td class="name">'activity'</td>
       </tr>
-      <tr>
+      <tr align="center">
 	<td class="name">e</td>
 	<td class="name">'entity'</td>
       </tr>
-      <tr>
+      <tr align="center">
 	<td class="name">a1</td>
 	<td class="name">'activity'</td>
       </tr>
-      <tr>
+      <tr align="center">
 	<td rowspan="3" class="name">wasEndedBy(id; a2,e,a1,t,attrs)</td>
 	<td class="name">a2</td>
 	<td class="name">'activity'</td>
       </tr>
-      <tr>
+      <tr align="center">
 	<td class="name">e</td>
 	<td class="name">'entity'</td>
       </tr>
-      <tr>
+      <tr align="center">
 	<td class="name">a1</td>
 	<td class="name">'activity'</td>
       </tr>
-      <tr>
+      <tr align="center">
 	<td rowspan="2" class="name">wasInvalidatedBy(id; e,a,t,attrs)</td>
 	<td class="name">a</td>
 	<td class="name">'activity'</td>
       </tr>
-      <tr>
+      <tr align="center">
 	<td class="name">a</td>
 	<td class="name">'activity'</td>
       </tr>
-      <tr>
+      <tr align="center">
 	<td rowspan="3" class="name">wasDerivedFrom(id; e2,e1,a,g,u,attrs)</td>
 	<td class="name">e2</td>
 	<td class="name">'entity'</td>
      </tr>
-      <tr>
+      <tr align="center">
 	<td class="name">e1</td>
 	<td class="name">'entity'</td>
      </tr>
-      <tr>
+      <tr align="center">
 	<td class="name">a</td>
 	<td class="name">'activity'</td>
      </tr>
-     <tr>
+     <tr align="center">
 	<td rowspan="2" class="name">wasAttributedTo(id; e,ag,attr)</td>
 	<td class="name">e</td>
 	<td class="name">'entity'</td>
      </tr>
-      <tr>
+      <tr align="center">
 	<td class="name">ag</td>
 	<td class="name">'agent'</td>
      </tr>
-     <tr>
+     <tr align="center">
 	<td rowspan="3" class="name">wasAssociatedWith(id; a,ag,pl,attrs)</td>
 	<td class="name">a</td> 
 	<td class="name">'activity'</td>
      </tr>
-      <tr>
+      <tr align="center">
 	<td class="name">ag</td> 
 	<td class="name">'agent'</td>
      </tr>
-      <tr>
+      <tr align="center">
 	<td class="name">pl</td> 
 	<td class="name">'entity'</td>
      </tr>
-      <tr>
+      <tr align="center">
 	<td  rowspan="3" class="name">actedOnBehalfOf(id; ag2,ag1,a,attrs)</td>
     	<td class="name">ag2</td> 
 	<td class="name">'agent'</td>
      </tr>
-     <tr>
+     <tr align="center">
        <td class="name">ag1</td> 
        <td class="name">'agent'</td>
      </tr>
-      <tr>
+      <tr align="center">
 	<td class="name">a</td> 
 	<td class="name">'activity'</td>
       </tr>
-      <tr>
+      <tr align="center">
 	<td  rowspan="2" class="name">alternateOf(e1,e2)</td>
     	<td class="name">e1</td> 
 	<td class="name">'entity'</td>
      </tr>
-     <tr>
+     <tr align="center">
        <td class="name">e2</td> 
        <td class="name">'entity'</td>
      </tr>
-      <tr>
+      <tr align="center">
 	<td  rowspan="2" class="name">specializationOf(e1,e2)</td>
     	<td class="name">e1</td> 
 	<td class="name">'entity'</td>
      </tr>
-     <tr>
+     <tr align="center">
        <td class="name">e2</td> 
        <td class="name">'entity'</td>
      </tr>
-      <tr>
+      <tr align="center">
 	<td  rowspan="3" class="name">mentionOf(e1,e2,b)</td>
     	<td class="name">e1</td> 
 	<td class="name">'entity'</td>
      </tr>
-     <tr>
+     <tr align="center">
        <td class="name">e2</td> 
        <td class="name">'entity'</td>
      </tr>
-     <tr>
+     <tr align="center">
        <td class="name">b</td> 
        <td class="name">'entity'</td>
      </tr>
-           <tr>
+           <tr align="center">
 	<td rowspan="2" class="name">hadMember(c,e)</td>
     	<td class="name">c</td> 
 	<td class="name">'entity'<br /> 'prov:Collection'</td>
      </tr>
-     <tr>
+     <tr align="center">
        <td class="name">e</td> 
        <td class="name">'entity'</td>
      </tr>
-     <tr>
+     <tr align="center">
 	<td class="name">entity(c,[prov:type='prov:EmptyCollection,...])</td>
     	<td class="name">c</td> 
 	<td class="name">'entity'<br /> 'prov:Collection' <br /> 'prov:EmptyCollection'</td>
@@ -1004,7 +1005,7 @@
   </p>
 
  
- <h2>Constants, Variables and Placeholders</h2>
+ <h4>Constants, Variables and Placeholders</h4>
   <p>
   PROV statements involve identifiers (URIs), literals, 
   placeholders, and attribute lists.  However, in order to specify
@@ -1039,7 +1040,7 @@
 </p>
 
   
- <h2>Substitution</h2>
+ <h4>Substitution</h4>
 <p>A substitution is a function that maps variables to terms. Concretely, since we only
   need to consider substitutions of finite sets of variables, we can
   write substitutions as <span class="math">[x_1 = t_1,...,x_n=t_n]</span>.  A substitution
@@ -1058,7 +1059,7 @@
   
  
 
- <h2>Formulas</h2>
+ <h4>Formulas</h4>
   <p>
   For the purpose of constraint checking, we view PROV statements
   (possibly involving existential variables) as
@@ -1097,7 +1098,7 @@
   </ul>
 
 
- <h2>Satisfying definitions, inferences, and constraints</h2>
+ <h4>Satisfying definitions, inferences, and constraints</h4>
   <p>
   In logic, a formula's meaning is defined by saying when it is
   <em>satisfied</em> in a situation.  Likewise, we can view
@@ -1111,7 +1112,7 @@
   <li>Ordering constraints</li>
 </ol>  
 
-<h2>Merging</h2>
+<h4>Merging</h4>
 
   <p>Merging is an operation that takes two terms and compares them to
   see if they are equal, or can be made equal by substituting an
@@ -1121,7 +1122,7 @@
 </p>
   
 
- <h2>Applying definitions, inferences, and constraints</h2>
+ <h4>Applying definitions, inferences, and constraints</h4>
 <p>Formulas can also be interpreted as having computational
   content.  That is, if an instance does not satisfy a formula, we can
   often <em>apply</em> the formula to the instance to produce another
@@ -1154,7 +1155,7 @@
   </p>
 
  
- <h2>Termination</h2>
+ <h4>Termination</h4>
   <p>
   It is possible to define sets of formulas such that normalization
   does not terminate, that is, such that there is an infinite sequence
@@ -1187,7 +1188,7 @@
   indirectly referenced in other relations.
   </p>
 
- <h2>Checking ordering, typing, and impossibility constraints</h2>
+ <h4>Checking ordering, typing, and impossibility constraints</h4>
   <p>
   The ordering, typing, and impossibility constraints are checked
   rather than applied.  This means that they do not generate new
@@ -1223,7 +1224,7 @@
 
 
 
- <h2>Equivalence and Isomorphism</h2>
+ <h4>Equivalence and Isomorphism</h4>
   <p> Given two normal forms, a natural question is whether they contain
   the same information, that is, whether they are equivalent (if so,
   then the original instances are also equivalent.)  By analogy with
@@ -1254,7 +1255,7 @@
   those obtained by the algorithm in this specification.
   </p>
 
-<h2>From Instances to Documents</h2>
+<h4>From Instances to Documents</h4>
 
 <p>PROV documents can contain multiple instances: a <a>toplevel
 instance</a>, the set of statements not appearing within a bundle, and