翻译:Wu Gang


稳定版规范

IIIF图像 API 3.0
IIIF展示 API 3.0
IIIF认证 API 1.0
IIIF搜索 API 1.0
IIIF发现 API 1.0

Beta版规范

内容状态 API
有关所有规范、翻译和版本的列表,请参阅完整 IIIF API 列表

相信您已确信 IIIF 的益处,并准备为自己的资源实现 IIIF。此处的简短指南将带您浏览一些决策要点,以帮助您开始行动。您也可以直接跳转到 IIIF Cookbook 查看详细示例。

社区

IIIF 社区根据不同的技术和用户需求开发了实现标准的各种选项。对于您所在的机构,很可能已经存在解决方案,或者其他人也需要做类似的事情。

虽然此简短指南和其他文档可以帮助您推进实现,但我们的首要建议是与社区建立联系。IIIF 社区可以帮助您针对特定上下文和用例指明正确方向。

IIIF 讨论列表可用于搜索过去的答案以及提出新问题。社区还拥有一个 Slack 团队,有很多提问渠道。可能已经有某一社区群组与您拥有相同的感兴趣的领域。

社区还维护着Awesome IIIF列表,其中包含软件和资源的链接。

信息收集

IIIF 通常需要将不同角色的人员和来自不同系统的数据聚集在一起。我们创建了一份调查问卷,可以帮助您收集实现 IIIF 和自我评估所需的信息。

需要考虑的一件事是联系您当前系统的供应商。他们可能已经将 IIIF 实现作为其产品最新版本的一部分,正在实现中,或正在考虑开发。更新您已经使用的产品可能比尝试实现新应用程序或从头开始开发要容易得多。

您可能还想更加熟悉有关 IIIF 的所有术语。您可以通过自助式 IIIF 研讨会以获得更好的理解。

核心 API

实现 IIIF API的工作可细分为核心 API(图像演示)和附加 API(认证内容搜索)两部分。建议首先实现核心 API,然后再根据需要添加其他 API。请注意,可以随时间推移迭代地改进图像和演示实现。可以从相对简单的图像和演示 API 开始,然后再返回添加更多功能。

图像 API

图像 API 允许可互操作地传送数字图像。简单而言,该 API 允许构造参数化 URI 以获取一幅图像的特定区域和/或大小。正是这种获取图像区域和大小的能力支持着传送缩略图以及深度缩放查看。图像 API 还指定了一种获取有关图像的信息 (info.json) 以及该图像支持哪些图像衍生品和图像操作功能的方法。您需要实现的是服务器端部分;本指南的后面可以阅读到有关用于浏览器的查看器。

图像 API 可以仅用 Web 服务器或者用称为图像服务器的专用应用程序来实现。这些实现 API 的不同方式对应着不同的 API 遵从度级别

仅使用Web服务器实现图像 API 是0级实现。通过创建大量静态图像尺寸和图块,0级实现简单却又能支撑深度缩放查看器,但会占用大量存储空间。

另一种选择是实现图像服务器(1级或2级)。有许多社区开发的图像服务器可选。如果是刚了解图像服务器并想尝试一下,我们建议从 Cantaloupe 开始,它易于运行,包含许多功能,并具有用于配置的 GUI 界面。如果您已有的图像服务器不遵从IIIF规范,那么可以使用 shim 工具来支持 IIIF。实现图像 API 的供应商应将遵从度级别至少设为 1 级。

展示 API

虽然图像 API 允许传送和共享图像,但仅凭图像 API 不会携带任何描述性元数据。随它携带任何描述性元数据。为了共享资源并使描述性元数据随图像一起传输,需要实现展示 API 。如果一组图像或视频共同构成单一的资源,也需要使用展示 API 对其进行排序。

实现展示 API 时所创建的是称为展示清单(presentation manifest)的JSON文档。其中包括向用户展示整个资源所需的任何信息。清单可以静态或动态创建。展示 API 的名字源自其决策是要专注于向用户展示信息而非试图就新的语义元数据标准达成一致,因此当您阅读文档和查看示例时,请记住这一有意专注于展示的决策。

