Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions source/_includes/links.md
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,8 @@
[org-rfc-7231-status]: https://tools.ietf.org/html/rfc7231#section-6 "HTTP 1.1, 6. Response Status Codes"
[org-rfc-7540]: https://tools.ietf.org/html/rfc7540 "HTTP/2"
[org-rfc-8259]: https://tools.ietf.org/html/rfc8259 "JSON RFC"
[org-rfc-7946]: https://datatracker.ietf.org/doc/html/rfc7946 "GeoJSON RFC"

[org-rs-terms]: http://rightsstatements.org/page/1.0/ "rightsstatements.org"
[org-semver]: http://semver.org/spec/v2.0.0.html "Semantic Versioning 2.0.0"
[org-w3c-activitystreams]: https://www.w3.org/TR/activitystreams-core/
Expand Down Expand Up @@ -317,7 +319,9 @@
<!-- Link definitions for Presentation API 4.0 model references -->
<!-- Generated by scripts/link_code_references.py -->

[prezi40-ldce]: {{ site.api_url | absolute_url }}/presentation/4.{{ site.data.apis.presentation.latest.minor }}/#json-ld-and-extensions "Linked Data Context and Extensions"

[prezi40-context-collisions]: {{ site.api_url | absolute_url }}/presentation/4.{{ site.data.apis.presentation.latest.minor }}/#term-collisions-between-contexts

[prezi-40-model-Agent]: {{ site.api_url | absolute_url }}/presentation/4.0/model/#Agent
[prezi-40-model-AmbientAudio]: {{ site.api_url | absolute_url }}/presentation/4.0/model/#AmbientAudio
Expand Down Expand Up @@ -409,6 +413,7 @@
[prezi-40-model-timeMode]: {{ site.api_url | absolute_url }}/presentation/4.0/model/#timeMode
[prezi-40-model-transform]: {{ site.api_url | absolute_url }}/presentation/4.0/model/#transform
[prezi-40-model-type]: {{ site.api_url | absolute_url }}/presentation/4.0/model/#type
[prezi-40-model-value]: {{ site.api_url | absolute_url }}/presentation/4.0/model/#value
[prezi-40-model-viewingDirection]: {{ site.api_url | absolute_url }}/presentation/4.0/model/#viewingDirection
[prezi-40-model-volume]: {{ site.api_url | absolute_url }}/presentation/4.0/model/#volume
[prezi-40-model-width]: {{ site.api_url | absolute_url }}/presentation/4.0/model/#width
Expand Down
2 changes: 1 addition & 1 deletion source/presentation/4.0/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -421,7 +421,7 @@ Manifest for the February 16, 1925 issue, with Ranges for table of contents:
**Key Points**
* Navigation between Manifests is managed via Collections, potentially in a hierarchy, which are each separate documents.
* Navigation within a single Manifest (beyond the default order of the Containers) is managed via Ranges in the [`structures`][prezi-40-model-structures] property.
* Further navigation, managed by the client, is possible via the [`navPlace`][[prezi-40-model-navPlace] and [`navDate`][prezi-40-model-navDate] properties. These are not semantic metadata, they are used by the client to generate navigation maps and timelines, respectively.
* Further navigation, managed by the client, is possible via the [`navPlace`][prezi-40-model-navPlace] and [`navDate`][prezi-40-model-navDate] properties. These are not semantic metadata, they are used by the client to generate navigation maps and timelines, respectively.
{: .callout}

__Definitions__<br/>
Expand Down
10 changes: 5 additions & 5 deletions source/presentation/4.0/model.md
Original file line number Diff line number Diff line change
Expand Up @@ -2013,7 +2013,7 @@ The value _MUST_ be an [XSD dateTime literal][org-w3c-xsd-datetime]. The value _

A geographic location that clients may use for navigation purposes when presenting the resource to the user in a map-based user interface. The location is identified using structured data, described below, with latitude and longitude based points or polygons. If the location is only textual, then the information should instead be included in the `metadata` property.

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.
The value of the property _MUST_ be a [GeoJSON][org-rfc-7946] Feature Collection containing one or more Features. 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.

* A Collection _MAY_ have the `navPlace` property.<br/>
Clients _MAY_ render `navPlace` on a Collection.
Expand Down Expand Up @@ -2232,9 +2232,9 @@ The organization or person is represented as an Agent resource.
* Agents _MUST_ have the `id` property, and its value _MUST_ be a string. The string _MUST_ be a URI that identifies the agent.
* Agents _MUST_ have the `type` property, and its value _MUST_ be `Agent`.
* Agents _MUST_ have the `label` property, and its value _MUST_ be a JSON object as described in the [languages][prezi40-languages] section.
* Agents _SHOULD_ have the `homepage` property, and its value _MUST_ be an array of JSON objects as described in the [homepage][prezi40-homepage] section.
* Agents _SHOULD_ have the `logo` property, and its value _MUST_ be an array of JSON objects as described in the [logo][prezi40-logo] section.
* Agents _MAY_ have the `seeAlso` property, and its value _MUST_ be an array of JSON objects as described in the [seeAlso][prezi40-seealso] section.
* Agents _SHOULD_ have the `homepage` property, and its value _MUST_ be an array of JSON objects as described in the [homepage][prezi-40-model-homepage] section.
* Agents _SHOULD_ have the `logo` property, and its value _MUST_ be an array of JSON objects as described in the [logo][prezi-40-model-logo] section.
* Agents _MAY_ have the `seeAlso` property, and its value _MUST_ be an array of JSON objects as described in the [seeAlso][prezi-40-model-seealso] section.

The value _MUST_ be an array of JSON objects, where each item in the array conforms to the structure of an Agent, as described above.

Expand Down Expand Up @@ -3306,7 +3306,7 @@ The JSON representation _MUST NOT_ include the `@graph` key at the top level. Th

There are some common terms used in more than one JSON-LD context document. Every attempt has been made to minimize these collisions, but some are inevitable. In order to know which specification is in effect at any given point, the class of the resource that has the property is the primary governing factor. Thus properties on Annotation based resources use the context from the [Web Annotation Data Model][org-w3c-webanno], whereas properties on classes defined by this specification use the IIIF Presentation API context's definition.

There is one property that is in direct conflict - the `label` property is defined by both and is available for every resource. The use of `label` in IIIF follows modern best practices for internationalization by allowing the language to be associated with the value using the language map construction [described above][prezi40-languages], also allowing multiple languages to be used. The Web Annotation Data Model uses it only for [Annotation Collections][prezi40-annocoll], and mandates the format is a string. For this property, the API overrides the definition from the Annotation model to ensure that labels can consistently be represented in multiple languages.
There is one property that is in direct conflict - the `label` property is defined by both and is available for every resource. The use of `label` in IIIF follows modern best practices for internationalization by allowing the language to be associated with the value using the language map construction [described above][prezi40-languages], also allowing multiple languages to be used. The Web Annotation Data Model uses it only for [Annotation Collections][prezi-40-model-AnnotationCollection], and mandates the format is a string. For this property, the API overrides the definition from the Annotation model to ensure that labels can consistently be represented in multiple languages.

__Incompatibility Warning__<br/>
The definition of `label` in the Web Annotation specification does not produce JSON conformant with the structure defined in this specification for languages. Given the absolute requirement for internationalized labels and the strong desire for consistently handling properties, the `label` property on Annotation model classes does not conform to the string requirement of the Web Annotation Data Model. This [issue has been filed with the W3C][github-webanno-437] and will hopefully be addressed in a future version of the standard.
Expand Down
Loading