Skip to content

Commit 9a095bb

Browse files
committed
Review and tweak Image API change-log. Minor changes only
Couple more tweaks
1 parent 1c6a67b commit 9a095bb

1 file changed

Lines changed: 16 additions & 17 deletions

File tree

source/api/image/2.0/change-log.md

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,13 @@ pre: draft
1212

1313
This document is a companion to the [IIIF Image API Specification, Version 2.0][api]. It describes the significant changes to the API since [Version 1.1][api-11]. The changes are broken into two groups: [Breaking Changes][breaking-changes], i.e. those that are not backwards compatible from either a client or server perspective (or both); and [Other Changes][other-changes], i.e. those that are backwards compatible. The latter group consists mostly of new features.
1414

15-
In addition to the changes described above:
15+
In addition to changes in the API, the specification documents have been changed as follows:
1616

1717
* The ordering of the major sections in the specification document has been adjusted for better flow.
1818
* The use of [RFC 2119 keywords][rfc-2119] has been made more consistent.
1919
* Language has been adjusted to make the document less developer-centric.
2020

21-
These changes will not be described further in this document.
22-
23-
With the [2.0 Release of the IIIF Image API][api], the editors will begin using [Semantic Versioning][semver] to enumerate releases. As the API relies on predictable URI patterns in several areas, careful choices have been made about which details of the version will be expressed and where. This is explained in [Appendix B][versioning].
21+
With the [2.0 Release of the IIIF Image API][api], [Semantic Versioning][semver] is used to enumerate releases. As the API relies on predictable URI patterns in several areas, careful choices have been made about which details of the version will be expressed and where. This is explained in [Appendix B][versioning].
2422

2523
## Table of Contents
2624
{:.no_toc}
@@ -34,11 +32,11 @@ With the [2.0 Release of the IIIF Image API][api], the editors will begin using
3432

3533
Previous versions of the specification used "grey" (not "gray") but "color" (not "colour"). While this does reflect the international nature of IIIF, it is not terribly consistent. From this release `grey` is now `gray`.
3634

37-
There was also confusion among users as to the meaning of `native`. The API does not recognize the notion of a source image, and the label `native` was tied too closely to such an idea. In 2.0 `native` has been replaced with `default`, with the implication that the server should return the image in a default quality, but the API provides no instructions as to how this decision is made (in the future, for example, authorization may determine the default quality).
35+
There was also confusion among users as to the meaning of `native`. The API does not recognize the notion of a source image, and the label `native` was tied too closely to such an idea. In 2.0 `native` has been replaced with `default`, with the implication that the server should return the image in a default quality. The API does not specify how this decision is made (in the future, for example, authorization may determine the default quality).
3836

3937
### Added `profile` property to Image Information document
4038

41-
This is a response to several requests for the ability to describe the capabilites of a server or a particular image with finer granularity than that of the compliance levels. For example, a server may be completely compliant with level 1, but also support the `!w,h` syntax for specifying the size, which is a level 2 feature. This capability can be exposed using the `supports` property with the `profile` property.
39+
This is a response to several requests for the ability to describe the capabilities of a server or a particular image with finer granularity than that of the compliance levels. For example, a server may be completely compliant with level 1, but also support the `!w,h` syntax for specifying the size, which is a level 2 feature. This capability can be exposed using the `supports` property with the `profile` property.
4240

4341
The `supports` property may also be used to describe extension features. See [5.2 Extensions][extensions] for details.
4442

@@ -56,26 +54,27 @@ The compliance URIs have been moved into the `http://iiif.io` domain. They now r
5654

5755
### Dropped Support for Content Negotiation and Default Image Format
5856

59-
As of this version, a client must specify the format of the image as a file-like suffix on the URI, e.g. `default__.jpg__`. There are several reasons for this change:
57+
As of this version, a client must specify the format of the image as a file-extension like suffix on the URI (e.g. `.jpg`). There are several reasons for this change:
6058

6159
* This a typical convention employed by image processing utilities, (cf. [ImageMagick][imagemagick-output], [Pillow][pillow], [Kakadu][kdu-usage], and most others).
62-
* The formats in which the image is available are explicitly enumerated by the info.json document for an image and/or the server compliance level document. A client should never need to guess or let the server decide as `jpg` is always required.
60+
* The formats in which the image is available are explicitly enumerated by the `info.json` document for an image and/or the server compliance level document. A client should never need to guess or let the server decide.
61+
* The `jpg` format must be supported at all compliance levels and thus applications requiring it can rely upon its availability.
6362
* Static image files on the web typically have file extensions that indicate the format, and there was never a clear use case for when a client would prefer content negotiation over expressing the format in the URI.
6463

