Skip to content

Commit 93b99de

Browse files
author
HackMD
committed
last changed at Oct 24, 2024 4:30 PM, pushed by Julie Winchester
1 parent 2ab23a2 commit 93b99de

File tree

1 file changed

+153
-46
lines changed

1 file changed

+153
-46
lines changed

Diff for: source/presentation/4.0/properties.md

+153-46
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,52 @@
11
# Vocabulary?
22

3+
## Resource Classes
4+
5+
* Collection
6+
* CollectionPage
7+
* Manifest
8+
* Containers
9+
* Timeline
10+
* Canvas
11+
* Scene
12+
* Content Resources
13+
* Range
14+
* Cameras
15+
* PerspectiveCamera
16+
* OrthographicCamera
17+
* Lights
18+
* AmbientLight
19+
* DirectionalLight
20+
* PointLight
21+
* SpotLight
22+
* Transforms
23+
* TranslateTransform
24+
* RotateTransform
25+
* ScaleTransform
26+
* Selectors
27+
* PointSelector
28+
* WktSelector (need both LineString Z and Polygon Z)
29+
* AudioContentSelector
30+
* VisualContentSelector
31+
* AnimationSelector
32+
* ImageApiSelector
33+
* Other Classes
34+
* Agent
35+
* Service
36+
* Value (used for `intensity`)
37+
38+
* Annotation Classes imported from WADM:
39+
* Annotation
40+
* AnnotationCollection
41+
* AnnotationPage
42+
* SpecificResource
43+
* FragmentSelector
44+
* SvgSelector
45+
* CssStyle
46+
* TextualBody
47+
* Choice
48+
49+
350
## Resource Properties
451

