Difference between revisions of "ProvRDF"

From Provenance WG Wiki
Jump to: navigation, search
(Summary)
(Quality check of Tim's updated tables)
Line 84: Line 84:
 
! Predicate
 
! Predicate
 
! Object
 
! Object
 
 
|-
 
|-
|asnExpression([id],e,[a],[t],[attrs])
+
|asnExpression(id,e,a,t,[attr_1=val_1, ...])
 
|
 
|
 
|  
 
|  
 
|   
 
|   
 
|  
 
|  
 
 
|-
 
|-
 
| style="text-align: right" | ==>
 
| style="text-align: right" | ==>
Line 98: Line 96:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:
 
| style="background: PapayaWhip" | prov:
 
 
|-
 
|-
 
|
 
|
Line 105: Line 102:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:
 
| style="background: PapayaWhip" | prov:
 
 
|-
 
|-
 
|
 
|
Line 112: Line 108:
 
| style="background: PapayaWhip" | prov:
 
| style="background: PapayaWhip" | prov:
 
|                                | :a
 
|                                | :a
 
 
|-
 
|-
 
|
 
|
Line 119: Line 114:
 
| attr_1
 
| attr_1
 
| val_1
 
| val_1
 
 
|-
 
|-
 
|
 
|
Line 126: Line 120:
 
|  
 
|  
 
|  
 
|  
 
 
|-
 
|-
 
|
 
|
Line 179: Line 172:
 
! Predicate
 
! Predicate
 
! Object
 
! Object
 
 
|-
 
|-
|entity(id, [ attr1=val1, ...])
+
|entity(id, [ attr_1=val1, ...])
 
|
 
|
 
|  
 
|  
 
|   
 
|   
 
|  
 
|  
 
 
|-
 
|-
 
| style="text-align: right" | ==>
 
| style="text-align: right" | ==>
Line 193: Line 184:
 
| style="background: white" | a
 
| style="background: white" | a
 
| style="background: PapayaWhip" | prov:Entity
 
| style="background: PapayaWhip" | prov:Entity
 
 
|-
 
|-
 
|
 
|
Line 200: Line 190:
 
| :attr_1
 
| :attr_1
 
| val_1
 
| val_1
 
 
|-
 
|-
 
|
 
|
Line 207: Line 196:
 
|  
 
|  
 
|  
 
|  
 
 
|-
 
|-
 
|
 
|
Line 216: Line 204:
 
|}
 
|}
  
 
Uses before defined: prov:type
 
  
 
Issues:
 
Issues:
Line 226: Line 212:
  
 
* (Incompletely) mapped to OWL
 
* (Incompletely) mapped to OWL
 +
* TODO: This needs some explanation
  
 
[http://www.w3.org/TR/2012/WD-prov-dm-20120202/#record-Account PROV-DM] (eg) <math>\implies</math> [PROV-O] (eg)
 
[http://www.w3.org/TR/2012/WD-prov-dm-20120202/#record-Account PROV-DM] (eg) <math>\implies</math> [PROV-O] (eg)
Line 244: Line 231:
 
|   
 
|   
 
|  
 
|  
 
 
|-
 
|-
 
|
 
|
Line 251: Line 237:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Bundle
 
| style="background: PapayaWhip" | prov:Bundle
 
 
|-
 
|-
 
|
 
|
Line 258: Line 243:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | [https://www.w3.org/2011/prov/track/issues/275 sd:NamedGraph]
 
| style="background: PapayaWhip" | [https://www.w3.org/2011/prov/track/issues/275 sd:NamedGraph]
 
 
 
 
|-
 
|-
 
|
 
|
Line 267: Line 249:
 
| style="background: white"      | sd:name
 
| style="background: white"      | sd:name
 
|                                | :id
 
|                                | :id
 
 
|-
 
|-
 
|
 
|
Line 274: Line 255:
 
| style="background: white"      | sd:graph
 
| style="background: white"      | sd:graph
 
|                                | :graph
 
|                                | :graph
 
 
|-
 
|-
 
|
 
|
Line 281: Line 261:
 
| style="background: PapayaWhip" | prov:specializationOf
 
| style="background: PapayaWhip" | prov:specializationOf
 
|                                | :graph
 
|                                | :graph
 
 
|-
 
|-
 
|
 
|
Line 288: Line 267:
 
| attr_1
 
| attr_1
 
| val_1
 
| val_1
 
 
|-
 
|-
 
|
 
|
Line 295: Line 273:
 
|  
 
|  
 
|  
 
|  
 
 
|-
 
|-
 
|
 
|
Line 302: Line 279:
 
| attr_n
 
| attr_n
 
| val_n
 
| val_n
 
 
 
|-
 
|-
 
|
 
|
Line 310: Line 285:
 
| :rec_1_predicate
 
| :rec_1_predicate
 
| :rec_1_object
 
| :rec_1_object
 
 
|-
 
|-
 
|
 
|
Line 317: Line 291:
 
| :rec_2_predicate
 
| :rec_2_predicate
 
| :rec_2_object
 
| :rec_2_object
 
 
|-
 
|-
 
|
 
|
Line 350: Line 323:
  
 
|-
 
|-
|activity(id, st, et, [ attr1=val1, ...])
+
|activity(id, st, et, [ attr_1=val_1, ...])
 
|
 
|
 
|  
 
|  
 
|   
 
|   
 
|  
 
|  
 
 
|-
 
|-
 
| style="text-align: right" | ==>
 
| style="text-align: right" | ==>
Line 362: Line 334:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Activity
 
| style="background: PapayaWhip" | prov:Activity
 
 
|-
 
|-
 
|  
 
|  
Line 369: Line 340:
 
| style="background: PapayaWhip" | prov:startedAtTime
 
| style="background: PapayaWhip" | prov:startedAtTime
 
|                                | st^^xsd:dateTime
 
|                                | st^^xsd:dateTime
 
 
|-
 
|-
 
|  
 
|  
Line 376: Line 346:
 
| style="background: PapayaWhip" | prov:endedAtTime
 
| style="background: PapayaWhip" | prov:endedAtTime
 
|                                | et^^xsd:dateTime
 
|                                | et^^xsd:dateTime
 
 
 
 
|-
 
|-
 
|
 
|
Line 384: Line 351:
 
| :id
 
| :id
 
| :attr_1
 
| :attr_1
| val_1
+
| val1
 
+
 
|-
 
|-
 
|
 
|
Line 392: Line 358:
 
|  
 
|  
 
|  
 
|  
 
 
|-
 
|-
 
|
 
|
 
|
 
|
 
| :id
 
| :id
| :attr_n
+
| :attrn
| val_n
+
| valn
 
|}
 
|}
  
 
Uses before defined: prov:type
 
  
 
Issues (LHS):  
 
Issues (LHS):  
Line 422: Line 385:
 
! Predicate
 
! Predicate
 
! Object
 
! Object
 
 
|-
 
|-
|agent(id, [ attr1=val1, ...])
+
|agent(id, [ attr_1=val_1, ..., attr_n=val_n])
 
|
 
|
 
|  
 
|  
 
|   
 
|   
 
|  
 
|  
 
 
|-
 
|-
 
| style="text-align: right" | ==>
 
| style="text-align: right" | ==>
Line 436: Line 397:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Agent
 
| style="background: PapayaWhip" | prov:Agent
 
 
 
|-
 
|-
 
|
 
|
 
|
 
|
 
| :id
 
| :id
| :attr1
+
| :attr_1
| val1
+
| val_1
 
+
 
|-
 
|-
 
|
 
|
Line 451: Line 409:
 
|  
 
|  
 
|  
 
|  
 
 
|-
 
|-
 
|
 
|
 
|
 
|
 
| :id
 
| :id
| :attrn
+
| :attr_n
| valn
+
| val_n
 
|}
 
|}
  
Line 475: Line 432:
 
! Predicate
 
! Predicate
 
! Object
 
! Object
 
 
|-
 
|-
|agent(id, [ prov:type=prov:Person, attr1=val1, ...])
+
|agent(id, [ prov:type=prov:Person, attr_1=val_1, ..., attr_n=val_n])
 
|
 
|
 
|  
 
|  
 
|   
 
|   
 
|  
 
|  
 
 
|-
 
|-
 
| style="text-align: right" | ==>
 
| style="text-align: right" | ==>
Line 489: Line 444:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Person
 
| style="background: PapayaWhip" | prov:Person
 
 
|-
 
|-
 
|  
 
|  
Line 496: Line 450:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Agent
 
| style="background: PapayaWhip" | prov:Agent
 
 
 
|-
 
|-
 
|
 
|
 
|
 
|
 
| :id
 
| :id
| :attr1
+
| :attr_1
| val1
+
| val_1
 
+
 
|-
 
|-
 
|
 
|
Line 511: Line 462:
 
|  
 
|  
 
|  
 
|  
 
 
|-
 
|-
 
|
 
|
 
|
 
|
 
| :id
 
| :id
| :attrn
+
| :attr_n
| valn
+
| val_n
 
|}
 
|}
  
Line 537: Line 487:
 
! Predicate
 
! Predicate
 
! Object
 
! Object
 
 
|-
 
|-
|agent(id, [ prov:type=prov:Organization, attr1=val1, ...])
+
|agent(id, [ prov:type=prov:Organization, attr_1=val_1, ..., attr_n=val_n])
 
|
 
|
 
|  
 
|  
 
|   
 
|   
 
|  
 
|  
 
 
|-
 
|-
 
| style="text-align: right" | ==>
 
| style="text-align: right" | ==>
Line 551: Line 499:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Organization
 
| style="background: PapayaWhip" | prov:Organization
 
 
|-
 
|-
 
|  
 
|  
Line 558: Line 505:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Agent
 
| style="background: PapayaWhip" | prov:Agent
 
 
|-
 
|-
 
|
 
|
 
|
 
|
 
| :id
 
| :id
| :attr1
+
| :attr_1
| val1
+
| val_1
 
+
 
|-
 
|-
 
|
 
|
Line 572: Line 517:
 
|  
 
|  
 
|  
 
|  
 
 
|-
 
|-
 
|
 
|
Line 598: Line 542:
 
! Predicate
 
! Predicate
 
! Object
 
! Object
 
 
|-
 
|-
|agent(id, [ prov:type=prov:SoftwareAgent, attr1=val1, ...])
+
|agent(id, [ prov:type=prov:SoftwareAgent, attr_1=val_1, ..., attr_n=val_n])
 
|
 
|
 
|  
 
|  
 
|   
 
|   
 
|  
 
|  
 
 
|-
 
|-
 
| style="text-align: right" | ==>
 
| style="text-align: right" | ==>
Line 612: Line 554:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:SoftwareAgent
 
| style="background: PapayaWhip" | prov:SoftwareAgent
 
 
|-
 
|-
 
|  
 
|  
Line 619: Line 560:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Agent
 
| style="background: PapayaWhip" | prov:Agent
 
 
 
|-
 
|-
 
|
 
|
 
|
 
|
 
| :id
 
| :id
| :attr1
+
| :attr_1
| val1
+
| val_1
 
+
 
|-
 
|-
 
|
 
|
Line 639: Line 577:
 
|
 
|
 
| :id
 
| :id
| :attrn
+
| :attr_n
| valn
+
| val_n
 
|}
 
|}
  
Line 662: Line 600:
 
! Predicate
 
! Predicate
 
! Object
 
! Object
 
 
|-
 
|-
|note(id, [ attr1=val1, ...])
+
|note(id, [ attr_1=val_1, ..., attr_n=val_1])
 
|
 
|
 
|  
 
|  
 
|   
 
|   
 
|  
 
|  
 
 
|-
 
|-
 
| style="text-align: right" | ==>
 
| style="text-align: right" | ==>
Line 676: Line 612:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Note
 
| style="background: PapayaWhip" | prov:Note
 
 
|-
 
|-
 
|
 
|
 
|
 
|
 
| :id
 
| :id
| :attr1
+
| :attr_1
 
| val_1
 
| val_1
 
 
|-
 
|-
 
|
 
|
Line 690: Line 624:
 
|  
 
|  
 
|  
 
|  
 
 
|-
 
|-
 
|
 
|
 
|
 
|
 
| :id
 
| :id
| :attrn
+
| :attr_n
 
| val_n
 
| val_n
 
|}
 
|}
  
 
Uses before defined: hasAnnotation
 
  
 
== Translating relation formulas ==
 
== Translating relation formulas ==
Line 720: Line 651:
 
! Predicate
 
! Predicate
 
! Object
 
! Object
 
 
|-
 
|-
|wasGeneratedBy(id,e,a,t,attrs)
+
|wasGeneratedBy(id,e,a,t,[attr_1=val_n, ..., attr_n=val_n])
 
|
 
|
 
|  
 
|  
 
|   
 
|   
 
|  
 
|  
 
 
|-
 
|-
 
| style="text-align: right" | ==>
 
| style="text-align: right" | ==>
Line 734: Line 663:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Activity
 
| style="background: PapayaWhip" | prov:Activity
 
 
|-
 
|-
 
|
 
|
Line 741: Line 669:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Entity
 
| style="background: PapayaWhip" | prov:Entity
 
 
|-
 
|-
 
|
 
|
Line 748: Line 675:
 
| style="background: PapayaWhip" | prov:wasGeneratedBy
 
| style="background: PapayaWhip" | prov:wasGeneratedBy
 
|                                | :a
 
|                                | :a
 
 
|-
 
|-
 
|
 
|
Line 755: Line 681:
 
| style="background: PapayaWhip" | prov:involved
 
| style="background: PapayaWhip" | prov:involved
 
|                                | :a
 
|                                | :a
 
 
|-
 
|-
 
|
 
|
Line 762: Line 687:
 
| style="background: PapayaWhip" | prov:qualifiedGeneration
 
| style="background: PapayaWhip" | prov:qualifiedGeneration
 
|                                | :id
 
|                                | :id
 
 
|-
 
|-
 
|
 
|
Line 769: Line 693:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Generation
 
| style="background: PapayaWhip" | prov:Generation
 
 
|-
 
|-
 
|
 
|
Line 776: Line 699:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:InstantaneousEvent
 
| style="background: PapayaWhip" | prov:InstantaneousEvent
 
 
|-
 
|-
 
|
 
|
Line 783: Line 705:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:ActivityInvolvement
 
| style="background: PapayaWhip" | prov:ActivityInvolvement
 
 
|-
 
|-
 
|
 
|
Line 790: Line 711:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Involvement
 
| style="background: PapayaWhip" | prov:Involvement
 
 
|-
 
|-
 
|
 
|
Line 797: Line 717:
 
| style="background: PapayaWhip" | prov:activity
 
| style="background: PapayaWhip" | prov:activity
 
|                                | :a
 
|                                | :a
 
 
|-
 
|-
 
|
 
|
Line 804: Line 723:
 
| style="background: PapayaWhip" | prov:atTime
 
| style="background: PapayaWhip" | prov:atTime
 
|                                | t^^xsd:dateTime
 
|                                | t^^xsd:dateTime
 
 
 
|-
 
|-
 
|
 
|
 
|
 
|
 
| :id
 
| :id
| :attr1
+
| :attr_1
 
| val_1
 
| val_1
 
 
|-
 
|-
 
|
 
|
Line 819: Line 735:
 
|  
 
|  
 
|  
 
|  
 
 
|-
 
|-
 
|
 
|
 
|
 
|
 
| :id
 
| :id
| :attrn
+
| :attr_n
 
| val_n
 
| val_n
 
|}
 
|}
Line 852: Line 767:
 
! Predicate
 
! Predicate
 
! Object
 
! Object
 
 
|-
 
|-
|used(id,a,e,t,attrs)
+
|used(id,a,e,t,[attr_1=val_1, ..., attr_n=val_n])
 
|
 
|
 
|  
 
|  
 
|   
 
|   
 
|  
 
|  
 
 
|-
 
|-
 
| style="text-align: right" | ==>
 
| style="text-align: right" | ==>
Line 866: Line 779:
 
| style="background: PapayaWhip" | prov:used
 
| style="background: PapayaWhip" | prov:used
 
|                                | :e
 
|                                | :e
 
 
 
|-
 
|-
 
|
 
|
Line 874: Line 785:
 
| style="background: PapayaWhip" | prov:involved
 
| style="background: PapayaWhip" | prov:involved
 
|                                | :e
 
|                                | :e
 
 
|-
 
|-
 
|
 
|
Line 881: Line 791:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Activity
 
| style="background: PapayaWhip" | prov:Activity
 
 
|-
 
|-
 
|
 
|
Line 888: Line 797:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Entity
 
| style="background: PapayaWhip" | prov:Entity
 
 
|-
 
|-
 
|
 
|
Line 895: Line 803:
 
| style="background: PapayaWhip" | prov:qualifiedUsage
 
| style="background: PapayaWhip" | prov:qualifiedUsage
 
|                                | :id
 
|                                | :id
 
 
|-
 
|-
 
|
 
|
Line 902: Line 809:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Usage
 
| style="background: PapayaWhip" | prov:Usage
 
 
 
|-
 
|-
 
|
 
|
Line 910: Line 815:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:InstantaneousEvent
 
| style="background: PapayaWhip" | prov:InstantaneousEvent
 
 
|-
 
|-
 
|
 
|
Line 917: Line 821:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:EntityInvolvement
 
| style="background: PapayaWhip" | prov:EntityInvolvement
 
 
|-
 
|-
 
|
 
|
Line 924: Line 827:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Involvement
 
| style="background: PapayaWhip" | prov:Involvement
 
 
|-
 
|-
 
|
 
|
Line 931: Line 833:
 
| style="background: PapayaWhip" | prov:entity
 
| style="background: PapayaWhip" | prov:entity
 
|                                | :e
 
|                                | :e
 
 
|-
 
|-
 
|
 
|
Line 938: Line 839:
 
| style="background: PapayaWhip" | prov:atTime
 
| style="background: PapayaWhip" | prov:atTime
 
|                                | t^^xsd:dateTime
 
|                                | t^^xsd:dateTime
 
 
|-
 
|-
 
|
 
|
 
|
 
|
 
| :id
 
| :id
| :attr1
+
| :attr_1
 
| val_1
 
| val_1
 
 
|-
 
|-
 
|
 
|
Line 952: Line 851:
 
|  
 
|  
 
|  
 
|  
 
 
|-
 
|-
 
|
 
|
Line 963: Line 861:
 
|}
 
|}
  
NOTE: changed mapping above during transcription (the TimeInstant indirection)
 
 
<math>
 
\begin{array}{lcl}
 
 
used([id],a,e,[t],[attrs]) &\to&
 
\left\{ \begin{array}{lcl}
 
  a & \texttt{prov:used} & e\ .\\
 
  a & \texttt{prov:involved} & e\ .\\
 
  a & \texttt{a} & \texttt{prov:Activity}\ . \\
 
  e & \texttt{a} & \texttt{prov:Entity}\ . \\
 
  a & \texttt{prov:qualified} & id\ .\\
 
  id & a & \texttt{prov:Usage}\ . \\
 
  id & \texttt{a} & \texttt{prov:EntityInvolvement}\ . \\
 
  id & \texttt{a} & \texttt{prov:Involvement}\ . \\
 
  id & \texttt{prov:entity} & e\ .\\
 
  id & \texttt{prov:hadTemporalExtent} & t\ .\\
 
  id & attr_1 & val_1\ .\\
 
      \vdots\\
 
  id & attr_n & val_n\ . \\
 
  t & \texttt{a} & \texttt{prov:Instant}\ . \\
 
  t & \texttt{a} & \texttt{prov:Time}\ .
 
\end{array}\right.
 
 
\end{array}
 
</math>
 
  
 
Issues:
 
Issues:
Line 1,010: Line 882:
 
! Predicate
 
! Predicate
 
! Object
 
! Object
 
 
|-
 
|-
|wasAssociatedWith(id,a,ag,pl,attrs)
+
|wasAssociatedWith(id,a,ag,pl,[attr_1=val_1, ..., attr_n=val_n])
 
|
 
|
 
|  
 
|  
 
|   
 
|   
 
|  
 
|  
 
 
|-
 
|-
 
| style="text-align: right" | ==>
 
| style="text-align: right" | ==>
Line 1,024: Line 894:
 
| style="background: PapayaWhip" | prov:wasAssociatedWith
 
| style="background: PapayaWhip" | prov:wasAssociatedWith
 
|                                | :ag
 
|                                | :ag
 
 
|-
 
|-
 
|
 
|
Line 1,031: Line 900:
 
| style="background: PapayaWhip" | prov:involved
 
| style="background: PapayaWhip" | prov:involved
 
|                                | :ag
 
|                                | :ag
 
 
|-
 
|-
 
|
 
|
Line 1,038: Line 906:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Activity
 
| style="background: PapayaWhip" | prov:Activity
 
 
|-
 
|-
 
|
 
|
Line 1,045: Line 912:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Agent
 
| style="background: PapayaWhip" | prov:Agent
 
+
|-
 
+
|
 +
|
 +
| :ag
 +
| style="background: white"      | a
 +
| style="background: PapayaWhip" | prov:Entity
 
|-
 
|-
 
|
 
|
Line 1,053: Line 924:
 
| style="background: PapayaWhip" | prov:qualifiedAssociation
 
| style="background: PapayaWhip" | prov:qualifiedAssociation
 
|                                | :id
 
|                                | :id
 
 
|-
 
|-
 
|
 
|
Line 1,060: Line 930:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Association
 
| style="background: PapayaWhip" | prov:Association
 
 
 
|-
 
|-
 
|
 
|
Line 1,068: Line 936:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:AgentInvolvement
 
| style="background: PapayaWhip" | prov:AgentInvolvement
 
 
|-
 
|-
 
|
 
|
Line 1,075: Line 942:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Involvement
 
| style="background: PapayaWhip" | prov:Involvement
 
 
 
|-
 
|-
 
|
 
|
Line 1,083: Line 948:
 
| style="background: PapayaWhip" | prov:agent
 
| style="background: PapayaWhip" | prov:agent
 
|                                | :ag
 
|                                | :ag
 
 
 
|-
 
|-
 
|
 
|
Line 1,091: Line 954:
 
| style="background: PapayaWhip" | prov:hadPlan
 
| style="background: PapayaWhip" | prov:hadPlan
 
|                                | :pl
 
|                                | :pl
 
 
|-
 
|-
 
|
 
|
Line 1,098: Line 960:
 
| :attr_1
 
| :attr_1
 
| val_1
 
| val_1
 
 
|-
 
|-
 
|
 
|
Line 1,105: Line 966:
 
|  
 
|  
 
|  
 
|  
 
 
|-
 
|-
 
|
 
|
Line 1,112: Line 972:
 
| :attr_n
 
| :attr_n
 
| val_n
 
| val_n
 
 
|-
 
|-
 
|
 
|
Line 1,119: Line 978:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Plan
 
| style="background: PapayaWhip" | prov:Plan
 
 
|-
 
|-
 
|
 
|
Line 1,135: Line 993:
  
  
Notes:
 
 
Uses before defined: prov:type, prov:role
 
  
 
Issues:
 
Issues:
Line 1,149: Line 1,004:
  
 
=== Starting ===
 
=== Starting ===
 
TODO: review this mapping.
 
  
 
* Mapped to OWL
 
* Mapped to OWL
Line 1,164: Line 1,017:
 
! Predicate
 
! Predicate
 
! Object
 
! Object
 
 
|-
 
|-
|wasStartedBy(id,a,ag,attrs)
+
|wasStartedBy(id,a,ag,[attr_1=val_1, attr_n=val_n])
 
|
 
|
 
|  
 
|  
 
|   
 
|   
 
|  
 
|  
 
 
|-
 
|-
 
| style="text-align: right" | ==>
 
| style="text-align: right" | ==>
Line 1,178: Line 1,029:
 
| style="background: PapayaWhip" | prov:wasStartedBy
 
| style="background: PapayaWhip" | prov:wasStartedBy
 
|                                | :ag
 
|                                | :ag
 
 
|-
 
|-
 
|
 
|
Line 1,185: Line 1,035:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Activity
 
| style="background: PapayaWhip" | prov:Activity
 
 
|-
 
|-
 
|
 
|
Line 1,192: Line 1,041:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Agent
 
| style="background: PapayaWhip" | prov:Agent
 
+
|-
 
+
|
 +
|
 +
| :ag
 +
| style="background: white"      | a
 +
| style="background: PapayaWhip" | prov:Entity
 
|-
 
|-
 
|
 
|
Line 1,200: Line 1,053:
 
| style="background: PapayaWhip" | prov:wasAssociatedWith
 
| style="background: PapayaWhip" | prov:wasAssociatedWith
 
|                                | :ag
 
|                                | :ag
 
 
|-
 
|-
 
|
 
|
Line 1,207: Line 1,059:
 
| style="background: PapayaWhip" | prov:involved
 
| style="background: PapayaWhip" | prov:involved
 
|                                | :ag
 
|                                | :ag
 
 
|-
 
|-
 
|
 
|
Line 1,214: Line 1,065:
 
| style="background: PapayaWhip" | prov:qualifiedAssociation
 
| style="background: PapayaWhip" | prov:qualifiedAssociation
 
|                                | :id
 
|                                | :id
 
 
 
|-
 
|-
 
|
 
|
Line 1,222: Line 1,071:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Start
 
| style="background: PapayaWhip" | prov:Start
 
 
 
|-
 
|-
 
|
 
|
Line 1,230: Line 1,077:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:InstantaneousEvent
 
| style="background: PapayaWhip" | prov:InstantaneousEvent
 
 
|-
 
|-
 
|
 
|
Line 1,237: Line 1,083:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Association
 
| style="background: PapayaWhip" | prov:Association
 
 
|-
 
|-
 
|
 
|
Line 1,244: Line 1,089:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:AgentInvolvement
 
| style="background: PapayaWhip" | prov:AgentInvolvement
 
|-
 
|
 
|
 
| :id
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:EntityInvolvement
 
 
 
|-
 
|-
 
|
 
|
Line 1,258: Line 1,095:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Involvement
 
| style="background: PapayaWhip" | prov:Involvement
 
 
 
|-
 
|-
 
|
 
|
 
|  
 
|  
 
| :id
 
| :id
| style="background: PapayaWhip" | prov:entity
+
| style="background: PapayaWhip" | prov:agent
 
|                                | :ag
 
|                                | :ag
 
 
|-
 
|-
 
|
 
|
Line 1,273: Line 1,107:
 
| attr_1
 
| attr_1
 
| val_1
 
| val_1
 
 
|-
 
|-
 
|
 
|
Line 1,280: Line 1,113:
 
|  
 
|  
 
|  
 
|  
 
 
|-
 
|-
 
|
 
|
Line 1,316: Line 1,148:
 
! Predicate
 
! Predicate
 
! Object
 
! Object
 
 
|-
 
|-
|wasEndedBy(id,a,ag,attrs)
+
|wasEndedBy(id,a,ag,[attr_1=val_1, ..., attr_n=val_n])
 
|
 
|
 
|  
 
|  
 
|   
 
|   
 
|  
 
|  
 
 
 
|-
 
|-
 
| style="text-align: right" | ==>
 
| style="text-align: right" | ==>
Line 1,331: Line 1,160:
 
| style="background: PapayaWhip" | prov:wasEndedBy
 
| style="background: PapayaWhip" | prov:wasEndedBy
 
|                                | :ag
 
|                                | :ag
 
 
 
|-
 
|-
 
|
 
|
Line 1,339: Line 1,166:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Activity
 
| style="background: PapayaWhip" | prov:Activity
 
 
|-
 
|-
 
|
 
|
Line 1,346: Line 1,172:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Agent
 
| style="background: PapayaWhip" | prov:Agent
 
+
|-
 
+
|
 +
|
 +
| :ag
 +
| style="background: white"      | a
 +
| style="background: PapayaWhip" | prov:Entity
 
|-
 
|-
 
|
 
|
Line 1,354: Line 1,184:
 
| style="background: PapayaWhip" | prov:wasAssociatedWith
 
| style="background: PapayaWhip" | prov:wasAssociatedWith
 
|                                | :ag
 
|                                | :ag
 
 
 
|-
 
|-
 
|
 
|
 
|  
 
|  
 
| :a
 
| :a
| style="background: PapayaWhip" | prov:used
+
| style="background: PapayaWhip" | prov:involved
 
|                                | :ag
 
|                                | :ag
 
 
|-
 
|-
 
|
 
|
 
|  
 
|  
 
| :a
 
| :a
| style="background: PapayaWhip" | prov:qualifiedEnd
+
| style="background: PapayaWhip" | prov:qualifiedAssociation
 
|                                | :id
 
|                                | :id
 
 
|-
 
|-
 
|
 
|
Line 1,376: Line 1,202:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:End
 
| style="background: PapayaWhip" | prov:End
 
 
 
|-
 
|-
 
|
 
|
Line 1,384: Line 1,208:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:InstantaneousEvent
 
| style="background: PapayaWhip" | prov:InstantaneousEvent
 
 
|-
 
|-
 
|
 
|
Line 1,391: Line 1,214:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Association
 
| style="background: PapayaWhip" | prov:Association
 
 
 
|-
 
|-
 
|
 
|
Line 1,399: Line 1,220:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:AgentInvolvement
 
| style="background: PapayaWhip" | prov:AgentInvolvement
 
 
|-
 
|
 
|
 
| :id
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:EntityInvolvement
 
 
 
|-
 
|-
 
|
 
|
Line 1,414: Line 1,226:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Involvement
 
| style="background: PapayaWhip" | prov:Involvement
 
 
|-
 
|-
 
|
 
|
 
|  
 
|  
 
| :id
 
| :id
| style="background: PapayaWhip" | prov:entity
+
| style="background: PapayaWhip" | prov:agent
 
|                                | :ag
 
|                                | :ag
 
 
|-
 
|-
 
|
 
|
Line 1,428: Line 1,238:
 
| attr_1
 
| attr_1
 
| val_1
 
| val_1
 
 
|-
 
|-
 
|
 
|
Line 1,435: Line 1,244:
 
|  
 
|  
 
|  
 
|  
 
 
|-
 
|-
 
|
 
|
Line 1,466: Line 1,274:
 
! Predicate
 
! Predicate
 
! Object
 
! Object
 
 
|-
 
|-
|actedOnBehalfOf(id,ag2,ag1,a,attrs)
+
|actedOnBehalfOf(id,ag2,ag1,a,[attr_1=val_1, ..., attr_n=val_n])
 
|
 
|
 
|  
 
|  
 
|   
 
|   
 
|  
 
|  
 
 
|-
 
|-
 
| style="text-align: right" | ==>
 
| style="text-align: right" | ==>
Line 1,480: Line 1,286:
 
| style="background: PapayaWhip" | prov:actedOnBehalfOf
 
| style="background: PapayaWhip" | prov:actedOnBehalfOf
 
|                                | :ag1
 
|                                | :ag1
 
 
|-
 
|-
 
|
 
|
Line 1,487: Line 1,292:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Agent
 
| style="background: PapayaWhip" | prov:Agent
 
+
|-
 
+
|
 +
|
 +
| :ag2
 +
| style="background: white"      | a
 +
| style="background: PapayaWhip" | prov:Entity
 
|-
 
|-
 
|
 
|
Line 1,495: Line 1,304:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Agent
 
| style="background: PapayaWhip" | prov:Agent
 
+
|-
 
+
|
 +
|
 +
| :ag1
 +
| style="background: white"      | a
 +
| style="background: PapayaWhip" | prov:Entity
 
|-
 
|-
 
|
 
|
Line 1,503: Line 1,316:
 
| style="background: PapayaWhip" | prov:involved
 
| style="background: PapayaWhip" | prov:involved
 
|                                | :ag1
 
|                                | :ag1
 
 
|-
 
|-
 
|
 
|
Line 1,510: Line 1,322:
 
| style="background: PapayaWhip" | prov:qualifiedResponsibility
 
| style="background: PapayaWhip" | prov:qualifiedResponsibility
 
|                                | :id
 
|                                | :id
 
 
|-
 
|-
 
|
 
|
Line 1,517: Line 1,328:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Responsibility
 
| style="background: PapayaWhip" | prov:Responsibility
 
 
 
|-
 
|-
 
|
 
|
Line 1,525: Line 1,334:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:AgentInvolvement
 
| style="background: PapayaWhip" | prov:AgentInvolvement
 
 
|-
 
|
 
|
 
| :id
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:EntityInvolvement
 
 
 
 
|-
 
|-
 
|
 
|
Line 1,541: Line 1,340:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Involvement
 
| style="background: PapayaWhip" | prov:Involvement
 
 
|-
 
|-
 
|
 
|
Line 1,548: Line 1,346:
 
| style="background: PapayaWhip" | prov:agent
 
| style="background: PapayaWhip" | prov:agent
 
|                                | :ag1
 
|                                | :ag1
 
 
|-
 
|-
 
|
 
|
 
|  
 
|  
 
| :id
 
| :id
| style="background: white"     | a
+
| style="background: PapayaWhip" | prov:activity
| style="background: PapayaWhip" | prov:ActivityInvolvement
+
|                               | :a
 
+
 
|-
 
|-
 
|
 
|
 
|  
 
|  
 
| :id
 
| :id
| style="background: PapayaWhip" | prov:activity
+
| style="background: white"     | a
|                               | :a
+
| style="background: PapayaWhip" | prov:ActivityInvolvement
 
+
 
+
 
|-
 
|-
 
|
 
|
Line 1,570: Line 1,364:
 
| attr_1
 
| attr_1
 
| val_1
 
| val_1
 
 
|-
 
|-
 
|
 
|
Line 1,577: Line 1,370:
 
|  
 
|  
 
|  
 
|  
 
 
|-
 
|-
 
|
 
|
Line 1,584: Line 1,376:
 
| attr_n
 
| attr_n
 
| val_n
 
| val_n
 
 
|-
 
|-
 
|
 
|
Line 1,595: Line 1,386:
 
|}
 
|}
  
NOTE: reordered some triples from latex into wikitable
 
  
 
<math>
 
\begin{array}{lcl}
 
actedOnBehalfOf([id],ag2,ag1,[a],[attrs]) &\to&
 
\left\{ \begin{array}{lcl}
 
  ag2 & \texttt{prov:actedOnBehalfOf} & ag1 . \\
 
  ag2 & \texttt{a} & \texttt{prov:Agent} . \\
 
  ag2 & \texttt{a} & \texttt{prov:Entity} . \\
 
  ag1 &  \texttt{a} & \texttt{prov:Agent} . \\
 
  ag1 & \texttt{a} & \texttt{prov:Entity} . \\
 
  ag2 & \texttt{prov:involved} & ag1 . \\
 
  ag2 & \texttt{prov:qualified} & id .\\
 
  id & \texttt{a} & \texttt{prov:Responsibility} . \\
 
  id & \texttt{a} & \texttt{prov:AgentInvolvement}\ . \\
 
  id & \texttt{a} & \texttt{prov:EntityInvolvement}\ . \\
 
  id & \texttt{a} & \texttt{prov:Involvement}\ . \\
 
  id &  \texttt{prov:entity} & ag1 . \\
 
  id & attr_1 & val_1 .\\
 
      \vdots\\
 
  id & attr_n & val_n .\\
 
  a &  \texttt{a} & \texttt{prov:Activity} . \\
 
  id &  \texttt{prov:activity} & a . \\
 
  id & \texttt{a} & \texttt{prov:ActivityInvolvement}\ .
 
\end{array}\right.
 
\end{array}
 
</math>
 
  
 
Issues:
 
Issues:
 
* https://www.w3.org/2011/prov/track/issues/293
 
* https://www.w3.org/2011/prov/track/issues/293
 
* https://www.w3.org/2011/prov/track/issues/292
 
* https://www.w3.org/2011/prov/track/issues/292
 +
* If the prov:activity :a is not given, is :id still a prov:ActivityInvolvement?
  
 
=== Derivation ===
 
=== Derivation ===
Line 1,645: Line 1,410:
 
! Predicate
 
! Predicate
 
! Object
 
! Object
 
 
|-
 
|-
|wasDerivedFrom(id, e2, e1, a, g2, u1, attrs)
+
|wasDerivedFrom(id, e2, e1, a, g2, u1, [attr_1=val_1, ..., attr_n=val_n])
 
|
 
|
 
|  
 
|  
 
|   
 
|   
 
|  
 
|  
 
 
|-
 
|-
 
| style="text-align: right" | ==>
 
| style="text-align: right" | ==>
Line 1,658: Line 1,421:
 
| :e2
 
| :e2
 
| style="background: PapayaWhip" | prov:wasDerivedFrom
 
| style="background: PapayaWhip" | prov:wasDerivedFrom
|                                | prov:e2
+
|                                | prov:e1
 
+
|-
 +
|
 +
|
 +
| :e2
 +
| style="background: white"      | a
 +
| style="background: PapayaWhip" | prov:Entity
 
|-
 
|-
 
|
 
|
Line 1,666: Line 1,434:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Entity
 
| style="background: PapayaWhip" | prov:Entity
 
 
|-
 
|-
 
|
 
|
Line 1,673: Line 1,440:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Activity
 
| style="background: PapayaWhip" | prov:Activity
 
 
 
|-
 
|-
 
|
 
|
Line 1,681: Line 1,446:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Generation
 
| style="background: PapayaWhip" | prov:Generation
 
+
|-
 +
|
 +
|
 +
| :g2
 +
| style="background: white"      | a
 +
| style="background: PapayaWhip" | prov:InstantaneousEvent
 +
|-
 +
|
 +
|
 +
| :g2
 +
| style="background: white"      | a
 +
| style="background: PapayaWhip" | prov:ActivityInvolvement
 +
|-
 +
|
 +
|
 +
| :g2
 +
| style="background: white"      | a
 +
| style="background: PapayaWhip" | prov:Involvement
 
|-
 
|-
 
|
 
|
Line 1,688: Line 1,470:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Usage
 
| style="background: PapayaWhip" | prov:Usage
 
 
|-
 
|-
 
|
 
|
 
|  
 
|  
| :g2
+
| :u1
| style="background: PapayaWhip" | prov:wasGeneratedBy
+
| style="background: white"     | a
|                               | :a
+
| style="background: PapayaWhip" | prov:InstantaneousEvent
 
+
 
|-
 
|-
 
|
 
|
 
|  
 
|  
| :e
+
| :u1
 +
| style="background: white"      | a
 +
| style="background: PapayaWhip" | prov:EntityInvolvement
 +
|-
 +
|
 +
|
 +
| :u1
 +
| style="background: white"      | a
 +
| style="background: PapayaWhip" | prov:Involvement
 +
|-
 +
|
 +
|
 +
| :e2
 +
| style="background: PapayaWhip" | prov:tracedTo
 +
|                                | :e1
 +
|-
 +
|
 +
|
 +
| :e2
 +
| style="background: PapayaWhip" | prov:involved
 +
|                                | :e1
 +
|-
 +
|
 +
|
 +
| :e2
 
| style="background: PapayaWhip" | prov:involved
 
| style="background: PapayaWhip" | prov:involved
 
|                                | :a
 
|                                | :a
 
 
|-
 
|-
 
|
 
|
Line 1,709: Line 1,512:
 
| style="background: PapayaWhip" | prov:qualifiedDerivation
 
| style="background: PapayaWhip" | prov:qualifiedDerivation
 
|                                | :id
 
|                                | :id
 
 
|-
 
|-
 
|
 
|
Line 1,716: Line 1,518:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Derivation
 
| style="background: PapayaWhip" | prov:Derivation
 
 
|-
 
|-
 
|
 
|
Line 1,723: Line 1,524:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:InstantaneousEvent
 
| style="background: PapayaWhip" | prov:InstantaneousEvent
 
 
|-
 
|-
 
|
 
|
Line 1,729: Line 1,529:
 
| :id
 
| :id
 
| style="background: white"      | a
 
| style="background: white"      | a
| style="background: PapayaWhip" | prov:ActivityInvolvement
+
| style="background: PapayaWhip" | prov:EntityInvolvement
 
+
 
|-
 
|-
 
|
 
|
Line 1,737: Line 1,536:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Involvement
 
| style="background: PapayaWhip" | prov:Involvement
 
 
|-
 
|-
 
|
 
|
Line 1,744: Line 1,542:
 
| style="background: PapayaWhip" | prov:activity
 
| style="background: PapayaWhip" | prov:activity
 
|                                | :a
 
|                                | :a
 
 
|-
 
|-
 
|
 
|
 
|  
 
|  
 
| :id
 
| :id
| style="background: PapayaWhip" | prov:atTime
+
| style="background: white"     | a
|                               | t^^xsd:dateTime
+
| style="background: PapayaWhip" | prov:ActivityInvolvement
 
+
 
+
 
|-
 
|-
 
|
 
|
 +
|
 +
| :id
 +
| style="background: PapayaWhip" | prov:generation
 +
|                                | :g2
 +
|-
 
|
 
|
 +
|
 
| :id
 
| :id
| :attr1
+
| style="background: PapayaWhip" | prov:usage
 +
|                                | :u1
 +
|-
 +
|
 +
|
 +
| :id
 +
| :attr_1
 
| val_1
 
| val_1
 
 
|-
 
|-
 
|
 
|
Line 1,766: Line 1,572:
 
|  
 
|  
 
|  
 
|  
 
 
|-
 
|-
 
|
 
|
 
|
 
|
 
| :id
 
| :id
| :attrn
+
| :attr_n
 
| val_n
 
| val_n
 +
|-
 +
|
 +
|
 +
| :e2
 +
| style="background: PapayaWhip" | prov:wasGeneratedBy
 +
|                                | :a
 +
|-
 +
|
 +
|
 +
| :a
 +
| style="background: PapayaWhip"      | prov:used
 +
|                                    | :e1
 +
|-
 +
|
 +
|
 +
| :e2
 +
| style="background: PapayaWhip" | prov:involved
 +
|                                | :a
 +
|-
 +
|
 +
|
 +
| :a
 +
| style="background: PapayaWhip"      | prov:involved
 +
|                                    | :e1
 +
|-
 +
|
 +
|
 +
| :e2
 +
| style="background: PapayaWhip" | prov:qualifiedGeneration
 +
|                                | :g2
 +
|-
 +
|
 +
|
 +
| :a
 +
| style="background: PapayaWhip"      | prov:qualifiedUsage
 +
|                                    | :u1
 +
|-
 +
|
 +
|
 +
| :g2
 +
| style="background: PapayaWhip" | prov:activity
 +
|                                | :a
 +
|-
 +
|
 +
|
 +
| :u1
 +
| style="background: PapayaWhip"      | prov:entity
 +
|                                    | :e1
 
|}
 
|}
  
==== OLD precise-1 ====
 
  
* (Incompletely) mapped to OWL
+
Notes:
  
<math>
+
This RDF expansion is very verbose because of the infererred
\begin{array}{lcl}
+
usage/generation links with the activity. The actual derivation is fully
wasDerivedFrom([id], e2, e1, a, g2, u1, [attrs]) &\to&
+
asserted using :e2 prov:qualifiedDerivation :id and :id with its
\left\{ \begin{array}{lcl}
+
direct properties.
  e2 & \texttt{prov:wasDerivedFrom} & e1\ .\\
+
  e2 & \texttt{prov:tracedTo} & e1\ .\\
+
  TBD.\\
+
\end{array}\right.
+
  
\end{array}
+
TODO: Use different colour/font for inferred statements? For instance..
</math>
+
italics? Or can we keep such inference rules separately to avoid
<br/>Issues:
+
repeating them, including subclass hieararchy? I in many way prefer to
* Why should usage and generation "events" be associated with a derivation relation? (Satya)
+
show all superproperties and superclasses, because it would highlight
* If derivation is representing the relation between two entities, why should the intermediate activity(s) associated with the two entities be part of the derivation relation? (Satya)
+
cases where they might not make sense or is difficult. For instance
* Should we use id prov:steps prov:single or subclasses of prov:Derivation? (Stian - prefers subclasses)
+
above - is prov:Derivation always a prov:ActivityInvolvement?  
 +
--Stian
  
==== OLD imprecise-1 ====
 
  
* (Incompletely) mapped to OWL
+
Issue:
 +
* Show what non-activity specific wasDerivedFrom(id, e2, e1,
 +
  [attr1=val1]) will look like as well? Introducing usage or generation
 +
  will infer a single activity, but it's still possible to do derivation
 +
  across multiple activities.
  
<math>
 
\begin{array}{lcl}
 
wasDerivedFrom([id], e2,e1, [t], attrs) &\to&
 
\left\{ \begin{array}{lcl}
 
  e2 & \texttt{prov:wasDerivedFrom} & e1\ .\\
 
  e2 & \texttt{prov:tracedTo} & e1\ .\\
 
  a & \texttt{prov:qualified} & id\ .\\
 
  id & attr_1 & val_1\ .\\
 
    &  \vdots\\
 
  id & attr_n & val_n\ .
 
\end{array}\right.
 
 
\end{array}
 
</math>
 
 
Issues:
 
* Should we use id prov:steps prov:single or subclassing of prov:Derivation? (Stian - prefers subclasses)
 
 
==== OLD imprecise-n ====
 
 
* (Incompletely) mapped to OWL
 
 
<math>
 
\begin{array}{lcl}
 
wasDerivedFrom([id], e2, e1, [t], [attrs]) &\to&
 
\left\{ \begin{array}{lcl}
 
  e2 & \texttt{prov:wasDerivedFrom} & e1\ .\\
 
  e2 & \texttt{prov:tracedTo} & e1\ .\\
 
TBD.\\
 
\end{array}\right.
 
 
\end{array}
 
</math>
 
 
 
 
==== OLD not in DM: consolidated derivation signature ====
 
 
<math>
 
\begin{array}{lcl}
 
wasDerivedFrom([id], e2, e1, [a, [g2], [u1]], [attrs]) &\to&
 
\left\{ \begin{array}{lcl}
 
  e2 & \texttt{prov:wasDerivedFrom} & e1\ .\\
 
  e2 & \texttt{prov:tracedTo} & e1\ .\\
 
  e2 & \texttt{prov:involved} & e1\ .\\
 
  e2 & \texttt{a} & \texttt{prov:Entity}\ . \\
 
  e1 & \texttt{a} & \texttt{prov:Entity}\ . \\
 
  a & \texttt{a} & \texttt{prov:Activity}\ . \\
 
  e2 & \texttt{prov:wasGeneratedBy} & a\ . \\
 
  a & \texttt{prov:used} & e1\ . \\
 
  e2 & \texttt{prov:qualified} & id\ .\\
 
  id & \texttt{a} & \texttt{prov:Derivation}\ . \\
 
  id & \texttt{a} & \texttt{prov:EntityInvolvement}\ . \\
 
  id & \texttt{a} & \texttt{prov:Involvement}\ . \\
 
  id & \texttt{prov:entity} & e1\ .\\
 
  id & attr_1 & val_1\ .\\
 
    &  \vdots\\
 
  id & attr_n & val_n\ .
 
\end{array}\right.
 
 
\end{array}
 
</math>
 
 
Note: Daniel used the [a,[g2], [u1]] notation to indicate that a, g2, and u1 are optional, but if g2 or u1 are present, then a is required as well. (Imprecise and precise derivations are mixed, but we could separate them)
 
<br/>Issues:
 
* This should be the only derivation construct supported by PROV-O (leaving out all the optional information). (Satya)
 
  
 
  prov:wasDerivedFrom rdfs:subClassOf prov:tracedTo .
 
  prov:wasDerivedFrom rdfs:subClassOf prov:tracedTo .
 +
  
 
==== Revision ====
 
==== Revision ====
Line 1,881: Line 1,668:
 
! Predicate
 
! Predicate
 
! Object
 
! Object
 
 
|-
 
|-
|wasRevisionOf(id,e2,e1,ag,attrs)
+
|wasRevisionOf(id,e2,e1,ag,[attr_1=val_1, ..., attr_n=val_n)
 
|
 
|
 
|  
 
|  
 
|   
 
|   
 
|  
 
|  
 
 
|-
 
|-
 
| style="text-align: right" | ==>
 
| style="text-align: right" | ==>
Line 1,895: Line 1,680:
 
| style="background: PapayaWhip" | prov:wasRevisionOf
 
| style="background: PapayaWhip" | prov:wasRevisionOf
 
|                                | :e1
 
|                                | :e1
 
 
|-
 
|-
 
|
 
|
 
|  
 
|  
| :a
+
| :e2
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Entity
 
| style="background: PapayaWhip" | prov:Entity
 
 
|-
 
|-
 
|
 
|
 
|  
 
|  
| :e
+
| :e1
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Entity
 
| style="background: PapayaWhip" | prov:Entity
 
 
|-
 
|-
 
|
 
|
Line 1,916: Line 1,698:
 
| style="background: PapayaWhip" | prov:wasDerivedFrom
 
| style="background: PapayaWhip" | prov:wasDerivedFrom
 
|                                | :e1
 
|                                | :e1
 
 
|-
 
|-
 
|
 
|
Line 1,923: Line 1,704:
 
| style="background: PapayaWhip" | prov:tracedTo
 
| style="background: PapayaWhip" | prov:tracedTo
 
|                                | :e1
 
|                                | :e1
 
 
|-
 
|-
 
|
 
|
Line 1,930: Line 1,710:
 
| style="background: PapayaWhip" | prov:involved
 
| style="background: PapayaWhip" | prov:involved
 
|                                | :e1
 
|                                | :e1
 
 
|-
 
|-
 
|
 
|
Line 1,937: Line 1,716:
 
| style="background: PapayaWhip" | prov:qualifiedRevision
 
| style="background: PapayaWhip" | prov:qualifiedRevision
 
|                                | :id
 
|                                | :id
 
 
|-
 
|-
 
|
 
|
Line 1,944: Line 1,722:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Revision
 
| style="background: PapayaWhip" | prov:Revision
 
 
|-
 
|-
 
|
 
|
Line 1,951: Line 1,728:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Derivation
 
| style="background: PapayaWhip" | prov:Derivation
 
 
 
|-
 
|-
 
|
 
|
Line 1,959: Line 1,734:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:EntityInvolvement
 
| style="background: PapayaWhip" | prov:EntityInvolvement
 
 
 
|-
 
|-
 
|
 
|
Line 1,967: Line 1,740:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Involvement
 
| style="background: PapayaWhip" | prov:Involvement
 
 
|-
 
|-
 
|
 
|
Line 1,974: Line 1,746:
 
| style="background: PapayaWhip" | prov:entity
 
| style="background: PapayaWhip" | prov:entity
 
|                                | :e1
 
|                                | :e1
 
 
|-
 
|-
 
|
 
|
Line 1,981: Line 1,752:
 
| :attr_1
 
| :attr_1
 
| val_1
 
| val_1
 
 
|-
 
|-
 
|
 
|
Line 1,988: Line 1,758:
 
|  
 
|  
 
|  
 
|  
 
 
|-
 
|-
 
|
 
|
Line 1,996: Line 1,765:
 
| val_n
 
| val_n
 
|}
 
|}
 +
 +
Issues:
 +
* Is it true in DM that wasRevisionOf(id, ..., attrs) implies wasDerivedFrom(id,
 +
  ..., attrs)?  If not, prov:Revision can't be subclass of
 +
  prov:Derivation. (and equivalent for qualifiedRevision)
  
  
Line 2,015: Line 1,789:
 
! Predicate
 
! Predicate
 
! Object
 
! Object
 
 
|-
 
|-
|wasAttributedTo(id,e,ag,attr)
+
|wasAttributedTo(id,e,ag,[attr_1=val_1, ..., attr_n=val_n])
 
|
 
|
 
|  
 
|  
 
|   
 
|   
 
|  
 
|  
 
 
|-
 
|-
 
| style="text-align: right" | ==>
 
| style="text-align: right" | ==>
Line 2,029: Line 1,801:
 
| style="background: PapayaWhip" | prov:wasAttributedTo
 
| style="background: PapayaWhip" | prov:wasAttributedTo
 
|                                | :ag
 
|                                | :ag
 
 
|-
 
|-
 
|
 
|
Line 2,036: Line 1,807:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Entity
 
| style="background: PapayaWhip" | prov:Entity
 
 
|-
 
|-
 
|
 
|
Line 2,043: Line 1,813:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Agent
 
| style="background: PapayaWhip" | prov:Agent
 
+
|-
 
+
|
 
+
|
 +
| :ag
 +
| style="background: white"      | a
 +
| style="background: PapayaWhip" | prov:Entity
 
|-
 
|-
 
|
 
|
Line 2,052: Line 1,825:
 
| style="background: PapayaWhip" | prov:tracedTo
 
| style="background: PapayaWhip" | prov:tracedTo
 
|                                | :ag
 
|                                | :ag
 
 
|-
 
|-
 
|
 
|
Line 2,059: Line 1,831:
 
| style="background: PapayaWhip" | prov:involved
 
| style="background: PapayaWhip" | prov:involved
 
|                                | :ag
 
|                                | :ag
 
 
|-
 
|-
 
|
 
|
Line 2,066: Line 1,837:
 
| style="background: PapayaWhip" | prov:qualifiedAttribution
 
| style="background: PapayaWhip" | prov:qualifiedAttribution
 
|                                | :id
 
|                                | :id
 
 
|-
 
|-
 
|
 
|
Line 2,073: Line 1,843:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Attribution
 
| style="background: PapayaWhip" | prov:Attribution
 
 
|-
 
|-
 
|
 
|
Line 2,080: Line 1,849:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:AgentInvolvement
 
| style="background: PapayaWhip" | prov:AgentInvolvement
 
 
 
|-
 
|-
 
|
 
|
Line 2,088: Line 1,855:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Involvement
 
| style="background: PapayaWhip" | prov:Involvement
 
 
|-
 
|-
 
|
 
|
Line 2,095: Line 1,861:
 
| style="background: PapayaWhip" | prov:agent
 
| style="background: PapayaWhip" | prov:agent
 
|                                | :ag
 
|                                | :ag
 
 
|-
 
|-
 
|
 
|
Line 2,102: Line 1,867:
 
| attr_1
 
| attr_1
 
| val_1
 
| val_1
 
 
|-
 
|-
 
|
 
|
Line 2,109: Line 1,873:
 
|  
 
|  
 
|  
 
|  
 
 
|-
 
|-
 
|
 
|
Line 2,140: Line 1,903:
 
! Predicate
 
! Predicate
 
! Object
 
! Object
 
 
|-
 
|-
|wasQuotedFrom(id,e2,e1,ag2,ag1,attrs)
+
|wasQuotedFrom(id,e2,e1,ag2,ag1,[attr_1=val_1, ..., attr_n=val_n])
 
|
 
|
 
|  
 
|  
 
|   
 
|   
 
|  
 
|  
 
 
|-
 
|-
 
| style="text-align: right" | ==>
 
| style="text-align: right" | ==>
Line 2,154: Line 1,915:
 
| style="background: PapayaWhip" | prov:wasQuotedFrom
 
| style="background: PapayaWhip" | prov:wasQuotedFrom
 
|                                | :e1
 
|                                | :e1
 
 
 
|-
 
|-
 
|
 
|
 
|  
 
|  
 
| :e2
 
| :e2
| style="background: PapayaWhip" | prov:wasDerivedFrom
+
| style="background: white"     | a
|                               | :e1
+
| style="background: PapayaWhip" | prov:Entity
 
+
 
+
 
|-
 
|-
 
|
 
|
 
|  
 
|  
| :e2
+
| :e1
| style="background: PapayaWhip" | prov:involved
+
| style="background: white"     | a
|                               | :e1
+
| style="background: PapayaWhip" | prov:Entity
 
+
 
|-
 
|-
 
|
 
|
 
|  
 
|  
| :e2
+
| :ag1
 
| style="background: white"      | a
 
| style="background: white"      | a
| style="background: PapayaWhip" | prov:Entity
+
| style="background: PapayaWhip" | prov:Agent
 
+
 
|-
 
|-
 
|
 
|
 
|  
 
|  
| :e1
+
| :ag1
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Entity
 
| style="background: PapayaWhip" | prov:Entity
 
 
 
|-
 
|-
 
|
 
|
 
|  
 
|  
| :e1
+
| :ag2
| style="background: PapayaWhip" | prov:wasAttributedTo
+
| style="background: white"      | a
|                               | :ag1
+
| style="background: PapayaWhip" | prov:Agent
 
+
|-
 
+
|
 +
|
 +
| :ag2
 +
| style="background: white"      | a
 +
| style="background: PapayaWhip" | prov:Entity
 
|-
 
|-
 
|
 
|
 
|  
 
|  
 
| :e2
 
| :e2
| style="background: PapayaWhip" | prov:wasAttributedTo
+
| style="background: PapayaWhip" | prov:wasDerivedFrom
|                                | :ag2
+
|                                | :e1
 
+
 
|-
 
|-
 
|
 
|
 
|  
 
|  
| :ag1
+
| :e2
| style="background: white"     | a
+
| style="background: PapayaWhip" | prov:tracedTo
| style="background: PapayaWhip" | prov:Agent
+
|                               | :e1
 
+
 
+
 
|-
 
|-
 
|
 
|
 
|  
 
|  
| :ag2
+
| :e2
| style="background: white"     | a
+
| style="background: PapayaWhip" | prov:involved
| style="background: PapayaWhip" | prov:Agent
+
|                               | :e1
 
+
 
|-
 
|-
 
|
 
|
Line 2,222: Line 1,975:
 
| style="background: PapayaWhip" | prov:qualifiedQuotation
 
| style="background: PapayaWhip" | prov:qualifiedQuotation
 
|                                | :id
 
|                                | :id
 
 
|-
 
|-
 
|
 
|
Line 2,229: Line 1,981:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Quotation
 
| style="background: PapayaWhip" | prov:Quotation
 
 
|-
 
|-
 
|
 
|
Line 2,236: Line 1,987:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:EntityInvolvement
 
| style="background: PapayaWhip" | prov:EntityInvolvement
 
 
|-
 
|-
 
|
 
|
Line 2,243: Line 1,993:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Involvement
 
| style="background: PapayaWhip" | prov:Involvement
 
 
 
 
|-
 
|-
 
|
 
|
Line 2,252: Line 1,999:
 
| style="background: PapayaWhip" | prov:entity
 
| style="background: PapayaWhip" | prov:entity
 
|                                | :e1
 
|                                | :e1
 
+
|-
 
+
|
 
+
|
 +
| :id
 +
| style="background: PapayaWhip" | prov:quoter
 +
|                                | :ag2
 +
|-
 +
|
 +
|
 +
| :id
 +
| style="background: PapayaWhip" | prov:quoted
 +
|                                | :ag1
 
|-
 
|-
 
|
 
|
Line 2,261: Line 2,017:
 
| attr_1
 
| attr_1
 
| val_1
 
| val_1
 
 
|-
 
|-
 
|
 
|
Line 2,268: Line 2,023:
 
|  
 
|  
 
|  
 
|  
 
 
|-
 
|-
 
|
 
|
Line 2,275: Line 2,029:
 
| attr_n
 
| attr_n
 
| val_n
 
| val_n
 +
|-
 +
|
 +
|
 +
| :e1
 +
| style="background: PapayaWhip" | prov:wasAttributedTo
 +
|                                | :ag1
 +
|-
 +
|
 +
|
 +
| :e2
 +
| style="background: PapayaWhip" | prov:wasAttributedTo
 +
|                                | :ag2
 
|}
 
|}
  
Line 2,281: Line 2,047:
 
* DM missing "id"
 
* DM missing "id"
 
* https://www.w3.org/2011/prov/track/issues/300
 
* https://www.w3.org/2011/prov/track/issues/300
 +
  
 
=== Activity Ordering (informed by) ===
 
=== Activity Ordering (informed by) ===
Line 2,295: Line 2,062:
 
! Predicate
 
! Predicate
 
! Object
 
! Object
 
 
|-
 
|-
|wasInformedBy(id,a2,a1,attrs)
+
|wasInformedBy(id,a2,a1,[attr_1=val_1, ..., attr_n=val_n])
 
|
 
|
 
|  
 
|  
 
|   
 
|   
 
|  
 
|  
 
 
|-
 
|-
 
| style="text-align: right" | ==>
 
| style="text-align: right" | ==>
Line 2,309: Line 2,074:
 
| style="background: PapayaWhip" | prov:wasInformedBy
 
| style="background: PapayaWhip" | prov:wasInformedBy
 
|                                | :a1
 
|                                | :a1
 
 
|-
 
|-
 
|
 
|
Line 2,316: Line 2,080:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Activity
 
| style="background: PapayaWhip" | prov:Activity
 
 
|-
 
|-
 
|
 
|
Line 2,323: Line 2,086:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Activity
 
| style="background: PapayaWhip" | prov:Activity
 
 
|-
 
|-
 
|
 
|
Line 2,330: Line 2,092:
 
| style="background: PapayaWhip" | prov:involved
 
| style="background: PapayaWhip" | prov:involved
 
|                                | :a1
 
|                                | :a1
 
 
|-
 
|-
 
|
 
|
Line 2,337: Line 2,098:
 
| style="background: PapayaWhip" | prov:qualifiedInform
 
| style="background: PapayaWhip" | prov:qualifiedInform
 
|                                | :id
 
|                                | :id
 
 
|-
 
|-
 
|
 
|
Line 2,344: Line 2,104:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Inform
 
| style="background: PapayaWhip" | prov:Inform
 
 
|-
 
|-
 
|
 
|
Line 2,351: Line 2,110:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:ActivityInvolvement
 
| style="background: PapayaWhip" | prov:ActivityInvolvement
 
 
 
|-
 
|-
 
|
 
|
Line 2,359: Line 2,116:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Involvement
 
| style="background: PapayaWhip" | prov:Involvement
 
 
|-
 
|-
 
|
 
|
Line 2,366: Line 2,122:
 
| style="background: PapayaWhip" | prov:activity
 
| style="background: PapayaWhip" | prov:activity
 
|                                | :a1
 
|                                | :a1
 
 
|-
 
|-
 
|
 
|
Line 2,373: Line 2,128:
 
| attr_1
 
| attr_1
 
| val_1
 
| val_1
 
 
|-
 
|-
 
|
 
|
Line 2,380: Line 2,134:
 
|  
 
|  
 
|  
 
|  
 
 
|-
 
|-
 
|
 
|
Line 2,393: Line 2,146:
  
 
* https://www.w3.org/2011/prov/track/issues/297
 
* https://www.w3.org/2011/prov/track/issues/297
 +
  
 
=== Started by activity ===
 
=== Started by activity ===
Line 2,410: Line 2,164:
 
! Predicate
 
! Predicate
 
! Object
 
! Object
 
 
|-
 
|-
|wasStartedBy(id, a2, a1, attrs)
+
|wasStartedBy(id, a2, a1, [attr_1=val_1, ..., attr_n=val_n])
 
|
 
|
 
|  
 
|  
 
|   
 
|   
 
|  
 
|  
 
 
|-
 
|-
 
| style="text-align: right" | ==>
 
| style="text-align: right" | ==>
Line 2,424: Line 2,176:
 
| style="background: PapayaWhip" | prov:wasStartedByActivity
 
| style="background: PapayaWhip" | prov:wasStartedByActivity
 
|                                | :a1
 
|                                | :a1
 
 
 
|-
 
|-
 
|
 
|
Line 2,432: Line 2,182:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Activity
 
| style="background: PapayaWhip" | prov:Activity
 
 
|-
 
|-
 
|
 
|
Line 2,439: Line 2,188:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Activity
 
| style="background: PapayaWhip" | prov:Activity
 
 
|-
 
|-
 
|
 
|
Line 2,446: Line 2,194:
 
| style="background: PapayaWhip" | prov:involved
 
| style="background: PapayaWhip" | prov:involved
 
|                                | :a1
 
|                                | :a1
 
 
|-
 
|-
 
|
 
|
Line 2,453: Line 2,200:
 
| style="background: PapayaWhip" | prov:qualifiedStart
 
| style="background: PapayaWhip" | prov:qualifiedStart
 
|                                | :id
 
|                                | :id
 
 
|-
 
|-
 
|
 
|
Line 2,460: Line 2,206:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:StartByActivity
 
| style="background: PapayaWhip" | prov:StartByActivity
 
 
|-
 
|-
 
|
 
|
Line 2,467: Line 2,212:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:ActivityInvolvement
 
| style="background: PapayaWhip" | prov:ActivityInvolvement
 
 
|-
 
|-
 
|
 
|
Line 2,474: Line 2,218:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Involvement
 
| style="background: PapayaWhip" | prov:Involvement
 
 
|-
 
|-
 
|
 
|
Line 2,481: Line 2,224:
 
| style="background: PapayaWhip" | prov:activity
 
| style="background: PapayaWhip" | prov:activity
 
|                                | :a1
 
|                                | :a1
 
 
|-
 
|-
 
|
 
|
Line 2,488: Line 2,230:
 
| attr_1
 
| attr_1
 
| val_1
 
| val_1
 
 
|-
 
|-
 
|
 
|
Line 2,495: Line 2,236:
 
|  
 
|  
 
|  
 
|  
 
 
|-
 
|-
 
|
 
|
Line 2,528: Line 2,268:
 
! Predicate
 
! Predicate
 
! Object
 
! Object
 
 
|-
 
|-
|tracedTo(id,e2,e1,attrs)
+
|tracedTo(id,e2,e1,[attr_1=val_1, ..., attr_n=val_n)
 
|
 
|
 
|  
 
|  
 
|   
 
|   
 
|  
 
|  
 
 
|-
 
|-
 
| style="text-align: right" | ==>
 
| style="text-align: right" | ==>
Line 2,542: Line 2,280:
 
| style="background: PapayaWhip" | prov:tracedTo
 
| style="background: PapayaWhip" | prov:tracedTo
 
| :e1
 
| :e1
 
 
|-
 
|-
 
|
 
|
 
|  
 
|  
| :e1
+
| :e2
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Entity
 
| style="background: PapayaWhip" | prov:Entity
 
 
 
|-
 
|-
 
|
 
|
 
|  
 
|  
| :e2
+
| :e1
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Entity
 
| style="background: PapayaWhip" | prov:Entity
 
 
 
|-
 
|-
 
|
 
|
Line 2,565: Line 2,298:
 
| style="background: PapayaWhip" | prov:involved
 
| style="background: PapayaWhip" | prov:involved
 
|                                | :e1
 
|                                | :e1
 
 
|-
 
|-
 
|
 
|
Line 2,572: Line 2,304:
 
| style="background: PapayaWhip" | prov:qualifiedTrace
 
| style="background: PapayaWhip" | prov:qualifiedTrace
 
|                                | :id
 
|                                | :id
 
 
|-
 
|-
 
|
 
|
Line 2,579: Line 2,310:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Trace
 
| style="background: PapayaWhip" | prov:Trace
 
 
|-
 
|-
 
|
 
|
Line 2,586: Line 2,316:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:EntityInvolvement
 
| style="background: PapayaWhip" | prov:EntityInvolvement
 
 
|-
 
|-
 
|
 
|
Line 2,593: Line 2,322:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Involvement
 
| style="background: PapayaWhip" | prov:Involvement
 
 
|-
 
|-
 
|
 
|
Line 2,600: Line 2,328:
 
| style="background: PapayaWhip" | prov:entity
 
| style="background: PapayaWhip" | prov:entity
 
|                                | :e1
 
|                                | :e1
 
 
|-
 
|-
 
|
 
|
Line 2,607: Line 2,334:
 
| attr_1
 
| attr_1
 
| val_1
 
| val_1
 
 
|-
 
|-
 
|
 
|
Line 2,614: Line 2,340:
 
|  
 
|  
 
|  
 
|  
 
 
|-
 
|-
 
|
 
|
Line 2,634: Line 2,359:
 
! Predicate
 
! Predicate
 
! Object
 
! Object
 
 
|-
 
|-
|hadOriginalSource(id,e2,e1,attrs)
+
|hadOriginalSource(id,e2,e1,[attr_1=val_1, ..., attr_n=val_n])
 
|
 
|
 
|  
 
|  
 
|   
 
|   
 
|  
 
|  
 
 
|-
 
|-
 
| style="text-align: right" | ==>
 
| style="text-align: right" | ==>
Line 2,648: Line 2,371:
 
| style="background: PapayaWhip" | prov:hadOriginalSource
 
| style="background: PapayaWhip" | prov:hadOriginalSource
 
|                                | :e1
 
|                                | :e1
 
 
|-
 
|-
 
|
 
|
Line 2,655: Line 2,377:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Entity
 
| style="background: PapayaWhip" | prov:Entity
 
 
|-
 
|-
 
|
 
|
Line 2,662: Line 2,383:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Entity
 
| style="background: PapayaWhip" | prov:Entity
 
 
|-
 
|-
 
|
 
|
Line 2,669: Line 2,389:
 
| style="background: PapayaWhip" | prov:wasDerivedFrom
 
| style="background: PapayaWhip" | prov:wasDerivedFrom
 
|                                | :e1
 
|                                | :e1
 
 
|-
 
|-
 
|
 
|
Line 2,676: Line 2,395:
 
| style="background: PapayaWhip" | prov:tracedTo
 
| style="background: PapayaWhip" | prov:tracedTo
 
|                                | :e1
 
|                                | :e1
 
 
|-
 
|-
 
|
 
|
Line 2,683: Line 2,401:
 
| style="background: PapayaWhip" | prov:involved
 
| style="background: PapayaWhip" | prov:involved
 
|                                | :e1
 
|                                | :e1
 
 
|-
 
|-
 
|
 
|
Line 2,690: Line 2,407:
 
| style="background: PapayaWhip" | prov:qualifiedSource
 
| style="background: PapayaWhip" | prov:qualifiedSource
 
|                                | :id
 
|                                | :id
 
 
 
|-
 
|-
 
|
 
|
Line 2,698: Line 2,413:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Source
 
| style="background: PapayaWhip" | prov:Source
 
 
 
|-
 
|-
 
|
 
|
Line 2,706: Line 2,419:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:EntityInvolvement
 
| style="background: PapayaWhip" | prov:EntityInvolvement
 
 
|-
 
|-
 
|
 
|
Line 2,713: Line 2,425:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Involvement
 
| style="background: PapayaWhip" | prov:Involvement
 
 
 
 
|-
 
|-
 
|
 
|
Line 2,722: Line 2,431:
 
| style="background: PapayaWhip" | prov:entity
 
| style="background: PapayaWhip" | prov:entity
 
|                                | :e1
 
|                                | :e1
 
 
|-
 
|-
 
|
 
|
Line 2,729: Line 2,437:
 
| :attr_1
 
| :attr_1
 
| val_1
 
| val_1
 
 
|-
 
|-
 
|
 
|
Line 2,736: Line 2,443:
 
|  
 
|  
 
|  
 
|  
 
 
|-
 
|-
 
|
 
|
Line 2,745: Line 2,451:
 
|}
 
|}
  
