--- 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">
- <rdf:Description rdf:about="http://www.example.com/crimeFile#t+1">
- <rdf:type rdf:resource="http://www.w3.org/2006/time#Instant"/>
+ <rdf:Description rdf:about="http://www.example.com/crimeFile#pe2">
+ <prov:hadTemporalValue rdf:about="http://www.example.com/crimeFile#t+1">
+ <rdf:type rdf:resource="http://www.w3.org/2006/time#TemporalEntity"/>
+ </prov:hadTemporalValue>
</rdf:Description>
</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">
+ <rdf:Description rdf:about="http://www.example.com/crimeFile#ProvenanceContainer1">
+ <rdf:type rdf:resource="http://www.w3.org/ns/prov-o/#ProvenanceContainer"/>
+ <cf:contains rdf:resource="http://www.example.com/crimeFile#Statement1"/>
+ <cf:contains rdf:resource="http://www.example.com/crimeFile#Statement2"/>
+ <cf:assertedBy rdf:resource="http://www.example.com/crimeFile#Alice"/>
+ </rdf:Description>
+ </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">
- <rdf:Description rdf:about="http://www.example.com/crimeFile#BobAsAuthor">
+ <rdf:Description rdf:about="http://www.example.com/crimeFile#Bob_as_Author">
<rdf:type rdf:resource="http://www.w3.org/ns/prov-o/EntityInRole"/>
- <prov:wasAssumedBy rdf:resource="http://www.example.com/crimeFile#Bob"/>
- <prov:assumedRole rdf:resource="http://www.example.com/crime#author"/>
+ <prov:wasAssumedBy rdf:resource="http://www.example.com/crimeFile#Bob"/>
</rdf:Description>
</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">
- <rdf:Description rdf:about="http://www.example.com/crimeFile#pe1">
- <prov:used rdf:parseType="Resource">
- <rdf:type rdf:resource="http://www.w3.org/ns/prov-o/EntityInRole"/>
- <prov:wasAssumedBy rdf:resource="http://www.example.com/crimeFile#Bob"/>
- <prov:assumedRole rdf:resource="http://www.example.com/crime#author"/>
- <crime:parameter>p1</crime:parameter>
- </prov:used>
- </rdf:Description>
- </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">
+ <rdf:Description rdf:about="http://www.example.com/crimeFile#news_editing">
+ <rdf:type rdf:resource="http://www.w3.org/ns/prov-o/ProcessExection"/>
+ <prov:hasRecipe rdf:resource="http://www.example.com/crimeFile#NewsReportEditingProtocol"/>
+ </rdf:Description>
+ </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">
+ <rdf:Description rdf:about="http://www.example.com/crimeFile#pe1">
+ <prov:used rdf:parseType="Resource">
+ <rdf:type rdf:resource="http://www.w3.org/ns/prov-o/EntityInRole"/>
+ <prov:wasAssumedBy rdf:resource="http://www.example.com/crimeFile#Bob"/>
+ <prov:assumedRole rdf:resource="http://www.example.com/crime#author"/>
+ <crime:parameter>p1</crime:parameter>
+ </prov:used>
+ </rdf:Description>
+ </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"
+ >"Instants are, intuitively, point-like in that they have no interior points"
+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"
+ >"Intervals are, intuitively, things with extent" 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>