PROV-O in Callimachus

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