W3C home > Mailing lists > Public > public-annotation@w3.org > July 2015

Re: [model] Clarifying annotation architecture

From: Robert Sanderson <azaroth42@gmail.com>
Date: Wed, 22 Jul 2015 11:01:07 -0700
Message-ID: <CABevsUFdKS=TqKKh21TH9p5S-_q-E1m-_6Rtcn9NC0vqc100UA@mail.gmail.com>
To: Frederick Hirsch <w3c@fjhirsch.com>
Cc: W3C Public Annotation List <public-annotation@w3.org>
I'd like to focus on the goal:

Our goal is to build on a linked data/semantic web technology foundation
while making it invisible to implementers or users that don't know or care.

We already have this, thanks primarily to JSON-LD and then further
constraining the serialization structure with framing, as identified by the
profile.  The (IMO) easiest change to support the desired functionality is
to allow motivations on specific resources (broken record, I know).  We
already have all of these in the model, so we're not introducing anything
new. We already have all of the properties and values. It's just allowing
an existing property to be used with an existing type of resource.  That
seems about as clean and straight forward as we can get.

And it's invisible to implementers that don't know or don't care ... they
can construct the JSON as per the specification and it will just work.

For people who want to understand *why* we're doing it that way, they
clearly care. And if they care enough they can understand the requirements
that brought us to the solution.  If they don't care enough to understand,
that's perfectly fine too.

On Wed, Jul 22, 2015 at 9:28 AM, Frederick Hirsch <w3c@fjhirsch.com> wrote:

> 1. Our goal is wide adoption of Web Annotations by end users and
> implementers.


> 2. Many of these users and implementers neither know nor care about the
> semantic web; however we see value in having an underlying semantic web
> basis, hidden from those who don't care. We expect this will offer power
> and flexibility enabling more use cases in the future.


> Our goal is to build on a linked data/semantic web technology foundation
> while making it invisible to implementers or users that don't know or care.


> 3. We have use cases such as associating multiple 'tasks' in a single
> annotation: e.g comment on target and also provide replacement action on
> same target.


> 4. We need a clean and straight-forward model to support these use cases.


Here is the issue that appears to have come up:
> Without understanding linked data, it seems that we could model the
> related tasks as a single annotation with different roles on each part (per
> use case task).

Without understanding the full set of requirements, there could be easier
ways to accomplish the various tasks individually. I think that's true of
any non-trivial system with more than one requirement.  It just so happens
that the way to accomplish this task is not the simplest possibility,
without taking in to account the rest of the system.

> From a linked data perspective, the issue appears to be that all triples
> (assertions) are global scope leading to complexities that make no sense to
> those unaware of the semantic web relationship to annotations.

Yes.   That is a requirement of linked data.

> We appear in the discussion to be creating complicated approaches to
> enable global triples while solving the annotation need.

I strongly disagree.  It's not complicated to add an existing motivation to
an existing class with an existing property.

I am not a semantic web expert, but wouldn't treating each annotation as a
> separate graph (in the case where there are multiple 'tasks') solve the
> global triple scope problem, without requiring any more than a note to
> semantic web implementers?

As previously, we don't have that option.  The global triple scope
"problem" is a design decision of RDF, and is acting as intended.  To throw
out the global scope of assertions is to throw out linked data.  To do that
would be to start again from zero. That's a possible route, but there would
be more appropriate chairs and editors than myself.

> Perhaps someone can elaborate with a clear and short summary of the
> problem we need to solve and the potential solutions to date.  Corrections
> on what I noted above are also welcome.

The problem is being able to determine the specific role of a body within
an annotation that has multiple bodies.

The solutions proposed:

* Associate the role with the body directly.  Fails because it makes the
body un-reusable, which for the image/video or similar case is not
* Use different relationships for the roles, such as hasComment rather than
hasBody.  Fails because motivations are community and use case specific,
and without semantic web inferencing you couldn't tell whether hasComment
was a body or not.  Not acceptable to require inferencing [per
invisibility], nor to have an annotation that you can't do anything with.
* Use multiple annotations (in various ways).  Fails as being more complex
than all other alternatives, and we have no way at the moment to treat the
set as a single entity.

* Associate the role (motivation) with a specific resource. Works as
expected without changing the semantics, breaking linked data, or
introducing any new classes or properties.


Rob Sanderson
Information Standards Advocate
Digital Library Systems and Services
Stanford, CA 94305
Received on Wednesday, 22 July 2015 18:01:36 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 18:54:38 UTC