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

Re: [Open Annotation] some questions

From: Stian Soiland-Reyes <soiland-reyes@cs.manchester.ac.uk>
Date: Thu, 19 Jul 2012 13:40:27 +0100
Message-ID: <CAPRnXtnALyj-4XgGqYCpV=+F9b0KOWS_FUBp5kdynyAhP5BoCw@mail.gmail.com>
To: Christian Morbidoni <christian.morbidoni@gmail.com>
Cc: Leyla Jael GarcĂ­a Castro <leylajael@gmail.com>, Paolo Ciccarese <paolo.ciccarese@gmail.com>, public-openannotation@w3.org, Robert Sanderson <azaroth42@gmail.com>
On Thu, Jul 19, 2012 at 9:02 AM, Christian Morbidoni
<christian.morbidoni@gmail.com> wrote:

> well, the fact is that named content are web resources themselves and at the
> same moment can be embedded in other web pages, along with other named
> contents. The very same named content can be embedded in more than one page,
> that is way I don't think oa:hasSource is the correct way of linking it to
> the embedding web page..as "There MUST be exactly 1 oa:hasSource
> relationship for each oa:SpecificResource."

This is similar to the ORE proxies and aggregations.

The question then becomes, what if two documents embed the same named
resource - do you want the annotation to apply to the named resource
in both documents, or separately?

Image example: "The W3C logo on the Open Annotation Core Data Model
specificaton" vs. "The W3C logo on the HTML 5 specification". Both of
them are embedding http://www.w3.org/Icons/w3c_home which is certainly
identifiable.

If where it is embedded/mentioned does not matter - then simply use
the named URI directly as the oa:hasTarget/oa:hasBody.


If they need to be separate resources (which in many cases you
probably want), then you need to use an intermediate SpecificResource.

For instance:

:a1 a oa:Annotation ;
    oa:hasBody <http://example.com/aboutOALogo.txt> ;
    oa:hasTarget :logoOA .


:logoOA a oa:SpecificResource ;
    oa:hasSource <http://www.openannotation.org/spec/core/20120509.html>
    oa:hasSelector [
        a oa:Selector, ex:EmbeddedSelector ;
        ex:embedded <http://www.w3.org/Icons/w3c_home> .
    ]  .


:a2 a oa:Annotation ;
    oa:hasBody <http://example.com/aboutHtml5Logo.txt> ;
    oa:hasTarget :logoHTML5 .

:logoHTML5 a oa:SpecificResource ;
    oa:hasSource <http://www.w3.org/TR/2012/WD-html5-20120329/>
# Could also have included this selector, but sadly none of
# the pages assign an anchor for the logo <img>
#
#    oa:hasSelector [
#        a oa:Selector, oa:FragmentSelector ;
#        rdf:value "logo"
#    ] ;
    oa:hasSelector [
        a oa:Selector, ex:EmbeddedSelector ;
        ex:embedded <http://www.w3.org/Icons/w3c_home> .
    ] .


However I think it is better to reuse existing ways to talk about
aggregations. Dublin Core has isPartOf, but no way to talk about "X
within Y". ORE Proxies
<http://www.openarchives.org/ore/1.0/datamodel#Proxies> are probably a
much better fit to represent embedded or contained resources.

Here's my take on how ORE could be used for the above example:

:a1 a oa:Annotation ;
    oa:hasBody <http://example.com/aboutOALogo.txt> ;
    oa:hasTarget :logoOA .

:logoOA a oa:SpecificResource ;
    oa:hasSource <http://www.openannotation.org/spec/core/20120509.html> ;
    oa:hasSelector [ a ex:OREProxySelector, oa:Selector, ore:Proxy ;
        ore:proxyFor <http://www.w3.org/Icons/w3c_home> ;
        ore:proxyIn
<http://www.openannotation.org/spec/core/20120509.html> ;
   ] .

# Implies:
<http://www.openannotation.org/spec/core/20120509.html> a ore:Aggregation ;
    ore:aggregates <http://www.w3.org/Icons/w3c_home> .




:a2 a oa:Annotation ;
    oa:hasBody <http://example.com/aboutHtml5Logo.txt> ;
    oa:hasTarget :logoHTML5 .

:logoHTML5 a oa:SpecificResource ;
    oa:hasSource <http://www.w3.org/TR/2012/WD-html5-20120329/> ;
    oa:hasSelector [ a ex:OREProxySelector, oa:Selector, ore:Proxy ;
        ore:proxyFor <http://www.w3.org/Icons/w3c_home> ;
        ore:proxyIn <http://www.w3.org/TR/2012/WD-html5-20120329/> ;
   ] .

# Implies:
<http://www.w3.org/TR/2012/WD-html5-20120329/> a ore:Aggregation ;
    ore:aggregates <http://www.w3.org/Icons/w3c_home> .



As the proxy in ORE are "a Resource that "stands for" an Aggregated
Resource in a manner that is specific to one Aggregation" - then at
first it seems like a perfect fit to 'reuse' the URI for the proxy as
the SpecificResource.  However I've opted to put the proxy within the
selector instead, as this would allow you to have different styles and
states - ORE dictates that proxies are equal if they have the same
ore:proxyFor and ore:proxyIn.



Sadly we can't have two oa:hasSource (which would be confusing) - so
someone looking for annotations about
<http://www.w3.org/Icons/w3c_home> and not knowing anything about the
above would be lost. You will have to decide for the annotation what
is the primary topic - is it the logo itself ("See what logo looks
like in this case") or the page's use of the logo ("This page has the
logo in the top left corner").

This is another reason why I put the proxy within the selector -
because two different oa:SpecificResource could have the same proxy -
but disagree on the oa:hasSource (which however should be either the
proxyFor or proxyIn!).

-- 
Stian Soiland-Reyes, myGrid team
School of Computer Science
The University of Manchester
Received on Thursday, 19 July 2012 12:41:55 UTC

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