International Image Interoperability Framework

Last updated
IIIF logo International Image Interoperability Framework logo.png
IIIF logo

The International Image Interoperability Framework (IIIF, spoken as 'triple-I-eff') defines several application programming interfaces that provide a standardised method of describing and delivering images over the web, as well as "presentation based metadata" [1] (that is, structural metadata) about structured sequences of images. If institutions holding artworks, books, newspapers, manuscripts, maps, scrolls, single sheet collections, and archival materials provide IIIF endpoints for their content, any IIIF-compliant viewer or application can consume and display both the images and their structural and presentation metadata.

Contents

There are many digitisation programmes that have resulted in a particular collection’s content exposed on the web in a particular viewer application, [2] but these various collections have not typically been interoperable with one another, [3] and end users or institutions cannot substitute a viewer of their choice to consume the digitised material. The IIIF aims to cultivate shared technologies for both client and server to enable interoperability across repositories, and to foster a market in compatible servers and viewing applications. [4]

Image API

The IIIF Image API specifies a web service that returns an image in response to a standard HTTP or HTTPS request. The URI can specify the region, size, rotation, quality characteristics and format of the requested image. A URI can also be constructed to request basic technical information about the image to support client applications. [5]

One major use of an Image API endpoint for a given high resolution source image is to allow clients to request low resolution tiles for use in a Deep Zoom style viewing tool such as OpenSeadragon. [6]

Presentation API

The IIIF Presentation API specifies a web service that returns JSON-LD structured documents that together describe the structure and layout of a digitized object or other collection of images and related content. [7]

An institution would publish a Manifest (a JSON-LD document) that describes the structure of each book, artwork, manuscript or other artefact. The manifest contains references to Image API endpoints. A viewer application consuming the manifest can produce a coherent user experience for the artefact by implementing features such as page by page navigation, deep zooming into images and annotations on images.

Search API

The IIIF Search API allows for "searching annotation content within a single IIIF resource, such as a Manifest, Range or Collection." [8]

Example use case

A use case for IIIF would be to allow a user to view a manuscript that has been dismembered in the past, with its leaves now scattered across various collections. [9] If each collection exposes its digitized images via the Image API, then a scholar can construct and publish a manifest that digitally recombines the leaves to present a single coherent user experience for the manuscript in any compatible viewer.

History

The Image API was proposed in late 2011 as a collaboration between The British Library, Stanford University, the Bodleian Libraries (Oxford University), the Bibliothèque nationale de France, Nasjonalbiblioteket (National Library of Norway), Los Alamos National Laboratory Research Library, and Cornell University. [10] Version 1.0 was published in 2012.

Version 1.0 of the Presentation API was published in 2013 and of the Search API in 2016.

Partial list of software that supports IIIF APIs

Image Servers

Viewers / client libraries

See also

Related Research Articles

<span class="mw-page-title-main">Linux framebuffer</span> Abstraction layer for Linux kernel to show graphics on the system console

The Linux framebuffer (fbdev) is a linux subsystem used to show graphics on a computer monitor, typically on the system console.

freedesktop.org (fd.o), formerly X Desktop Group (XDG), is a project to work on interoperability and shared base technology for free-software desktop environments for the X Window System (X11) and Wayland on Linux and other Unix-like operating systems. Although freedesktop.org produces specifications for interoperability, it is not a formal standards body.

The Web Server Gateway Interface is a simple calling convention for web servers to forward requests to web applications or frameworks written in the Python programming language. The current version of WSGI, version 1.0.1, is specified in Python Enhancement Proposal (PEP) 3333.

<span class="mw-page-title-main">Web API</span> HTTP-based application programming interface on the web

A web API is an application programming interface (API) for either a web server or a web browser. As a web development concept, it can be related to a web application's client side. A server-side web API consists of one or more publicly exposed endpoints to a defined request–response message system, typically expressed in JSON or XML by means of an HTTP-based web server. A server API (SAPI) is not considered a server-side web API, unless it is publicly accessible by a remote web application.