552
### Descriptive Properties
@@ -14,10 +61,10 @@ The value of the property _MUST_ be a JSON object, as described in the [language
1461
Clients _MUST_ render `label` on a Collection.
1562
* A Manifest _MUST_ have the `label` property with at least one entry.<br/>
1663
Clients _MUST_ render `label` on a Manifest.
17-
* A Canvas _SHOULD_ have the `label` property with at least one entry.<br/>
18-
Clients _MUST_ render `label` on a Canvas, and _SHOULD_ generate a `label` for Canvases that do not have them.
19-
* A content resource _MAY_ have the `label` property with at least one entry. If there is a Choice of content resource for the same Canvas, then they _SHOULD_ each have at least the `label` property with at least one entry.<br/>
20-
Clients _MAY_ render `label` on content resources, and _SHOULD_ render them when part of a Choice.
64+
* All Container types _SHOULD_ have the `label` property with at least one entry.<br/>
65+
Clients _MUST_ render `label` on Container types, and _SHOULD_ generate a `label` for Containers that do not have them.
66+
* All Content Resource types _MAY_ have the `label` property with at least one entry. If there is a Choice of Content Resource for the same Container, then they _SHOULD_ each have the `label` property with at least one entry.<br/>
67+
Clients _MAY_ render `label` on Content Resources, and _SHOULD_ render them when part of a Choice.
2168
* A Range _SHOULD_ have the `label` property with at least one entry. <br/>
2269
Clients _MUST_ render `label` on a Range.
2370
* An Annotation Collection _SHOULD_ have the `label` property with at least one entry.<br/>
@@ -40,8 +87,8 @@ The value of the `metadata` property _MUST_ be an array of JSON objects, where e
4087
Clients _MUST_ render `metadata` on a Collection.
4188
* A Manifest _SHOULD_ have the `metadata` property with at least one item.<br/>
4289
Clients _MUST_ render `metadata` on a Manifest.
43-
* A Canvas _MAY_ have the `metadata` property with at least one item.<br/>
44-
Clients _SHOULD_ render `metadata` on a Canvas.
90+
* All Container types _MAY_ have the `metadata` property with at least one item.<br/>
91+
Clients _SHOULD_ render `metadata` on Containers.
4592
* Other types of resource _MAY_ have the `metadata` property with at least one item.<br/>
4693
Clients _MAY_ render `metadata` on other types of resource.
4794

@@ -69,8 +116,8 @@ The value of the property _MUST_ be a JSON object, as described in the [language
69116
Clients _SHOULD_ render `summary` on a Collection.
70117
* A Manifest _SHOULD_ have the `summary` property with at least one entry.<br/>
71118
Clients _SHOULD_ render `summary` on a Manifest.
72-
* A Canvas _MAY_ have the `summary` property with at least one entry.<br/>
73-
Clients _SHOULD_ render `summary` on a Canvas.
119+
* All Container types _MAY_ have the `summary` property with at least one entry.<br/>
120+
Clients _SHOULD_ render `summary` on Containers.
74121
* Other types of resource _MAY_ have the `summary` property with at least one entry.<br/>
75122
Clients _MAY_ render `summary` on other types of resource.
76123

@@ -125,7 +172,7 @@ An organization or person that contributed to providing the content of the resou
125172
The organization or person is represented as an `Agent` resource.
126173

127174
* Agents _MUST_ have the `id` property, and its value _MUST_ be a string. The string _MUST_ be a URI that identifies the agent.
128-
* Agents _MUST_ have the `type` property, and its value _MUST_ be the string "Agent".
175+
* Agents _MUST_ have the `type` property, and its value _MUST_ be the string `Agent`.
129176
* Agents _MUST_ have the `label` property, and its value _MUST_ be a JSON object as described in the [languages][prezi30-languages] section.
130177
* Agents _SHOULD_ have the `homepage` property, and its value _MUST_ be an array of JSON objects as described in the [homepage][prezi30-homepage] section.
131178
* Agents _SHOULD_ have the `logo` property, and its value _MUST_ be an array of JSON objects as described in the [logo][prezi30-logo] section.
@@ -188,9 +235,9 @@ The value _MUST_ be an array of JSON objects, each of which _MUST_ have the `id`
188235
Clients _SHOULD_ render `thumbnail` on a Collection.
189236
* A Manifest _SHOULD_ have the `thumbnail` property with at least one item.<br/>
190237
Clients _SHOULD_ render `thumbnail` on a Manifest.
191-
* A Canvas _MAY_ have the `thumbnail` property with at least one item. A Canvas _SHOULD_ have the `thumbnail` property if there are multiple resources that make up the view.<br/>
192-
Clients _SHOULD_ render `thumbnail` on a Canvas.
193-
* A content resource _MAY_ have the `thumbnail` property with at least one item. Content resources _SHOULD_ have the `thumbnail` property with at least one item if it is an option in a Choice of resources.<br/>
238+
* All Container types _SHOULD_ have the `thumbnail` property with at least one item.<br/>
239+
Clients _SHOULD_ render `thumbnail` on Containers.
240+
* Content Resource types _MAY_ have the `thumbnail` property with at least one item. Content Resources _SHOULD_ have the `thumbnail` property with at least one item if it is an option in a Choice of resources.<br/>
194241
Clients _SHOULD_ render `thumbnail` on a content resource.
195242
* Other types of resource _MAY_ have the `thumbnail` property with at least one item.<br/>
196243
Clients _MAY_ render `thumbnail` on other types of resource.
@@ -222,8 +269,10 @@ The value _MUST_ be an [XSD dateTime literal][org-w3c-xsd-datetime]. The value _
222269
Clients _MAY_ render `navDate` on a Manifest.
223270
* A Range _MAY_ have the `navDate` property.<br/>
224271
Clients _MAY_ render `navDate` on a Range.
225-
* A Canvas _MAY_ have the `navDate` property.<br/>
226-
Clients _MAY_ render `navDate` on a Canvas.
272+
* All Container types _MAY_ have the `navDate` property.<br/>
273+
Clients _MAY_ render `navDate` on Containers.
274+
* Annotations _MAY_ have the `navDate` property.
275+
Clients _MAY_ render `navDate` on Annotations.
227276
* Other types of resource _MUST NOT_ have the `navDate` property.<br/>
228277
Clients _SHOULD_ ignore `navDate` on other types of resource.
229278

@@ -232,29 +281,77 @@ The value _MUST_ be an [XSD dateTime literal][org-w3c-xsd-datetime]. The value _
232281
{ "navDate": "2010-01-01T00:00:00Z" }
233282
```
234283

235-
##### placeholderCanvas
284+
##### navPlace
285+
286+
A geographic location that clients may use for navigation purposes when presenting the resource to the user in a map-based user interface.
287+
288+
The value of the property _MUST_ be a [GeoJSON Feature Collection](link) containing one or more [Features](link). The value _SHOULD_ be embedded and _MAY_ be a reference. Feature Collections referenced in the `navPlace` property _MUST_ have the `id` and `type` properties and _MUST NOT_ have the `features` property.
289+
290+
* A Collection _MAY_ have the `navPlace` property.<br/>
291+
Clients _MAY_ render `navPlace` on a Collection.
292+
* A Manifest _MAY_ have the `navPlace` property.<br/>
293+
Clients _MAY_ render `navPlace` on a Manifest.
294+
* A Range _MAY_ have the `navPlace` property.<br/>
295+
Clients _MAY_ render `navPlace` on a Range.
296+
* All Container types _MAY_ have the `navPlace` property.<br/>
297+
Clients _MAY_ render `navPlace` on Containers.
298+
* Annotations _MAY_ have the `navPlace` property.
299+
Clients _MAY_ render `navPlace` on Annotations.
300+
* Other types of resource _MUST NOT_ have the `navPlace` property.<br/>
301+
Clients _SHOULD_ ignore `navPlace` on other types of resource.
302+
303+
304+
{% include api/code_header.html %}
305+
```json-doc
306+
{
307+
"navPlace":{
308+
"id": "http://example.com/feature-collection/1",
309+
"type": "FeatureCollection",
310+
"features":[
311+
{
312+
"id": "http://example.com/feature/1",
313+
"type": "Feature",
314+
"properties":{},
315+
"geometry":{
316+
"type": "Point",
317+
"coordinates":[
318+
9.938,
319+
51.533
320+
]
321+
}
322+
}
323+
]
324+
}
325+
}
326+
```
327+
328+
329+
236330

237-
A single Canvas that provides additional content for use before the main content of the resource that has the `placeholderCanvas` property is rendered, or as an advertisement or stand-in for that content. Examples include images, text and sound standing in for video content before the user initiates playback; or a film poster to attract user attention. The content provided by `placeholderCanvas` differs from a thumbnail: a client might use `thumbnail` to summarize and navigate multiple resources, then show content from `placeholderCanvas` as part of the initial presentation of a single resource. A placeholder Canvas is likely to have different dimensions to those of the Canvas(es) of the resource that has the `placeholderCanvas` property.
238331

239-
Clients _MAY_ display the content of a linked placeholder Canvas when presenting the resource. When more than one such Canvas is available, for example if `placeholderCanvas` is provided for the currently selected Range and the current Manifest, the client _SHOULD_ pick the one most specific to the content. Publishers _SHOULD NOT_ assume that the placeholder Canvas will be processed by all clients. Clients _SHOULD_ take care to avoid conflicts between time-based media in the rendered placeholder Canvas and the content of the resource that has the `placeholderCanvas` property.
332+
##### placeholderContainer
240333

241-
The value _MUST_ be a JSON object with the `id` and `type` properties, and _MAY_ have other properties of Canvases. The value of `type` _MUST_ be the string `Canvas`. The object _MUST NOT_ have the `placeholderCanvas` property, nor the `accompanyingCanvas` property.
334+
A single Container that provides additional content for use before the main content of the resource that has the `placeholderContainer` property is rendered, or as an advertisement or stand-in for that content. Examples include images, text and sound standing in for video content before the user initiates playback; or a film poster to attract user attention. The content provided by `placeholderContainer` differs from a thumbnail: a client might use `thumbnail` to summarize and navigate multiple resources, then show content from `placeholderContainer` as part of the initial presentation of a single resource. A placeholder Container is likely to have different dimensions to those of the Container(s) of the resource that has the `placeholderContainer` property. A placeholder Container may be of a different type from the resource that has the `placeholderContainer` property. For example, a `Scene` may have a placeholder Container of type `Canvas`.
242335

243-
* A Collection _MAY_ have the `placeholderCanvas` property.<br/>
244-
Clients _MAY_ render `placeholderCanvas` on a Collection.
245-
* A Manifest _MAY_ have the `placeholderCanvas` property.<br/>
246-
Clients _MAY_ render `placeholderCanvas` on a Manifest.
247-
* A Canvas _MAY_ have the `placeholderCanvas` property.<br/>
248-
Clients _MAY_ render `placeholderCanvas` on a Canvas.
249-
* A Range _MAY_ have the `placeholderCanvas` property.<br/>
250-
Clients _MAY_ render `placeholderCanvas` on a Range.
251-
* Other types of resource _MUST NOT_ have the `placeholderCanvas` property.<br/>
252-
Clients _SHOULD_ ignore `placeholderCanvas` on other types of resource.
336+
Clients _MAY_ display the content of a linked placeholder Container when presenting the resource. When more than one such Container is available, for example if `placeholderContainer` is provided for the currently selected Range and the current Manifest, the client _SHOULD_ pick the one most specific to the content. Publishers _SHOULD NOT_ assume that the placeholder Container will be processed by all clients. Clients _SHOULD_ take care to avoid conflicts between time-based media in the rendered placeholder Container and the content of the resource that has the `placeholderContainer` property.
337+
338+
The value of `placeholderContainer` _MUST_ be a JSON object with the `id` and `type` properties. The value of `type` _MUST_ be a Container type. The JSON object _MAY_ have other properties valid for that Container type.
339+
340+
* A Collection _MAY_ have the `placeholderContainer` property.<br/>
341+
Clients _MAY_ render `placeholderContainer` on a Collection.
342+
* A Manifest _MAY_ have the `placeholderContainer` property.<br/>
343+
Clients _MAY_ render `placeholderContainer` on a Manifest.
344+
* All Container types _MAY_ have the `placeholderContainer` property.<br/>
345+
Clients _MAY_ render `placeholderContainer` on Container types.
346+
* A Range _MAY_ have the `placeholderContainer` property.<br/>
347+
Clients _MAY_ render `placeholderContainer` on a Range.
348+
* Other types of resource _MUST NOT_ have the `placeholderContainer` property.<br/>
349+
Clients _SHOULD_ ignore `placeholderContainer` on other types of resource.
253350

254351
{% include api/code_header.html %}
255352
``` json-doc
256353
{
257-
"placeholderCanvas": {
354+
"placeholderContainer": {
258355
"id": "https://example.org/iiif/1/canvas/placeholder",
259356
"type": "Canvas",
260357
"height": 1400,
@@ -263,31 +360,31 @@ The value _MUST_ be a JSON object with the `id` and `type` properties, and _MAY_
263360
}
264361
```
265362

266-
##### accompanyingCanvas
363+
##### accompanyingContainer
267364

268-
A single Canvas that provides additional content for use while rendering the resource that has the `accompanyingCanvas` property. Examples include an image to show while a duration-only Canvas is playing audio; or background audio to play while a user is navigating an image-only Manifest.
365+
A single Container that provides additional content for use while rendering the resource that has the `accompanyingContainer` property. Examples include an image to show while a duration-only Canvas is playing audio; or background audio to play while a user is navigating an image-only Manifest.
269366

270-
Clients _MAY_ display the content of an accompanying Canvas when presenting the resource. As with `placeholderCanvas` above, when more than one accompanying Canvas is available, the client _SHOULD_ pick the one most specific to the content. Publishers _SHOULD NOT_ assume that the accompanying Canvas will be processed by all clients. Clients _SHOULD_ take care to avoid conflicts between time-based media in the accompanying Canvas and the content of the resource that has the `accompanyingCanvas` property.
367+
Clients _MAY_ display the content of an accompanying Container when presenting the resource. As with `placeholderContainer` above, when more than one accompanying Container is available, the client _SHOULD_ pick the one most specific to the content. Publishers _SHOULD NOT_ assume that the accompanying Container will be processed by all clients. Clients _SHOULD_ take care to avoid conflicts between time-based media in the accompanying Container and the content of the resource that has the `accompanyingContainer` property.
271368

272-
The value _MUST_ be a JSON object with the `id` and `type` properties, and _MAY_ have other properties of Canvases. The value of `type` _MUST_ be the string `Canvas`. The object _MUST NOT_ have the `placeholderCanvas` property, nor the `accompanyingCanvas` property.
369+
The value of `accompanyingContainer` _MUST_ be a JSON object with the `id` and `type` properties. The value of `type` _MUST_ be a Container type. The JSON object _MAY_ have other properties valid for that Container type.
273370

274-
* A Collection _MAY_ have the `accompanyingCanvas` property.<br/>
275-
Clients _MAY_ render `accompanyingCanvas` on a Collection.
276-
* A Manifest _MAY_ have the `accompanyingCanvas` property.<br/>
277-
Clients _MAY_ render `accompanyingCanvas` on a Manifest.
278-
* A Canvas _MAY_ have the `accompanyingCanvas` property.<br/>
279-
Clients _MAY_ render `accompanyingCanvas` on a Canvas.
280-
* A Range _MAY_ have the `accompanyingCanvas` property.<br/>
281-
Clients _MAY_ render `accompanyingCanvas` on a Range.
282-
* Other types of resource _MUST NOT_ have the `accompanyingCanvas` property.<br/>
283-
Clients _SHOULD_ ignore `accompanyingCanvas` on other types of resource.
371+
* A Collection _MAY_ have the `accompanyingContainer` property.<br/>
372+
Clients _MAY_ render `accompanyingContainer` on a Collection.
373+
* A Manifest _MAY_ have the `accompanyingContainer` property.<br/>
374+
Clients _MAY_ render `accompanyingContainer` on a Manifest.
375+
* All Container types _MAY_ have the `accompanyingContainer` property.<br/>
376+
Clients _MAY_ render `accompanyingContainer` on Container types.
377+
* A Range _MAY_ have the `accompanyingContainer` property.<br/>
378+
Clients _MAY_ render `accompanyingContainer` on a Range.
379+
* Other types of resource _MUST NOT_ have the `accompanyingContainer` property.<br/>
380+
Clients _SHOULD_ ignore `accompanyingContainer` on other types of resource.
284381

285382
{% include api/code_header.html %}
286383
``` json-doc
287384
{
288-
"accompanyingCanvas": {
289-
"id": "https://example.org/iiif/1/canvas/accompany",
290-
"type": "Canvas",
385+
"accompanyingContainer": {
386+
"id": "https://example.org/iiif/1/timeline/accompany",
387+
"type": "Timeline",
291388
"duration": 180.0
292389
}
293390
}
@@ -329,6 +426,7 @@ The value _MUST_ be a string.
329426
| Class | Description |
330427
| ------------- | -------------------------------- |
331428
| `Dataset` | Data not intended to be rendered to humans directly |
429+
| `Abouty-Metadata` | Machine-readable _thing_ such as a linked art metadata JSON doc or a MARC record. |
332430
| `Image` | Two dimensional visual resources primarily intended to be seen, such as might be rendered with an &lt;img> HTML tag |
333431
| `Model` | A three (or more) dimensional model intended to be interacted with by humans |
334432
| `Sound` | Auditory resources primarily intended to be heard, such as might be rendered with an &lt;audio> HTML tag |
@@ -895,6 +993,12 @@ The value _MUST_ be an array of JSON objects. Each item _MUST_ have the `id` and
895993
}
896994
```
897995

996+
Common types of seeAlso:
997+
998+
| `Dataset` | Data not intended to be rendered to humans directly |
999+
| `Abouty-Metadata` | Machine-readable _thing_ such as a linked art metadata JSON doc or a MARC record. |
1000+
1001+
8981002
#### 3.3.2. Internal Links
8991003

9001004
##### partOf
@@ -911,6 +1015,9 @@ The value _MUST_ be an array of JSON objects. Each item _MUST_ have the `id` and
9111015
{ "partOf": [ { "id": "https://example.org/iiif/1", "type": "Manifest" } ] }
9121016
```
9131017

1018+
The resources referred to by the `accompanyingContainer` and `placeholderContainer` properties are `partOf` that referring Container.
1019+
1020+
9141021
##### start
9151022

9161023
A Canvas, or part of a Canvas, which the client _SHOULD_ show on initialization for the resource that has the `start` property. The reference to part of a Canvas is handled in the same way that Ranges reference parts of Canvases. This property allows the client to begin with the first Canvas that contains interesting content rather than requiring the user to manually navigate to find it.

0 commit comments

Comments
 (0)