Loading

IIIF

Tarje Lavik

This is a live streamed presentation. You will automatically follow the presenter and see the slide they're currently on.

IIIF

International Image
Interoperability Framework

— Tarje Laviq

https://iiif.bodleian.ox.ac.uk/iiif/image/263613fd-d920-4c16-ac7b-70d7d4a2cb27/2775,2650,800,1000/800,/0/default.jpg

Agenda

IIIF represents an evolution in exchange standards, establishing a uniform way to interact with resources.

With IIIF, images, objects, and collections become significantly more reusable.

APIs! Standardized Application Programming Interfaces makes IIIF so powerful. URIs usable for humans and machines.

What is IIIF?

International

Image++

https://dlcs.io/iiif-img/wellcome/5/b14658197.jp2/full/500,/0/default.jpg

https://dlcs.io/iiif-img/wellcome/5/b14658197.jp2/2173,1147,1000,1000/500,/0/default.jpg

https://dlcs.io/iiif-img/wellcome/5/b14658197.jp2/2903,1047,800,2000/500,/0/gray.jpg

Interoperability – Viewers

Interoperability – Images

Interoperability – Collections

Framework

and extensions

Maps extension

Image API

  • Identifier
  • Region
  • Size
  • Rotation
  • Quality
  • Format

info.json

{
  "@context": "http://iiif.io/api/image/2/context.json",
  "@id": "https://ids.si.edu/ids/iiif/CHSDM-317E001E9E352-000001",
  "protocol": "http://iiif.io/api/image",
  "width": 5471,
  "height": 3757,
  "tiles": [
    {
      "width": 512,
      "scaleFactors": [
        1,
        2,
        4,
        8
      ]
    }
  ],
  "profile": [
    "http://iiif.io/api/image/2/level2.json",
    {
      "formats": [
        "jpg"
      ],
      "supports": [
        "sizeByH",
        "sizeByW",
        "sizeByForcedWh"
      ]
    }
  ]
}

Presentation API

aka manifests or prezi

Canvas

  • Few required fields
    • Id
    • Type
    • Label
    • List of canvases
  • Metadata is flexible, but simple
    • label (keywords) and value (spade)

Manifest – minimum

Most important to remember, made for humans using IIIF viewers, not for complex metadata

  • Attribution to owner
  • Define one or more structures, similar to a table of contents
  • Provide links to additional resources related to the object
  • Integrate other services, such as authorization

Manifest – additional ... stuff

Manifest JSON