TODO: a Source?
+
TODO: a Source? a Sourcing? SourceRelation? (e1 is the source, not id!)
 +
 
 +
 
  
<math>
 
\begin{array}{lcl}
 
hadOriginalSource(e2,e1, [attrs]) &\to&
 
\left\{ \begin{array}{lcl}
 
  e2 & \texttt{prov:hadOriginalSource} & e1\ .\\
 
  e2 & \texttt{a} & \texttt{prov:Entity}\ .\\
 
  e1 & \texttt{a} & \texttt{prov:Entity}\ .\\
 
  e2 & \texttt{prov:wasDerivedFrom} & e1\ .\\
 
  e2 & \texttt{prov:tracedTo} & e1\ .\\
 
  e2 & \texttt{prov:involved} & e1\ .\\
 
  e2 & \texttt{prov:qualified} & id\ .\\
 
  id & \texttt{a} & \texttt{prov:Source}\ .\\
 
  id & \texttt{a} & \texttt{prov:Derivation}\ .\\
 
  id & \texttt{a} & \texttt{prov:EntityInvolvement}\ .\\
 
  id & \texttt{a} & \texttt{prov:Involvement}\ .\\
 
  id & \texttt{prov:entity} & e1\ .\\
 
  id & attr_1 & val_1 .\\
 
  \vdots\\
 
  id & attr_n & val_n .
 
\end{array}\right.
 
\end{array}
 
</math>
 
  
 
=== AlternateOf ===
 
=== AlternateOf ===
Line 2,783: Line 2,469:
 
! Predicate
 
! Predicate
 
! Object
 
! Object
 
 
|-
 
|-
 
|alternateOf(alt1,alt2)
 
|alternateOf(alt1,alt2)
Line 2,790: Line 2,475:
 
|   
 
|   
 
|  
 
|  
 
 
|-
 
|-
 
|style="text-align: right" | ==>
 
|style="text-align: right" | ==>
 
|  
 
|  
| :e1
+
| :alt1
 
| style="background: PapayaWhip" | prov:alternateOf
 
| style="background: PapayaWhip" | prov:alternateOf
 
|                                | :e2
 
|                                | :e2
 
 
|-
 
|-
 
|  
 
|  
 
|  
 
|  
| :e1
+
| :alt2
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Entity
 
| style="background: PapayaWhip" | prov:Entity
 
 
|-
 
|-
 
|
 
|
Line 2,811: Line 2,493:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Entity
 
| style="background: PapayaWhip" | prov:Entity
 
 
 
|}
 
