W3C home > Mailing lists > Public > public-openannotation@w3.org > April 2014

Re: Annotation creation and updates

From: Paolo Ciccarese <paolo.ciccarese@gmail.com>
Date: Fri, 25 Apr 2014 21:52:23 -0400
Message-ID: <CAFPX2kBzarKsqfWU8TUe=EXXkLbWjpJhmipKJbYUr+uk+TeHOA@mail.gmail.com>
To: Bob Morris <morris.bob@gmail.com>
Cc: public-openannotation <public-openannotation@w3.org>
I have no problem in having separate provenance graph. In fact I already
manage provenance graphs that keep track of many other things (client,
organization...). These can be obtained on demand with separate calls then
those for regular Annotation.

However, what I am trying to do is rather simple (basically equivalent to
Bob's last example). For more complex use cases I would resort to full
versioning.

The creation/update is something not only useful for Domeo/Annotopia but
seems also basic stuff for annotator.js (see:
http://docs.annotatorjs.org/en/latest/annotation-format.html ) where you
have 'created' and 'updated'. As HarvardX is producing annotator.js format,
I need to translate that into Open Annotation without losing information.

I am assuming Herbert is suggesting to have only oa:Annotation and a
oa:annotatedAt. Then... oa:annotatedAt would be the creation date when the
annotation is created and the update date when the annotation is updated.
To know if an Annotation is just created or updated you would need to query
the provenance graph. Herbert, is that what you meant?

If this is the case, isn't it asking for too much complexity when a simple
created/updated withing the Annotation instance would be just enough?

Paolo




On Fri, Apr 25, 2014 at 3:38 PM, Bob Morris <morris.bob@gmail.com> wrote:

> Hmmm.  Come to think of it, consider  parsing in natural English
> ("subject predicate object"), we would expect that it is not the
> Target, but rather the oa:Annotation that is being annotatedAt
> 2014-02-17T09:46:11EST, . At the very least, to preserve your model
> and natural English, the creation predicates would need changing to a
> form like the pav:  forms, which suggests that (a)the pav: forms are
> enough alone (b) the breadth of the PROV expressiveness is so high
> that, has Herbert et al. suggest,  OA could express its use as
> connected by a single top-level provenance predicate
> ("oa:hasProvenance") with rdfs:range in PROV, perhaps along with some
> minimal expected prov terms.
>
> None of the above is meant to address your questions about what should
> be the nature of update history.  IMO this is a very domain-specific
> issue.  For example,  the scientific names of species change over
> time, each change associated with a publication.  The order of these
> changes and the provenance of citations of them, is very relevant and
> ,sadly, often impossible to memorialize in one or another relational
> database.  Thus  arguably, if a set of annotations is about species,
> then having nothing but "original" and "latest" updates to an
> annotation might be far from enough.  On the other hand, consider an
> annotation of <http://mbta.com/commuterRailLine/Fitchburg#> which has
> Body a train schedule object. This might well do with only a
> 'lastUpdate' attribute.
>
> Bob
>
>
> On Fri, Apr 25, 2014 at 11:09 AM, Paolo Ciccarese
> <paolo.ciccarese@gmail.com> wrote:
> > Dear all,
> > I am currently developing the Annotopia Open Annotation server [1][2][3]
> and
> > there are a few topics that I believe would be wise to discuss in the
> > mailing list in order to collect some additional feedback.
> >
> > I will start with one topic: keeping track of annotation creation and
> update
> > (date/agent).
> >
> > I collected some non conclusive thoughts here:
> >
> http://hcklab.blogspot.com/2014/04/annotopia-creationupdates-with-open.html
> >
> > No versioning for now. If that is of interest, months ago, I wrote some
> > thoughts here:
> http://www.w3.org/community/openannotation/wiki/Versioning
> >
> > In short, I am currently thinking of using PAV [4] with something like
> this:
> >
> > {
> >     "@id" : "
> http://host/s/annotation/830ED7EE-BF7B-4A18-8AE1-A9AF96AC135B",
> >     "@type" : "oa:Annotation",
> >     "annotatedAt" : "2014-02-17T09:46:11EST",
> >     "annotatedBy" : {
> >       "@id" : "http://orcid.org/0000-0002-5156-2703",
> >       "@type" : "foaf:Person",
> >       "name" : "Paolo Ciccarese"
> >     },
> >     "pav:createdOn" : "2014-02-17T09:48:11EST",
> >     "pav:createdBy" : {
> >       "@id" : "http://orcid.org/0000-0002-5156-2703",
> >       "@type" : "foaf:Person",
> >       "name" : "Paolo Ciccarese"
> >     },
> >     "pav:lastUpdateOn" : "2014-03-11T11:46:11EST",
> >     "pav:lastUpdateBy" : {
> >       "@id" : "http://example.org/johndoe",
> >       "@type" : "foaf:Person",
> >       "name" : "John Doe"
> >     }
> > ...
> > }
> >
> > Where:
> > (i) 'createdOn/createdBy' for the original creation on the (Annotopia)
> > server
> > (ii) 'lastUpdateOn/lastUpdateBy' for the last update on the (Annotopia)
> > server
> >
> > Question is: what is 'annotatedAt' going to indicate once the annotation
> has
> > been updated? The original creation or the latest update? In fact, some
> > application will understand only the 'annotatedAt' property.
> >
> > Another option I have, to keep the actual annotation pure OA, is to
> collect
> > the additional provenance data in a separate provenance graph that can be
> > provided on demand by who can understand it.
> >
> > Any thoughts?
> >
> > Best,
> > Paolo
> >
> > [1] GitHub (Code/wiki): https://github.com/Annotopia/AtSmartStorage
> > [2] Slides (living documentation):
> >
> http://www.slideshare.net/paolociccarese/annotopia-overview-by-paolo-ciccarese
> > [3] Talk @ 'I Annotate 2014' https://www.youtube.com/watch?v=UGvUbFv0Zl8
> > [4] PAV: http://www.jbiomedsem.com/content/4/1/37
> >
>
Received on Saturday, 26 April 2014 01:52:52 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 20:22:05 UTC