<span class="mw-page-title-main">OpenSocial</span> Public specification aimed at social networking applications

OpenSocial is a public specification that outlines a set of common application programming interfaces (APIs) for web applications. Initially designed for social network applications, it was developed collaboratively by Google, MySpace and other social networks. It has since evolved into a runtime environment that allows third-party components, regardless of their trust level, to operate within an existing web application.

This is a comparison of web frameworks for front-end web development that are heavily reliant on JavaScript code for their behavior.

<span class="mw-page-title-main">.NET Framework</span> Software platform developed by Microsoft

The .NET Framework is a proprietary software framework developed by Microsoft that runs primarily on Microsoft Windows. It was the predominant implementation of the Common Language Infrastructure (CLI) until being superseded by the cross-platform .NET project. It includes a large class library called Framework Class Library (FCL) and provides language interoperability across several programming languages. Programs written for .NET Framework execute in a software environment named the Common Language Runtime (CLR). The CLR is an application virtual machine that provides services such as security, memory management, and exception handling. As such, computer code written using .NET Framework is called "managed code". FCL and CLR together constitute the .NET Framework.

<span class="mw-page-title-main">Node.js</span> JavaScript runtime environment

Node.js is a cross-platform, open-source JavaScript runtime environment that can run on Windows, Linux, Unix, macOS, and more. Node.js runs on the V8 JavaScript engine, and executes JavaScript code outside a web browser.

<span class="mw-page-title-main">Play Framework</span> Open-source web framework written in Scala

Play Framework is an open-source web application framework which follows the model–view–controller (MVC) architectural pattern. It is written in Scala and usable from other programming languages that are compiled to JVM bytecode, e.g. Java. It aims to optimize developer productivity by using convention over configuration, hot code reloading and display of errors in the browser.

Security Assertion Markup Language (SAML) is a set of specifications that encompasses the XML-format for security tokens containing assertions to pass information about a user and protocols and profiles to implement authentication and authorization scenarios. This article has a focus on software and services in the category of identity management infrastructure, which enable building Web-SSO solutions using the SAML protocol in an interoperable fashion. Software and services that are only SAML-enabled do not go here.

Windows Runtime (WinRT) is a platform-agnostic component and application architecture first introduced in Windows 8 and Windows Server 2012 in 2012. It is implemented in C++ and officially supports development in C++, Rust/WinRT, Python/WinRT, JavaScript-TypeScript, and the managed code languages C# and Visual Basic (.NET) (VB.NET).

<span class="mw-page-title-main">GraalVM</span> Virtual machine software

GraalVM is a Java Development Kit (JDK) written in Java. The open-source distribution of GraalVM is based on OpenJDK, and the enterprise distribution is based on Oracle JDK. As well as just-in-time (JIT) compilation, GraalVM can compile a Java application ahead of time. This allows for faster initialization, greater runtime performance, and decreased resource consumption, but the resulting executable can only run on the platform it was compiled for.

Eclipse Deeplearning4j is a programming library written in Java for the Java virtual machine (JVM). It is a framework with wide support for deep learning algorithms. Deeplearning4j includes implementations of the restricted Boltzmann machine, deep belief net, deep autoencoder, stacked denoising autoencoder and recursive neural tensor network, word2vec, doc2vec, and GloVe. These algorithms all include distributed parallel versions that integrate with Apache Hadoop and Spark.

Kubernetes is an open-source container orchestration system for automating software deployment, scaling, and management. Originally designed by Google, the project is now maintained by a worldwide community of contributors, and the trademark is held by the Cloud Native Computing Foundation.

SensorThings API is an Open Geospatial Consortium (OGC) standard providing an open and unified framework to interconnect IoT sensing devices, data, and applications over the Web. It is an open standard addressing the syntactic interoperability and semantic interoperability of the Internet of Things. It complements the existing IoT networking protocols such CoAP, MQTT, HTTP, 6LowPAN. While the above-mentioned IoT networking protocols are addressing the ability for different IoT systems to exchange information, OGC SensorThings API is addressing the ability for different IoT systems to use and understand the exchanged information. As an OGC standard, SensorThings API also allows easy integration into existing Spatial Data Infrastructures or Geographic Information Systems.

