AW: Annotation grouping mechanism?

Hi Gerben,


thanks for this - yes, probably the Annotation Collection is what would make the most sense in my case, since I'd definitely want to be able to attach specific bodies to specific target shapes.


For other cases: I actually forgot about the composite target pattern. I would have just covered it with a single SVG selector, containing multiple shapes. But I agree, the composite pattern looks cleaner.


Cheers,

Rainer



________________________________
Von: Gerben <gerben@treora.com>
Gesendet: Montag, 24. Mai 2021 20:27
An: Simon Rainer; public-openannotation@w3.org
Betreff: Re: Annotation grouping mechanism?


Hi Simon,

Without pretending to answer your question, I’ll just think out loud, starting with an observation regarding concepts and terminology: If a user “selects multiple shapes” in an image, without annotations attached, then I suppose those are rather targets than annotations, right? Is each of them represented as a Specific Resource<https://www.w3.org/TR/annotation-model/#specific-resources>/Selector<https://www.w3.org/TR/annotation-model/#selectors>? If so, the question would perhaps not be as much how to create a group of annotations, but rather a group of (potential) targets; and that makes me think of Web Annotation Data Model Appendix D. Sets of Bodies and Targets<https://www.w3.org/TR/annotation-model/#sets-of-bodies-and-targets>. Even if a group of selected areas may not yet be the target of an annotation, perhaps it could be helpful to already create e.g. a “composite” target:

  {
    "type": "Composite",
    "items": [
      {
        "source": "URI-for-the-image",
        "selector": {
          "type": "SvgSelector",
          "value": "<svg:svg> ... </svg:svg>"
        }
      },
      {
        …
      },
      …
    ]
  }

Then I suppose that the above JSON object could be (identified by a URI, which could be) passed around among the application(s), and/or be used as the target value in an annotation, etc.

If, on the other hand, the selected regions do have annotations ‘attached’, then the user would likely expect those to be contained in the group too, and remain attached to the correct region. Perhaps you would have a group of annotations? Or even a mixed bag of annotations and targets, but that sounds messy — it may be better to then give each target an body-less annotation. Either way, I guess these annotations would just be thrown together into an array to be grouped; or an “Annotation Collection<https://www.w3.org/TR/annotation-model/#collections>”, but that may be a little overcomplicated for the present use case. And this array/collection could have a URI to identify it, if you need a “group ID”.

That was just my train of thought, I hope it is of any help; but it could well be that I misunderstood some aspects of your scenario, or of the Web Annotation spec.

Kind regards,

— Gerben


On 12/05/2021 08.11, Simon Rainer wrote:

Dear list,


as part of my work on the Annotorious [1] image annotation library, there was recently discussion about a grouping mechanism for image annotations. I was wondering whether there are any thoughts about how to best model annotation groups in WebAnno.


From the users' point of view, they'd simply expect something familiar, like you have in your average shape drawing tool (Powerpoint, Inkscape, Illustrator et al.): you'd draw your shape selections on the image; then select multiple shapes (by dragging a box around them, SHIFT+clicking, etc.); and then you group them via keyboard shortcut, right-click menu, whatever.


I wonder if there's a position on best practices for expressing such an association in a WebAnno-compliant way. Should this best be treated as a single annotation, with multiple targets? (Or a single "multi-polygon" SVG selector?) What if users need to maintain the association between particular annotation bodies and a particular target shape? (I.e. what if this needs to be modeled as multiple annotations.)


Or is this outside of the scope of the spec, and implementations should handle this via their own (proprietary) grouping mechanism? E.g. by as assigning "group IDs" in a dedicated annotation body? (Perhaps with "purpose = grouping"?)


Any thoughts appreciated!


Cheers,

Rainer


[1] https://recogito.github.io/annotorious

Received on Tuesday, 25 May 2021 09:07:12 UTC