Skip to content

Commit 20b02dd

Browse files
committed
Remove scale and integration sections; 'Additional Features'
1 parent ee727d6 commit 20b02dd

2 files changed

Lines changed: 57 additions & 118 deletions

File tree

source/presentation/4.0/example/uc01_artwork.json

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -92,14 +92,6 @@
9292
]
9393
}
9494
],
95-
"rendering": [
96-
{
97-
"id": "https://iiif.wellcomecollection.org/pdf/b14658197",
98-
"type": "Text",
99-
"label": { "en":[ "View as PDF" ] },
100-
"format": "application/pdf"
101-
}
102-
],
10395
"seeAlso": [
10496
{
10597
"id": "https://api.wellcomecollection.org/catalogue/v2/works/nydjbrr7",

source/presentation/4.0/index.md

Lines changed: 57 additions & 110 deletions
Original file line numberDiff line numberDiff line change
@@ -410,6 +410,10 @@ The example demonstrates the use of the common descriptive properties [`label`][
410410
* The [`rights`][prezi-40-model-rights] property is always a single string value which is a URI.
411411
* Any resource can have a [`provider`][prezi-40-model-provider] property which a client can display to the user. This typically tells the user who the publisher is and how they might be contacted. The value of this property is an [Agent](model/#Agent).
412412
* The [`service`][prezi-40-model-service] property specifies a software application that a client might interact with to gain additional information or functionality, in this case, the IIIF Image API. Images in IIIF do not require an Image Service---we have included one here as an example, but do not include a service in the following image examples for brevity.
413+
* The [`seeAlso`][prezi-40-model-seeAlso] property links this Manifest to the catalogue record for the item it represents. In general, [`seeAlso`][prezi-40-model-seeAlso] links to any related _machine readable_ data. Clients can choose to make use of it if they recognise it by [`type`][prezi-40-model-type], [`format`][prezi-40-model-format] and [`profile`][prezi-40-model-profile], but it is more likely to be consumed by machines, for example a process harvesting IIIF Manifests could index the linked descriptive metadata.
414+
* The [`partOf`][prezi-40-model-partOf] property links to a IIIF Collection that contains a reference to this Manifest in its `items` property. The [`partOf`][prezi-40-model-partOf] property allows a Manifest to assert its place in any hierarchical relationship, such as an archival description, or a volume of a periodical, allowing the user (or machines) to navigate "up" the hierarchy and explore further.
415+
* The [`spatialScale`][prezi-40-model-spatialScale] property on the Canvas provides a corresponding real-world scale for a unit of the Canvas coordinate system, allowing clients to provide scale information to users, for example by an on-screen virtual ruler. If presenting more than one Canvas together, a client can use [`spatialScale`][prezi-40-model-spatialScale] to show the Canvases correctly sized relative to one another.
416+
413417
{: .callout}
414418

415419
__Definitions__<br/>
@@ -429,6 +433,7 @@ This example is a Manifest with multiple Canvases, each of which represents a pa
429433
* Canvas labels are not required, but are recommended when a Manifest has more than one Canvas in order to provide visual labels for each Canvas for navigation within the IIIF client UI.
430434
* As the Presentation API is about displaying content, not describing it semantically, many of the properties are hints to the client as to how to render the resources, such as `behavior`, `viewingDirection` and `start`, or pointers to other resources that also render the content such as `rendering`.
431435
* The `requiredStatement` property is often used for a rights or legal statement, however can be used for any message that the client _MUST_ render. There can only be one `requiredStatement` to avoid overloading the UI with dozens of popups that need to be closed.
436+
* The [`rendering`][prezi-40-model-rendering] property provides an alternative representation of the Manifest, in this case a PDF. Clients would typically show links to any `rendering` properties of resources such as Canvases or Manifests, making them available for download.
432437
{: .callout}
433438

434439
__Definitions__<br/>
@@ -1391,101 +1396,82 @@ Interactive examples are provided as recipes in the [IIIF Cookbook][annex-cookbo
13911396
While all Annotation Page [`items`][prezi-40-model-items] are inherently ordered, an Annotation Page with the [`behavior`][prezi-40-model-behavior] "sequence" is explicitly a narrative, and clients should prevent (dissuade) users from jumping about - the annotations, and the effects of them _activating_ other contents of the Container, are intended to be experienced in order and individually. Normally, a client might display all the comments in an Annotation Page in a sidebar so they are all visible in the UI, but for an Annotation Page with [`behavior`][prezi-40-model-behavior] "sequence" only show the currently active annotation text, and next and previous UI.
13921397

13931398

1399+
# Additional Features
13941400

1395-
# FROM HERE TO MERGE WITH PREVIOUS OR NEW?
1396-
1397-
1398-
## Conveying Physical Dimensions
1399-
1400-
In many cases, the dimensions of a Canvas, or the pixel density of a photograph, are not necessarily related to a real-world size of the object they show. A large wall painting and a tiny miniature may both be conveyed by 20 megapixel source images on a 4000 by 3000 unit Canvas. But it can be important to know how big something is or if there is a relationship between pixel density and physical length, especially when comparing objects together. Each pixel in an image may correspond precisely to a physical area, allowing measurement of real world distances from the image. A scanned 3D model may be constructed such that each 3D coordinate unit corresponds to one meter of physical distance.
1401-
1402-
The [`spatialScale`][prezi-40-model-spatialScale] property of a Canvas or Scene provides a corresponding real-world scale for a unit of the Canvas or Scene coordinate system, allowing clients to provide scale information to users, for example by an on-screen virtual ruler. In a 2-up viewer, a client could scale two views to convey the true relative sizes of two objects.
1403-
1404-
The value of [`spatialScale`][prezi-40-model-spatialScale] is a [Quantity][prezi-40-model-Quantity] that has a unit of length for its `unit` property. This specification defines only one length unit, "m", i.e., meters, though others may be defined externally as an [extension][prezi30-ldce]. If source size metadata is machine readable (or parse-able) in other measurement systems (e.g., feet and inches) then it should be converted to meters for use in [`spatialScale`][prezi-40-model-spatialScale]. Publishers may wish to present the original given measure (e.g., from catalogue metadata) in a [`metadata`][prezi-40-model-metadata] field for context.
1405-
1406-
The Presentation API also offers a corresponding [`temporalScale`][prezi-40-model-temporalScale] property for the [`duration`][prezi-40-model-duration] dimension of a Container, when 1 second in the Container does not correspond to 1 second of real time. This is useful for speeded-up or slowed-down audio or video.
1407-
1408-
An extreme example of both physical dimension properties together is a Canvas showing an animation of continental drift over the course of Earth history, where the spatialScale could convey that each Canvas unit is several thousand meters, and each second of the Canvas [`duration`][prezi-40-model-duration] is several million years.
1409-
1410-
1411-
1412-
## Integration
1401+
## Accessibility
14131402

1414-
While a IIIF Manifest carries the information required to present a resource on the web, it is unlikely to be the only resource of interest to either human or machine consumers. IIIF provides properties to link to other resources and services. The linked resources might be made directly available to the user by opening links or downloading files in a user interface, or they may be loaded by machines when reading IIIF Manifests to gather further information (for example, to build a search index).
1403+
Some IIIF resources have associated resources, such as closed-caption files for video, audio descriptions for images, or tactile graphics for visual materials, that improve access to the content for a wider range of users. These linked resources play a specific accessibility-related role relative to the resource they describe or supplement. See [A/V Use Case 5: Movie with subtitles](#use-case-5-movie-with-subtitles) above.
14151404

1416-
### Linked resources
1405+
IIIF uses the `provides` property on supplementing annotations to define the specific accessibility functionality that a linked resource enables for its target, describing why and how a client might use it rather than what the resource is by type or format. For example, a text file linked from a video might provide `closedCaptions`, or an audio file associated with a Canvas might provide an `audioDescription`.
14171406

1418-
In the following example, the Manifest represents an artwork. The Manifest links to a catalogue record via the [`seeAlso`][prezi-40-model-seeAlso] property, which is intended for machine-readable resources. The [`homepage`][prezi-40-model-homepage] property links to the museum's web page about the painting, and is intended for humans. A viewer displays the latter link for the user to click on, but is unlikely to display the former (the user would just see the JSON at the other end).
1407+
The value of `provides` is an array of strings, taken from the [IIIF Registry of Accessibility Values][schema-accessibility].
14191408

1420-
```
1421-
artwork with seeAlso, rendering, partOf (link to ../c19-french-painting or something)
14221409

1423-
(maybe the seeAlso is to a linked art description)
1410+
```json
1411+
"annotations": [
1412+
{
1413+
"id": "https://example.org/iiif/presentation/examples/manifest-with-movie/subtitles",
1414+
"type": "AnnotationPage",
1415+
"items": [
1416+
{
1417+
"id": "https://example.org/iiif/presentation/examples/manifest-with-movie/subtitles/anno",
1418+
"type": "Annotation",
1419+
"motivation": ["supplementing"],
1420+
"provides": [ "alternativeText" ],
1421+
"body": {...},
1422+
"target": {
1423+
"id": "https://example.org/iiif/presentation/examples/manifest-with-movie/canvas",
1424+
"type": "Canvas"
1425+
}
1426+
}
1427+
]
1428+
}
1429+
]
14241430
```
14251431

1426-
There is one Canvas, and it has a [`rendering`][prezi-40-model-rendering] property linking to a single high resolution tiff file. This link is for human consumers and would typically be displayed as a download option.
1427-
1428-
The Manifest also has a [`partOf`][prezi-40-model-partOf] property that links to several IIIF Collections that contain a reference to it in their `items` properties. The [`partOf`][prezi-40-model-partOf] property allows a Manifest to assert its place in any hierarchical relationship, such as an archival description, or a volume of a periodical, allowing the user (or machines) to navigate "up" the hierarchy and explore further.
1429-
1430-
Another common use of [`rendering`][prezi-40-model-rendering] is at the Manifest level, to download a single resource that represents the entire Manifest. For example, the Manifest for a 100-page printed book has 100 canvases, which generate a paged user experience in a viewer. The publisher also links to a PDF representation, a plain text representation, and an ePub representation via the `rendering` property - all representations that a user could download and use offline. Each Canvas could also link to a single text file of the text of that page.
1432+
**Key Points**
1433+
* The `provides` property is placed on the annotation and not on the target of the annotation.
1434+
* The property is primarily used to define accessibility features, but can be used to define other types of functionality, such as `transcript`.
1435+
{: .callout}
14311436

1432-
```jsonc
1433-
{
1434-
"id": "https://example.com/books/1",
1435-
"type": "Manifest",
1436-
"label": { "en": ["Book1"]},
1437-
"items": [ {} ], // Canvases omitted
1438-
"rendering": [
1439-
{
1440-
"id": "https://example.com/books/1.pdf",
1441-
"label": { "en": ["PDF of Book1, with hi-res images and searchable and selectable text (large!)"]},
1442-
"type": "Text",
1443-
"format": "application/pdf",
1444-
"fileSize": 132465987
1445-
},
1446-
{
1447-
"id": "https://example.com/books/1.txt",
1448-
"label": { "en": ["Plain text of Book1"]},
1449-
"type": "Text",
1450-
"format": "text/plain",
1451-
"fileSize": 46004
1452-
},
1453-
{
1454-
"id": "https://example.com/books/1.epub",
1455-
"label": { "en": ["EPub of Book1"]},
1456-
"type": "Text",
1457-
"format": "application/epub+zip",
1458-
"profile": "https://www.w3.org/TR/epub-33/",
1459-
"fileSize": 7845277
1460-
}
1461-
]
1462-
}
1463-
```
1437+
__Definitions__<br/>
1438+
Properties: [provides](model/#provides)
1439+
{: .note}
14641440

1465-
This example also shows how the [`fileSize`][prezi-40-model-fileSize] property can give useful information to a user when deciding what they want to download.
14661441

1467-
### Services
1442+
## Services
14681443

14691444
In many of the examples in this specification an image resource has an associated [IIIF Image API][image-api] Service. This is the most common use of [`service`][prezi-40-model-service] in IIIF, but other types of service are defined by IIIF specifications or available as extensions. Rather than just offer the link for download, the client is expected to interact with the service on the user's behalf. For the Image API, this usually means generating multiple requests for image tiles at the appropriate zoom level. For the [IIIF Search API][search-api], this means accepting user query terms, sending them to the search service endpoint, and rendering the results for further interaction (typically navigation to the result location within the Manifest).
14701445

14711446
Further IIIF Services are provided by the [IIIF Authorization Flow API][auth-stable-version], which provides endpoints for a client to learn about a user's current access to a resource, and guide them through the publisher's access control arrangements if they do not have permission, so that they can (if authorised) acquire whatever credentials the publisher requires.
14721447

14731448
Ad hoc third party services can be developed for specific needs (with no expectation that a general-purpose IIIF client would know what to do with them).
14741449

1475-
### Content State
1450+
1451+
## Content State
14761452

14771453
Links to resources and services build up a web of linked _*content*_ for human and machine consumers to interact with. The [IIIF Content State API][contenstate-stable-version] defines mechanisms for IIIF software implementations to exchange references to this content, including arbitrarily fine-grained pointers into large IIIF resources. A Content State is simply a fragment of the IIIF Presentation API, wrapped in a _Content State Annotation_, with enough information for software receiving that fragment to load it and (typically) direct the user's attention to the referenced point. A bookmark or citation could be passed between users via save and load functionality in viewers that understand Content State.
14781454

1455+
```json
1456+
{
1457+
"@context": "http://iiif.io/api/presentation/4/context.json",
1458+
"id": "https://example.org/import/1",
1459+
"type": "Annotation",
1460+
"motivation": ["contentState"],
1461+
"target": {
1462+
"id": "https://example.org/object1/canvas7#xywh=1000,2000,1000,2000",
1463+
"type": "Canvas",
1464+
"partOf": [{
1465+
"id": "https://example.org/object1/manifest",
1466+
"type": "Manifest"
1467+
}]
1468+
}
1469+
}
14791470
```
1480-
(region of a Canvas that is partOf a Manifest)
1481-
```
1482-
1483-
1484-
## Style
14851471

1486-
### Rotation
1472+
## Rotation of Image Resources
14871473

1488-
An image might not be correctly aligned with the Canvas, and require rotation as it is painted. In the following example, the image is painted with a 90-degree rotation. This example uses the ImageApiSelector to convey the number of degrees of the rotation. As this particular image has an image service, the client can use the Image API to request an image that has already been rotated on the server, or it can use the information in the ImageApiSelector to rotate the image itself.
1474+
An image might not be correctly aligned with the Canvas, and require rotation as it is painted. In the following example, the image is painted with a 90-degree rotation. This example uses the [`ImageApiSelector`](model/#ImageApiSelector) to convey the number of degrees of the rotation. As this particular image has an image service, the client can use the Image API to request an image that has already been rotated on the server, or it can use the information in the ImageApiSelector to rotate the image itself. Use of the ImageApiSelector does not require the presence of an image service.
14891475

14901476
```json
14911477
{
@@ -1517,49 +1503,10 @@ An image might not be correctly aligned with the Canvas, and require rotation as
15171503
"type": "Canvas"
15181504
}
15191505
}
1520-
15211506
```
15221507

15231508

1524-
## Accessibility
1525-
1526-
Some IIIF resources have associated resources, such as closed-caption files for video, audio descriptions for images, or tactile graphics for visual materials, that improve access to the content for a wider range of users. These linked resources play a specific accessibility-related role relative to the resource they describe or supplement. See [A/V Use Case 5: Movie with subtitles](#use-case-5-movie-with-subtitles) above.
15271509

1528-
IIIF uses the `provides` property on supplementing annotations to define the specific accessibility functionality that a linked resource enables for its target, describing why and how a client might use it rather than what the resource is by type or format. For example, a text file linked from a video might provide `closedCaptions`, or an audio file associated with a Canvas might provide an `audioDescription`.
1529-
1530-
The value of `provides` is an array of strings, taken from the [IIIF Registry of Accessibility Values][schema-accessibility].
1531-
1532-
1533-
```json
1534-
"annotations": [
1535-
{
1536-
"id": "https://example.org/iiif/presentation/examples/manifest-with-movie/subtitles",
1537-
"type": "AnnotationPage",
1538-
"items": [
1539-
{
1540-
"id": "https://example.org/iiif/presentation/examples/manifest-with-movie/subtitles/anno",
1541-
"type": "Annotation",
1542-
"motivation": ["supplementing"],
1543-
"provides": [ "alternativeText" ],
1544-
"body": {...},
1545-
"target": {
1546-
"id": "https://example.org/iiif/presentation/examples/manifest-with-movie/canvas",
1547-
"type": "Canvas"
1548-
}
1549-
}
1550-
]
1551-
}
1552-
]
1553-
```
1554-
1555-
**Key Points**
1556-
* The `provides` property is placed on the annotation and not on the target of the annotation.
1557-
* The property is primarily used to define accessibility features, but can be used to define other types of functionality, such as `transcript`.
1558-
{: .callout}
1559-
1560-
__Definitions__<br/>
1561-
Properties: [provides](model/#provides)
1562-
{: .note}
15631510

15641511
# Appendices
15651512

0 commit comments

Comments
 (0)