{
  "@context": "http://iiif.io/api/presentation/3/context.json",
  "id": "https://api-ub.vercel.app/items/ubb-jg-l-0985/manifest",
  "type": "Manifest",
  "behavior": [
    "paged"
  ],
  "label": {
    "no": [
      "[FN i Midtøsten 1957]"
    ],
    "en": [
      "[UN in the Middle east 1957]"
    ]
  },
  "metadata": [
    {
      "label": {
        "en": [
          "Identifier"
        ],
        "no": [
          "Identifikator"
        ]
      },
      "value": {
        "none": [
          "ubb-jg-l-0985"
        ]
      }
    },
    {
      "label": {
        "en": [
          "Subjects"
        ],
        "no": [
          "Emneord"
        ]
      },
      "value": {
        "no": [
          "UNRWA",
          "Fargefotografi",
          "Mann",
          "Dias",
          "Fotograf",
          "Fotografportrett",
          "Lysbilde",
          "FN"
        ]
      }
    },
    {
      "label": {
        "en": [
          "Spatial"
        ],
        "no": [
          "Steder"
        ]
      },
      "value": {
        "no": [
          "Egypt",
          "Gazastripen"
        ]
      }
    }
  ],
  "summary": {
    "no": [
      "FN i midtøsten 1957. Portrett av Jørgen Grinde."
    ],
    "en": [
      "UN in the Middle East 1957. Portrait of Jørgen Grinde."
    ]
  },
  "requiredStatement": {
    "label": {
      "no": [
        "Kreditering"
      ],
      "en": [
        "Attribution"
      ]
    },
    "value": {
      "no": [
        "Tilgjengeliggjort av Universitetsbiblioteket i Bergen"
      ],
      "en": [
        "Provided by University of Bergen Library"
      ]
    }
  },
  "rights": "http://creativecommons.org/licenses/by/4.0/",
  "thumbnail": [
    {
      "id": "https://data.ub.uib.no/files/bs/ubb/ubb-jg/ubb-jg-l/ubb-jg-l-0985/jpg/ubb-jg-l-0985_th.jpg",
      "type": "Image",
      "format": "image/jpeg",
      "height": 250,
      "width": 250
    }
  ],
  "seeAlso": [
    {
      "id": "https://api-ub.vercel.app/items/ubb-jg-l-0985",
      "type": "Dataset",
      "format": "application/ld+json",
      "label": {
        "en": [
          "Object description in JSON format"
        ],
        "no": [
          "Objekt beskrivelse i JSON format"
        ]
      }
    },
    {
      "id": "https://sparql.ub.uib.no/sparql/query?query=describe<http://data.ub.uib.no/instance/photograph/ubb-jg-l-0985>&output=json",
      "type": "Dataset",
      "label": {
        "en": [
          "Object description in RDF"
        ],
        "no": [
          "Objekt beskrivelse i RDF"
        ]
      }
    }
  ],
  "homepage": [
    {
      "id": "http://marcus.uib.no/instance/photograph/ubb-jg-l-0985",
      "type": "Text",
      "format": "text/html",
      "label": {
        "no": [
          "Hjemmeside til objektet"
        ],
        "en": [
          "Homepage for the object"
        ]
      }
    }
  ],
  "items": [
    {
      "id": "http://data.ub.uib.no/instance/page/ubb-jg-l-0985_p1",
      "type": "Canvas",
      "height": 1024,
      "width": 1024,
      "label": {
        "no": [
          "1"
        ]
      },
      "thumbnail": [
        {
          "id": "https://data.ub.uib.no/files/bs/ubb/ubb-jg/ubb-jg-l/ubb-jg-l-0985/jpg/ubb-jg-l-0985_xs.jpg",
          "type": "Image",
          "format": "image/jpeg",
          "height": 200,
          "width": 200
        }
      ],
      "items": [
        {
          "id": "http://data.ub.uib.no/instance/digitalresource/ubb-jg-l-0985/annotation-page/1",
          "type": "AnnotationPage",
          "items": [
            {
              "id": "http://data.ub.uib.no/instance/digitalresource/ubb-jg-l-0985/annotation/1",
              "type": "Annotation",
              "motivation": "painting",
              "target": "http://data.ub.uib.no/instance/page/ubb-jg-l-0985_p1",
              "body": {
                "id": "https://data.ub.uib.no/files/bs/ubb/ubb-jg/ubb-jg-l/ubb-jg-l-0985/jpg/ubb-jg-l-0985_xl.jpg",
                "type": "Image",
                "format": "image/jpeg",
                "height": 1024,
                "width": 1024
              }
            }
          ]
        }
      ]
    }
  ],
  "structures": [
    {
      "id": "http://data.ub.uib.no/instance/manuscript/ubb-jg-l-0985/manifest/range/1",
      "type": "Range",
      "label": {
        "no": [
          "Standard innholdsfortegnelse"
        ],
        "en": [
          "Default"
        ]
      },
      "items": [
        {
          "id": "http://data.ub.uib.no/instance/page/ubb-jg-l-0985_p1",
          "type": "Canvas"
        }
      ]
    }
  ]
}

Playtime

We will look at manifests and collections in the IIIF Manifest editor, Theseus viewer and Mirador

 

Lets first get some urls from https://api-ub.vercel.app/spec (deprecated, will move to https://api.ub.uib.no/reference)

Finished