class descriptions, examples, holding section
authorSatya Sahoo <satya.sahoo@case.edu>
Sat, 05 Nov 2011 17:17:37 -0400
changeset 806 3917ddc15f8a
parent 805 81641329ea16
child 807 ff40085a2c94
class descriptions, examples, holding section
ontology/ProvenanceFormalModel.html
ontology/ProvenanceOntology.owl
--- a/ontology/ProvenanceFormalModel.html	Sat Nov 05 15:36:08 2011 -0400
+++ b/ontology/ProvenanceFormalModel.html	Sat Nov 05 17:17:37 2011 -0400
@@ -173,9 +173,11 @@
 
 	 <section> 
 	  	<h3>Mapping the PROV-DM terms to PROV Ontology</h3>
-	    <p>The PROV Data Model [[PROV-DM]] uses an Abstract Syntax Notation (ASN) to describe the set of provenance terms that are used to construct the PROV ontology. There are a number of differences between the PROV-DM ASN and the Semantic Web RDF, RDFS and OWL2 technologies; hence the approach used to model the provenance terms in PROV ontology differ, partially or significantly, from the PROV-DM approach. For example, the notion of "expressions" used in the PROV-DM map to RDF triple assertions in PROV-O. Throughout this document, we explicitly state the difference, if any, between the PROV-DM term and PROV ontology term.
+	    <p>The PROV Data Model [[PROV-DM]] uses an Abstract Syntax Notation (ASN) to describe the set of provenance terms that are used to construct the PROV ontology. There are a number of differences between the PROV-DM ASN and the Semantic Web RDF, RDFS and OWL2 technologies; hence the approach used to model the provenance terms in PROV ontology differ, partially or significantly, from the PROV-DM approach. 
 		</p>
-		<div class='note'> In addition, RDF is strictly monotonic and "...it cannot express closed-world assumptions, local default preferences, and several other commonly used non-monotonic constructs."[[RDF-MT]], but the PROV-DM seems to introduce the notion of non-monotonic assertions through "Account" construct [[PROV-DM]].
+		<p>For example, the notion of "expressions" used in the PROV-DM map to RDF triple assertions in PROV-O. Similarly, the PROV-DM discusses the use of "Qualifier" to assert additional information about provenance terms. Following the general knowledge representation practices and OWL2 ontologies specifically, the PROV ontology specializes a given provenance term to create either a sub class or sub property to represent "additionally" qualified terms. Throughout this document, we explicitly state the difference, if any, between the PROV-DM term and PROV ontology term.
+		</p>
+		<div class='note'> In addition, RDF is strictly monotonic and "...it cannot express closed-world assumptions, local default preferences, and several other commonly used non-monotonic constructs."[[RDF-MT]], but the PROV-DM seems to introduce the notion of non-monotonic assertions through "Account" construct [[PROV-DM]]. For example, Account description in PROV-DM states that it "It provides a scoping mechanism for expression identifiers and for some contraints (such as generation-unicity and derivation-use)."
 		</div>
      </section> 
 	 <section> 
@@ -279,52 +281,31 @@
 		  </div>
 		  <div class='note'> Similar to example for Entity, both Alice and Edith are instances of class Journalist, which is defined to be "sub-class" of class Agent in the CrimeFile ontology. Hence, using standard RDFS entailment allows us to infer that both Alice and Edith are also instances of Agent.
 		  </div>
-	    </section>
-
-
-
-	    <section id="recipe">
-		  <h4>Recipe</h4>	    
-	      <div><b>Class Description</b></div>
-	      <p>Recipe represents a process specification. The definition of process specifications is outside the scope of PROV. Therefore, this class acts as a place holder in the ontology that can be extended and specialized by users.</p>
-		  <div><b>OWL syntax</b></div>
-	      <pre>prov:Recipe rdfs:subClassOf owl:Thing.</pre>
-		  <div><b>Example</b></div>
-		  <p> Recipe examples include backing recipes, programs and workflows.  
-	    </section>	    
-
+	    </section>    
 
 
 		<section id="temporalentity">
 		  <h4>TemporalEntity</h4>	    
 	      <div><b>Class Description</b></div>
-	      <p>TemporalEntity represents temporal information about
-          entities in the Provenance model. This class has been re-used
-          from the OWL Time ontology [[!OWL-TIME]]. The PROV ontology also models the two sub classes of TemporalEntity, namely Instant and Interval.</p>
+	      <p>TemporalEntity represents temporal information about entities in the Provenance model. This class has been re-used from the OWL Time ontology [[!OWL-TIME]]. The PROV ontology also models the two sub classes of TemporalEntity, namely Instant and Interval.</p> 
+	      <p>The Instant class represents "point-line" temporal information that have "no interior points" [[!OWL-TIME]]. The Interval class represents temporal information that have a non-zero duration [[!OWL-TIME]]</p>
 		  <div><b>OWL syntax</b></div>
 	      <pre>time:TemporalEntity rdfs:subClassOf owl:Thing.</pre>
 		  <div><b>Example</b></div>
