Re: Annotations and the Graph

Hi Randall, Jacob,

There are three issues with the proposal that I can see.

One concern about the proposal is that rdf:Statement reifies a single
triple, and an Annotation has significantly more flexibility.  For example,
there may be no body to an Annotation, which would result in a statement
with no subject.  Or for multiple bodies or multiple targets, there would
be multiple subjects or objects respectively.  That's not the intent of
rdf:Statement and related predicates, and I would be hard pressed to argue
that it was kosher to subclass it.

Secondly, motivation and predicate are not really the same thing, as has
become clearer with the adoption of the role proposal to allow motivations
to be associated per body.  For example, if you had a single Annotation
with a motivation of bookmarking, and a body with a role of describing,
plus a second body with a role of tagging, the use of rdf:predicate seems
very difficult to work with.

And finally ... we already have rdf:Statement (and the recommendations
against its use) and named graphs. If an Annotation were restricted to just
a single statement, I'm not sure that we would need a new specification :)

Rob


On Wed, Oct 28, 2015 at 5:16 AM, Randall Leeds <randall@bleeds.info> wrote:

> I realize I sent this without finishing with a concrete proposal, so here
> it is, with maximal backward compatibility (though I would consider more
> aggressive changes, too).
>
> Make oa:Annotation a subclass of rdfs:Statement. Without loss of
> generality, make oa:hasTarget and oa:hasBody sub-properties of rdfs:subject
> and rdfs:object. Rename the motivations so that they clearly describe the
> relationships between subject and object.
>
> If we would like to maintain some of the same multiplicity behavior, make
> it clear than any number of subjects and objects can be related by one
> predicate (or maybe more, but that seems dubiously useful).
>
> On Tue, Oct 27, 2015 at 1:11 PM Randall Leeds <randall@bleeds.info> wrote:
>
>> My attraction to annotation is the promise of containers for referencing
>> and relating content.
>>
>> The SpecificResource and its associated Selector classes accomplish the
>> task of fixing references to content (not just URLs).
>>
>> Motivations accomplish the relating. The roles proposal expresses a
>> desire to do so even more granularly.
>>
>> Motivations (and roles) makes the relation between body and target into
>> an object related to the annotation (or body). This succeeds in avoiding
>> publishing statements that explicitly involve the body and target as
>> subject and object of a statement, but leaves the relation between the body
>> and target to inference.
>>
>> Possibly one of the most important semantic statements the annotation
>> could convey is not even in the graph!
>>
>> That is all fine and well motivated (ha!), but there already exists the
>> RDF Schema reification vocabulary for conveying triples that are, for
>> whatever reason, kept initially out of the graph.
>>
>> Consider a typical annotation use case, using rdfs:Statement,
>> oa:SpecificResource and schema:Comment:
>> http://json-ld.org/playground/#/gist/0185862e6812fd5a908e
>>
>> Here, the only Web Annotation Data Model classes I've used are
>> SpecificResource and TextQuoteSelector. I chose "target" and "body" for
>> mapping context terms to highlight the similarity to our typical examples.
>>
>> None of this is to argue that the Web Annotations Data Model needs to
>> constrain its vocabulary more. It's perfectly fine and great to instantiate
>> new vocabulary terms that are identical or similar to terms in existing
>> vocabularies like schema.org and fix them within a W3C spec.
>>
>> For the extremely commonplace usage of annotation as targeted commenting,
>> putting <article, comment, body> into the graph would seem to be the
>> simplest thing.
>>
>> I would like to avoid querying for comments on this article PLUS
>> annotations with the commenting motivation that have this article as their
>> target or the source of their specific target. Wow, that second part seems
>> needlessly complex compared to the first, doesn't it?
>>
>> To remedy this, we could be more careful in defining our motivation terms
>> as rdf:Property instances that are meant to relate the bodies and targets
>> directly. The annotation is either a sub-class of rdfs:Statement or perhaps
>> it's a resource with a collection of one or more rdfs:Statement.
>>
>> I could ingest annotations and reify the new triples they describe. I
>> could keep independent datasets, quads, named graphs, etc according to the
>> the non-Statement metadata the Annotation bears in order to keep
>> collections separate and non-conflicting, if I care to. Then I could make
>> straightforward queries.
>>
>> Right now we can't do this because "oa:commenting" is not
>> "oa:isCommentOn" and we don't reify <body, motivation, target> at all. We
>> are really unclear about what the relationship is between bodies and
>> targets, even in the role proposal.
>>
>> We are describing the annotation rather than using the annotation as a
>> vehicle to describe the world with attribution.
>>
>


-- 
Rob Sanderson
Information Standards Advocate
Digital Library Systems and Services
Stanford, CA 94305

Received on Tuesday, 27 October 2015 23:42:19 UTC