|}
  
Line 2,830: Line 2,510:
 
! Predicate
 
! Predicate
 
! Object
 
! Object
 
 
|-
 
|-
 
|specializationOf(sub,super)
 
|specializationOf(sub,super)
Line 2,837: Line 2,516:
 
|   
 
|   
 
|  
 
|  
 
 
|-
 
|-
 
|style="text-align: right" | ==>
 
|style="text-align: right" | ==>
Line 2,844: Line 2,522:
 
| style="background: PapayaWhip" | prov:specializationOf
 
| style="background: PapayaWhip" | prov:specializationOf
 
|                                | :super
 
|                                | :super
 
 
|-
 
|-
 
|  
 
|  
Line 2,851: Line 2,528:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Entity
 
| style="background: PapayaWhip" | prov:Entity
 
 
|-
 
|-
 
|
 
|
Line 2,858: Line 2,534:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Entity
 
| style="background: PapayaWhip" | prov:Entity
 
 
 
|}
 
|}
  
Line 2,877: Line 2,551:
 
! Predicate
 
! Predicate
 
! Object
 
! Object
 
 
|-
 
|-
|hasAnnotation(r,n,[attrs])
+
|hasAnnotation(r,n)
 
|
 
|
 
|  
 
|  
 
|   
 
|   
 
|  
 
|  
 
 
|-
 
|-
 
| style="text-align: right" | ==>
 
| style="text-align: right" | ==>
Line 2,891: Line 2,563:
 
| style="background: PapayaWhip" | prov:hasAnnotation
 
| style="background: PapayaWhip" | prov:hasAnnotation
 
|                                | :n
 
|                                | :n
 
 
|-
 
|-
 
|
 
|
Line 2,898: Line 2,569:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Note
 
| style="background: PapayaWhip" | prov:Note
 
 
|}
 
|}
  
 
NOTE: attributes removed by wg vote 1 mar 2012.
 
NOTE: attributes removed by wg vote 1 mar 2012.
  
Uses before defining: prov:type
 
  
 
Issues:
 
Issues:
Line 2,928: Line 2,597:
 
! Predicate
 
! Predicate
 
! Object
 
! Object
 
 
|-
 
|-
 
|...(id, ..., prov:role = myrole)
 
|...(id, ..., prov:role = myrole)
Line 2,935: Line 2,603:
 
|   
 
|   
 
|  
 
|  
 
 
|-
 
|-
 
|style="text-align: right" | ==>
 
|style="text-align: right" | ==>
Line 2,942: Line 2,609:
 
| style="background: PapayaWhip" | prov:hadRole
 
| style="background: PapayaWhip" | prov:hadRole
 
|                                | :myrole
 
|                                | :myrole
 
 
|-
 
|-
 
|  
 
|  
Line 2,949: Line 2,615:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Role
 
| style="background: PapayaWhip" | prov:Role
 
 
|}
 
|}
  
Line 2,993: Line 2,658:
 
! Predicate
 
! Predicate
 
! Object
 
! Object
 
 
|-
 
|-
 
|...(id, ..., prov:label = pretty)
 
|...(id, ..., prov:label = pretty)
Line 3,000: Line 2,664:
 
|   
 
|   
 
|  
 
|  
 
 
|-
 
|-
 
| style="text-align: right" | ==>
 
| style="text-align: right" | ==>
Line 3,007: Line 2,670:
 
| style="background: white"      | rdfs:label
 
| style="background: white"      | rdfs:label
 
| style="background: PapayaWhip" | "pretty"
 
| style="background: PapayaWhip" | "pretty"
 
 
|}
 
|}
  
Line 3,048: Line 2,710:
 
! Predicate
 
! Predicate
 
! Object
 
! Object
 
 
|-
 
|-
|...(id, ..., location=loc)
+
|...(id, [..., location=loc])
 
|
 
|
 
|  
 
|  
 
|   
 
|   
 
|  
 
|  
 
 
|-
 
|-
 
|style="text-align: right" | ==>
 
|style="text-align: right" | ==>
Line 3,061: Line 2,721:
 
| :id
 
| :id
 
| style="background: PapayaWhip" | prov:hadLocation
 
| style="background: PapayaWhip" | prov:hadLocation
|                                | :a
+
|                                | :loc
 
+
 
|-
 
|-
 
|  
 
|  
Line 3,069: Line 2,728:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: PapayaWhip" | prov:Location
 
| style="background: PapayaWhip" | prov:Location
 
 
|-
 
|-
 
|  
 
|  
Line 3,076: Line 2,734:
 
| style="background: white"      | a
 
| style="background: white"      | a
 
| style="background: white"      | wgs:SpatialThing
 
| style="background: white"      | wgs:SpatialThing
 
 
|}
 
|}
  

Revision as of 12:38, 15 March 2012

Introduction

This document gives a draft translation from PROV-DM to PROV-O, and sketches how to go in the reverse direction (i.e. how to extract PROV-DM from a RDF graph that includes PROV-O data as well as possibly other RDF).

Guideline: We include all RDF assertions associated with a DM assertion, even if some of them wind up being redundant/inferrable.

Guideline: Optional arguments (including attribute lists) are in square brackets; if the argument is missing, we generally omit the corresponding RDF edges. (In some cases, not currently documented, an optional argument to a record corresponds to an unknown value that should be generated as a blank node; this remains under discussion.)

From PROV-DM to PROV-O

We define a translation from PROV-DM formulas to RDF conforming to PROV-O as follows.

Mapping coverage

http://aquarius.tw.rpi.edu/prov-wg/provrdf-owl-coverage shows the [mis]alignments among PROV-DM WD3, ProvRDF, and PROV-O.

PROV-DM

PROV-DM WD3

To see the ASN expressions mentioned in the PROV-DM WD3 page, run this command:

curl -H "Content-Type: text/turtle" -d "<http://www.w3.org/TR/2012/WD-prov-dm-20120202/> a <http://xmlns.com/foaf/0.1/Document> ." http://sparql.tw.rpi.edu/services/datafaqs/util/wikitable-fol


PROV-DM WD4

ProvRDF will be aligned against WD4 very soon.

ProvRDF

LHS

The undersigned have reviewed DM WD3 and agree that all ASN signatures in WD3 appear as left hand sides of the rules shown on this page. Further, the rules here are in the same order as DM WD3 and no rules appear here without appearing in DM WD3.


  • Daniel Garijo (10-Feb-2012)
  • Tim Lebo (collections still missing) (13-Feb-2012)
  • James Cheney (basic stuff is here, collections/accounts is not) (16-Feb-2012)

The constructs are listed in an order that corresponds to the order given in PROV-DM WD3.

To see the ASN expressions mentioned in this page, run this command:

curl -H "Content-Type: text/turtle" -d "<http://www.w3.org/2011/prov/wiki/ProvRDF> a <http://xmlns.com/foaf/0.1/Document> ." http://sparql.tw.rpi.edu/services/datafaqs/util/wikitable-fol

RHS

To see the classes and predicates mentioned in this page, run this command:

curl -H "Content-Type: text/turtle" -d "<http://www.w3.org/2011/prov/wiki/ProvRDF> a <http://xmlns.com/foaf/0.1/Document> ." http://sparql.tw.rpi.edu/services/datafaqs/util/wikitable-gspo

ProvenanceOntology.owl

Mapping goals

1: Maintain Entities and Activities principal subjects.

Subjects of triples are more principal than objects of triples. Because Entities and Activities are the two principal topics of PROV-DM, the RDF mapping should prefer that Entities and Activities be subjects of as many triples as possible. In the case when the object instance is ALSO an Entity or Activity, the directionality of the triple should point to the Element that "existed earlier". For example, :activity prov:used :entity is preferred over :entity prov:usedBy :activity because the entity existed before it was used by the activity.

2: Avoid proliferating owl:inverseOf.

Although every property could have an inverse, we choose one preferred direction to keep the model small and understandable. Providing all inverses could be done in a supplemental profile. One exception to this rule is prov:wasGeneratedBy's inverse: prov:generated, which is included because of goal 1. When an asserter is describing an Activity (a principal Element), they should be able to describe it as a subject. prov:generated is needed to do this.

3. Include _all_ resulting triples, including those resulting from inferences.

Visual style

  • Tokens in a gray background have a scope local to the assertion (e.g. ":id").
  • Tokens in a light brown background exist in the provenance namespace (e.g. "prov:wasDerivedFrom").
  • Tokens in white appear in existing namespaces (e.g. "sd:", "a" == "rdf:type", "dcterms:")
PROV-N sd:name Subject Predicate Object
asnExpression(id,e,a,t,[attr_1=val_1, ...])
==>  :a a prov:
 :e a prov:
 :e prov:  :a
 :id attr_1 val_1
...
 :id attr_n val_n

Partial mappings

The right hand side of the rules shown on this page are intentionally verbose. They are included to see the full ramifications of a DM ASN expression.

Note that if an argument is not provided in the ASN, the corresponding triples that require that value are NOT produced. This means that simple ASN assertions produce simple PROV-O assertions.

For instance:


<math> \begin{array}{lcl} wasGeneratedBy(e,a) &\to& \left\{ \begin{array}{lcl}

 a & \texttt{a} & \texttt{prov:Activity}\ . \\
 e & \texttt{a} & \texttt{prov:Entity}\ . \\
 e & \texttt{prov:wasGeneratedBy} & a\ .

\end{array}\right.

\end{array} </math>

Translating element records

PROV-DM Element

Issues:

Entity

  • Mapped to OWL

PROV-DM (eg) <math>\implies</math> PROV-O (eg)


PROV-N sd:name Subject Predicate Object
entity(id, [ attr_1=val1, ...])
==>  :id a prov:Entity
 :id  :attr_1 val_1
...
 :id  :attr_n val_n


Issues:

Account

  • (Incompletely) mapped to OWL
  • TODO: This needs some explanation

PROV-DM (eg) <math>\implies</math> [PROV-O] (eg)

PROV-N sd:name Subject Predicate Object
account(id, exprs)
 :id  :namedGraph a prov:Bundle
 :id  :namedGraph a sd:NamedGraph
 :id  :namedGraph sd:name  :id
 :id  :namedGraph sd:graph  :graph
 :id  :namedGraph prov:specializationOf  :graph
 :id  :namedGraph attr_1 val_1
...
 :id  :namedGraph attr_n val_n
 :id  :rec_1_subject  :rec_1_predicate  :rec_1_object
 :id  :rec_2_subject  :rec_2_predicate  :rec_2_object
 :id  :rec_n_subject  :rec_n_predicate  :rec_n_object
sd:graph rdfs:subPropertyOf prov:specializationOf .


Issues:

  • attrs could go on either the Named Graph or the Graph - each is useful.
  • Need to outline typical named graph handling - the same graph spreads into different named graphs across the world.

Activity

  • Mapped to OWL

PROV-DM (eg) <math>\implies</math> PROV-O (eg)

PROV-N sd:name Subject Predicate Object
activity(id, st, et, [ attr_1=val_1, ...])
==>  :id a prov:Activity
 :id prov:startedAtTime st^^xsd:dateTime
 :id prov:endedAtTime et^^xsd:dateTime
 :id  :attr_1 val1
...
 :id  :attrn valn


Issues (LHS):

Agent

  • Mapped to OWL


PROV-DM (eg) <math>\implies</math> PROV-O (eg)

PROV-N sd:name Subject Predicate Object
agent(id, [ attr_1=val_1, ..., attr_n=val_n])
==>  :id a prov:Agent
 :id  :attr_1 val_1
...
 :id  :attr_n val_n



Person

  • Mapped to OWL
PROV-N sd:name Subject Predicate Object
agent(id, [ prov:type=prov:Person, attr_1=val_1, ..., attr_n=val_n])
==>  :id a prov:Person
 :id a prov:Agent
 :id  :attr_1 val_1
...
 :id  :attr_n val_n


Uses before defined:

  • prov:type

Organization

  • Mapped to OWL
PROV-N sd:name Subject Predicate Object
agent(id, [ prov:type=prov:Organization, attr_1=val_1, ..., attr_n=val_n])
==>  :id a prov:Organization
 :id a prov:Agent
 :id  :attr_1 val_1
...
 :id  :attrn valn


Uses before defined:

  • prov:type

SoftwareAgent

  • Mapped to OWL
PROV-N sd:name Subject Predicate Object
agent(id, [ prov:type=prov:SoftwareAgent, attr_1=val_1, ..., attr_n=val_n])
==>  :id a prov:SoftwareAgent
 :id a prov:Agent
 :id  :attr_1 val_1
...
 :id  :attr_n val_n


Uses before defined:

  • prov:type

Note

PROV-DM (eg) <math>\implies</math> PROV-O (eg)

  • Mapped to OWL
PROV-N sd:name Subject Predicate Object
note(id, [ attr_1=val_1, ..., attr_n=val_1])
==>  :id a prov:Note
 :id  :attr_1 val_1
...
 :id  :attr_n val_n


Translating relation formulas

PROV-DM Relation

Generation

  • Mapped to OWL

PROV-DM (eg) <math>\implies</math> PROV-O (eg)

PROV-N sd:name Subject Predicate Object
wasGeneratedBy(id,e,a,t,[attr_1=val_n, ..., attr_n=val_n])
==>  :a a prov:Activity
 :e a prov:Entity
 :e prov:wasGeneratedBy  :a
 :e prov:involved  :a
 :e prov:qualifiedGeneration  :id
 :id a prov:Generation
 :id a prov:InstantaneousEvent
 :id a prov:ActivityInvolvement
 :id a prov:Involvement
 :id prov:activity  :a
 :id prov:atTime t^^xsd:dateTime
 :id  :attr_1 val_1
...
 :id  :attr_n val_n


prov:wasGeneratedby owl:inverseOf prov:generated .
prov:wasGeneratedBy rdfs:subPropertyOf prov:involved .

Issues:

Usage

  • Mapped to OWL


PROV-DM (eg) <math>\implies</math> PROV-O (eg)

PROV-N sd:name Subject Predicate Object
used(id,a,e,t,[attr_1=val_1, ..., attr_n=val_n])
==>  :a prov:used  :e
 :a prov:involved  :e
 :a a prov:Activity
 :e a prov:Entity
 :a prov:qualifiedUsage  :id
 :id a prov:Usage
 :id a prov:InstantaneousEvent
 :id a prov:EntityInvolvement
 :id a prov:Involvement
 :id prov:entity  :e
 :id prov:atTime t^^xsd:dateTime
 :id  :attr_1 val_1
...
 :id  :attrn val_n



Issues:

Notes:

  • a "hadActivity" from the Involvement to the Activity is intentionally omitted. It's purpose is performed by its inverse "hadQualifiedUsage", which points from an Activity to an Involvement. This is done to maintain the design goal of "Entities and Activities are principle instances" and that the subjects of triples are more principal than objects of triples. -Tim

Agent Association

  • Mapped to OWL

PROV-DM (eg) <math>\implies</math> PROV-O (eg)

PROV-N sd:name Subject Predicate Object
wasAssociatedWith(id,a,ag,pl,[attr_1=val_1, ..., attr_n=val_n])
==>  :a prov:wasAssociatedWith  :ag
 :a prov:involved  :ag
 :a a prov:Activity
 :ag a prov:Agent
 :ag a prov:Entity
 :a prov:qualifiedAssociation  :id
 :id a prov:Association
 :id a prov:AgentInvolvement
 :id a prov:Involvement
 :id prov:agent  :ag
 :id prov:hadPlan  :pl
 :id  :attr_1 val_1
...
 :id  :attr_n val_n
 :pl a prov:Plan
 :pl a prov:Entity


prov:Plan rdfs:subClassOf prov:Entity .
# Furthermore, since plans may evolve over time, it may become 
# necessary to track their provenance, and hence, plans are entities. WD3


Issues:

Notes:

  • "hadActivity" is excluded; its purpose is fulfilled by prov:hadQualifiedAssociation (the preferred inverse)
  • the directionality of wasAssociatedWith follows the same as used: from Activity to Entity, following the goal of "pointing to what has existed longer"

Starting

  • Mapped to OWL

PROV-DM (eg) <math>\implies</math> [PROV-O] (eg)

PROV-N sd:name Subject Predicate Object
wasStartedBy(id,a,ag,[attr_1=val_1, attr_n=val_n])
==>  :a prov:wasStartedBy  :ag
 :a a prov:Activity
 :ag a prov:Agent
 :ag a prov:Entity
 :a prov:wasAssociatedWith  :ag
 :a prov:involved  :ag
 :a prov:qualifiedAssociation  :id
 :id a prov:Start
 :id a prov:InstantaneousEvent
 :id a prov:Association
 :id a prov:AgentInvolvement
 :id a prov:Involvement
 :id prov:agent  :ag
 :id attr_1 val_1
...
 :id attr_n val_n


prov:wasStartedBy rdfs:subPropertyOf prov:wasAssociatedWith .
# Both relations are specialized forms of wasAssociatedWith -WD3

F2F2 agreed that we would separate 1) who started and 2) when it was started

