Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Annotation Collections #671

Open
thehabes opened this issue Feb 17, 2023 · 0 comments
Open

Annotation Collections #671

thehabes opened this issue Feb 17, 2023 · 0 comments
Assignees

Comments

@thehabes
Copy link
Member

thehabes commented Feb 17, 2023

The most direct match to how TPEN does transcription information in presentation 2 AnnotationList is the presentation 3 AnnotationPage.

There are a couple situations in which these semantics fall somewhat short. For example, what if we want to have a Transcription and Translation by the same user for the same canvas within a single project. How does the interface know which to preference or whether to offer a choice or filter? It does not know whether they should be shown together, at the same time, or at all.

We have also considered making the "Column" construct as a List -- as in ORDER matters and can be labeled -- Making each Column as an individual AnnotationPage could do this, but then it could confuse the Transcription and Translation scenario if all of them are AnnotationPages where some are column groupings to show at the same time and some are Transcription/Translation to show one at a time.

Presentation API 3, via modern Web Annotation standards, offers us the Annotation Collection construct.

IIIF Says:

Annotation Collections represent groupings of Annotation Pages that should be managed as a single whole, regardless of which Canvas or resource they target. This allows, for example, all of the Annotations that make up a particular translation of the text of a book to be collected together. A client might then present a user interface that allows all of the Annotations in an Annotation Collection to be displayed or hidden according to the user’s preference.

For Annotation Collections with many Annotations, there will be many pages. The Annotation Collection refers to the first and last page, and then the pages refer to the previous and next pages in the ordered list. Each page is part of the Annotation Collection.

{
  "@context": "http://iiif.io/api/presentation/3/context.json",
  "id": "https://t-pen.org/TPEN/project/4080/cubap/collection",
  "type": "AnnotationCollection",
  "label": {"en": ["Transcription and Translation"]},
  "_tpen_creator": "cubap",
  "first": {
      "id": "https://t-pen.org/TPEN/project/4080/cubap/annopage/transcription/",
      "type": "AnnotationPage",
      "label": {"en":["Transcription by Patrick Cuba"]},
      "_tpen_creator": "cubap",
      "partOf": {
        "id": "https://t-pen.org/TPEN/project/4080/cubap/collection/",
        "type": "AnnotationCollection"
      },
      "next": {
        "id": "https://t-pen.org/TPEN/project/4080/bhaberbe/annopage/translation/",
        "type": "AnnotationPage"
      },
      "items": [
        {
          "id": "https://t-pen.org/TPEN/project/4080/cubap/annopage/transcription/line/1/",
          "type": "Annotation",
          "motivation" : "transcribing",
          "_tpen_creator": "cubap"
        }
      ]
   },
  "last":  {
      "id": "https://t-pen.org/TPEN/project/4080/bhaberbe/annopage/translation/",
      "type": "AnnotationPage",
      "label": {"en":["'Own Words' Translation by Bryan Haberberger"]},
      "_tpen_creator": "bhaberbe",
      "partOf": {
        "id": "https://t-pen.org/TPEN/project/4080/cubap/collection/",
        "type": "AnnotationCollection"
      },
      "previous": {
        "id": "https://t-pen.org/TPEN/project/4080/bhaberbe/annopage/translation/",
        "type": "AnnotationPage"
      },
      "items": [
        {
          "id": "https://t-pen.org/TPEN/project/4080/bhaberbe/annopage/translation/line/1/",
          "type": "Annotation",
          "motivation": "translating",
          "_tpen_creator": "bhaberbe"
        }
      ]
   }
}

Web Annotation Says:

As Annotation Collections might get very large, the model distinguishes between the Collection itself and sequence of component pages that in turn list the Annotations. The Collection maintains information about itself, including creation or descriptive information to aid with discovery and understanding of the Collection, and also references to at least the first Page of Annotations. By starting with the first Annotation in the first Page, and traversing the Pages to the last Annotation of the last Page, all Annotations in the Collection will have been discovered.

Annotations may be within multiple Collections at the same time, and the Collection may be created or maintained by agents other than those that create or maintain the included Annotations.

{
  "@context": "http://www.w3.org/ns/anno.jsonld",
  "id": "http://example.org/collection1",
  "type": "AnnotationCollection",
  "creator" : "http://example.org/Agent/Patrick-Cuba",
  "label": "Two Annotations",
  "total": 2,
  "first": {
    "id": "http://example.org/page1",
    "type": "AnnotationPage",
    "creator" : "http://example.org/Agent/Patrick-Cuba",
    "startIndex": 0,
    "items": [
      {
        "id": "http://example.org/anno1",
        "type": "Annotation",
        "motivation": "commenting",
        "body": "http://example.net/comment1",
        "target": "http://example.com/book/chapter1",
        "creator" : "http://example.org/Agent/Patrick-Cuba"
      },
      {
        "id": "http://example.org/anno2",
        "type": "Annotation",
        "motivation": "commenting",
        "body": "http://example.net/comment2",
        "target": "http://example.com/book/chapter2",
        "creator" : "http://example.org/Agent/Bryan-Habes"
      }
    ]
  }
}

We still need to put two and two together. How could TPEN use this? What use case(s) does it solve? What has to be done on the interface to process and render this information to the correct users?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants