to address http://www.w3.org/2011/prov/track/issues/262 :
authorTim L <lebot@rpi.edu>
Tue, 06 Mar 2012 15:35:08 -0500
changeset 178091e0b3623c0d
parent 1776 a488af865377
child 1781 d77f989a6b9c
to address http://www.w3.org/2011/prov/track/issues/262 :

removed prov:qualified
added qualifiedUsage and friends (and corresponding domains and ranges)
made qualifiedUsage and friends inverse functional.
removed prov:Element b/c it isn't being used in domains and ranges anymore and is distracting
added prov:agent to complete the set with prov:entity and prov:activity
prov:agent domain AgentInvolvement, range Agent
added prov:qualifiedForm and prov:unqualifiedForm annotation properties.
renamed Annotation property involvementClass to qualifiedForm
ontology/ProvenanceOntology.owl
     1.1 --- a/ontology/ProvenanceOntology.owl	Tue Mar 06 11:10:19 2012 -0500
     1.2 +++ b/ontology/ProvenanceOntology.owl	Tue Mar 06 15:35:08 2012 -0500
     1.3 @@ -59,10 +59,16 @@
     1.4      </owl:AnnotationProperty>
     1.5      <owl:AnnotationProperty rdf:about="&rdfs;seeAlso"/>
     1.6      <owl:AnnotationProperty rdf:about="&prov;category"/>
     1.7 +    <owl:AnnotationProperty rdf:about="&prov;unqualifiedForm">
     1.8 +        <rdfs:subPropertyOf rdf:resource="&rdfs;seeAlso"/>
     1.9 +    </owl:AnnotationProperty>
    1.10      <owl:AnnotationProperty rdf:about="&prov;involvementProperty">
    1.11          <rdfs:subPropertyOf rdf:resource="&rdfs;seeAlso"/>
    1.12      </owl:AnnotationProperty>
    1.13      <owl:AnnotationProperty rdf:about="&rdfs;label"/>
    1.14 +    <owl:AnnotationProperty rdf:about="&prov;qualifiedForm">
    1.15 +        <rdfs:subPropertyOf rdf:resource="&rdfs;seeAlso"/>
    1.16 +    </owl:AnnotationProperty>
    1.17      <owl:AnnotationProperty rdf:about="&rdfs;comment"/>
    1.18      
    1.19  
    1.20 @@ -91,7 +97,9 @@
    1.21          <rdfs:domain rdf:resource="&prov;Agent"/>
    1.22          <rdfs:range rdf:resource="&prov;Agent"/>
    1.23          <prov:involvementClass rdf:resource="&prov;Responsibility"/>
    1.24 +        <prov:qualifiedForm rdf:resource="&prov;Responsibility"/>
    1.25          <rdfs:subPropertyOf rdf:resource="&prov;involved"/>
    1.26 +        <prov:qualifiedForm rdf:resource="&prov;qualifiedResponsibility"/>
    1.27      </owl:ObjectProperty>
    1.28      
    1.29  
    1.30 @@ -127,6 +135,16 @@
    1.31      
    1.32  
    1.33  
    1.34 +    <!-- http://www.w3.org/ns/prov#agent -->
    1.35 +
    1.36 +    <owl:ObjectProperty rdf:about="&prov;agent">
    1.37 +        <prov:category>qualified</prov:category>
    1.38 +        <rdfs:range rdf:resource="&prov;Agent"/>
    1.39 +        <rdfs:domain rdf:resource="&prov;AgentInvolvement"/>
    1.40 +    </owl:ObjectProperty>
    1.41 +    
    1.42 +
    1.43 +
    1.44      <!-- http://www.w3.org/ns/prov#alternateOf -->
    1.45  
    1.46      <owl:ObjectProperty rdf:about="&prov;alternateOf">
    1.47 @@ -274,8 +292,6 @@
    1.48  prov:involved should not be used without also using the subproperty.
    1.49  
    1.50  Subproperties of prov:involved may also be asserted directly without being qualified.</rdfs:comment>
    1.51 -        <rdfs:domain rdf:resource="&prov;Element"/>
    1.52 -        <rdfs:range rdf:resource="&prov;Element"/>
    1.53          <prov:involvementClass rdf:resource="&prov;Involvement"/>
    1.54      </owl:ObjectProperty>
    1.55      
    1.56 @@ -299,14 +315,182 @@
    1.57      
    1.58  
    1.59  
    1.60 -    <!-- http://www.w3.org/ns/prov#qualified -->
    1.61 +    <!-- http://www.w3.org/ns/prov#qualifiedAssociation -->
    1.62  
    1.63 -    <owl:ObjectProperty rdf:about="&prov;qualified">
    1.64 -        <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>
    1.65 +    <owl:ObjectProperty rdf:about="&prov;qualifiedAssociation">
    1.66 +        <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
    1.67 +        <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>
    1.68          <prov:category>qualified</prov:category>
    1.69 -        <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>
    1.70 -        <rdfs:domain rdf:resource="&prov;Element"/>
    1.71 -        <rdfs:range rdf:resource="&prov;Involvement"/>
    1.72 +        <rdfs:domain rdf:resource="&prov;Activity"/>
    1.73 +        <rdfs:range rdf:resource="&prov;Agent"/>
    1.74 +        <prov:unqualifiedForm rdf:resource="&prov;wasAssociatedWith"/>
    1.75 +    </owl:ObjectProperty>
    1.76 +    
    1.77 +
    1.78 +
    1.79 +    <!-- http://www.w3.org/ns/prov#qualifiedAttribution -->
    1.80 +
    1.81 +    <owl:ObjectProperty rdf:about="&prov;qualifiedAttribution">
    1.82 +        <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
    1.83 +        <prov:category>qualified</prov:category>
    1.84 +        <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>
    1.85 +        <rdfs:range rdf:resource="&prov;Agent"/>
    1.86 +        <rdfs:domain rdf:resource="&prov;Entity"/>
    1.87 +        <prov:unqualifiedForm rdf:resource="&prov;wasAttributedTo"/>
    1.88 +    </owl:ObjectProperty>
    1.89 +    
    1.90 +
    1.91 +
    1.92 +    <!-- http://www.w3.org/ns/prov#qualifiedDerivation -->
    1.93 +
    1.94 +    <owl:ObjectProperty rdf:about="&prov;qualifiedDerivation">
    1.95 +        <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
    1.96 +        <prov:category>qualified</prov:category>
    1.97 +        <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>
    1.98 +        <rdfs:range rdf:resource="&prov;Entity"/>
    1.99 +        <rdfs:domain rdf:resource="&prov;Entity"/>
   1.100 +        <prov:unqualifiedForm rdf:resource="&prov;wasDerivedFrom"/>
   1.101 +    </owl:ObjectProperty>
   1.102 +    
   1.103 +
   1.104 +
   1.105 +    <!-- http://www.w3.org/ns/prov#qualifiedEnd -->
   1.106 +
   1.107 +    <owl:ObjectProperty rdf:about="&prov;qualifiedEnd">
   1.108 +        <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
   1.109 +        <prov:category>qualified</prov:category>
   1.110 +        <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>
   1.111 +        <rdfs:domain rdf:resource="&prov;Activity"/>
   1.112 +        <rdfs:range rdf:resource="&prov;Agent"/>
   1.113 +        <prov:unqualifiedForm rdf:resource="&prov;wasEndedBy"/>
   1.114 +    </owl:ObjectProperty>
   1.115 +    
   1.116 +
   1.117 +
   1.118 +    <!-- http://www.w3.org/ns/prov#qualifiedGeneration -->
   1.119 +
   1.120 +    <owl:ObjectProperty rdf:about="&prov;qualifiedGeneration">
   1.121 +        <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
   1.122 +        <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>
   1.123 +        <prov:category>qualified</prov:category>
   1.124 +        <rdfs:range rdf:resource="&prov;Activity"/>
   1.125 +        <rdfs:domain rdf:resource="&prov;Entity"/>
   1.126 +        <prov:unqualifiedForm rdf:resource="&prov;wasGeneratedBy"/>
   1.127 +    </owl:ObjectProperty>
   1.128 +    
   1.129 +
   1.130 +
   1.131 +    <!-- http://www.w3.org/ns/prov#qualifiedInform -->
   1.132 +
   1.133 +    <owl:ObjectProperty rdf:about="&prov;qualifiedInform">
   1.134 +        <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
   1.135 +        <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>
   1.136 +        <prov:category>qualified</prov:category>
   1.137 +        <rdfs:domain rdf:resource="&prov;Activity"/>
   1.138 +        <rdfs:range rdf:resource="&prov;Activity"/>
   1.139 +        <prov:unqualifiedForm rdf:resource="&prov;wasInformedBy"/>
   1.140 +    </owl:ObjectProperty>
   1.141 +    
   1.142 +
   1.143 +
   1.144 +    <!-- http://www.w3.org/ns/prov#qualifiedQuotation -->
   1.145 +
   1.146 +    <owl:ObjectProperty rdf:about="&prov;qualifiedQuotation">
   1.147 +        <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
   1.148 +        <prov:category>qualified</prov:category>
   1.149 +        <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>
   1.150 +        <rdfs:range rdf:resource="&prov;Entity"/>
   1.151 +        <rdfs:domain rdf:resource="&prov;Entity"/>
   1.152 +        <prov:unqualifiedForm rdf:resource="&prov;wasQuotedFrom"/>
   1.153 +    </owl:ObjectProperty>
   1.154 +    
   1.155 +
   1.156 +
   1.157 +    <!-- http://www.w3.org/ns/prov#qualifiedResponsibility -->
   1.158 +
   1.159 +    <owl:ObjectProperty rdf:about="&prov;qualifiedResponsibility">
   1.160 +        <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
   1.161 +        <prov:category>qualified</prov:category>
   1.162 +        <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>
   1.163 +        <rdfs:range rdf:resource="&prov;Agent"/>
   1.164 +        <rdfs:domain rdf:resource="&prov;Agent"/>
   1.165 +        <prov:unqualifiedForm rdf:resource="&prov;actedOnBehalfOf"/>
   1.166 +    </owl:ObjectProperty>
   1.167 +    
   1.168 +
   1.169 +
   1.170 +    <!-- http://www.w3.org/ns/prov#qualifiedRevision -->
   1.171 +
   1.172 +    <owl:ObjectProperty rdf:about="&prov;qualifiedRevision">
   1.173 +        <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
   1.174 +        <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>
   1.175 +        <prov:category>qualified</prov:category>
   1.176 +        <rdfs:domain rdf:resource="&prov;Entity"/>
   1.177 +        <rdfs:range rdf:resource="&prov;Entity"/>
   1.178 +        <prov:unqualifiedForm rdf:resource="&prov;wasRevisionOf"/>
   1.179 +    </owl:ObjectProperty>
   1.180 +    
   1.181 +
   1.182 +
   1.183 +    <!-- http://www.w3.org/ns/prov#qualifiedSource -->
   1.184 +
   1.185 +    <owl:ObjectProperty rdf:about="&prov;qualifiedSource">
   1.186 +        <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
   1.187 +        <prov:category>qualified</prov:category>
   1.188 +        <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>
   1.189 +        <rdfs:range rdf:resource="&prov;Entity"/>
   1.190 +        <rdfs:domain rdf:resource="&prov;Entity"/>
   1.191 +        <prov:unqualifiedForm rdf:resource="&prov;hadOriginalSource"/>
   1.192 +    </owl:ObjectProperty>
   1.193 +    
   1.194 +
   1.195 +
   1.196 +    <!-- http://www.w3.org/ns/prov#qualifiedStart -->
   1.197 +
   1.198 +    <owl:ObjectProperty rdf:about="&prov;qualifiedStart">
   1.199 +        <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
   1.200 +        <prov:category>qualified</prov:category>
   1.201 +        <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>
   1.202 +        <rdfs:domain rdf:resource="&prov;Activity"/>
   1.203 +        <rdfs:range rdf:resource="&prov;Agent"/>
   1.204 +        <prov:unqualifiedForm rdf:resource="&prov;wasStartedBy"/>
   1.205 +    </owl:ObjectProperty>
   1.206 +    
   1.207 +
   1.208 +
   1.209 +    <!-- http://www.w3.org/ns/prov#qualifiedStartByActivity -->
   1.210 +
   1.211 +    <owl:ObjectProperty rdf:about="&prov;qualifiedStartByActivity">
   1.212 +        <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
   1.213 +        <prov:category>qualified</prov:category>
   1.214 +        <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>
   1.215 +        <rdfs:range rdf:resource="&prov;Activity"/>
   1.216 +        <rdfs:domain rdf:resource="&prov;Activity"/>
   1.217 +        <prov:unqualifiedForm rdf:resource="&prov;wasStartedByActivity"/>
   1.218 +    </owl:ObjectProperty>
   1.219 +    
   1.220 +
   1.221 +
   1.222 +    <!-- http://www.w3.org/ns/prov#qualifiedTrace -->
   1.223 +
   1.224 +    <owl:ObjectProperty rdf:about="&prov;qualifiedTrace">
   1.225 +        <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
   1.226 +        <prov:category>qualified</prov:category>
   1.227 +        <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>
   1.228 +        <prov:unqualifiedForm rdf:resource="&prov;tracedTo"/>
   1.229 +    </owl:ObjectProperty>
   1.230 +    
   1.231 +
   1.232 +
   1.233 +    <!-- http://www.w3.org/ns/prov#qualifiedUsage -->
   1.234 +
   1.235 +    <owl:ObjectProperty rdf:about="&prov;qualifiedUsage">
   1.236 +        <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
   1.237 +        <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>
   1.238 +        <prov:category>qualified</prov:category>
   1.239 +        <rdfs:domain rdf:resource="&prov;Activity"/>
   1.240 +        <rdfs:range rdf:resource="&prov;Entity"/>
   1.241 +        <prov:unqualifiedForm rdf:resource="&prov;used"/>
   1.242      </owl:ObjectProperty>
   1.243      
   1.244  
   1.245 @@ -495,7 +679,6 @@
   1.246  
   1.247      <owl:ObjectProperty rdf:about="&prov;wasStartedBy">
   1.248          <rdfs:seeAlso rdf:resource="http://www.w3.org/2011/prov/wiki/ProvRDF#Starting"/>
   1.249 -        <rdfs:range rdf:resource="&prov;Element"/>
   1.250          <prov:involvementClass rdf:resource="&prov;Start"/>
   1.251          <rdfs:subPropertyOf rdf:resource="&prov;wasAssociatedWith"/>
   1.252      </owl:ObjectProperty>
   1.253 @@ -554,7 +737,7 @@
   1.254      <!-- http://www.w3.org/ns/prov#Activity -->
   1.255  
   1.256      <owl:Class rdf:about="&prov;Activity">
   1.257 -        <rdfs:subClassOf rdf:resource="&prov;Element"/>
   1.258 +        <rdfs:subClassOf rdf:resource="&owl;Thing"/>
   1.259          <owl:disjointWith rdf:resource="&prov;Entity"/>
   1.260          <prov:category>core</prov:category>
   1.261          <rdfs:comment xml:lang="en">Activity is defined to be &#39;an identifiable activity, which performs a piece of work.&#39;</rdfs:comment>
   1.262 @@ -641,17 +824,6 @@
   1.263      
   1.264  
   1.265  
   1.266 -    <!-- http://www.w3.org/ns/prov#Element -->
   1.267 -
   1.268 -    <owl:Class rdf:about="&prov;Element">
   1.269 -        <rdfs:comment rdf:datatype="&rdfs;Literal">Element could be avoided if we could specify unions on domains and ranges.</rdfs:comment>
   1.270 -        <rdfs:comment xml:lang="en">Element is the union of Activity and Entity, which are the principal topics of PROV.
   1.271 -
   1.272 -(Due to OWL-RL restriction this union is not specified here)</rdfs:comment>
   1.273 -    </owl:Class>
   1.274 -    
   1.275 -
   1.276 -
   1.277      <!-- http://www.w3.org/ns/prov#End -->
   1.278  
   1.279      <owl:Class rdf:about="&prov;End">
   1.280 @@ -668,7 +840,7 @@
   1.281      <!-- http://www.w3.org/ns/prov#Entity -->
   1.282  
   1.283      <owl:Class rdf:about="&prov;Entity">
   1.284 -        <rdfs:subClassOf rdf:resource="&prov;Element"/>
   1.285 +        <rdfs:subClassOf rdf:resource="&owl;Thing"/>
   1.286          <rdfs:comment xml:lang="en">An identifiable characterized entity.</rdfs:comment>
   1.287          <prov:category>core</prov:category>
   1.288          <rdfs:seeAlso rdf:resource="http://www.w3.org/2011/prov/wiki/ProvRDF#Entity"/>
   1.289 @@ -718,6 +890,7 @@
   1.290      <!-- http://www.w3.org/ns/prov#Involvement -->
   1.291  
   1.292      <owl:Class rdf:about="&prov;Involvement">
   1.293 +        <rdfs:comment>TODO: For simplicity, the hierarchy &quot;stops&quot; at the primary Elements (Activity, Entity, Agent)</rdfs:comment>
   1.294          <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>
   1.295          <prov:category>qualified</prov:category>
   1.296          <rdfs:seeAlso rdf:resource="http://www.w3.org/2011/prov/wiki/ProvRDF#Agent_Association"/>