-
Notifications
You must be signed in to change notification settings - Fork 56
Description
In 4.0, we are importing the annotation properties to IIIF as the 3d work requires a lot of extensions and processing rules.
This means that we need to define the requirements for relationships like body, target, motivation, source, and so on. Some are easy, but these four are very inconsistent in the way they're used in Annotation documents.
The consistent route for their values would be:
body and target MUST be an array of JSON objects. Each item MUST have the type property.
source MUST be a JSON object with id and type.
motivation MUST be an array of strings.
Following the "if it can ever have multiple values then it is always an array" rule, and similarly that if it can ever be a JSON object then it should always be a JSON object rather than a shortcut to the object's id as a string.
However this will break almost all 3.0 Manifests, especially for target.
There are several routes forward:
- We can remain completely lax with the definitions and allow whatever comes (string, object, array of strings and/or objects)
- We can make the consistent way SHOULD with a note that a future version will make it MUST
- We can make it MUST with a note to client implementers to please be lenient in accepting other values
- We can just make a clean break and say MUST