<span class="mw-page-title-main">Pop PHP Framework</span> Free and open source PHP web framework

The Pop PHP Framework a free and open source PHP Web framework that was created by Nick Sagona. It is distributed under the BSD License and hosted on GitHub. The framework is intended to be utilized for rapid application development, with an emphasis on web applications.

Microsoft, a technology company historically known for its opposition to the open source software paradigm, turned to embrace the approach in the 2010s. From the 1970s through 2000s under CEOs Bill Gates and Steve Ballmer, Microsoft viewed the community creation and sharing of communal code, later to be known as free and open source software, as a threat to its business, and both executives spoke negatively against it. In the 2010s, as the industry turned towards cloud, embedded, and mobile computing—technologies powered by open source advances—CEO Satya Nadella led Microsoft towards open source adoption although Microsoft's traditional Windows business continued to grow throughout this period generating revenues of 26.8 billion in the third quarter of 2018, while Microsoft's Azure cloud revenues nearly doubled.

FastAPI is a web framework for building HTTP-based service APIs in Python 3.8+. It uses Pydantic and type hints to validate, serialize and deserialize data. FastAPI also automatically generates OpenAPI documentation for APIs built with it. It was first released in 2018.

References

  1. "Technical Details – IIIF – International Image Interoperability Framework" . Retrieved 9 November 2016.
  2. "Medieval Manuscripts on the Web (digitized manuscripts)" . Retrieved 9 November 2016.
  3. "Presentation on "Transcending Silos" at 2012 Digital Library Federation Forum". Archived from the original on 2015-04-02. Retrieved 2015-02-16.
  4. "Redirecting…" . Retrieved 9 November 2016.
  5. "Image API 2.1 — IIIF – International Image Interoperability Framework" . Retrieved 9 November 2016.
  6. "IIIF Tile Source – OpenSeadragon" . Retrieved 9 November 2016.
  7. "Presentation API 2.0 — IIIF – International Image Interoperability Framework" . Retrieved 9 November 2016.
  8. "IIIF Content Search API 1.0 — IIIF – International Image Interoperability Framework" . Retrieved 9 November 2016.
  9. Mauk, Ben (6 January 2014). "Scattered Leaves". The New Yorker. Retrieved 9 November 2016.
  10. "The International Image Interoperability Framework (IIIF): Laying the Foundation for Common Services, Integrated Resources and a Marketplace of Tools for Scholars Worldwide". 8 December 2011. Retrieved 9 November 2016.
  11. "Cantaloupe Image Server :: Home". cantaloupe-project.github.io.
  12. "dbmdz/iiif-server-hymir". October 29, 2020 via GitHub.
  13. "loris-imageserver/loris". GitHub . Retrieved 9 November 2016.
  14. Pillay, Ruven. "IIPImage" . Retrieved 9 November 2016.
  15. "digilib – The Digital Image Library –" . Retrieved 9 November 2016.
  16. "jronallo/djatoka". GitHub . Retrieved 9 November 2016.
  17. "OpenSeadragon" . Retrieved 9 November 2016.
  18. "ProjectMirador/mirador". GitHub . Retrieved 9 November 2016.
  19. "Digirati – Wellcome Player". Archived from the original on 22 October 2017. Retrieved 9 November 2016.
  20. "UniversalViewer/universalviewer". GitHub . Retrieved 9 November 2016.
  21. "IIIF for images in cultural heritage". Archived from the original on 10 November 2016. Retrieved 9 November 2016.
  22. "mejackreed/Leaflet-IIIF". GitHub . Retrieved 9 November 2016.
  23. "ruven/iipmooviewer". GitHub . Retrieved 9 November 2016.
  24. "armadillo-systems/inquire". GitHub . Retrieved 3 February 2017.
  25. "CONTENTdm responsive website image viewer". OCLC. Retrieved 18 November 2019.
  26. "Turning the Pages IIIF" . Retrieved 28 March 2023.