diff --git a/source/_includes/links.md b/source/_includes/links.md index 1e0159daa..1ab6c5b62 100644 --- a/source/_includes/links.md +++ b/source/_includes/links.md @@ -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/ @@ -317,7 +319,9 @@ +[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 @@ -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 diff --git a/source/presentation/4.0/index.md b/source/presentation/4.0/index.md index 282565ac1..b2567ab82 100644 --- a/source/presentation/4.0/index.md +++ b/source/presentation/4.0/index.md @@ -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__
diff --git a/source/presentation/4.0/model.md b/source/presentation/4.0/model.md index af771fdd8..17853064a 100644 --- a/source/presentation/4.0/model.md +++ b/source/presentation/4.0/model.md @@ -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.
Clients _MAY_ render `navPlace` on a Collection. @@ -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. @@ -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__
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.