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

Re: Roles, multiple bodies, and creating wiki page of potential solution

From: Robert Sanderson <azaroth42@gmail.com>
Date: Wed, 5 Aug 2015 13:32:40 -0700
Message-ID: <CABevsUF-1_OWjJSktA54d19Y=-Fk8bEeyJ4oT2mmE0dYdcxSBw@mail.gmail.com>
To: Paolo Ciccarese <paolo.ciccarese@gmail.com>
Cc: t-cole3 <t-cole3@illinois.edu>, W3C Public Annotation List <public-annotation@w3.org>
And, for Specific Resource bodies, for example:

{
  "@id": "http://example.org/anno1",
  "@type": "Annotation",
  "motivation": "bookmarking",
  "body": [
    {
      "@id": "_:b1",
      "@type": "SpecificResource",
      "source": "http://example.org/image.jpg",
      "selector": {
        "@type": "FragmentSelector",
        "value": "xywh=1,1,100,100"
      }
    },
    {
      "@id": "http://example.org/tag1",
      "@type": "EmbeddedContent",
      "value": "paris"
    },
    {
      "@id": "http://example.org/tag2",
      "@type": "EmbeddedContent",
      "value": "MustRead"
    }
  ],
  "target":  "http://example.org/paris.html",
  "roles": [
    {"role": "commenting", "for": "_:b1"},
    {"role": "tagging", "for": "http://example.org/tag1"},
    {"role": "tagging", "for": "http://example.org/tag2"}
  ]
}


Note that it must be the @id of the SpecificResource, not of the image, as
different selectors could be used on the same resource to pull out
different segments.




On Wed, Aug 5, 2015 at 11:41 AM, Paolo Ciccarese <paolo.ciccarese@gmail.com>
wrote:

> I honestly really like this solution!
> Paolo
>
> On Wed, Aug 5, 2015 at 2:31 PM, Robert Sanderson <azaroth42@gmail.com>
> wrote:
>
>>
>> Yes, that's right :)
>>
>> Rob
>>
>> On Wed, Aug 5, 2015 at 11:11 AM, Timothy Cole <t-cole3@illinois.edu>
>> wrote:
>>
>>> Posting my reply to the list as you suggested (I was initially focused
>>> on the administrivia of getting the wiki page going, not the details of
>>> Ray's solution).
>>>
>>>
>>>
>>> To continue on with your strawman illustrating Ray's role assignment
>>> approach -- If I wanted to use a blank node for the Embedded Textual
>>> Resource in your example, would this be the JSON?
>>>
>>>
>>>
>>> {
>>>
>>>   "@id": "http://example.org/anno1
>>> <https://urldefense.proofpoint.com/v2/url?u=http-3A__example.org_anno1&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=zjI0r-H6xRs5fYf2_jJkju6US9ijk0nLw4ns2nuwU2k&m=cJqARgr41lCItdetoau46NrfOtmYXb1XEdEOItktpAs&s=DmFqIJtEzhqkaDeDwf6E9PYx-7GLfzTUCq9-ZWq4FC0&e=>
>>> ",
>>>
>>>   "@type": "Annotation",
>>>
>>>   "motivation": "bookmarking",
>>>
>>>   "body": [
>>>
>>>     {
>>>
>>>       "@id": "_:n1",
>>>
>>>       "@type": "EmbeddedContent",
>>>
>>>       "value": "Come back and read this page about Paris."
>>>
>>>     },
>>>
>>>     {
>>>
>>>       "@id": "http://example.org/tag1",
>>>
>>>       "@type": "EmbeddedContent",
>>>
>>>       "value": "paris"
>>>
>>>     },
>>>
>>>     {
>>>
>>>       "@id": "http://example.org/tag2
>>> <https://urldefense.proofpoint.com/v2/url?u=http-3A__example.org_tag2&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=zjI0r-H6xRs5fYf2_jJkju6US9ijk0nLw4ns2nuwU2k&m=cJqARgr41lCItdetoau46NrfOtmYXb1XEdEOItktpAs&s=VSOMbmuGR41XHMJ5xpJJpxSGDgoi0WzTXC22Q7wg_rc&e=>
>>> ",
>>>
>>>       "@type": "EmbeddedContent",
>>>
>>>       "value": "MustRead"
>>>
>>>     }
>>>
>>>   ],
>>>
>>>   "target":  "@id": "http://example.org/paris.html
>>> <https://urldefense.proofpoint.com/v2/url?u=http-3A__example.org_paris.html&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=zjI0r-H6xRs5fYf2_jJkju6US9ijk0nLw4ns2nuwU2k&m=cJqARgr41lCItdetoau46NrfOtmYXb1XEdEOItktpAs&s=5w8OVOI-tWa9ONYZqozWv0FlDWxM6W8hHvg10fSR9_o&e=>
>>> ",
>>>
>>>   "roles": [
>>>
>>>     {"role": "commenting", "for": "_:n1"},
>>>
>>>     {"role": "tagging", "for": "http://example.org/tag1
>>> <https://urldefense.proofpoint.com/v2/url?u=http-3A__example.org_tag1&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=zjI0r-H6xRs5fYf2_jJkju6US9ijk0nLw4ns2nuwU2k&m=cJqARgr41lCItdetoau46NrfOtmYXb1XEdEOItktpAs&s=wAyNglO23dQpoSvolgABgz7hAVHB8O7AeVPohr98ee4&e=>
>>> "},
>>>
>>>     {"role": "tagging", "for": "http://example.org/tag2
>>> <https://urldefense.proofpoint.com/v2/url?u=http-3A__example.org_tag2&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=zjI0r-H6xRs5fYf2_jJkju6US9ijk0nLw4ns2nuwU2k&m=cJqARgr41lCItdetoau46NrfOtmYXb1XEdEOItktpAs&s=VSOMbmuGR41XHMJ5xpJJpxSGDgoi0WzTXC22Q7wg_rc&e=>
>>> "}
>>>
>>>   ]
>>>
>>> }
>>>
>>> -Tim Cole
>>>
>>>
>>>
>>> *From:* Robert Sanderson [mailto:azaroth42@gmail.com]
>>> *Sent:* Wednesday, August 05, 2015 12:19 PM
>>> *To:* t-cole3 <t-cole3@illinois.edu>; Ivan Herman <ivan@w3.org>
>>> *Cc:* Denenberg, Ray <rden@loc.gov>; Frederick Hirsch <w3c@fjhirsch.com>
>>> *Subject:* Re: Web Annotation -- New Wiki page
>>>
>>>
>>>
>>> On Wed, Aug 5, 2015 at 9:29 AM, Timothy Cole <t-cole3@illinois.edu>
>>> wrote (edited/updated):
>>>
>>> My take away from today's WG call  is that we need:
>>>
>>> 1)  a complete, concrete annotation example or 2 based on Ray's proposed
>>> solution in Turtle as well as JSON-LD, and
>>>
>>>
>>>
>>> Yup, I propose the simple bookmark export use case, rather than the
>>> edits with custom motivations.
>>>
>>>
>>>
>>>
>>>
>>>  2) a wiki page that integrates this/these examples (adding
>>> JSON/JSON-LD) with representative examples of currently supported approach
>>> and other proposed solutions still under discussion.
>>>
>>>
>>>
>>> Yep, and the priority being 1 then 2.
>>>
>>>
>>>
>>>  All examples on the wiki page would be serialized in both JSON/JSON-LD
>>> and Turtle.
>>>
>>>  Am I right that I should take the lead on 2 (creating the wiki page)?
>>>
>>>
>>>
>>> As a strawperson for 1:
>>>
>>>
>>>
>>> {
>>>
>>>   "@id": "http://example.org/anno1
>>> <https://urldefense.proofpoint.com/v2/url?u=http-3A__example.org_anno1&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=zjI0r-H6xRs5fYf2_jJkju6US9ijk0nLw4ns2nuwU2k&m=cJqARgr41lCItdetoau46NrfOtmYXb1XEdEOItktpAs&s=DmFqIJtEzhqkaDeDwf6E9PYx-7GLfzTUCq9-ZWq4FC0&e=>
>>> ",
>>>
>>>   "@type": "Annotation",
>>>
>>>   "motivation": "bookmarking",
>>>
>>>   "body": [
>>>
>>>     {
>>>
>>>       "@id": "http://example.org/comment1
>>> <https://urldefense.proofpoint.com/v2/url?u=http-3A__example.org_comment1&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=zjI0r-H6xRs5fYf2_jJkju6US9ijk0nLw4ns2nuwU2k&m=cJqARgr41lCItdetoau46NrfOtmYXb1XEdEOItktpAs&s=_oibSjDeFz1gR9uFc6RosvefyN_DZ3CZZL3dJzclHDQ&e=>
>>> ",
>>>
>>>       "@type": "EmbeddedContent",
>>>
>>>       "value": "Come back and read this page about Paris."
>>>
>>>     },
>>>
>>>     {
>>>
>>>       "@id": "http://example.org/tag1
>>> <https://urldefense.proofpoint.com/v2/url?u=http-3A__example.org_tag1&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=zjI0r-H6xRs5fYf2_jJkju6US9ijk0nLw4ns2nuwU2k&m=cJqARgr41lCItdetoau46NrfOtmYXb1XEdEOItktpAs&s=wAyNglO23dQpoSvolgABgz7hAVHB8O7AeVPohr98ee4&e=>
>>> ",
>>>
>>>       "@type": "EmbeddedContent",
>>>
>>>       "value": "paris"
>>>
>>>     },
>>>
>>>     {
>>>
>>>       "@id": "http://example.org/tag2
>>> <https://urldefense.proofpoint.com/v2/url?u=http-3A__example.org_tag2&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=zjI0r-H6xRs5fYf2_jJkju6US9ijk0nLw4ns2nuwU2k&m=cJqARgr41lCItdetoau46NrfOtmYXb1XEdEOItktpAs&s=VSOMbmuGR41XHMJ5xpJJpxSGDgoi0WzTXC22Q7wg_rc&e=>
>>> ",
>>>
>>>       "@type": "EmbeddedContent",
>>>
>>>       "value": "MustRead"
>>>
>>>     }
>>>
>>>   ],
>>>
>>>   "target":  "@id": "http://example.org/paris.html
>>> <https://urldefense.proofpoint.com/v2/url?u=http-3A__example.org_paris.html&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=zjI0r-H6xRs5fYf2_jJkju6US9ijk0nLw4ns2nuwU2k&m=cJqARgr41lCItdetoau46NrfOtmYXb1XEdEOItktpAs&s=5w8OVOI-tWa9ONYZqozWv0FlDWxM6W8hHvg10fSR9_o&e=>
>>> ",
>>>
>>>   "roles": [
>>>
>>>     {"role": "commenting", "for": "http://example.org/comment1
>>> <https://urldefense.proofpoint.com/v2/url?u=http-3A__example.org_comment1&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=zjI0r-H6xRs5fYf2_jJkju6US9ijk0nLw4ns2nuwU2k&m=cJqARgr41lCItdetoau46NrfOtmYXb1XEdEOItktpAs&s=_oibSjDeFz1gR9uFc6RosvefyN_DZ3CZZL3dJzclHDQ&e=>
>>> "},
>>>
>>>     {"role": "tagging", "for": "http://example.org/tag1
>>> <https://urldefense.proofpoint.com/v2/url?u=http-3A__example.org_tag1&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=zjI0r-H6xRs5fYf2_jJkju6US9ijk0nLw4ns2nuwU2k&m=cJqARgr41lCItdetoau46NrfOtmYXb1XEdEOItktpAs&s=wAyNglO23dQpoSvolgABgz7hAVHB8O7AeVPohr98ee4&e=>
>>> "},
>>>
>>>     {"role": "tagging", "for": "http://example.org/tag2
>>> <https://urldefense.proofpoint.com/v2/url?u=http-3A__example.org_tag2&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=zjI0r-H6xRs5fYf2_jJkju6US9ijk0nLw4ns2nuwU2k&m=cJqARgr41lCItdetoau46NrfOtmYXb1XEdEOItktpAs&s=VSOMbmuGR41XHMJ5xpJJpxSGDgoi0WzTXC22Q7wg_rc&e=>
>>> "}
>>>
>>>   ]
>>>
>>> }
>>>
>>>
>>>
>>> Turtle (hand written, please verify)
>>>
>>>
>>>
>>> <http://example.org/anno1
>>> <https://urldefense.proofpoint.com/v2/url?u=http-3A__example.org_anno1&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=zjI0r-H6xRs5fYf2_jJkju6US9ijk0nLw4ns2nuwU2k&m=cJqARgr41lCItdetoau46NrfOtmYXb1XEdEOItktpAs&s=DmFqIJtEzhqkaDeDwf6E9PYx-7GLfzTUCq9-ZWq4FC0&e=>>
>>> a oa:Annotation ;
>>>
>>>   oa:motivatedBy oa:bookmarking ;
>>>
>>>   oa:hasTarget <http://example.org/paris.html
>>> <https://urldefense.proofpoint.com/v2/url?u=http-3A__example.org_paris.html&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=zjI0r-H6xRs5fYf2_jJkju6US9ijk0nLw4ns2nuwU2k&m=cJqARgr41lCItdetoau46NrfOtmYXb1XEdEOItktpAs&s=5w8OVOI-tWa9ONYZqozWv0FlDWxM6W8hHvg10fSR9_o&e=>>
>>> ;
>>>
>>>   oa:hasBody <http://example.org/comment1
>>> <https://urldefense.proofpoint.com/v2/url?u=http-3A__example.org_comment1&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=zjI0r-H6xRs5fYf2_jJkju6US9ijk0nLw4ns2nuwU2k&m=cJqARgr41lCItdetoau46NrfOtmYXb1XEdEOItktpAs&s=_oibSjDeFz1gR9uFc6RosvefyN_DZ3CZZL3dJzclHDQ&e=>>,
>>> <http://example.org/tag1
>>> <https://urldefense.proofpoint.com/v2/url?u=http-3A__example.org_tag1&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=zjI0r-H6xRs5fYf2_jJkju6US9ijk0nLw4ns2nuwU2k&m=cJqARgr41lCItdetoau46NrfOtmYXb1XEdEOItktpAs&s=wAyNglO23dQpoSvolgABgz7hAVHB8O7AeVPohr98ee4&e=>>,
>>> <http://example.org.tag2
>>> <https://urldefense.proofpoint.com/v2/url?u=http-3A__example.org.tag2&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=zjI0r-H6xRs5fYf2_jJkju6US9ijk0nLw4ns2nuwU2k&m=cJqARgr41lCItdetoau46NrfOtmYXb1XEdEOItktpAs&s=yNA7EnbXC05mh2eXtBr6jIOP4LyLayVx5uiO6yUBRxM&e=>>
>>> ;
>>>
>>>   oa:hasRole [
>>>
>>>     oa:role oa:commenting ;
>>>
>>>     oa:roleFor <http://example.org/comment1
>>> <https://urldefense.proofpoint.com/v2/url?u=http-3A__example.org_comment1&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=zjI0r-H6xRs5fYf2_jJkju6US9ijk0nLw4ns2nuwU2k&m=cJqARgr41lCItdetoau46NrfOtmYXb1XEdEOItktpAs&s=_oibSjDeFz1gR9uFc6RosvefyN_DZ3CZZL3dJzclHDQ&e=>>
>>> ],
>>>
>>>     [
>>>
>>>     oa:role oa:tagging ;
>>>
>>>     oa:roleFor <http://example.org/tag1
>>> <https://urldefense.proofpoint.com/v2/url?u=http-3A__example.org_tag1&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=zjI0r-H6xRs5fYf2_jJkju6US9ijk0nLw4ns2nuwU2k&m=cJqARgr41lCItdetoau46NrfOtmYXb1XEdEOItktpAs&s=wAyNglO23dQpoSvolgABgz7hAVHB8O7AeVPohr98ee4&e=>>
>>> ],
>>>
>>>     [
>>>
>>>     oa:role oa:tagging ;
>>>
>>>     oa:roleFor <http://example.org/tag2
>>> <https://urldefense.proofpoint.com/v2/url?u=http-3A__example.org_tag2&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=zjI0r-H6xRs5fYf2_jJkju6US9ijk0nLw4ns2nuwU2k&m=cJqARgr41lCItdetoau46NrfOtmYXb1XEdEOItktpAs&s=VSOMbmuGR41XHMJ5xpJJpxSGDgoi0WzTXC22Q7wg_rc&e=>>
>>> ] .
>>>
>>>
>>>
>>> <http://example.org/comment1
>>> <https://urldefense.proofpoint.com/v2/url?u=http-3A__example.org_comment1&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=zjI0r-H6xRs5fYf2_jJkju6US9ijk0nLw4ns2nuwU2k&m=cJqARgr41lCItdetoau46NrfOtmYXb1XEdEOItktpAs&s=_oibSjDeFz1gR9uFc6RosvefyN_DZ3CZZL3dJzclHDQ&e=>>
>>> a oa:EmbeddedResource ;
>>>
>>>   rdf:value "Come back and read this page about Paris" .
>>>
>>>
>>>
>>> <http://example.org/tag1
>>> <https://urldefense.proofpoint.com/v2/url?u=http-3A__example.org_tag1&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=zjI0r-H6xRs5fYf2_jJkju6US9ijk0nLw4ns2nuwU2k&m=cJqARgr41lCItdetoau46NrfOtmYXb1XEdEOItktpAs&s=wAyNglO23dQpoSvolgABgz7hAVHB8O7AeVPohr98ee4&e=>>
>>> a oa:EmbeddedResource ;
>>>
>>>   rdf:value "paris" .
>>>
>>>
>>>
>>> <http://example.org/tag1
>>> <https://urldefense.proofpoint.com/v2/url?u=http-3A__example.org_tag1&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=zjI0r-H6xRs5fYf2_jJkju6US9ijk0nLw4ns2nuwU2k&m=cJqARgr41lCItdetoau46NrfOtmYXb1XEdEOItktpAs&s=wAyNglO23dQpoSvolgABgz7hAVHB8O7AeVPohr98ee4&e=>>
>>> a oa:EmbeddedResource ;
>>>
>>>   rdf:value "MustRead" .
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> Some initial observations:
>>>
>>> * All bodies need URIs to be referred to from the role.  Meaning that
>>> clients creating the annotation would have to assign, for example, a UUID
>>> or blank node identifier.
>>>
>>> * There's no need to have the Tag class and the role :) So if we're
>>> adopting this we can drop Tag and SemanticTag :)
>>>
>>> * I don't think we have a use case where the exact same resource is both
>>> a body AND a target, but it would be potentially ambiguous if that were
>>> true, and the same role could be used as both a body role and target role.
>>>
>>>
>>>
>>> R
>>>
>>>
>>>
>>> --
>>>
>>> Rob Sanderson
>>>
>>> Information Standards Advocate
>>>
>>> Digital Library Systems and Services
>>>
>>> Stanford, CA 94305
>>>
>>
>>
>>
>> --
>> Rob Sanderson
>> Information Standards Advocate
>> Digital Library Systems and Services
>> Stanford, CA 94305
>>
>
>
>
> --
> Dr. Paolo Ciccarese
> Principal Knowledge and Software Engineer at PerkinElmer Innovation Lab
> Assistant Professor of Neurology at Harvard Medical School
>
> Assistant in Neuroscience at Mass General Hospital
> ORCID: http://orcid.org/0000-0002-5156-2703
>



-- 
Rob Sanderson
Information Standards Advocate
Digital Library Systems and Services
Stanford, CA 94305
Received on Wednesday, 5 August 2015 20:33:10 UTC

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