W3C home > Mailing lists > Public > public-openannotation@w3.org > July 2012

Re: [Open Annotation] some questions

From: Christian Morbidoni <christian.morbidoni@gmail.com>
Date: Thu, 19 Jul 2012 15:33:38 +0200
Message-ID: <CAE_W9BhO051HtM0ZrT9jh_7caihmfEvjjF0+qtLJiNBLrCPcRg@mail.gmail.com>
To: Robert Sanderson <azaroth42@gmail.com>
Cc: Paolo Ciccarese <paolo.ciccarese@gmail.com>, public-openannotation@w3.org
Hi,

After having spent some time thinking about the issues here are some
considerations:

1) When I use pundit:hasPageContext, I think about a property attached to
the annotation and not to one of the specific targets.
In Pundit we are supporting cross-page annotations, that is an annotation
that has two targets, e.g. two named content from two different pages.
Using the representation that you suggest it would be encoded as follows:

<_:Anno1> a oa:Annotation ;
  oa:hasBody <_:Body1> ;
  oa:hasTarget <_:SpecificResource1> ;
  oa:hasTarget <_:SpecificResource2> .

<_:SpecificResource1> a oa:SpecificResource ;
  oa:hasSource <http://example.org/page/1.html> ;
  oa:hasSelector <_:AASelector1> .

<_:AASelector1> a oax:AboutAttributeSelector ;
  oax:about <http://example.org/section/123> .

<_:SpecificResource2> a oa:SpecificResource ;
  oa:hasSource <http://example.org/page/2.html> ;
  oa:hasSelector <_:AASelector2> .

<_:AASelector2> a oax:AboutAttributeSelector ;
  oax:about <http://example.org/section/456> .

Then...again: how do I know what page the user was looking at when he
created the annotation? was ithttp://example.org/page/2.html or
http://example.org/page/1.html

That is why I'm currently doing:

<_:Anno1> a oa:Annotation ;
  oa:hasSource <_:Body1> ;
  oa:hasTarget <_:SpecificResource1> ;
  oa:hasTarget <_:SpecificResource2> ;
  pundit:hasPageContext <http://example.org/page/1.html> .

2) You are right when you say that there is probably no need for the class
oax:AboutAttributeSelector
Also I think it would be better to use the URL of the named content as
value of the hasSource property (e.g.http://example.org/section/123) as it
is a web resource and should have a HTML representation itself (e.g. a HTML
page including only one paragraph).
However, the idea of adding a selector might be good. In the example below
such selector has a rdf:value that is an xpointer pointing to the named
content. Notice that resolving it is independent from the HTML page where
the resolution takes place ... it can be resolved in
http://example.org/page/1.html or in http://example.org/section/123 or in
whatever other page that has the named content inside, however for each
specific resource there should be an indication of what is the preferred
web page where the resolution should take place (this is needed at
application level). I think that the right point to attach such information
is the selector associated to the specific resource (e.g. see ex:page in
the example below).

<_:Anno1> a oa:Annotation ;
  oa:hasBody <_:Body1> ;
  oa:hasTarget <_:SpecificResource1> ;
  pundit:hasPageContext <http://example.org/page/1.html> .

<_:SpecificResource1> a oa:SpecificResource ;
  oa:hasSource <http://example.org/section/123> ;
  oa:hasSelector <_:AASelector1> .

<_:AASelector1> a oax:XPointerFragmentSelector ;
  # not sure about how it would look like according to XPointer specs,
  # but the following would point to the whole content of the DIV element
with the specified value of the "about" attribute...
  rdf:value "xpointer(....(//DIV[@about='http://example.org/section/123']
... )" ;
  # the following would state what is the default page where to resolve the
xpointer
  ex:page <http://example.org/page/1.html> .



3) The case, that in Pundit is very frequent, where the user is annotating
a piece of a named content rather the whole named content could be modeled
the same way.
The only difference being that the Xpointer now indicates a precise piece
of the named-content.
It would look like:

<_:Anno1> a oa:Annotation ;
  oa:hasBody <_:Body1> ;
  oa:hasTarget <_:SpecificResource1> ;
  pundit:hasPageContext <http://example.org/page/1.html> .

<_:SpecificResource1> a oa:SpecificResource ;
  oa:hasSource <http://example.org/section/123> ;
  oa:hasSelector <_:AASelector1> .

<_:AASelector1> a oax:XPointerFragmentSelector ;
  rdf:value "xpointer(start-point(string-range(//DIV[@about='
http://example.org/section/123']/P[2]/text()[1
],'',1))/range-to(string-range(//DIV[@about='
http://example.org/section/123']/P[2]/text()[1],'',16)))" ;
  ex:page <http://example.org/page/1.html> .


best,

Christian

On Thu, Jul 19, 2012 at 8:49 AM, Robert Sanderson <azaroth42@gmail.com>wrote:

> On Wed, Jul 18, 2012 at 8:39 PM, Paolo Ciccarese
> <paolo.ciccarese@gmail.com> wrote:
>
> >> Is it covered by the FragmentSelector and hasSource in place of
> >> hasPageContext, and the element id as the object of the rdf:value
> >> property?  Or if that's not appropriate, then a new selector with the
> >> named section and the html page linked to the specific resource.
> >> Perhaps I'm misunderstanding the exact nature of the named target?
> >
> > If I want to say that the image has been annotated while part of the Open
> > Annotation Community page:
> > http://www.w3.org/community/openannotation/
> > Could I add something in the oa:SpecificResource instance pointing to
> that
> > page?
>
> From reading the pund.it documentation (and discussion with Marco
> Grassi) I'm not sure that's the same requirement?
>
> To try and characterize my understanding:
>
> If there's a web page that is cooperating with an annotation client to
> assign URI identifiers to its internal sections, how should this be
> expressed in the Open Annotation model?
>
> If that's correct, then it's a Selector that selects based on the
> identifier.  It seems very similar to a FragmentSelector, but in the
> HTML given by Christian, would select based on the "about" attribute
> rather than "id".
>
> Something like:
>
> <_:Anno1> a oa:Annotation ;
>   oa:hasSource <_:Body1> ;
>   oa:hasTarget <_:SpecificResource1> .
>
> <_:SpecificResource1> a oa:SpecificResource ;
>   oa:hasSource <http://example.org/page/1.html> ;
>   oa:hasSelector <_:AASelector> .
>
> <_:AASelector> a oax:AboutAttributeSelector ;
>   oax:about <http://example.org/section/123> .
>
> This seems like it could be accomplished without a new class however.
>
> xpointer(//[@about="http://example.org/section/123"])
>
> would also select the same element?
>
> Rob
>
Received on Thursday, 19 July 2012 13:47:05 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 16:38:10 UTC