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

Tim – It all looks fine to me.

As to the predicate names:
oa:roleFor is certainly an improvement over oa:assignedTo.
However, oa:roleAssignment vs. oa:hasRoles is an issue of singular vs. plural.   I suppose it’s how you look at it – a single subject/predicate with three objects (as you express it in the example)  or three distinct triples each with a single “role assignment”.   Just wanted to point that out, and I realize oa:roleAssignment is a clunky name, so I don’t object to the change.

At the bottom (“This proposal assumes …”)  where you list the three new predicates, I suggest adding the domains (along with the ranges).

Thanks.

Ray

From: Timothy Cole [mailto:t-cole3@illinois.edu]
Sent: Friday, August 07, 2015 1:48 PM
To: Denenberg, Ray
Cc: 'W3C Public Annotation List'
Subject: RE: Roles, multiple bodies, and creating wiki page of potential solution

Ray (et al.)-

I combined Rob's first strawman and second specificResource examples to generate the following illustrative Annotation scenario and candidate serializations in Turtle. Please verify that I have captured the essence of your proposed Role Assignment approach correctly. Note, I favored Rob's proposed labels (more recent in email thread) over your original suggestions, so oa:hasRoles instead of oa:hasRoleAssignment and oa:roleFor instead of oa:assignedTo (you both agreed on the oa:role predicate label). If you prefer I can revert to your labels for predicates, please let me know.  I also did not include your proposed oa:forAnnotation triple.  As discussed on the list, since each pair of oa:role and oa:for predicate triples as used here share a common blank node subject which in turn is the object of an oa:hasRoles triple having the Annotation as its subject, adding oa:forAnnotation triples would be redundant (and would still be redundant even if the blank nodes were subsequently given de-referenceable identities).  If the oa:hasRoles triple is subsequently discarded, all the oa:role + oa:for pairs of triples would tell a consumer is that the Resources involved once served particular roles in the context of an annotation (invariably true once the annotation has been created). The pair of triples could not be interpreted to assert an invariant role for the Resources in all contexts (which is what happens if you attach a role directly to each Resource).

***Annotation Scenario: A user wants to bookmark an image of the Arc de Triomphe (Paris, France) for later perusal and in doing so wants to remind herself of why she is interested in this image by including 3 Bodies in her Annotation that variously tag, describe and comment on the landmark.

***Baseline serialization assuming no body-level role assignments (current model):

@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix oa: <http://www.w3.org/ns/oa#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
<http://example.org/Anno1> a oa:Annotation ;
   oa:motivatedBy oa:bookmarking ;
   oa:hasBody "Come back and view this image on a larger screen.", _:Body2, _:Body3;
   oa:hasTarget <https://commons.wikimedia.org/wiki/File:Paris_arc_de_Triomphe_place_de_l%27Etoile_la_nuit.JPG> .
   _:Body2 a  oa:SemanticTag ;
                                skos:related <http://dbpedia.org/page/Arc_de_Triomphe> .
   _:Body3 a  oa:SpecificResource;
                                oa:hasSource <https://www.youtube.com/watch?v=BZLZyX3JdEM>;
                                oa:hasSelector [
                                                a oa:FragmentSelector ;
                                                dcterms:conformsTo <http://www.w3.org/TR/media-frags/> ;
                                                rdf:value "t=247,280" ] .

***New serialization to allow users to assign a role to each Body independently (proposed update to model):