65-
Servers should now return a 400 (Bad Request, if possible) or else a 404 (Not found) when an image request does not include a format suffix.
64+
Servers should now return a 400 (Bad Request) if possible, or else a 404 (Not Found) when an image request does not include a format suffix.
6665

6766
### Limited Error Response Code Requirements for Level 0
6867

69-
Level-0-compliant servers may always return a 404 (Not Found) error for any bad requests. While this is not brought out explicitly in the document, the RFC keyword describing when to return a 400 (Bad Request) response has been reduced to "should".
68+
Servers compliant at level 0 may always return a 404 (Not Found) error for any bad requests. While this is not brought out explicitly in the document, the RFC keyword describing when to return a 400 (Bad Request) response has been reduced to "should".
7069

7170
## Other Changes
7271

7372
### Added Canonical URI Form
7473

7574
There are potentially several ways to request the same image, and two cases arose in which it makes sense to have a canonical form of image request URI:
7675

77-
* A level-0-compliant server based on pre-made images on a file system needs to know whether to use percent or pixels and the directory names, specify width only, width and height, etc.
78-
* A level-2-compliant server may want to server may want to redirect to the canonical syntax for better cache performance.
76+
* A server compliant at level 0 based on pre-made images on a file system needs to know which URI form to use in order to avoid either failing to support applications or having to generate multiple files for the same image. For example, are the region and size best specified by percent or pixel dimensions or `full`?
77+
* A more capable server may redirect to the canonical syntax for better cache performance.
7978

8079
The canonical URI for an image may be specified in an HTTP Link Header with the attribute `rel=canonical`. See [Section 4.7 Canonical URI Syntax][canonical-uris] for details.
8180

@@ -85,21 +84,21 @@ The value of this property is always the URI `http://iiif.io/api/image` which pu
8584

8685
The `protocol` property is required at all levels of compliance.
8786

88-
### Drop Rotation to Level 2 Compliance
87+
### Drop Rotation from Level 1 Compliance
8988

9089
Rotation in multiples of 90 was previously a level 1 requirement. As this can be--and frequently is--handled in the browser via the HTML 5 `<canvas>` element or CSS instructions, the editors felt this was an unnecessary barrier to level 1 compliance.
9190

9291
### Added `sizes` property to Image Information document
9392

94-
Servers that do not support arbitrary size parameters for image requests may still wish make multiple sizes of an image available. The sizes that are available may be listed using the `w,h`syntax in the `sizes` property. Even when a server does support arbitrary resizing, it may be useful to report pre-cached or otherwise recommended sizes of an image, e.g. thumbnails.
93+
Servers that do not support arbitrary size parameters for image requests may still wish make multiple sizes of an image available. The sizes that are available may be listed using the `w,h` syntax in the `sizes` property. Even when a server does support arbitrary resizing, it may be useful to report pre-cached or otherwise recommended sizes of an image, e.g. thumbnails.
9594

9695
### Published JSON-LD Context
9796

98-
The [context document][context] for the info.json document was never published. It is now available.
97+
The [context document][context] for the `info.json` document was not published for version 1.1. It is now available.
9998

100-
### Support JSON-LD ContentType/Accept Header
99+
### Support JSON-LD Content-Type/Accept header
101100

102-
As transition to JSON-LD (since it is not fully supported by browsers), clients that favor the "application/ld+json" media type in the accept header of their request may receive this as the content-type of the response. Also note that it is recommended that the server include the context URI in a Link header of the response if the request was for for "application/json". See [Section 5][info-request] and the documents to which it links for further details.
101+
As transition to JSON-LD (since it is not fully supported by browsers), clients that favor the "application/ld+json" media type in the accept header of their request may receive this as the Content-Type of the response. Also note that it is recommended that the server include the context URI in a Link header of the response if the request was for for "application/json". See [Section 5][info-request] and the documents to which it links for further details.
103102

104103
[api-11]: /api/image/1.1/ "Image API 1.1"
105104
[api-compliance]: /api/image/2.0/#compliance-levels "Image API 6. Compliance Levels"

0 commit comments

Comments
 (0)