Updated Workflow example
authorStian Soiland-Reyes <soiland-reyes@cs.manchester.ac.uk>
Fri, 18 Nov 2011 16:46:35 +0000
changeset 972 183561cff143
parent 971 b6b0933838bf
child 973 bd7f674fe8c3
Updated Workflow example
ontology/Overview.html
ontology/ProvenanceFormalModel.html
--- a/ontology/Overview.html	Fri Nov 18 16:45:13 2011 +0000
+++ b/ontology/Overview.html	Fri Nov 18 16:46:35 2011 +0000
@@ -479,7 +479,7 @@
 pre.sh_sourceCode .sh_attribute { color: #006400; }
 
 </style><link href="http://www.w3.org/StyleSheets/TR/W3C-WD" rel="stylesheet" type="text/css" charset="utf-8" /></head>
-  <body style="display: inherit;"><div class="head"><p><a href="http://www.w3.org/"><img width="72" height="48" alt="W3C" src="http://www.w3.org/Icons/w3c_home" /></a></p><h1 id="title" class="title">PROV Ontology Model</h1><h2 id="w3c-working-draft-17-november-2011">W3C Working Draft 17 November 2011</h2><dl><dt>This version:</dt><dd><a href="http://www.w3.org/TR/2011/WD-prov-o-20111117/">http://www.w3.org/TR/2011/WD-prov-o-20111117/</a></dd><dt>Latest published version:</dt><dd><a href="http://www.w3.org/TR/prov-o/">http://www.w3.org/TR/prov-o/</a></dd><dt>Latest editor's draft:</dt><dd><a href="http://www.w3.org/TR/2011/WD-prov-o-20111013/">http://www.w3.org/TR/2011/WD-prov-o-20111013/</a></dd><dt>Editors:</dt><dd><a href="http://cci.case.edu/cci/index.php/Satya_Sahoo">Satya Sahoo</a>, Case Western Reserve University, USA</dd>
+  <body style="display: inherit;"><div class="head"><p><a href="http://www.w3.org/"><img width="72" height="48" alt="W3C" src="http://www.w3.org/Icons/w3c_home" /></a></p><h1 id="title" class="title">PROV Ontology Model</h1><h2 id="w3c-working-draft-18-november-2011">W3C Working Draft 18 November 2011</h2><dl><dt>This version:</dt><dd><a href="http://www.w3.org/TR/2011/WD-prov-o-20111118/">http://www.w3.org/TR/2011/WD-prov-o-20111118/</a></dd><dt>Latest published version:</dt><dd><a href="http://www.w3.org/TR/prov-o/">http://www.w3.org/TR/prov-o/</a></dd><dt>Latest editor's draft:</dt><dd><a href="http://www.w3.org/TR/2011/WD-prov-o-20111013/">http://www.w3.org/TR/2011/WD-prov-o-20111013/</a></dd><dt>Editors:</dt><dd><a href="http://cci.case.edu/cci/index.php/Satya_Sahoo">Satya Sahoo</a>, Case Western Reserve University, USA</dd>
 <dd><a href="http://tw.rpi.edu/instances/Deborah_L_McGuinness">Deborah McGuinness</a>, Rensselaer Polytechnic Institute, USA</dd>
 <dt>Authors:</dt><dd><span>(In alphabetical order)</span></dd>
 <dd><a href="http://semanticweb.org/wiki/Khalid_Belhajjame">Khalid Belhajjame</a>, University of Manchester, UK</dd>
@@ -493,7 +493,7 @@
 <p> The PROV Ontology (also PROV-O) encodes the PROV Data Model [<cite><a class="bibref" rel="biblioentry" href="#bib-PROV-DM">PROV-DM</a></cite>] in the OWL2 Web Ontology Language (OWL2). The PROV ontology consists of a set of classes, properties, and restrictions that can be used to represent provenance information. The PROV ontology is specialized to create domain-specific provenance ontologies that model the provenance information specific to different applications. The PROV ontology supports a set of entailments based on OWL2 formal semantics and provenance specific inference rules. The PROV ontology is available for download as a separate OWL2 document.</p>
 
    </div><div class="introductory section" id="sotd"><h2>Status of This Document</h2><p><em>This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the <a href="http://www.w3.org/TR/">W3C technical reports index</a> at http://www.w3.org/TR/.</em></p>
-<p>This document was published by the <a href="http://www.w3.org/2011/prov/wiki/Main_Page">Provenance Working Group</a> as a First Public Working Draft. This document is intended to become a W3C Recommendation. If you wish to make comments regarding this document, please send them to <a href="mailto:public-prov-wg@w3.org">public-prov-wg@w3.org</a> (<a href="mailto:public-prov-wg-request@w3.org?subject=subscribe">subscribe</a>, <a href="http://lists.w3.org/Archives/Public/public-prov-wg/">archives</a>). All feedback is welcome.</p><p>Publication as a Working Draft does not imply endorsement by the W3C Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.</p><p>This document was produced by a group operating under the <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/">5 February 2004 W3C Patent Policy</a>. W3C maintains a <a rel="disclosure" href="">public list of any patent disclosures</a> made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#def-essential">Essential Claim(s)</a> must disclose the information in accordance with <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Disclosure">section 6 of the W3C Patent Policy</a>.</p></div><div id="toc" class="section"><h2 class="introductory">Table of Contents</h2><ul class="toc"><li class="tocline"><a href="#introduction" class="tocxref"><span class="secno">1. </span>Introduction</a><ul class="toc"><li class="tocline"><a href="#guide-to-this-document" class="tocxref"><span class="secno">1.1 </span>Guide to this Document</a></li></ul></li><li class="tocline"><a href="#prov-ontology" class="tocxref"><span class="secno">2. </span>PROV Ontology</a><ul class="toc"><li class="tocline"><a href="#mapping-the-prov-dm-terms-to-prov-ontology" class="tocxref"><span class="secno">2.1 </span>Mapping the PROV-DM terms to PROV Ontology</a></li><li class="tocline"><a href="#owl2-syntax-used-in-this-document" class="tocxref"><span class="secno">2.2 </span>OWL2 Syntax Used in this Document</a></li><li class="tocline"><a href="#namespace-and-owl2-version" class="tocxref"><span class="secno">2.3 </span>Namespace and OWL2 version</a></li></ul></li><li class="tocline"><a href="#prov-ontology--owl-encoding-of-prov-data-model" class="tocxref"><span class="secno">3. </span>PROV Ontology: Classes and Properties</a><ul class="toc"><li class="tocline"><a href="#classes" class="tocxref"><span class="secno">3.1 </span>Classes</a><ul class="toc"><li class="tocline"><a href="#entity" class="tocxref"><span class="secno">3.1.1 </span>Entity</a></li><li class="tocline"><a href="#processexecution" class="tocxref"><span class="secno">3.1.2 </span>ProcessExecution</a></li><li class="tocline"><a href="#agent" class="tocxref"><span class="secno">3.1.3 </span>Agent</a></li><li class="tocline"><a href="#temporalentity" class="tocxref"><span class="secno">3.1.4 </span>TemporalEntity</a></li><li class="tocline"><a href="#provenancecontainer" class="tocxref"><span class="secno">3.1.5 </span>ProvenanceContainer</a><ul class="toc"><li class="tocline"><a href="#modeling-provenancecontainer-and-account-as-rdf-graph" class="tocxref"><span class="secno">3.1.5.1 </span>Modeling ProvenanceContainer and Account as RDF Graph</a></li></ul></li><li class="tocline"><a href="#location" class="tocxref"><span class="secno">3.1.6 </span>Location</a></li><li class="tocline"><a href="#qualifiedinvolvement" class="tocxref"><span class="secno">3.1.7 </span>QualifiedInvolvement</a><ul class="toc"><li class="tocline"><a href="#usage" class="tocxref"><span class="secno">3.1.7.1 </span>Usage</a></li><li class="tocline"><a href="#participation" class="tocxref"><span class="secno">3.1.7.2 </span>Participation</a></li><li class="tocline"><a href="#control" class="tocxref"><span class="secno">3.1.7.3 </span>Control</a></li><li class="tocline"><a href="#generation" class="tocxref"><span class="secno">3.1.7.4 </span>Generation</a></li></ul></li><li class="tocline"><a href="#recipe" class="tocxref"><span class="secno">3.1.8 </span>Recipe</a></li><li class="tocline"><a href="#role" class="tocxref"><span class="secno">3.1.9 </span>Role</a></li><li class="tocline"><a href="#classes-under-discussion" class="tocxref"><span class="secno">3.1.10 </span>Classes under Discussion</a><ul class="toc"><li class="tocline"><a href="#time" class="tocxref"><span class="secno">3.1.10.1 </span>Time</a></li></ul></li></ul></li><li class="tocline"><a href="#object-properties" class="tocxref"><span class="secno">3.2 </span>Object Properties</a><ul class="toc"><li class="tocline"><a href="#wasgeneratedby" class="tocxref"><span class="secno">3.2.1 </span>wasGeneratedBy</a></li><li class="tocline"><a href="#revision" class="tocxref"><span class="secno">3.2.2 </span>wasRevisionOf</a></li><li class="tocline"><a href="#wasderivedfrom" class="tocxref"><span class="secno">3.2.3 </span>wasDerivedFrom</a></li><li class="tocline"><a href="#waseventuallyderivedfrom" class="tocxref"><span class="secno">3.2.4 </span>wasEventuallyDerivedFrom</a></li><li class="tocline"><a href="#dependedon" class="tocxref"><span class="secno">3.2.5 </span>dependedOn</a></li><li class="tocline"><a href="#used" class="tocxref"><span class="secno">3.2.6 </span>used</a></li><li class="tocline"><a href="#hadparticipant" class="tocxref"><span class="secno">3.2.7 </span>hadParticipant</a></li><li class="tocline"><a href="#wascomplementof" class="tocxref"><span class="secno">3.2.8 </span>wasComplementOf</a></li><li class="tocline"><a href="#wascontrolledby" class="tocxref"><span class="secno">3.2.9 </span>wasControlledBy</a></li><li class="tocline"><a href="#hadrecipe" class="tocxref"><span class="secno">3.2.10 </span>hadRecipe</a></li><li class="tocline"><a href="#wasinformedby" class="tocxref"><span class="secno">3.2.11 </span>wasInformedBy</a></li><li class="tocline"><a href="#wascheduledafter" class="tocxref"><span class="secno">3.2.12 </span>wasScheduledAfter</a></li><li class="tocline"><a href="#hadtemporalvalue" class="tocxref"><span class="secno">3.2.13 </span>hadTemporalValue</a><ul class="toc"><li class="tocline"><a href="#startedat" class="tocxref"><span class="secno">3.2.13.1 </span>startedAt</a></li><li class="tocline"><a href="#endedat" class="tocxref"><span class="secno">3.2.13.2 </span>endedAt</a></li><li class="tocline"><a href="#wasGeneratedat" class="tocxref"><span class="secno">3.2.13.3 </span>wasGeneratedAt</a></li></ul></li><li class="tocline"><a href="#attribution" class="tocxref"><span class="secno">3.2.14 </span>wasAttributedTo</a></li><li class="tocline"><a href="#quotation" class="tocxref"><span class="secno">3.2.15 </span>wasQuoteOf</a></li><li class="tocline"><a href="#summary" class="tocxref"><span class="secno">3.2.16 </span>wasSummaryOf</a></li><li class="tocline"><a href="#originalsource" class="tocxref"><span class="secno">3.2.17 </span>hadOriginalSource</a></li><li class="tocline"><a href="#hadqualifiedusage" class="tocxref"><span class="secno">3.2.18 </span>hadQualifiedUsage</a></li><li class="tocline"><a href="#hadqualifiedparticipation" class="tocxref"><span class="secno">3.2.19 </span>hadQualifiedParticipation</a></li><li class="tocline"><a href="#hadqualifiedcontrol" class="tocxref"><span class="secno">3.2.20 </span>hadQualifiedControl</a></li><li class="tocline"><a href="#hadqualifiedgeneration" class="tocxref"><span class="secno">3.2.21 </span>hadQualifiedGeneration</a></li><li class="tocline"><a href="#hadqualifiedentity" class="tocxref"><span class="secno">3.2.22 </span>hadQualifiedEntity</a></li></ul></li><li class="tocline"><a href="#characteristics-of-object-properties" class="tocxref"><span class="secno">3.3 </span>Characteristics of Object Properties </a></li><li class="tocline"><a href="#annotation-properties" class="tocxref"><span class="secno">3.4 </span>Annotation Properties</a></li><li class="tocline"><a href="#overview-of-the-ontology" class="tocxref"><span class="secno">3.5 </span>Overview of the ontology</a></li></ul></li><li class="tocline"><a href="#specializing-provenance-ontology-for-domain-specific-provenance-applications" class="tocxref"><span class="secno">4. </span>Specializing Provenance Ontology for Domain-specific Provenance Applications</a><ul class="toc"><li class="tocline"><a href="#moeling-the-crime-file-scenario" class="tocxref"><span class="secno">4.1 </span>Modeling the Crime File Scenario</a><ul class="toc"><li class="tocline"><a href="#specialization-of-prov-ontology-classes" class="tocxref"><span class="secno">4.1.1 </span>Specialization of PROV Ontology Classes</a><ul class="toc"><li class="tocline"><a href="#cf-journalist" class="tocxref"><span class="secno">4.1.1.1 </span>cf:Journalist</a></li><li class="tocline"><a href="#cf-crimefile" class="tocxref"><span class="secno">4.1.1.2 </span>cf:CrimeFile</a></li><li class="tocline"><a href="#cf-filecreation" class="tocxref"><span class="secno">4.1.1.3 </span>cf:FileCreation, cf:FileEditing, cf:FileAppending, cf:Emailing, cf:SpellChecking</a></li></ul></li><li class="tocline"><a href="#specialization-of-prov-ontology-properties" class="tocxref"><span class="secno">4.1.2 </span>Specialization of PROV Ontology Properties</a><ul class="toc"><li class="tocline"><a href="#cf-hadfilepath" class="tocxref"><span class="secno">4.1.2.1 </span>cf:hadFilePath</a></li></ul></li></ul></li><li class="tocline"><a href="#modeling-an-example-scientific-workflow-scenario" class="tocxref"><span class="secno">4.2 </span>Modeling an Example Scientific Workflow Scenario</a><ul class="toc"><li class="tocline"><a href="#workflow-extensions-to-prov-classes" class="tocxref"><span class="secno">4.2.1 </span>Workflow extensions to PROV classes</a></li><li class="tocline"><a href="#workflow-extensions-to-prov-properties" class="tocxref"><span class="secno">4.2.2 </span>Workflow extensions to PROV properties</a></li><li class="tocline"><a href="#workflow-structure" class="tocxref"><span class="secno">4.2.3 </span>Workflow structure</a></li><li class="tocline"><a href="#example-workflow" class="tocxref"><span class="secno">4.2.4 </span>Example workflow</a></li><li class="tocline"><a href="#example-workflow-run" class="tocxref"><span class="secno">4.2.5 </span>Example workflow run</a></li></ul></li></ul></li><li class="tocline"><a href="#formal-semantics-of-the-prov-ontology" class="tocxref"><span class="secno">5. </span>Formal Semantics of the PROV Ontology</a><ul class="toc"><li class="tocline"><a href="#rdf-semantics-for-prov-ontology" class="tocxref"><span class="secno">5.1 </span>RDF Semantics for PROV Ontology</a></li><li class="tocline"><a href="#owl2-semantics-for-prov-ontology" class="tocxref"><span class="secno">5.2 </span>OWL2 Semantics for PROV Ontology</a></li><li class="tocline"><a href="#entailments-supported-by-the-provenance-model" class="tocxref"><span class="secno">5.3 </span>Provenance-specific Entailments Supported by PROV Ontology</a><ul class="toc"><li class="tocline"><a href="#provenance-constraint-on-processexecution" class="tocxref"><span class="secno">5.3.1 </span>Provenance constraint on ProcessExecution</a></li><li class="tocline"><a href="#provenance-constraint-on-wasgeneratedby-generation-affects-attributes" class="tocxref"><span class="secno">5.3.2 </span>Provenance constraint on wasGeneratedBy (generation-affects-attributes)</a></li><li class="tocline"><a href="#provenance-constraint-on-wasgeneratedby-generation-pe-ordering" class="tocxref"><span class="secno">5.3.3 </span>Provenance constraint on wasGeneratedBy (generation-pe-ordering)</a></li><li class="tocline"><a href="#provenance-constraint-on-wasgeneratedby-generation-unicity" class="tocxref"><span class="secno">5.3.4 </span>Provenance constraint on wasGeneratedBy (generation-unicity)</a></li><li class="tocline"><a href="#provenance-constraint-on-used-use-attributes" class="tocxref"><span class="secno">5.3.5 </span>Provenance constraint on Used (use-attributes)</a></li><li class="tocline"><a href="#provenance-constraint-on-used-pe-ordering" class="tocxref"><span class="secno">5.3.6 </span>Provenance constraint on Used (use-pe-ordering)</a></li><li class="tocline"><a href="#provenance-constraint-on-derivation-attributes" class="tocxref"><span class="secno">5.3.7 </span>Provenance constraint on wasDerivedFrom (derivation-attributes)</a></li><li class="tocline"><a href="#provenance-constraint-on-derivation-use-generation-ordering" class="tocxref"><span class="secno">5.3.8 </span>Provenance constraint on wasDerivedFrom (derivation-use-generation-ordering)</a></li><li class="tocline"><a href="#provenance-constraint-on-derivation-events" class="tocxref"><span class="secno">5.3.9 </span>Provenance constraint on wasDerivedFrom (derivation-events)</a></li><li class="tocline"><a href="#provenance-constraint-on-derivation-process-execution" class="tocxref"><span class="secno">5.3.10 </span>Provenance constraint on wasDerivedFrom (derivation-events)</a></li><li class="tocline"><a href="#provenance-constraint-on-derivation-use" class="tocxref"><span class="secno">5.3.11 </span>Provenance constraint on wasDerivedFrom (derivation-use)</a></li><li class="tocline"><a href="#provenance-constraint-on-derivation-generation-generation-ordering" class="tocxref"><span class="secno">5.3.12 </span>Provenance constraint on wasEventuallyDerivedFrom (derivation-generation-generation-ordering)</a></li><li class="tocline"><a href="#provenance-constraint-on-derivation-linked-independent" class="tocxref"><span class="secno">5.3.13 </span>Provenance constraint on wasEventuallyDerivedFrom (derivation-linked-independent)</a></li><li class="tocline"><a href="#provenance-constraint-on-complementof-necessary-cond" class="tocxref"><span class="secno">5.3.14 </span>Provenance constraint on wasComplementOf (wasComplementOf-necessary-cond)</a></li><li class="tocline"><a href="#provenance-constraint-on-hasParticipant-participant" class="tocxref"><span class="secno">5.3.15 </span>Provenance constraint on hadParticipant (participant)</a></li></ul></li></ul></li><li class="tocline"><a href="#acknowledgements" class="tocxref"><span class="secno">A. </span>Acknowledgements</a></li><li class="tocline"><a href="#references" class="tocxref"><span class="secno">B. </span>References</a><ul class="toc"><li class="tocline"><a href="#normative-references" class="tocxref"><span class="secno">B.1 </span>Normative references</a></li><li class="tocline"><a href="#informative-references" class="tocxref"><span class="secno">B.2 </span>Informative references</a></li></ul></li></ul></div>
+<p>This document was published by the <a href="http://www.w3.org/2011/prov/wiki/Main_Page">Provenance Working Group</a> as a First Public Working Draft. This document is intended to become a W3C Recommendation. If you wish to make comments regarding this document, please send them to <a href="mailto:public-prov-wg@w3.org">public-prov-wg@w3.org</a> (<a href="mailto:public-prov-wg-request@w3.org?subject=subscribe">subscribe</a>, <a href="http://lists.w3.org/Archives/Public/public-prov-wg/">archives</a>). All feedback is welcome.</p><p>Publication as a Working Draft does not imply endorsement by the W3C Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.</p><p>This document was produced by a group operating under the <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/">5 February 2004 W3C Patent Policy</a>. W3C maintains a <a rel="disclosure" href="">public list of any patent disclosures</a> made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#def-essential">Essential Claim(s)</a> must disclose the information in accordance with <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Disclosure">section 6 of the W3C Patent Policy</a>.</p></div><div id="toc" class="section"><h2 class="introductory">Table of Contents</h2><ul class="toc"><li class="tocline"><a href="#introduction" class="tocxref"><span class="secno">1. </span>Introduction</a><ul class="toc"><li class="tocline"><a href="#guide-to-this-document" class="tocxref"><span class="secno">1.1 </span>Guide to this Document</a></li></ul></li><li class="tocline"><a href="#prov-ontology" class="tocxref"><span class="secno">2. </span>PROV Ontology</a><ul class="toc"><li class="tocline"><a href="#mapping-the-prov-dm-terms-to-prov-ontology" class="tocxref"><span class="secno">2.1 </span>Mapping the PROV-DM terms to PROV Ontology</a></li><li class="tocline"><a href="#owl2-syntax-used-in-this-document" class="tocxref"><span class="secno">2.2 </span>OWL2 Syntax Used in this Document</a></li><li class="tocline"><a href="#namespace-and-owl2-version" class="tocxref"><span class="secno">2.3 </span>Namespace and OWL2 version</a></li></ul></li><li class="tocline"><a href="#prov-ontology--owl-encoding-of-prov-data-model" class="tocxref"><span class="secno">3. </span>PROV Ontology: Classes and Properties</a><ul class="toc"><li class="tocline"><a href="#classes" class="tocxref"><span class="secno">3.1 </span>Classes</a><ul class="toc"><li class="tocline"><a href="#entity" class="tocxref"><span class="secno">3.1.1 </span>Entity</a></li><li class="tocline"><a href="#processexecution" class="tocxref"><span class="secno">3.1.2 </span>ProcessExecution</a></li><li class="tocline"><a href="#agent" class="tocxref"><span class="secno">3.1.3 </span>Agent</a></li><li class="tocline"><a href="#temporalentity" class="tocxref"><span class="secno">3.1.4 </span>TemporalEntity</a></li><li class="tocline"><a href="#provenancecontainer" class="tocxref"><span class="secno">3.1.5 </span>ProvenanceContainer</a><ul class="toc"><li class="tocline"><a href="#modeling-provenancecontainer-and-account-as-rdf-graph" class="tocxref"><span class="secno">3.1.5.1 </span>Modeling ProvenanceContainer and Account as RDF Graph</a></li></ul></li><li class="tocline"><a href="#location" class="tocxref"><span class="secno">3.1.6 </span>Location</a></li><li class="tocline"><a href="#qualifiedinvolvement" class="tocxref"><span class="secno">3.1.7 </span>QualifiedInvolvement</a><ul class="toc"><li class="tocline"><a href="#usage" class="tocxref"><span class="secno">3.1.7.1 </span>Usage</a></li><li class="tocline"><a href="#participation" class="tocxref"><span class="secno">3.1.7.2 </span>Participation</a></li><li class="tocline"><a href="#control" class="tocxref"><span class="secno">3.1.7.3 </span>Control</a></li><li class="tocline"><a href="#generation" class="tocxref"><span class="secno">3.1.7.4 </span>Generation</a></li></ul></li><li class="tocline"><a href="#recipe" class="tocxref"><span class="secno">3.1.8 </span>Recipe</a></li><li class="tocline"><a href="#role" class="tocxref"><span class="secno">3.1.9 </span>Role</a></li><li class="tocline"><a href="#classes-under-discussion" class="tocxref"><span class="secno">3.1.10 </span>Classes under Discussion</a><ul class="toc"><li class="tocline"><a href="#time" class="tocxref"><span class="secno">3.1.10.1 </span>Time</a></li></ul></li></ul></li><li class="tocline"><a href="#object-properties" class="tocxref"><span class="secno">3.2 </span>Object Properties</a><ul class="toc"><li class="tocline"><a href="#wasgeneratedby" class="tocxref"><span class="secno">3.2.1 </span>wasGeneratedBy</a></li><li class="tocline"><a href="#revision" class="tocxref"><span class="secno">3.2.2 </span>wasRevisionOf</a></li><li class="tocline"><a href="#wasderivedfrom" class="tocxref"><span class="secno">3.2.3 </span>wasDerivedFrom</a></li><li class="tocline"><a href="#waseventuallyderivedfrom" class="tocxref"><span class="secno">3.2.4 </span>wasEventuallyDerivedFrom</a></li><li class="tocline"><a href="#dependedon" class="tocxref"><span class="secno">3.2.5 </span>dependedOn</a></li><li class="tocline"><a href="#used" class="tocxref"><span class="secno">3.2.6 </span>used</a></li><li class="tocline"><a href="#hadparticipant" class="tocxref"><span class="secno">3.2.7 </span>hadParticipant</a></li><li class="tocline"><a href="#wascomplementof" class="tocxref"><span class="secno">3.2.8 </span>wasComplementOf</a></li><li class="tocline"><a href="#wascontrolledby" class="tocxref"><span class="secno">3.2.9 </span>wasControlledBy</a></li><li class="tocline"><a href="#hadrecipe" class="tocxref"><span class="secno">3.2.10 </span>hadRecipe</a></li><li class="tocline"><a href="#wasinformedby" class="tocxref"><span class="secno">3.2.11 </span>wasInformedBy</a></li><li class="tocline"><a href="#wascheduledafter" class="tocxref"><span class="secno">3.2.12 </span>wasScheduledAfter</a></li><li class="tocline"><a href="#hadtemporalvalue" class="tocxref"><span class="secno">3.2.13 </span>hadTemporalValue</a><ul class="toc"><li class="tocline"><a href="#startedat" class="tocxref"><span class="secno">3.2.13.1 </span>startedAt</a></li><li class="tocline"><a href="#endedat" class="tocxref"><span class="secno">3.2.13.2 </span>endedAt</a></li><li class="tocline"><a href="#wasGeneratedat" class="tocxref"><span class="secno">3.2.13.3 </span>wasGeneratedAt</a></li></ul></li><li class="tocline"><a href="#attribution" class="tocxref"><span class="secno">3.2.14 </span>wasAttributedTo</a></li><li class="tocline"><a href="#quotation" class="tocxref"><span class="secno">3.2.15 </span>wasQuoteOf</a></li><li class="tocline"><a href="#summary" class="tocxref"><span class="secno">3.2.16 </span>wasSummaryOf</a></li><li class="tocline"><a href="#originalsource" class="tocxref"><span class="secno">3.2.17 </span>hadOriginalSource</a></li><li class="tocline"><a href="#hadqualifiedusage" class="tocxref"><span class="secno">3.2.18 </span>hadQualifiedUsage</a></li><li class="tocline"><a href="#hadqualifiedparticipation" class="tocxref"><span class="secno">3.2.19 </span>hadQualifiedParticipation</a></li><li class="tocline"><a href="#hadqualifiedcontrol" class="tocxref"><span class="secno">3.2.20 </span>hadQualifiedControl</a></li><li class="tocline"><a href="#hadqualifiedgeneration" class="tocxref"><span class="secno">3.2.21 </span>hadQualifiedGeneration</a></li><li class="tocline"><a href="#hadqualifiedentity" class="tocxref"><span class="secno">3.2.22 </span>hadQualifiedEntity</a></li></ul></li><li class="tocline"><a href="#characteristics-of-object-properties" class="tocxref"><span class="secno">3.3 </span>Characteristics of Object Properties </a></li><li class="tocline"><a href="#annotation-properties" class="tocxref"><span class="secno">3.4 </span>Annotation Properties</a></li><li class="tocline"><a href="#overview-of-the-ontology" class="tocxref"><span class="secno">3.5 </span>Overview of the ontology</a></li></ul></li><li class="tocline"><a href="#specializing-provenance-ontology-for-domain-specific-provenance-applications" class="tocxref"><span class="secno">4. </span>Specializing Provenance Ontology for Domain-specific Provenance Applications</a><ul class="toc"><li class="tocline"><a href="#moeling-the-crime-file-scenario" class="tocxref"><span class="secno">4.1 </span>Modeling the Crime File Scenario</a><ul class="toc"><li class="tocline"><a href="#specialization-of-prov-ontology-classes" class="tocxref"><span class="secno">4.1.1 </span>Specialization of PROV Ontology Classes</a><ul class="toc"><li class="tocline"><a href="#cf-journalist" class="tocxref"><span class="secno">4.1.1.1 </span>cf:Journalist</a></li><li class="tocline"><a href="#cf-crimefile" class="tocxref"><span class="secno">4.1.1.2 </span>cf:CrimeFile</a></li><li class="tocline"><a href="#cf-filecreation" class="tocxref"><span class="secno">4.1.1.3 </span>cf:FileCreation, cf:FileEditing, cf:FileAppending, cf:Emailing, cf:SpellChecking</a></li></ul></li><li class="tocline"><a href="#specialization-of-prov-ontology-properties" class="tocxref"><span class="secno">4.1.2 </span>Specialization of PROV Ontology Properties</a><ul class="toc"><li class="tocline"><a href="#cf-hadfilepath" class="tocxref"><span class="secno">4.1.2.1 </span>cf:hadFilePath</a></li></ul></li></ul></li><li class="tocline"><a href="#modeling-an-example-scientific-workflow-scenario" class="tocxref"><span class="secno">4.2 </span>Modeling an Example Scientific Workflow Scenario</a><ul class="toc"><li class="tocline"><a href="#workflow-extensions-to-prov-classes" class="tocxref"><span class="secno">4.2.1 </span>Workflow extensions to PROV classes</a></li><li class="tocline"><a href="#workflow-extensions-to-prov-properties" class="tocxref"><span class="secno">4.2.2 </span>Workflow extensions to PROV properties</a></li><li class="tocline"><a href="#example-workflow" class="tocxref"><span class="secno">4.2.3 </span>Example workflow</a></li><li class="tocline"><a href="#example-workflow-run" class="tocxref"><span class="secno">4.2.4 </span>Example workflow run</a></li></ul></li></ul></li><li class="tocline"><a href="#formal-semantics-of-the-prov-ontology" class="tocxref"><span class="secno">5. </span>Formal Semantics of the PROV Ontology</a><ul class="toc"><li class="tocline"><a href="#rdf-semantics-for-prov-ontology" class="tocxref"><span class="secno">5.1 </span>RDF Semantics for PROV Ontology</a></li><li class="tocline"><a href="#owl2-semantics-for-prov-ontology" class="tocxref"><span class="secno">5.2 </span>OWL2 Semantics for PROV Ontology</a></li><li class="tocline"><a href="#entailments-supported-by-the-provenance-model" class="tocxref"><span class="secno">5.3 </span>Provenance-specific Entailments Supported by PROV Ontology</a><ul class="toc"><li class="tocline"><a href="#provenance-constraint-on-processexecution" class="tocxref"><span class="secno">5.3.1 </span>Provenance constraint on ProcessExecution</a></li><li class="tocline"><a href="#provenance-constraint-on-wasgeneratedby-generation-affects-attributes" class="tocxref"><span class="secno">5.3.2 </span>Provenance constraint on wasGeneratedBy (generation-affects-attributes)</a></li><li class="tocline"><a href="#provenance-constraint-on-wasgeneratedby-generation-pe-ordering" class="tocxref"><span class="secno">5.3.3 </span>Provenance constraint on wasGeneratedBy (generation-pe-ordering)</a></li><li class="tocline"><a href="#provenance-constraint-on-wasgeneratedby-generation-unicity" class="tocxref"><span class="secno">5.3.4 </span>Provenance constraint on wasGeneratedBy (generation-unicity)</a></li><li class="tocline"><a href="#provenance-constraint-on-used-use-attributes" class="tocxref"><span class="secno">5.3.5 </span>Provenance constraint on Used (use-attributes)</a></li><li class="tocline"><a href="#provenance-constraint-on-used-pe-ordering" class="tocxref"><span class="secno">5.3.6 </span>Provenance constraint on Used (use-pe-ordering)</a></li><li class="tocline"><a href="#provenance-constraint-on-derivation-attributes" class="tocxref"><span class="secno">5.3.7 </span>Provenance constraint on wasDerivedFrom (derivation-attributes)</a></li><li class="tocline"><a href="#provenance-constraint-on-derivation-use-generation-ordering" class="tocxref"><span class="secno">5.3.8 </span>Provenance constraint on wasDerivedFrom (derivation-use-generation-ordering)</a></li><li class="tocline"><a href="#provenance-constraint-on-derivation-events" class="tocxref"><span class="secno">5.3.9 </span>Provenance constraint on wasDerivedFrom (derivation-events)</a></li><li class="tocline"><a href="#provenance-constraint-on-derivation-process-execution" class="tocxref"><span class="secno">5.3.10 </span>Provenance constraint on wasDerivedFrom (derivation-events)</a></li><li class="tocline"><a href="#provenance-constraint-on-derivation-use" class="tocxref"><span class="secno">5.3.11 </span>Provenance constraint on wasDerivedFrom (derivation-use)</a></li><li class="tocline"><a href="#provenance-constraint-on-derivation-generation-generation-ordering" class="tocxref"><span class="secno">5.3.12 </span>Provenance constraint on wasEventuallyDerivedFrom (derivation-generation-generation-ordering)</a></li><li class="tocline"><a href="#provenance-constraint-on-derivation-linked-independent" class="tocxref"><span class="secno">5.3.13 </span>Provenance constraint on wasEventuallyDerivedFrom (derivation-linked-independent)</a></li><li class="tocline"><a href="#provenance-constraint-on-complementof-necessary-cond" class="tocxref"><span class="secno">5.3.14 </span>Provenance constraint on wasComplementOf (wasComplementOf-necessary-cond)</a></li><li class="tocline"><a href="#provenance-constraint-on-hasParticipant-participant" class="tocxref"><span class="secno">5.3.15 </span>Provenance constraint on hadParticipant (participant)</a></li></ul></li></ul></li><li class="tocline"><a href="#acknowledgements" class="tocxref"><span class="secno">A. </span>Acknowledgements</a></li><li class="tocline"><a href="#references" class="tocxref"><span class="secno">B. </span>References</a><ul class="toc"><li class="tocline"><a href="#normative-references" class="tocxref"><span class="secno">B.1 </span>Normative references</a></li><li class="tocline"><a href="#informative-references" class="tocxref"><span class="secno">B.2 </span>Informative references</a></li></ul></li></ul></div>
    
 
  
@@ -1526,7 +1526,6 @@
         connecting together disparate set of domain-specific tools and
         services.  
         </p>
-
         <p>
           Capturing the provenance of executions in such a workflow
           system will typically include details of each of the process
@@ -1541,10 +1540,16 @@
         domain specific attributes based on the PROV ontology.
         </p>  
         <p>
-        <img alt="New classes wf:WorkFlowEngine, wf:Process, wf:ValueAtPort, wf:FileValue, and wf:Value extend prov:Agent, prov:ProcessExecution, prov:EntityInRole. New properties wf:wasLaunchedBy, wf:ranInWorkflowEngine, wf:wasSubProcessExecutionOf, wf:wasReadFrom, wf:sawValue extend prov:wasControlledBy, prov:wasDerivedFrom." style="width: 60%; min-width: 20em; max-width: 40em" src="examples/ontology-extensions/workflow/workflowOntology.png" />
+        <img alt="New classes wf:WorkFlowEngine, wf:Process,
+          wf:ValueAtPort, wf:FileValue, and wf:Value extend prov:Agent,
+          prov:ProcessExecution.  New properties wf:wasLaunchedBy, wf:ranInWorkflowEngine, wf:wasSubProcessExecutionOf, wf:wasReadFrom, wf:sawValue extend prov:wasControlledBy, prov:wasDerivedFrom." style="width: 60%; min-width: 20em; max-width: 40em" src="examples/ontology-extensions/workflow/workflowOntology.png" />
           <br />
           <em>Example extension of PROV ontology in order to describe
-          workflow provenance</em>
+          workflow provenance. This OWL ontology can be downloaded as 
+            <a href="examples/ontology-extensions/workflow/workflowOntology.rdf">RDF/XML</a>
+            and
+            <a href="examples/ontology-extensions/workflow/workflowOntology.ttl">Turtle</a>
+            </em>
         </p>
         <div id="workflow-extensions-to-prov-classes" class="section">
             <h4><span class="secno">4.2.1 </span>Workflow extensions to PROV classes</h4>
@@ -1576,21 +1581,14 @@
                     value appearing in the workflow execution, it will
                     typically be <i>used</i> or <i>generated</i> by
                     <i>wf:Process</i> executions. The actual value can
-                    be provided with a <i>wf:value</i> property.
-                </dd>
-                <dt>wf:ValueAtPort</dt>
-                <dd>
-                    A subclass of <i>wf:Value</i> and <i>prov:EntityInRole</i>,
-                    indicating a value while in the role of being used
-                    or generated by a <i>wf:Process</i> at a particular
-                    <i>wf:Port</i>.
+                    be provided as a literal with a <i>wf:value</i> property.
                 </dd>
                 <dt>wf:FileValue</dt>
                 <dd>
                     A <i>wf:Value</i> which has been read from a file.
                     As an <i>prov:Entity</i> this represents 
                     an entity with both attributes <i>wf:value</i> and
-                    <i>wf:filename</i> fixed, that is the entity describes
+                    <i>wf:file</i> fixed, that is the entity describes
                     the point when the given file contained the 
                     content. As the file might be read a while before
                     the <i>wf:Value</i> is used by a <i>wf:Process</i>, 
@@ -1599,6 +1597,15 @@
                     this file value using the <i>wf:wasReadFrom</i>
                     property.
                 </dd>
+                <dt>wf:ValueAtPort</dt>
+                <dd>
+                    A subclass of <i>prov:QualifiedInvolvement</i>, representing a
+                    value (given by <i>wf:sawValue</i>) observed at a
+                    given port in the workflow (given by
+                    <i>wf:seenAtPort</i>. This description is the range
+                    of <i>wf:generatedValue</i> and <i>wf:usedValue</i>
+                    on a <i>wf:Process</i>.
+                </dd>
             </dl>
         </div>
         <div id="workflow-extensions-to-prov-properties" class="section">
@@ -1668,35 +1675,59 @@
                  </dd>
                  <dt>wf:sawValue</dt>
                  <dd>
-                    A subproperty of <i>prov:wasAssumedBy</i> which
+                    A subproperty of <i>prov:hadQualifiedEntity</i> which
                     indicates that an <i>wf:Value</i> was
                     <i>wf:seenAtPort</i> within an
-                    <i>wf:ValueAtPort</i>. This ValueAtPort is a complement of the
-                    pointed at Value because one can consider this
-                    entity to to have the same attributes, but in
-                    addition the <i>wf:seenAtPort</i> property is fixed.
+                    <i>wf:ValueAtPort</i>. 
                  </dd>
 
-                 <dt>wf:wasSeenAtPort</dt>
+                 <dt>wf:seenAtPort</dt>
                  <dd>
-                    A subproperty of <i>prov:assumedRole</i> (not yet defined in
-                    PROV ontology) indicating which <i>wf:Port</i> a
-                    <i>wf:ValueAtPort</i> was seen at. Thus one can see
+                    A subproperty of <i>prov:hadRole</i> 
+                    indicating which <i>wf:Port</i> (in the workflow
+                    definition) a <i>wf:ValueAtPort</i> was seen at. Thus one can see
                     at which output port a value was generated, or at
                     which input port(s) it was used. 
-                    
-                    As a functional property this requires a different
-                    <i>wf:ValueAtPort</i> for each <i>use</i> and
-                    <i>generation</i> of a value. The
-                    <i>wf:ValueAtPort</i> is linked to the 
-                    <i>wf:Entity</i> using <i>prov:wasComplementOf</i>
-                  <div class="issue">Need
-                  prov:assumedRole in ontology -Stian</div>
                 </dd>
+                 <dt>wf:generatedValue</dt>
+                 <dd>
+                    A subproperty of <i>prov:hadQualifiedGeneration</i>,
+                    specifying which port we <i>wf:sawValue</i> and
+                    where it <i>wf:wasSeenAtPort</i> as it was
+                    generated. The domain of this
+                    property is <i>wf:Process</i>, the range
+                    <i>wf:ValueAtPort</i> (and implied
+                    <i>prov:Generation</i>)
+                </dd>
+                 <dt>wf:usedValue</dt>
+                 <dd>
+                    A subproperty of <i>prov:hadQualifiedUsage</i>,
+                    specifying which port we <i>wf:sawValue</i> and
+                    where it <i>wf:wasSeenAtPort</i> as it was
+                    used. The domain of this
+                    property is <i>wf:Process</i>, the range
+                    <i>wf:ValueAtPort</i> (and implied
+                    <i>prov:Usage</i>)
+                </dd>
+                <dt>wf:sameValueAs</dt>
+                 <dd>
+                    A subproperty of <i>prov:wasComplementOf</i> and
+                    <i>prov:wasDerivedFrom</i>,
+                    specifying that an <i>wf:Value</i> was the same as
+                    another <i>wf:Value</i>. This is used to indicate
+                    that a value at an workflow output port is the same
+                    as the value at a processor output port, although
+                    they have different history of generation, they both
+                    represent the same <i>wf:value</i> and are the same
+                    &quot;thing&quot;.
+                </dd>
+
             </dl>
         </div>
-        <div id="workflow-structure" class="section">
-            <h4><span class="secno">4.2.3 </span>Workflow structure</h4>
+        
+<!-- 
+        <section id="workflow-structure">
+            <h4>Workflow structure</h4>
             <p>
              This ontology includes a simple definition language for
              describing the overall workflow structure. This is not
@@ -1761,9 +1792,11 @@
               </p>
               </dd>
             </dl>
-        </div>
+        </section>
+         -->
+
         <div id="example-workflow" class="section">
-            <h4><span class="secno">4.2.4 </span>Example workflow</h4>
+            <h4><span class="secno">4.2.3 </span>Example workflow</h4>
             <img alt="An example workflow with input, three processes, and two outputs." src="examples/ontology-extensions/workflow/Concatsha1.png" />
             <p>This is an example workflow which defines a workflow
             input <i>input</i>, three processes <i>String_constant</i>,
@@ -1776,260 +1809,157 @@
             to the other workflow port.
             </p>
             <p>
-            Using the definition ontology above this workflow can be
-            expressed in RDF/XML as:
+            An example of abstract definition of this workflow can be
+            seen as 
+            <a href="examples/ontology-extensions/workflow/workflowDefinition.rdf">RDF/XML</a>
+            and
+            <a href="examples/ontology-extensions/workflow/workflowDefinition.ttl">Turtle</a>
             </p>
-		<div class="exampleOuter">
-				<pre class="example">&lt;rdf:RDF xml:base=&quot;http://www.example.com/workflow1#&quot;
-    xmlns:impl=&quot;http://company.example.org/engine-implementation#&quot;
-    xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;
-    xmlns:wf=&quot;http://www.example.com/scientific-workflow#&quot;&gt;
-
-    &lt;wf:ProcessDefinition rdf:about=&quot;#workflow&quot;&gt;
-        &lt;rdf:type rdf:resource=&quot;http://company.example.org/engine-implementation#Workflow&quot;/&gt;
-        &lt;wf:definesInput&gt;
-            &lt;wf:Input rdf:about=&quot;#inName&quot;&gt;
-                &lt;wf:linksTo rdf:resource=&quot;#catIn2&quot; /&gt;
-            &lt;/wf:Input&gt;
-        &lt;/wf:definesInput&gt;
-        &lt;wf:definesOutput rdf:resource=&quot;#combined&quot; /&gt;
-        &lt;wf:definesOutput rdf:resource=&quot;#sha1&quot; /&gt;
-        &lt;wf:definesSubProcess&gt;
-            &lt;impl:Constant rdf:about=&quot;#String_constant&quot;&gt;
-                &lt;impl:constant&gt;Hello, &lt;/impl:constant&gt;
-                &lt;wf:definesOutput&gt;
-                    &lt;wf:Output rdf:about=&quot;#constantValue&quot;&gt;
-                        &lt;wf:linksTo rdf:resource=&quot;#catIn1&quot;/&gt;
-                    &lt;/wf:Output&gt;
-                &lt;/wf:definesOutput&gt;
-            &lt;/impl:Constant&gt;
-        &lt;/wf:definesSubProcess&gt;
-        &lt;wf:definesSubProcess&gt;
-            &lt;impl:Command rdf:about=&quot;#cat&quot;&gt;
-                &lt;impl:command&gt;cat&lt;/impl:command&gt;
-                &lt;wf:definesInput rdf:resource=&quot;#catIn1&quot; /&gt;
-                &lt;wf:definesInput rdf:resource=&quot;#catIn2&quot; /&gt;
-                &lt;wf:definesOutput&gt;
-                    &lt;wf:Output rdf:about=&quot;#catOut&quot;&gt;
-                        &lt;wf:linksTo rdf:resource=&quot;#shaIn&quot;/&gt;
-                    &lt;/wf:Output&gt;
-                &lt;/wf:definesOutput&gt;
-            &lt;/impl:Command&gt;
-        &lt;/wf:definesSubProcess&gt;
-        &lt;wf:definesSubProcess&gt;
-            &lt;impl:Command rdf:about=&quot;#shasum&quot;&gt;
-                &lt;impl:command&gt;shasum&lt;/impl:command&gt;
-                &lt;wf:definesInput rdf:resource=&quot;#shaIn&quot; /&gt;
-                &lt;wf:definesOutput&gt;
-                    &lt;wf:Output rdf:about=&quot;#shaOut&quot;&gt;
-                        &lt;wf:linksTo rdf:resource=&quot;#sha1&quot;/&gt;
-                    &lt;/wf:Output&gt;
-                &lt;/wf:definesOutput&gt;
-            &lt;/impl:Command&gt;
-        &lt;/wf:definesSubProcess&gt;
-    &lt;/wf:ProcessDefinition&gt;
-&lt;/rdf:RDF&gt;            </pre></div>
         </div>
         <div id="example-workflow-run" class="section">
-            <h4><span class="secno">4.2.5 </span>Example workflow run</h4>
+            <h4><span class="secno">4.2.4 </span>Example workflow run</h4>
             <p>
               This example shows how using the workflow extensions
               together with PROV can provide the provenance of executing
               the workflow defined above.
             </p>
-            <div class="exampleOuter"><pre class="example">&lt;rdf:RDF 
-    xmlns:cnt=&quot;http://www.w3.org/2011/content#&quot;
+            <div class="exampleOuter"><pre class="example">&lt;rdf:RDF xmlns=&quot;http://www.example.com/scientific-workflow#&quot;
     xmlns:foaf=&quot;http://xmlns.com/foaf/0.1/&quot;
     xmlns:prov=&quot;http://www.w3.org/ns/prov-o/&quot;
-    xmlns:time=&quot;http://www.w3.org/2006/time#&quot;
     xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;
-    xmlns:wf=&quot;http://www.example.com/scientific-workflow#&quot;
-    xmlns:run=&quot;http://www.example.com/run1#&quot;
-    xmlns:base=&quot;http://www.example.com/run1#&quot;
-    &gt;
-
-    &lt;prov:Agent rdf:about=&quot;#aUser&quot;&gt;
-        &lt;rdf:type rdf:resource=&quot;http://xmlns.com/foaf/0.1/Person&quot;/&gt;
-        &lt;foaf:name&gt;Stian Soiland-Reyes&lt;/foaf:name&gt;
-    &lt;/prov:Agent&gt;
-
-    &lt;wf:WorkflowEngine rdf:about=&quot;#workflowEngine&quot; /&gt;
-
-    &lt;wf:FileValue rdf:about=&quot;#inputFile&quot;&gt;
-        &lt;wf:file&gt;/tmp/myinput.txt&lt;/wf:file&gt;
-        &lt;wf:value&gt;
-            &lt;cnt:ContentAsText&gt;
-                &lt;cnt:characterEncoding&gt;UTF-8&lt;/cnt:characterEncoding&gt;
-                &lt;cnt:chars&gt;Steve&lt;/cnt:chars&gt;
-            &lt;/cnt:ContentAsText&gt;
-        &lt;/wf:value&gt;
-    &lt;/wf:FileValue&gt;
-
-    &lt;wf:Value rdf:about=&quot;#input&quot;&gt;
-        &lt;wf:wasReadFrom rdf:resource=&quot;#inputFile&quot;/&gt;
-        &lt;wf:value&gt;
-            &lt;cnt:ContentAsText&gt;
-                &lt;cnt:characterEncoding&gt;UTF-8&lt;/cnt:characterEncoding&gt;
-                &lt;cnt:chars&gt;Steve&lt;/cnt:chars&gt;
-            &lt;/cnt:ContentAsText&gt;
-        &lt;/wf:value&gt;
-    &lt;/wf:Value&gt;
-
-    &lt;wf:Process rdf:about=&quot;#workflowRun&quot;&gt;
-        &lt;prov:used&gt;
-            &lt;wf:ValueAtPort&gt;
-                &lt;wf:sawValue rdf:resource=&quot;#input&quot;/&gt;
-                &lt;wf:seenAtPort rdf:resource=&quot;http://www.example.com/workflow1#inName&quot;/&gt;
-                &lt;prov:assumedRoleAt&gt;
-                    &lt;prov:Time&gt;
-                        &lt;time:inDateTimeXSD&gt;2011-10-21T09:21:31Z&lt;/time:inDateTimeXSD&gt;
-                    &lt;/prov:Time&gt;
-                &lt;/prov:assumedRoleAt&gt;
-            &lt;/wf:ValueAtPort&gt;
-        &lt;/prov:used&gt;
-        &lt;wf:ranInWorkflowEngine rdf:resource=&quot;#workflowEngine&quot;/&gt;
-        &lt;wf:wasLaunchedBy rdf:resource=&quot;#aUser&quot;/&gt;
-        &lt;wf:wasDefinedBy rdf:resource=&quot;http://www.example.com/workflow1#workflow&quot;/&gt;
-        &lt;prov:startedAt&gt;
-            &lt;prov:Time&gt;
-                &lt;time:inDateTimeXSD&gt;2011-10-21T09:20:15Z&lt;/time:inDateTimeXSD&gt;
-            &lt;/prov:Time&gt;
-        &lt;/prov:startedAt&gt;
-        &lt;prov:endedAt&gt;
-            &lt;prov:Time&gt;
-                &lt;time:inDateTimeXSD&gt;2011-10-21T09:23:32Z&lt;/time:inDateTimeXSD&gt;
-            &lt;/prov:Time&gt;
-        &lt;/prov:endedAt&gt;
-    &lt;/wf:Process&gt;
-
-    &lt;wf:Process rdf:about=&quot;#constant&quot;&gt;
-        &lt;wf:wasSubProcessExecutionOf rdf:resource=&quot;#workflowRun&quot;/&gt;
-        &lt;wf:wasDefinedBy
-        rdf:resource=&quot;http://www.example.com/workflow1#String_Constant&quot;/&gt;
-        &lt;prov:startedAt&gt;
-            &lt;prov:Time rdf:about=&quot;#t0&quot;&gt;
-                &lt;time:inDateTimeXSD&gt;2011-10-21T09:20:15Z&lt;/time:inDateTimeXSD&gt;
-            &lt;/prov:Time&gt;
-        &lt;/prov:startedAt&gt;
-        &lt;prov:endedAt rdf:resource=&quot;#t0&quot; /&gt;
-    &lt;/wf:Process&gt;
-
-    &lt;wf:Value rdf:about=&quot;#hello&quot;&gt;
-        &lt;prov:wasGeneratedBy rdf:resource=&quot;#constant&quot;/&gt;
-        &lt;prov:wasGeneratedAt rdf:resource=&quot;#t0&quot;/&gt;
-        &lt;prov:endedAt rdf:resource=&quot;#t0&quot; /&gt;
-        &lt;wf:value&gt;
-            &lt;cnt:ContentAsText&gt;
-                &lt;cnt:chars&gt;Hello, &lt;/cnt:chars&gt;
-            &lt;/cnt:ContentAsText&gt;
-        &lt;/wf:value&gt;
-    &lt;/wf:Value&gt;
-
-    &lt;wf:ValueAtPort rdf:about=&quot;#helloValue&quot;&gt;
-        &lt;prov:wasGeneratedBy rdf:resource=&quot;#constant&quot;/&gt;
-        &lt;wf:value&gt;
-            &lt;cnt:ContentAsText&gt;
-                &lt;cnt:chars&gt;Hello, &lt;/cnt:chars&gt;
-            &lt;/cnt:ContentAsText&gt;
-        &lt;/wf:value&gt;
-        &lt;wf:sawEntity rdf:resource=&quot;#hello&quot;/&gt;
-    &lt;/wf:ValueAtPort&gt;
+    xmlns:time=&quot;http://www.w3.org/2006/time#&quot;
+    xmlns:wf=&quot;http://www.example.com/scientific-workflow#&quot;&gt;
 
-    &lt;wf:Process rdf:about=&quot;#combine&quot;&gt;
-        &lt;prov:used&gt;
-          &lt;wf:ValueAtPort&gt;
-            &lt;wf:sawValue rdf:resource=&quot;#hello&quot;/&gt;
-            &lt;wf:seenAtPort rdf:resource=&quot;http://www.example.com/workflow1#catIn1&quot;/&gt;
-            &lt;prov:assumedRoleAt&gt;
-                &lt;prov:Time&gt;
-                    &lt;time:inDateTimeXSD&gt;2011-10-21T09:20:21Z&lt;/time:inDateTimeXSD&gt;
-                &lt;/prov:Time&gt;
-            &lt;/prov:assumedRoleAt&gt;
-          &lt;/wf:ValueAtPort&gt;
-        &lt;/prov:used&gt;
-        &lt;prov:used&gt;
-          &lt;wf:ValueAtPort&gt;
-            &lt;wf:sawValue rdf:resource=&quot;#input&quot;/&gt;
-            &lt;wf:seenAtPort rdf:resource=&quot;http://www.example.com/workflow1#catIn2&quot;/&gt;
-            &lt;prov:assumedRoleAt&gt;
-                &lt;prov:Time&gt;
-                    &lt;time:inDateTimeXSD&gt;2011-10-21T09:20:23Z&lt;/time:inDateTimeXSD&gt;
-                &lt;/prov:Time&gt;
-            &lt;/prov:assumedRoleAt&gt;
-          &lt;/wf:ValueAtPort&gt;
-        &lt;/prov:used&gt;
-        &lt;wf:wasSubProcessExecutionOf rdf:resource=&quot;#workflowRun&quot;/&gt;
-        &lt;wf:wasDefinedBy rdf:resource=&quot;http://www.example.com/workflow1#cat&quot;/&gt;
-        &lt;prov:startedAt&gt;
-            &lt;prov:Time&gt;
-                &lt;time:inDateTimeXSD&gt;2011-10-21T09:20:20Z&lt;/time:inDateTimeXSD&gt;
-            &lt;/prov:Time&gt;
+    &lt;Process rdf:about=&quot;#workflowRun&quot;&gt;
+        &lt;ranInWorkflowEngine&gt;
+            &lt;WorkflowEngine rdf:about=&quot;#workflowEngine&quot; /&gt;
+        &lt;/ranInWorkflowEngine&gt;
+        &lt;wasDefinedBy rdf:resource=&quot;http://www.example.com/workflow1#workflow&quot;/&gt;
+        &lt;wasLaunchedBy&gt;
+            &lt;prov:Agent rdf:about=&quot;#aUser&quot;&gt;
+                &lt;rdf:type rdf:resource=&quot;http://xmlns.com/foaf/0.1/Person&quot;/&gt;
+                &lt;foaf:name&gt;Stian Soiland-Reyes&lt;/foaf:name&gt;
+            &lt;/prov:Agent&gt;
+        &lt;/wasLaunchedBy&gt;
+        &lt;prov:startedAt rdf:parseType=&quot;Resource&quot;&gt;
+            &lt;time:inDateTimeXSD&gt;2011-10-21T09:20:15Z&lt;/time:inDateTimeXSD&gt;
         &lt;/prov:startedAt&gt;
-        &lt;prov:endedAt&gt;
-            &lt;prov:Time&gt;
-                &lt;time:inDateTimeXSD&gt;2011-10-21T09:20:25Z&lt;/time:inDateTimeXSD&gt;
-            &lt;/prov:Time&gt;
+        &lt;prov:endedAt rdf:parseType=&quot;Resource&quot;&gt;
+            &lt;time:inDateTimeXSD&gt;2011-10-21T09:23:32Z&lt;/time:inDateTimeXSD&gt;
         &lt;/prov:endedAt&gt;
-    &lt;/wf:Process&gt;
-
-    &lt;wf:Value rdf:about=&quot;#combined&quot;&gt;
-        &lt;prov:wasGeneratedBy rdf:resource=&quot;#combine&quot;/&gt;
-        &lt;wf:value&gt;
-            &lt;cnt:ContentAsText&gt;
-                &lt;cnt:chars&gt;Hello, Steve&lt;/cnt:chars&gt;
-            &lt;/cnt:ContentAsText&gt;
-        &lt;/wf:value&gt;
-    &lt;/wf:Value&gt;
+        &lt;wf:usedValue&gt;
+            &lt;prov:Usage&gt;
+                &lt;sawValue&gt;
+                    &lt;Value rdf:about=&quot;#input&quot;&gt;
+                        &lt;value&gt;Steve&lt;/value&gt;
+                        &lt;wasReadFrom&gt;
+                            &lt;FileValue rdf:about=&quot;#inputFile&quot;&gt;
+                                &lt;file&gt;/tmp/myinput.txt&lt;/file&gt;
+                                &lt;value&gt;Steve&lt;/value&gt;
+                            &lt;/FileValue&gt;
+                        &lt;/wasReadFrom&gt;
+                    &lt;/Value&gt;
+                &lt;/sawValue&gt;    
+                &lt;seenAtPort rdf:resource=&quot;http://www.example.com/workflow1#inName&quot;/&gt;
+                &lt;prov:hadTemporalValue rdf:parseType=&quot;Resource&quot;&gt;
+                    &lt;time:inDateTimeXSD&gt;2011-10-21T09:21:31Z&lt;/time:inDateTimeXSD&gt;
+                &lt;/prov:hadTemporalValue&gt;
+            &lt;/prov:Usage&gt;
+        &lt;/wf:usedValue&gt;
+        &lt;wf:generatedValue&gt;
+            &lt;prov:Generation&gt;
+                &lt;sawValue&gt;
+                    &lt;Value rdf:about=&quot;#sha1FromWorkflow&quot;&gt;
+                        &lt;value&gt;a33d1fb1658d4fbf017de59ab67437a3eb5ff50d&lt;/value&gt;
+                        &lt;wf:sameValueAs rdf:resource=&quot;#sha1&quot;/&gt;
+                    &lt;/Value&gt;
+                &lt;/sawValue&gt;    
+                &lt;wasSeenAt rdf:resource=&quot;http://www.example.com/workflow1#sha1&quot;/&gt;
+            &lt;/prov:Generation&gt;
+        &lt;/wf:generatedValue&gt;
+    &lt;/Process&gt;
 
-    &lt;wf:Process rdf:about=&quot;#shasum&quot;&gt;
-        &lt;prov:used rdf:resource=&quot;#combined&quot;/&gt;
-        &lt;wf:wasSubProcessExecutionOf rdf:resource=&quot;#workflowRun&quot;/&gt;
-        &lt;wf:wasDefinedBy rdf:resource=&quot;http://www.example.com/workflow1#shasum&quot;/&gt;
+    &lt;Process rdf:about=&quot;#constant&quot;&gt;
+        &lt;wasDefinedBy rdf:resource=&quot;http://www.example.com/workflow1#String_Constant&quot;/&gt;
+        &lt;wasSubProcessExecutionOf rdf:resource=&quot;#workflowRun&quot;/&gt;
         &lt;prov:startedAt&gt;
-            &lt;prov:Time&gt;
-                &lt;time:inDateTimeXSD&gt;2011-10-21T09:20:30Z&lt;/time:inDateTimeXSD&gt;
-            &lt;/prov:Time&gt;
+            &lt;time:Instant rdf:about=&quot;#t0&quot;&gt;
+                &lt;time:inDateTimeXSD&gt;2011-10-21T09:20:15Z&lt;/time:inDateTimeXSD&gt;
+            &lt;/time:Instant&gt;
         &lt;/prov:startedAt&gt;
-        &lt;prov:endedAt&gt;
-            &lt;prov:Time&gt;
-                &lt;time:inDateTimeXSD&gt;2011-10-21T09:21:00Z&lt;/time:inDateTimeXSD&gt;
-            &lt;/prov:Time&gt;
-        &lt;/prov:endedAt&gt;
-    &lt;/wf:Process&gt;
 
-    &lt;wf:Value rdf:about=&quot;#sha1&quot;&gt;
-        &lt;wf:value&gt;
-            &lt;cnt:ContentAsText&gt;
-                &lt;cnt:characterEncoding&gt;UTF-8&lt;/cnt:characterEncoding&gt;
-                &lt;cnt:chars&gt;a33d1fb1658d4fbf017de59ab67437a3eb5ff50d&lt;/cnt:chars&gt;
-            &lt;/cnt:ContentAsText&gt;
-        &lt;/wf:value&gt;
-    &lt;/wf:Value&gt;
+        &lt;prov:endedAt rdf:resource=&quot;#t0&quot;/&gt;
+        &lt;wf:generatedValue&gt;
+            &lt;prov:Generation&gt;
+                &lt;sawValue rdf:resource=&quot;http://www.example.com/workflow1#String_Constant_value&quot;/&gt;
+                &lt;prov:hadQualifiedEntity&gt;
+                    &lt;Value rdf:about=&quot;#hello&quot;&gt;
+                        &lt;value&gt;Hello, &lt;/value&gt;
+                    &lt;/Value&gt;
+                &lt;/prov:hadQualifiedEntity&gt;
+                &lt;prov:hadTemporalValue rdf:resource=&quot;#t0&quot;/&gt;
+            &lt;/prov:Generation&gt;
+        &lt;/wf:generatedValue&gt;
+    &lt;/Process&gt;
 
-    &lt;wf:ValueAtPort rdf:about=&quot;#sha1OutputFromShasum&quot;&gt;
-        &lt;prov:wasGeneratedBy rdf:resource=&quot;#shasum&quot;/&gt;
-        &lt;wf:value&gt;
-            &lt;cnt:ContentAsText&gt;
-                &lt;cnt:characterEncoding&gt;UTF-8&lt;/cnt:characterEncoding&gt;
-                &lt;cnt:chars&gt;a33d1fb1658d4fbf017de59ab67437a3eb5ff50d&lt;/cnt:chars&gt;
-            &lt;/cnt:ContentAsText&gt;
-        &lt;/wf:value&gt;
-        &lt;wf:sawValue rdf:resource=&quot;#sha1&quot;/&gt;
-        &lt;wf:wasSeenAt rdf:resource=&quot;http://www.example.com/workflow1#shaOut&quot;/&gt;
-    &lt;/wf:ValueAtPort&gt;
-
-    &lt;wf:ValueAtPort rdf:about=&quot;#sha1OutputFromWorkflow&quot;&gt;
-        &lt;prov:wasGeneratedBy rdf:resource=&quot;#workflowRun&quot;/&gt;
-        &lt;wf:value&gt;
-            &lt;cnt:ContentAsText&gt;
-                &lt;cnt:characterEncoding&gt;UTF-8&lt;/cnt:characterEncoding&gt;
-                &lt;cnt:chars&gt;a33d1fb1658d4fbf017de59ab67437a3eb5ff50d&lt;/cnt:chars&gt;
-            &lt;/cnt:ContentAsText&gt;
-        &lt;/wf:value&gt;
-        &lt;wf:sawValue rdf:resource=&quot;#sha1&quot;/&gt;
-        &lt;wf:wasSeenAt rdf:resource=&quot;http://www.example.com/workflow1#sha1&quot;/&gt;
-    &lt;/wf:ValueAtPort&gt;
-
+    &lt;Process rdf:about=&quot;#combine&quot;&gt;
+        &lt;wasDefinedBy rdf:resource=&quot;http://www.example.com/workflow1#cat&quot;/&gt;
+        &lt;wasSubProcessExecutionOf rdf:resource=&quot;#workflowRun&quot;/&gt;
+        &lt;prov:startedAt rdf:parseType=&quot;Resource&quot;&gt;
+            &lt;time:inDateTimeXSD&gt;2011-10-21T09:20:20Z&lt;/time:inDateTimeXSD&gt;
+        &lt;/prov:startedAt&gt;
+        &lt;prov:endedAt rdf:parseType=&quot;Resource&quot;&gt;
+            &lt;time:inDateTimeXSD&gt;2011-10-21T09:20:25Z&lt;/time:inDateTimeXSD&gt;
+        &lt;/prov:endedAt&gt;
+        &lt;wf:usedValue&gt;
+            &lt;prov:Usage&gt;
+                &lt;seenAtPort rdf:resource=&quot;http://www.example.com/workflow1#catIn1&quot;/&gt;
+                &lt;prov:hadQualifiedEntity rdf:resource=&quot;#hello&quot;/&gt;
+                &lt;prov:hadTemporalValue rdf:parseType=&quot;Resource&quot;&gt;
+                    &lt;time:inDateTimeXSD&gt;2011-10-21T09:20:21Z&lt;/time:inDateTimeXSD&gt;
+                &lt;/prov:hadTemporalValue&gt;
+            &lt;/prov:Usage&gt;
+        &lt;/wf:usedValue&gt;
+        &lt;wf:usedValue&gt;
+            &lt;prov:Usage&gt;
+                &lt;sawValue rdf:resource=&quot;#input&quot;/&gt;
+                &lt;seenAtPort rdf:resource=&quot;http://www.example.com/workflow1#catIn2&quot;/&gt;
+                &lt;prov:hadTemporalValue rdf:parseType=&quot;Resource&quot;&gt;
+                    &lt;time:inDateTimeXSD&gt;2011-10-21T09:20:23Z&lt;/time:inDateTimeXSD&gt;
+                &lt;/prov:hadTemporalValue&gt;
+            &lt;/prov:Usage&gt;
+        &lt;/wf:usedValue&gt;
+        &lt;wf:generatedValue&gt;
+            &lt;prov:Generation&gt;
+                &lt;sawValue&gt;
+                    &lt;Value rdf:about=&quot;#combined&quot;&gt;
+                        &lt;value&gt;Hello, Steve&lt;/value&gt;
+                    &lt;/Value&gt;
+                &lt;/sawValue&gt;    
+                &lt;seenAtPort rdf:resource=&quot;http://www.example.com/workflow1#catOut&quot;/&gt;
+            &lt;/prov:Generation&gt;
+        &lt;/wf:generatedValue&gt;
+    &lt;/Process&gt;
+    &lt;Process rdf:about=&quot;#shasum&quot;&gt;
+        &lt;wasDefinedBy rdf:resource=&quot;http://www.example.com/workflow1#shasum&quot;/&gt;
+        &lt;wasSubProcessExecutionOf rdf:resource=&quot;#workflowRun&quot;/&gt;
+        &lt;prov:startedAt rdf:parseType=&quot;Resource&quot;&gt;
+            &lt;time:inDateTimeXSD&gt;2011-10-21T09:20:30Z&lt;/time:inDateTimeXSD&gt;
+        &lt;/prov:startedAt&gt;
+        &lt;prov:endedAt rdf:parseType=&quot;Resource&quot;&gt;
+            &lt;time:inDateTimeXSD&gt;2011-10-21T09:21:00Z&lt;/time:inDateTimeXSD&gt;
+        &lt;/prov:endedAt&gt;
+        &lt;wf:generatedValue&gt;
+            &lt;prov:Generation&gt;
+                &lt;sawValue&gt;
+                    &lt;Value rdf:about=&quot;#sha1&quot;&gt;
+                        &lt;value&gt;a33d1fb1658d4fbf017de59ab67437a3eb5ff50d&lt;/value&gt;
+                    &lt;/Value&gt;
+                &lt;/sawValue&gt;
+                &lt;wasSeenAt rdf:resource=&quot;http://www.example.com/workflow1#shaOut&quot;/&gt;
+            &lt;/prov:Generation&gt;
+        &lt;/wf:generatedValue&gt;
+    &lt;/Process&gt;
 &lt;/rdf:RDF&gt;</pre>
             <em>Example available as 
             <a href="examples/ontology-extensions/workflow/workflow.rdf">RDF/XML</a>
--- a/ontology/ProvenanceFormalModel.html	Fri Nov 18 16:45:13 2011 +0000
+++ b/ontology/ProvenanceFormalModel.html	Fri Nov 18 16:46:35 2011 +0000
@@ -1257,7 +1257,6 @@
         connecting together disparate set of domain-specific tools and
         services.  
         </p>
-
         <p>
           Capturing the provenance of executions in such a workflow
           system will typically include details of each of the process
@@ -1275,10 +1274,18 @@
         <img
           src="examples/ontology-extensions/workflow/workflowOntology.png"
           style="width: 60%; min-width: 20em; max-width: 40em"
-          alt="New classes wf:WorkFlowEngine, wf:Process, wf:ValueAtPort, wf:FileValue, and wf:Value extend prov:Agent, prov:ProcessExecution, prov:EntityInRole. New properties wf:wasLaunchedBy, wf:ranInWorkflowEngine, wf:wasSubProcessExecutionOf, wf:wasReadFrom, wf:sawValue extend prov:wasControlledBy, prov:wasDerivedFrom." />
+          alt="New classes wf:WorkFlowEngine, wf:Process,
+          wf:ValueAtPort, wf:FileValue, and wf:Value extend prov:Agent,
+          prov:ProcessExecution.  New properties wf:wasLaunchedBy, wf:ranInWorkflowEngine, wf:wasSubProcessExecutionOf, wf:wasReadFrom, wf:sawValue extend prov:wasControlledBy, prov:wasDerivedFrom." />
           <br>
           <em>Example extension of PROV ontology in order to describe
-          workflow provenance</em>
+          workflow provenance. This OWL ontology can be downloaded as 
+            <a
+            href="examples/ontology-extensions/workflow/workflowOntology.rdf">RDF/XML</a>
+            and
+            <a
+            href="examples/ontology-extensions/workflow/workflowOntology.ttl">Turtle</a>
+            </em>
         </p>
         <section id="workflow-extensions-to-prov-classes">
             <h4>Workflow extensions to PROV classes</h4>
@@ -1310,21 +1317,14 @@
                     value appearing in the workflow execution, it will
                     typically be <i>used</i> or <i>generated</i> by
                     <i>wf:Process</i> executions. The actual value can
-                    be provided with a <i>wf:value</i> property.
-                </dd>
-                <dt>wf:ValueAtPort</dt>
-                <dd>
-                    A subclass of <i>wf:Value</i> and <i>prov:EntityInRole</i>,
-                    indicating a value while in the role of being used
-                    or generated by a <i>wf:Process</i> at a particular
-                    <i>wf:Port</i>.
+                    be provided as a literal with a <i>wf:value</i> property.
                 </dd>
                 <dt>wf:FileValue</dt>
                 <dd>
                     A <i>wf:Value</i> which has been read from a file.
                     As an <i>prov:Entity</i> this represents 
                     an entity with both attributes <i>wf:value</i> and
-                    <i>wf:filename</i> fixed, that is the entity describes
+                    <i>wf:file</i> fixed, that is the entity describes
                     the point when the given file contained the 
                     content. As the file might be read a while before
                     the <i>wf:Value</i> is used by a <i>wf:Process</i>, 
@@ -1333,6 +1333,15 @@
                     this file value using the <i>wf:wasReadFrom</i>
                     property.
                 </dd>
+                <dt>wf:ValueAtPort</dt>
+                <dd>
+                    A subclass of <i>prov:QualifiedInvolvement</i>, representing a
+                    value (given by <i>wf:sawValue</i>) observed at a
+                    given port in the workflow (given by
+                    <i>wf:seenAtPort</i>. This description is the range
+                    of <i>wf:generatedValue</i> and <i>wf:usedValue</i>
+                    on a <i>wf:Process</i>.
+                </dd>
             </dl>
         </section>
         <section id="workflow-extensions-to-prov-properties">
@@ -1402,33 +1411,56 @@
                  </dd>
                  <dt>wf:sawValue</dt>
                  <dd>
-                    A subproperty of <i>prov:wasAssumedBy</i> which
+                    A subproperty of <i>prov:hadQualifiedEntity</i> which
                     indicates that an <i>wf:Value</i> was
                     <i>wf:seenAtPort</i> within an
-                    <i>wf:ValueAtPort</i>. This ValueAtPort is a complement of the
-                    pointed at Value because one can consider this
-                    entity to to have the same attributes, but in
-                    addition the <i>wf:seenAtPort</i> property is fixed.
+                    <i>wf:ValueAtPort</i>. 
                  </dd>
 
-                 <dt>wf:wasSeenAtPort</dt>
+                 <dt>wf:seenAtPort</dt>
                  <dd>
-                    A subproperty of <i>prov:assumedRole</i> (not yet defined in
-                    PROV ontology) indicating which <i>wf:Port</i> a
-                    <i>wf:ValueAtPort</i> was seen at. Thus one can see
+                    A subproperty of <i>prov:hadRole</i> 
+                    indicating which <i>wf:Port</i> (in the workflow
+                    definition) a <i>wf:ValueAtPort</i> was seen at. Thus one can see
                     at which output port a value was generated, or at
                     which input port(s) it was used. 
-                    
-                    As a functional property this requires a different
-                    <i>wf:ValueAtPort</i> for each <i>use</i> and
-                    <i>generation</i> of a value. The
-                    <i>wf:ValueAtPort</i> is linked to the 
-                    <i>wf:Entity</i> using <i>prov:wasComplementOf</i>
-                  <div class='issue'>Need
-                  prov:assumedRole in ontology -Stian</div>
                 </dd>
+                 <dt>wf:generatedValue</dt>
+                 <dd>
+                    A subproperty of <i>prov:hadQualifiedGeneration</i>,
+                    specifying which port we <i>wf:sawValue</i> and
+                    where it <i>wf:wasSeenAtPort</i> as it was
+                    generated. The domain of this
+                    property is <i>wf:Process</i>, the range
+                    <i>wf:ValueAtPort</i> (and implied
+                    <i>prov:Generation</i>)
+                </dd>
+                 <dt>wf:usedValue</dt>
+                 <dd>
+                    A subproperty of <i>prov:hadQualifiedUsage</i>,
+                    specifying which port we <i>wf:sawValue</i> and
+                    where it <i>wf:wasSeenAtPort</i> as it was
+                    used. The domain of this
+                    property is <i>wf:Process</i>, the range
+                    <i>wf:ValueAtPort</i> (and implied
+                    <i>prov:Usage</i>)
+                </dd>
+                <dt>wf:sameValueAs</dt>
+                 <dd>
+                    A subproperty of <i>prov:wasComplementOf</i> and
+                    <i>prov:wasDerivedFrom</i>,
+                    specifying that an <i>wf:Value</i> was the same as
+                    another <i>wf:Value</i>. This is used to indicate
+                    that a value at an workflow output port is the same
+                    as the value at a processor output port, although
+                    they have different history of generation, they both
+                    represent the same <i>wf:value</i> and are the same
+                    "thing".
+                </dd>
+
             </dl>
         </section>
+        <!--
         <section id="workflow-structure">
             <h4>Workflow structure</h4>
             <p>
@@ -1496,6 +1528,7 @@
               </dd>
             </dl>
         </section>
+        -->
         <section id="example-workflow">
             <h4>Example workflow</h4>
             <img src="examples/ontology-extensions/workflow/Concatsha1.png"
@@ -1511,61 +1544,14 @@
             to the other workflow port.
             </p>
             <p>
-            Using the definition ontology above this workflow can be
-            expressed in RDF/XML as:
+            An example of abstract definition of this workflow can be
+            seen as 
+            <a
+            href="examples/ontology-extensions/workflow/workflowDefinition.rdf">RDF/XML</a>
+            and
+            <a
+            href="examples/ontology-extensions/workflow/workflowDefinition.ttl">Turtle</a>
             </p>
-		<div class="exampleOuter">
-				<pre class="example">
-&lt;rdf:RDF xml:base="http://www.example.com/workflow1#"
-    xmlns:impl="http://company.example.org/engine-implementation#"
-    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-    xmlns:wf="http://www.example.com/scientific-workflow#"&gt;
-
-    &lt;wf:ProcessDefinition rdf:about="#workflow"&gt;
-        &lt;rdf:type rdf:resource="http://company.example.org/engine-implementation#Workflow"/&gt;
-        &lt;wf:definesInput&gt;
-            &lt;wf:Input rdf:about="#inName"&gt;
-                &lt;wf:linksTo rdf:resource="#catIn2" /&gt;
-            &lt;/wf:Input&gt;
-        &lt;/wf:definesInput&gt;
-        &lt;wf:definesOutput rdf:resource="#combined" /&gt;
-        &lt;wf:definesOutput rdf:resource="#sha1" /&gt;
-        &lt;wf:definesSubProcess&gt;
-            &lt;impl:Constant rdf:about="#String_constant"&gt;
-                &lt;impl:constant&gt;Hello, &lt;/impl:constant&gt;
-                &lt;wf:definesOutput&gt;
-                    &lt;wf:Output rdf:about="#constantValue"&gt;
-                        &lt;wf:linksTo rdf:resource="#catIn1"/&gt;
-                    &lt;/wf:Output&gt;
-                &lt;/wf:definesOutput&gt;
-            &lt;/impl:Constant&gt;
-        &lt;/wf:definesSubProcess&gt;
-        &lt;wf:definesSubProcess&gt;
-            &lt;impl:Command rdf:about="#cat"&gt;
-                &lt;impl:command&gt;cat&lt;/impl:command&gt;
-                &lt;wf:definesInput rdf:resource="#catIn1" /&gt;
-                &lt;wf:definesInput rdf:resource="#catIn2" /&gt;
-                &lt;wf:definesOutput&gt;
-                    &lt;wf:Output rdf:about="#catOut"&gt;
-                        &lt;wf:linksTo rdf:resource="#shaIn"/&gt;
-                    &lt;/wf:Output&gt;
-                &lt;/wf:definesOutput&gt;
-            &lt;/impl:Command&gt;
-        &lt;/wf:definesSubProcess&gt;
-        &lt;wf:definesSubProcess&gt;
-            &lt;impl:Command rdf:about="#shasum"&gt;
-                &lt;impl:command&gt;shasum&lt;/impl:command&gt;
-                &lt;wf:definesInput rdf:resource="#shaIn" /&gt;
-                &lt;wf:definesOutput&gt;
-                    &lt;wf:Output rdf:about="#shaOut"&gt;
-                        &lt;wf:linksTo rdf:resource="#sha1"/&gt;
-                    &lt;/wf:Output&gt;
-                &lt;/wf:definesOutput&gt;
-            &lt;/impl:Command&gt;
-        &lt;/wf:definesSubProcess&gt;
-    &lt;/wf:ProcessDefinition&gt;
-&lt;/rdf:RDF&gt;            
-        </pre></div>
         </section>
         <section id="example-workflow-run">
             <h4>Example workflow run</h4>
@@ -1575,201 +1561,144 @@
               the workflow defined above.
             </p>
             <div class="exampleOuter"><pre class="example">
-&lt;rdf:RDF 
-    xmlns:cnt="http://www.w3.org/2011/content#"
+&lt;rdf:RDF xmlns="http://www.example.com/scientific-workflow#"
     xmlns:foaf="http://xmlns.com/foaf/0.1/"
     xmlns:prov="http://www.w3.org/ns/prov-o/"
-    xmlns:time="http://www.w3.org/2006/time#"
     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-    xmlns:wf="http://www.example.com/scientific-workflow#"
-    xmlns:run="http://www.example.com/run1#"
-    xmlns:base="http://www.example.com/run1#"
-    &gt;
-
-    &lt;prov:Agent rdf:about="#aUser"&gt;
-        &lt;rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Person"/&gt;
-        &lt;foaf:name&gt;Stian Soiland-Reyes&lt;/foaf:name&gt;
-    &lt;/prov:Agent&gt;
-
-    &lt;wf:WorkflowEngine rdf:about="#workflowEngine" /&gt;
-
-    &lt;wf:FileValue rdf:about="#inputFile"&gt;
-        &lt;wf:file&gt;/tmp/myinput.txt&lt;/wf:file&gt;
-        &lt;wf:value&gt;
-            &lt;cnt:ContentAsText&gt;
-                &lt;cnt:characterEncoding&gt;UTF-8&lt;/cnt:characterEncoding&gt;
-                &lt;cnt:chars&gt;Steve&lt;/cnt:chars&gt;
-            &lt;/cnt:ContentAsText&gt;
-        &lt;/wf:value&gt;
-    &lt;/wf:FileValue&gt;
-
-    &lt;wf:Value rdf:about="#input"&gt;
-        &lt;wf:wasReadFrom rdf:resource="#inputFile"/&gt;
-        &lt;wf:value&gt;
-            &lt;cnt:ContentAsText&gt;
-                &lt;cnt:characterEncoding&gt;UTF-8&lt;/cnt:characterEncoding&gt;
-                &lt;cnt:chars&gt;Steve&lt;/cnt:chars&gt;
-            &lt;/cnt:ContentAsText&gt;
-        &lt;/wf:value&gt;
-    &lt;/wf:Value&gt;
-
-    &lt;wf:Process rdf:about="#workflowRun"&gt;
-        &lt;prov:used&gt;
-            &lt;wf:ValueAtPort&gt;
-                &lt;wf:sawValue rdf:resource="#input"/&gt;
-                &lt;wf:seenAtPort rdf:resource="http://www.example.com/workflow1#inName"/&gt;
-                &lt;prov:assumedRoleAt&gt;
-                    &lt;prov:Time&gt;
-                        &lt;time:inDateTimeXSD&gt;2011-10-21T09:21:31Z&lt;/time:inDateTimeXSD&gt;
-                    &lt;/prov:Time&gt;
-                &lt;/prov:assumedRoleAt&gt;
-            &lt;/wf:ValueAtPort&gt;
-        &lt;/prov:used&gt;
-        &lt;wf:ranInWorkflowEngine rdf:resource="#workflowEngine"/&gt;
-        &lt;wf:wasLaunchedBy rdf:resource="#aUser"/&gt;
-        &lt;wf:wasDefinedBy rdf:resource="http://www.example.com/workflow1#workflow"/&gt;
-        &lt;prov:startedAt&gt;
-            &lt;prov:Time&gt;
-                &lt;time:inDateTimeXSD&gt;2011-10-21T09:20:15Z&lt;/time:inDateTimeXSD&gt;
-            &lt;/prov:Time&gt;
-        &lt;/prov:startedAt&gt;
-        &lt;prov:endedAt&gt;
-            &lt;prov:Time&gt;
-                &lt;time:inDateTimeXSD&gt;2011-10-21T09:23:32Z&lt;/time:inDateTimeXSD&gt;
-            &lt;/prov:Time&gt;
-        &lt;/prov:endedAt&gt;
-    &lt;/wf:Process&gt;
-
-    &lt;wf:Process rdf:about="#constant"&gt;
-        &lt;wf:wasSubProcessExecutionOf rdf:resource="#workflowRun"/&gt;
-        &lt;wf:wasDefinedBy
-        rdf:resource="http://www.example.com/workflow1#String_Constant"/&gt;
-        &lt;prov:startedAt&gt;
-            &lt;prov:Time rdf:about="#t0"&gt;
-                &lt;time:inDateTimeXSD&gt;2011-10-21T09:20:15Z&lt;/time:inDateTimeXSD&gt;
-            &lt;/prov:Time&gt;
-        &lt;/prov:startedAt&gt;
-        &lt;prov:endedAt rdf:resource="#t0" /&gt;
-    &lt;/wf:Process&gt;
-
-    &lt;wf:Value rdf:about="#hello"&gt;
-        &lt;prov:wasGeneratedBy rdf:resource="#constant"/&gt;
-        &lt;prov:wasGeneratedAt rdf:resource="#t0"/&gt;
-        &lt;prov:endedAt rdf:resource="#t0" /&gt;
-        &lt;wf:value&gt;
-            &lt;cnt:ContentAsText&gt;
-                &lt;cnt:chars&gt;Hello, &lt;/cnt:chars&gt;
-            &lt;/cnt:ContentAsText&gt;
-        &lt;/wf:value&gt;
-    &lt;/wf:Value&gt;
-
-    &lt;wf:ValueAtPort rdf:about="#helloValue"&gt;
-        &lt;prov:wasGeneratedBy rdf:resource="#constant"/&gt;
-        &lt;wf:value&gt;
-            &lt;cnt:ContentAsText&gt;
-                &lt;cnt:chars&gt;Hello, &lt;/cnt:chars&gt;
-            &lt;/cnt:ContentAsText&gt;
-        &lt;/wf:value&gt;
-        &lt;wf:sawEntity rdf:resource="#hello"/&gt;
-    &lt;/wf:ValueAtPort&gt;
+    xmlns:time="http://www.w3.org/2006/time#"
+    xmlns:wf="http://www.example.com/scientific-workflow#"&gt;
 
-    &lt;wf:Process rdf:about="#combine"&gt;
-        &lt;prov:used&gt;
-          &lt;wf:ValueAtPort&gt;
-            &lt;wf:sawValue rdf:resource="#hello"/&gt;
-            &lt;wf:seenAtPort rdf:resource="http://www.example.com/workflow1#catIn1"/&gt;
-            &lt;prov:assumedRoleAt&gt;
-                &lt;prov:Time&gt;
-                    &lt;time:inDateTimeXSD&gt;2011-10-21T09:20:21Z&lt;/time:inDateTimeXSD&gt;
-                &lt;/prov:Time&gt;
-            &lt;/prov:assumedRoleAt&gt;
-          &lt;/wf:ValueAtPort&gt;
-        &lt;/prov:used&gt;
-        &lt;prov:used&gt;
-          &lt;wf:ValueAtPort&gt;
-            &lt;wf:sawValue rdf:resource="#input"/&gt;
-            &lt;wf:seenAtPort rdf:resource="http://www.example.com/workflow1#catIn2"/&gt;
-            &lt;prov:assumedRoleAt&gt;
-                &lt;prov:Time&gt;
-                    &lt;time:inDateTimeXSD&gt;2011-10-21T09:20:23Z&lt;/time:inDateTimeXSD&gt;
-                &lt;/prov:Time&gt;
-            &lt;/prov:assumedRoleAt&gt;
-          &lt;/wf:ValueAtPort&gt;
-        &lt;/prov:used&gt;
-        &lt;wf:wasSubProcessExecutionOf rdf:resource="#workflowRun"/&gt;
-        &lt;wf:wasDefinedBy rdf:resource="http://www.example.com/workflow1#cat"/&gt;
-        &lt;prov:startedAt&gt;
-            &lt;prov:Time&gt;
-                &lt;time:inDateTimeXSD&gt;2011-10-21T09:20:20Z&lt;/time:inDateTimeXSD&gt;
-            &lt;/prov:Time&gt;
+    &lt;Process rdf:about="#workflowRun"&gt;
+        &lt;ranInWorkflowEngine&gt;
+            &lt;WorkflowEngine rdf:about="#workflowEngine" /&gt;
+        &lt;/ranInWorkflowEngine&gt;
+        &lt;wasDefinedBy rdf:resource="http://www.example.com/workflow1#workflow"/&gt;
+        &lt;wasLaunchedBy&gt;
+            &lt;prov:Agent rdf:about="#aUser"&gt;
+                &lt;rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Person"/&gt;
+                &lt;foaf:name&gt;Stian Soiland-Reyes&lt;/foaf:name&gt;
+            &lt;/prov:Agent&gt;
+        &lt;/wasLaunchedBy&gt;
+        &lt;prov:startedAt rdf:parseType="Resource"&gt;
+            &lt;time:inDateTimeXSD&gt;2011-10-21T09:20:15Z&lt;/time:inDateTimeXSD&gt;
         &lt;/prov:startedAt&gt;
-        &lt;prov:endedAt&gt;
-            &lt;prov:Time&gt;
-                &lt;time:inDateTimeXSD&gt;2011-10-21T09:20:25Z&lt;/time:inDateTimeXSD&gt;
-            &lt;/prov:Time&gt;
+        &lt;prov:endedAt rdf:parseType="Resource"&gt;
+            &lt;time:inDateTimeXSD&gt;2011-10-21T09:23:32Z&lt;/time:inDateTimeXSD&gt;
         &lt;/prov:endedAt&gt;
-    &lt;/wf:Process&gt;
-
-    &lt;wf:Value rdf:about="#combined"&gt;
-        &lt;prov:wasGeneratedBy rdf:resource="#combine"/&gt;
-        &lt;wf:value&gt;
-            &lt;cnt:ContentAsText&gt;
-                &lt;cnt:chars&gt;Hello, Steve&lt;/cnt:chars&gt;
-            &lt;/cnt:ContentAsText&gt;
-        &lt;/wf:value&gt;
-    &lt;/wf:Value&gt;
+        &lt;wf:usedValue&gt;
+            &lt;prov:Usage&gt;
+                &lt;sawValue&gt;
+                    &lt;Value rdf:about="#input"&gt;
+                        &lt;value&gt;Steve&lt;/value&gt;
+                        &lt;wasReadFrom&gt;
+                            &lt;FileValue rdf:about="#inputFile"&gt;
+                                &lt;file&gt;/tmp/myinput.txt&lt;/file&gt;
+                                &lt;value&gt;Steve&lt;/value&gt;
+                            &lt;/FileValue&gt;
+                        &lt;/wasReadFrom&gt;
+                    &lt;/Value&gt;
+                &lt;/sawValue&gt;    
+                &lt;seenAtPort rdf:resource="http://www.example.com/workflow1#inName"/&gt;
+                &lt;prov:hadTemporalValue rdf:parseType="Resource"&gt;
+                    &lt;time:inDateTimeXSD&gt;2011-10-21T09:21:31Z&lt;/time:inDateTimeXSD&gt;
+                &lt;/prov:hadTemporalValue&gt;
+            &lt;/prov:Usage&gt;
+        &lt;/wf:usedValue&gt;
+        &lt;wf:generatedValue&gt;
+            &lt;prov:Generation&gt;
+                &lt;sawValue&gt;
+                    &lt;Value rdf:about="#sha1FromWorkflow"&gt;
+                        &lt;value&gt;a33d1fb1658d4fbf017de59ab67437a3eb5ff50d&lt;/value&gt;
+                        &lt;wf:sameValueAs rdf:resource="#sha1"/&gt;
+                    &lt;/Value&gt;
+                &lt;/sawValue&gt;    
+                &lt;wasSeenAt rdf:resource="http://www.example.com/workflow1#sha1"/&gt;
+            &lt;/prov:Generation&gt;
+        &lt;/wf:generatedValue&gt;
+    &lt;/Process&gt;
 
-    &lt;wf:Process rdf:about="#shasum"&gt;
-        &lt;prov:used rdf:resource="#combined"/&gt;
-        &lt;wf:wasSubProcessExecutionOf rdf:resource="#workflowRun"/&gt;
-        &lt;wf:wasDefinedBy rdf:resource="http://www.example.com/workflow1#shasum"/&gt;
+    &lt;Process rdf:about="#constant"&gt;
+        &lt;wasDefinedBy rdf:resource="http://www.example.com/workflow1#String_Constant"/&gt;
+        &lt;wasSubProcessExecutionOf rdf:resource="#workflowRun"/&gt;
         &lt;prov:startedAt&gt;
-            &lt;prov:Time&gt;
-                &lt;time:inDateTimeXSD&gt;2011-10-21T09:20:30Z&lt;/time:inDateTimeXSD&gt;
-            &lt;/prov:Time&gt;
+            &lt;time:Instant rdf:about="#t0"&gt;
+                &lt;time:inDateTimeXSD&gt;2011-10-21T09:20:15Z&lt;/time:inDateTimeXSD&gt;
+            &lt;/time:Instant&gt;
         &lt;/prov:startedAt&gt;
-        &lt;prov:endedAt&gt;
-            &lt;prov:Time&gt;
-                &lt;time:inDateTimeXSD&gt;2011-10-21T09:21:00Z&lt;/time:inDateTimeXSD&gt;
-            &lt;/prov:Time&gt;
-        &lt;/prov:endedAt&gt;
-    &lt;/wf:Process&gt;
-
-    &lt;wf:Value rdf:about="#sha1"&gt;
-        &lt;wf:value&gt;
-            &lt;cnt:ContentAsText&gt;
-                &lt;cnt:characterEncoding&gt;UTF-8&lt;/cnt:characterEncoding&gt;
-                &lt;cnt:chars&gt;a33d1fb1658d4fbf017de59ab67437a3eb5ff50d&lt;/cnt:chars&gt;
-            &lt;/cnt:ContentAsText&gt;
-        &lt;/wf:value&gt;
-    &lt;/wf:Value&gt;
 
-    &lt;wf:ValueAtPort rdf:about="#sha1OutputFromShasum"&gt;
-        &lt;prov:wasGeneratedBy rdf:resource="#shasum"/&gt;
-        &lt;wf:value&gt;
-            &lt;cnt:ContentAsText&gt;
-                &lt;cnt:characterEncoding&gt;UTF-8&lt;/cnt:characterEncoding&gt;
-                &lt;cnt:chars&gt;a33d1fb1658d4fbf017de59ab67437a3eb5ff50d&lt;/cnt:chars&gt;
-            &lt;/cnt:ContentAsText&gt;
-        &lt;/wf:value&gt;
-        &lt;wf:sawValue rdf:resource="#sha1"/&gt;
-        &lt;wf:wasSeenAt rdf:resource="http://www.example.com/workflow1#shaOut"/&gt;
-    &lt;/wf:ValueAtPort&gt;
+        &lt;prov:endedAt rdf:resource="#t0"/&gt;
+        &lt;wf:generatedValue&gt;
+            &lt;prov:Generation&gt;
+                &lt;sawValue rdf:resource="http://www.example.com/workflow1#String_Constant_value"/&gt;
+                &lt;prov:hadQualifiedEntity&gt;
+                    &lt;Value rdf:about="#hello"&gt;
+                        &lt;value&gt;Hello, &lt;/value&gt;
+                    &lt;/Value&gt;
+                &lt;/prov:hadQualifiedEntity&gt;
+                &lt;prov:hadTemporalValue rdf:resource="#t0"/&gt;
+            &lt;/prov:Generation&gt;
+        &lt;/wf:generatedValue&gt;
+    &lt;/Process&gt;
 
-    &lt;wf:ValueAtPort rdf:about="#sha1OutputFromWorkflow"&gt;
-        &lt;prov:wasGeneratedBy rdf:resource="#workflowRun"/&gt;
-        &lt;wf:value&gt;
-            &lt;cnt:ContentAsText&gt;
-                &lt;cnt:characterEncoding&gt;UTF-8&lt;/cnt:characterEncoding&gt;
-                &lt;cnt:chars&gt;a33d1fb1658d4fbf017de59ab67437a3eb5ff50d&lt;/cnt:chars&gt;
-            &lt;/cnt:ContentAsText&gt;
-        &lt;/wf:value&gt;
-        &lt;wf:sawValue rdf:resource="#sha1"/&gt;
-        &lt;wf:wasSeenAt rdf:resource="http://www.example.com/workflow1#sha1"/&gt;
-    &lt;/wf:ValueAtPort&gt;
-
+    &lt;Process rdf:about="#combine"&gt;
+        &lt;wasDefinedBy rdf:resource="http://www.example.com/workflow1#cat"/&gt;
+        &lt;wasSubProcessExecutionOf rdf:resource="#workflowRun"/&gt;
+        &lt;prov:startedAt rdf:parseType="Resource"&gt;
+            &lt;time:inDateTimeXSD&gt;2011-10-21T09:20:20Z&lt;/time:inDateTimeXSD&gt;
+        &lt;/prov:startedAt&gt;
+        &lt;prov:endedAt rdf:parseType="Resource"&gt;
+            &lt;time:inDateTimeXSD&gt;2011-10-21T09:20:25Z&lt;/time:inDateTimeXSD&gt;
+        &lt;/prov:endedAt&gt;
+        &lt;wf:usedValue&gt;
+            &lt;prov:Usage&gt;
+                &lt;seenAtPort rdf:resource="http://www.example.com/workflow1#catIn1"/&gt;
+                &lt;prov:hadQualifiedEntity rdf:resource="#hello"/&gt;
+                &lt;prov:hadTemporalValue rdf:parseType="Resource"&gt;
+                    &lt;time:inDateTimeXSD&gt;2011-10-21T09:20:21Z&lt;/time:inDateTimeXSD&gt;
+                &lt;/prov:hadTemporalValue&gt;
+            &lt;/prov:Usage&gt;
+        &lt;/wf:usedValue&gt;
+        &lt;wf:usedValue&gt;
+            &lt;prov:Usage&gt;
+                &lt;sawValue rdf:resource="#input"/&gt;
+                &lt;seenAtPort rdf:resource="http://www.example.com/workflow1#catIn2"/&gt;
+                &lt;prov:hadTemporalValue rdf:parseType="Resource"&gt;
+                    &lt;time:inDateTimeXSD&gt;2011-10-21T09:20:23Z&lt;/time:inDateTimeXSD&gt;
+                &lt;/prov:hadTemporalValue&gt;
+            &lt;/prov:Usage&gt;
+        &lt;/wf:usedValue&gt;
+        &lt;wf:generatedValue&gt;
+            &lt;prov:Generation&gt;
+                &lt;sawValue&gt;
+                    &lt;Value rdf:about="#combined"&gt;
+                        &lt;value&gt;Hello, Steve&lt;/value&gt;
+                    &lt;/Value&gt;
+                &lt;/sawValue&gt;    
+                &lt;seenAtPort rdf:resource="http://www.example.com/workflow1#catOut"/&gt;
+            &lt;/prov:Generation&gt;
+        &lt;/wf:generatedValue&gt;
+    &lt;/Process&gt;
+    &lt;Process rdf:about="#shasum"&gt;
+        &lt;wasDefinedBy rdf:resource="http://www.example.com/workflow1#shasum"/&gt;
+        &lt;wasSubProcessExecutionOf rdf:resource="#workflowRun"/&gt;
+        &lt;prov:startedAt rdf:parseType="Resource"&gt;
+            &lt;time:inDateTimeXSD&gt;2011-10-21T09:20:30Z&lt;/time:inDateTimeXSD&gt;
+        &lt;/prov:startedAt&gt;
+        &lt;prov:endedAt rdf:parseType="Resource"&gt;
+            &lt;time:inDateTimeXSD&gt;2011-10-21T09:21:00Z&lt;/time:inDateTimeXSD&gt;
+        &lt;/prov:endedAt&gt;
+        &lt;wf:generatedValue&gt;
+            &lt;prov:Generation&gt;
+                &lt;sawValue&gt;
+                    &lt;Value rdf:about="#sha1"&gt;
+                        &lt;value&gt;a33d1fb1658d4fbf017de59ab67437a3eb5ff50d&lt;/value&gt;
+                    &lt;/Value&gt;
+                &lt;/sawValue&gt;
+                &lt;wasSeenAt rdf:resource="http://www.example.com/workflow1#shaOut"/&gt;
+            &lt;/prov:Generation&gt;
+        &lt;/wf:generatedValue&gt;
+    &lt;/Process&gt;
 &lt;/rdf:RDF&gt;
-
             </pre>
             <em>Example available as 
             <a