-		  <p> Example of instances of class TemporalEntity from the <a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018/#a-file-scenario"> provenance scenario </a> are <i>t</i> and <i>t+1</i>. The RDF/XML syntax for this asserting that t+1 is an instance of class Instant is given below.		
+		  <p> Example of instances of class TemporalEntity from the <a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018/#a-file-scenario"> provenance scenario </a> are <i>t</i> and <i>t+1</i>. t+1 is associated with the instance of ProcessExecution pe2. The instances of TemporalEntity are linked to instances of Entity or ProcessExecution classes by the <a href="#hadtemporalvalue">hadTemporalValue</a> property that is described later in this document. </p>
+		<p>The RDF/XML syntax for this asserting that t+1 is an instance of class TemporalEntity and t+1 is associated with pe2 is given below.
+		  </p>		
 		  <div class="exampleOuter">
 			<pre class="example">
-				&lt;rdf:Description rdf:about="http://www.example.com/crimeFile#t+1"&gt;
-				    &lt;rdf:type rdf:resource="http://www.w3.org/2006/time#Instant"/&gt;
+				&lt;rdf:Description rdf:about="http://www.example.com/crimeFile#pe2"&gt;
+				  &lt;prov:hadTemporalValue rdf:about="http://www.example.com/crimeFile#t+1"&gt;
+				    &lt;rdf:type rdf:resource="http://www.w3.org/2006/time#TemporalEntity"/&gt;
+				  &lt;/prov:hadTemporalValue&gt;
 				&lt;/rdf:Description&gt;
 			</pre>
 		  </div>
-	    </section>
-
-		<section id="time">
-		  <h4>Time</h4>	    
-	      <div><b>Class Description</b></div>
-	      <p><code>Time</code> is subclass of <code>time:Instant</code>
-          from [[!OWL-TIME]] which requires that the time is defined 
-          using the <code>time:inXSDDateTime</code> property. This
-          class used with <code>startedAt</code> and other subproperties
-          of <code>hasTemporalValue</code> ensures compatibility with <code>xsd:dateTime</code> literals
-          expressions in [[PROV-DM]] ASN and other serialisations. 
-          c</p> 
-		</section>
+	 
+	    </section>		
 
 		<section id="provenancecontainer">
 		  <h4>ProvenanceContainer</h4>	    
@@ -332,18 +313,25 @@
 	      <p>ProvenanceContainer is defined to be an aggregation of provenance assertions. A provenance container should have an URI associated with it. The ProvenanceContainer class can also be used to model the PROV-DM concept of <a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018/#expression-Account">Account</a>.</p>
 		  <div><b>OWL syntax</b></div>
 		  <pre>prov:ProvenanceContainer rdfs:subClassOf owl:Thing.</pre>
-		  <p>Examples of instance of class ProvenanceContainer includes a file describing the manufacturing details of a car, such as its batch number, manufacturer, date of manufacture, place of manufacture etc. </p>
-				 
+		  <p>Examples of instance of class ProvenanceContainer includes a RDF graph containing set of assertions describing the provenance of a car, such as its manufacturer, date of manufacture, and place of manufacture.</p>
+		<div class="exampleOuter">
+			<pre class="example">
+				&lt;rdf:Description rdf:about="http://www.example.com/crimeFile#ProvenanceContainer1"&gt;
+				    &lt;rdf:type rdf:resource="http://www.w3.org/ns/prov-o/#ProvenanceContainer"/&gt;
+				    &lt;cf:contains rdf:resource="http://www.example.com/crimeFile#Statement1"/&gt;
+				    &lt;cf:contains rdf:resource="http://www.example.com/crimeFile#Statement2"/&gt;
+				    &lt;cf:assertedBy rdf:resource="http://www.example.com/crimeFile#Alice"/&gt;
+				&lt;/rdf:Description&gt;				
+			</pre>
+		  </div>				 
 		  <div class='note'> According to the definitions of ProvenanceContainer and Account, both contain a set of provenance assertions and have an identifier. Hence, ProvenanceContainer class can also be used to create instances of accounts.
 		  </div>
 		  <div class='issue'>Scope and Identifiers. 
           This is <a href="http://www.w3.org/2011/prov/track/issues/81">ISSUE-81</a>.</div>