Issues:

Ending

TODO: review

  • Mapped to OWL

PROV-DM <math>\implies</math> [PROV-O]

PROV-N sd:name Subject Predicate Object
wasEndedBy(id,a,ag,[attr_1=val_1, ..., attr_n=val_n])
==>  :a prov:wasEndedBy  :ag
 :a a prov:Activity
 :ag a prov:Agent
 :ag a prov:Entity
 :a prov:wasAssociatedWith  :ag
 :a prov:involved  :ag
 :a prov:qualifiedAssociation  :id
 :id a prov:End
 :id a prov:InstantaneousEvent
 :id a prov:Association
 :id a prov:AgentInvolvement
 :id a prov:Involvement
 :id prov:agent  :ag
 :id attr_1 val_1
...
 :id attr_n val_n


prov:wasEndedBy rdfs:subPropertyOf prov:wasAssociatedWith .
# Both relations are specialized forms of wasAssociatedWith -WD3

F2F2 agreed that 1) who started and 2) when it was started would be separated

Responsibility

TODO: review

  • Mapped to OWL

PROV-DM <math>\implies</math> PROV-O

PROV-N sd:name Subject Predicate Object
actedOnBehalfOf(id,ag2,ag1,a,[attr_1=val_1, ..., attr_n=val_n])
==>  :ag2 prov:actedOnBehalfOf  :ag1
 :ag2 a prov:Agent
 :ag2 a prov:Entity
 :ag1 a prov:Agent
 :ag1 a prov:Entity
 :ag2 prov:involved  :ag1
 :ag2 prov:qualifiedResponsibility  :id
 :id a prov:Responsibility
 :id a prov:AgentInvolvement
 :id a prov:Involvement
 :id prov:agent  :ag1
 :id prov:activity  :a
 :id a prov:ActivityInvolvement
 :id attr_1 val_1
...
 :id attr_n val_n
 :a a prov:Activity



Issues:

Derivation

TODO: review

PROV-DM (eg) <math>\implies</math> PROV-O (eg)

https://www.w3.org/2011/prov/track/issues/294


PROV-N sd:name Subject Predicate Object
wasDerivedFrom(id, e2, e1, a, g2, u1, [attr_1=val_1, ..., attr_n=val_n])
==>  :e2 prov:wasDerivedFrom prov:e1
 :e2 a prov:Entity
 :e1 a prov:Entity
 :a a prov:Activity
 :g2 a prov:Generation
 :g2 a prov:InstantaneousEvent
 :g2 a prov:ActivityInvolvement
 :g2 a prov:Involvement
 :u1 a prov:Usage
 :u1 a prov:InstantaneousEvent
 :u1 a prov:EntityInvolvement
 :u1 a prov:Involvement
 :e2 prov:tracedTo  :e1
 :e2 prov:involved  :e1
 :e2 prov:involved  :a
 :e2 prov:qualifiedDerivation  :id
 :id a prov:Derivation
 :id a prov:InstantaneousEvent
 :id a prov:EntityInvolvement
 :id a prov:Involvement
 :id prov:activity  :a
 :id a prov:ActivityInvolvement
 :id prov:generation  :g2
 :id prov:usage  :u1
 :id  :attr_1 val_1
...
 :id  :attr_n val_n
 :e2 prov:wasGeneratedBy  :a
 :a prov:used  :e1
 :e2 prov:involved  :a
 :a prov:involved  :e1
 :e2 prov:qualifiedGeneration  :g2
 :a prov:qualifiedUsage  :u1
 :g2 prov:activity  :a
 :u1 prov:entity  :e1


Notes:

This RDF expansion is very verbose because of the infererred usage/generation links with the activity. The actual derivation is fully asserted using :e2 prov:qualifiedDerivation :id and :id with its direct properties.

TODO: Use different colour/font for inferred statements? For instance.. italics? Or can we keep such inference rules separately to avoid repeating them, including subclass hieararchy? I in many way prefer to show all superproperties and superclasses, because it would highlight cases where they might not make sense or is difficult. For instance above - is prov:Derivation always a prov:ActivityInvolvement? --Stian


Issue:

  • Show what non-activity specific wasDerivedFrom(id, e2, e1,
 [attr1=val1]) will look like as well? Introducing usage or generation
 will infer a single activity, but it's still possible to do derivation
 across multiple activities.


prov:wasDerivedFrom rdfs:subClassOf prov:tracedTo .


Revision

  • Mapped to OWL

PROV-DM (eg) <math>\implies</math> [PROV-O] (eg)