@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix oa: <http://www.w3.org/ns/oa#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
<http://example.org/Anno1> a oa:Annotation ;
   oa:motivatedBy oa:bookmarking ;
   oa:hasBody _:Body1, <http://dbpedia.org/page/Arc_de_Triomphe>, _:Body3;
   oa:hasTarget <https://commons.wikimedia.org/wiki/File:Paris_arc_de_Triomphe_place_de_l%27Etoile_la_nuit.JPG> ;
   oa:hasRoles
                                [ oa:role oa:commenting;
                                  oa:roleFor _:Body1 ],
                                [ oa:role oa:tagging;
                                  oa:roleFor <http://dbpedia.org/page/Arc_de_Triomphe> ],
                                [ oa:role oa:describing;
                                  oa:roleFor _:Body3 ] .
   _:Body1 a  oa:EmbeddedContent ;
                                rdf:value "Come back and view this image on a larger screen.";
                                dc:format "text/plain";
                                dc:language "en".
   _:Body3 a  oa:SpecificResource;
                                oa:hasSource <https://www.youtube.com/watch?v=BZLZyX3JdEM>;
                                oa:hasSelector [
                                                a oa:FragmentSelector ;
                                                dcterms:conformsTo <http://www.w3.org/TR/media-frags/> ;
                                                rdf:value "t=247,280" ] .

This proposal assumes a new class, e.g., oa:RoleAssignment, and 3 new predicates.
1. oa:hasRoles (range is oa:RoleAssignment),
2. oa:role (range is oa:Motivation);
3. oa:roleFor (range is Resource, including oa:EmbeddedContent and oa:SpecificResource classes)

Note the necessity to change from Simple Textual Body to Embedded Textual Body in order to have an identifiable Resource to which to connect the role assigned to the Textual Body.  On the other side of the ledger, we no longer need to use a blank node for tagging, although we may want to consider an additional Motivation, oa:semanticTagging as distinct from oa:tagging.

I'll have a draft wiki page with this and other illustrations in both Turtle and JSON ready to share soon.

Thanks,

Tim Cole

From: Robert Sanderson [mailto:azaroth42@gmail.com]
Sent: Wednesday, August 05, 2015 3:33 PM
To: Paolo Ciccarese <paolo.ciccarese@gmail.com<mailto:paolo.ciccarese@gmail.com>>
Cc: t-cole3 <t-cole3@illinois.edu<mailto:t-cole3@illinois.edu>>; W3C Public Annotation List <public-annotation@w3.org<mailto:public-annotation@w3.org>>
Subject: Re: Roles, multiple bodies, and creating wiki page of potential solution


And, for Specific Resource bodies, for example:

{
  "@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=XmmZBX9DfwHM-3kQkzlH1sX3zbqXnV9l6YbUMHJ4EXg&s=RC3DWVT5SxuTBq7OAhcmj5fxBYKuEvWgwQSePx7kAjE&e=>",
  "@type": "Annotation",
  "motivation": "bookmarking",
  "body": [
    {
      "@id": "_:b1",
      "@type": "SpecificResource",
      "source": "http://example.org/image.jpg<https://urldefense.proofpoint.com/v2/url?u=http-3A__example.org_image.jpg&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=zjI0r-H6xRs5fYf2_jJkju6US9ijk0nLw4ns2nuwU2k&m=XmmZBX9DfwHM-3kQkzlH1sX3zbqXnV9l6YbUMHJ4EXg&s=JoBu1wPC8zNWI_mIwDPVjpc7SKLSSUOvMwA5SujMw3M&e=>",
      "selector": {
        "@type": "FragmentSelector",
        "value": "xywh=1,1,100,100"
      }
    },
    {
      "@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=XmmZBX9DfwHM-3kQkzlH1sX3zbqXnV9l6YbUMHJ4EXg&s=qk_aPz9pg0_JWqjiHlHI9mxzfFK5b8yXswICnvnMyok&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=XmmZBX9DfwHM-3kQkzlH1sX3zbqXnV9l6YbUMHJ4EXg&s=v5Tl0JX775sDWGFPupzkahoiJvF1xJniR2PMYm9RZL0&e=>",
      "@type": "EmbeddedContent",
      "value": "MustRead"
    }
  ],
  "target":  "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=XmmZBX9DfwHM-3kQkzlH1sX3zbqXnV9l6YbUMHJ4EXg&s=25DYgPAccxutOj-0rVkJByBo0MrFTXDvwfrViwximyg&e=>",
  "roles": [
    {"role": "commenting", "for": "_:b1"},
    {"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=XmmZBX9DfwHM-3kQkzlH1sX3zbqXnV9l6YbUMHJ4EXg&s=qk_aPz9pg0_JWqjiHlHI9mxzfFK5b8yXswICnvnMyok&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=XmmZBX9DfwHM-3kQkzlH1sX3zbqXnV9l6YbUMHJ4EXg&s=v5Tl0JX775sDWGFPupzkahoiJvF1xJniR2PMYm9RZL0&e=>"}
  ]
}


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.

….


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

Received on Friday, 7 August 2015 18:54:34 UTC