- From: James Leigh <james@3roundstones.com>
- Date: Thu, 04 Oct 2012 13:58:57 -0400
- To: public-prov-comments <public-prov-comments@w3.org>
Hi, I wanted to share some feedback on PROV-O now that we have some experience integrating it into Callimachus. Can PROV-O be used to capture contributors to a resource over time, if each of the resource revisions is not represented with a unique entity? The semantics of prov:used and prov:wasInformedBy seem too weak at times. However, the prov:generated is too strong for our use case. For example, the way a cooking activity uses a spoon is very different from how it uses a bag of flour. That is to say a spoon's state is (to a large degree) unchanged after cooking with it, but the state of a bag of flour (in many cases) may change. What is the recommended way to capture these consumable resources? Must different entity URIs be used to represent the bag of flour before and after it was used? Is there any way to say an activity changed the state of a resource, but not in any significant way? This could happen if the context model does not consider the amount of flour consumed to be of any significance, but still wanted to record which activities consumed some flour. Detecting consumable resources is not always a property of the resource itself. Consider how a person uses a newspaper in the morning vs how they it is consumed in the evening, when building a fire. Would this distinction between how a resource is used require semantics beyond PROV-O? The way PROV-O uses qualified relationships is very interesting and useful. It allows simple relationships to be created (like prov:used) and if needed it can be clarified with a qualifiedUsage, very clever idea. We are getting ready to release callimachus 0.18 and wanted to share our experience wrt integrating the PROV-O vocabulary into Callimachus and hopefully receive some feedback to ensure we are using it correctly. I wrote some examples on how Callimachus is using PROV-O to created metadata graphs, that describe an activity, in Provenance and Traceability in RDF with Callimachus[1]. While trying to bring the gap between how people use Callimachus and the examples in the PROV-O Primer, some assumptions on the semantics in PROV-O were made. I hope this working group will consider how Callimachus is using PROV-O and clarify some of the semantics and provide a bit more clarity for us. Callimachus assumes that a resource may change over time and permits the state of a resource to be modified by a user without changing the resource's identifier. This means that, over time, multiple activities may contribute to the current state of a resource. However, distinct URIs to reference each of the states may not be available. The property prov:wasRevisionOf is documented[2] as a way to link entity revisions and combined with prov:wasGeneratedBy a way to link all the activities that contributed to an entity. However, since Callimachus does not require different URIs for each revision, this relationship could not be relied upon. Instead Callimachus is using the prov:used to link activities with the entities they contributed to and prov:wasGeneratedBy to link a resource with the most recent activity, which contributed to its state. An example of this, from the blog post[1], is shown below. Is this usage consistent with the semantics of prov:used and prov:wasGeneratedBy? Callimachus also uses prov:wasInformedBy to link a activity, that reverses a resource state, to the activity that created the resource state. Is this usage permitted by the semantics of PROV-O? Here is the example of the blog post[1] that shows an activity t9 that changed the skos:definition of </sun> from "The great luminary" to "The lamp of day". Are the PROV-O properties consistent with the semantics of the specification? GRAPH </activity/2012/10/02/t9> { </sun> skos:definition "The lamp of day" ; prov:wasGeneratedBy </activity/2012/10/02/t9> . </activity/2012/10/02/> calli:hasComponent </activity/2012/10/02/t9> ; prov:wasGeneratedBy </activity/2012/10/02/t9> . </activity/2012/10/02/t9> a </callimachus/Activity> , audit:RecentActivity , prov:Activity ; calli:reader </group/admin> , </group/staff> , </group/everyone> ; prov:used </sun> ; prov:wasInformedBy </activity/2012/10/02/t5> ; prov:startedAtTime "2012-10-02T19:14:58.311Z"^^xsd:dateTime ; prov:endedAtTime "2012-10-02T19:14:58.538Z"^^xsd:dateTime ; prov:wasAssociatedWith </user/james> ; prov:qualifiedUsage </activity/2012/10/02/t9#b6fa8411> ; prov:wasGeneratedBy </activity/2012/10/02/t9> . </activity/2012/10/02/t5> prov:qualifiedUsage </activity/2012/10/02/t9#b6fa8411> ; prov:wasGeneratedBy </activity/2012/10/02/t9> . </activity/2012/10/02/t9#b6fa8411> prov:entity </sun> ; audit:changed [ rdf:subject </sun> ; rdf:predicate skos:definition ; rdf:object "The great luminary" ] . } Thanks, James [1] http://jamesrdf.blogspot.ca/2012/10/provenance-and-traceability-in.html [2] http://www.w3.org/TR/prov-primer/#complete-prov-data
Received on Thursday, 4 October 2012 17:59:25 UTC