PROV-N sd:name Subject Predicate Object
wasRevisionOf(id,e2,e1,ag,[attr_1=val_1, ..., attr_n=val_n)
==>  :e2 prov:wasRevisionOf  :e1
 :e2 a prov:Entity
 :e1 a prov:Entity
 :e2 prov:wasDerivedFrom  :e1
 :e2 prov:tracedTo  :e1
 :e2 prov:involved  :e1
 :e2 prov:qualifiedRevision  :id
 :id a prov:Revision
 :id a prov:Derivation
 :id a prov:EntityInvolvement
 :id a prov:Involvement
 :id prov:entity  :e1
 :id  :attr_1 val_1
...
 :id  :attr_n val_n

Issues:

  • Is it true in DM that wasRevisionOf(id, ..., attrs) implies wasDerivedFrom(id,
 ..., attrs)?  If not, prov:Revision can't be subclass of
 prov:Derivation. (and equivalent for qualifiedRevision)


prov:wasRevisionOf rdfs:subPropertyOf prov:wasDerivedFrom .

Attribution

  • Mapped to OWL

PROV-DM (eg) <math>\implies</math> PROV-O (eg)

PROV-N sd:name Subject Predicate Object
wasAttributedTo(id,e,ag,[attr_1=val_1, ..., attr_n=val_n])
==>  :e prov:wasAttributedTo  :ag
 :e a prov:Entity
 :ag a prov:Agent
 :ag a prov:Entity
 :e prov:tracedTo  :ag
 :e prov:involved  :ag
 :e prov:qualifiedAttribution  :id
 :id a prov:Attribution
 :id a prov:AgentInvolvement
 :id a prov:Involvement
 :id prov:agent  :ag
 :id attr_1 val_1
...
 :id attr_n val_n


prov:wasAttributedTo rdfs:subPropertyOf prov:tracedTo .

Issues:

Quotation

  • Mapped to OWL

PROV-DM (eg) <math>\implies</math> PROV-O (eg)

PROV-N sd:name Subject Predicate Object
wasQuotedFrom(id,e2,e1,ag2,ag1,[attr_1=val_1, ..., attr_n=val_n])
==>  :e2 prov:wasQuotedFrom  :e1
 :e2 a prov:Entity
 :e1 a prov:Entity
 :ag1 a prov:Agent
 :ag1 a prov:Entity
 :ag2 a prov:Agent
 :ag2 a prov:Entity
 :e2 prov:wasDerivedFrom  :e1
 :e2 prov:tracedTo  :e1
 :e2 prov:involved  :e1
 :e2 prov:qualifiedQuotation  :id
 :id a prov:Quotation
 :id a prov:EntityInvolvement
 :id a prov:Involvement
 :id prov:entity  :e1
 :id prov:quoter  :ag2
 :id prov:quoted  :ag1
 :id attr_1 val_1
...
 :id attr_n val_n
 :e1 prov:wasAttributedTo  :ag1
 :e2 prov:wasAttributedTo  :ag2


Issues:


Activity Ordering (informed by)

  • Mapped to OWL

PROV-DM (eg) <math>\implies</math> PROV-O (eg)

PROV-N sd:name Subject Predicate Object
wasInformedBy(id,a2,a1,[attr_1=val_1, ..., attr_n=val_n])
==>  :a2 prov:wasInformedBy  :a1
 :a2 a prov:Activity
 :a1 a prov:Activity
 :a2 prov:involved  :a1
 :a2 prov:qualifiedInform  :id
 :id a prov:Inform
 :id a prov:ActivityInvolvement
 :id a prov:Involvement
 :id prov:activity  :a1
 :id attr_1 val_1
...
 :id attr_n val_n


Issues:


Started by activity

TODO: missing "Activity"

  • Mapped to OWL

PROV-DM (eg) <math>\implies</math> PROV-O (eg)

PROV-N sd:name Subject Predicate Object
wasStartedBy(id, a2, a1, [attr_1=val_1, ..., attr_n=val_n])
==>  :a2 prov:wasStartedByActivity  :a1
 :a2 a prov:Activity
 :a1 a prov:Activity
 :a2 prov:involved  :a1
 :a2 prov:qualifiedStart  :id
 :id a prov:StartByActivity
 :id a prov:ActivityInvolvement
 :id a prov:Involvement
 :id prov:activity  :a1
 :id attr_1 val_1
...
 :id attr_n val_n


Notes:

  • DM is missing "id" in the signature. Fixed in WD4

Issues:

Traceability

  • Mapped to OWL

PROV-DM (eg) <math>\implies</math> [PROV-O] (eg)

PROV-N sd:name Subject Predicate Object
tracedTo(id,e2,e1,[attr_1=val_1, ..., attr_n=val_n)
==>  :e2 prov:tracedTo  :e1
 :e2 a prov:Entity
 :e1 a prov:Entity
 :e2 prov:involved  :e1
 :e2 prov:qualifiedTrace  :id
 :id a prov:Trace
 :id a prov:EntityInvolvement
 :id a prov:Involvement
 :id prov:entity  :e1
 :id attr_1 val_1
...
 :id attr_n val_n

Original Source

PROV-DM (eg) <math>\implies</math> PROV-O (eg)

PROV-N sd:name Subject Predicate Object
hadOriginalSource(id,e2,e1,[attr_1=val_1, ..., attr_n=val_n])
==>  :e2 prov:hadOriginalSource  :e1
 :e2 a prov:Entity
 :e1 a prov:Entity
 :e2 prov:wasDerivedFrom  :e1
 :e2 prov:tracedTo  :e1
 :e2 prov:involved  :e1
 :e2 prov:qualifiedSource  :id
 :id a prov:Source
 :id a prov:EntityInvolvement
 :id a prov:Involvement
 :id prov:entity  :e1
 :id  :attr_1 val_1
...
 :id  :attr_n val_n

TODO: a Source? a Sourcing? SourceRelation? (e1 is the source, not id!)



AlternateOf

PROV-DM (eg) <math>\implies</math> PROV-O (eg)

  • Mapped to OWL (without attributes)
PROV-N sd:name Subject Predicate Object
alternateOf(alt1,alt2)
==>  :alt1 prov:alternateOf  :e2
 :alt2 a prov:Entity
 :e2 a prov:Entity

NOTE: Attributes removed by vote on 1 march 2012.

SpecializationOf

PROV-DM (eg) <math>\implies</math> PROV-O (eg)

  • Mapped to OWL (without attributes)
PROV-N sd:name Subject Predicate Object
specializationOf(sub,super)
==>  :sub prov:specializationOf  :super
 :sub a prov:Entity
 :super a prov:Entity

NOTE attributes removed by wg vote 1 march 2012.

Annotation

PROV-DM (eg) <math>\implies</math> [PROV-O] (eg)

  • Mapped to OWL
PROV-N sd:name Subject Predicate Object
hasAnnotation(r,n)
==>  :r prov:hasAnnotation  :n
 :n a prov:Note

NOTE: attributes removed by wg vote 1 mar 2012.


Issues:

Further terms in records

It's not clear to me that we need to spell these out as rules in the mapping. But, it is good to explain how attributes, literals, identifiers, times, etc. in PROV-DM map to PROV-O-compliant RDF. ---[James]

Attribute

  • Mapped to OWL (except prov:steps)

http://www.w3.org/TR/2012/WD-prov-dm-20120202/#record-attribute PROV-DM] (eg) <math>\implies</math> PROV-O (eg)

Note that the following patterns are implicit in the above rules for the various constructs that carry ids and attributes ---[James]


PROV-N sd:name Subject Predicate Object
...(id, ..., prov:role = myrole)
==>  :id prov:hadRole  :myrole
 :myrole a prov:Role

<math> \begin{array}{lcl} ...(id, ..., ~\texttt{prov:role}=myrole) &\to& \left\{ \begin{array}{lcl}

 id & \texttt{prov:hadRole} & myrole\ .\\
 myrole  & \texttt{a} & \texttt{prov:Role}\ .\\

\end{array}\right. \end{array} </math>

<math> \begin{array}{lcl} ...(id, ..., \texttt{prov:type}=\texttt{prov:SoftwareAgent}) &\to& \left\{ \begin{array}{lcl}

 id & \texttt{a} & \texttt{prov:SoftwareAgent}\ .\\
 id & \texttt{a} & \texttt{prov:Agent}\ .\\
 id & \texttt{a} & \texttt{prov:Entity}\ .\\

\end{array}\right. \end{array} </math>


<math> \begin{array}{lcl} ...(id, ..., \texttt{prov:steps}=single) &\to& \left\{ \begin{array}{lcl}

 id & \texttt{prov:steps} & \texttt{prov:single}\ .\\

\end{array}\right. \end{array} </math>


PROV-N sd:name Subject Predicate Object
...(id, ..., prov:label = pretty)
==>  :myrole rdfs:label "pretty"

<math> \begin{array}{lcl} ...(id, ..., \texttt{prov:label}=pretty) &\to& \left\{ \begin{array}{lcl}

 id & \texttt{rdfs:label} & pretty\ .\\

\end{array}\right. \end{array} </math>

Identifier

As per PROV-DM, an identifier is a qualified name in the same sense as in RDF/SPARQL.

Literal

PROV-DM literals include values that can be typed by XML Schema basic types, and thus can include URIs (unlike RDF's Literals). Thus, some care may need to be taken here when mapping PROV-DM literals that are URIs.

Time

PROV-DM (eg) <math>\implies</math> PROV-O (eg)

Namespace declaration

A PROV-DM namespace declaration should be translated to an XML namespace declaration (for RDF/XML); or other RDF serializations the appropriate mechanism should be used.

Location

  • Mapped to OWL

PROV-DM (eg) <math>\implies</math> PROV-O (eg)

PROV-N sd:name Subject Predicate Object
...(id, [..., location=loc])
==>  :id prov:hadLocation  :loc
 :loc a prov:Location
 :loc a wgs:SpatialThing

Issues:

Common Relations

Collections

PROV-DM (eg) <math>\implies</math> PROV-O

Out of the scope of the initial mapping since collections are still in flux

Collection insertion

<math> \begin{array}{lcl} CollectionAfterInsertion(c2,c1, k1, v1) &\to& \left\{ \begin{array}{lcl}

 c2 & \texttt{prov:wasExpandedFrom} & c1\ .\\
 c2 & \texttt{prov:wasExpandedWithKey} & k1\ .\\
 c2 & \texttt{prov:wasExpandedWithValue} & v1\ .\\
 c1 & \texttt{a} & \texttt{prov:Collection}\ .\\
 c1 & \texttt{a} & \texttt{prov:Entity}\ .\\
 c2 & \texttt{a} & \texttt{prov:Collection}\ .\\
 c2 & \texttt{a} & \texttt{prov:Entity}\ .\\
 k1 & \texttt{a} & \texttt{prov:Entity}\ .\\
 v1 & \texttt{a} & \texttt{prov:Entity}\ .\\
 c2 & \texttt{prov:wasDerivedFrom} & c1\ .\\
 c2 & \texttt{prov:tracedTo} & c1\ .\\
 c2 & \texttt{prov:involved} & c1\ .\\
 c2 & \texttt{prov:wasDerivedFrom} & k1\ .\\
 c2 & \texttt{prov:tracedTo} & k1\ .\\
 c2 & \texttt{prov:involved} & k1\ .\\
 c2 & \texttt{prov:wasDerivedFrom} & v1\ .\\
 c2 & \texttt{prov:tracedTo} & v1\ .\\
 c2 & \texttt{prov:involved} & v1\ .\\
 c2 & \texttt{prov:qualified} & ?id\ .\\
 ?id & \texttt{a} & \texttt{prov:CollectionExpansion}\ .\\
 ?id & \texttt{a} & \texttt{prov:CollectionDerivation}\ .\\
 ?id & \texttt{a} & \texttt{prov:Derivation}\ .\\
 ?id & \texttt{a} & \texttt{prov:EntityInvolvement}\ .\\
 ?id & \texttt{a} & \texttt{prov:Involvement}\ .\\
 ?id & \texttt{prov:collection} & c1\ .\\
 ?id & \texttt{prov:key} & k1\ .\\
 ?id & \texttt{prov:value} & v1\ .

\end{array}\right. \end{array} </math>

Notes:

  • Using "expansion" rather than "insertion" as insertion implies mutability, and the style "c2 wasInsertedFrom c1" does not work well. ISSUE-135 (Stian)
  • Functional properties: prov:wasExpandedFrom, prov:wasExpandedWithKey, prov:wasExpandedWithValue, prov:collection, prov:key, prov:value (also - a prov:Collection can only have one prov:qualified [prov:CollectionDerivation] - but this is not expressable in OWL-RL) (Stian)
  •  ?id indicates an anonymous node (b-node) as no ID was assigned in DM. (Thus it is not possible to attach notes to collection statements, etc in DM)

Issues:

  • DM says "source: an identifier collBefore for the collection record representing the collection before the insertion". What does _source_ mean? (Stian)
  • Is c2 derived from just c1, or also from k1 and v1?
  • Should the key/value be stated directly on c2, only on ?id, or both?
    • Is the prov:CollectionExpansion node needed? DM does not have attributes or ID for this derivation.
  • Can k1 be optional? (For bags). Presumably for a set, one would use k1==v1

Collection removal

<math> \begin{array}{lcl} CollectionAfterRemoval(c2,c1,k1) &\to& \left\{ \begin{array}{lcl}

 c2 & \texttt{prov:wasReducedFrom} & c1\ .\\
 c2 & \texttt{prov:wasReducedWithKey} & k1\ .\\
 c1 & \texttt{a} & \texttt{prov:Collection}\ .\\
 c1 & \texttt{a} & \texttt{prov:Entity}\ .\\
 c2 & \texttt{a} & \texttt{prov:Collection}\ .\\
 c2 & \texttt{a} & \texttt{prov:Entity}\ .\\
 k1 & \texttt{a} & \texttt{prov:Entity}\ .\\
 c2 & \texttt{prov:wasDerivedFrom} & c1\ .\\
 c2 & \texttt{prov:tracedTo} & c1\ .\\
 c2 & \texttt{prov:involved} & c1\ .\\
 c2 & \texttt{prov:wasDerivedFrom} & k1\ .\\
 c2 & \texttt{prov:tracedTo} & k1\ .\\
 c2 & \texttt{prov:involved} & k1\ .\\
 c2 & \texttt{prov:qualified} & ?id\ .\\
 ?id & \texttt{a} & \texttt{prov:CollectionReduction}\ .\\
 ?id & \texttt{a} & \texttt{prov:CollectionDerivation}\ .\\
 ?id & \texttt{a} & \texttt{prov:Derivation}\ .\\
 ?id & \texttt{a} & \texttt{prov:EntityInvolvement}\ .\\
 ?id & \texttt{a} & \texttt{prov:Involvement}\ .\\
 ?id & \texttt{prov:collection} & c1\ .\\
 ?id & \texttt{prov:key} & k1\ .\\

\end{array}\right. \end{array} </math>

Notes:

  • Uses terminology "reduced" rather than "removed" to indicate that c2 does not have something c1 had and avoid implying mutability.


Issues:

  • Why can't prov:value/prov:wasReducedWithKey be included? (Stian)
    • What if ":c1 prov:wasGeneratedBy :something" and I want to assert that I removed v1? It is the v1 that is important in my assertion, not k1. (Stian)
  • Is it fair to say c2 is derived from k1, when it does not contains k1? (Stian)

Collection literals

Prov-DM is ambiguous about literals in collections. One suggestion is that literal values should be mapped using a prov:Entity with rdf:value.

Suggestion:

<math> \begin{array}{lcl} CollectionAfterInsertion(c2,c1, \texttt{'my\ key'}, \texttt{122.5}) &\to& \left\{ \begin{array}{lcl}

 c2 & \texttt{prov:wasExpandedFrom} & c1\ .\\
 c2 & \texttt{prov:wasExpandedWithKey} & ?k1\ .\\
 c2 & \texttt{prov:wasExpandedWithValue} & ?v1\ .\\
 \vdots\\
 ?k1 & \texttt{a} & \texttt{prov:LiteralEntity}\ .\\
 ?k1 & \texttt{a} & \texttt{prov:Entity}\ .\\
 ?k1 & \texttt{rdf:value} & \texttt{'my\ key'}\ .\\
 ?k1 & \texttt{a} & \texttt{prov:LiteralEntity}\ .\\
 ?v1 & \texttt{a} & \texttt{prov:Entity}\ .\\
 ?v1 & \texttt{rdf:value} & \texttt{122.5}\ .\\

\end{array}\right. \end{array} </math>

Notes:

  • Stian modified DM on Collections to state that key/value are entities, rather than literals (all examples used entities)
  • DM does not provide a way to equal entities and literals
  • prov:LiteralEntity means that rdf:value contains the 'actual' entity, typically a string, number, etc. and can be used also outside collections.

Issues:

  • Should one instead use Content in RDF? That does not support floats, etc, but does support binaries.

Characteristics of Object Properties

The table below summarizes the characteristics of the object properties that are defined in the OWL ontology. The question mark symbol is used to denote that the characteristic in question is under discussion by the WG (this is the case for alternateOf where an issue was raised to determine if it is transitive), or because I am not sure whether the property in question is supported bye the object property. I am also using (Yes) and (No) to denote properties that I am not sure of, but for which I am inclined to say yes or no. These also need to be discussed with the rest of the prov-o team. -- khalid

Functional Reverse functional Transitive Symmetric Asymmetric Reflexive Irreflexive
prov:activity Yes No No No Yes No Yes
prov:hadPlan ? No No No Yes No Yes
prov:alternateOf No No ? Yes No Yes No
prov:endedAtTime Yes No No No Yes No Yes
prov:entity Yes No No No Yes No Yes
prov:hadQuotedAgent Yes No No No Yes No Yes
prov:hadQuoterAgent Yes No No No Yes No Yes
prov:wasGeneratedBy Yes No No No Yes No Yes
prov:hadRole (Yes) No No No Yes No Yes
prov:hadLocation (Yes) No No No Yes (Yes) (No)
prov:hasAnnotation No (No) No No Yes No Yes
prov:involved ? ? ? ? ? ? ?
prov:actedOnBehalfOf (No) No No No No No Yes
prov:generated No Yes No No Yes No Yes
prov:tracedTo No No Yes No Yes No Yes
prov:wasAttributedTo Yes No (No) No Yes No Yes
prov:wasDerivedFrom No No No No Yes No Yes
prov:hadOriginalSource Yes No (No) No Yes No Yes
prov:wasQuotedFrom (Yes) No (No) No Yes No Yes
prov:wasRevisionOf No No Yes No Yes No Yes
prov:used No No No No Yes No Yes
prov:wasAssociatedWith No No No No Yes No Yes
prov:wasEndedBy ? No No No Yes No Yes
prov:wasStartedBy ? No No No Yes No Yes
prov:wasGeneratedBy Yes No No No Yes No Yes
prov:wasInformedBy No No (No) No No No No
prov:wasStartedByActivity ? ? ? ? ? ? ?
prov:atTime Yes No No No Yes No Yes
prov:specializationOf No No Yes No Yes (Yes) (No)
prov:startedAtTime Yes No No No Yes No Yes

WG feedback Feb 2012

http://www.w3.org/2011/prov/wiki/Meetings:Telecon2012.02.23#PROV-O_Ontology:_Reviewer_feedback

Questions/problems

  • The activity record is the only one that mentions additional things besides attributes. This seems odd.
    • Proposal: wasStartedBy, wasEndedBy and activity records / times are all under review in PROV-DM, so hopefully this will be addressed.
  • It isn't obvious whether we should emit a triple saying that the plan element of an activity is a <math>\texttt{prov:Plan}</math>. I guess this can be inferred if we omit it?
    • [Resolved: we give it explicitly]
  • In the rule for note, there is no class we can assign to the id. (The obvious idea of using rdfs:comment doesn't work because there's no separate class for the comments, and the range of rdfs:comment is Literal.) Is this a problem?
    • Proposed solution: add class prov:Note.
    • Resolved: PROV-O now has class Note
  • wasGeneratedBy has a time which can be linked to the generated entity by <math>\texttt{prov:wasGeneratedAt}</math>, but I think the time should be linked directly to the id.
    • Proposed solution: introduce <math>\texttt{prov:happenedAt}</math>, define <math>\texttt{prov:wasGeneratedAt}</math> as the composition of <math>\texttt{prov:happenedAt}</math> and <math>\texttt{prov:hadQualifiedEntity}</math>.
    • Resolved: handling using atTime for now
  • used has a time and it's not obvious what this should be linked to in RDF and how. There is no relation for linking the used id to the time.
    • Proposed solution: introduce <math>\texttt{prov:happenedAt}</math>.
    • Resolved: using atTime for now
  • wasStartedBy and wasEndedBy are treated as events (and they have id's and attributes), but there is no class for them.
    • Proposed solution: introduce <math>\texttt{prov:ActivityStart}</math> and <math>\texttt{prov:ActivityEnd}</math> as subclasses of QualifiedInvolvement.
    • Resolved: using prov:Start and prov:End
  • In hasAnnotation, should the attributes be connected to r or to n? Given that the note n can have arbitrary attributes, why does hasAnnotation have additional attributes?
    • Proposal: Suggest that DM consider dropping attributes on hasAnnotation and instead recommends subclassing Note to express different kinds of notes.

From PROV-O to PROV-DM

Given an instance of PROV-O, we want to compute an instance of PROV-DM that has the "same meaning".

The basic idea is:

  1. For each node in the RDF graph, check whether the node is an instance of one of the PROV-O classes Entity, Agent, or Activity.
    1. For each such node, look for the appropriate edges in the prov: namespace needed to fill in the fields of the corresponding PROV-DM record.
    2. Any additional fields in other namespaces are added as attributes.
  2. For each of the edges / graph patterns corresponding to PRO-DM relations, look for the corresponding data and generate the appropriate relation.

[TODO: Flesh this out!]