-
             <section>
                 <h5>Modeling ProvenanceContainer and Account as RDF Graph</h5>
-                <p>Placeholder for Tim's description</p>
+                <p>If a RDF graph contains a set of RDF assertions then, (a) if an explicit asserter is associated with the RDF graph it corresponds to the term "Account" in PROV-DM, and (b) if an asserted is not associated with the RDF graph it corresponds to the term "ProvenanceContainer" in PROV-DM.</p>
             </section>
-
         </section>
 
 		<section id="location">
@@ -371,47 +359,78 @@
 		<section id="entityinrole">
 		  <h4>EntityInRole</h4>	    
 		  <div><b>Class Description</b></div>
-	      <p>EntityInRole is defined to be a "realizable entity" (cite?) "assumed by a Entity or an agent." [[PROV-DM]]</p>
+	      <p>EntityInRole is defined to be a role "assumed by a Entity or an agent." [[PROV-DM]]</p>
 		  <div><b>OWL syntax</b></div>
 		  <pre>prov:EntityInRole rdfs:subClassOf prov:Entity.</pre>
 		  <div><b>Example</b></div>
 		  <p> Example of instances of class EntityInRole from the <a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018/#a-file-scenario"> provenance scenario </a> are <i>author</i> role assumed by Bob and <i>file creator</i> role assumed by Alice. The RDF/XML syntax for asserting that Bob assumes the role of an author is given below.		
 		  <div class="exampleOuter">
 			<pre class="example">
-				&lt;rdf:Description rdf:about="http://www.example.com/crimeFile#BobAsAuthor"&gt;
+				&lt;rdf:Description rdf:about="http://www.example.com/crimeFile#Bob_as_Author"&gt;
 				    &lt;rdf:type rdf:resource="http://www.w3.org/ns/prov-o/EntityInRole"/&gt;
-				    &lt;prov:wasAssumedBy rdf:resource="http://www.example.com/crimeFile#Bob"/&gt;
-				    &lt;prov:assumedRole rdf:resource="http://www.example.com/crime#author"/&gt;
+				    &lt;prov:wasAssumedBy rdf:resource="http://www.example.com/crimeFile#Bob"/&gt;				    
 				&lt;/rdf:Description&gt;
 			</pre>