为每个资源创建展示清单所需的数据可能来自于您环境中的各种系统。其中一个要素是有关图像 API 服务的信息。由于有如此多不同种类的系统跨越如此多不同机构,因此没有一种方法可以实现演示清单的其他部分。通常需要定制开发以集成来自不同系统的数据。有一些展示 API 库可能会有所帮助。再次检查您所购置使用的任何产品是否支持 IIIF,因为这可能是一种最快的途径。可以考虑询问 IIIF 社区是否有其他人在使用相同或相似的一套应用程序,以及他们是如何实现的演示清单。

清单是高度嵌套的JSON文档,看起来复杂,但是一旦学会了术语,就可以学会轻松阅读清单。查看社区开发的 IIIF 窍门(recipes)或 IIIF Cookbook 中的示例,您将逐步了解构成清单的主要部分。

一旦基本清单在演示查看器中工作起来后,您可以稍后返回并实现其他演示功能,例如链接属性。这包括链出到语义描述元数据的方法和渲染(如 PDF)的方法。

查看器及站点集成

您需要做出的一个选择是在自己的站点上为IIIF 资源使用什么查看器。该选择细分为仅支持图像 API 和深度缩放的查看器,以及支持用于显示元数据和多个图像的展示 API 的查看器。在寻找要使用的查看器时,要考虑它是图像查看器还是展示清单查看器。

用于深度缩放图像的查看器包括OpenSeadragonLeaflet-IIIF。此类查看器只需实现图像 API 即可工作。此类查看器功能有限,因为只能用于查看单个图像,而不能显示有关资源的元数据。不过,这可能就是您自己网站所需的全部内容。

展示清单的话,可以考虑如MiradorUniversalViewer等查看器。这些查看器需要同时实现图像和展示 API。它们可以把资源及其元数据作为整体加以显示,还具有为单个页面图像提供标签以及下载选项等其他功能。这些富客户端查看器也可以嵌入其它站点。Mirador额外还允许在清单内的图像上查看和创建注释。

无论为自己的站点实现了哪种查看器,都需要实现可以在展示清单查看器中工作的展示清单。这将允许用户自行选择查看器和工具。用户可能安装有自己的应用程序实例,如 Mirador,以使他们能够保存自己的注释。

为了允许用户在另一个查看器中查看您的资源,您可能还希望宣传该资源具有可用的展示清单。可以从网站上的资源页面链接到您托管的不同查看器,并包含一个特殊的拖放链接,以允许用户选择自己的工具。

其他 API

实现核心 API 后,您可能需要考虑实现另外两个 IIIF API。

认证 API 帮助管理工作流,以授权对IIIF资源的认证访问权限,同时允许用户仍使用自行选择的查看器。如需限制对资源的访问或在某些情况下提供资源的降级版本,请查看该 API。如果您需要限制访问您的资源或在某些情况下提供资源的退化版本,请查看此 API。如果您需要限制对资源的访问或在某些情况下提供资源的降级版本,请查看此 API。

内容搜索 API 允许在资源内搜索。(请注意,首先它并不帮助查找资源,而是在用户发现资源后才帮助在资源内进行搜索。)如果有多页资源的全文,请考虑实现内部搜索 API。全文可以来自转录或OCR。富客户端查看器,如Universal Viewer和Mirador,支持内容搜索 API。

其他考虑

IIIF 的目标是可互操作,允许共享和用户选择。要启用此共享并使您的图像资源可用于托管在其他域上的 Web 应用程序,您还需要考虑一些技术细节。由于大多数的图像查看器使用JavaScript,因此您的图像服务器应需支持跨域资源共享 (CORS)。此外,越来越多的网站正在使用 HTTPS,为了让图像和展示清单在被请求时没有混合内容问题,它们也应该使用 HTTPS 进行传送。