--- a/ontology/ProvenanceOntology.owl Tue Mar 06 19:18:31 2012 +0100
+++ b/ontology/ProvenanceOntology.owl Tue Mar 06 15:41:31 2012 -0500
@@ -59,10 +59,16 @@
</owl:AnnotationProperty>
<owl:AnnotationProperty rdf:about="&rdfs;seeAlso"/>
<owl:AnnotationProperty rdf:about="&prov;category"/>
+ <owl:AnnotationProperty rdf:about="&prov;unqualifiedForm">
+ <rdfs:subPropertyOf rdf:resource="&rdfs;seeAlso"/>
+ </owl:AnnotationProperty>
<owl:AnnotationProperty rdf:about="&prov;involvementProperty">
<rdfs:subPropertyOf rdf:resource="&rdfs;seeAlso"/>
</owl:AnnotationProperty>
<owl:AnnotationProperty rdf:about="&rdfs;label"/>
+ <owl:AnnotationProperty rdf:about="&prov;qualifiedForm">
+ <rdfs:subPropertyOf rdf:resource="&rdfs;seeAlso"/>
+ </owl:AnnotationProperty>
<owl:AnnotationProperty rdf:about="&rdfs;comment"/>
@@ -91,7 +97,9 @@
<rdfs:domain rdf:resource="&prov;Agent"/>
<rdfs:range rdf:resource="&prov;Agent"/>
<prov:involvementClass rdf:resource="&prov;Responsibility"/>
+ <prov:qualifiedForm rdf:resource="&prov;Responsibility"/>
<rdfs:subPropertyOf rdf:resource="&prov;involved"/>
+ <prov:qualifiedForm rdf:resource="&prov;qualifiedResponsibility"/>
</owl:ObjectProperty>
@@ -127,6 +135,16 @@
+ <!-- http://www.w3.org/ns/prov#agent -->
+
+ <owl:ObjectProperty rdf:about="&prov;agent">
+ <prov:category>qualified</prov:category>
+ <rdfs:range rdf:resource="&prov;Agent"/>
+ <rdfs:domain rdf:resource="&prov;AgentInvolvement"/>
+ </owl:ObjectProperty>
+
+
+
<!-- http://www.w3.org/ns/prov#alternateOf -->
<owl:ObjectProperty rdf:about="&prov;alternateOf">
@@ -274,8 +292,6 @@
prov:involved should not be used without also using the subproperty.
Subproperties of prov:involved may also be asserted directly without being qualified.</rdfs:comment>
- <rdfs:domain rdf:resource="&prov;Element"/>
- <rdfs:range rdf:resource="&prov;Element"/>
<prov:involvementClass rdf:resource="&prov;Involvement"/>
</owl:ObjectProperty>
@@ -299,14 +315,182 @@
- <!-- http://www.w3.org/ns/prov#qualified -->
+ <!-- http://www.w3.org/ns/prov#qualifiedAssociation -->
- <owl:ObjectProperty rdf:about="&prov;qualified">
- <rdfs:comment>This one property is used to associate a prov:Element (prov:Entity or prov:Activity) with an instance of any subclass of prov:Involvement, which will provide additional descriptions about the binary prov:involved relation. For example, :baking prov:used :pan, :egg; prov:wasAssociatedWith :baker; prov:generated :dirty_pan; prov:qualified [ a prov:Usage; prov:entity :egg; prov:role :ingredient], [ a prov:Association; prov:entity :baker; prov:role :leader ] .</rdfs:comment>
+ <owl:ObjectProperty rdf:about="&prov;qualifiedAssociation">
+ <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
+ <rdfs:comment>If this Activity prov:wasAssociatedWith Agent :ag, then it can qualify the Association using prov:qualifiedAssociation [ a prov:Association; prov:agent :ag; :foo :bar ].</rdfs:comment>
<prov:category>qualified</prov:category>
- <rdfs:comment>The subproperties here can be deleted without concern. For example, :element prov:qualified [ a prov:Usage ] handles the case of prov:hadQualifiedUsage . http://www.w3.org/2011/prov/track/issues/255</rdfs:comment>
- <rdfs:domain rdf:resource="&prov;Element"/>
- <rdfs:range rdf:resource="&prov;Involvement"/>
+ <rdfs:domain rdf:resource="&prov;Activity"/>
+ <rdfs:range rdf:resource="&prov;Agent"/>
+ <prov:unqualifiedForm rdf:resource="&prov;wasAssociatedWith"/>
+ </owl:ObjectProperty>
+
+
+
+ <!-- http://www.w3.org/ns/prov#qualifiedAttribution -->
+
+ <owl:ObjectProperty rdf:about="&prov;qualifiedAttribution">
+ <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
+ <prov:category>qualified</prov:category>
+ <rdfs:comment>If this Entity prov:wasAttributedTo Agent :ag, then it can qualify how it was using prov:qualifiedAttribution [ a prov:Attribution; prov:agent :ag; :foo :bar ].</rdfs:comment>
+ <rdfs:range rdf:resource="&prov;Agent"/>
+ <rdfs:domain rdf:resource="&prov;Entity"/>
+ <prov:unqualifiedForm rdf:resource="&prov;wasAttributedTo"/>
+ </owl:ObjectProperty>
+
+
+
+ <!-- http://www.w3.org/ns/prov#qualifiedDerivation -->
+
+ <owl:ObjectProperty rdf:about="&prov;qualifiedDerivation">
+ <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
+ <prov:category>qualified</prov:category>
+ <rdfs:comment>If this Entity prov:wasDerivedFrom Entity :e, then it can qualify how it was derived using prov:qualifiedDerivation [ a prov:Derivation; prov:entity :e; :foo :bar ].</rdfs:comment>
+ <rdfs:range rdf:resource="&prov;Entity"/>
+ <rdfs:domain rdf:resource="&prov;Entity"/>
+ <prov:unqualifiedForm rdf:resource="&prov;wasDerivedFrom"/>
+ </owl:ObjectProperty>
+
+
+
+ <!-- http://www.w3.org/ns/prov#qualifiedEnd -->
+
+ <owl:ObjectProperty rdf:about="&prov;qualifiedEnd">
+ <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
+ <prov:category>qualified</prov:category>
+ <rdfs:comment>If this Activity prov:wasEndedBy Agent :ag, then it can qualify how it was ended using prov:qualifiedEnd [ a prov:End; prov:agent :ag; :foo :bar ].</rdfs:comment>
+ <rdfs:domain rdf:resource="&prov;Activity"/>
+ <rdfs:range rdf:resource="&prov;Agent"/>
+ <prov:unqualifiedForm rdf:resource="&prov;wasEndedBy"/>
+ </owl:ObjectProperty>
+
+
+
+ <!-- http://www.w3.org/ns/prov#qualifiedGeneration -->
+
+ <owl:ObjectProperty rdf:about="&prov;qualifiedGeneration">
+ <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
+ <rdfs:comment>If this Activity prov:generated Entity :e, then it can qualify how it did performed the Generation using prov:qualifiedGeneration [ a prov:Generation; prov:entity :e; :foo :bar ].</rdfs:comment>
+ <prov:category>qualified</prov:category>
+ <rdfs:range rdf:resource="&prov;Activity"/>
+ <rdfs:domain rdf:resource="&prov;Entity"/>
+ <prov:unqualifiedForm rdf:resource="&prov;wasGeneratedBy"/>
+ </owl:ObjectProperty>
+
+
+
+ <!-- http://www.w3.org/ns/prov#qualifiedInform -->
+
+ <owl:ObjectProperty rdf:about="&prov;qualifiedInform">
+ <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
+ <rdfs:comment>If this Activity prov:wasInformedBy Activity :a, then it can qualify how it was Inform[ed] using prov:qualifiedInform [ a prov:Inform; prov:activity :a; :foo :bar ].</rdfs:comment>
+ <prov:category>qualified</prov:category>
+ <rdfs:domain rdf:resource="&prov;Activity"/>
+ <rdfs:range rdf:resource="&prov;Activity"/>
+ <prov:unqualifiedForm rdf:resource="&prov;wasInformedBy"/>
+ </owl:ObjectProperty>
+
+
+
+ <!-- http://www.w3.org/ns/prov#qualifiedQuotation -->
+
+ <owl:ObjectProperty rdf:about="&prov;qualifiedQuotation">
+ <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
+ <prov:category>qualified</prov:category>
+ <rdfs:comment>If this Entity prov:wasQuotedFrom Entity :e, then it can qualify how using prov:qualifiedQuotation [ a prov:Quotation; prov:entity :e; :foo :bar ].</rdfs:comment>
+ <rdfs:range rdf:resource="&prov;Entity"/>
+ <rdfs:domain rdf:resource="&prov;Entity"/>
+ <prov:unqualifiedForm rdf:resource="&prov;wasQuotedFrom"/>
+ </owl:ObjectProperty>
+
+
+
+ <!-- http://www.w3.org/ns/prov#qualifiedResponsibility -->
+
+ <owl:ObjectProperty rdf:about="&prov;qualifiedResponsibility">
+ <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
+ <prov:category>qualified</prov:category>
+ <rdfs:comment>If this Agent prov:actedOnBehalfOf Agent :ag, then it can qualify how with prov:qualifiedResponsibility [ a prov:Responsibility; prov:agent :ag; :foo :bar ].</rdfs:comment>
+ <rdfs:range rdf:resource="&prov;Agent"/>
+ <rdfs:domain rdf:resource="&prov;Agent"/>
+ <prov:unqualifiedForm rdf:resource="&prov;actedOnBehalfOf"/>
+ </owl:ObjectProperty>
+
+
+
+ <!-- http://www.w3.org/ns/prov#qualifiedRevision -->
+
+ <owl:ObjectProperty rdf:about="&prov;qualifiedRevision">
+ <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
+ <rdfs:comment>If this Entity prov:wasRevisionOf Entity :e, then it can qualify how it was revised using prov:qualifiedRevision [ a prov:Revision; prov:entity :e; :foo :bar ].</rdfs:comment>
+ <prov:category>qualified</prov:category>
+ <rdfs:domain rdf:resource="&prov;Entity"/>
+ <rdfs:range rdf:resource="&prov;Entity"/>
+ <prov:unqualifiedForm rdf:resource="&prov;wasRevisionOf"/>
+ </owl:ObjectProperty>
+
+
+
+ <!-- http://www.w3.org/ns/prov#qualifiedSource -->
+
+ <owl:ObjectProperty rdf:about="&prov;qualifiedSource">
+ <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
+ <prov:category>qualified</prov:category>
+ <rdfs:comment>If this Entity prov:hadOriginalSource Entity :e, then it can qualify how using prov:qualifiedSource [ a prov:Source; prov:entity :e; :foo :bar ].</rdfs:comment>
+ <rdfs:range rdf:resource="&prov;Entity"/>
+ <rdfs:domain rdf:resource="&prov;Entity"/>
+ <prov:unqualifiedForm rdf:resource="&prov;hadOriginalSource"/>
+ </owl:ObjectProperty>
+
+
+
+ <!-- http://www.w3.org/ns/prov#qualifiedStart -->
+
+ <owl:ObjectProperty rdf:about="&prov;qualifiedStart">
+ <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
+ <prov:category>qualified</prov:category>
+ <rdfs:comment>If this Activity prov:wasStartedBy Agent :ag, then it can qualify how it was started using prov:qualifiedStart [ a prov:Start; prov:agent :ag; :foo :bar ].</rdfs:comment>
+ <rdfs:domain rdf:resource="&prov;Activity"/>
+ <rdfs:range rdf:resource="&prov;Agent"/>
+ <prov:unqualifiedForm rdf:resource="&prov;wasStartedBy"/>
+ </owl:ObjectProperty>
+
+
+
+ <!-- http://www.w3.org/ns/prov#qualifiedStartByActivity -->
+
+ <owl:ObjectProperty rdf:about="&prov;qualifiedStartByActivity">
+ <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
+ <prov:category>qualified</prov:category>
+ <rdfs:comment>If this Activity prov:wasStartedByActivity :a, then it can qualify how it was started using prov:qualifiedStart [ a prov:Start; prov:activity :a; :foo :bar ].</rdfs:comment>
+ <rdfs:range rdf:resource="&prov;Activity"/>
+ <rdfs:domain rdf:resource="&prov;Activity"/>
+ <prov:unqualifiedForm rdf:resource="&prov;wasStartedByActivity"/>
+ </owl:ObjectProperty>
+
+
+
+ <!-- http://www.w3.org/ns/prov#qualifiedTrace -->
+
+ <owl:ObjectProperty rdf:about="&prov;qualifiedTrace">
+ <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
+ <prov:category>qualified</prov:category>
+ <rdfs:comment>If this prov:wasAttributedTo Entity :e, then it can qualify how using prov:qualifiedTrace [ a prov:Trace; prov:entity :e; :foo :bar ]. If this prov:wasAttributedTo Activity :a, then it can qualify how using prov:qualifiedTrace [ a prov:Trace; prov:activity :a; :foo :bar ].</rdfs:comment>
+ <prov:unqualifiedForm rdf:resource="&prov;tracedTo"/>
+ </owl:ObjectProperty>
+
+
+
+ <!-- http://www.w3.org/ns/prov#qualifiedUsage -->
+
+ <owl:ObjectProperty rdf:about="&prov;qualifiedUsage">
+ <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
+ <rdfs:comment>If this Activity prov:used Entity :e, then it can qualify how it used it using prov:qualifiedUsage [ a prov:Usage; prov:entity :e; :foo :bar ].</rdfs:comment>
+ <prov:category>qualified</prov:category>
+ <rdfs:domain rdf:resource="&prov;Activity"/>
+ <rdfs:range rdf:resource="&prov;Entity"/>
+ <prov:unqualifiedForm rdf:resource="&prov;used"/>
</owl:ObjectProperty>
@@ -495,7 +679,6 @@
<owl:ObjectProperty rdf:about="&prov;wasStartedBy">
<rdfs:seeAlso rdf:resource="http://www.w3.org/2011/prov/wiki/ProvRDF#Starting"/>
- <rdfs:range rdf:resource="&prov;Element"/>
<prov:involvementClass rdf:resource="&prov;Start"/>
<rdfs:subPropertyOf rdf:resource="&prov;wasAssociatedWith"/>
</owl:ObjectProperty>
@@ -554,7 +737,7 @@
<!-- http://www.w3.org/ns/prov#Activity -->
<owl:Class rdf:about="&prov;Activity">
- <rdfs:subClassOf rdf:resource="&prov;Element"/>
+ <rdfs:subClassOf rdf:resource="&owl;Thing"/>
<owl:disjointWith rdf:resource="&prov;Entity"/>
<prov:category>core</prov:category>
<rdfs:comment xml:lang="en">Activity is defined to be 'an identifiable activity, which performs a piece of work.'</rdfs:comment>
@@ -641,17 +824,6 @@
- <!-- http://www.w3.org/ns/prov#Element -->
-
- <owl:Class rdf:about="&prov;Element">
- <rdfs:comment rdf:datatype="&rdfs;Literal">Element could be avoided if we could specify unions on domains and ranges.</rdfs:comment>
- <rdfs:comment xml:lang="en">Element is the union of Activity and Entity, which are the principal topics of PROV.
-
-(Due to OWL-RL restriction this union is not specified here)</rdfs:comment>
- </owl:Class>
-
-
-
<!-- http://www.w3.org/ns/prov#End -->
<owl:Class rdf:about="&prov;End">
@@ -668,7 +840,7 @@
<!-- http://www.w3.org/ns/prov#Entity -->
<owl:Class rdf:about="&prov;Entity">
- <rdfs:subClassOf rdf:resource="&prov;Element"/>
+ <rdfs:subClassOf rdf:resource="&owl;Thing"/>
<rdfs:comment xml:lang="en">An identifiable characterized entity.</rdfs:comment>
<prov:category>core</prov:category>
<rdfs:seeAlso rdf:resource="http://www.w3.org/2011/prov/wiki/ProvRDF#Entity"/>
@@ -718,6 +890,7 @@
<!-- http://www.w3.org/ns/prov#Involvement -->
<owl:Class rdf:about="&prov;Involvement">
+ <rdfs:comment>TODO: For simplicity, the hierarchy "stops" at the primary Elements (Activity, Entity, Agent)</rdfs:comment>
<rdfs:comment xml:lang="en">An instance of prov:Involvement is used to provide additional descriptions of a prov:qualifiable binary involvement. A description (via prov:Involvement) of the binary involvement implies the assertion of the binary involvement.</rdfs:comment>
<prov:category>qualified</prov:category>
<rdfs:seeAlso rdf:resource="http://www.w3.org/2011/prov/wiki/ProvRDF#Agent_Association"/>