-		  </div>
-          <p>
-            An <code>EntityInRole</code> is used together with
-            <code>used</code>, <code>wasGeneratedBy</code> and
-            <code>wasControlledBy</code> to specify that the
-            <code>wasAssumedBy</code> entity
-            participated in the relation in a given <em>role</em>. The role is
-            specified using <code>assumedRole</code>, referring to a
-            <code>Role</code>.
-          </p>
-          <div class="exampleOuter">
-            <pre class="example">
-                &lt;rdf:Description rdf:about="http://www.example.com/crimeFile#pe1"&gt;
-                  &lt;prov:used rdf:parseType="Resource"&gt;
-                      &lt;rdf:type rdf:resource="http://www.w3.org/ns/prov-o/EntityInRole"/&gt;
-                      &lt;prov:wasAssumedBy rdf:resource="http://www.example.com/crimeFile#Bob"/&gt;
-                      &lt;prov:assumedRole rdf:resource="http://www.example.com/crime#author"/&gt;
-                      &lt;crime:parameter&gt;p1&lt;/crime:parameter&gt;
-                  &lt;/prov:used&gt;
-                &lt;/rdf:Description&gt;	
-            </pre>
-          </div>		
-          <p>
-          The example above corresponds to in [[PROV-DM]] ASN 
-          <code>used(pe1, Bob, qualifier(role="author", parameter="p1")</code>.
-          </p>
-
-	    <div class='issue'>The PROV-DM defines the term <a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018/#expression-qualifier">Qualifier</a> is not modeled explicitly in PROV ontology.</div>	
+	  		</div>	    	
+	  </section>
+	
+	  <section id="recipe">
+	  <h4>Recipe</h4>	    
+	  		<div><b>Class Description</b></div>
+	      	<p>Recipe represents the specification of a <a href="#processexecution">ProcessExecution</a>. PROV ontology does not define the different types of recipes that can be created by provenance applications in different domains.</p>
+		  	<div><b>OWL syntax</b></div>
+	      	<pre>prov:Recipe rdfs:subClassOf owl:Thing.</pre>
+		  	<div><b>Example</b></div>
+		  	<p> An example of recipe from the <a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018/#a-file-scenario">provenance scenario </a>may be the editing protocol followed by the journalists to edit a news report.
+			<div class="exampleOuter">
+				<pre class="example">
+					&lt;rdf:Description rdf:about="http://www.example.com/crimeFile#news_editing"&gt;
+					    &lt;rdf:type rdf:resource="http://www.w3.org/ns/prov-o/ProcessExection"/&gt;
+					    &lt;prov:hasRecipe rdf:resource="http://www.example.com/crimeFile#NewsReportEditingProtocol"/&gt;				    
+					&lt;/rdf:Description&gt;
+				</pre>
+			</div>  
+	   </section>
+	
+	  <section>
+		<h4>Holding Section for Classes</h4>
+			<p>Temporary section for terms not part of "core" ontology.</p>
+			
+			<section id="time">
+			  <h4>Time</h4>	    
+		      <div><b>Class Description</b></div>
+		      <p><code>Time</code> is subclass of <code>time:Instant</code>
+	          from [[!OWL-TIME]] which requires that the time is defined 
+	          using the <code>time:inXSDDateTime</code> property. This
+	          class used with <code>startedAt</code> and other subproperties
+	          of <code>hasTemporalValue</code> ensures compatibility with <code>xsd:dateTime</code> literals
+	          expressions in [[PROV-DM]] ASN and other serialisations. 
+	          c</p> 
+			</section>
+			<section>
+				<h4>EntityInRole</h4>
+				<p> An <code>EntityInRole</code> is used together with the properties <code>used</code>, <code>wasGeneratedBy</code> and <code>wasControlledBy</code> to specify that the <code>wasAssumedBy</code> entity
+		            participated in the relation in a given <em>role</em>. The role is
+		            specified using <code>assumedRole</code>, referring to a
+		            <code>Role</code>.
+		          </p>
+		          <div class="exampleOuter">
+		            <pre class="example">
+		                &lt;rdf:Description rdf:about="http://www.example.com/crimeFile#pe1"&gt;
+		                  &lt;prov:used rdf:parseType="Resource"&gt;
+		                      &lt;rdf:type rdf:resource="http://www.w3.org/ns/prov-o/EntityInRole"/&gt;
+		                      &lt;prov:wasAssumedBy rdf:resource="http://www.example.com/crimeFile#Bob"/&gt;
+		                      &lt;prov:assumedRole rdf:resource="http://www.example.com/crime#author"/&gt;
+		                      &lt;crime:parameter&gt;p1&lt;/crime:parameter&gt;
+		                  &lt;/prov:used&gt;
+		                &lt;/rdf:Description&gt;	
+		            </pre>
+		          </div>		
+		          <p>
+		          The example above corresponds to in [[PROV-DM]] ASN 
+		          <code>used(pe1, Bob, qualifier(role="author", parameter="p1")</code>.
+		          </p>					    
+			</section>
 	  </section>
       </section>
 
@@ -719,8 +738,8 @@
 			  </div>
 		</section>
 		
-		<section id="hastemporalvalue">
-	          <h4>hasTemporalValue</h4>
+		<section id="hadtemporalvalue">
+	          <h4>hadTemporalValue</h4>
 	          <p> This object property links an instance of
               <code>ProcessExecution</code> or <code>Entity</code> with an
               <code>time:TemporalEntity</code> from [[!OWL-TIME]], thereby
--- a/ontology/ProvenanceOntology.owl	Sat Nov 05 15:36:08 2011 -0400
+++ b/ontology/ProvenanceOntology.owl	Sat Nov 05 17:17:37 2011 -0400
@@ -347,6 +347,9 @@
 
     <owl:Class rdf:about="&time;Instant">
         <rdfs:subClassOf rdf:resource="&time;TemporalEntity"/>
+        <rdfs:comment rdf:datatype="&xsd;string"
+            >&quot;Instants are, intuitively, point-like in that they have no interior points&quot;
+from the W3C OWL-Time Working Draft (http://www.w3.org/TR/owl-time/).</rdfs:comment>
     </owl:Class>
     
 
@@ -355,6 +358,8 @@
 
     <owl:Class rdf:about="&time;Interval">
         <rdfs:subClassOf rdf:resource="&time;TemporalEntity"/>
+        <rdfs:comment rdf:datatype="&xsd;string"
+            >&quot;Intervals are, intuitively, things with extent&quot; from W3C OWL-Time Working Draft (http://www.w3.org/TR/owl-time/).</rdfs:comment>
     </owl:Class>
     
 
@@ -370,6 +375,8 @@
                 </owl:unionOf>
             </owl:Class>
         </owl:equivalentClass>
+        <rdfs:comment rdf:datatype="&xsd;string"
+            >TemporalEntity represents time information, both time instant (having 0 time duration) and interval (having a non-zero duration).</rdfs:comment>
     </owl:Class>