diff --git a/annotation-model/DG-input/anno00.json b/annotation-model/DG-input/anno00.json new file mode 100644 index 0000000..3f3de0d --- /dev/null +++ b/annotation-model/DG-input/anno00.json @@ -0,0 +1,60 @@ +{ + "@context": [ + "http://www.w3.org/ns/anno.jsonld", + { + "sc": "http://iiif.io/api/presentation/2#", + "wc": "http://wellcomecollection.org/w3c-anno-placeholder#", + "naming": "wc:naming" + } + ], + "id": "http://wellcomecollection.org/annotations/sleep-stories/story-8", + "type": "Annotation", + "body": [ + { + "type": "Composite", + "items": [ + { + "type": "TextualBody", + "purpose": "describing", + "value": "When I was younger I would talk a lot in my sleep. Once I answered a call and talked for a long time and to this day don't know who it was or remember it." + }, + { + "id": "http://wellcomecollection.org/quilt/assets/story-8.jpg", + "type": "Image" + }, + { + "id": "http://wellcomecollection.org/quilt/assets/story-8.webm", + "type": "Video" + } + ] + }, + { + "type": "TextualBody", + "purpose": "tagging", + "value": "Sleep talking", + "creator": "Jenn" + }, + { + "type": "TextualBody", + "purpose": "tagging", + "value": "Childhood", + "creator": "Russell" + }, + { + "type": "TextualBody", + "purpose": "tagging", + "value": "Talk", + "creator": "Russell" + } + ], + "target": { + "source": "http://wellcomecollection.org/iiif/quilt/canvas0", + "type": "sc:Canvas", + "within": "http://wellcomecollection.org/iiif/quilt/manifest", + "sc:naturalAngle": 47, + "selector": { + "type": "SvgSelector", + "value": "" + } + } +} \ No newline at end of file diff --git a/annotation-model/DG00.json b/annotation-model/DG00.json new file mode 100644 index 0000000..ebb0fb1 --- /dev/null +++ b/annotation-model/DG00.json @@ -0,0 +1,358 @@ +{ + "results": [ + { + "test": "/annotation-model/annotations/annotationMusts-manual.html", + "subtests": [ + { + "name": "1:1 Implements **_@context_ key** and '**http://www.w3.org/ns/anno.jsonld**' is **a value of _@context_** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:2 Implements **Annotation _id_ key** which has a **single value** that is a **string of format uri** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:3 Implements **Annotation _type_ key** and '**Annotation**' is **a value of _type_** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:4 Implements **_target_ key** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:5 Each **_target_** is one of a **string of format uri**, an **External Web Resource**, a **Choice** or **Set**, or a **Specific Resource** - [model 3.2](https://www.w3.org/TR/annotation-model/#bodies-and-targets), [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:6 Annotation has a **_body_ key**, or a **_bodyValue_ key**, or **neither**, but **NEVER both** - [model 3.2.5](https://www.w3.org/TR/annotation-model/#string-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:7 If present, each **_body_** is one of a **string of format uri**, an **External Web Resource**, an **Embedded Textual Body**, a **Choice** or **Set**, or a **Specific Resource** - [model 3.2](https://www.w3.org/TR/annotation-model/#bodies-and-targets), [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:8 If present the **_bodyValue_ key** has a **single value** that is a **string** - [model 3.2.5](https://www.w3.org/TR/annotation-model/#string-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:9 If present the Annotation-level **_created_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:10 If present the Annotation-level **_modified_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:11 If present the Annotation-level **_generated_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:12 If present the Annotation-level **_rights_ key** has values that are all **strings of format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:13 If present the Annotation-level **_canonical_ key** has a **single value** that is a **string of format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:14 If present the Annotation-level **_via_ key** has values that are all **strings of format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:15 If present as a body or body/source property, the **_textDirection_ key** has a **single value** which is **one of 'ltr', 'rtl', 'auto'** - [model 3.2.1](https://www.w3.org/TR/annotation-model/#external-web-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:16 If present all body-level or body/source-level **_created_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:17 If present all body-level or body/source-level **_modified_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:18 If present all body-level or body/source-level **_rights_ key values** are strings of **format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:19 If present all body-level or body/source-level **_canonical_ keys** have a **single value** which is a string of **format uri** - [model 3.3.](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:20 If present all body-level or body/source-level **_via_ key values** are strings of **format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:21 If an **External Web Resource** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:22 If an **External Web Resource** is a body, it does NOT have an **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:23 If a **Choice or Set** is a body, it does NOT have a **_value_ key** - [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:24 If a **Choice or Set** is a body, it does NOT have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:25 If a **Choice or Set** is a body, it does NOT have a **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:26 If an **Embedded Textual Body** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:27 If an **Embedded Textual Body** is a body, it does NOT have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:28 If a **Specific Resource** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:29 If a **Specific Resource** is a body, it does NOT have a **_value_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:30 If present as a target or target/source property, the **_textDirection_ key** has a **single value** which is **one of 'ltr', 'rtl', 'auto'** - [model 3.2.1](https://www.w3.org/TR/annotation-model/#external-web-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:31 If present all target-level or target/source-level **_created_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:32 If present all target-level or target/source-level **_modified_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:33 If present all target-level or target/source-level **_rights_ key values** are strings of **format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:34 If present all target-level or target/source-level **_canonical_ keys** have a **single value** which is a string of **format uri** - [model 3.3.](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:35 If present all target-level or target/source-level **_via_ key values** are strings of **format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:36 If an **External Web Resource** is a target, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:37 If an **External Web Resource** is a target, it does NOT have an **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:38 If a **Choice or Set** is a target, it does NOT have a **_value_ key** - [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-targ)", + "status": "PASS", + "message": null + }, + { + "name": "1:39 If a **Choice or Set** is a target, it does not have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:40 If a **Choice or Set** is a target, it does NOT have a **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:41 If a **Specific Resource Target** is a target, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:42 If a **Specific Resource** is a target, it does NOT have a **_value_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:43 Neither **target** Resources nor target Choice or Set items have a **_type_ key** which includes a value of **TextualBody** [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:44 If present **Specific Resource _selector_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'FragmentSelector', 'CssSelector', 'XPathSelector', 'TextQuoteSelector', 'TextPositionSelector', 'DataPositionSelector', 'SvgSelector', 'RangeSelector'** - [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:45 If present **Specific Resource _state_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'TimeState' or 'HttpRequestState'** - [model 4.3](https://www.w3.org/TR/annotation-model/#states)", + "status": "PASS", + "message": null + }, + { + "name": "1:46 If present **Specific Resource _state_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'TimeState' or 'HttpRequestState'** - [model 4.3](https://www.w3.org/TR/annotation-model/#states)", + "status": "PASS", + "message": null + }, + { + "name": "1:47 If any **Specific Resource _styleClass_ keys** are present, a **_stylesheet_ key** (a key of Annotation) with a **single value** is also present [model 4.4](https://www.w3.org/TR/annotation-model/#styles)", + "status": "PASS", + "message": null + }, + { + "name": "1:48 If present all **Selectors of _type_ FragmentSelector, CssSelector, or XPathSelector** have a **_value_ key** with a **single value** - [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:49 If present all **Selectors of _type_ TextQuoteSelector** have an **_exact_ key** with a **single value** - [model 4.2.4](https://www.w3.org/TR/annotation-model/#text-quote-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:50 If present all **Selectors of _type_ TextPositionSelector or DataPositionSelector** have both a **_start_ key** and an **_end_ key**, each with a **single non-negative integer value** [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:51 If present all **Selectors of _type_ SvgSelector** have either a **_value_ key** or an **_id_ key** with a **single value** of format uri [model 4.2.7](https://www.w3.org/TR/annotation-model/#svg-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:52 If present all **Selectors of _type_ RangeSelector** have both a **_startSelector_ key** and an **_endSelector_ key**, each with a **single value** which is a **Selector** - [model 4.2.8](https://www.w3.org/TR/annotation-model/#range-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:53 If present all **States of _type_ TimeState** each have either (but not both) a **_souceDate_ key** or paired **_sourceDateStart_ and _sourceDateEnd_ keys,** each of which is a **single value** of **format date-time**- [model 4.3.1](https://www.w3.org/TR/annotation-model/#time-state)", + "status": "PASS", + "message": null + }, + { + "name": "1:54 If present all **States of _type_ HttpRequestState** have a **_value_ key** - [model 4.3.2](https://www.w3.org/TR/annotation-model/#request-header-state)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + }, + { + "test": "/annotation-model/annotations/annotationOptionals-manual.html", + "subtests": [ + { + "name": "1:13 Implements **_body_ key** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:20 Implements **body _type_ key** with one or more values each of which is drawn from the **model's list of resource classes** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:26 Implements **body _purpose_ key** with one or more values are each drawn from **model's list of Motivations** [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:30 Implements **External Web Resource** with **_id_ key** as a body of the Annotation [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:31 Implements **Embedded Textual Body** with **_value_ key** as a body of the Annotation [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:32 Implements **Embedded Textual Body _type_ key** which includes a value of **TextualBody** [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:34 Implements **Choice or Set** with type and items key as a body - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:37 Implements **Composite** with **_type_ and _items_ keys** as a body of the Annotation [model 3.2.8](https://www.w3.org/TR/annotation-model/#sets-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:55 Implements **External Web Resource** with **_id_ key** as a target of the Annotation [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:62 Implements **Specific Resource** with **_source_ and at least one of _purpose, selector, state, style, renderedVia, scope_ keys** as a target of the Annotation [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:63 Implements **Specific Resource _refinedBy_ key** [model 4.2.9](https://www.w3.org/TR/annotation-model/#refinement-of-selection), [model 4.3.3](https://www.w3.org/TR/annotation-model/#refinement-of-state)", + "status": "PASS", + "message": null + }, + { + "name": "1:67 Implements **Specific Resource Selector** - [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:77 Implements **Specific Resource SVG Selector** - [model 4.2.7](https://www.w3.org/TR/annotation-model/#svg-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:79 Implements **Specific Resource State** - [model 4.3](https://www.w3.org/TR/annotation-model/#states)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + } + ] +} diff --git a/annotation-model/EF-input/anno11.json b/annotation-model/EF-input/anno11.json new file mode 100644 index 0000000..45a7559 --- /dev/null +++ b/annotation-model/EF-input/anno11.json @@ -0,0 +1,19 @@ +{ + "@context": "http://www.w3.org/ns/anno.jsonld", + "id": "http://data.europeana.eu/annotations/1", + "type": "Annotation", + "created": "2015-03-10T14:08:07Z", + "creator": { + "type": "Person", + "name": "John Smith" + }, + "generated": "2015-04-01T09:00:00Z", + "generator": { + "type": "Software", + "name": "HistoryPin", + "homepage": "https://www.historypin.org/" + }, + "motivation": "tagging", + "bodyValue": "MyTag", + "target": "http://data.europeana.eu/item/09102/_UEDIN_214" +} \ No newline at end of file diff --git a/annotation-model/EF-input/anno12.json b/annotation-model/EF-input/anno12.json new file mode 100644 index 0000000..66b4f65 --- /dev/null +++ b/annotation-model/EF-input/anno12.json @@ -0,0 +1,23 @@ +{ + "@context": "http://www.w3.org/ns/anno.jsonld", + "id": "http://data.europeana.eu/annotations/1", + "type": "Annotation", + "created": "2015-03-10T14:08:07Z", + "creator": { + "type": "Person", + "name": "John Smith" + }, + "generated": "2015-04-01T09:00:00Z", + "generator": { + "type": "Software", + "name": "HistoryPin", + "homepage": "https://www.historypin.org/" + }, + "motivation": "tagging", + "body": { + "type": "TextualBody", + "text": "MyTag", + "language": "en" + }, + "target": "http://data.europeana.eu/item/09102/_UEDIN_214" +} \ No newline at end of file diff --git a/annotation-model/EF-input/anno13.json b/annotation-model/EF-input/anno13.json new file mode 100644 index 0000000..3223dce --- /dev/null +++ b/annotation-model/EF-input/anno13.json @@ -0,0 +1,19 @@ +{ + "@context": "http://www.w3.org/ns/anno.jsonld", + "id": "http://data.europeana.eu/annotations/1", + "type": "Annotation", + "created": "2015-03-10T14:08:07Z", + "creator": { + "type": "Person", + "name": "John Smith" + }, + "generated": "2015-04-01T09:00:00Z", + "generator": { + "type": "Software", + "name": "HistoryPin", + "homepage": "https://www.historypin.org/" + }, + "motivation": "tagging", + "body": "http://sws.geonames.org/2988507", + "target": "http://data.europeana.eu/item/09102/_UEDIN_214" +} \ No newline at end of file diff --git a/annotation-model/EF-input/anno14.json b/annotation-model/EF-input/anno14.json new file mode 100644 index 0000000..142bb73 --- /dev/null +++ b/annotation-model/EF-input/anno14.json @@ -0,0 +1,27 @@ +{ + "@context": "http://www.w3.org/ns/anno.jsonld", + "id": "http://data.europeana.eu/annotations/1", + "type": "Annotation", + "created": "2015-03-10T14:08:07Z", + "creator": { + "type": "Person", + "name": "John Smith" + }, + "generated": "2015-04-01T09:00:00Z", + "generator": { + "type": "Software", + "name": "HistoryPin", + "homepage": "https://www.historypin.org/" + }, + "motivation": "tagging", + "body": { + "@context": "http://www.europeana.eu/schemas/context/entity.jsonld", + "type": "Place", + "prefLabel": { + "en": "A label for the location, e.g. an address or place name" + }, + "lat": "48.85341", + "long": "2.3488" + }, + "target": "http://data.europeana.eu/item/09102/_UEDIN_214" +} \ No newline at end of file diff --git a/annotation-model/EF-input/anno21.json b/annotation-model/EF-input/anno21.json new file mode 100644 index 0000000..f47fc41 --- /dev/null +++ b/annotation-model/EF-input/anno21.json @@ -0,0 +1,21 @@ +{ + "@context": "http://www.w3.org/ns/anno.jsonld", + "id": "http://data.europeana.eu/annotations/1", + "type": "Annotation", + "created": "2015-03-10T14:08:07Z", + "creator": { + "type": "Person", + "name": "John Smith" + }, + "generated": "2015-04-01T09:00:00Z", + "generator": { + "type": "Software", + "name": "HistoryPin", + "homepage": "https://www.historypin.org/" + }, + "motivation": "linking", + "target": [ + "http://data.europeana.eu/item/09102/_UEDIN_214", + "http://data.europeana.eu/item/09102/_RMAH_119385_NL" + ] +} \ No newline at end of file diff --git a/annotation-model/EF-input/anno22.json b/annotation-model/EF-input/anno22.json new file mode 100644 index 0000000..73299ac --- /dev/null +++ b/annotation-model/EF-input/anno22.json @@ -0,0 +1,28 @@ +{ + "@context": "http://www.w3.org/ns/anno.jsonld", + "id": "http://data.europeana.eu/annotations/1", + "type": "Annotation", + "created": "2015-03-10T14:08:07Z", + "creator": { + "type": "Person", + "name": "John Smith" + }, + "generated": "2015-04-01T09:00:00Z", + "generator": { + "type": "Software", + "name": "HistoryPin", + "homepage": "https://www.historypin.org/" + }, + "motivation": "linking", + "body": { + "@graph": { + "@context": "http://www.europeana.eu/schemas/context/edm.jsonld", + "id": "http://data.europeana.eu/item/09102/_UEDIN_214", + "isNextInSequence": "http://data.europeana.eu/item/09102/_RMAH_119385_NL" + } + }, + "target": [ + "http://data.europeana.eu/item/09102/_UEDIN_214", + "http://data.europeana.eu/item/09102/_RMAH_119385_NL" + ] +} \ No newline at end of file diff --git a/annotation-model/EF-input/anno23.json b/annotation-model/EF-input/anno23.json new file mode 100644 index 0000000..6254ccc --- /dev/null +++ b/annotation-model/EF-input/anno23.json @@ -0,0 +1,29 @@ +{ + "@context": "http://www.w3.org/ns/anno.jsonld", + "id": "http://data.europeana.eu/annotations/1", + "type": "Annotation", + "created": "2015-03-10T14:08:07Z", + "creator": { + "type": "Person", + "name": "John Smith" + }, + "generated": "2015-04-01T09:00:00Z", + "generator": { + "type": "Software", + "name": "HistoryPin", + "homepage": "https://www.historypin.org/" + }, + "motivation": "linking", + "body": { + "@graph": { + "@context": "http://www.europeana.eu/schemas/context/edm.jsonld", + "id": "http://data.europeana.eu/item/2059207/data_sounds_T471_5", + "isSimilarTo": { + "id": "http://thesession.org/tunes/52", + "format": "text/html", + "title": "The Kid On The Mountain (slip jig) on The Session" + } + } + }, + "target": "http://data.europeana.eu/item/2059207/data_sounds_T471_5" +} \ No newline at end of file diff --git a/annotation-model/EF11.json b/annotation-model/EF11.json new file mode 100644 index 0000000..d24ad7a --- /dev/null +++ b/annotation-model/EF11.json @@ -0,0 +1,370 @@ +{ + "results": [ + { + "test": "/annotation-model/annotations/annotationMusts-manual.html", + "subtests": [ + { + "name": "1:1 Implements **_@context_ key** and '**http://www.w3.org/ns/anno.jsonld**' is **a value of _@context_** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:2 Implements **Annotation _id_ key** which has a **single value** that is a **string of format uri** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:3 Implements **Annotation _type_ key** and '**Annotation**' is **a value of _type_** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:4 Implements **_target_ key** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:5 Each **_target_** is one of a **string of format uri**, an **External Web Resource**, a **Choice** or **Set**, or a **Specific Resource** - [model 3.2](https://www.w3.org/TR/annotation-model/#bodies-and-targets), [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:6 Annotation has a **_body_ key**, or a **_bodyValue_ key**, or **neither**, but **NEVER both** - [model 3.2.5](https://www.w3.org/TR/annotation-model/#string-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:7 If present, each **_body_** is one of a **string of format uri**, an **External Web Resource**, an **Embedded Textual Body**, a **Choice** or **Set**, or a **Specific Resource** - [model 3.2](https://www.w3.org/TR/annotation-model/#bodies-and-targets), [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:8 If present the **_bodyValue_ key** has a **single value** that is a **string** - [model 3.2.5](https://www.w3.org/TR/annotation-model/#string-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:9 If present the Annotation-level **_created_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:10 If present the Annotation-level **_modified_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:11 If present the Annotation-level **_generated_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:12 If present the Annotation-level **_rights_ key** has values that are all **strings of format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:13 If present the Annotation-level **_canonical_ key** has a **single value** that is a **string of format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:14 If present the Annotation-level **_via_ key** has values that are all **strings of format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:15 If present as a body or body/source property, the **_textDirection_ key** has a **single value** which is **one of 'ltr', 'rtl', 'auto'** - [model 3.2.1](https://www.w3.org/TR/annotation-model/#external-web-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:16 If present all body-level or body/source-level **_created_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:17 If present all body-level or body/source-level **_modified_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:18 If present all body-level or body/source-level **_rights_ key values** are strings of **format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:19 If present all body-level or body/source-level **_canonical_ keys** have a **single value** which is a string of **format uri** - [model 3.3.](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:20 If present all body-level or body/source-level **_via_ key values** are strings of **format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:21 If an **External Web Resource** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:22 If an **External Web Resource** is a body, it does NOT have an **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:23 If a **Choice or Set** is a body, it does NOT have a **_value_ key** - [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:24 If a **Choice or Set** is a body, it does NOT have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:25 If a **Choice or Set** is a body, it does NOT have a **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:26 If an **Embedded Textual Body** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:27 If an **Embedded Textual Body** is a body, it does NOT have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:28 If a **Specific Resource** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:29 If a **Specific Resource** is a body, it does NOT have a **_value_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:30 If present as a target or target/source property, the **_textDirection_ key** has a **single value** which is **one of 'ltr', 'rtl', 'auto'** - [model 3.2.1](https://www.w3.org/TR/annotation-model/#external-web-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:31 If present all target-level or target/source-level **_created_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:32 If present all target-level or target/source-level **_modified_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:33 If present all target-level or target/source-level **_rights_ key values** are strings of **format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:34 If present all target-level or target/source-level **_canonical_ keys** have a **single value** which is a string of **format uri** - [model 3.3.](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:35 If present all target-level or target/source-level **_via_ key values** are strings of **format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:36 If an **External Web Resource** is a target, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:37 If an **External Web Resource** is a target, it does NOT have an **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:38 If a **Choice or Set** is a target, it does NOT have a **_value_ key** - [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-targ)", + "status": "PASS", + "message": null + }, + { + "name": "1:39 If a **Choice or Set** is a target, it does not have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:40 If a **Choice or Set** is a target, it does NOT have a **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:41 If a **Specific Resource Target** is a target, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:42 If a **Specific Resource** is a target, it does NOT have a **_value_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:43 Neither **target** Resources nor target Choice or Set items have a **_type_ key** which includes a value of **TextualBody** [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:44 If present **Specific Resource _selector_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'FragmentSelector', 'CssSelector', 'XPathSelector', 'TextQuoteSelector', 'TextPositionSelector', 'DataPositionSelector', 'SvgSelector', 'RangeSelector'** - [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:45 If present **Specific Resource _state_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'TimeState' or 'HttpRequestState'** - [model 4.3](https://www.w3.org/TR/annotation-model/#states)", + "status": "PASS", + "message": null + }, + { + "name": "1:46 If present **Specific Resource _state_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'TimeState' or 'HttpRequestState'** - [model 4.3](https://www.w3.org/TR/annotation-model/#states)", + "status": "PASS", + "message": null + }, + { + "name": "1:47 If any **Specific Resource _styleClass_ keys** are present, a **_stylesheet_ key** (a key of Annotation) with a **single value** is also present [model 4.4](https://www.w3.org/TR/annotation-model/#styles)", + "status": "PASS", + "message": null + }, + { + "name": "1:48 If present all **Selectors of _type_ FragmentSelector, CssSelector, or XPathSelector** have a **_value_ key** with a **single value** - [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:49 If present all **Selectors of _type_ TextQuoteSelector** have an **_exact_ key** with a **single value** - [model 4.2.4](https://www.w3.org/TR/annotation-model/#text-quote-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:50 If present all **Selectors of _type_ TextPositionSelector or DataPositionSelector** have both a **_start_ key** and an **_end_ key**, each with a **single non-negative integer value** [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:51 If present all **Selectors of _type_ SvgSelector** have either a **_value_ key** or an **_id_ key** with a **single value** of format uri [model 4.2.7](https://www.w3.org/TR/annotation-model/#svg-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:52 If present all **Selectors of _type_ RangeSelector** have both a **_startSelector_ key** and an **_endSelector_ key**, each with a **single value** which is a **Selector** - [model 4.2.8](https://www.w3.org/TR/annotation-model/#range-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:53 If present all **States of _type_ TimeState** each have either (but not both) a **_souceDate_ key** or paired **_sourceDateStart_ and _sourceDateEnd_ keys,** each of which is a **single value** of **format date-time**- [model 4.3.1](https://www.w3.org/TR/annotation-model/#time-state)", + "status": "PASS", + "message": null + }, + { + "name": "1:54 If present all **States of _type_ HttpRequestState** have a **_value_ key** - [model 4.3.2](https://www.w3.org/TR/annotation-model/#request-header-state)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + }, + { + "test": "/annotation-model/annotations/annotationOptionals-manual.html", + "subtests": [ + { + "name": "1:1 Implements Annotation-level **_creator_ key** with a **single value** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:2 Implements Annotation-level **_created_ key** which has a **single value** that is a **string of format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:3 Implements **_motivation_ key** with a **single value** that is from the **model's list of Motivations** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:4 Implements **_bodyValue_ key** which has a **single value** that is a **string** [model 3.2.5](https://www.w3.org/TR/annotation-model/#string-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:5 Implements Annotation-level **_generated_ key** which has a **single value** that is a **string of format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:8 Implements **_motivation_ key** which has one or more values, each of which is from the **model's list of Motivations** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + }, + { + "test": "/annotation-model/annotations/annotationsAgentOptionals-manual.html", + "subtests": [ + { + "name": "1:1 Implements **_creator_ key** which has one or more values, each of which is a **string of format uri** or an **object** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:3 Implements Annotation-level creator (Agent) **_type_ key** with one or more values from **model-recommended list (Person, Organization, Software)** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:5 Implements Annotation-level creator (Agent) **_name_ key** with a **single value** that is a string - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:6 Implements Annotation-level creator (Agent) **_name_ key** with one or more values - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:10 Implements **_generator_ key** which has one or more values, each of which is a **string of format uri** or an **object** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information).", + "status": "PASS", + "message": null + }, + { + "name": "1:12 Implements Annotation-level generator (Agent) **_type_ key** with one or more values from **model-recommended list (Person, Organization, Software)** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:14 Implements Annotation-level generator (Agent) **_name_ key** with a **single value** that is a string - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:15 Implements Annotation-level generator (Agent) **_name_ key** with one or more values. [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:18 Implements Annotation-level generator (Agent) **_homepage_ key** with one or more values, each of which is a **string of format uri** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + } + ] +} \ No newline at end of file diff --git a/annotation-model/EF12.json b/annotation-model/EF12.json new file mode 100644 index 0000000..85b8518 --- /dev/null +++ b/annotation-model/EF12.json @@ -0,0 +1,380 @@ +{ + "results": [ + { + "test": "/annotation-model/annotations/annotationMusts-manual.html", + "subtests": [ + { + "name": "1:1 Implements **_@context_ key** and '**http://www.w3.org/ns/anno.jsonld**' is **a value of _@context_** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:2 Implements **Annotation _id_ key** which has a **single value** that is a **string of format uri** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:3 Implements **Annotation _type_ key** and '**Annotation**' is **a value of _type_** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:4 Implements **_target_ key** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:5 Each **_target_** is one of a **string of format uri**, an **External Web Resource**, a **Choice** or **Set**, or a **Specific Resource** - [model 3.2](https://www.w3.org/TR/annotation-model/#bodies-and-targets), [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:6 Annotation has a **_body_ key**, or a **_bodyValue_ key**, or **neither**, but **NEVER both** - [model 3.2.5](https://www.w3.org/TR/annotation-model/#string-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:7 If present, each **_body_** is one of a **string of format uri**, an **External Web Resource**, an **Embedded Textual Body**, a **Choice** or **Set**, or a **Specific Resource** - [model 3.2](https://www.w3.org/TR/annotation-model/#bodies-and-targets), [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "FAIL", + "message": "assert_true: ERROR: One or more Bodies of the Annotation is not one of a string of format uri, an External Web Resource, a Choice or Set, a Specific Resource.; expected true got false" + }, + { + "name": "1:8 If present the **_bodyValue_ key** has a **single value** that is a **string** - [model 3.2.5](https://www.w3.org/TR/annotation-model/#string-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:9 If present the Annotation-level **_created_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:10 If present the Annotation-level **_modified_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:11 If present the Annotation-level **_generated_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:12 If present the Annotation-level **_rights_ key** has values that are all **strings of format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:13 If present the Annotation-level **_canonical_ key** has a **single value** that is a **string of format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:14 If present the Annotation-level **_via_ key** has values that are all **strings of format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:15 If present as a body or body/source property, the **_textDirection_ key** has a **single value** which is **one of 'ltr', 'rtl', 'auto'** - [model 3.2.1](https://www.w3.org/TR/annotation-model/#external-web-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:16 If present all body-level or body/source-level **_created_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:17 If present all body-level or body/source-level **_modified_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:18 If present all body-level or body/source-level **_rights_ key values** are strings of **format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:19 If present all body-level or body/source-level **_canonical_ keys** have a **single value** which is a string of **format uri** - [model 3.3.](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:20 If present all body-level or body/source-level **_via_ key values** are strings of **format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:21 If an **External Web Resource** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:22 If an **External Web Resource** is a body, it does NOT have an **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:23 If a **Choice or Set** is a body, it does NOT have a **_value_ key** - [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:24 If a **Choice or Set** is a body, it does NOT have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:25 If a **Choice or Set** is a body, it does NOT have a **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:26 If an **Embedded Textual Body** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:27 If an **Embedded Textual Body** is a body, it does NOT have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:28 If a **Specific Resource** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:29 If a **Specific Resource** is a body, it does NOT have a **_value_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:30 If present as a target or target/source property, the **_textDirection_ key** has a **single value** which is **one of 'ltr', 'rtl', 'auto'** - [model 3.2.1](https://www.w3.org/TR/annotation-model/#external-web-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:31 If present all target-level or target/source-level **_created_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:32 If present all target-level or target/source-level **_modified_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:33 If present all target-level or target/source-level **_rights_ key values** are strings of **format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:34 If present all target-level or target/source-level **_canonical_ keys** have a **single value** which is a string of **format uri** - [model 3.3.](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:35 If present all target-level or target/source-level **_via_ key values** are strings of **format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:36 If an **External Web Resource** is a target, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:37 If an **External Web Resource** is a target, it does NOT have an **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:38 If a **Choice or Set** is a target, it does NOT have a **_value_ key** - [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-targ)", + "status": "PASS", + "message": null + }, + { + "name": "1:39 If a **Choice or Set** is a target, it does not have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:40 If a **Choice or Set** is a target, it does NOT have a **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:41 If a **Specific Resource Target** is a target, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:42 If a **Specific Resource** is a target, it does NOT have a **_value_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:43 Neither **target** Resources nor target Choice or Set items have a **_type_ key** which includes a value of **TextualBody** [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:44 If present **Specific Resource _selector_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'FragmentSelector', 'CssSelector', 'XPathSelector', 'TextQuoteSelector', 'TextPositionSelector', 'DataPositionSelector', 'SvgSelector', 'RangeSelector'** - [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:45 If present **Specific Resource _state_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'TimeState' or 'HttpRequestState'** - [model 4.3](https://www.w3.org/TR/annotation-model/#states)", + "status": "PASS", + "message": null + }, + { + "name": "1:46 If present **Specific Resource _state_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'TimeState' or 'HttpRequestState'** - [model 4.3](https://www.w3.org/TR/annotation-model/#states)", + "status": "PASS", + "message": null + }, + { + "name": "1:47 If any **Specific Resource _styleClass_ keys** are present, a **_stylesheet_ key** (a key of Annotation) with a **single value** is also present [model 4.4](https://www.w3.org/TR/annotation-model/#styles)", + "status": "PASS", + "message": null + }, + { + "name": "1:48 If present all **Selectors of _type_ FragmentSelector, CssSelector, or XPathSelector** have a **_value_ key** with a **single value** - [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:49 If present all **Selectors of _type_ TextQuoteSelector** have an **_exact_ key** with a **single value** - [model 4.2.4](https://www.w3.org/TR/annotation-model/#text-quote-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:50 If present all **Selectors of _type_ TextPositionSelector or DataPositionSelector** have both a **_start_ key** and an **_end_ key**, each with a **single non-negative integer value** [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:51 If present all **Selectors of _type_ SvgSelector** have either a **_value_ key** or an **_id_ key** with a **single value** of format uri [model 4.2.7](https://www.w3.org/TR/annotation-model/#svg-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:52 If present all **Selectors of _type_ RangeSelector** have both a **_startSelector_ key** and an **_endSelector_ key**, each with a **single value** which is a **Selector** - [model 4.2.8](https://www.w3.org/TR/annotation-model/#range-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:53 If present all **States of _type_ TimeState** each have either (but not both) a **_souceDate_ key** or paired **_sourceDateStart_ and _sourceDateEnd_ keys,** each of which is a **single value** of **format date-time**- [model 4.3.1](https://www.w3.org/TR/annotation-model/#time-state)", + "status": "PASS", + "message": null + }, + { + "name": "1:54 If present all **States of _type_ HttpRequestState** have a **_value_ key** - [model 4.3.2](https://www.w3.org/TR/annotation-model/#request-header-state)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + }, + { + "test": "/annotation-model/annotations/annotationOptionals-manual.html", + "subtests": [ + { + "name": "1:1 Implements Annotation-level **_creator_ key** with a **single value** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:2 Implements Annotation-level **_created_ key** which has a **single value** that is a **string of format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:3 Implements **_motivation_ key** with a **single value** that is from the **model's list of Motivations** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:5 Implements Annotation-level **_generated_ key** which has a **single value** that is a **string of format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:8 Implements **_motivation_ key** which has one or more values, each of which is from the **model's list of Motivations** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:13 Implements **_body_ key** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:30 Implements **External Web Resource** with **_id_ key** as a body of the Annotation [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:31 Implements **Embedded Textual Body** with **_value_ key** as a body of the Annotation [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + }, + { + "test": "/annotation-model/annotations/annotationsAgentOptionals-manual.html", + "subtests": [ + { + "name": "1:1 Implements **_creator_ key** which has one or more values, each of which is a **string of format uri** or an **object** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:3 Implements Annotation-level creator (Agent) **_type_ key** with one or more values from **model-recommended list (Person, Organization, Software)** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:5 Implements Annotation-level creator (Agent) **_name_ key** with a **single value** that is a string - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:6 Implements Annotation-level creator (Agent) **_name_ key** with one or more values - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:10 Implements **_generator_ key** which has one or more values, each of which is a **string of format uri** or an **object** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information).", + "status": "PASS", + "message": null + }, + { + "name": "1:12 Implements Annotation-level generator (Agent) **_type_ key** with one or more values from **model-recommended list (Person, Organization, Software)** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:14 Implements Annotation-level generator (Agent) **_name_ key** with a **single value** that is a string - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:15 Implements Annotation-level generator (Agent) **_name_ key** with one or more values. [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:18 Implements Annotation-level generator (Agent) **_homepage_ key** with one or more values, each of which is a **string of format uri** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + } + ] +} \ No newline at end of file diff --git a/annotation-model/EF13.json b/annotation-model/EF13.json new file mode 100644 index 0000000..fd77707 --- /dev/null +++ b/annotation-model/EF13.json @@ -0,0 +1,370 @@ +{ + "results": [ + { + "test": "/annotation-model/annotations/annotationMusts-manual.html", + "subtests": [ + { + "name": "1:1 Implements **_@context_ key** and '**http://www.w3.org/ns/anno.jsonld**' is **a value of _@context_** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:2 Implements **Annotation _id_ key** which has a **single value** that is a **string of format uri** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:3 Implements **Annotation _type_ key** and '**Annotation**' is **a value of _type_** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:4 Implements **_target_ key** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:5 Each **_target_** is one of a **string of format uri**, an **External Web Resource**, a **Choice** or **Set**, or a **Specific Resource** - [model 3.2](https://www.w3.org/TR/annotation-model/#bodies-and-targets), [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:6 Annotation has a **_body_ key**, or a **_bodyValue_ key**, or **neither**, but **NEVER both** - [model 3.2.5](https://www.w3.org/TR/annotation-model/#string-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:7 If present, each **_body_** is one of a **string of format uri**, an **External Web Resource**, an **Embedded Textual Body**, a **Choice** or **Set**, or a **Specific Resource** - [model 3.2](https://www.w3.org/TR/annotation-model/#bodies-and-targets), [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:8 If present the **_bodyValue_ key** has a **single value** that is a **string** - [model 3.2.5](https://www.w3.org/TR/annotation-model/#string-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:9 If present the Annotation-level **_created_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:10 If present the Annotation-level **_modified_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:11 If present the Annotation-level **_generated_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:12 If present the Annotation-level **_rights_ key** has values that are all **strings of format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:13 If present the Annotation-level **_canonical_ key** has a **single value** that is a **string of format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:14 If present the Annotation-level **_via_ key** has values that are all **strings of format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:15 If present as a body or body/source property, the **_textDirection_ key** has a **single value** which is **one of 'ltr', 'rtl', 'auto'** - [model 3.2.1](https://www.w3.org/TR/annotation-model/#external-web-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:16 If present all body-level or body/source-level **_created_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:17 If present all body-level or body/source-level **_modified_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:18 If present all body-level or body/source-level **_rights_ key values** are strings of **format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:19 If present all body-level or body/source-level **_canonical_ keys** have a **single value** which is a string of **format uri** - [model 3.3.](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:20 If present all body-level or body/source-level **_via_ key values** are strings of **format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:21 If an **External Web Resource** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:22 If an **External Web Resource** is a body, it does NOT have an **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:23 If a **Choice or Set** is a body, it does NOT have a **_value_ key** - [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:24 If a **Choice or Set** is a body, it does NOT have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:25 If a **Choice or Set** is a body, it does NOT have a **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:26 If an **Embedded Textual Body** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:27 If an **Embedded Textual Body** is a body, it does NOT have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:28 If a **Specific Resource** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:29 If a **Specific Resource** is a body, it does NOT have a **_value_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:30 If present as a target or target/source property, the **_textDirection_ key** has a **single value** which is **one of 'ltr', 'rtl', 'auto'** - [model 3.2.1](https://www.w3.org/TR/annotation-model/#external-web-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:31 If present all target-level or target/source-level **_created_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:32 If present all target-level or target/source-level **_modified_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:33 If present all target-level or target/source-level **_rights_ key values** are strings of **format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:34 If present all target-level or target/source-level **_canonical_ keys** have a **single value** which is a string of **format uri** - [model 3.3.](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:35 If present all target-level or target/source-level **_via_ key values** are strings of **format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:36 If an **External Web Resource** is a target, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:37 If an **External Web Resource** is a target, it does NOT have an **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:38 If a **Choice or Set** is a target, it does NOT have a **_value_ key** - [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-targ)", + "status": "PASS", + "message": null + }, + { + "name": "1:39 If a **Choice or Set** is a target, it does not have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:40 If a **Choice or Set** is a target, it does NOT have a **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:41 If a **Specific Resource Target** is a target, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:42 If a **Specific Resource** is a target, it does NOT have a **_value_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:43 Neither **target** Resources nor target Choice or Set items have a **_type_ key** which includes a value of **TextualBody** [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:44 If present **Specific Resource _selector_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'FragmentSelector', 'CssSelector', 'XPathSelector', 'TextQuoteSelector', 'TextPositionSelector', 'DataPositionSelector', 'SvgSelector', 'RangeSelector'** - [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:45 If present **Specific Resource _state_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'TimeState' or 'HttpRequestState'** - [model 4.3](https://www.w3.org/TR/annotation-model/#states)", + "status": "PASS", + "message": null + }, + { + "name": "1:46 If present **Specific Resource _state_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'TimeState' or 'HttpRequestState'** - [model 4.3](https://www.w3.org/TR/annotation-model/#states)", + "status": "PASS", + "message": null + }, + { + "name": "1:47 If any **Specific Resource _styleClass_ keys** are present, a **_stylesheet_ key** (a key of Annotation) with a **single value** is also present [model 4.4](https://www.w3.org/TR/annotation-model/#styles)", + "status": "PASS", + "message": null + }, + { + "name": "1:48 If present all **Selectors of _type_ FragmentSelector, CssSelector, or XPathSelector** have a **_value_ key** with a **single value** - [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:49 If present all **Selectors of _type_ TextQuoteSelector** have an **_exact_ key** with a **single value** - [model 4.2.4](https://www.w3.org/TR/annotation-model/#text-quote-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:50 If present all **Selectors of _type_ TextPositionSelector or DataPositionSelector** have both a **_start_ key** and an **_end_ key**, each with a **single non-negative integer value** [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:51 If present all **Selectors of _type_ SvgSelector** have either a **_value_ key** or an **_id_ key** with a **single value** of format uri [model 4.2.7](https://www.w3.org/TR/annotation-model/#svg-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:52 If present all **Selectors of _type_ RangeSelector** have both a **_startSelector_ key** and an **_endSelector_ key**, each with a **single value** which is a **Selector** - [model 4.2.8](https://www.w3.org/TR/annotation-model/#range-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:53 If present all **States of _type_ TimeState** each have either (but not both) a **_souceDate_ key** or paired **_sourceDateStart_ and _sourceDateEnd_ keys,** each of which is a **single value** of **format date-time**- [model 4.3.1](https://www.w3.org/TR/annotation-model/#time-state)", + "status": "PASS", + "message": null + }, + { + "name": "1:54 If present all **States of _type_ HttpRequestState** have a **_value_ key** - [model 4.3.2](https://www.w3.org/TR/annotation-model/#request-header-state)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + }, + { + "test": "/annotation-model/annotations/annotationOptionals-manual.html", + "subtests": [ + { + "name": "1:1 Implements Annotation-level **_creator_ key** with a **single value** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:2 Implements Annotation-level **_created_ key** which has a **single value** that is a **string of format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:3 Implements **_motivation_ key** with a **single value** that is from the **model's list of Motivations** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:5 Implements Annotation-level **_generated_ key** which has a **single value** that is a **string of format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:8 Implements **_motivation_ key** which has one or more values, each of which is from the **model's list of Motivations** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:13 Implements **_body_ key** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + }, + { + "test": "/annotation-model/annotations/annotationsAgentOptionals-manual.html", + "subtests": [ + { + "name": "1:1 Implements **_creator_ key** which has one or more values, each of which is a **string of format uri** or an **object** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:3 Implements Annotation-level creator (Agent) **_type_ key** with one or more values from **model-recommended list (Person, Organization, Software)** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:5 Implements Annotation-level creator (Agent) **_name_ key** with a **single value** that is a string - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:6 Implements Annotation-level creator (Agent) **_name_ key** with one or more values - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:10 Implements **_generator_ key** which has one or more values, each of which is a **string of format uri** or an **object** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information).", + "status": "PASS", + "message": null + }, + { + "name": "1:12 Implements Annotation-level generator (Agent) **_type_ key** with one or more values from **model-recommended list (Person, Organization, Software)** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:14 Implements Annotation-level generator (Agent) **_name_ key** with a **single value** that is a string - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:15 Implements Annotation-level generator (Agent) **_name_ key** with one or more values. [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:18 Implements Annotation-level generator (Agent) **_homepage_ key** with one or more values, each of which is a **string of format uri** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + } + ] +} \ No newline at end of file diff --git a/annotation-model/EF14.json b/annotation-model/EF14.json new file mode 100644 index 0000000..85b8518 --- /dev/null +++ b/annotation-model/EF14.json @@ -0,0 +1,380 @@ +{ + "results": [ + { + "test": "/annotation-model/annotations/annotationMusts-manual.html", + "subtests": [ + { + "name": "1:1 Implements **_@context_ key** and '**http://www.w3.org/ns/anno.jsonld**' is **a value of _@context_** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:2 Implements **Annotation _id_ key** which has a **single value** that is a **string of format uri** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:3 Implements **Annotation _type_ key** and '**Annotation**' is **a value of _type_** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:4 Implements **_target_ key** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:5 Each **_target_** is one of a **string of format uri**, an **External Web Resource**, a **Choice** or **Set**, or a **Specific Resource** - [model 3.2](https://www.w3.org/TR/annotation-model/#bodies-and-targets), [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:6 Annotation has a **_body_ key**, or a **_bodyValue_ key**, or **neither**, but **NEVER both** - [model 3.2.5](https://www.w3.org/TR/annotation-model/#string-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:7 If present, each **_body_** is one of a **string of format uri**, an **External Web Resource**, an **Embedded Textual Body**, a **Choice** or **Set**, or a **Specific Resource** - [model 3.2](https://www.w3.org/TR/annotation-model/#bodies-and-targets), [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "FAIL", + "message": "assert_true: ERROR: One or more Bodies of the Annotation is not one of a string of format uri, an External Web Resource, a Choice or Set, a Specific Resource.; expected true got false" + }, + { + "name": "1:8 If present the **_bodyValue_ key** has a **single value** that is a **string** - [model 3.2.5](https://www.w3.org/TR/annotation-model/#string-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:9 If present the Annotation-level **_created_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:10 If present the Annotation-level **_modified_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:11 If present the Annotation-level **_generated_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:12 If present the Annotation-level **_rights_ key** has values that are all **strings of format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:13 If present the Annotation-level **_canonical_ key** has a **single value** that is a **string of format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:14 If present the Annotation-level **_via_ key** has values that are all **strings of format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:15 If present as a body or body/source property, the **_textDirection_ key** has a **single value** which is **one of 'ltr', 'rtl', 'auto'** - [model 3.2.1](https://www.w3.org/TR/annotation-model/#external-web-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:16 If present all body-level or body/source-level **_created_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:17 If present all body-level or body/source-level **_modified_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:18 If present all body-level or body/source-level **_rights_ key values** are strings of **format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:19 If present all body-level or body/source-level **_canonical_ keys** have a **single value** which is a string of **format uri** - [model 3.3.](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:20 If present all body-level or body/source-level **_via_ key values** are strings of **format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:21 If an **External Web Resource** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:22 If an **External Web Resource** is a body, it does NOT have an **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:23 If a **Choice or Set** is a body, it does NOT have a **_value_ key** - [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:24 If a **Choice or Set** is a body, it does NOT have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:25 If a **Choice or Set** is a body, it does NOT have a **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:26 If an **Embedded Textual Body** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:27 If an **Embedded Textual Body** is a body, it does NOT have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:28 If a **Specific Resource** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:29 If a **Specific Resource** is a body, it does NOT have a **_value_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:30 If present as a target or target/source property, the **_textDirection_ key** has a **single value** which is **one of 'ltr', 'rtl', 'auto'** - [model 3.2.1](https://www.w3.org/TR/annotation-model/#external-web-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:31 If present all target-level or target/source-level **_created_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:32 If present all target-level or target/source-level **_modified_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:33 If present all target-level or target/source-level **_rights_ key values** are strings of **format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:34 If present all target-level or target/source-level **_canonical_ keys** have a **single value** which is a string of **format uri** - [model 3.3.](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:35 If present all target-level or target/source-level **_via_ key values** are strings of **format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:36 If an **External Web Resource** is a target, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:37 If an **External Web Resource** is a target, it does NOT have an **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:38 If a **Choice or Set** is a target, it does NOT have a **_value_ key** - [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-targ)", + "status": "PASS", + "message": null + }, + { + "name": "1:39 If a **Choice or Set** is a target, it does not have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:40 If a **Choice or Set** is a target, it does NOT have a **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:41 If a **Specific Resource Target** is a target, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:42 If a **Specific Resource** is a target, it does NOT have a **_value_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:43 Neither **target** Resources nor target Choice or Set items have a **_type_ key** which includes a value of **TextualBody** [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:44 If present **Specific Resource _selector_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'FragmentSelector', 'CssSelector', 'XPathSelector', 'TextQuoteSelector', 'TextPositionSelector', 'DataPositionSelector', 'SvgSelector', 'RangeSelector'** - [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:45 If present **Specific Resource _state_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'TimeState' or 'HttpRequestState'** - [model 4.3](https://www.w3.org/TR/annotation-model/#states)", + "status": "PASS", + "message": null + }, + { + "name": "1:46 If present **Specific Resource _state_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'TimeState' or 'HttpRequestState'** - [model 4.3](https://www.w3.org/TR/annotation-model/#states)", + "status": "PASS", + "message": null + }, + { + "name": "1:47 If any **Specific Resource _styleClass_ keys** are present, a **_stylesheet_ key** (a key of Annotation) with a **single value** is also present [model 4.4](https://www.w3.org/TR/annotation-model/#styles)", + "status": "PASS", + "message": null + }, + { + "name": "1:48 If present all **Selectors of _type_ FragmentSelector, CssSelector, or XPathSelector** have a **_value_ key** with a **single value** - [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:49 If present all **Selectors of _type_ TextQuoteSelector** have an **_exact_ key** with a **single value** - [model 4.2.4](https://www.w3.org/TR/annotation-model/#text-quote-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:50 If present all **Selectors of _type_ TextPositionSelector or DataPositionSelector** have both a **_start_ key** and an **_end_ key**, each with a **single non-negative integer value** [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:51 If present all **Selectors of _type_ SvgSelector** have either a **_value_ key** or an **_id_ key** with a **single value** of format uri [model 4.2.7](https://www.w3.org/TR/annotation-model/#svg-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:52 If present all **Selectors of _type_ RangeSelector** have both a **_startSelector_ key** and an **_endSelector_ key**, each with a **single value** which is a **Selector** - [model 4.2.8](https://www.w3.org/TR/annotation-model/#range-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:53 If present all **States of _type_ TimeState** each have either (but not both) a **_souceDate_ key** or paired **_sourceDateStart_ and _sourceDateEnd_ keys,** each of which is a **single value** of **format date-time**- [model 4.3.1](https://www.w3.org/TR/annotation-model/#time-state)", + "status": "PASS", + "message": null + }, + { + "name": "1:54 If present all **States of _type_ HttpRequestState** have a **_value_ key** - [model 4.3.2](https://www.w3.org/TR/annotation-model/#request-header-state)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + }, + { + "test": "/annotation-model/annotations/annotationOptionals-manual.html", + "subtests": [ + { + "name": "1:1 Implements Annotation-level **_creator_ key** with a **single value** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:2 Implements Annotation-level **_created_ key** which has a **single value** that is a **string of format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:3 Implements **_motivation_ key** with a **single value** that is from the **model's list of Motivations** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:5 Implements Annotation-level **_generated_ key** which has a **single value** that is a **string of format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:8 Implements **_motivation_ key** which has one or more values, each of which is from the **model's list of Motivations** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:13 Implements **_body_ key** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:30 Implements **External Web Resource** with **_id_ key** as a body of the Annotation [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:31 Implements **Embedded Textual Body** with **_value_ key** as a body of the Annotation [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + }, + { + "test": "/annotation-model/annotations/annotationsAgentOptionals-manual.html", + "subtests": [ + { + "name": "1:1 Implements **_creator_ key** which has one or more values, each of which is a **string of format uri** or an **object** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:3 Implements Annotation-level creator (Agent) **_type_ key** with one or more values from **model-recommended list (Person, Organization, Software)** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:5 Implements Annotation-level creator (Agent) **_name_ key** with a **single value** that is a string - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:6 Implements Annotation-level creator (Agent) **_name_ key** with one or more values - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:10 Implements **_generator_ key** which has one or more values, each of which is a **string of format uri** or an **object** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information).", + "status": "PASS", + "message": null + }, + { + "name": "1:12 Implements Annotation-level generator (Agent) **_type_ key** with one or more values from **model-recommended list (Person, Organization, Software)** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:14 Implements Annotation-level generator (Agent) **_name_ key** with a **single value** that is a string - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:15 Implements Annotation-level generator (Agent) **_name_ key** with one or more values. [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:18 Implements Annotation-level generator (Agent) **_homepage_ key** with one or more values, each of which is a **string of format uri** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + } + ] +} \ No newline at end of file diff --git a/annotation-model/EF21.json b/annotation-model/EF21.json new file mode 100644 index 0000000..5051cbd --- /dev/null +++ b/annotation-model/EF21.json @@ -0,0 +1,365 @@ +{ + "results": [ + { + "test": "/annotation-model/annotations/annotationMusts-manual.html", + "subtests": [ + { + "name": "1:1 Implements **_@context_ key** and '**http://www.w3.org/ns/anno.jsonld**' is **a value of _@context_** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:2 Implements **Annotation _id_ key** which has a **single value** that is a **string of format uri** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:3 Implements **Annotation _type_ key** and '**Annotation**' is **a value of _type_** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:4 Implements **_target_ key** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:5 Each **_target_** is one of a **string of format uri**, an **External Web Resource**, a **Choice** or **Set**, or a **Specific Resource** - [model 3.2](https://www.w3.org/TR/annotation-model/#bodies-and-targets), [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:6 Annotation has a **_body_ key**, or a **_bodyValue_ key**, or **neither**, but **NEVER both** - [model 3.2.5](https://www.w3.org/TR/annotation-model/#string-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:7 If present, each **_body_** is one of a **string of format uri**, an **External Web Resource**, an **Embedded Textual Body**, a **Choice** or **Set**, or a **Specific Resource** - [model 3.2](https://www.w3.org/TR/annotation-model/#bodies-and-targets), [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:8 If present the **_bodyValue_ key** has a **single value** that is a **string** - [model 3.2.5](https://www.w3.org/TR/annotation-model/#string-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:9 If present the Annotation-level **_created_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:10 If present the Annotation-level **_modified_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:11 If present the Annotation-level **_generated_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:12 If present the Annotation-level **_rights_ key** has values that are all **strings of format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:13 If present the Annotation-level **_canonical_ key** has a **single value** that is a **string of format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:14 If present the Annotation-level **_via_ key** has values that are all **strings of format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:15 If present as a body or body/source property, the **_textDirection_ key** has a **single value** which is **one of 'ltr', 'rtl', 'auto'** - [model 3.2.1](https://www.w3.org/TR/annotation-model/#external-web-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:16 If present all body-level or body/source-level **_created_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:17 If present all body-level or body/source-level **_modified_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:18 If present all body-level or body/source-level **_rights_ key values** are strings of **format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:19 If present all body-level or body/source-level **_canonical_ keys** have a **single value** which is a string of **format uri** - [model 3.3.](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:20 If present all body-level or body/source-level **_via_ key values** are strings of **format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:21 If an **External Web Resource** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:22 If an **External Web Resource** is a body, it does NOT have an **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:23 If a **Choice or Set** is a body, it does NOT have a **_value_ key** - [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:24 If a **Choice or Set** is a body, it does NOT have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:25 If a **Choice or Set** is a body, it does NOT have a **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:26 If an **Embedded Textual Body** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:27 If an **Embedded Textual Body** is a body, it does NOT have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:28 If a **Specific Resource** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:29 If a **Specific Resource** is a body, it does NOT have a **_value_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:30 If present as a target or target/source property, the **_textDirection_ key** has a **single value** which is **one of 'ltr', 'rtl', 'auto'** - [model 3.2.1](https://www.w3.org/TR/annotation-model/#external-web-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:31 If present all target-level or target/source-level **_created_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:32 If present all target-level or target/source-level **_modified_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:33 If present all target-level or target/source-level **_rights_ key values** are strings of **format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:34 If present all target-level or target/source-level **_canonical_ keys** have a **single value** which is a string of **format uri** - [model 3.3.](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:35 If present all target-level or target/source-level **_via_ key values** are strings of **format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:36 If an **External Web Resource** is a target, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:37 If an **External Web Resource** is a target, it does NOT have an **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:38 If a **Choice or Set** is a target, it does NOT have a **_value_ key** - [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-targ)", + "status": "PASS", + "message": null + }, + { + "name": "1:39 If a **Choice or Set** is a target, it does not have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:40 If a **Choice or Set** is a target, it does NOT have a **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:41 If a **Specific Resource Target** is a target, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:42 If a **Specific Resource** is a target, it does NOT have a **_value_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:43 Neither **target** Resources nor target Choice or Set items have a **_type_ key** which includes a value of **TextualBody** [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:44 If present **Specific Resource _selector_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'FragmentSelector', 'CssSelector', 'XPathSelector', 'TextQuoteSelector', 'TextPositionSelector', 'DataPositionSelector', 'SvgSelector', 'RangeSelector'** - [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:45 If present **Specific Resource _state_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'TimeState' or 'HttpRequestState'** - [model 4.3](https://www.w3.org/TR/annotation-model/#states)", + "status": "PASS", + "message": null + }, + { + "name": "1:46 If present **Specific Resource _state_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'TimeState' or 'HttpRequestState'** - [model 4.3](https://www.w3.org/TR/annotation-model/#states)", + "status": "PASS", + "message": null + }, + { + "name": "1:47 If any **Specific Resource _styleClass_ keys** are present, a **_stylesheet_ key** (a key of Annotation) with a **single value** is also present [model 4.4](https://www.w3.org/TR/annotation-model/#styles)", + "status": "PASS", + "message": null + }, + { + "name": "1:48 If present all **Selectors of _type_ FragmentSelector, CssSelector, or XPathSelector** have a **_value_ key** with a **single value** - [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:49 If present all **Selectors of _type_ TextQuoteSelector** have an **_exact_ key** with a **single value** - [model 4.2.4](https://www.w3.org/TR/annotation-model/#text-quote-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:50 If present all **Selectors of _type_ TextPositionSelector or DataPositionSelector** have both a **_start_ key** and an **_end_ key**, each with a **single non-negative integer value** [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:51 If present all **Selectors of _type_ SvgSelector** have either a **_value_ key** or an **_id_ key** with a **single value** of format uri [model 4.2.7](https://www.w3.org/TR/annotation-model/#svg-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:52 If present all **Selectors of _type_ RangeSelector** have both a **_startSelector_ key** and an **_endSelector_ key**, each with a **single value** which is a **Selector** - [model 4.2.8](https://www.w3.org/TR/annotation-model/#range-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:53 If present all **States of _type_ TimeState** each have either (but not both) a **_souceDate_ key** or paired **_sourceDateStart_ and _sourceDateEnd_ keys,** each of which is a **single value** of **format date-time**- [model 4.3.1](https://www.w3.org/TR/annotation-model/#time-state)", + "status": "PASS", + "message": null + }, + { + "name": "1:54 If present all **States of _type_ HttpRequestState** have a **_value_ key** - [model 4.3.2](https://www.w3.org/TR/annotation-model/#request-header-state)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + }, + { + "test": "/annotation-model/annotations/annotationOptionals-manual.html", + "subtests": [ + { + "name": "1:1 Implements Annotation-level **_creator_ key** with a **single value** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:2 Implements Annotation-level **_created_ key** which has a **single value** that is a **string of format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:3 Implements **_motivation_ key** with a **single value** that is from the **model's list of Motivations** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:5 Implements Annotation-level **_generated_ key** which has a **single value** that is a **string of format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:8 Implements **_motivation_ key** which has one or more values, each of which is from the **model's list of Motivations** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + }, + { + "test": "/annotation-model/annotations/annotationsAgentOptionals-manual.html", + "subtests": [ + { + "name": "1:1 Implements **_creator_ key** which has one or more values, each of which is a **string of format uri** or an **object** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:3 Implements Annotation-level creator (Agent) **_type_ key** with one or more values from **model-recommended list (Person, Organization, Software)** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:5 Implements Annotation-level creator (Agent) **_name_ key** with a **single value** that is a string - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:6 Implements Annotation-level creator (Agent) **_name_ key** with one or more values - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:10 Implements **_generator_ key** which has one or more values, each of which is a **string of format uri** or an **object** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information).", + "status": "PASS", + "message": null + }, + { + "name": "1:12 Implements Annotation-level generator (Agent) **_type_ key** with one or more values from **model-recommended list (Person, Organization, Software)** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:14 Implements Annotation-level generator (Agent) **_name_ key** with a **single value** that is a string - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:15 Implements Annotation-level generator (Agent) **_name_ key** with one or more values. [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:18 Implements Annotation-level generator (Agent) **_homepage_ key** with one or more values, each of which is a **string of format uri** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + } + ] +} \ No newline at end of file diff --git a/annotation-model/EF22.json b/annotation-model/EF22.json new file mode 100644 index 0000000..85b8518 --- /dev/null +++ b/annotation-model/EF22.json @@ -0,0 +1,380 @@ +{ + "results": [ + { + "test": "/annotation-model/annotations/annotationMusts-manual.html", + "subtests": [ + { + "name": "1:1 Implements **_@context_ key** and '**http://www.w3.org/ns/anno.jsonld**' is **a value of _@context_** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:2 Implements **Annotation _id_ key** which has a **single value** that is a **string of format uri** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:3 Implements **Annotation _type_ key** and '**Annotation**' is **a value of _type_** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:4 Implements **_target_ key** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:5 Each **_target_** is one of a **string of format uri**, an **External Web Resource**, a **Choice** or **Set**, or a **Specific Resource** - [model 3.2](https://www.w3.org/TR/annotation-model/#bodies-and-targets), [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:6 Annotation has a **_body_ key**, or a **_bodyValue_ key**, or **neither**, but **NEVER both** - [model 3.2.5](https://www.w3.org/TR/annotation-model/#string-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:7 If present, each **_body_** is one of a **string of format uri**, an **External Web Resource**, an **Embedded Textual Body**, a **Choice** or **Set**, or a **Specific Resource** - [model 3.2](https://www.w3.org/TR/annotation-model/#bodies-and-targets), [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "FAIL", + "message": "assert_true: ERROR: One or more Bodies of the Annotation is not one of a string of format uri, an External Web Resource, a Choice or Set, a Specific Resource.; expected true got false" + }, + { + "name": "1:8 If present the **_bodyValue_ key** has a **single value** that is a **string** - [model 3.2.5](https://www.w3.org/TR/annotation-model/#string-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:9 If present the Annotation-level **_created_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:10 If present the Annotation-level **_modified_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:11 If present the Annotation-level **_generated_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:12 If present the Annotation-level **_rights_ key** has values that are all **strings of format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:13 If present the Annotation-level **_canonical_ key** has a **single value** that is a **string of format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:14 If present the Annotation-level **_via_ key** has values that are all **strings of format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:15 If present as a body or body/source property, the **_textDirection_ key** has a **single value** which is **one of 'ltr', 'rtl', 'auto'** - [model 3.2.1](https://www.w3.org/TR/annotation-model/#external-web-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:16 If present all body-level or body/source-level **_created_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:17 If present all body-level or body/source-level **_modified_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:18 If present all body-level or body/source-level **_rights_ key values** are strings of **format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:19 If present all body-level or body/source-level **_canonical_ keys** have a **single value** which is a string of **format uri** - [model 3.3.](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:20 If present all body-level or body/source-level **_via_ key values** are strings of **format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:21 If an **External Web Resource** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:22 If an **External Web Resource** is a body, it does NOT have an **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:23 If a **Choice or Set** is a body, it does NOT have a **_value_ key** - [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:24 If a **Choice or Set** is a body, it does NOT have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:25 If a **Choice or Set** is a body, it does NOT have a **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:26 If an **Embedded Textual Body** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:27 If an **Embedded Textual Body** is a body, it does NOT have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:28 If a **Specific Resource** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:29 If a **Specific Resource** is a body, it does NOT have a **_value_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:30 If present as a target or target/source property, the **_textDirection_ key** has a **single value** which is **one of 'ltr', 'rtl', 'auto'** - [model 3.2.1](https://www.w3.org/TR/annotation-model/#external-web-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:31 If present all target-level or target/source-level **_created_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:32 If present all target-level or target/source-level **_modified_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:33 If present all target-level or target/source-level **_rights_ key values** are strings of **format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:34 If present all target-level or target/source-level **_canonical_ keys** have a **single value** which is a string of **format uri** - [model 3.3.](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:35 If present all target-level or target/source-level **_via_ key values** are strings of **format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:36 If an **External Web Resource** is a target, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:37 If an **External Web Resource** is a target, it does NOT have an **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:38 If a **Choice or Set** is a target, it does NOT have a **_value_ key** - [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-targ)", + "status": "PASS", + "message": null + }, + { + "name": "1:39 If a **Choice or Set** is a target, it does not have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:40 If a **Choice or Set** is a target, it does NOT have a **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:41 If a **Specific Resource Target** is a target, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:42 If a **Specific Resource** is a target, it does NOT have a **_value_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:43 Neither **target** Resources nor target Choice or Set items have a **_type_ key** which includes a value of **TextualBody** [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:44 If present **Specific Resource _selector_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'FragmentSelector', 'CssSelector', 'XPathSelector', 'TextQuoteSelector', 'TextPositionSelector', 'DataPositionSelector', 'SvgSelector', 'RangeSelector'** - [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:45 If present **Specific Resource _state_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'TimeState' or 'HttpRequestState'** - [model 4.3](https://www.w3.org/TR/annotation-model/#states)", + "status": "PASS", + "message": null + }, + { + "name": "1:46 If present **Specific Resource _state_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'TimeState' or 'HttpRequestState'** - [model 4.3](https://www.w3.org/TR/annotation-model/#states)", + "status": "PASS", + "message": null + }, + { + "name": "1:47 If any **Specific Resource _styleClass_ keys** are present, a **_stylesheet_ key** (a key of Annotation) with a **single value** is also present [model 4.4](https://www.w3.org/TR/annotation-model/#styles)", + "status": "PASS", + "message": null + }, + { + "name": "1:48 If present all **Selectors of _type_ FragmentSelector, CssSelector, or XPathSelector** have a **_value_ key** with a **single value** - [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:49 If present all **Selectors of _type_ TextQuoteSelector** have an **_exact_ key** with a **single value** - [model 4.2.4](https://www.w3.org/TR/annotation-model/#text-quote-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:50 If present all **Selectors of _type_ TextPositionSelector or DataPositionSelector** have both a **_start_ key** and an **_end_ key**, each with a **single non-negative integer value** [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:51 If present all **Selectors of _type_ SvgSelector** have either a **_value_ key** or an **_id_ key** with a **single value** of format uri [model 4.2.7](https://www.w3.org/TR/annotation-model/#svg-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:52 If present all **Selectors of _type_ RangeSelector** have both a **_startSelector_ key** and an **_endSelector_ key**, each with a **single value** which is a **Selector** - [model 4.2.8](https://www.w3.org/TR/annotation-model/#range-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:53 If present all **States of _type_ TimeState** each have either (but not both) a **_souceDate_ key** or paired **_sourceDateStart_ and _sourceDateEnd_ keys,** each of which is a **single value** of **format date-time**- [model 4.3.1](https://www.w3.org/TR/annotation-model/#time-state)", + "status": "PASS", + "message": null + }, + { + "name": "1:54 If present all **States of _type_ HttpRequestState** have a **_value_ key** - [model 4.3.2](https://www.w3.org/TR/annotation-model/#request-header-state)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + }, + { + "test": "/annotation-model/annotations/annotationOptionals-manual.html", + "subtests": [ + { + "name": "1:1 Implements Annotation-level **_creator_ key** with a **single value** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:2 Implements Annotation-level **_created_ key** which has a **single value** that is a **string of format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:3 Implements **_motivation_ key** with a **single value** that is from the **model's list of Motivations** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:5 Implements Annotation-level **_generated_ key** which has a **single value** that is a **string of format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:8 Implements **_motivation_ key** which has one or more values, each of which is from the **model's list of Motivations** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:13 Implements **_body_ key** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:30 Implements **External Web Resource** with **_id_ key** as a body of the Annotation [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:31 Implements **Embedded Textual Body** with **_value_ key** as a body of the Annotation [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + }, + { + "test": "/annotation-model/annotations/annotationsAgentOptionals-manual.html", + "subtests": [ + { + "name": "1:1 Implements **_creator_ key** which has one or more values, each of which is a **string of format uri** or an **object** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:3 Implements Annotation-level creator (Agent) **_type_ key** with one or more values from **model-recommended list (Person, Organization, Software)** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:5 Implements Annotation-level creator (Agent) **_name_ key** with a **single value** that is a string - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:6 Implements Annotation-level creator (Agent) **_name_ key** with one or more values - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:10 Implements **_generator_ key** which has one or more values, each of which is a **string of format uri** or an **object** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information).", + "status": "PASS", + "message": null + }, + { + "name": "1:12 Implements Annotation-level generator (Agent) **_type_ key** with one or more values from **model-recommended list (Person, Organization, Software)** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:14 Implements Annotation-level generator (Agent) **_name_ key** with a **single value** that is a string - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:15 Implements Annotation-level generator (Agent) **_name_ key** with one or more values. [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:18 Implements Annotation-level generator (Agent) **_homepage_ key** with one or more values, each of which is a **string of format uri** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + } + ] +} \ No newline at end of file diff --git a/annotation-model/EF23.json b/annotation-model/EF23.json new file mode 100644 index 0000000..85b8518 --- /dev/null +++ b/annotation-model/EF23.json @@ -0,0 +1,380 @@ +{ + "results": [ + { + "test": "/annotation-model/annotations/annotationMusts-manual.html", + "subtests": [ + { + "name": "1:1 Implements **_@context_ key** and '**http://www.w3.org/ns/anno.jsonld**' is **a value of _@context_** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:2 Implements **Annotation _id_ key** which has a **single value** that is a **string of format uri** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:3 Implements **Annotation _type_ key** and '**Annotation**' is **a value of _type_** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:4 Implements **_target_ key** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:5 Each **_target_** is one of a **string of format uri**, an **External Web Resource**, a **Choice** or **Set**, or a **Specific Resource** - [model 3.2](https://www.w3.org/TR/annotation-model/#bodies-and-targets), [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:6 Annotation has a **_body_ key**, or a **_bodyValue_ key**, or **neither**, but **NEVER both** - [model 3.2.5](https://www.w3.org/TR/annotation-model/#string-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:7 If present, each **_body_** is one of a **string of format uri**, an **External Web Resource**, an **Embedded Textual Body**, a **Choice** or **Set**, or a **Specific Resource** - [model 3.2](https://www.w3.org/TR/annotation-model/#bodies-and-targets), [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "FAIL", + "message": "assert_true: ERROR: One or more Bodies of the Annotation is not one of a string of format uri, an External Web Resource, a Choice or Set, a Specific Resource.; expected true got false" + }, + { + "name": "1:8 If present the **_bodyValue_ key** has a **single value** that is a **string** - [model 3.2.5](https://www.w3.org/TR/annotation-model/#string-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:9 If present the Annotation-level **_created_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:10 If present the Annotation-level **_modified_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:11 If present the Annotation-level **_generated_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:12 If present the Annotation-level **_rights_ key** has values that are all **strings of format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:13 If present the Annotation-level **_canonical_ key** has a **single value** that is a **string of format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:14 If present the Annotation-level **_via_ key** has values that are all **strings of format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:15 If present as a body or body/source property, the **_textDirection_ key** has a **single value** which is **one of 'ltr', 'rtl', 'auto'** - [model 3.2.1](https://www.w3.org/TR/annotation-model/#external-web-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:16 If present all body-level or body/source-level **_created_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:17 If present all body-level or body/source-level **_modified_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:18 If present all body-level or body/source-level **_rights_ key values** are strings of **format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:19 If present all body-level or body/source-level **_canonical_ keys** have a **single value** which is a string of **format uri** - [model 3.3.](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:20 If present all body-level or body/source-level **_via_ key values** are strings of **format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:21 If an **External Web Resource** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:22 If an **External Web Resource** is a body, it does NOT have an **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:23 If a **Choice or Set** is a body, it does NOT have a **_value_ key** - [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:24 If a **Choice or Set** is a body, it does NOT have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:25 If a **Choice or Set** is a body, it does NOT have a **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:26 If an **Embedded Textual Body** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:27 If an **Embedded Textual Body** is a body, it does NOT have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:28 If a **Specific Resource** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:29 If a **Specific Resource** is a body, it does NOT have a **_value_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:30 If present as a target or target/source property, the **_textDirection_ key** has a **single value** which is **one of 'ltr', 'rtl', 'auto'** - [model 3.2.1](https://www.w3.org/TR/annotation-model/#external-web-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:31 If present all target-level or target/source-level **_created_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:32 If present all target-level or target/source-level **_modified_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:33 If present all target-level or target/source-level **_rights_ key values** are strings of **format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:34 If present all target-level or target/source-level **_canonical_ keys** have a **single value** which is a string of **format uri** - [model 3.3.](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:35 If present all target-level or target/source-level **_via_ key values** are strings of **format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:36 If an **External Web Resource** is a target, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:37 If an **External Web Resource** is a target, it does NOT have an **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:38 If a **Choice or Set** is a target, it does NOT have a **_value_ key** - [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-targ)", + "status": "PASS", + "message": null + }, + { + "name": "1:39 If a **Choice or Set** is a target, it does not have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:40 If a **Choice or Set** is a target, it does NOT have a **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:41 If a **Specific Resource Target** is a target, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:42 If a **Specific Resource** is a target, it does NOT have a **_value_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:43 Neither **target** Resources nor target Choice or Set items have a **_type_ key** which includes a value of **TextualBody** [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:44 If present **Specific Resource _selector_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'FragmentSelector', 'CssSelector', 'XPathSelector', 'TextQuoteSelector', 'TextPositionSelector', 'DataPositionSelector', 'SvgSelector', 'RangeSelector'** - [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:45 If present **Specific Resource _state_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'TimeState' or 'HttpRequestState'** - [model 4.3](https://www.w3.org/TR/annotation-model/#states)", + "status": "PASS", + "message": null + }, + { + "name": "1:46 If present **Specific Resource _state_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'TimeState' or 'HttpRequestState'** - [model 4.3](https://www.w3.org/TR/annotation-model/#states)", + "status": "PASS", + "message": null + }, + { + "name": "1:47 If any **Specific Resource _styleClass_ keys** are present, a **_stylesheet_ key** (a key of Annotation) with a **single value** is also present [model 4.4](https://www.w3.org/TR/annotation-model/#styles)", + "status": "PASS", + "message": null + }, + { + "name": "1:48 If present all **Selectors of _type_ FragmentSelector, CssSelector, or XPathSelector** have a **_value_ key** with a **single value** - [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:49 If present all **Selectors of _type_ TextQuoteSelector** have an **_exact_ key** with a **single value** - [model 4.2.4](https://www.w3.org/TR/annotation-model/#text-quote-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:50 If present all **Selectors of _type_ TextPositionSelector or DataPositionSelector** have both a **_start_ key** and an **_end_ key**, each with a **single non-negative integer value** [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:51 If present all **Selectors of _type_ SvgSelector** have either a **_value_ key** or an **_id_ key** with a **single value** of format uri [model 4.2.7](https://www.w3.org/TR/annotation-model/#svg-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:52 If present all **Selectors of _type_ RangeSelector** have both a **_startSelector_ key** and an **_endSelector_ key**, each with a **single value** which is a **Selector** - [model 4.2.8](https://www.w3.org/TR/annotation-model/#range-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:53 If present all **States of _type_ TimeState** each have either (but not both) a **_souceDate_ key** or paired **_sourceDateStart_ and _sourceDateEnd_ keys,** each of which is a **single value** of **format date-time**- [model 4.3.1](https://www.w3.org/TR/annotation-model/#time-state)", + "status": "PASS", + "message": null + }, + { + "name": "1:54 If present all **States of _type_ HttpRequestState** have a **_value_ key** - [model 4.3.2](https://www.w3.org/TR/annotation-model/#request-header-state)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + }, + { + "test": "/annotation-model/annotations/annotationOptionals-manual.html", + "subtests": [ + { + "name": "1:1 Implements Annotation-level **_creator_ key** with a **single value** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:2 Implements Annotation-level **_created_ key** which has a **single value** that is a **string of format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:3 Implements **_motivation_ key** with a **single value** that is from the **model's list of Motivations** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:5 Implements Annotation-level **_generated_ key** which has a **single value** that is a **string of format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:8 Implements **_motivation_ key** which has one or more values, each of which is from the **model's list of Motivations** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:13 Implements **_body_ key** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:30 Implements **External Web Resource** with **_id_ key** as a body of the Annotation [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:31 Implements **Embedded Textual Body** with **_value_ key** as a body of the Annotation [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + }, + { + "test": "/annotation-model/annotations/annotationsAgentOptionals-manual.html", + "subtests": [ + { + "name": "1:1 Implements **_creator_ key** which has one or more values, each of which is a **string of format uri** or an **object** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:3 Implements Annotation-level creator (Agent) **_type_ key** with one or more values from **model-recommended list (Person, Organization, Software)** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:5 Implements Annotation-level creator (Agent) **_name_ key** with a **single value** that is a string - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:6 Implements Annotation-level creator (Agent) **_name_ key** with one or more values - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:10 Implements **_generator_ key** which has one or more values, each of which is a **string of format uri** or an **object** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information).", + "status": "PASS", + "message": null + }, + { + "name": "1:12 Implements Annotation-level generator (Agent) **_type_ key** with one or more values from **model-recommended list (Person, Organization, Software)** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:14 Implements Annotation-level generator (Agent) **_name_ key** with a **single value** that is a string - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:15 Implements Annotation-level generator (Agent) **_name_ key** with one or more values. [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:18 Implements Annotation-level generator (Agent) **_homepage_ key** with one or more values, each of which is a **string of format uri** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + } + ] +} \ No newline at end of file diff --git a/annotation-model/HY-input/anno01.json b/annotation-model/HY-input/anno01.json new file mode 100644 index 0000000..70f8c3b --- /dev/null +++ b/annotation-model/HY-input/anno01.json @@ -0,0 +1 @@ +{"body": [{"text": "This is a test annotation for use in evaluating Hypothesis conformance against the emerging W3C annotation standards.", "type": "TextualBody", "format": "text/markdown"}, {"text": "w3c", "type": "TextualBody", "purpose": "tagging"}, {"text": "annotation", "type": "TextualBody", "purpose": "tagging"}, {"text": "testing", "type": "TextualBody", "purpose": "tagging"}], "target": [{"source": "http://example.com/", "selector": [{"endContainer": "/div[1]/p[1]", "startContainer": "/div[1]/p[1]", "type": "RangeSelector", "startOffset": 0, "endOffset": 63}, {"type": "TextPositionSelector", "end": 88, "start": 25}, {"exact": "This domain is established to be used for illustrative examples", "prefix": "\n\n Example Domain\n ", "type": "TextQuoteSelector", "suffix": " in documents. You may use this\n"}]}], "created": "2016-09-14T10:28:56.170033+00:00", "@context": "http://www.w3.org/ns/anno.jsonld", "creator": "acct:nickstenning@hypothes.is", "type": "Annotation", "id": "https://hypothes.is/a/Cm70BnpmEeatYSc2ahgkGg", "modified": "2016-09-14T10:28:56.170040+00:00"} diff --git a/annotation-model/HY01.json b/annotation-model/HY01.json new file mode 100644 index 0000000..e65313f --- /dev/null +++ b/annotation-model/HY01.json @@ -0,0 +1,375 @@ +{ + "results": [ + { + "test": "/annotation-model/annotations/annotationMusts-manual.html", + "subtests": [ + { + "name": "1:1 Implements **_@context_ key** and '**http://www.w3.org/ns/anno.jsonld**' is **a value of _@context_** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:2 Implements **Annotation _id_ key** which has a **single value** that is a **string of format uri** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:3 Implements **Annotation _type_ key** and '**Annotation**' is **a value of _type_** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:4 Implements **_target_ key** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:5 Each **_target_** is one of a **string of format uri**, an **External Web Resource**, a **Choice** or **Set**, or a **Specific Resource** - [model 3.2](https://www.w3.org/TR/annotation-model/#bodies-and-targets), [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:6 Annotation has a **_body_ key**, or a **_bodyValue_ key**, or **neither**, but **NEVER both** - [model 3.2.5](https://www.w3.org/TR/annotation-model/#string-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:7 If present, each **_body_** is one of a **string of format uri**, an **External Web Resource**, an **Embedded Textual Body**, a **Choice** or **Set**, or a **Specific Resource** - [model 3.2](https://www.w3.org/TR/annotation-model/#bodies-and-targets), [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "FAIL", + "message": "assert_true: ERROR: One or more Bodies of the Annotation is not one of a string of format uri, an External Web Resource, a Choice or Set, a Specific Resource.; expected true got false" + }, + { + "name": "1:8 If present the **_bodyValue_ key** has a **single value** that is a **string** - [model 3.2.5](https://www.w3.org/TR/annotation-model/#string-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:9 If present the Annotation-level **_created_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:10 If present the Annotation-level **_modified_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:11 If present the Annotation-level **_generated_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:12 If present the Annotation-level **_rights_ key** has values that are all **strings of format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:13 If present the Annotation-level **_canonical_ key** has a **single value** that is a **string of format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:14 If present the Annotation-level **_via_ key** has values that are all **strings of format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:15 If present as a body or body/source property, the **_textDirection_ key** has a **single value** which is **one of 'ltr', 'rtl', 'auto'** - [model 3.2.1](https://www.w3.org/TR/annotation-model/#external-web-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:16 If present all body-level or body/source-level **_created_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:17 If present all body-level or body/source-level **_modified_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:18 If present all body-level or body/source-level **_rights_ key values** are strings of **format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:19 If present all body-level or body/source-level **_canonical_ keys** have a **single value** which is a string of **format uri** - [model 3.3.](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:20 If present all body-level or body/source-level **_via_ key values** are strings of **format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:21 If an **External Web Resource** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:22 If an **External Web Resource** is a body, it does NOT have an **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:23 If a **Choice or Set** is a body, it does NOT have a **_value_ key** - [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:24 If a **Choice or Set** is a body, it does NOT have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:25 If a **Choice or Set** is a body, it does NOT have a **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:26 If an **Embedded Textual Body** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:27 If an **Embedded Textual Body** is a body, it does NOT have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:28 If a **Specific Resource** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:29 If a **Specific Resource** is a body, it does NOT have a **_value_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:30 If present as a target or target/source property, the **_textDirection_ key** has a **single value** which is **one of 'ltr', 'rtl', 'auto'** - [model 3.2.1](https://www.w3.org/TR/annotation-model/#external-web-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:31 If present all target-level or target/source-level **_created_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:32 If present all target-level or target/source-level **_modified_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:33 If present all target-level or target/source-level **_rights_ key values** are strings of **format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:34 If present all target-level or target/source-level **_canonical_ keys** have a **single value** which is a string of **format uri** - [model 3.3.](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:35 If present all target-level or target/source-level **_via_ key values** are strings of **format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:36 If an **External Web Resource** is a target, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:37 If an **External Web Resource** is a target, it does NOT have an **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:38 If a **Choice or Set** is a target, it does NOT have a **_value_ key** - [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-targ)", + "status": "PASS", + "message": null + }, + { + "name": "1:39 If a **Choice or Set** is a target, it does not have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:40 If a **Choice or Set** is a target, it does NOT have a **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:41 If a **Specific Resource Target** is a target, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:42 If a **Specific Resource** is a target, it does NOT have a **_value_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:43 Neither **target** Resources nor target Choice or Set items have a **_type_ key** which includes a value of **TextualBody** [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:44 If present **Specific Resource _selector_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'FragmentSelector', 'CssSelector', 'XPathSelector', 'TextQuoteSelector', 'TextPositionSelector', 'DataPositionSelector', 'SvgSelector', 'RangeSelector'** - [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "FAIL", + "message": "assert_true: ERROR: Annotation contains one or more Specific Resources selectors having value(s) which is(are) not of format uri, nor an object having a type key with a single value which is one of 'FragmentSelector', 'CssSelector', 'XPathSelector', 'TextQuoteSelector', 'TextPositionSelector', 'DataPositionSelector', 'SvgSelector', 'RangeSelector'.; expected true got false" + }, + { + "name": "1:45 If present **Specific Resource _state_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'TimeState' or 'HttpRequestState'** - [model 4.3](https://www.w3.org/TR/annotation-model/#states)", + "status": "PASS", + "message": null + }, + { + "name": "1:46 If present **Specific Resource _state_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'TimeState' or 'HttpRequestState'** - [model 4.3](https://www.w3.org/TR/annotation-model/#states)", + "status": "PASS", + "message": null + }, + { + "name": "1:47 If any **Specific Resource _styleClass_ keys** are present, a **_stylesheet_ key** (a key of Annotation) with a **single value** is also present [model 4.4](https://www.w3.org/TR/annotation-model/#styles)", + "status": "PASS", + "message": null + }, + { + "name": "1:48 If present all **Selectors of _type_ FragmentSelector, CssSelector, or XPathSelector** have a **_value_ key** with a **single value** - [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:49 If present all **Selectors of _type_ TextQuoteSelector** have an **_exact_ key** with a **single value** - [model 4.2.4](https://www.w3.org/TR/annotation-model/#text-quote-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:50 If present all **Selectors of _type_ TextPositionSelector or DataPositionSelector** have both a **_start_ key** and an **_end_ key**, each with a **single non-negative integer value** [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:51 If present all **Selectors of _type_ SvgSelector** have either a **_value_ key** or an **_id_ key** with a **single value** of format uri [model 4.2.7](https://www.w3.org/TR/annotation-model/#svg-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:52 If present all **Selectors of _type_ RangeSelector** have both a **_startSelector_ key** and an **_endSelector_ key**, each with a **single value** which is a **Selector** - [model 4.2.8](https://www.w3.org/TR/annotation-model/#range-selector)", + "status": "FAIL", + "message": "assert_true: ERROR: Annotation contains a Range selector that is NOT of format uri and NOT an object having both startSelector and endSelector keys.; expected true got false" + }, + { + "name": "1:53 If present all **States of _type_ TimeState** each have either (but not both) a **_souceDate_ key** or paired **_sourceDateStart_ and _sourceDateEnd_ keys,** each of which is a **single value** of **format date-time**- [model 4.3.1](https://www.w3.org/TR/annotation-model/#time-state)", + "status": "PASS", + "message": null + }, + { + "name": "1:54 If present all **States of _type_ HttpRequestState** have a **_value_ key** - [model 4.3.2](https://www.w3.org/TR/annotation-model/#request-header-state)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + }, + { + "test": "/annotation-model/annotations/annotationOptionals-manual.html", + "subtests": [ + { + "name": "1:1 Implements Annotation-level **_creator_ key** with a **single value** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:2 Implements Annotation-level **_created_ key** which has a **single value** that is a **string of format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:6 Implements Annotation-level **_modified_ key** which has a **single value** that is a **string of format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:13 Implements **_body_ key** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:30 Implements **External Web Resource** with **_id_ key** as a body of the Annotation [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:31 Implements **Embedded Textual Body** with **_value_ key** as a body of the Annotation [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:55 Implements **External Web Resource** with **_id_ key** as a target of the Annotation [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:62 Implements **Specific Resource** with **_source_ and at least one of _purpose, selector, state, style, renderedVia, scope_ keys** as a target of the Annotation [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:63 Implements **Specific Resource _refinedBy_ key** [model 4.2.9](https://www.w3.org/TR/annotation-model/#refinement-of-selection), [model 4.3.3](https://www.w3.org/TR/annotation-model/#refinement-of-state)", + "status": "PASS", + "message": null + }, + { + "name": "1:67 Implements **Specific Resource Selector** - [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:72 Implements **Specific Resource Text Quote Selector** - [model 4.2.4](https://www.w3.org/TR/annotation-model/#text-quote-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:73 Implements **Specific Resource _prefix_ key** with a **single string value** on a **Specific Resource TextQuoteSelector** - [model 4.2.4](https://www.w3.org/TR/annotation-model/#text-quote-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:74 Implements **Specific Resource _suffix_ key** with a **single string value** on a **Specific Resource TextQuoteSelector** - [model 4.2.4](https://www.w3.org/TR/annotation-model/#text-quote-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:75 Implements **Specific Resource Text Position Selector** - [model 4.2.5](https://www.w3.org/TR/annotation-model/#text-position-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:79 Implements **Specific Resource State** - [model 4.3](https://www.w3.org/TR/annotation-model/#states)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + }, + { + "test": "/annotation-model/annotations/annotationsAgentOptionals-manual.html", + "subtests": [ + { + "name": "1:1 Implements **_creator_ key** which has one or more values, each of which is a **string of format uri** or an **object** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + } + ] +} \ No newline at end of file diff --git a/annotation-model/KM-input/anno01.json b/annotation-model/KM-input/anno01.json new file mode 100644 index 0000000..6b3983a --- /dev/null +++ b/annotation-model/KM-input/anno01.json @@ -0,0 +1,21 @@ + { + "@context": [ + "http://www.w3.org/ns/anno.jsonld", + {"anbase": "http://purl.org/net/ld/annot/masaka/"} + ], + "id": "anbase:fa62d1351e5f1f18dfb44484f5e27a23", + "type": "Annotation", + "bodyValue": "Tail piece:The other end of strings are hooked to tail piece.", + "target": { + "id": "http://www.kanzaki.com/works/2004/imgdsc/040207_1739.jpg#xywh=44,357,94,50", + "type": "Image", + "source": "http://www.kanzaki.com/works/2004/imgdsc/040207_1739.jpg", + "selector": { + "type": "FragmentSelector", + "conformsTo": "http://www.w3.org/TR/media-frags/", + "value": "xywh=44,357,94,50" + } + }, + "creator": "http://purl.org/net/who/kanzaki#masahide", + "created": "2004-02-08T05:16:21Z" +} diff --git a/annotation-model/KM01.json b/annotation-model/KM01.json new file mode 100644 index 0000000..2c631b2 --- /dev/null +++ b/annotation-model/KM01.json @@ -0,0 +1,355 @@ +{ + "results": [ + { + "test": "/annotation-model/annotations/annotationMusts-manual.html", + "subtests": [ + { + "name": "1:1 Implements **_@context_ key** and '**http://www.w3.org/ns/anno.jsonld**' is **a value of _@context_** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:2 Implements **Annotation _id_ key** which has a **single value** that is a **string of format uri** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:3 Implements **Annotation _type_ key** and '**Annotation**' is **a value of _type_** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:4 Implements **_target_ key** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:5 Each **_target_** is one of a **string of format uri**, an **External Web Resource**, a **Choice** or **Set**, or a **Specific Resource** - [model 3.2](https://www.w3.org/TR/annotation-model/#bodies-and-targets), [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:6 Annotation has a **_body_ key**, or a **_bodyValue_ key**, or **neither**, but **NEVER both** - [model 3.2.5](https://www.w3.org/TR/annotation-model/#string-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:7 If present, each **_body_** is one of a **string of format uri**, an **External Web Resource**, an **Embedded Textual Body**, a **Choice** or **Set**, or a **Specific Resource** - [model 3.2](https://www.w3.org/TR/annotation-model/#bodies-and-targets), [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:8 If present the **_bodyValue_ key** has a **single value** that is a **string** - [model 3.2.5](https://www.w3.org/TR/annotation-model/#string-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:9 If present the Annotation-level **_created_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:10 If present the Annotation-level **_modified_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:11 If present the Annotation-level **_generated_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:12 If present the Annotation-level **_rights_ key** has values that are all **strings of format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:13 If present the Annotation-level **_canonical_ key** has a **single value** that is a **string of format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:14 If present the Annotation-level **_via_ key** has values that are all **strings of format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:15 If present as a body or body/source property, the **_textDirection_ key** has a **single value** which is **one of 'ltr', 'rtl', 'auto'** - [model 3.2.1](https://www.w3.org/TR/annotation-model/#external-web-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:16 If present all body-level or body/source-level **_created_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:17 If present all body-level or body/source-level **_modified_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:18 If present all body-level or body/source-level **_rights_ key values** are strings of **format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:19 If present all body-level or body/source-level **_canonical_ keys** have a **single value** which is a string of **format uri** - [model 3.3.](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:20 If present all body-level or body/source-level **_via_ key values** are strings of **format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:21 If an **External Web Resource** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:22 If an **External Web Resource** is a body, it does NOT have an **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:23 If a **Choice or Set** is a body, it does NOT have a **_value_ key** - [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:24 If a **Choice or Set** is a body, it does NOT have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:25 If a **Choice or Set** is a body, it does NOT have a **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:26 If an **Embedded Textual Body** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:27 If an **Embedded Textual Body** is a body, it does NOT have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:28 If a **Specific Resource** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:29 If a **Specific Resource** is a body, it does NOT have a **_value_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:30 If present as a target or target/source property, the **_textDirection_ key** has a **single value** which is **one of 'ltr', 'rtl', 'auto'** - [model 3.2.1](https://www.w3.org/TR/annotation-model/#external-web-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:31 If present all target-level or target/source-level **_created_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:32 If present all target-level or target/source-level **_modified_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:33 If present all target-level or target/source-level **_rights_ key values** are strings of **format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:34 If present all target-level or target/source-level **_canonical_ keys** have a **single value** which is a string of **format uri** - [model 3.3.](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:35 If present all target-level or target/source-level **_via_ key values** are strings of **format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:36 If an **External Web Resource** is a target, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:37 If an **External Web Resource** is a target, it does NOT have an **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:38 If a **Choice or Set** is a target, it does NOT have a **_value_ key** - [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-targ)", + "status": "PASS", + "message": null + }, + { + "name": "1:39 If a **Choice or Set** is a target, it does not have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:40 If a **Choice or Set** is a target, it does NOT have a **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:41 If a **Specific Resource Target** is a target, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:42 If a **Specific Resource** is a target, it does NOT have a **_value_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:43 Neither **target** Resources nor target Choice or Set items have a **_type_ key** which includes a value of **TextualBody** [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:44 If present **Specific Resource _selector_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'FragmentSelector', 'CssSelector', 'XPathSelector', 'TextQuoteSelector', 'TextPositionSelector', 'DataPositionSelector', 'SvgSelector', 'RangeSelector'** - [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:45 If present **Specific Resource _state_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'TimeState' or 'HttpRequestState'** - [model 4.3](https://www.w3.org/TR/annotation-model/#states)", + "status": "PASS", + "message": null + }, + { + "name": "1:46 If present **Specific Resource _state_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'TimeState' or 'HttpRequestState'** - [model 4.3](https://www.w3.org/TR/annotation-model/#states)", + "status": "PASS", + "message": null + }, + { + "name": "1:47 If any **Specific Resource _styleClass_ keys** are present, a **_stylesheet_ key** (a key of Annotation) with a **single value** is also present [model 4.4](https://www.w3.org/TR/annotation-model/#styles)", + "status": "PASS", + "message": null + }, + { + "name": "1:48 If present all **Selectors of _type_ FragmentSelector, CssSelector, or XPathSelector** have a **_value_ key** with a **single value** - [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:49 If present all **Selectors of _type_ TextQuoteSelector** have an **_exact_ key** with a **single value** - [model 4.2.4](https://www.w3.org/TR/annotation-model/#text-quote-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:50 If present all **Selectors of _type_ TextPositionSelector or DataPositionSelector** have both a **_start_ key** and an **_end_ key**, each with a **single non-negative integer value** [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:51 If present all **Selectors of _type_ SvgSelector** have either a **_value_ key** or an **_id_ key** with a **single value** of format uri [model 4.2.7](https://www.w3.org/TR/annotation-model/#svg-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:52 If present all **Selectors of _type_ RangeSelector** have both a **_startSelector_ key** and an **_endSelector_ key**, each with a **single value** which is a **Selector** - [model 4.2.8](https://www.w3.org/TR/annotation-model/#range-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:53 If present all **States of _type_ TimeState** each have either (but not both) a **_souceDate_ key** or paired **_sourceDateStart_ and _sourceDateEnd_ keys,** each of which is a **single value** of **format date-time**- [model 4.3.1](https://www.w3.org/TR/annotation-model/#time-state)", + "status": "PASS", + "message": null + }, + { + "name": "1:54 If present all **States of _type_ HttpRequestState** have a **_value_ key** - [model 4.3.2](https://www.w3.org/TR/annotation-model/#request-header-state)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + }, + { + "test": "/annotation-model/annotations/annotationOptionals-manual.html", + "subtests": [ + { + "name": "1:1 Implements Annotation-level **_creator_ key** with a **single value** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:2 Implements Annotation-level **_created_ key** which has a **single value** that is a **string of format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:4 Implements **_bodyValue_ key** which has a **single value** that is a **string** [model 3.2.5](https://www.w3.org/TR/annotation-model/#string-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:45 Implements **target _type_ key** with one or more values each of which is drawn from the **model's list of resource classes** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:55 Implements **External Web Resource** with **_id_ key** as a target of the Annotation [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:62 Implements **Specific Resource** with **_source_ and at least one of _purpose, selector, state, style, renderedVia, scope_ keys** as a target of the Annotation [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:63 Implements **Specific Resource _refinedBy_ key** [model 4.2.9](https://www.w3.org/TR/annotation-model/#refinement-of-selection), [model 4.3.3](https://www.w3.org/TR/annotation-model/#refinement-of-state)", + "status": "PASS", + "message": null + }, + { + "name": "1:67 Implements **Specific Resource Selector** - [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:68 Implements **Specific Resource Fragment Selector** - [model 4.2.1](https://www.w3.org/TR/annotation-model/#fragment-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:69 Implements **Specific Resource _conformsTo_ key** with a **single value** which is of **format uri** on a **Specific Resource FragmentSelector** - [model 4.2.1](https://www.w3.org/TR/annotation-model/#fragment-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:79 Implements **Specific Resource State** - [model 4.3](https://www.w3.org/TR/annotation-model/#states)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + }, + { + "test": "/annotation-model/annotations/annotationsAgentOptionals-manual.html", + "subtests": [ + { + "name": "1:1 Implements **_creator_ key** which has one or more values, each of which is a **string of format uri** or an **object** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + } + ] +} diff --git a/annotation-model/MM-input/anno01.json b/annotation-model/MM-input/anno01.json new file mode 100644 index 0000000..04c151d --- /dev/null +++ b/annotation-model/MM-input/anno01.json @@ -0,0 +1,30 @@ +{ + "@context": "http://www.w3.org/ns/anno.jsonld", + "id": "http://localhost:8080/annos/954ba87f-dfbc-4028-bfdb-ca46b4c69b07", + "type": "Annotation", + "motivation": [ + "commenting" + ], + "created": "2016-10-07T20:34:10Z", + "generator": { + "type": "Software", + "label": "MangoServer v0.9", + "homepage": "https://github.com/azaroth42/MangoServer/" + }, + "canonical": "http://localhost:8080/annos/954ba87f-dfbc-4028-bfdb-ca46b4c69b07", + "body": [ + { + "type": "TextualBody", + "value": "
Some testing comment for testing
", + "format": "text/html" + } + ], + "target": { + "type": "SpecificResource", + "selector": { + "type": "SvgSelector", + "value": "" + }, + "source": "http://dams.llgc.org.uk/iiif/2.0/4574752/canvas/4574755.json" + } +} diff --git a/annotation-model/MM-input/anno02.json b/annotation-model/MM-input/anno02.json new file mode 100644 index 0000000..f06d7ee --- /dev/null +++ b/annotation-model/MM-input/anno02.json @@ -0,0 +1,19 @@ +{ + "@context" : "http://www.w3.org/ns/anno.jsonld", + "id" : "urn:uuid:6C869FAD-7957-459C-A429-76D3839B2259", + "type" : "Annotation", + "motivation" : [ "commenting" ], + "body" : [ { + "type" : ["TextualBody", "dctypes:Text"], + "format" : "text/html", + "value" : "1852-1921
" + } ], + "target" : { + "type" : "SpecificResource", + "source" : "http://dams.llgc.org.uk/iiif/2.0/4574752/canvas/4574755.json", + "selector" : { + "type" : "FragmentSelector", + "value" : "xywh=2218,3217,371,78" + } + } +} diff --git a/annotation-model/MM-input/anno03.json b/annotation-model/MM-input/anno03.json new file mode 100644 index 0000000..9a1df2d --- /dev/null +++ b/annotation-model/MM-input/anno03.json @@ -0,0 +1,48 @@ +{ + "@context": [ + "http://iiif.io/api/presentation/2/context.json", + "http://www.w3.org/ns/anno.jsonld" + ], + "id": "http://conqueringcorsairs.com:8080/annos/fdeaaab1-7774-4e5a-a093-0039170010b2", + "type": "Annotation", + "motivation": "sc:painting", + "created": "2016-11-12T00:33:09Z", + "generator": { + "type": "Software", + "label": "MangoServer v0.9", + "homepage": "https://github.com/azaroth42/MangoServer/" + }, + "canonical": "http://conqueringcorsairs.com:8080/annos/fdeaaab1-7774-4e5a-a093-0039170010b2", + "body": { + "type": "Choice", + "items": [ + { + "id": "http://example.edu/services/iiif/f1r.c/full/full/0/default.jpg", + "type": "Image", + "label": "Color", + "format": "image/jpeg", + "service": { + "@context": "http://iiif.io/api/image/2/context.json", + "id": "http://example.edu/services/iiif/f1r.c", + "profile": "http://iiif.io/api/image/2/level2.json" + }, + "height": 3403, + "width": 2403 + }, + { + "id": "http://example.edu/services/iiif/f1r/full/full/0/default.jpg", + "type": "Image", + "label": "Black and White", + "format": "image/jpeg", + "service": { + "@context": "http://iiif.io/api/image/2/context.json", + "profile": "http://iiif.io/api/image/2/level2.json", + "@id": "http://example.edu/services/iiif/f1r" + }, + "height": 2203, + "width": 1548 + } + ] + }, + "target": "http://example.edu/prezi/m804/canvas/f1r.json" +} diff --git a/annotation-model/MM01.json b/annotation-model/MM01.json new file mode 100644 index 0000000..580003b --- /dev/null +++ b/annotation-model/MM01.json @@ -0,0 +1,390 @@ +{ + "results": [ + { + "test": "/annotation-model/annotations/annotationMusts-manual.html", + "subtests": [ + { + "name": "1:1 Implements **_@context_ key** and '**http://www.w3.org/ns/anno.jsonld**' is **a value of _@context_** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:2 Implements **Annotation _id_ key** which has a **single value** that is a **string of format uri** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:3 Implements **Annotation _type_ key** and '**Annotation**' is **a value of _type_** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:4 Implements **_target_ key** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:5 Each **_target_** is one of a **string of format uri**, an **External Web Resource**, a **Choice** or **Set**, or a **Specific Resource** - [model 3.2](https://www.w3.org/TR/annotation-model/#bodies-and-targets), [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:6 Annotation has a **_body_ key**, or a **_bodyValue_ key**, or **neither**, but **NEVER both** - [model 3.2.5](https://www.w3.org/TR/annotation-model/#string-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:7 If present, each **_body_** is one of a **string of format uri**, an **External Web Resource**, an **Embedded Textual Body**, a **Choice** or **Set**, or a **Specific Resource** - [model 3.2](https://www.w3.org/TR/annotation-model/#bodies-and-targets), [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:8 If present the **_bodyValue_ key** has a **single value** that is a **string** - [model 3.2.5](https://www.w3.org/TR/annotation-model/#string-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:9 If present the Annotation-level **_created_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:10 If present the Annotation-level **_modified_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:11 If present the Annotation-level **_generated_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:12 If present the Annotation-level **_rights_ key** has values that are all **strings of format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:13 If present the Annotation-level **_canonical_ key** has a **single value** that is a **string of format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:14 If present the Annotation-level **_via_ key** has values that are all **strings of format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:15 If present as a body or body/source property, the **_textDirection_ key** has a **single value** which is **one of 'ltr', 'rtl', 'auto'** - [model 3.2.1](https://www.w3.org/TR/annotation-model/#external-web-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:16 If present all body-level or body/source-level **_created_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:17 If present all body-level or body/source-level **_modified_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:18 If present all body-level or body/source-level **_rights_ key values** are strings of **format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:19 If present all body-level or body/source-level **_canonical_ keys** have a **single value** which is a string of **format uri** - [model 3.3.](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:20 If present all body-level or body/source-level **_via_ key values** are strings of **format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:21 If an **External Web Resource** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:22 If an **External Web Resource** is a body, it does NOT have an **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:23 If a **Choice or Set** is a body, it does NOT have a **_value_ key** - [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:24 If a **Choice or Set** is a body, it does NOT have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:25 If a **Choice or Set** is a body, it does NOT have a **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:26 If an **Embedded Textual Body** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:27 If an **Embedded Textual Body** is a body, it does NOT have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:28 If a **Specific Resource** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:29 If a **Specific Resource** is a body, it does NOT have a **_value_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:30 If present as a target or target/source property, the **_textDirection_ key** has a **single value** which is **one of 'ltr', 'rtl', 'auto'** - [model 3.2.1](https://www.w3.org/TR/annotation-model/#external-web-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:31 If present all target-level or target/source-level **_created_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:32 If present all target-level or target/source-level **_modified_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:33 If present all target-level or target/source-level **_rights_ key values** are strings of **format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:34 If present all target-level or target/source-level **_canonical_ keys** have a **single value** which is a string of **format uri** - [model 3.3.](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:35 If present all target-level or target/source-level **_via_ key values** are strings of **format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:36 If an **External Web Resource** is a target, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:37 If an **External Web Resource** is a target, it does NOT have an **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:38 If a **Choice or Set** is a target, it does NOT have a **_value_ key** - [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-targ)", + "status": "PASS", + "message": null + }, + { + "name": "1:39 If a **Choice or Set** is a target, it does not have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:40 If a **Choice or Set** is a target, it does NOT have a **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:41 If a **Specific Resource Target** is a target, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:42 If a **Specific Resource** is a target, it does NOT have a **_value_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:43 Neither **target** Resources nor target Choice or Set items have a **_type_ key** which includes a value of **TextualBody** [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:44 If present **Specific Resource _selector_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'FragmentSelector', 'CssSelector', 'XPathSelector', 'TextQuoteSelector', 'TextPositionSelector', 'DataPositionSelector', 'SvgSelector', 'RangeSelector'** - [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:45 If present **Specific Resource _state_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'TimeState' or 'HttpRequestState'** - [model 4.3](https://www.w3.org/TR/annotation-model/#states)", + "status": "PASS", + "message": null + }, + { + "name": "1:46 If present **Specific Resource _state_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'TimeState' or 'HttpRequestState'** - [model 4.3](https://www.w3.org/TR/annotation-model/#states)", + "status": "PASS", + "message": null + }, + { + "name": "1:47 If any **Specific Resource _styleClass_ keys** are present, a **_stylesheet_ key** (a key of Annotation) with a **single value** is also present [model 4.4](https://www.w3.org/TR/annotation-model/#styles)", + "status": "PASS", + "message": null + }, + { + "name": "1:48 If present all **Selectors of _type_ FragmentSelector, CssSelector, or XPathSelector** have a **_value_ key** with a **single value** - [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:49 If present all **Selectors of _type_ TextQuoteSelector** have an **_exact_ key** with a **single value** - [model 4.2.4](https://www.w3.org/TR/annotation-model/#text-quote-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:50 If present all **Selectors of _type_ TextPositionSelector or DataPositionSelector** have both a **_start_ key** and an **_end_ key**, each with a **single non-negative integer value** [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:51 If present all **Selectors of _type_ SvgSelector** have either a **_value_ key** or an **_id_ key** with a **single value** of format uri [model 4.2.7](https://www.w3.org/TR/annotation-model/#svg-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:52 If present all **Selectors of _type_ RangeSelector** have both a **_startSelector_ key** and an **_endSelector_ key**, each with a **single value** which is a **Selector** - [model 4.2.8](https://www.w3.org/TR/annotation-model/#range-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:53 If present all **States of _type_ TimeState** each have either (but not both) a **_souceDate_ key** or paired **_sourceDateStart_ and _sourceDateEnd_ keys,** each of which is a **single value** of **format date-time**- [model 4.3.1](https://www.w3.org/TR/annotation-model/#time-state)", + "status": "PASS", + "message": null + }, + { + "name": "1:54 If present all **States of _type_ HttpRequestState** have a **_value_ key** - [model 4.3.2](https://www.w3.org/TR/annotation-model/#request-header-state)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + }, + { + "test": "/annotation-model/annotations/annotationOptionals-manual.html", + "subtests": [ + { + "name": "1:2 Implements Annotation-level **_created_ key** which has a **single value** that is a **string of format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:3 Implements **_motivation_ key** with a **single value** that is from the **model's list of Motivations** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:8 Implements **_motivation_ key** which has one or more values, each of which is from the **model's list of Motivations** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:10 Implements Annotation-level **_canonical_ key** which has a single value that is a **string of format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:13 Implements **_body_ key** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:14 Implements **body _format_ key** with a **single value** that is a **media type** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:18 Implements **body _format_ key** with one or more values each of which is a **media type** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:30 Implements **External Web Resource** with **_id_ key** as a body of the Annotation [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:31 Implements **Embedded Textual Body** with **_value_ key** as a body of the Annotation [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:32 Implements **Embedded Textual Body _type_ key** which includes a value of **TextualBody** [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:55 Implements **External Web Resource** with **_id_ key** as a target of the Annotation [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:62 Implements **Specific Resource** with **_source_ and at least one of _purpose, selector, state, style, renderedVia, scope_ keys** as a target of the Annotation [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:63 Implements **Specific Resource _refinedBy_ key** [model 4.2.9](https://www.w3.org/TR/annotation-model/#refinement-of-selection), [model 4.3.3](https://www.w3.org/TR/annotation-model/#refinement-of-state)", + "status": "PASS", + "message": null + }, + { + "name": "1:67 Implements **Specific Resource Selector** - [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:77 Implements **Specific Resource SVG Selector** - [model 4.2.7](https://www.w3.org/TR/annotation-model/#svg-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:79 Implements **Specific Resource State** - [model 4.3](https://www.w3.org/TR/annotation-model/#states)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + }, + { + "test": "/annotation-model/annotations/annotationsAgentOptionals-manual.html", + "subtests": [ + { + "name": "1:10 Implements **_generator_ key** which has one or more values, each of which is a **string of format uri** or an **object** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information).", + "status": "PASS", + "message": null + }, + { + "name": "1:12 Implements Annotation-level generator (Agent) **_type_ key** with one or more values from **model-recommended list (Person, Organization, Software)** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:18 Implements Annotation-level generator (Agent) **_homepage_ key** with one or more values, each of which is a **string of format uri** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + } + ] +} \ No newline at end of file diff --git a/annotation-model/MM02.json b/annotation-model/MM02.json new file mode 100644 index 0000000..fb5bd29 --- /dev/null +++ b/annotation-model/MM02.json @@ -0,0 +1,405 @@ +{ + "results": [ + { + "test": "/annotation-model/annotations/annotationMusts-manual.html", + "subtests": [ + { + "name": "1:1 Implements **_@context_ key** and '**http://www.w3.org/ns/anno.jsonld**' is **a value of _@context_** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:2 Implements **Annotation _id_ key** which has a **single value** that is a **string of format uri** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:3 Implements **Annotation _type_ key** and '**Annotation**' is **a value of _type_** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:4 Implements **_target_ key** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:5 Each **_target_** is one of a **string of format uri**, an **External Web Resource**, a **Choice** or **Set**, or a **Specific Resource** - [model 3.2](https://www.w3.org/TR/annotation-model/#bodies-and-targets), [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:6 Annotation has a **_body_ key**, or a **_bodyValue_ key**, or **neither**, but **NEVER both** - [model 3.2.5](https://www.w3.org/TR/annotation-model/#string-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:7 If present, each **_body_** is one of a **string of format uri**, an **External Web Resource**, an **Embedded Textual Body**, a **Choice** or **Set**, or a **Specific Resource** - [model 3.2](https://www.w3.org/TR/annotation-model/#bodies-and-targets), [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:8 If present the **_bodyValue_ key** has a **single value** that is a **string** - [model 3.2.5](https://www.w3.org/TR/annotation-model/#string-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:9 If present the Annotation-level **_created_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:10 If present the Annotation-level **_modified_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:11 If present the Annotation-level **_generated_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:12 If present the Annotation-level **_rights_ key** has values that are all **strings of format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:13 If present the Annotation-level **_canonical_ key** has a **single value** that is a **string of format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:14 If present the Annotation-level **_via_ key** has values that are all **strings of format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:15 If present as a body or body/source property, the **_textDirection_ key** has a **single value** which is **one of 'ltr', 'rtl', 'auto'** - [model 3.2.1](https://www.w3.org/TR/annotation-model/#external-web-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:16 If present all body-level or body/source-level **_created_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:17 If present all body-level or body/source-level **_modified_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:18 If present all body-level or body/source-level **_rights_ key values** are strings of **format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:19 If present all body-level or body/source-level **_canonical_ keys** have a **single value** which is a string of **format uri** - [model 3.3.](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:20 If present all body-level or body/source-level **_via_ key values** are strings of **format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:21 If an **External Web Resource** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:22 If an **External Web Resource** is a body, it does NOT have an **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:23 If a **Choice or Set** is a body, it does NOT have a **_value_ key** - [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:24 If a **Choice or Set** is a body, it does NOT have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:25 If a **Choice or Set** is a body, it does NOT have a **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:26 If an **Embedded Textual Body** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:27 If an **Embedded Textual Body** is a body, it does NOT have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:28 If a **Specific Resource** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:29 If a **Specific Resource** is a body, it does NOT have a **_value_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:30 If present as a target or target/source property, the **_textDirection_ key** has a **single value** which is **one of 'ltr', 'rtl', 'auto'** - [model 3.2.1](https://www.w3.org/TR/annotation-model/#external-web-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:31 If present all target-level or target/source-level **_created_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:32 If present all target-level or target/source-level **_modified_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:33 If present all target-level or target/source-level **_rights_ key values** are strings of **format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:34 If present all target-level or target/source-level **_canonical_ keys** have a **single value** which is a string of **format uri** - [model 3.3.](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:35 If present all target-level or target/source-level **_via_ key values** are strings of **format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:36 If an **External Web Resource** is a target, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:37 If an **External Web Resource** is a target, it does NOT have an **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:38 If a **Choice or Set** is a target, it does NOT have a **_value_ key** - [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-targ)", + "status": "PASS", + "message": null + }, + { + "name": "1:39 If a **Choice or Set** is a target, it does not have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:40 If a **Choice or Set** is a target, it does NOT have a **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:41 If a **Specific Resource Target** is a target, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:42 If a **Specific Resource** is a target, it does NOT have a **_value_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:43 Neither **target** Resources nor target Choice or Set items have a **_type_ key** which includes a value of **TextualBody** [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:44 If present **Specific Resource _selector_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'FragmentSelector', 'CssSelector', 'XPathSelector', 'TextQuoteSelector', 'TextPositionSelector', 'DataPositionSelector', 'SvgSelector', 'RangeSelector'** - [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:45 If present **Specific Resource _state_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'TimeState' or 'HttpRequestState'** - [model 4.3](https://www.w3.org/TR/annotation-model/#states)", + "status": "PASS", + "message": null + }, + { + "name": "1:46 If present **Specific Resource _state_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'TimeState' or 'HttpRequestState'** - [model 4.3](https://www.w3.org/TR/annotation-model/#states)", + "status": "PASS", + "message": null + }, + { + "name": "1:47 If any **Specific Resource _styleClass_ keys** are present, a **_stylesheet_ key** (a key of Annotation) with a **single value** is also present [model 4.4](https://www.w3.org/TR/annotation-model/#styles)", + "status": "PASS", + "message": null + }, + { + "name": "1:48 If present all **Selectors of _type_ FragmentSelector, CssSelector, or XPathSelector** have a **_value_ key** with a **single value** - [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:49 If present all **Selectors of _type_ TextQuoteSelector** have an **_exact_ key** with a **single value** - [model 4.2.4](https://www.w3.org/TR/annotation-model/#text-quote-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:50 If present all **Selectors of _type_ TextPositionSelector or DataPositionSelector** have both a **_start_ key** and an **_end_ key**, each with a **single non-negative integer value** [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:51 If present all **Selectors of _type_ SvgSelector** have either a **_value_ key** or an **_id_ key** with a **single value** of format uri [model 4.2.7](https://www.w3.org/TR/annotation-model/#svg-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:52 If present all **Selectors of _type_ RangeSelector** have both a **_startSelector_ key** and an **_endSelector_ key**, each with a **single value** which is a **Selector** - [model 4.2.8](https://www.w3.org/TR/annotation-model/#range-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:53 If present all **States of _type_ TimeState** each have either (but not both) a **_souceDate_ key** or paired **_sourceDateStart_ and _sourceDateEnd_ keys,** each of which is a **single value** of **format date-time**- [model 4.3.1](https://www.w3.org/TR/annotation-model/#time-state)", + "status": "PASS", + "message": null + }, + { + "name": "1:54 If present all **States of _type_ HttpRequestState** have a **_value_ key** - [model 4.3.2](https://www.w3.org/TR/annotation-model/#request-header-state)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + }, + { + "test": "/annotation-model/annotations/annotationOptionals-manual.html", + "subtests": [ + { + "name": "1:1 Implements Annotation-level **_creator_ key** with a **single value** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:2 Implements Annotation-level **_created_ key** which has a **single value** that is a **string of format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:13 Implements **_body_ key** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:14 Implements **body _format_ key** with a **single value** that is a **media type** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:15 Implements **body _language_ key** with a **single value** that is a **language code** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:18 Implements **body _format_ key** with one or more values each of which is a **media type** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:19 Implements **body _language_ key** with one or more values each of which is a **language code** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:30 Implements **External Web Resource** with **_id_ key** as a body of the Annotation [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:31 Implements **Embedded Textual Body** with **_value_ key** as a body of the Annotation [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:32 Implements **Embedded Textual Body _type_ key** which includes a value of **TextualBody** [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + }, + { + "test": "/annotation-model/annotations/annotationsAgentOptionals-manual.html", + "subtests": [ + { + "name": "1:1 Implements **_creator_ key** which has one or more values, each of which is a **string of format uri** or an **object** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:3 Implements Annotation-level creator (Agent) **_type_ key** with one or more values from **model-recommended list (Person, Organization, Software)** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:5 Implements Annotation-level creator (Agent) **_name_ key** with a **single value** that is a string - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:6 Implements Annotation-level creator (Agent) **_name_ key** with one or more values - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:7 Implements Annotation-level creator (Agent) **_email_ key** with one or more values, each of which is a **mailto: uri** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:9 Implements Annotation-level creator (Agent) **_homepage_ key** with one or more values, each of which is a **string of format uri** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:10 Implements **_generator_ key** which has one or more values, each of which is a **string of format uri** or an **object** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information).", + "status": "PASS", + "message": null + }, + { + "name": "1:11 Implements Annotation-level generator (Agent) **_id_ key** with **single value** that is a **string of format uri** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:12 Implements Annotation-level generator (Agent) **_type_ key** with one or more values from **model-recommended list (Person, Organization, Software)** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:14 Implements Annotation-level generator (Agent) **_name_ key** with a **single value** that is a string - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:15 Implements Annotation-level generator (Agent) **_name_ key** with one or more values. [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:18 Implements Annotation-level generator (Agent) **_homepage_ key** with one or more values, each of which is a **string of format uri** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + } + ] +} \ No newline at end of file diff --git a/annotation-model/MM03.json b/annotation-model/MM03.json new file mode 100644 index 0000000..aac3774 --- /dev/null +++ b/annotation-model/MM03.json @@ -0,0 +1,412 @@ +{ + "results": [ + { + "test": "/annotation-model/annotations/annotationMusts-manual.html", + "subtests": [ + { + "name": "1:1 Implements **_@context_ key** and '**http://www.w3.org/ns/anno.jsonld**' is **a value of _@context_** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:2 Implements **Annotation _id_ key** which has a **single value** that is a **string of format uri** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:3 Implements **Annotation _type_ key** and '**Annotation**' is **a value of _type_** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:4 Implements **_target_ key** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:5 Each **_target_** is one of a **string of format uri**, an **External Web Resource**, a **Choice** or **Set**, or a **Specific Resource** - [model 3.2](https://www.w3.org/TR/annotation-model/#bodies-and-targets), [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:6 Annotation has a **_body_ key**, or a **_bodyValue_ key**, or **neither**, but **NEVER both** - [model 3.2.5](https://www.w3.org/TR/annotation-model/#string-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:7 If present, each **_body_** is one of a **string of format uri**, an **External Web Resource**, an **Embedded Textual Body**, a **Choice** or **Set**, or a **Specific Resource** - [model 3.2](https://www.w3.org/TR/annotation-model/#bodies-and-targets), [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:8 If present the **_bodyValue_ key** has a **single value** that is a **string** - [model 3.2.5](https://www.w3.org/TR/annotation-model/#string-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:9 If present the Annotation-level **_created_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:10 If present the Annotation-level **_modified_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:11 If present the Annotation-level **_generated_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:12 If present the Annotation-level **_rights_ key** has values that are all **strings of format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:13 If present the Annotation-level **_canonical_ key** has a **single value** that is a **string of format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:14 If present the Annotation-level **_via_ key** has values that are all **strings of format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:15 If present as a body or body/source property, the **_textDirection_ key** has a **single value** which is **one of 'ltr', 'rtl', 'auto'** - [model 3.2.1](https://www.w3.org/TR/annotation-model/#external-web-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:16 If present all body-level or body/source-level **_created_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:17 If present all body-level or body/source-level **_modified_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:18 If present all body-level or body/source-level **_rights_ key values** are strings of **format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:19 If present all body-level or body/source-level **_canonical_ keys** have a **single value** which is a string of **format uri** - [model 3.3.](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:20 If present all body-level or body/source-level **_via_ key values** are strings of **format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:21 If an **External Web Resource** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:22 If an **External Web Resource** is a body, it does NOT have an **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:23 If a **Choice or Set** is a body, it does NOT have a **_value_ key** - [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:24 If a **Choice or Set** is a body, it does NOT have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:25 If a **Choice or Set** is a body, it does NOT have a **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:26 If an **Embedded Textual Body** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:27 If an **Embedded Textual Body** is a body, it does NOT have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:28 If a **Specific Resource** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:29 If a **Specific Resource** is a body, it does NOT have a **_value_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:30 If present as a target or target/source property, the **_textDirection_ key** has a **single value** which is **one of 'ltr', 'rtl', 'auto'** - [model 3.2.1](https://www.w3.org/TR/annotation-model/#external-web-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:31 If present all target-level or target/source-level **_created_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:32 If present all target-level or target/source-level **_modified_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:33 If present all target-level or target/source-level **_rights_ key values** are strings of **format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:34 If present all target-level or target/source-level **_canonical_ keys** have a **single value** which is a string of **format uri** - [model 3.3.](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:35 If present all target-level or target/source-level **_via_ key values** are strings of **format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:36 If an **External Web Resource** is a target, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:37 If an **External Web Resource** is a target, it does NOT have an **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:38 If a **Choice or Set** is a target, it does NOT have a **_value_ key** - [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-targ)", + "status": "PASS", + "message": null + }, + { + "name": "1:39 If a **Choice or Set** is a target, it does not have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:40 If a **Choice or Set** is a target, it does NOT have a **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:41 If a **Specific Resource Target** is a target, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:42 If a **Specific Resource** is a target, it does NOT have a **_value_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:43 Neither **target** Resources nor target Choice or Set items have a **_type_ key** which includes a value of **TextualBody** [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:44 If present **Specific Resource _selector_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'FragmentSelector', 'CssSelector', 'XPathSelector', 'TextQuoteSelector', 'TextPositionSelector', 'DataPositionSelector', 'SvgSelector', 'RangeSelector'** - [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:45 If present **Specific Resource _state_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'TimeState' or 'HttpRequestState'** - [model 4.3](https://www.w3.org/TR/annotation-model/#states)", + "status": "PASS", + "message": null + }, + { + "name": "1:46 If present **Specific Resource _state_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'TimeState' or 'HttpRequestState'** - [model 4.3](https://www.w3.org/TR/annotation-model/#states)", + "status": "PASS", + "message": null + }, + { + "name": "1:47 If any **Specific Resource _styleClass_ keys** are present, a **_stylesheet_ key** (a key of Annotation) with a **single value** is also present [model 4.4](https://www.w3.org/TR/annotation-model/#styles)", + "status": "PASS", + "message": null + }, + { + "name": "1:48 If present all **Selectors of _type_ FragmentSelector, CssSelector, or XPathSelector** have a **_value_ key** with a **single value** - [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:49 If present all **Selectors of _type_ TextQuoteSelector** have an **_exact_ key** with a **single value** - [model 4.2.4](https://www.w3.org/TR/annotation-model/#text-quote-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:50 If present all **Selectors of _type_ TextPositionSelector or DataPositionSelector** have both a **_start_ key** and an **_end_ key**, each with a **single non-negative integer value** [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:51 If present all **Selectors of _type_ SvgSelector** have either a **_value_ key** or an **_id_ key** with a **single value** of format uri [model 4.2.7](https://www.w3.org/TR/annotation-model/#svg-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:52 If present all **Selectors of _type_ RangeSelector** have both a **_startSelector_ key** and an **_endSelector_ key**, each with a **single value** which is a **Selector** - [model 4.2.8](https://www.w3.org/TR/annotation-model/#range-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:53 If present all **States of _type_ TimeState** each have either (but not both) a **_souceDate_ key** or paired **_sourceDateStart_ and _sourceDateEnd_ keys,** each of which is a **single value** of **format date-time**- [model 4.3.1](https://www.w3.org/TR/annotation-model/#time-state)", + "status": "PASS", + "message": null + }, + { + "name": "1:54 If present all **States of _type_ HttpRequestState** have a **_value_ key** - [model 4.3.2](https://www.w3.org/TR/annotation-model/#request-header-state)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + }, + { + "test": "/annotation-model/annotations/annotationOptionals-manual.html", + "subtests": [ + { + "name": "1:2 Implements Annotation-level **_created_ key** which has a **single value** that is a **string of format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:10 Implements Annotation-level **_canonical_ key** which has a single value that is a **string of format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:13 Implements **_body_ key** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:14 Implements **body _format_ key** with a **single value** that is a **media type** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:18 Implements **body _format_ key** with one or more values each of which is a **media type** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:20 Implements **body _type_ key** with one or more values each of which is drawn from the **model's list of resource classes** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:30 Implements **External Web Resource** with **_id_ key** as a body of the Annotation [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:34 Implements **Choice or Set** with type and items key as a body - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:35 Implements **Choice** with **_type_ and _items_ keys** as a body of the Annotation [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + }, + { + "test": "/annotation-model/annotations/annotationsAgentOptionals-manual.html", + "subtests": [ + { + "name": "1:10 Implements **_generator_ key** which has one or more values, each of which is a **string of format uri** or an **object** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information).", + "status": "PASS", + "message": null + }, + { + "name": "1:12 Implements Annotation-level generator (Agent) **_type_ key** with one or more values from **model-recommended list (Person, Organization, Software)** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:18 Implements Annotation-level generator (Agent) **_homepage_ key** with one or more values, each of which is a **string of format uri** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + }, + { + "test": "/annotation-model/collections/collectionMusts-manual.html", + "subtests": [ + { + "name": "1:1 Implements **_@context_ key** and '**http://www.w3.org/ns/anno.jsonld**' is **a value of _@context_** - [model 5.1](https://www.w3.org/TR/annotation-model/#annotation-collection)", + "status": "PASS", + "message": null + }, + { + "name": "1:2 Implements **Annotation Collection _id_ key** which has a **single value** that is a **string of format uri** - [model 5.1](https://www.w3.org/TR/annotation-model/#annotation-collection)", + "status": "PASS", + "message": null + }, + { + "name": "1:3 Implements **Annotation Collection _type_ key** such that '**AnnotationCollection**' is **a value of _type_** - [model 5.1](https://www.w3.org/TR/annotation-model/#annotation-collection)", + "status": "FAIL", + "message": "assert_true: ERROR: Annotation Collection is missing type key or 'AnnotationCollection' is not a value of type.; expected true got false" + }, + { + "name": "1:4 **Annotation Collection _label_ key**, if present, is **a value of type string** - [model 5.1](https://www.w3.org/TR/annotation-model/#annotation-collection)", + "status": "PASS", + "message": null + }, + { + "name": "1:5 **Annotation Collection _total_ key**, if present, is **a non-negative integer value** - [model 5.1](https://www.w3.org/TR/annotation-model/#annotation-collection)", + "status": "PASS", + "message": null + }, + { + "name": "1:6 **Annotation Collection has _first_ key**, or no **_total_ key**, or **_total_ key** with value of zero - [model 5.1](https://www.w3.org/TR/annotation-model/#annotation-collection)", + "status": "PASS", + "message": null + }, + { + "name": "1:7 **Annotation Collection _last_ key**, if present, is **a single value of format uri** - [model 5.1](https://www.w3.org/TR/annotation-model/#annotation-collection)", + "status": "PASS", + "message": null + }, + { + "name": "1:8 If present the Annotation Collection-level **_created_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:9 If present the Annotation Collection-level **_modified_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:10 If present the Annotation Collection Collection-level **_rights_ key** has values that are all **strings of format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + } + ] +} diff --git a/annotation-model/PN-input/.keep b/annotation-model/PN-input/.keep new file mode 100644 index 0000000..e69de29 diff --git a/annotation-model/PN-input/PN01.anno b/annotation-model/PN-input/PN01.anno new file mode 100644 index 0000000..dd7b015 --- /dev/null +++ b/annotation-model/PN-input/PN01.anno @@ -0,0 +1,71 @@ + { + "@id": "http:\/\/purl.org\/pundit\/as\/annotation\/fc75e478", + "@type": [ + "http:\/\/www.openannotation.org\/ns\/Annotation" + ], + "http:\/\/purl.org\/pundit\/ont\/ao#hasPageContext": [ + { + "@id": "http:\/\/sfr-inc.com\/" + } + ], + "http:\/\/purl.org\/pundit\/ont\/ao#hasPageTitle": [ + { + "@value": "SFR INC" + } + ], + "http:\/\/purl.org\/pundit\/ont\/ao#id": [ + { + "@value": "fc75e478" + } + ], + "http:\/\/purl.org\/pundit\/ont\/ao#isIncludedIn": [ + { + "@id": "http:\/\/purl.org\/pundit\/as\/notebook\/4895cc41" + } + ], + "http:\/\/www.openannotation.org\/ns\/annotatedAt": [ + { + "@type": "http:\/\/www.w3.org\/2001\/XMLSchema#dateTime", + "@value": "2016-09-30T11:16:57Z" + } + ], + "http:\/\/www.openannotation.org\/ns\/annotatedBy": [ + { + "@id": "http:\/\/purl.org\/pundit\/as\/user\/0e3f5a44" + }, + { + "@value": "Dan Ilo" + } + ], + "http:\/\/www.openannotation.org\/ns\/hasTarget": [ + { + "@id": "http:\/\/purl.org\/pundit\/as\/target\/1f48e10257fee8fc4b39cc32cb4cff60" + } + ], + "http:\/\/www.openannotation.org\/ns\/motivatedBy": [ + { + "@id": "http:\/\/www.openannotation.org\/ns\/highlighting" + } + ], + "http:\/\/www.openannotation.org\/ns\/serializedAt": [ + { + "@type": "http:\/\/www.w3.org\/2001\/XMLSchema#dateTime", + "@value": "2016-09-30T11:16:57Z" + } + ], + "http:\/\/www.openannotation.org\/ns\/serializedBy": [ + { + "@id": "http:\/\/thepund.it" + } + ], + "http:\/\/www.w3.org\/2000\/01\/rdf-schema#label": [ + { + "@value": "Annotation 2016-09-30T11:16:57Z" + } + ], + "http:\/\/xmlns.com\/foaf\/0.1\/thumbnail": [ + { + "@id": "https:\/\/graph.facebook.com\/945862302146498\/picture?type=square" + } + ] + } diff --git a/annotation-model/PN-input/PN02.anno b/annotation-model/PN-input/PN02.anno new file mode 100644 index 0000000..5e024ad --- /dev/null +++ b/annotation-model/PN-input/PN02.anno @@ -0,0 +1,43 @@ + { + "@id": "http:\/\/purl.org\/pundit\/as\/notebook\/4895cc41", + "@type": [ + "http:\/\/purl.org\/pundit\/ont\/ao#Notebook" + ], + "http:\/\/purl.org\/dc\/elements\/1.1\/creator": [ + { + "@value": "Dan Ilo" + } + ], + "http:\/\/purl.org\/dc\/terms\/created": [ + { + "@type": "http:\/\/www.w3.org\/2001\/XMLSchema#dateTime", + "@value": "2016-08-05T10:06:04Z" + } + ], + "http:\/\/purl.org\/dc\/terms\/creator": [ + { + "@id": "http:\/\/purl.org\/pundit\/as\/user\/0e3f5a44" + } + ], + "http:\/\/purl.org\/pundit\/ont\/ao#id": [ + { + "@value": "4895cc41" + } + ], + "http:\/\/purl.org\/pundit\/ont\/ao#includes": [ + { + "@id": "http:\/\/purl.org\/pundit\/as\/annotation\/fc75e478" + } + ], + "http:\/\/purl.org\/pundit\/ont\/ao#isPublic": [ + { + "@type": "http:\/\/www.w3.org\/2001\/XMLSchema#boolean", + "@value": "true" + } + ], + "http:\/\/www.w3.org\/2000\/01\/rdf-schema#label": [ + { + "@value": "f" + } + ] + } diff --git a/annotation-model/PN-input/PN03.anno b/annotation-model/PN-input/PN03.anno new file mode 100644 index 0000000..7810b3e --- /dev/null +++ b/annotation-model/PN-input/PN03.anno @@ -0,0 +1,21 @@ + { + "@id": "http:\/\/purl.org\/pundit\/as\/selector\/1f48e10257fee8fc4b39cc32cb4cff60", + "@type": [ + "http:\/\/www.openannotation.org\/ns\/FragmentSelector" + ], + "http:\/\/purl.org\/dc\/terms\/conformsTo": [ + { + "@id": "http:\/\/tools.ietf.org\/rfc\/rfc3023" + } + ], + "http:\/\/www.w3.org\/1999\/02\/22-rdf-syntax-ns#value": [ + { + "@value": "http:\/\/sfr-inc.com\/#xpointer(start-point(string-range(\/\/BODY\/DIV[1]\/DIV[1]\/DIV[4]\/DIV[1]\/DIV[1],'',93))\/range-to(string-range(\/\/BODY\/DIV[1]\/DIV[1]\/DIV[4]\/DIV[1]\/DIV[1],'',97)))" + } + ], + "http:\/\/www.w3.org\/2000\/01\/rdf-schema#label": [ + { + "@value": "time" + } + ] + } diff --git a/annotation-model/PN-input/PN04.anno b/annotation-model/PN-input/PN04.anno new file mode 100644 index 0000000..84d1f60 --- /dev/null +++ b/annotation-model/PN-input/PN04.anno @@ -0,0 +1,27 @@ + { + "@id": "http:\/\/purl.org\/pundit\/as\/target\/1f48e10257fee8fc4b39cc32cb4cff60", + "@type": [ + "http:\/\/purl.org\/pundit\/ont\/ao#fragment-text", + "http:\/\/www.openannotation.org\/ns\/SpecificResource" + ], + "http:\/\/purl.org\/dc\/terms\/isPartOf": [ + { + "@id": "http:\/\/sfr-inc.com\/" + } + ], + "http:\/\/www.openannotation.org\/ns\/hasScope": [ + { + "@id": "http:\/\/sfr-inc.com\/" + } + ], + "http:\/\/www.openannotation.org\/ns\/hasSelector": [ + { + "@id": "http:\/\/purl.org\/pundit\/as\/selector\/1f48e10257fee8fc4b39cc32cb4cff60" + } + ], + "http:\/\/www.openannotation.org\/ns\/hasSource": [ + { + "@id": "http:\/\/sfr-inc.com\/" + } + ] + } diff --git a/annotation-model/PN-input/PN05.anno b/annotation-model/PN-input/PN05.anno new file mode 100644 index 0000000..136a79a --- /dev/null +++ b/annotation-model/PN-input/PN05.anno @@ -0,0 +1,41 @@ + { + "@id": "http:\/\/purl.org\/pundit\/as\/user\/0e3f5a44", + "@type": [ + "http:\/\/xmlns.com\/foaf\/0.1\/Person" + ], + "http:\/\/purl.org\/pundit\/ont\/ao#current": [ + { + "@id": "http:\/\/purl.org\/pundit\/as\/notebook\/fbf38dd8" + } + ], + "http:\/\/xmlns.com\/foaf\/0.1\/familyName": [ + { + "@value": "Ilo" + } + ], + "http:\/\/xmlns.com\/foaf\/0.1\/givenName": [ + { + "@value": "Dan" + } + ], + "http:\/\/xmlns.com\/foaf\/0.1\/mbox": [ + { + "@id": "mailto:danilogiacomi@gmail.com" + } + ], + "http:\/\/xmlns.com\/foaf\/0.1\/mbox_sha1sum": [ + { + "@value": "0e768ef0c4d177c7d7807ed189a497d56d534879" + } + ], + "http:\/\/xmlns.com\/foaf\/0.1\/name": [ + { + "@value": "Dan Ilo" + } + ], + "http:\/\/xmlns.com\/foaf\/0.1\/thumbnail": [ + { + "@id": "https:\/\/graph.facebook.com\/945862302146498\/picture?type=square" + } + ] + } diff --git a/annotation-model/PN-input/notebook.json b/annotation-model/PN-input/notebook.json new file mode 100644 index 0000000..128727d --- /dev/null +++ b/annotation-model/PN-input/notebook.json @@ -0,0 +1 @@ +[{"@id":"http:\/\/purl.org\/pundit\/as\/annotation\/fc75e478","@type":["http:\/\/www.openannotation.org\/ns\/Annotation"],"http:\/\/purl.org\/pundit\/ont\/ao#hasPageContext":[{"@id":"http:\/\/sfr-inc.com\/"}],"http:\/\/purl.org\/pundit\/ont\/ao#hasPageTitle":[{"@value":"SFR INC"}],"http:\/\/purl.org\/pundit\/ont\/ao#id":[{"@value":"fc75e478"}],"http:\/\/purl.org\/pundit\/ont\/ao#isIncludedIn":[{"@id":"http:\/\/purl.org\/pundit\/as\/notebook\/4895cc41"}],"http:\/\/www.openannotation.org\/ns\/annotatedAt":[{"@type":"http:\/\/www.w3.org\/2001\/XMLSchema#dateTime","@value":"2016-09-30T11:16:57Z"}],"http:\/\/www.openannotation.org\/ns\/annotatedBy":[{"@id":"http:\/\/purl.org\/pundit\/as\/user\/0e3f5a44"},{"@value":"Dan Ilo"}],"http:\/\/www.openannotation.org\/ns\/hasTarget":[{"@id":"http:\/\/purl.org\/pundit\/as\/target\/1f48e10257fee8fc4b39cc32cb4cff60"}],"http:\/\/www.openannotation.org\/ns\/motivatedBy":[{"@id":"http:\/\/www.openannotation.org\/ns\/highlighting"}],"http:\/\/www.openannotation.org\/ns\/serializedAt":[{"@type":"http:\/\/www.w3.org\/2001\/XMLSchema#dateTime","@value":"2016-09-30T11:16:57Z"}],"http:\/\/www.openannotation.org\/ns\/serializedBy":[{"@id":"http:\/\/thepund.it"}],"http:\/\/www.w3.org\/2000\/01\/rdf-schema#label":[{"@value":"Annotation 2016-09-30T11:16:57Z"}],"http:\/\/xmlns.com\/foaf\/0.1\/thumbnail":[{"@id":"https:\/\/graph.facebook.com\/945862302146498\/picture?type=square"}]},{"@id":"http:\/\/purl.org\/pundit\/as\/notebook\/4895cc41","@type":["http:\/\/purl.org\/pundit\/ont\/ao#Notebook"],"http:\/\/purl.org\/dc\/elements\/1.1\/creator":[{"@value":"Dan Ilo"}],"http:\/\/purl.org\/dc\/terms\/created":[{"@type":"http:\/\/www.w3.org\/2001\/XMLSchema#dateTime","@value":"2016-08-05T10:06:04Z"}],"http:\/\/purl.org\/dc\/terms\/creator":[{"@id":"http:\/\/purl.org\/pundit\/as\/user\/0e3f5a44"}],"http:\/\/purl.org\/pundit\/ont\/ao#id":[{"@value":"4895cc41"}],"http:\/\/purl.org\/pundit\/ont\/ao#includes":[{"@id":"http:\/\/purl.org\/pundit\/as\/annotation\/fc75e478"}],"http:\/\/purl.org\/pundit\/ont\/ao#isPublic":[{"@type":"http:\/\/www.w3.org\/2001\/XMLSchema#boolean","@value":"true"}],"http:\/\/www.w3.org\/2000\/01\/rdf-schema#label":[{"@value":"f"}]},{"@id":"http:\/\/purl.org\/pundit\/as\/selector\/1f48e10257fee8fc4b39cc32cb4cff60","@type":["http:\/\/www.openannotation.org\/ns\/FragmentSelector"],"http:\/\/purl.org\/dc\/terms\/conformsTo":[{"@id":"http:\/\/tools.ietf.org\/rfc\/rfc3023"}],"http:\/\/www.w3.org\/1999\/02\/22-rdf-syntax-ns#value":[{"@value":"http:\/\/sfr-inc.com\/#xpointer(start-point(string-range(\/\/BODY\/DIV[1]\/DIV[1]\/DIV[4]\/DIV[1]\/DIV[1],\u0027\u0027,93))\/range-to(string-range(\/\/BODY\/DIV[1]\/DIV[1]\/DIV[4]\/DIV[1]\/DIV[1],\u0027\u0027,97)))"}],"http:\/\/www.w3.org\/2000\/01\/rdf-schema#label":[{"@value":"time"}]},{"@id":"http:\/\/purl.org\/pundit\/as\/target\/1f48e10257fee8fc4b39cc32cb4cff60","@type":["http:\/\/purl.org\/pundit\/ont\/ao#fragment-text","http:\/\/www.openannotation.org\/ns\/SpecificResource"],"http:\/\/purl.org\/dc\/terms\/isPartOf":[{"@id":"http:\/\/sfr-inc.com\/"}],"http:\/\/www.openannotation.org\/ns\/hasScope":[{"@id":"http:\/\/sfr-inc.com\/"}],"http:\/\/www.openannotation.org\/ns\/hasSelector":[{"@id":"http:\/\/purl.org\/pundit\/as\/selector\/1f48e10257fee8fc4b39cc32cb4cff60"}],"http:\/\/www.openannotation.org\/ns\/hasSource":[{"@id":"http:\/\/sfr-inc.com\/"}]},{"@id":"http:\/\/purl.org\/pundit\/as\/user\/0e3f5a44","@type":["http:\/\/xmlns.com\/foaf\/0.1\/Person"],"http:\/\/purl.org\/pundit\/ont\/ao#current":[{"@id":"http:\/\/purl.org\/pundit\/as\/notebook\/fbf38dd8"}],"http:\/\/xmlns.com\/foaf\/0.1\/familyName":[{"@value":"Ilo"}],"http:\/\/xmlns.com\/foaf\/0.1\/givenName":[{"@value":"Dan"}],"http:\/\/xmlns.com\/foaf\/0.1\/mbox":[{"@id":"mailto:danilogiacomi@gmail.com"}],"http:\/\/xmlns.com\/foaf\/0.1\/mbox_sha1sum":[{"@value":"0e768ef0c4d177c7d7807ed189a497d56d534879"}],"http:\/\/xmlns.com\/foaf\/0.1\/name":[{"@value":"Dan Ilo"}],"http:\/\/xmlns.com\/foaf\/0.1\/thumbnail":[{"@id":"https:\/\/graph.facebook.com\/945862302146498\/picture?type=square"}]}] \ No newline at end of file diff --git a/annotation-model/PN01.json b/annotation-model/PN01.json new file mode 100644 index 0000000..bb27401 --- /dev/null +++ b/annotation-model/PN01.json @@ -0,0 +1,555 @@ +{ + "results": [ + { + "test": "/annotation-model/annotations/annotationMusts-manual.html", + "subtests": [ + { + "name": "1:1 Implements **_@context_ key** and '**http://www.w3.org/ns/anno.jsonld**' is **a value of _@context_** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "FAIL", + "message": "assert_true: ERROR: Annotation is missing @context key or 'http://www.w3.org/ns/anno.jsonld' is not a value of @context.; expected true got false" + }, + { + "name": "1:2 Implements **Annotation _id_ key** which has a **single value** that is a **string of format uri** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "FAIL", + "message": "assert_true: ERROR: Annotation is missing id key or its value is not a single string of format uri.; expected true got false" + }, + { + "name": "1:3 Implements **Annotation _type_ key** and '**Annotation**' is **a value of _type_** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "FAIL", + "message": "assert_true: ERROR: Annotation is missing type key or 'Annotation' is not a value of type.; expected true got false" + }, + { + "name": "1:4 Implements **_target_ key** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "FAIL", + "message": "assert_true: Error: Annotation is missing target key.; expected true got false" + }, + { + "name": "1:5 Each **_target_** is one of a **string of format uri**, an **External Web Resource**, a **Choice** or **Set**, or a **Specific Resource** - [model 3.2](https://www.w3.org/TR/annotation-model/#bodies-and-targets), [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:6 Annotation has a **_body_ key**, or a **_bodyValue_ key**, or **neither**, but **NEVER both** - [model 3.2.5](https://www.w3.org/TR/annotation-model/#string-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:7 If present, each **_body_** is one of a **string of format uri**, an **External Web Resource**, an **Embedded Textual Body**, a **Choice** or **Set**, or a **Specific Resource** - [model 3.2](https://www.w3.org/TR/annotation-model/#bodies-and-targets), [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:8 If present the **_bodyValue_ key** has a **single value** that is a **string** - [model 3.2.5](https://www.w3.org/TR/annotation-model/#string-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:9 If present the Annotation-level **_created_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:10 If present the Annotation-level **_modified_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:11 If present the Annotation-level **_generated_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:12 If present the Annotation-level **_rights_ key** has values that are all **strings of format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:13 If present the Annotation-level **_canonical_ key** has a **single value** that is a **string of format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:14 If present the Annotation-level **_via_ key** has values that are all **strings of format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:15 If present as a body or body/source property, the **_textDirection_ key** has a **single value** which is **one of 'ltr', 'rtl', 'auto'** - [model 3.2.1](https://www.w3.org/TR/annotation-model/#external-web-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:16 If present all body-level or body/source-level **_created_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:17 If present all body-level or body/source-level **_modified_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:18 If present all body-level or body/source-level **_rights_ key values** are strings of **format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:19 If present all body-level or body/source-level **_canonical_ keys** have a **single value** which is a string of **format uri** - [model 3.3.](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:20 If present all body-level or body/source-level **_via_ key values** are strings of **format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:21 If an **External Web Resource** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:22 If an **External Web Resource** is a body, it does NOT have an **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:23 If a **Choice or Set** is a body, it does NOT have a **_value_ key** - [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:24 If a **Choice or Set** is a body, it does NOT have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:25 If a **Choice or Set** is a body, it does NOT have a **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:26 If an **Embedded Textual Body** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:27 If an **Embedded Textual Body** is a body, it does NOT have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:28 If a **Specific Resource** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:29 If a **Specific Resource** is a body, it does NOT have a **_value_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:30 If present as a target or target/source property, the **_textDirection_ key** has a **single value** which is **one of 'ltr', 'rtl', 'auto'** - [model 3.2.1](https://www.w3.org/TR/annotation-model/#external-web-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:31 If present all target-level or target/source-level **_created_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:32 If present all target-level or target/source-level **_modified_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:33 If present all target-level or target/source-level **_rights_ key values** are strings of **format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:34 If present all target-level or target/source-level **_canonical_ keys** have a **single value** which is a string of **format uri** - [model 3.3.](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:35 If present all target-level or target/source-level **_via_ key values** are strings of **format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:36 If an **External Web Resource** is a target, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:37 If an **External Web Resource** is a target, it does NOT have an **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:38 If a **Choice or Set** is a target, it does NOT have a **_value_ key** - [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-targ)", + "status": "PASS", + "message": null + }, + { + "name": "1:39 If a **Choice or Set** is a target, it does not have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:40 If a **Choice or Set** is a target, it does NOT have a **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:41 If a **Specific Resource Target** is a target, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:42 If a **Specific Resource** is a target, it does NOT have a **_value_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:43 Neither **target** Resources nor target Choice or Set items have a **_type_ key** which includes a value of **TextualBody** [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:44 If present **Specific Resource _selector_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'FragmentSelector', 'CssSelector', 'XPathSelector', 'TextQuoteSelector', 'TextPositionSelector', 'DataPositionSelector', 'SvgSelector', 'RangeSelector'** - [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:45 If present **Specific Resource _state_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'TimeState' or 'HttpRequestState'** - [model 4.3](https://www.w3.org/TR/annotation-model/#states)", + "status": "PASS", + "message": null + }, + { + "name": "1:46 If present **Specific Resource _state_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'TimeState' or 'HttpRequestState'** - [model 4.3](https://www.w3.org/TR/annotation-model/#states)", + "status": "PASS", + "message": null + }, + { + "name": "1:47 If any **Specific Resource _styleClass_ keys** are present, a **_stylesheet_ key** (a key of Annotation) with a **single value** is also present [model 4.4](https://www.w3.org/TR/annotation-model/#styles)", + "status": "FAIL", + "message": "assert_true: ERROR: Annotation contains one or more Specific Resources with styleClass key, but does not contain an Annotation-level stylesheet key.; expected true got false" + }, + { + "name": "1:48 If present all **Selectors of _type_ FragmentSelector, CssSelector, or XPathSelector** have a **_value_ key** with a **single value** - [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:49 If present all **Selectors of _type_ TextQuoteSelector** have an **_exact_ key** with a **single value** - [model 4.2.4](https://www.w3.org/TR/annotation-model/#text-quote-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:50 If present all **Selectors of _type_ TextPositionSelector or DataPositionSelector** have both a **_start_ key** and an **_end_ key**, each with a **single non-negative integer value** [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:51 If present all **Selectors of _type_ SvgSelector** have either a **_value_ key** or an **_id_ key** with a **single value** of format uri [model 4.2.7](https://www.w3.org/TR/annotation-model/#svg-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:52 If present all **Selectors of _type_ RangeSelector** have both a **_startSelector_ key** and an **_endSelector_ key**, each with a **single value** which is a **Selector** - [model 4.2.8](https://www.w3.org/TR/annotation-model/#range-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:53 If present all **States of _type_ TimeState** each have either (but not both) a **_souceDate_ key** or paired **_sourceDateStart_ and _sourceDateEnd_ keys,** each of which is a **single value** of **format date-time**- [model 4.3.1](https://www.w3.org/TR/annotation-model/#time-state)", + "status": "PASS", + "message": null + }, + { + "name": "1:54 If present all **States of _type_ HttpRequestState** have a **_value_ key** - [model 4.3.2](https://www.w3.org/TR/annotation-model/#request-header-state)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + }, + { + "test": "/annotation-model/annotations/annotationOptionals-manual.html", + "subtests": [ + { + "name": "1:39 Implements **target _format_ key** with a **single value** that is a **media type** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:40 Implements **target _language_ key** with a **single value** that is a **language code** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:41 Implements **target _creator_ key** with a **single value** [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:42 Implements **target _created_ key** with a **single value** that is of **format date-time** [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:43 Implements **target _format_ key** with one or more values each of which is a **media type** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:44 Implements **target _language_ key** with one or more values each of which is a **language code** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:45 Implements **target _type_ key** with one or more values each of which is drawn from the **model's list of resource classes** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:46 Implements **target _processingLanguage_ key** with a **single value** that is a **language code** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:47 Implements **target _textDirection_ key** with a **single value** that is is **one of ltr, rtl, or auto** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:48 Implements **target _modified_ key** with a **single value** that is of **format date-time** [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:49 Implements **target _audience_ key** which has one or more values with each audience instance described using **[schema.org/Audience](http://schema.org/Audience) classes and properties** - [model 3.3.3](https://www.w3.org/TR/annotation-model/#intended-audience)", + "status": "PASS", + "message": null + }, + { + "name": "1:50 Implements **target _accessibility_ key** which has one or more values - [model 3.3.4](#https://www.w3.org/TR/annotation-model/#accessibility-of-content)", + "status": "PASS", + "message": null + }, + { + "name": "1:51 Implements **target _purpose_ key** with one or more values are each drawn from **model's list of Motivations** [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:52 Implements **target _rights_ key** which has one or more values, each of which is a **string of format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:53 Implements **target _canonical_ key** with a **single value** that is of **format uri** [model 3.3.7](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:54 Implements **target _via_ key** which has one or more values, each of which is a **string of format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:55 Implements **External Web Resource** with **_id_ key** as a target of the Annotation [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:56 Implements **Choice or Set** with type and items key as a target - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:57 Implements **Choice** with **_type_ and _items_ keys** as a target of the Annotation [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:58 Implements **List** with **_type_ and _items_ keys** as a target of the Annotation [model 3.2.8](https://www.w3.org/TR/annotation-model/#sets-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:59 Implements **Composite** with **_type_ and _items_ keys** as a target of the Annotation [model 3.2.8](https://www.w3.org/TR/annotation-model/#sets-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:60 Implements **Independents** with **_type_ and _items_ keys** as a target of the Annotation [model 3.2.8](https://www.w3.org/TR/annotation-model/#sets-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:62 Implements **Specific Resource** with **_source_ and at least one of _purpose, selector, state, style, renderedVia, scope_ keys** as a target of the Annotation [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:63 Implements **Specific Resource _refinedBy_ key** [model 4.2.9](https://www.w3.org/TR/annotation-model/#refinement-of-selection), [model 4.3.3](https://www.w3.org/TR/annotation-model/#refinement-of-state)", + "status": "PASS", + "message": null + }, + { + "name": "1:64 Implements **Specific Resource _styleClass_ key** with one or more values on a **Specific Resource** - [model 4.4](https://www.w3.org/TR/annotation-model/#styles)", + "status": "PASS", + "message": null + }, + { + "name": "1:65 Implements **Specific Resource _renderedVia_ key** with one or more values on a **Specific Resource** - [model 4.5](https://www.w3.org/TR/annotation-model/#rendering-software)", + "status": "PASS", + "message": null + }, + { + "name": "1:66 Implements **Specific Resource _scope_ key** - [model 4.6](https://www.w3.org/TR/annotation-model/#scope-of-a-resource)", + "status": "PASS", + "message": null + }, + { + "name": "1:67 Implements **Specific Resource Selector** - [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:68 Implements **Specific Resource Fragment Selector** - [model 4.2.1](https://www.w3.org/TR/annotation-model/#fragment-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:69 Implements **Specific Resource _conformsTo_ key** with a **single value** which is of **format uri** on a **Specific Resource FragmentSelector** - [model 4.2.1](https://www.w3.org/TR/annotation-model/#fragment-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:70 Implements **Specific Resource CSS Selector** - [model 4.2.2](https://www.w3.org/TR/annotation-model/#css-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:71 Implements **Specific Resource XPath Selector** - [model 4.2.3](https://www.w3.org/TR/annotation-model/#xpath-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:72 Implements **Specific Resource Text Quote Selector** - [model 4.2.4](https://www.w3.org/TR/annotation-model/#text-quote-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:73 Implements **Specific Resource _prefix_ key** with a **single string value** on a **Specific Resource TextQuoteSelector** - [model 4.2.4](https://www.w3.org/TR/annotation-model/#text-quote-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:74 Implements **Specific Resource _suffix_ key** with a **single string value** on a **Specific Resource TextQuoteSelector** - [model 4.2.4](https://www.w3.org/TR/annotation-model/#text-quote-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:75 Implements **Specific Resource Text Position Selector** - [model 4.2.5](https://www.w3.org/TR/annotation-model/#text-position-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:76 Implements **Specific Resource Data Position Selector** - [model 4.2.6](https://www.w3.org/TR/annotation-model/#data-position-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:77 Implements **Specific Resource SVG Selector** - [model 4.2.7](https://www.w3.org/TR/annotation-model/#svg-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:78 Implements **Specific Resource Range Selector** - [model 4.2.8](https://www.w3.org/TR/annotation-model/#range-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:79 Implements **Specific Resource State** - [model 4.3](https://www.w3.org/TR/annotation-model/#states)", + "status": "PASS", + "message": null + }, + { + "name": "1:80 Implements **Specific Resource Time State** - [model 4.3.1](https://www.w3.org/TR/annotation-model/#time-state)", + "status": "PASS", + "message": null + }, + { + "name": "1:81 Implements **Specific Resource Request Header State** - [model 4.3.2](https://www.w3.org/TR/annotation-model/#request-header-state)", + "status": "PASS", + "message": null + }, + { + "name": "1:82 Implements **Specific Resource _cached_ key** with one or more values each of **format uri** on a **Specific Resource TimeState** - [model 4.3.1](https://www.w3.org/TR/annotation-model/#time-state)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + }, + { + "test": "/annotation-model/annotations/annotationsAgentOptionals-manual.html", + "subtests": [ + { + "name": "1:28 Implements **target _creator_ key** with one or more values - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:29 Implements Target-level creator (Agent) **_id_ key** with **single value** that is a **string of format uri** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:30 Implements Target-level creator (Agent) **_type_ key** with one or more values from **model-recommended list (Person, Organization, Software)** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:31 Implements Target-level creator (Agent) **_nickname_ key** with a **single value** that is a string - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:32 Implements Target-level creator (Agent) **_name_ key** with a **single value** that is a string - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:33 Implements Target-level creator (Agent) **_name_ key** with one or more values - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:34 Implements Target-level creator (Agent) **_email_ key** with one or more values, each of which is a **mailto: uri** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:35 Implements Target-level creator (Agent) **email_sha1 key** with one or more values - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:36 Implements Target-level creator (Agent) **_homepage_ key** with one or more values, each of which is a **string of format uri** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + } + ] +} \ No newline at end of file diff --git a/annotation-model/PN02.json b/annotation-model/PN02.json new file mode 100644 index 0000000..bb27401 --- /dev/null +++ b/annotation-model/PN02.json @@ -0,0 +1,555 @@ +{ + "results": [ + { + "test": "/annotation-model/annotations/annotationMusts-manual.html", + "subtests": [ + { + "name": "1:1 Implements **_@context_ key** and '**http://www.w3.org/ns/anno.jsonld**' is **a value of _@context_** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "FAIL", + "message": "assert_true: ERROR: Annotation is missing @context key or 'http://www.w3.org/ns/anno.jsonld' is not a value of @context.; expected true got false" + }, + { + "name": "1:2 Implements **Annotation _id_ key** which has a **single value** that is a **string of format uri** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "FAIL", + "message": "assert_true: ERROR: Annotation is missing id key or its value is not a single string of format uri.; expected true got false" + }, + { + "name": "1:3 Implements **Annotation _type_ key** and '**Annotation**' is **a value of _type_** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "FAIL", + "message": "assert_true: ERROR: Annotation is missing type key or 'Annotation' is not a value of type.; expected true got false" + }, + { + "name": "1:4 Implements **_target_ key** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "FAIL", + "message": "assert_true: Error: Annotation is missing target key.; expected true got false" + }, + { + "name": "1:5 Each **_target_** is one of a **string of format uri**, an **External Web Resource**, a **Choice** or **Set**, or a **Specific Resource** - [model 3.2](https://www.w3.org/TR/annotation-model/#bodies-and-targets), [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:6 Annotation has a **_body_ key**, or a **_bodyValue_ key**, or **neither**, but **NEVER both** - [model 3.2.5](https://www.w3.org/TR/annotation-model/#string-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:7 If present, each **_body_** is one of a **string of format uri**, an **External Web Resource**, an **Embedded Textual Body**, a **Choice** or **Set**, or a **Specific Resource** - [model 3.2](https://www.w3.org/TR/annotation-model/#bodies-and-targets), [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:8 If present the **_bodyValue_ key** has a **single value** that is a **string** - [model 3.2.5](https://www.w3.org/TR/annotation-model/#string-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:9 If present the Annotation-level **_created_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:10 If present the Annotation-level **_modified_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:11 If present the Annotation-level **_generated_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:12 If present the Annotation-level **_rights_ key** has values that are all **strings of format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:13 If present the Annotation-level **_canonical_ key** has a **single value** that is a **string of format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:14 If present the Annotation-level **_via_ key** has values that are all **strings of format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:15 If present as a body or body/source property, the **_textDirection_ key** has a **single value** which is **one of 'ltr', 'rtl', 'auto'** - [model 3.2.1](https://www.w3.org/TR/annotation-model/#external-web-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:16 If present all body-level or body/source-level **_created_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:17 If present all body-level or body/source-level **_modified_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:18 If present all body-level or body/source-level **_rights_ key values** are strings of **format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:19 If present all body-level or body/source-level **_canonical_ keys** have a **single value** which is a string of **format uri** - [model 3.3.](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:20 If present all body-level or body/source-level **_via_ key values** are strings of **format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:21 If an **External Web Resource** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:22 If an **External Web Resource** is a body, it does NOT have an **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:23 If a **Choice or Set** is a body, it does NOT have a **_value_ key** - [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:24 If a **Choice or Set** is a body, it does NOT have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:25 If a **Choice or Set** is a body, it does NOT have a **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:26 If an **Embedded Textual Body** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:27 If an **Embedded Textual Body** is a body, it does NOT have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:28 If a **Specific Resource** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:29 If a **Specific Resource** is a body, it does NOT have a **_value_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:30 If present as a target or target/source property, the **_textDirection_ key** has a **single value** which is **one of 'ltr', 'rtl', 'auto'** - [model 3.2.1](https://www.w3.org/TR/annotation-model/#external-web-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:31 If present all target-level or target/source-level **_created_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:32 If present all target-level or target/source-level **_modified_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:33 If present all target-level or target/source-level **_rights_ key values** are strings of **format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:34 If present all target-level or target/source-level **_canonical_ keys** have a **single value** which is a string of **format uri** - [model 3.3.](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:35 If present all target-level or target/source-level **_via_ key values** are strings of **format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:36 If an **External Web Resource** is a target, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:37 If an **External Web Resource** is a target, it does NOT have an **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:38 If a **Choice or Set** is a target, it does NOT have a **_value_ key** - [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-targ)", + "status": "PASS", + "message": null + }, + { + "name": "1:39 If a **Choice or Set** is a target, it does not have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:40 If a **Choice or Set** is a target, it does NOT have a **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:41 If a **Specific Resource Target** is a target, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:42 If a **Specific Resource** is a target, it does NOT have a **_value_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:43 Neither **target** Resources nor target Choice or Set items have a **_type_ key** which includes a value of **TextualBody** [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:44 If present **Specific Resource _selector_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'FragmentSelector', 'CssSelector', 'XPathSelector', 'TextQuoteSelector', 'TextPositionSelector', 'DataPositionSelector', 'SvgSelector', 'RangeSelector'** - [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:45 If present **Specific Resource _state_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'TimeState' or 'HttpRequestState'** - [model 4.3](https://www.w3.org/TR/annotation-model/#states)", + "status": "PASS", + "message": null + }, + { + "name": "1:46 If present **Specific Resource _state_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'TimeState' or 'HttpRequestState'** - [model 4.3](https://www.w3.org/TR/annotation-model/#states)", + "status": "PASS", + "message": null + }, + { + "name": "1:47 If any **Specific Resource _styleClass_ keys** are present, a **_stylesheet_ key** (a key of Annotation) with a **single value** is also present [model 4.4](https://www.w3.org/TR/annotation-model/#styles)", + "status": "FAIL", + "message": "assert_true: ERROR: Annotation contains one or more Specific Resources with styleClass key, but does not contain an Annotation-level stylesheet key.; expected true got false" + }, + { + "name": "1:48 If present all **Selectors of _type_ FragmentSelector, CssSelector, or XPathSelector** have a **_value_ key** with a **single value** - [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:49 If present all **Selectors of _type_ TextQuoteSelector** have an **_exact_ key** with a **single value** - [model 4.2.4](https://www.w3.org/TR/annotation-model/#text-quote-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:50 If present all **Selectors of _type_ TextPositionSelector or DataPositionSelector** have both a **_start_ key** and an **_end_ key**, each with a **single non-negative integer value** [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:51 If present all **Selectors of _type_ SvgSelector** have either a **_value_ key** or an **_id_ key** with a **single value** of format uri [model 4.2.7](https://www.w3.org/TR/annotation-model/#svg-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:52 If present all **Selectors of _type_ RangeSelector** have both a **_startSelector_ key** and an **_endSelector_ key**, each with a **single value** which is a **Selector** - [model 4.2.8](https://www.w3.org/TR/annotation-model/#range-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:53 If present all **States of _type_ TimeState** each have either (but not both) a **_souceDate_ key** or paired **_sourceDateStart_ and _sourceDateEnd_ keys,** each of which is a **single value** of **format date-time**- [model 4.3.1](https://www.w3.org/TR/annotation-model/#time-state)", + "status": "PASS", + "message": null + }, + { + "name": "1:54 If present all **States of _type_ HttpRequestState** have a **_value_ key** - [model 4.3.2](https://www.w3.org/TR/annotation-model/#request-header-state)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + }, + { + "test": "/annotation-model/annotations/annotationOptionals-manual.html", + "subtests": [ + { + "name": "1:39 Implements **target _format_ key** with a **single value** that is a **media type** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:40 Implements **target _language_ key** with a **single value** that is a **language code** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:41 Implements **target _creator_ key** with a **single value** [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:42 Implements **target _created_ key** with a **single value** that is of **format date-time** [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:43 Implements **target _format_ key** with one or more values each of which is a **media type** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:44 Implements **target _language_ key** with one or more values each of which is a **language code** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:45 Implements **target _type_ key** with one or more values each of which is drawn from the **model's list of resource classes** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:46 Implements **target _processingLanguage_ key** with a **single value** that is a **language code** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:47 Implements **target _textDirection_ key** with a **single value** that is is **one of ltr, rtl, or auto** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:48 Implements **target _modified_ key** with a **single value** that is of **format date-time** [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:49 Implements **target _audience_ key** which has one or more values with each audience instance described using **[schema.org/Audience](http://schema.org/Audience) classes and properties** - [model 3.3.3](https://www.w3.org/TR/annotation-model/#intended-audience)", + "status": "PASS", + "message": null + }, + { + "name": "1:50 Implements **target _accessibility_ key** which has one or more values - [model 3.3.4](#https://www.w3.org/TR/annotation-model/#accessibility-of-content)", + "status": "PASS", + "message": null + }, + { + "name": "1:51 Implements **target _purpose_ key** with one or more values are each drawn from **model's list of Motivations** [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:52 Implements **target _rights_ key** which has one or more values, each of which is a **string of format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:53 Implements **target _canonical_ key** with a **single value** that is of **format uri** [model 3.3.7](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:54 Implements **target _via_ key** which has one or more values, each of which is a **string of format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:55 Implements **External Web Resource** with **_id_ key** as a target of the Annotation [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:56 Implements **Choice or Set** with type and items key as a target - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:57 Implements **Choice** with **_type_ and _items_ keys** as a target of the Annotation [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:58 Implements **List** with **_type_ and _items_ keys** as a target of the Annotation [model 3.2.8](https://www.w3.org/TR/annotation-model/#sets-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:59 Implements **Composite** with **_type_ and _items_ keys** as a target of the Annotation [model 3.2.8](https://www.w3.org/TR/annotation-model/#sets-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:60 Implements **Independents** with **_type_ and _items_ keys** as a target of the Annotation [model 3.2.8](https://www.w3.org/TR/annotation-model/#sets-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:62 Implements **Specific Resource** with **_source_ and at least one of _purpose, selector, state, style, renderedVia, scope_ keys** as a target of the Annotation [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:63 Implements **Specific Resource _refinedBy_ key** [model 4.2.9](https://www.w3.org/TR/annotation-model/#refinement-of-selection), [model 4.3.3](https://www.w3.org/TR/annotation-model/#refinement-of-state)", + "status": "PASS", + "message": null + }, + { + "name": "1:64 Implements **Specific Resource _styleClass_ key** with one or more values on a **Specific Resource** - [model 4.4](https://www.w3.org/TR/annotation-model/#styles)", + "status": "PASS", + "message": null + }, + { + "name": "1:65 Implements **Specific Resource _renderedVia_ key** with one or more values on a **Specific Resource** - [model 4.5](https://www.w3.org/TR/annotation-model/#rendering-software)", + "status": "PASS", + "message": null + }, + { + "name": "1:66 Implements **Specific Resource _scope_ key** - [model 4.6](https://www.w3.org/TR/annotation-model/#scope-of-a-resource)", + "status": "PASS", + "message": null + }, + { + "name": "1:67 Implements **Specific Resource Selector** - [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:68 Implements **Specific Resource Fragment Selector** - [model 4.2.1](https://www.w3.org/TR/annotation-model/#fragment-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:69 Implements **Specific Resource _conformsTo_ key** with a **single value** which is of **format uri** on a **Specific Resource FragmentSelector** - [model 4.2.1](https://www.w3.org/TR/annotation-model/#fragment-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:70 Implements **Specific Resource CSS Selector** - [model 4.2.2](https://www.w3.org/TR/annotation-model/#css-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:71 Implements **Specific Resource XPath Selector** - [model 4.2.3](https://www.w3.org/TR/annotation-model/#xpath-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:72 Implements **Specific Resource Text Quote Selector** - [model 4.2.4](https://www.w3.org/TR/annotation-model/#text-quote-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:73 Implements **Specific Resource _prefix_ key** with a **single string value** on a **Specific Resource TextQuoteSelector** - [model 4.2.4](https://www.w3.org/TR/annotation-model/#text-quote-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:74 Implements **Specific Resource _suffix_ key** with a **single string value** on a **Specific Resource TextQuoteSelector** - [model 4.2.4](https://www.w3.org/TR/annotation-model/#text-quote-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:75 Implements **Specific Resource Text Position Selector** - [model 4.2.5](https://www.w3.org/TR/annotation-model/#text-position-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:76 Implements **Specific Resource Data Position Selector** - [model 4.2.6](https://www.w3.org/TR/annotation-model/#data-position-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:77 Implements **Specific Resource SVG Selector** - [model 4.2.7](https://www.w3.org/TR/annotation-model/#svg-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:78 Implements **Specific Resource Range Selector** - [model 4.2.8](https://www.w3.org/TR/annotation-model/#range-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:79 Implements **Specific Resource State** - [model 4.3](https://www.w3.org/TR/annotation-model/#states)", + "status": "PASS", + "message": null + }, + { + "name": "1:80 Implements **Specific Resource Time State** - [model 4.3.1](https://www.w3.org/TR/annotation-model/#time-state)", + "status": "PASS", + "message": null + }, + { + "name": "1:81 Implements **Specific Resource Request Header State** - [model 4.3.2](https://www.w3.org/TR/annotation-model/#request-header-state)", + "status": "PASS", + "message": null + }, + { + "name": "1:82 Implements **Specific Resource _cached_ key** with one or more values each of **format uri** on a **Specific Resource TimeState** - [model 4.3.1](https://www.w3.org/TR/annotation-model/#time-state)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + }, + { + "test": "/annotation-model/annotations/annotationsAgentOptionals-manual.html", + "subtests": [ + { + "name": "1:28 Implements **target _creator_ key** with one or more values - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:29 Implements Target-level creator (Agent) **_id_ key** with **single value** that is a **string of format uri** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:30 Implements Target-level creator (Agent) **_type_ key** with one or more values from **model-recommended list (Person, Organization, Software)** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:31 Implements Target-level creator (Agent) **_nickname_ key** with a **single value** that is a string - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:32 Implements Target-level creator (Agent) **_name_ key** with a **single value** that is a string - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:33 Implements Target-level creator (Agent) **_name_ key** with one or more values - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:34 Implements Target-level creator (Agent) **_email_ key** with one or more values, each of which is a **mailto: uri** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:35 Implements Target-level creator (Agent) **email_sha1 key** with one or more values - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:36 Implements Target-level creator (Agent) **_homepage_ key** with one or more values, each of which is a **string of format uri** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + } + ] +} \ No newline at end of file diff --git a/annotation-model/PN03.json b/annotation-model/PN03.json new file mode 100644 index 0000000..bb27401 --- /dev/null +++ b/annotation-model/PN03.json @@ -0,0 +1,555 @@ +{ + "results": [ + { + "test": "/annotation-model/annotations/annotationMusts-manual.html", + "subtests": [ + { + "name": "1:1 Implements **_@context_ key** and '**http://www.w3.org/ns/anno.jsonld**' is **a value of _@context_** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "FAIL", + "message": "assert_true: ERROR: Annotation is missing @context key or 'http://www.w3.org/ns/anno.jsonld' is not a value of @context.; expected true got false" + }, + { + "name": "1:2 Implements **Annotation _id_ key** which has a **single value** that is a **string of format uri** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "FAIL", + "message": "assert_true: ERROR: Annotation is missing id key or its value is not a single string of format uri.; expected true got false" + }, + { + "name": "1:3 Implements **Annotation _type_ key** and '**Annotation**' is **a value of _type_** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "FAIL", + "message": "assert_true: ERROR: Annotation is missing type key or 'Annotation' is not a value of type.; expected true got false" + }, + { + "name": "1:4 Implements **_target_ key** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "FAIL", + "message": "assert_true: Error: Annotation is missing target key.; expected true got false" + }, + { + "name": "1:5 Each **_target_** is one of a **string of format uri**, an **External Web Resource**, a **Choice** or **Set**, or a **Specific Resource** - [model 3.2](https://www.w3.org/TR/annotation-model/#bodies-and-targets), [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:6 Annotation has a **_body_ key**, or a **_bodyValue_ key**, or **neither**, but **NEVER both** - [model 3.2.5](https://www.w3.org/TR/annotation-model/#string-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:7 If present, each **_body_** is one of a **string of format uri**, an **External Web Resource**, an **Embedded Textual Body**, a **Choice** or **Set**, or a **Specific Resource** - [model 3.2](https://www.w3.org/TR/annotation-model/#bodies-and-targets), [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:8 If present the **_bodyValue_ key** has a **single value** that is a **string** - [model 3.2.5](https://www.w3.org/TR/annotation-model/#string-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:9 If present the Annotation-level **_created_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:10 If present the Annotation-level **_modified_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:11 If present the Annotation-level **_generated_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:12 If present the Annotation-level **_rights_ key** has values that are all **strings of format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:13 If present the Annotation-level **_canonical_ key** has a **single value** that is a **string of format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:14 If present the Annotation-level **_via_ key** has values that are all **strings of format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:15 If present as a body or body/source property, the **_textDirection_ key** has a **single value** which is **one of 'ltr', 'rtl', 'auto'** - [model 3.2.1](https://www.w3.org/TR/annotation-model/#external-web-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:16 If present all body-level or body/source-level **_created_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:17 If present all body-level or body/source-level **_modified_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:18 If present all body-level or body/source-level **_rights_ key values** are strings of **format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:19 If present all body-level or body/source-level **_canonical_ keys** have a **single value** which is a string of **format uri** - [model 3.3.](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:20 If present all body-level or body/source-level **_via_ key values** are strings of **format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:21 If an **External Web Resource** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:22 If an **External Web Resource** is a body, it does NOT have an **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:23 If a **Choice or Set** is a body, it does NOT have a **_value_ key** - [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:24 If a **Choice or Set** is a body, it does NOT have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:25 If a **Choice or Set** is a body, it does NOT have a **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:26 If an **Embedded Textual Body** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:27 If an **Embedded Textual Body** is a body, it does NOT have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:28 If a **Specific Resource** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:29 If a **Specific Resource** is a body, it does NOT have a **_value_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:30 If present as a target or target/source property, the **_textDirection_ key** has a **single value** which is **one of 'ltr', 'rtl', 'auto'** - [model 3.2.1](https://www.w3.org/TR/annotation-model/#external-web-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:31 If present all target-level or target/source-level **_created_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:32 If present all target-level or target/source-level **_modified_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:33 If present all target-level or target/source-level **_rights_ key values** are strings of **format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:34 If present all target-level or target/source-level **_canonical_ keys** have a **single value** which is a string of **format uri** - [model 3.3.](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:35 If present all target-level or target/source-level **_via_ key values** are strings of **format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:36 If an **External Web Resource** is a target, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:37 If an **External Web Resource** is a target, it does NOT have an **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:38 If a **Choice or Set** is a target, it does NOT have a **_value_ key** - [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-targ)", + "status": "PASS", + "message": null + }, + { + "name": "1:39 If a **Choice or Set** is a target, it does not have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:40 If a **Choice or Set** is a target, it does NOT have a **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:41 If a **Specific Resource Target** is a target, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:42 If a **Specific Resource** is a target, it does NOT have a **_value_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:43 Neither **target** Resources nor target Choice or Set items have a **_type_ key** which includes a value of **TextualBody** [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:44 If present **Specific Resource _selector_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'FragmentSelector', 'CssSelector', 'XPathSelector', 'TextQuoteSelector', 'TextPositionSelector', 'DataPositionSelector', 'SvgSelector', 'RangeSelector'** - [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:45 If present **Specific Resource _state_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'TimeState' or 'HttpRequestState'** - [model 4.3](https://www.w3.org/TR/annotation-model/#states)", + "status": "PASS", + "message": null + }, + { + "name": "1:46 If present **Specific Resource _state_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'TimeState' or 'HttpRequestState'** - [model 4.3](https://www.w3.org/TR/annotation-model/#states)", + "status": "PASS", + "message": null + }, + { + "name": "1:47 If any **Specific Resource _styleClass_ keys** are present, a **_stylesheet_ key** (a key of Annotation) with a **single value** is also present [model 4.4](https://www.w3.org/TR/annotation-model/#styles)", + "status": "FAIL", + "message": "assert_true: ERROR: Annotation contains one or more Specific Resources with styleClass key, but does not contain an Annotation-level stylesheet key.; expected true got false" + }, + { + "name": "1:48 If present all **Selectors of _type_ FragmentSelector, CssSelector, or XPathSelector** have a **_value_ key** with a **single value** - [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:49 If present all **Selectors of _type_ TextQuoteSelector** have an **_exact_ key** with a **single value** - [model 4.2.4](https://www.w3.org/TR/annotation-model/#text-quote-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:50 If present all **Selectors of _type_ TextPositionSelector or DataPositionSelector** have both a **_start_ key** and an **_end_ key**, each with a **single non-negative integer value** [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:51 If present all **Selectors of _type_ SvgSelector** have either a **_value_ key** or an **_id_ key** with a **single value** of format uri [model 4.2.7](https://www.w3.org/TR/annotation-model/#svg-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:52 If present all **Selectors of _type_ RangeSelector** have both a **_startSelector_ key** and an **_endSelector_ key**, each with a **single value** which is a **Selector** - [model 4.2.8](https://www.w3.org/TR/annotation-model/#range-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:53 If present all **States of _type_ TimeState** each have either (but not both) a **_souceDate_ key** or paired **_sourceDateStart_ and _sourceDateEnd_ keys,** each of which is a **single value** of **format date-time**- [model 4.3.1](https://www.w3.org/TR/annotation-model/#time-state)", + "status": "PASS", + "message": null + }, + { + "name": "1:54 If present all **States of _type_ HttpRequestState** have a **_value_ key** - [model 4.3.2](https://www.w3.org/TR/annotation-model/#request-header-state)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + }, + { + "test": "/annotation-model/annotations/annotationOptionals-manual.html", + "subtests": [ + { + "name": "1:39 Implements **target _format_ key** with a **single value** that is a **media type** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:40 Implements **target _language_ key** with a **single value** that is a **language code** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:41 Implements **target _creator_ key** with a **single value** [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:42 Implements **target _created_ key** with a **single value** that is of **format date-time** [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:43 Implements **target _format_ key** with one or more values each of which is a **media type** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:44 Implements **target _language_ key** with one or more values each of which is a **language code** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:45 Implements **target _type_ key** with one or more values each of which is drawn from the **model's list of resource classes** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:46 Implements **target _processingLanguage_ key** with a **single value** that is a **language code** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:47 Implements **target _textDirection_ key** with a **single value** that is is **one of ltr, rtl, or auto** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:48 Implements **target _modified_ key** with a **single value** that is of **format date-time** [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:49 Implements **target _audience_ key** which has one or more values with each audience instance described using **[schema.org/Audience](http://schema.org/Audience) classes and properties** - [model 3.3.3](https://www.w3.org/TR/annotation-model/#intended-audience)", + "status": "PASS", + "message": null + }, + { + "name": "1:50 Implements **target _accessibility_ key** which has one or more values - [model 3.3.4](#https://www.w3.org/TR/annotation-model/#accessibility-of-content)", + "status": "PASS", + "message": null + }, + { + "name": "1:51 Implements **target _purpose_ key** with one or more values are each drawn from **model's list of Motivations** [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:52 Implements **target _rights_ key** which has one or more values, each of which is a **string of format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:53 Implements **target _canonical_ key** with a **single value** that is of **format uri** [model 3.3.7](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:54 Implements **target _via_ key** which has one or more values, each of which is a **string of format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:55 Implements **External Web Resource** with **_id_ key** as a target of the Annotation [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:56 Implements **Choice or Set** with type and items key as a target - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:57 Implements **Choice** with **_type_ and _items_ keys** as a target of the Annotation [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:58 Implements **List** with **_type_ and _items_ keys** as a target of the Annotation [model 3.2.8](https://www.w3.org/TR/annotation-model/#sets-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:59 Implements **Composite** with **_type_ and _items_ keys** as a target of the Annotation [model 3.2.8](https://www.w3.org/TR/annotation-model/#sets-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:60 Implements **Independents** with **_type_ and _items_ keys** as a target of the Annotation [model 3.2.8](https://www.w3.org/TR/annotation-model/#sets-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:62 Implements **Specific Resource** with **_source_ and at least one of _purpose, selector, state, style, renderedVia, scope_ keys** as a target of the Annotation [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:63 Implements **Specific Resource _refinedBy_ key** [model 4.2.9](https://www.w3.org/TR/annotation-model/#refinement-of-selection), [model 4.3.3](https://www.w3.org/TR/annotation-model/#refinement-of-state)", + "status": "PASS", + "message": null + }, + { + "name": "1:64 Implements **Specific Resource _styleClass_ key** with one or more values on a **Specific Resource** - [model 4.4](https://www.w3.org/TR/annotation-model/#styles)", + "status": "PASS", + "message": null + }, + { + "name": "1:65 Implements **Specific Resource _renderedVia_ key** with one or more values on a **Specific Resource** - [model 4.5](https://www.w3.org/TR/annotation-model/#rendering-software)", + "status": "PASS", + "message": null + }, + { + "name": "1:66 Implements **Specific Resource _scope_ key** - [model 4.6](https://www.w3.org/TR/annotation-model/#scope-of-a-resource)", + "status": "PASS", + "message": null + }, + { + "name": "1:67 Implements **Specific Resource Selector** - [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:68 Implements **Specific Resource Fragment Selector** - [model 4.2.1](https://www.w3.org/TR/annotation-model/#fragment-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:69 Implements **Specific Resource _conformsTo_ key** with a **single value** which is of **format uri** on a **Specific Resource FragmentSelector** - [model 4.2.1](https://www.w3.org/TR/annotation-model/#fragment-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:70 Implements **Specific Resource CSS Selector** - [model 4.2.2](https://www.w3.org/TR/annotation-model/#css-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:71 Implements **Specific Resource XPath Selector** - [model 4.2.3](https://www.w3.org/TR/annotation-model/#xpath-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:72 Implements **Specific Resource Text Quote Selector** - [model 4.2.4](https://www.w3.org/TR/annotation-model/#text-quote-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:73 Implements **Specific Resource _prefix_ key** with a **single string value** on a **Specific Resource TextQuoteSelector** - [model 4.2.4](https://www.w3.org/TR/annotation-model/#text-quote-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:74 Implements **Specific Resource _suffix_ key** with a **single string value** on a **Specific Resource TextQuoteSelector** - [model 4.2.4](https://www.w3.org/TR/annotation-model/#text-quote-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:75 Implements **Specific Resource Text Position Selector** - [model 4.2.5](https://www.w3.org/TR/annotation-model/#text-position-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:76 Implements **Specific Resource Data Position Selector** - [model 4.2.6](https://www.w3.org/TR/annotation-model/#data-position-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:77 Implements **Specific Resource SVG Selector** - [model 4.2.7](https://www.w3.org/TR/annotation-model/#svg-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:78 Implements **Specific Resource Range Selector** - [model 4.2.8](https://www.w3.org/TR/annotation-model/#range-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:79 Implements **Specific Resource State** - [model 4.3](https://www.w3.org/TR/annotation-model/#states)", + "status": "PASS", + "message": null + }, + { + "name": "1:80 Implements **Specific Resource Time State** - [model 4.3.1](https://www.w3.org/TR/annotation-model/#time-state)", + "status": "PASS", + "message": null + }, + { + "name": "1:81 Implements **Specific Resource Request Header State** - [model 4.3.2](https://www.w3.org/TR/annotation-model/#request-header-state)", + "status": "PASS", + "message": null + }, + { + "name": "1:82 Implements **Specific Resource _cached_ key** with one or more values each of **format uri** on a **Specific Resource TimeState** - [model 4.3.1](https://www.w3.org/TR/annotation-model/#time-state)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + }, + { + "test": "/annotation-model/annotations/annotationsAgentOptionals-manual.html", + "subtests": [ + { + "name": "1:28 Implements **target _creator_ key** with one or more values - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:29 Implements Target-level creator (Agent) **_id_ key** with **single value** that is a **string of format uri** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:30 Implements Target-level creator (Agent) **_type_ key** with one or more values from **model-recommended list (Person, Organization, Software)** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:31 Implements Target-level creator (Agent) **_nickname_ key** with a **single value** that is a string - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:32 Implements Target-level creator (Agent) **_name_ key** with a **single value** that is a string - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:33 Implements Target-level creator (Agent) **_name_ key** with one or more values - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:34 Implements Target-level creator (Agent) **_email_ key** with one or more values, each of which is a **mailto: uri** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:35 Implements Target-level creator (Agent) **email_sha1 key** with one or more values - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:36 Implements Target-level creator (Agent) **_homepage_ key** with one or more values, each of which is a **string of format uri** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + } + ] +} \ No newline at end of file diff --git a/annotation-model/PN04.json b/annotation-model/PN04.json new file mode 100644 index 0000000..bb27401 --- /dev/null +++ b/annotation-model/PN04.json @@ -0,0 +1,555 @@ +{ + "results": [ + { + "test": "/annotation-model/annotations/annotationMusts-manual.html", + "subtests": [ + { + "name": "1:1 Implements **_@context_ key** and '**http://www.w3.org/ns/anno.jsonld**' is **a value of _@context_** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "FAIL", + "message": "assert_true: ERROR: Annotation is missing @context key or 'http://www.w3.org/ns/anno.jsonld' is not a value of @context.; expected true got false" + }, + { + "name": "1:2 Implements **Annotation _id_ key** which has a **single value** that is a **string of format uri** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "FAIL", + "message": "assert_true: ERROR: Annotation is missing id key or its value is not a single string of format uri.; expected true got false" + }, + { + "name": "1:3 Implements **Annotation _type_ key** and '**Annotation**' is **a value of _type_** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "FAIL", + "message": "assert_true: ERROR: Annotation is missing type key or 'Annotation' is not a value of type.; expected true got false" + }, + { + "name": "1:4 Implements **_target_ key** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "FAIL", + "message": "assert_true: Error: Annotation is missing target key.; expected true got false" + }, + { + "name": "1:5 Each **_target_** is one of a **string of format uri**, an **External Web Resource**, a **Choice** or **Set**, or a **Specific Resource** - [model 3.2](https://www.w3.org/TR/annotation-model/#bodies-and-targets), [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:6 Annotation has a **_body_ key**, or a **_bodyValue_ key**, or **neither**, but **NEVER both** - [model 3.2.5](https://www.w3.org/TR/annotation-model/#string-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:7 If present, each **_body_** is one of a **string of format uri**, an **External Web Resource**, an **Embedded Textual Body**, a **Choice** or **Set**, or a **Specific Resource** - [model 3.2](https://www.w3.org/TR/annotation-model/#bodies-and-targets), [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:8 If present the **_bodyValue_ key** has a **single value** that is a **string** - [model 3.2.5](https://www.w3.org/TR/annotation-model/#string-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:9 If present the Annotation-level **_created_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:10 If present the Annotation-level **_modified_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:11 If present the Annotation-level **_generated_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:12 If present the Annotation-level **_rights_ key** has values that are all **strings of format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:13 If present the Annotation-level **_canonical_ key** has a **single value** that is a **string of format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:14 If present the Annotation-level **_via_ key** has values that are all **strings of format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:15 If present as a body or body/source property, the **_textDirection_ key** has a **single value** which is **one of 'ltr', 'rtl', 'auto'** - [model 3.2.1](https://www.w3.org/TR/annotation-model/#external-web-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:16 If present all body-level or body/source-level **_created_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:17 If present all body-level or body/source-level **_modified_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:18 If present all body-level or body/source-level **_rights_ key values** are strings of **format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:19 If present all body-level or body/source-level **_canonical_ keys** have a **single value** which is a string of **format uri** - [model 3.3.](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:20 If present all body-level or body/source-level **_via_ key values** are strings of **format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:21 If an **External Web Resource** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:22 If an **External Web Resource** is a body, it does NOT have an **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:23 If a **Choice or Set** is a body, it does NOT have a **_value_ key** - [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:24 If a **Choice or Set** is a body, it does NOT have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:25 If a **Choice or Set** is a body, it does NOT have a **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:26 If an **Embedded Textual Body** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:27 If an **Embedded Textual Body** is a body, it does NOT have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:28 If a **Specific Resource** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:29 If a **Specific Resource** is a body, it does NOT have a **_value_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:30 If present as a target or target/source property, the **_textDirection_ key** has a **single value** which is **one of 'ltr', 'rtl', 'auto'** - [model 3.2.1](https://www.w3.org/TR/annotation-model/#external-web-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:31 If present all target-level or target/source-level **_created_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:32 If present all target-level or target/source-level **_modified_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:33 If present all target-level or target/source-level **_rights_ key values** are strings of **format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:34 If present all target-level or target/source-level **_canonical_ keys** have a **single value** which is a string of **format uri** - [model 3.3.](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:35 If present all target-level or target/source-level **_via_ key values** are strings of **format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:36 If an **External Web Resource** is a target, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:37 If an **External Web Resource** is a target, it does NOT have an **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:38 If a **Choice or Set** is a target, it does NOT have a **_value_ key** - [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-targ)", + "status": "PASS", + "message": null + }, + { + "name": "1:39 If a **Choice or Set** is a target, it does not have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:40 If a **Choice or Set** is a target, it does NOT have a **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:41 If a **Specific Resource Target** is a target, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:42 If a **Specific Resource** is a target, it does NOT have a **_value_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:43 Neither **target** Resources nor target Choice or Set items have a **_type_ key** which includes a value of **TextualBody** [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:44 If present **Specific Resource _selector_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'FragmentSelector', 'CssSelector', 'XPathSelector', 'TextQuoteSelector', 'TextPositionSelector', 'DataPositionSelector', 'SvgSelector', 'RangeSelector'** - [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:45 If present **Specific Resource _state_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'TimeState' or 'HttpRequestState'** - [model 4.3](https://www.w3.org/TR/annotation-model/#states)", + "status": "PASS", + "message": null + }, + { + "name": "1:46 If present **Specific Resource _state_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'TimeState' or 'HttpRequestState'** - [model 4.3](https://www.w3.org/TR/annotation-model/#states)", + "status": "PASS", + "message": null + }, + { + "name": "1:47 If any **Specific Resource _styleClass_ keys** are present, a **_stylesheet_ key** (a key of Annotation) with a **single value** is also present [model 4.4](https://www.w3.org/TR/annotation-model/#styles)", + "status": "FAIL", + "message": "assert_true: ERROR: Annotation contains one or more Specific Resources with styleClass key, but does not contain an Annotation-level stylesheet key.; expected true got false" + }, + { + "name": "1:48 If present all **Selectors of _type_ FragmentSelector, CssSelector, or XPathSelector** have a **_value_ key** with a **single value** - [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:49 If present all **Selectors of _type_ TextQuoteSelector** have an **_exact_ key** with a **single value** - [model 4.2.4](https://www.w3.org/TR/annotation-model/#text-quote-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:50 If present all **Selectors of _type_ TextPositionSelector or DataPositionSelector** have both a **_start_ key** and an **_end_ key**, each with a **single non-negative integer value** [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:51 If present all **Selectors of _type_ SvgSelector** have either a **_value_ key** or an **_id_ key** with a **single value** of format uri [model 4.2.7](https://www.w3.org/TR/annotation-model/#svg-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:52 If present all **Selectors of _type_ RangeSelector** have both a **_startSelector_ key** and an **_endSelector_ key**, each with a **single value** which is a **Selector** - [model 4.2.8](https://www.w3.org/TR/annotation-model/#range-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:53 If present all **States of _type_ TimeState** each have either (but not both) a **_souceDate_ key** or paired **_sourceDateStart_ and _sourceDateEnd_ keys,** each of which is a **single value** of **format date-time**- [model 4.3.1](https://www.w3.org/TR/annotation-model/#time-state)", + "status": "PASS", + "message": null + }, + { + "name": "1:54 If present all **States of _type_ HttpRequestState** have a **_value_ key** - [model 4.3.2](https://www.w3.org/TR/annotation-model/#request-header-state)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + }, + { + "test": "/annotation-model/annotations/annotationOptionals-manual.html", + "subtests": [ + { + "name": "1:39 Implements **target _format_ key** with a **single value** that is a **media type** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:40 Implements **target _language_ key** with a **single value** that is a **language code** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:41 Implements **target _creator_ key** with a **single value** [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:42 Implements **target _created_ key** with a **single value** that is of **format date-time** [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:43 Implements **target _format_ key** with one or more values each of which is a **media type** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:44 Implements **target _language_ key** with one or more values each of which is a **language code** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:45 Implements **target _type_ key** with one or more values each of which is drawn from the **model's list of resource classes** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:46 Implements **target _processingLanguage_ key** with a **single value** that is a **language code** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:47 Implements **target _textDirection_ key** with a **single value** that is is **one of ltr, rtl, or auto** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:48 Implements **target _modified_ key** with a **single value** that is of **format date-time** [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:49 Implements **target _audience_ key** which has one or more values with each audience instance described using **[schema.org/Audience](http://schema.org/Audience) classes and properties** - [model 3.3.3](https://www.w3.org/TR/annotation-model/#intended-audience)", + "status": "PASS", + "message": null + }, + { + "name": "1:50 Implements **target _accessibility_ key** which has one or more values - [model 3.3.4](#https://www.w3.org/TR/annotation-model/#accessibility-of-content)", + "status": "PASS", + "message": null + }, + { + "name": "1:51 Implements **target _purpose_ key** with one or more values are each drawn from **model's list of Motivations** [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:52 Implements **target _rights_ key** which has one or more values, each of which is a **string of format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:53 Implements **target _canonical_ key** with a **single value** that is of **format uri** [model 3.3.7](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:54 Implements **target _via_ key** which has one or more values, each of which is a **string of format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:55 Implements **External Web Resource** with **_id_ key** as a target of the Annotation [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:56 Implements **Choice or Set** with type and items key as a target - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:57 Implements **Choice** with **_type_ and _items_ keys** as a target of the Annotation [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:58 Implements **List** with **_type_ and _items_ keys** as a target of the Annotation [model 3.2.8](https://www.w3.org/TR/annotation-model/#sets-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:59 Implements **Composite** with **_type_ and _items_ keys** as a target of the Annotation [model 3.2.8](https://www.w3.org/TR/annotation-model/#sets-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:60 Implements **Independents** with **_type_ and _items_ keys** as a target of the Annotation [model 3.2.8](https://www.w3.org/TR/annotation-model/#sets-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:62 Implements **Specific Resource** with **_source_ and at least one of _purpose, selector, state, style, renderedVia, scope_ keys** as a target of the Annotation [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:63 Implements **Specific Resource _refinedBy_ key** [model 4.2.9](https://www.w3.org/TR/annotation-model/#refinement-of-selection), [model 4.3.3](https://www.w3.org/TR/annotation-model/#refinement-of-state)", + "status": "PASS", + "message": null + }, + { + "name": "1:64 Implements **Specific Resource _styleClass_ key** with one or more values on a **Specific Resource** - [model 4.4](https://www.w3.org/TR/annotation-model/#styles)", + "status": "PASS", + "message": null + }, + { + "name": "1:65 Implements **Specific Resource _renderedVia_ key** with one or more values on a **Specific Resource** - [model 4.5](https://www.w3.org/TR/annotation-model/#rendering-software)", + "status": "PASS", + "message": null + }, + { + "name": "1:66 Implements **Specific Resource _scope_ key** - [model 4.6](https://www.w3.org/TR/annotation-model/#scope-of-a-resource)", + "status": "PASS", + "message": null + }, + { + "name": "1:67 Implements **Specific Resource Selector** - [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:68 Implements **Specific Resource Fragment Selector** - [model 4.2.1](https://www.w3.org/TR/annotation-model/#fragment-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:69 Implements **Specific Resource _conformsTo_ key** with a **single value** which is of **format uri** on a **Specific Resource FragmentSelector** - [model 4.2.1](https://www.w3.org/TR/annotation-model/#fragment-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:70 Implements **Specific Resource CSS Selector** - [model 4.2.2](https://www.w3.org/TR/annotation-model/#css-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:71 Implements **Specific Resource XPath Selector** - [model 4.2.3](https://www.w3.org/TR/annotation-model/#xpath-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:72 Implements **Specific Resource Text Quote Selector** - [model 4.2.4](https://www.w3.org/TR/annotation-model/#text-quote-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:73 Implements **Specific Resource _prefix_ key** with a **single string value** on a **Specific Resource TextQuoteSelector** - [model 4.2.4](https://www.w3.org/TR/annotation-model/#text-quote-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:74 Implements **Specific Resource _suffix_ key** with a **single string value** on a **Specific Resource TextQuoteSelector** - [model 4.2.4](https://www.w3.org/TR/annotation-model/#text-quote-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:75 Implements **Specific Resource Text Position Selector** - [model 4.2.5](https://www.w3.org/TR/annotation-model/#text-position-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:76 Implements **Specific Resource Data Position Selector** - [model 4.2.6](https://www.w3.org/TR/annotation-model/#data-position-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:77 Implements **Specific Resource SVG Selector** - [model 4.2.7](https://www.w3.org/TR/annotation-model/#svg-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:78 Implements **Specific Resource Range Selector** - [model 4.2.8](https://www.w3.org/TR/annotation-model/#range-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:79 Implements **Specific Resource State** - [model 4.3](https://www.w3.org/TR/annotation-model/#states)", + "status": "PASS", + "message": null + }, + { + "name": "1:80 Implements **Specific Resource Time State** - [model 4.3.1](https://www.w3.org/TR/annotation-model/#time-state)", + "status": "PASS", + "message": null + }, + { + "name": "1:81 Implements **Specific Resource Request Header State** - [model 4.3.2](https://www.w3.org/TR/annotation-model/#request-header-state)", + "status": "PASS", + "message": null + }, + { + "name": "1:82 Implements **Specific Resource _cached_ key** with one or more values each of **format uri** on a **Specific Resource TimeState** - [model 4.3.1](https://www.w3.org/TR/annotation-model/#time-state)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + }, + { + "test": "/annotation-model/annotations/annotationsAgentOptionals-manual.html", + "subtests": [ + { + "name": "1:28 Implements **target _creator_ key** with one or more values - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:29 Implements Target-level creator (Agent) **_id_ key** with **single value** that is a **string of format uri** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:30 Implements Target-level creator (Agent) **_type_ key** with one or more values from **model-recommended list (Person, Organization, Software)** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:31 Implements Target-level creator (Agent) **_nickname_ key** with a **single value** that is a string - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:32 Implements Target-level creator (Agent) **_name_ key** with a **single value** that is a string - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:33 Implements Target-level creator (Agent) **_name_ key** with one or more values - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:34 Implements Target-level creator (Agent) **_email_ key** with one or more values, each of which is a **mailto: uri** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:35 Implements Target-level creator (Agent) **email_sha1 key** with one or more values - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:36 Implements Target-level creator (Agent) **_homepage_ key** with one or more values, each of which is a **string of format uri** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + } + ] +} \ No newline at end of file diff --git a/annotation-model/PN05.json b/annotation-model/PN05.json new file mode 100644 index 0000000..bb27401 --- /dev/null +++ b/annotation-model/PN05.json @@ -0,0 +1,555 @@ +{ + "results": [ + { + "test": "/annotation-model/annotations/annotationMusts-manual.html", + "subtests": [ + { + "name": "1:1 Implements **_@context_ key** and '**http://www.w3.org/ns/anno.jsonld**' is **a value of _@context_** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "FAIL", + "message": "assert_true: ERROR: Annotation is missing @context key or 'http://www.w3.org/ns/anno.jsonld' is not a value of @context.; expected true got false" + }, + { + "name": "1:2 Implements **Annotation _id_ key** which has a **single value** that is a **string of format uri** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "FAIL", + "message": "assert_true: ERROR: Annotation is missing id key or its value is not a single string of format uri.; expected true got false" + }, + { + "name": "1:3 Implements **Annotation _type_ key** and '**Annotation**' is **a value of _type_** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "FAIL", + "message": "assert_true: ERROR: Annotation is missing type key or 'Annotation' is not a value of type.; expected true got false" + }, + { + "name": "1:4 Implements **_target_ key** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "FAIL", + "message": "assert_true: Error: Annotation is missing target key.; expected true got false" + }, + { + "name": "1:5 Each **_target_** is one of a **string of format uri**, an **External Web Resource**, a **Choice** or **Set**, or a **Specific Resource** - [model 3.2](https://www.w3.org/TR/annotation-model/#bodies-and-targets), [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:6 Annotation has a **_body_ key**, or a **_bodyValue_ key**, or **neither**, but **NEVER both** - [model 3.2.5](https://www.w3.org/TR/annotation-model/#string-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:7 If present, each **_body_** is one of a **string of format uri**, an **External Web Resource**, an **Embedded Textual Body**, a **Choice** or **Set**, or a **Specific Resource** - [model 3.2](https://www.w3.org/TR/annotation-model/#bodies-and-targets), [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:8 If present the **_bodyValue_ key** has a **single value** that is a **string** - [model 3.2.5](https://www.w3.org/TR/annotation-model/#string-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:9 If present the Annotation-level **_created_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:10 If present the Annotation-level **_modified_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:11 If present the Annotation-level **_generated_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:12 If present the Annotation-level **_rights_ key** has values that are all **strings of format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:13 If present the Annotation-level **_canonical_ key** has a **single value** that is a **string of format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:14 If present the Annotation-level **_via_ key** has values that are all **strings of format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:15 If present as a body or body/source property, the **_textDirection_ key** has a **single value** which is **one of 'ltr', 'rtl', 'auto'** - [model 3.2.1](https://www.w3.org/TR/annotation-model/#external-web-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:16 If present all body-level or body/source-level **_created_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:17 If present all body-level or body/source-level **_modified_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:18 If present all body-level or body/source-level **_rights_ key values** are strings of **format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:19 If present all body-level or body/source-level **_canonical_ keys** have a **single value** which is a string of **format uri** - [model 3.3.](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:20 If present all body-level or body/source-level **_via_ key values** are strings of **format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:21 If an **External Web Resource** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:22 If an **External Web Resource** is a body, it does NOT have an **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:23 If a **Choice or Set** is a body, it does NOT have a **_value_ key** - [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:24 If a **Choice or Set** is a body, it does NOT have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:25 If a **Choice or Set** is a body, it does NOT have a **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:26 If an **Embedded Textual Body** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:27 If an **Embedded Textual Body** is a body, it does NOT have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:28 If a **Specific Resource** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:29 If a **Specific Resource** is a body, it does NOT have a **_value_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:30 If present as a target or target/source property, the **_textDirection_ key** has a **single value** which is **one of 'ltr', 'rtl', 'auto'** - [model 3.2.1](https://www.w3.org/TR/annotation-model/#external-web-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:31 If present all target-level or target/source-level **_created_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:32 If present all target-level or target/source-level **_modified_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:33 If present all target-level or target/source-level **_rights_ key values** are strings of **format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:34 If present all target-level or target/source-level **_canonical_ keys** have a **single value** which is a string of **format uri** - [model 3.3.](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:35 If present all target-level or target/source-level **_via_ key values** are strings of **format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:36 If an **External Web Resource** is a target, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:37 If an **External Web Resource** is a target, it does NOT have an **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:38 If a **Choice or Set** is a target, it does NOT have a **_value_ key** - [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-targ)", + "status": "PASS", + "message": null + }, + { + "name": "1:39 If a **Choice or Set** is a target, it does not have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:40 If a **Choice or Set** is a target, it does NOT have a **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:41 If a **Specific Resource Target** is a target, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:42 If a **Specific Resource** is a target, it does NOT have a **_value_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:43 Neither **target** Resources nor target Choice or Set items have a **_type_ key** which includes a value of **TextualBody** [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:44 If present **Specific Resource _selector_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'FragmentSelector', 'CssSelector', 'XPathSelector', 'TextQuoteSelector', 'TextPositionSelector', 'DataPositionSelector', 'SvgSelector', 'RangeSelector'** - [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:45 If present **Specific Resource _state_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'TimeState' or 'HttpRequestState'** - [model 4.3](https://www.w3.org/TR/annotation-model/#states)", + "status": "PASS", + "message": null + }, + { + "name": "1:46 If present **Specific Resource _state_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'TimeState' or 'HttpRequestState'** - [model 4.3](https://www.w3.org/TR/annotation-model/#states)", + "status": "PASS", + "message": null + }, + { + "name": "1:47 If any **Specific Resource _styleClass_ keys** are present, a **_stylesheet_ key** (a key of Annotation) with a **single value** is also present [model 4.4](https://www.w3.org/TR/annotation-model/#styles)", + "status": "FAIL", + "message": "assert_true: ERROR: Annotation contains one or more Specific Resources with styleClass key, but does not contain an Annotation-level stylesheet key.; expected true got false" + }, + { + "name": "1:48 If present all **Selectors of _type_ FragmentSelector, CssSelector, or XPathSelector** have a **_value_ key** with a **single value** - [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:49 If present all **Selectors of _type_ TextQuoteSelector** have an **_exact_ key** with a **single value** - [model 4.2.4](https://www.w3.org/TR/annotation-model/#text-quote-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:50 If present all **Selectors of _type_ TextPositionSelector or DataPositionSelector** have both a **_start_ key** and an **_end_ key**, each with a **single non-negative integer value** [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:51 If present all **Selectors of _type_ SvgSelector** have either a **_value_ key** or an **_id_ key** with a **single value** of format uri [model 4.2.7](https://www.w3.org/TR/annotation-model/#svg-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:52 If present all **Selectors of _type_ RangeSelector** have both a **_startSelector_ key** and an **_endSelector_ key**, each with a **single value** which is a **Selector** - [model 4.2.8](https://www.w3.org/TR/annotation-model/#range-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:53 If present all **States of _type_ TimeState** each have either (but not both) a **_souceDate_ key** or paired **_sourceDateStart_ and _sourceDateEnd_ keys,** each of which is a **single value** of **format date-time**- [model 4.3.1](https://www.w3.org/TR/annotation-model/#time-state)", + "status": "PASS", + "message": null + }, + { + "name": "1:54 If present all **States of _type_ HttpRequestState** have a **_value_ key** - [model 4.3.2](https://www.w3.org/TR/annotation-model/#request-header-state)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + }, + { + "test": "/annotation-model/annotations/annotationOptionals-manual.html", + "subtests": [ + { + "name": "1:39 Implements **target _format_ key** with a **single value** that is a **media type** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:40 Implements **target _language_ key** with a **single value** that is a **language code** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:41 Implements **target _creator_ key** with a **single value** [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:42 Implements **target _created_ key** with a **single value** that is of **format date-time** [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:43 Implements **target _format_ key** with one or more values each of which is a **media type** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:44 Implements **target _language_ key** with one or more values each of which is a **language code** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:45 Implements **target _type_ key** with one or more values each of which is drawn from the **model's list of resource classes** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:46 Implements **target _processingLanguage_ key** with a **single value** that is a **language code** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:47 Implements **target _textDirection_ key** with a **single value** that is is **one of ltr, rtl, or auto** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:48 Implements **target _modified_ key** with a **single value** that is of **format date-time** [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:49 Implements **target _audience_ key** which has one or more values with each audience instance described using **[schema.org/Audience](http://schema.org/Audience) classes and properties** - [model 3.3.3](https://www.w3.org/TR/annotation-model/#intended-audience)", + "status": "PASS", + "message": null + }, + { + "name": "1:50 Implements **target _accessibility_ key** which has one or more values - [model 3.3.4](#https://www.w3.org/TR/annotation-model/#accessibility-of-content)", + "status": "PASS", + "message": null + }, + { + "name": "1:51 Implements **target _purpose_ key** with one or more values are each drawn from **model's list of Motivations** [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:52 Implements **target _rights_ key** which has one or more values, each of which is a **string of format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:53 Implements **target _canonical_ key** with a **single value** that is of **format uri** [model 3.3.7](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:54 Implements **target _via_ key** which has one or more values, each of which is a **string of format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:55 Implements **External Web Resource** with **_id_ key** as a target of the Annotation [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:56 Implements **Choice or Set** with type and items key as a target - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:57 Implements **Choice** with **_type_ and _items_ keys** as a target of the Annotation [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:58 Implements **List** with **_type_ and _items_ keys** as a target of the Annotation [model 3.2.8](https://www.w3.org/TR/annotation-model/#sets-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:59 Implements **Composite** with **_type_ and _items_ keys** as a target of the Annotation [model 3.2.8](https://www.w3.org/TR/annotation-model/#sets-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:60 Implements **Independents** with **_type_ and _items_ keys** as a target of the Annotation [model 3.2.8](https://www.w3.org/TR/annotation-model/#sets-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:62 Implements **Specific Resource** with **_source_ and at least one of _purpose, selector, state, style, renderedVia, scope_ keys** as a target of the Annotation [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:63 Implements **Specific Resource _refinedBy_ key** [model 4.2.9](https://www.w3.org/TR/annotation-model/#refinement-of-selection), [model 4.3.3](https://www.w3.org/TR/annotation-model/#refinement-of-state)", + "status": "PASS", + "message": null + }, + { + "name": "1:64 Implements **Specific Resource _styleClass_ key** with one or more values on a **Specific Resource** - [model 4.4](https://www.w3.org/TR/annotation-model/#styles)", + "status": "PASS", + "message": null + }, + { + "name": "1:65 Implements **Specific Resource _renderedVia_ key** with one or more values on a **Specific Resource** - [model 4.5](https://www.w3.org/TR/annotation-model/#rendering-software)", + "status": "PASS", + "message": null + }, + { + "name": "1:66 Implements **Specific Resource _scope_ key** - [model 4.6](https://www.w3.org/TR/annotation-model/#scope-of-a-resource)", + "status": "PASS", + "message": null + }, + { + "name": "1:67 Implements **Specific Resource Selector** - [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:68 Implements **Specific Resource Fragment Selector** - [model 4.2.1](https://www.w3.org/TR/annotation-model/#fragment-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:69 Implements **Specific Resource _conformsTo_ key** with a **single value** which is of **format uri** on a **Specific Resource FragmentSelector** - [model 4.2.1](https://www.w3.org/TR/annotation-model/#fragment-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:70 Implements **Specific Resource CSS Selector** - [model 4.2.2](https://www.w3.org/TR/annotation-model/#css-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:71 Implements **Specific Resource XPath Selector** - [model 4.2.3](https://www.w3.org/TR/annotation-model/#xpath-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:72 Implements **Specific Resource Text Quote Selector** - [model 4.2.4](https://www.w3.org/TR/annotation-model/#text-quote-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:73 Implements **Specific Resource _prefix_ key** with a **single string value** on a **Specific Resource TextQuoteSelector** - [model 4.2.4](https://www.w3.org/TR/annotation-model/#text-quote-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:74 Implements **Specific Resource _suffix_ key** with a **single string value** on a **Specific Resource TextQuoteSelector** - [model 4.2.4](https://www.w3.org/TR/annotation-model/#text-quote-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:75 Implements **Specific Resource Text Position Selector** - [model 4.2.5](https://www.w3.org/TR/annotation-model/#text-position-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:76 Implements **Specific Resource Data Position Selector** - [model 4.2.6](https://www.w3.org/TR/annotation-model/#data-position-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:77 Implements **Specific Resource SVG Selector** - [model 4.2.7](https://www.w3.org/TR/annotation-model/#svg-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:78 Implements **Specific Resource Range Selector** - [model 4.2.8](https://www.w3.org/TR/annotation-model/#range-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:79 Implements **Specific Resource State** - [model 4.3](https://www.w3.org/TR/annotation-model/#states)", + "status": "PASS", + "message": null + }, + { + "name": "1:80 Implements **Specific Resource Time State** - [model 4.3.1](https://www.w3.org/TR/annotation-model/#time-state)", + "status": "PASS", + "message": null + }, + { + "name": "1:81 Implements **Specific Resource Request Header State** - [model 4.3.2](https://www.w3.org/TR/annotation-model/#request-header-state)", + "status": "PASS", + "message": null + }, + { + "name": "1:82 Implements **Specific Resource _cached_ key** with one or more values each of **format uri** on a **Specific Resource TimeState** - [model 4.3.1](https://www.w3.org/TR/annotation-model/#time-state)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + }, + { + "test": "/annotation-model/annotations/annotationsAgentOptionals-manual.html", + "subtests": [ + { + "name": "1:28 Implements **target _creator_ key** with one or more values - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:29 Implements Target-level creator (Agent) **_id_ key** with **single value** that is a **string of format uri** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:30 Implements Target-level creator (Agent) **_type_ key** with one or more values from **model-recommended list (Person, Organization, Software)** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:31 Implements Target-level creator (Agent) **_nickname_ key** with a **single value** that is a string - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:32 Implements Target-level creator (Agent) **_name_ key** with a **single value** that is a string - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:33 Implements Target-level creator (Agent) **_name_ key** with one or more values - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:34 Implements Target-level creator (Agent) **_email_ key** with one or more values, each of which is a **mailto: uri** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:35 Implements Target-level creator (Agent) **email_sha1 key** with one or more values - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:36 Implements Target-level creator (Agent) **_homepage_ key** with one or more values, each of which is a **string of format uri** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + } + ] +} \ No newline at end of file diff --git a/annotation-model/PW-input/anno1.json b/annotation-model/PW-input/anno1.json new file mode 100644 index 0000000..2318cb4 --- /dev/null +++ b/annotation-model/PW-input/anno1.json @@ -0,0 +1,48 @@ +{ + "@context": "http://www.w3.org/ns/anno.jsonld", + "type": "Annotation", + "created": "2016-11-14T22:09:47.910Z", + "body": { + "type": "Choice", + "items": [ + { + "type": "TextualBody", + "value": "This extension uses this model to build amazing things. Honest.", + "language": "en", + "format": "text/plain", + "creator": { + "type": "Person" + } + }, + { + "type": "TextualBody", + "value": "Это расширение использует эту модель для создания удивительных вещей. Честный.", + "language": "ru", + "format": "text/plain", + "creator": { + "id": "https://translate.yandex.net/api/v1.5/tr.json/translate", + "type": "Software", + "schema:softwareVersion": "1.5", + "name": "Yandex Translate API", + "homepage": "https://tech.yandex.com/translate/" + } + }, + { + "type": "TextualBody", + "value": "Esta extensión utiliza este modelo para construir cosas increíbles. Honesto.", + "language": "es", + "format": "text/plain", + "creator": { + "id": "https://translate.yandex.net/api/v1.5/tr.json/translate", + "type": "Software", + "schema:softwareVersion": "1.5", + "name": "Yandex Translate API", + "homepage": "https://tech.yandex.com/translate/" + } + } + ] + }, + "target": "https://www.w3.org/TR/annotation-model/", + "_id": "urn:page-notes:https://www.w3.org/TR/annotation-model//2016-11-14T22:09:48.817Z", + "id": "urn:page-notes:https://www.w3.org/TR/annotation-model//2016-11-14T22:09:48.817Z" +} diff --git a/annotation-model/PW01.json b/annotation-model/PW01.json new file mode 100644 index 0000000..e5664c2 --- /dev/null +++ b/annotation-model/PW01.json @@ -0,0 +1,385 @@ +{ + "results": [ + { + "test": "/annotation-model/annotations/annotationMusts-manual.html", + "subtests": [ + { + "name": "1:1 Implements **_@context_ key** and '**http://www.w3.org/ns/anno.jsonld**' is **a value of _@context_** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:2 Implements **Annotation _id_ key** which has a **single value** that is a **string of format uri** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:3 Implements **Annotation _type_ key** and '**Annotation**' is **a value of _type_** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:4 Implements **_target_ key** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:5 Each **_target_** is one of a **string of format uri**, an **External Web Resource**, a **Choice** or **Set**, or a **Specific Resource** - [model 3.2](https://www.w3.org/TR/annotation-model/#bodies-and-targets), [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:6 Annotation has a **_body_ key**, or a **_bodyValue_ key**, or **neither**, but **NEVER both** - [model 3.2.5](https://www.w3.org/TR/annotation-model/#string-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:7 If present, each **_body_** is one of a **string of format uri**, an **External Web Resource**, an **Embedded Textual Body**, a **Choice** or **Set**, or a **Specific Resource** - [model 3.2](https://www.w3.org/TR/annotation-model/#bodies-and-targets), [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:8 If present the **_bodyValue_ key** has a **single value** that is a **string** - [model 3.2.5](https://www.w3.org/TR/annotation-model/#string-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:9 If present the Annotation-level **_created_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:10 If present the Annotation-level **_modified_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:11 If present the Annotation-level **_generated_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:12 If present the Annotation-level **_rights_ key** has values that are all **strings of format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:13 If present the Annotation-level **_canonical_ key** has a **single value** that is a **string of format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:14 If present the Annotation-level **_via_ key** has values that are all **strings of format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:15 If present as a body or body/source property, the **_textDirection_ key** has a **single value** which is **one of 'ltr', 'rtl', 'auto'** - [model 3.2.1](https://www.w3.org/TR/annotation-model/#external-web-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:16 If present all body-level or body/source-level **_created_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:17 If present all body-level or body/source-level **_modified_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:18 If present all body-level or body/source-level **_rights_ key values** are strings of **format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:19 If present all body-level or body/source-level **_canonical_ keys** have a **single value** which is a string of **format uri** - [model 3.3.](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:20 If present all body-level or body/source-level **_via_ key values** are strings of **format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:21 If an **External Web Resource** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:22 If an **External Web Resource** is a body, it does NOT have an **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:23 If a **Choice or Set** is a body, it does NOT have a **_value_ key** - [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:24 If a **Choice or Set** is a body, it does NOT have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:25 If a **Choice or Set** is a body, it does NOT have a **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:26 If an **Embedded Textual Body** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:27 If an **Embedded Textual Body** is a body, it does NOT have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:28 If a **Specific Resource** is a body, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:29 If a **Specific Resource** is a body, it does NOT have a **_value_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:30 If present as a target or target/source property, the **_textDirection_ key** has a **single value** which is **one of 'ltr', 'rtl', 'auto'** - [model 3.2.1](https://www.w3.org/TR/annotation-model/#external-web-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:31 If present all target-level or target/source-level **_created_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:32 If present all target-level or target/source-level **_modified_ keys** have a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:33 If present all target-level or target/source-level **_rights_ key values** are strings of **format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:34 If present all target-level or target/source-level **_canonical_ keys** have a **single value** which is a string of **format uri** - [model 3.3.](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:35 If present all target-level or target/source-level **_via_ key values** are strings of **format uri** - [model 3.3.7](https://www.w3.org/TR/annotation-model/#other-identities)", + "status": "PASS", + "message": null + }, + { + "name": "1:36 If an **External Web Resource** is a target, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:37 If an **External Web Resource** is a target, it does NOT have an **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:38 If a **Choice or Set** is a target, it does NOT have a **_value_ key** - [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-targ)", + "status": "PASS", + "message": null + }, + { + "name": "1:39 If a **Choice or Set** is a target, it does not have a **_source_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:40 If a **Choice or Set** is a target, it does NOT have a **_purpose_ key** - [model 3.3.5](https://www.w3.org/TR/annotation-model/#motivation-and-purpose)", + "status": "PASS", + "message": null + }, + { + "name": "1:41 If a **Specific Resource Target** is a target, it does NOT have an **_items_ key** - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-targets-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:42 If a **Specific Resource** is a target, it does NOT have a **_value_ key** - [model 4](https://www.w3.org/TR/annotation-model/#specific-resources)", + "status": "PASS", + "message": null + }, + { + "name": "1:43 Neither **target** Resources nor target Choice or Set items have a **_type_ key** which includes a value of **TextualBody** [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:44 If present **Specific Resource _selector_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'FragmentSelector', 'CssSelector', 'XPathSelector', 'TextQuoteSelector', 'TextPositionSelector', 'DataPositionSelector', 'SvgSelector', 'RangeSelector'** - [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:45 If present **Specific Resource _state_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'TimeState' or 'HttpRequestState'** - [model 4.3](https://www.w3.org/TR/annotation-model/#states)", + "status": "PASS", + "message": null + }, + { + "name": "1:46 If present **Specific Resource _state_ key** has one or more values each of which is of **format uri** or an object having a **_type_ key** with a **single value** which is one of **'TimeState' or 'HttpRequestState'** - [model 4.3](https://www.w3.org/TR/annotation-model/#states)", + "status": "PASS", + "message": null + }, + { + "name": "1:47 If any **Specific Resource _styleClass_ keys** are present, a **_stylesheet_ key** (a key of Annotation) with a **single value** is also present [model 4.4](https://www.w3.org/TR/annotation-model/#styles)", + "status": "PASS", + "message": null + }, + { + "name": "1:48 If present all **Selectors of _type_ FragmentSelector, CssSelector, or XPathSelector** have a **_value_ key** with a **single value** - [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:49 If present all **Selectors of _type_ TextQuoteSelector** have an **_exact_ key** with a **single value** - [model 4.2.4](https://www.w3.org/TR/annotation-model/#text-quote-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:50 If present all **Selectors of _type_ TextPositionSelector or DataPositionSelector** have both a **_start_ key** and an **_end_ key**, each with a **single non-negative integer value** [model 4.2](https://www.w3.org/TR/annotation-model/#selectors)", + "status": "PASS", + "message": null + }, + { + "name": "1:51 If present all **Selectors of _type_ SvgSelector** have either a **_value_ key** or an **_id_ key** with a **single value** of format uri [model 4.2.7](https://www.w3.org/TR/annotation-model/#svg-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:52 If present all **Selectors of _type_ RangeSelector** have both a **_startSelector_ key** and an **_endSelector_ key**, each with a **single value** which is a **Selector** - [model 4.2.8](https://www.w3.org/TR/annotation-model/#range-selector)", + "status": "PASS", + "message": null + }, + { + "name": "1:53 If present all **States of _type_ TimeState** each have either (but not both) a **_souceDate_ key** or paired **_sourceDateStart_ and _sourceDateEnd_ keys,** each of which is a **single value** of **format date-time**- [model 4.3.1](https://www.w3.org/TR/annotation-model/#time-state)", + "status": "PASS", + "message": null + }, + { + "name": "1:54 If present all **States of _type_ HttpRequestState** have a **_value_ key** - [model 4.3.2](https://www.w3.org/TR/annotation-model/#request-header-state)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + }, + { + "test": "/annotation-model/annotations/annotationOptionals-manual.html", + "subtests": [ + { + "name": "1:2 Implements Annotation-level **_created_ key** which has a **single value** that is a **string of format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:13 Implements **_body_ key** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)", + "status": "PASS", + "message": null + }, + { + "name": "1:14 Implements **body _format_ key** with a **single value** that is a **media type** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:15 Implements **body _language_ key** with a **single value** that is a **language code** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:16 Implements **body _creator_ key** with a **single value** [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:18 Implements **body _format_ key** with one or more values each of which is a **media type** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:19 Implements **body _language_ key** with one or more values each of which is a **language code** [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:30 Implements **External Web Resource** with **_id_ key** as a body of the Annotation [model 3.2.1](https://www.w3.org/TR/annotation-model/#bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:31 Implements **Embedded Textual Body** with **_value_ key** as a body of the Annotation [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:32 Implements **Embedded Textual Body _type_ key** which includes a value of **TextualBody** [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)", + "status": "PASS", + "message": null + }, + { + "name": "1:34 Implements **Choice or Set** with type and items key as a body - [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + }, + { + "name": "1:35 Implements **Choice** with **_type_ and _items_ keys** as a body of the Annotation [model 3.2.7](https://www.w3.org/TR/annotation-model/#choice-of-bodies-and-targets)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + }, + { + "test": "/annotation-model/annotations/annotationsAgentOptionals-manual.html", + "subtests": [ + { + "name": "1:19 Implements **body _creator_ key** with one or more values - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "status": "PASS", + "message": null + }, + { + "name": "1:20 Implements Body-level creator (Agent) **_id_ key** with **single value** that is a **string of format uri** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:21 Implements Body-level creator (Agent) **_type_ key** with one or more values from **model-recommended list (Person, Organization, Software)** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:23 Implements Body-level creator (Agent) **_name_ key** with a **single value** that is a string - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:24 Implements Body-level creator (Agent) **_name_ key** with one or more values - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + }, + { + "name": "1:27 Implements Body-level creator (Agent) **_homepage_ key** with one or more values, each of which is a **string of format uri** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "status": "PASS", + "message": null + } + ], + "status": "OK", + "message": null + } + ] +} \ No newline at end of file diff --git a/annotation-model/README.md b/annotation-model/README.md index af432e0..5a4c524 100644 --- a/annotation-model/README.md +++ b/annotation-model/README.md @@ -10,27 +10,77 @@ Up-to-date result reports are available at: Index of implementations in reports =================================== -* EM - ??? -* EB - Emblematica Online (Development Website) - **email: mjsarol@illinois.edu - **link: http://emblematica.library.illinois.edu/ +* EB - implementation Name: Emblematica Online (Developmental Version) + * email: mjsarol@illinois.edu + * link: http://emblematica.library.illinois.edu/portal_anno/ + * gitHub: not yet +* HY - implementation Name: Hypothesis + * email: dev@list.hypothes.is + * link: https://hypothes.is + * gitHub: https://github.com/hypothesis + +* TK - implementation Name: Takeshi Kanai + * email: takeshi.kanai@sony.com + +* EF - implementation Name: Europeana Foundation (v0.2.4) + * email: api@europeana.eu + * link: http://labs.europeana.eu/api/annotations + * gitHub: https://github.com/europeana/annotation + +* MM - implementation Name: Mirador plus MangoServer + * email: azaroth42@gmail.com + * link client: http://projectmirador.org/ + * gitHub client: https://github.com/ProjectMirador/mirador/ + * gitHub server: https://github.com/azaroth42/MangoServer/ + * NOTE: This is both an annotation client AND a protocol server; this it implements the collection and page portions in addition to the individual annotation models. + +* DG - implementation Name: Wellcome Quilt + * email: tom.crane@digirati.com + * link client: http://ghp.wellcomecollection.org/annotation-viewer/quilt/ + * gitHub client: https://github.com/wellcometrust/annotation-viewer + +* PN - implementation Name: The Pund.it + * link: http://thepund.it/ + +* KM - impelementation Name: KANZAKI Masahide + * email: mkanzaki@gmail.com + * link: http://www.kanzaki.com/works/2016/pub/image-annotator + +* RI - implementation Name: Reference Implementation + * email: shane@spec-ops.io + * link: https://github.com/spec-ops/web-platform-tests + * NOTE: This is a protocol server that implements the collection and page portions of the annotation data model. + +* PW - implementation Name: Page Notes + * email: byoung@bigbluehat.com + * link: https://github.com/bigbluehat/page-notes + +* RN - implementation Name: Renarrations and SWeeT Web + * email: dinesh@janastu.org + * link client: http://dash.swtr.us + * link Swts2Annos: https://github.com/janastu/swts2annos Adding new results ================== To add new tests results: -1. Fork the test-results repo if you haven't already (https://github.com/w3c/test-results) -2. Select a two letter abbreviation for your implementation under test (e.g., AB) and add it to the list above -3. Produce a JSON test result files using http://w3c-test.org/tools/runner/index.html (or a local copy); naming that file using the two letter abbreviation and a two digit representation of the version number under test. - * Use `/annotation-model` as the path for which tests to run. - * Click start and there will be several pages, each of which will prompt for a JSON serialization of an annotation from your implementation. - * Note that failures in the test results can be caused by the annotation not using that particular feature, and for the optional tests should not be cause for alarm. -4. Place your new _AA00_.json results in the annotation-model directory -5. Create a pull request with your updated files -6. When it is merged the maintainers will update the overall results reports automatically - -If you want to see what the report would look like locally, use the wptreport tool (https://github.com/spec-ops/wptreport) to build a +1. For each category of annotation that your implementation can generate, produce a JSON test result file using http://w3c-test.org/tools/runner/index.html?path=/annotation-model/annotations/ (soon), or http://testdev.spec-ops.io:8000/tools/runner/index.html?path=/annotation-model/annotations/ (working now), or your local, up to date clone of https://github.com/w3c/web-platform-tests. + * Be sure to specify `/annotation-model/annotations/` as the path for which tests to run. + * Click start and 3 HTML Web forms listing different test assertions will be displayed sequentially in a new window. For each form, you will prompted to provide (paste into a text box) the JSON serialization of the annotation from your implementation that you want to test; enter the same annotation into each of the 3 forms. (To test a second or subsequent annotation, you must run the complete test again, all 3 forms.) + * After the third HTML completes and closes, be sure to click the `Download JSON results` button to retrieve and save your JSON test results file. + * Please test and submit the fewest annotations and test-results required to demonstrate the full range of annotation model features your annotation client implements. In other words only test and submit results for a second annotation if the second annotation includes one or more model features not found in the first annotation you tested, for example, if your annotation 01 includes the bodyValue key and your annotation 02 includes the body key instead. Only include a 3rd annotation if it includes one or more features not found in your first and second annotations. And so on. + * Note that failures to pass individual test assertions can be caused by the annotation not using that particular feature, and for the optional tests should not be cause for alarm. +2. Fork the w3c/test-results repo if you haven't already (https://github.com/w3c/test-results) +3. Select a unique two letter abbreviation for your implementation under test (e.g., AB) and add it to the 'Index of implementations in reports' in the /annotation-model/README.md file in your forked copy. Provide implementation name, contact email, Website (if publicly available), GitHub repository (if you have one). Use the information provided by previous implementations in the list as a model. +4. Rename your JSON test-results file using the two letter abbreviation you chose and a two digit number value representing annotation number used as input for that test run, for example, _AA00_.json. +5. Place your newly renamed results files in the annotation-model directory +6. Place copies of each annotation you tested in a subfolder named by concatenating your two letter abbreviation and the string '-input', e.g., _AA_-input/anno01.json + * When naming your individual annotation files, please follow the convention illustrated of including 2 digits in the file name so that it is obvious which annotation goes with which test results file. +6. Create a pull request with your updated files +7. When it is merged the maintainers will update the overall results reports automatically + +If you want to see what your implementation test results reports would look like locally, use the wptreport tool (https://github.com/spec-ops/wptreport) to build a report with a command line like `wptreport -f -m -s "Annotation Model"` diff --git a/annotation-model/RI-input/RI01.anno b/annotation-model/RI-input/RI01.anno new file mode 100644 index 0000000..b4365c6 --- /dev/null +++ b/annotation-model/RI-input/RI01.anno @@ -0,0 +1,15 @@ +{ + "@context": [ + "http://www.w3.org/ns/anno.jsonld", + "http://www.w3.org/ns/ldp.jsonld" + ], + "first": "http://localhost:8080/annotations/?page=0", + "id": "http://localhost:8080/annotations/", + "label": "A Container for Web Annotations", + "last": "http://localhost:8080/annotations/?page=3", + "total": 45, + "type": [ + "BasicContainer", + "AnnotationCollection" + ] +} diff --git a/annotation-model/RI-input/RI02.anno b/annotation-model/RI-input/RI02.anno new file mode 100644 index 0000000..eaca187 --- /dev/null +++ b/annotation-model/RI-input/RI02.anno @@ -0,0 +1,700 @@ +{ + "@context": "http://www.w3.org/ns/anno.jsonld", + "id": "http://localhost:8080/annotations/?page=1", + "items": [ + { + "@context": "http://www.w3.org/ns/anno.jsonld", + "body": { + "type": "TextualBody", + "value": "These pages together provide evidence of the conspiracy" + }, + "id": "http://example.org/anno11", + "motivation": "commenting", + "target": { + "items": [ + "http://example.com/page1", + "http://example.org/page6", + "http://example.net/page4" + ], + "type": "Composite" + }, + "type": "Annotation" + }, + { + "@context": "http://www.w3.org/ns/anno.jsonld", + "body": { + "type": "TextualBody", + "value": "Great resource!" + }, + "created": "2015-02-31T12:03:45Z", + "id": "/annotations/anno2.jsonld", + "target": "http://www.w3c.org/", + "type": "Annotation" + }, + { + "@context": "http://www.w3.org/ns/anno.jsonld", + "body": "http://example.org/comment1", + "id": "http://example.org/anno32", + "target": { + "selector": { + "refinedBy": { + "exact": "Selected Text", + "prefix": "text before the ", + "suffix": " and text after it", + "type": "TextQuoteSelector" + }, + "type": "FragmentSelector", + "value": "para5" + }, + "source": "http://example.org/page1" + }, + "type": "Annotation" + }, + { + "@context": "http://www.w3.org/ns/anno.jsonld", + "body": "http://example.org/comment1", + "id": "http://example.org/anno39", + "target": { + "renderedVia": { + "id": "http://example.com/pdf-to-html-library", + "schema:softwareVersion": "2.5", + "type": "Software" + }, + "selector": "http://example.org/selectors/html-selector1", + "source": "http://example.edu/article.pdf" + }, + "type": "Annotation" + }, + { + "@context": "http://www.w3.org/ns/anno.jsonld", + "body": "http://example.org/comment1", + "id": "http://example.org/anno36", + "target": { + "source": "http://example.org/ebook1", + "state": { + "refinedBy": { + "refinedBy": { + "conformsTo": "http://tools.ietf.org/rfc/rfc3778", + "type": "FragmentSelector", + "value": "page=10" + }, + "type": "HttpRequestState", + "value": "Accept: application/pdf" + }, + "sourceDate": "2016-02-01T12:05:23Z", + "type": "TimeState" + } + }, + "type": "Annotation" + }, + { + "@context": "http://www.w3.org/ns/anno.jsonld", + "body": { + "format": "text/plain", + "type": "TextualBody", + "value": "Comment text" + }, + "id": "http://example.org/anno7", + "target": "http://example.org/target1", + "type": "Annotation" + }, + { + "@context": "http://www.w3.org/ns/anno.jsonld", + "body": "http://example.org/note1", + "id": "http://example.org/anno33", + "target": { + "source": "http://example.org/page1", + "state": { + "id": "http://example.org/state1" + } + }, + "type": "Annotation" + }, + { + "@context": "http://www.w3.org/ns/anno.jsonld", + "body": { + "items": [ + { + "id": "http://example.org/note1", + "language": "en" + }, + { + "id": "http://example.org/note2", + "language": "fr" + } + ], + "type": "Choice" + }, + "id": "http://example.org/anno10", + "target": "http://example.org/website1", + "type": "Annotation" + }, + { + "@context": "http://www.w3.org/ns/anno.jsonld", + "body": [ + { + "purpose": "tagging", + "type": "TextualBody", + "value": "love" + }, + { + "items": [ + { + "creator": "http://example.org/user1", + "format": "text/plain", + "language": "en", + "purpose": "describing", + "type": "TextualBody", + "value": "I really love this particular bit of text in this XML. No really." + }, + { + "purpose": "describing", + "source": { + "creator": { + "id": "http://example.org/user2", + "type": "Person" + }, + "format": "audio/mpeg", + "id": "http://example.org/comment1", + "language": "de", + "type": "Audio" + }, + "type": "SpecificResource" + } + ], + "type": "Choice" + } + ], + "created": "2015-10-13T13:00:00Z", + "creator": { + "id": "http://example.org/user1", + "name": "A. Person", + "nickname": "user1", + "type": "Person" + }, + "generated": "2015-10-14T15:13:28Z", + "generator": { + "homepage": "http://example.org/homepage1", + "id": "http://example.org/client1", + "name": "Code v2.1", + "type": "Software" + }, + "id": "http://example.org/anno41", + "motivation": "commenting", + "stylesheet": { + "id": "http://example.org/stylesheet1", + "type": "CssStylesheet" + }, + "target": { + "selector": { + "refinedBy": { + "end": 27, + "start": 6, + "type": "TextPositionSelector" + }, + "type": "FragmentSelector", + "value": "xpointer(/doc/body/section[2]/para[1])" + }, + "source": "http://example.com/document1", + "state": [ + { + "refinedBy": { + "sourceDate": "2015-09-25T12:00:00Z", + "type": "TimeState" + }, + "type": "HttpRequestState", + "value": "Accept: application/xml" + } + ], + "styleClass": "mystyle", + "type": "SpecificResource" + }, + "type": "Annotation" + }, + { + "@context": "http://www.w3.org/ns/anno.jsonld", + "body": "http://example.net/comment1", + "id": "http://example.org/anno17", + "motivation": "commenting", + "target": { + "accessibility": "captions", + "id": "http://example.com/video1", + "type": "Video" + }, + "type": "Annotation" + }, + { + "@context": "http://www.w3.org/ns/anno.jsonld", + "audience": { + "id": "http://example.edu/roles/teacher", + "schema:educationalRole": "teacher", + "type": "schema:EducationalAudience" + }, + "body": "http://example.net/classnotes1", + "id": "http://example.org/anno16", + "target": "http://example.com/textbook1", + "type": "Annotation" + }, + { + "@context": "http://www.w3.org/ns/anno.jsonld", + "body": [ + "http://example.org/description1", + { + "type": "TextualBody", + "value": "tag1" + } + ], + "id": "http://example.org/anno9", + "target": [ + "http://example.org/image1", + "http://example.org/image2" + ], + "type": "Annotation" + }, + { + "@context": "http://www.w3.org/ns/anno.jsonld", + "body": "http://example.org/review1", + "id": "http://example.org/anno27", + "target": { + "selector": { + "end": 795, + "start": 412, + "type": "TextPositionSelector" + }, + "source": "http://example.org/ebook1" + }, + "type": "Annotation" + }, + { + "@context": "http://www.w3.org/ns/anno.jsonld", + "body": "http://example.org/body1", + "id": "http://example.org/anno38", + "stylesheet": { + "type": "CssStylesheet", + "value": ".red { color: red }" + }, + "target": { + "source": "http://example.org/target1", + "styleClass": "red" + }, + "type": "Annotation" + }, + { + "@context": "http://www.w3.org/ns/anno.jsonld", + "body": { + "format": "text/html", + "language": "fr", + "type": "TextualBody", + "value": "j'adore !
" + }, + "id": "http://example.org/anno5", + "target": "http://example.org/photo1", + "type": "Annotation" + }, + { + "@context": "http://www.w3.org/ns/anno.jsonld", + "body": { + "purpose": "tagging", + "source": "http://example.org/city1", + "type": "SpecificResource" + }, + "id": "http://example.org/anno21", + "target": { + "id": "http://example.org/photo1", + "type": "Image" + }, + "type": "Annotation" + }, + { + "@context": "http://www.w3.org/ns/anno.jsonld", + "body": "http://example.net/review1", + "creator": { + "email_sha1": "58bad08927902ff9307b621c54716dcc5083e339", + "id": "http://example.org/user1", + "name": "My Pseudonym", + "nickname": "pseudo", + "type": "Person" + }, + "generator": { + "homepage": "http://example.org/client1/homepage1", + "id": "http://example.org/client1", + "name": "Code v2.1", + "type": "Software" + }, + "id": "http://example.org/anno15", + "target": "http://example.com/restaurant1", + "type": "Annotation" + }, + { + "@context": "http://www.w3.org/ns/anno.jsonld", + "body": "http://example.org/comment1", + "id": "http://example.org/anno31", + "target": { + "selector": { + "endSelector": { + "type": "XPathSelector", + "value": "//table[1]/tr[1]/td[4]" + }, + "startSelector": { + "type": "XPathSelector", + "value": "//table[1]/tr[1]/td[2]" + }, + "type": "RangeSelector" + }, + "source": "http://example.org/page1.html" + }, + "type": "Annotation" + }, + { + "@context": "http://www.w3.org/ns/anno.jsonld", + "body": { + "id": "http://example.org/video1", + "type": "Video" + }, + "id": "http://example.org/anno3", + "target": { + "id": "http://example.org/website1", + "type": "Text" + }, + "type": "Annotation" + }, + { + "@context": "http://www.w3.org/ns/anno.jsonld", + "body": "http://example.org/post1", + "id": "http://example.org/anno1", + "target": "http://example.com/page1", + "type": "Annotation" + }, + { + "@context": "http://www.w3.org/ns/anno.jsonld", + "body": "http://example.org/note1", + "id": "http://example.org/anno24", + "target": { + "selector": { + "type": "CssSelector", + "value": "#elemid > .elemclass + p" + }, + "source": "http://example.org/page1.html" + }, + "type": "Annotation" + }, + { + "@context": "http://www.w3.org/ns/anno.jsonld", + "body": "http://example.org/note1", + "id": "http://example.org/anno25", + "target": { + "selector": { + "type": "XPathSelector", + "value": "/html/body/p[2]/table/tr[2]/td[3]/span" + }, + "source": "http://example.org/page1.html" + }, + "type": "Annotation" + }, + { + "@context": "http://www.w3.org/ns/anno.jsonld", + "body": "http://example.org/note1", + "id": "http://example.org/anno28", + "target": { + "selector": { + "end": 4104, + "start": 4096, + "type": "DataPositionSelector" + }, + "source": "http://example.org/diskimg1" + }, + "type": "Annotation" + }, + { + "@context": "http://www.w3.org/ns/anno.jsonld", + "body": "http://example.org/note1", + "id": "http://example.org/anno40", + "target": { + "scope": "http://example.org/page1", + "source": "http://example.org/image1" + }, + "type": "Annotation" + }, + { + "@context": "http://www.w3.org/ns/anno.jsonld", + "body": { + "purpose": "describing", + "selector": { + "conformsTo": "http://www.w3.org/TR/media-frags/", + "type": "FragmentSelector", + "value": "t=30,60" + }, + "source": "http://example.org/video1" + }, + "id": "http://example.org/anno23", + "target": "http://example.org/image1", + "type": "Annotation" + }, + { + "@context": "http://www.w3.org/ns/anno.jsonld", + "body": "http://example.org/description1", + "id": "http://example.org/anno35", + "target": { + "source": "http://example.org/resource1", + "state": { + "type": "HttpRequestState", + "value": "Accept: application/pdf" + } + }, + "type": "Annotation" + }, + { + "@context": "http://www.w3.org/ns/anno.jsonld", + "body": "http://example.org/comment1", + "id": "http://example.org/anno37", + "stylesheet": "http://example.org/style1", + "target": { + "source": "http://example.org/document1", + "styleClass": "red" + }, + "type": "Annotation" + }, + { + "@context": "http://www.w3.org/ns/anno.jsonld", + "body": "http://example.org/road1", + "id": "http://example.org/anno30", + "target": { + "selector": { + "type": "SvgSelector", + "value": "Test files: 9; Total subtests: 146
+For an explanation of the implementation codes and other conventions used in this report, see +the README file.
+ +Test files: 7; Total subtests: 206
Test | EM01 | IC01 | MO01 | MO02 | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|
/annotation-model/annotations/annotationAgentOptionals-manual.html | OK | OK | OK | OK | |||||||
1:1 Implements Annotation-level creator (Agent) id key with single value that is a string of format uri - model 3.2.2 | FAIL | FAIL | FAIL | FAIL | |||||||
1:2 Implements Annotation-level generator (Agent) id key with single value that is a string of format uri - model 3.2.2 | PASS | PASS | PASS | PASS | |||||||
1:3 Implements Annotation-level creator (Agent) type key with one or more values from model-recommended list (Person, Organization, Software) - model 3.2.2 | PASS | PASS | PASS | PASS | |||||||
1:4 Implements Annotation-level generator (Agent) type key with one or more values from model-recommended list (Person, Organization, Software) - model 3.2.2 | PASS | PASS | PASS | PASS | |||||||
1:5 Implements Annotation-level creator (Agent) nickname key with a single value that is a string - model 3.2.2 | FAIL | FAIL | FAIL | FAIL | |||||||
1:6 Implements Annotation-level generator (Agent) nickname key with a single value that is a string - model 3.2.2 | FAIL | FAIL | FAIL | FAIL | |||||||
1:7 Implements Annotation-level creator (Agent) name key with a single value that is a string - model 3.2.2 | PASS | PASS | PASS | PASS | |||||||
1:8 Implements Annotation-level generator (Agent) name key with a single value that is a string - model 3.2.2 | PASS | PASS | PASS | PASS | |||||||
1:9 Implements Annotation-level creator (Agent) name key with one or more values - model 3.2.2 | PASS | PASS | PASS | PASS | |||||||
1:10 Implements Annotation-level generator (Agent) name key with one or more values. model 3.2.2 | PASS | PASS | PASS | PASS | |||||||
1:11 Implements Annotation-level creator (Agent) email key with one or more values, each of which is a mailto: uri - model 3.2.2 | PASS | PASS | PASS | PASS | |||||||
1:12 Implements Annotation-level generator (Agent) email key with one or more values, each of which is a mailto: uri - model 3.2.2 | FAIL | FAIL | FAIL | FAIL | |||||||
1:13 Implements Annotation-level creator (Agent) email_sha1 key with one or more values - model 3.2.2 | FAIL | FAIL | FAIL | FAIL | |||||||
1:14 Implements Annotation-level generator (Agent) email_sha1 key with one or more values - model 3.2.2 | FAIL | FAIL | FAIL | FAIL | |||||||
1:15 Implements Annotation-level creator (Agent) homepage key with one or more values, each of which is a string of format uri - model 3.2.2 | PASS | PASS | PASS | PASS | |||||||
1:16 Implements Annotation-level generator (Agent) homepage key with one or more values, each of which is a string of format uri - model 3.2.2 | PASS | PASS | PASS | PASS | |||||||
/annotation-model/annotations/annotationMusts-manual.html | OK | OK | OK | OK | |||||||
1:1 Annotation has @context key and 'http://www.w3.org/ns/anno.jsonld' is a value of @context - model 3.1 | PASS | PASS | PASS | PASS | |||||||
1:2 Annotation has id key which has a single value that is a string of format uri - model 3.1 | PASS | PASS | PASS | PASS | |||||||
1:3 Annotation has type key and 'Annotation' is a value of type - model 3.1 | PASS | PASS | PASS | PASS | |||||||
1:4 Annotation has a target key - model 3.1 | PASS | PASS | PASS | PASS | |||||||
1:5 Each target is one of a string of format uri, an External Web Resource, a Choice or Set, or a Specific Resource - model 3.2, model 4 | PASS | PASS | PASS | PASS | |||||||
1:6 Annotation has a body key, or a bodyValue key, or neither, but NEVER both - model 3.2.5 | PASS | PASS | PASS | PASS | |||||||
1:7 If present, each body is one of a string of format uri, an External Web Resource, an Embedded Textual Body, a Choice or Set, or a Specific Resource - model 3.2, model 4 | PASS | PASS | FAIL | PASS | |||||||
1:8 If present the bodyValue key has a single value that is a string - model 3.2.5 | PASS | PASS | PASS | PASS | |||||||
1:9 If present the Annotation-level created key has a single value that is of format date-time - model 3.3.1 | PASS | PASS | PASS | PASS | |||||||
1:10 If present the Annotation-level modified key has a single value that is of format date-time - model 3.3.1 | PASS | PASS | PASS | PASS | |||||||
1:11 If present the Annotation-level generated key has a single value that is of format date-time - model 3.3.1 | PASS | PASS | PASS | PASS | |||||||
1:12 If present the Annotation-level rights key has values that are all strings of format uri - model 3.3.6 | PASS | PASS | PASS | PASS | |||||||
1:13 If present the Annotation-level canonical key has a single value that is a string of format uri - model 3.3.7 | PASS | PASS | PASS | PASS | |||||||
1:14 If present the Annotation-level via key has values that are all strings of format uri - model 3.3.7 | PASS | PASS | PASS | PASS | |||||||
/annotation-model/annotations/annotationOptionals-manual.html | OK | OK | OK | OK | |||||||
1:1 Implements body key - model 3.1 | PASS | PASS | PASS | PASS | |||||||
1:2 Implements Annotation-level creator key with a single value - model 3.3.1 | PASS | PASS | PASS | PASS | |||||||
1:3 Implements Annotation-level created key which has a single value that is a string of format date-time - model 3.3.1 | PASS | PASS | PASS | PASS | |||||||
1:4 Implements motivation key with a single value that is from the model's list of Motivations - model 3.3.5 | PASS | PASS | FAIL | FAIL | |||||||
1:5 Implements bodyValue key which has a single value that is a string model 3.2.5 | FAIL | FAIL | FAIL | FAIL | |||||||
1:6 Implements creator key which has one or more values, each of which is a string of format uri or an object - model 3.3.1 | PASS | PASS | PASS | PASS | |||||||
1:7 Implements generator key which has one or more values, each of which is a string of format uri or an object - model 3.3.1. | PASS | PASS | PASS | PASS | |||||||
1:8 Implements Annotation-level generated key which has a single value that is a string of format date-time - model 3.3.1 | FAIL | FAIL | FAIL | FAIL | |||||||
1:9 Implements Annotation-level modified key which has a single value that is a string of format date-time - model 3.3.1 | FAIL | FAIL | FAIL | FAIL | |||||||
1:10 Implements audience key which has one or more values with each audience instance described using schema.org/Audience classes and properties - model 3.3.3 | FAIL | FAIL | FAIL | FAIL | |||||||
1:11 Implements motivation key which has one or more values, each of which is from the model's list of Motivations - model 3.3.5 | PASS | PASS | FAIL | FAIL | |||||||
1:12 Implements Annotation-level rights key which has one or more values, each of which is a string of format uri - model 3.3.6 | FAIL | FAIL | FAIL | FAIL | |||||||
1:13 Implements Annotation-level canonical key which has a single value that is a string of format uri - model 3.3.7 | FAIL | FAIL | FAIL | FAIL | |||||||
1:14 Implements Annotation-level via key which has one or more values, each of which is a string of format uri - model 3.3.7 | FAIL | FAIL | FAIL | FAIL | |||||||
1:15 Implements stylesheet key which has a single value that is an object or string of format uri. model 4.4 | FAIL | FAIL | FAIL | FAIL | |||||||
/annotation-model/annotations/annotationSingleAssertion-manual.html | OK | OK | OK | OK | |||||||
1:1 If present, each body is one of a string of format uri, an External Web Resource, an Embedded Textual Body, a Choice or Set, or a Specific Resource - model 3.2, model 4 | PASS | PASS | FAIL | PASS | |||||||
/annotation-model/bodiesTargets/bodyMusts-manual.html | OK | OK | OK | OK | |||||||
1:1 If present, each body is one of a string of format uri, an External Web Resource, an Embedded Textual Body, a Choice or Set, or a Specific Resource - model 3.2, model 4 | PASS | PASS | FAIL | PASS | |||||||
1:2 If present as a body or body/source property, the textDirection key has a single value which is one of 'ltr', 'rtl', 'auto' - model 3.2.1 | PASS | PASS | PASS | PASS | |||||||
1:3 If present all body-level or body/source-level created keys have a single value that is of format date-time - model 3.3.1 | PASS | PASS | PASS | PASS | |||||||
1:4 If present all body-level or body/source-level modified keys have a single value that is of format date-time - model 3.3.1 | PASS | PASS | PASS | PASS | |||||||
1:5 If present all body-level or body/source-level rights key values are strings of format uri - model 3.3.6 | PASS | PASS | PASS | PASS | |||||||
1:6 If present all body-level or body/source-level canonical keys have a single value which is a string of format uri - model 3.3. | PASS | PASS | PASS | PASS | |||||||
1:7 If present all body-level or body/source-level via key values are strings of format uri - model 3.3.7 | PASS | PASS | PASS | PASS | |||||||
1:8 If an External Web Resource is a body, it does NOT have an items key - model 3.2.7 | PASS | PASS | PASS | PASS | |||||||
1:9 If an External Web Resource is a body, it does NOT have an purpose key - model 3.3.5 | PASS | PASS | PASS | PASS | |||||||
1:10 If a Choice or Set is a body, it does NOT have a value key - model 3.2.4 | PASS | PASS | PASS | PASS | |||||||
1:11 If a Choice or Set is a body, it does NOT have a source key - model 4 | PASS | PASS | PASS | PASS | |||||||
1:12 If a Choice or Set is a body, it does NOT have a purpose key - model 3.3.5 | PASS | PASS | PASS | PASS | |||||||
1:13 If an Embedded Textual Body is a body, it does NOT have an items key - model 3.2.7 | PASS | PASS | PASS | PASS | |||||||
1:14 If an Embedded Textual Body is a body, it does NOT have a source key - model 4 | PASS | PASS | PASS | PASS | |||||||
1:15 If a Specific Resource is a body, it does NOT have an items key - model 3.2.7 | PASS | PASS | PASS | PASS | |||||||
1:16 If a Specific Resource is a body, it does NOT have a value key - model 4 | PASS | PASS | PASS | PASS | |||||||
/annotation-model/bodiesTargets/bodyOptionals-manual.html | OK | OK | OK | OK | |||||||
1:1 Implements body format key with a single value that is a media type model 3.2.1 | FAIL | FAIL | FAIL | PASS | |||||||
1:2 Implements body language key with a single value that is a language code model 3.2.1 | FAIL | FAIL | FAIL | PASS | |||||||
1:3 Implements body creator key with a single value model 3.3.1 | FAIL | FAIL | FAIL | FAIL | |||||||
1:4 Implements body created key with a single value that is of format date-time model 3.3.1 | FAIL | FAIL | FAIL | FAIL | |||||||
1:5 Implements Embedded Textual Body type key which includes a value of TextualBody model 3.2.4 | FAIL | FAIL | FAIL | PASS | |||||||
1:6 Implements External Web Resource with id key as a body of the Annotation model 3.2.1 | FAIL | FAIL | PASS | PASS | |||||||
1:7 Implements Embedded Textual Body with value key as a body of the Annotation model 3.2.4 | FAIL | FAIL | PASS | PASS | |||||||
1:8 Implements Choice with type and items keys as a body of the Annotation model 3.2.7 | FAIL | FAIL | FAIL | FAIL | |||||||
1:9 Implements List with type and items keys as a body of the Annotation model 3.2.8 | FAIL | FAIL | FAIL | FAIL | |||||||
1:10 Implements Composite with type and items keys as a body of the Annotation model 3.2.8 | FAIL | FAIL | FAIL | FAIL | |||||||
1:11 Implements Independents with type and items keys as a body of the Annotation model 3.2.8 | FAIL | FAIL | FAIL | FAIL | |||||||
1:12 Implements Specific Resource with source and at least one of purpose, selector, state, style, renderedVia, scope keys as a body of the Annotation model 4 | FAIL | FAIL | FAIL | FAIL | |||||||
1:13 Implements body format key with one or more values each of which is a media type model 3.2.1 | FAIL | FAIL | FAIL | PASS | |||||||
1:14 Implements body language key with one or more values each of which is a language code model 3.2.1 | FAIL | FAIL | FAIL | PASS | |||||||
1:15 Implements body creator key with one or more values - model 3.3.1 | FAIL | FAIL | FAIL | FAIL | |||||||
1:16 Implements body type key with one or more values each of which is drawn from the model's list of resource classes model 3.2.1 | FAIL | FAIL | FAIL | FAIL | |||||||
1:17 Implements body processingLanguage key with a single value that is a language code model 3.2.1 | FAIL | FAIL | FAIL | FAIL | |||||||
1:18 Implements body textDirection key with a single value that is is one of ltr, rtl, or auto model 3.2.1 | FAIL | FAIL | FAIL | FAIL | |||||||
1:19 Implements body modified key with a single value that is of format date-time model 3.3.1 | FAIL | FAIL | FAIL | FAIL | |||||||
1:20 Implements body audience key which has one or more values with each audience instance described using schema.org/Audience classes and properties - model 3.3.3 | FAIL | FAIL | FAIL | FAIL | |||||||
1:21 Implements body accessibility key which has one or more values - model 3.3.4 | FAIL | FAIL | FAIL | FAIL | |||||||
1:22 Implements body purpose key with one or more values are each drawn from model's list of Motivations model 3.3.5 | FAIL | FAIL | FAIL | FAIL | |||||||
1:23 Implements body rights key which has one or more values, each of which is a string of format uri - model 3.3.6 | FAIL | FAIL | FAIL | FAIL | |||||||
1:24 Implements body canonical key with a single value that is of format uri model 3.3.7 | FAIL | FAIL | FAIL | FAIL | |||||||
1:25 Implements body via key which has one or more values, each of which is a string of format uri - model 3.3.7 | FAIL | FAIL | FAIL | FAIL | |||||||
1:26 Implements Specific Resource body styleClass key which has one or more values - model 4.4 | FAIL | FAIL | FAIL | FAIL | |||||||
1:27 Implements Specific Resource body renderedVia key which has one or more values - model 4.5 | FAIL | FAIL | FAIL | FAIL | |||||||
1:28 Implements Embedded Textual Body type key which includes a value of Text model 3.2.4 | FAIL | FAIL | FAIL | FAIL | |||||||
/annotation-model/bodiesTargets/bodyTargAgentOptionals-manual.html | OK | OK | OK | OK | |||||||
1:1 Implements Body-level creator (Agent) id key with single value that is a string of format uri - model 3.2.2 | FAIL | FAIL | FAIL | FAIL | |||||||
1:2 Implements Target-level creator (Agent) id key with single value that is a string of format uri - model 3.2.2 | FAIL | FAIL | FAIL | FAIL | |||||||
1:3 Implements Body-level creator (Agent) type key with one or more values from model-recommended list (Person, Organization, Software) - model 3.2.2 | FAIL | FAIL | FAIL | FAIL | |||||||
1:4 Implements Target-level creator (Agent) type key with one or more values from model-recommended list (Person, Organization, Software) - model 3.2.2 | FAIL | FAIL | FAIL | FAIL | |||||||
1:5 Implements Body-level creator (Agent) nickname key with a single value that is a string - model 3.2.2 | FAIL | FAIL | FAIL | FAIL | |||||||
1:6 Implements Target-level creator (Agent) nickname key with a single value that is a string - model 3.2.2 | FAIL | FAIL | FAIL | FAIL | |||||||
1:7 Implements Body-level creator (Agent) name key with a single value that is a string - model 3.2.2 | FAIL | FAIL | FAIL | FAIL | |||||||
1:8 Implements Target-level creator (Agent) name key with a single value that is a string - model 3.2.2 | FAIL | FAIL | FAIL | FAIL | |||||||
1:9 Implements Body-level creator (Agent) name key with one or more values - model 3.2.2 | FAIL | FAIL | FAIL | FAIL | |||||||
1:10 Implements Target-level creator (Agent) name key with one or more values - model 3.2.2 | FAIL | FAIL | FAIL | FAIL | |||||||
1:11 Implements Body-level creator (Agent) email key with one or more values, each of which is a mailto: uri - model 3.2.2 | FAIL | FAIL | FAIL | FAIL | |||||||
1:12 Implements Target-level creator (Agent) email key with one or more values, each of which is a mailto: uri - model 3.2.2 | FAIL | FAIL | FAIL | FAIL | |||||||
1:13 Implements Body-level creator (Agent) email_sha1 key with one or more values - model 3.2.2 | FAIL | FAIL | FAIL | FAIL | |||||||
1:14 Implements Target-level creator (Agent) email_sha1 key with one or more values - model 3.2.2 | FAIL | FAIL | FAIL | FAIL | |||||||
1:15 Implements Body-level creator (Agent) homepage key with one or more values, each of which is a string of format uri - model 3.2.2 | FAIL | FAIL | FAIL | FAIL | |||||||
1:16 Implements Target-level creator (Agent) homepage key with one or more values, each of which is a string of format uri - model 3.2.2 | FAIL | FAIL | FAIL | FAIL | |||||||
/annotation-model/bodiesTargets/targetMusts-manual.html | OK | OK | OK | OK | |||||||
1:1 Each target is one of a string of format uri, an External Web Resource, a Choice or Set, or a Specific Resource - model 3.2, model 4 | PASS | PASS | PASS | PASS | |||||||
1:2 If present as a target or target/source property, the textDirection key has a single value which is one of 'ltr', 'rtl', 'auto' - model 3.2.1 | PASS | PASS | PASS | PASS | |||||||
1:3 If present all target-level or target/source-level created keys have a single value that is of format date-time - model 3.3.1 | PASS | PASS | PASS | PASS | |||||||
1:4 If present all target-level or target/source-level modified keys have a single value that is of format date-time - model 3.3.1 | PASS | PASS | PASS | PASS | |||||||
1:5 If present all target-level or target/source-level rights key values are strings of format uri - model 3.3.6 | PASS | PASS | PASS | PASS | |||||||
1:6 If present all target-level or target/source-level canonical keys have a single value which is a string of format uri - model 3.3. | PASS | PASS | PASS | PASS | |||||||
1:7 If present all target-level or target/source-level via key values are strings of format uri - model 3.3.7 | PASS | PASS | PASS | PASS | |||||||
1:8 If an External Web Resource is a target, it does NOT have an items key - model 3.2.7 | PASS | PASS | PASS | PASS | |||||||
1:9 If an External Web Resource is a target, it does NOT have an purpose key - model 3.3.5 | PASS | PASS | PASS | PASS | |||||||
1:10 If a Choice or Set is a target, it does NOT have a value key - model 3.2.4 | PASS | PASS | PASS | PASS | |||||||
1:11 If a Choice or Set is a target, it does not have a source key - model 4 | PASS | PASS | PASS | PASS | |||||||
1:12 If a Choice or Set is a target, it does NOT have a purpose key - model 3.3.5 | PASS | PASS | PASS | PASS | |||||||
1:13 If a Specific Resource Target is a target, it does NOT have an items key - model 3.2.7 | PASS | PASS | PASS | PASS | |||||||
1:14 If a Specific Resource is a target, it does NOT have a value key - model 4 | PASS | PASS | PASS | PASS | |||||||
1:15 Neither target Resources nor target Choice or Set items have a type key which includes a value of TextualBody model 3.2.4 | PASS | PASS | PASS | PASS | |||||||
/annotation-model/bodiesTargets/targetOptionals-manual.html | OK | OK | OK | OK | |||||||
1:1 Implements target format key with a single value that is a media type model 3.2.1 | FAIL | FAIL | FAIL | FAIL | |||||||
1:2 Implements target language key with a single value that is a language code model 3.2.1 | FAIL | FAIL | FAIL | FAIL | |||||||
1:3 Implements target creator key with a single value model 3.3.1 | FAIL | FAIL | FAIL | FAIL | |||||||
1:4 Implements target created key with a single value that is of format date-time model 3.3.1 | FAIL | FAIL | FAIL | FAIL | |||||||
1:5 Implements External Web Resource with id key as a target of the Annotation model 3.2.1 | FAIL | PASS | FAIL | FAIL | |||||||
1:6 Implements Choice with type and items keys as a target of the Annotation model 3.2.7 | FAIL | FAIL | FAIL | FAIL | |||||||
1:7 Implements List with type and items keys as a target of the Annotation model 3.2.8 | FAIL | FAIL | FAIL | FAIL | |||||||
1:8 Implements Composite with type and items keys as a target of the Annotation model 3.2.8 | FAIL | FAIL | FAIL | FAIL | |||||||
1:9 Implements Independents with type and items keys as a target of the Annotation model 3.2.8 | FAIL | FAIL | FAIL | FAIL | |||||||
1:10 Implements Specific Resource with source and at least one of purpose, selector, state, style, renderedVia, scope keys as a target of the Annotation model 4 | FAIL | PASS | FAIL | FAIL | |||||||
1:11 Implements target format key with one or more values each of which is a media type model 3.2.1 | FAIL | FAIL | FAIL | FAIL | |||||||
1:12 Implements target language key with one or more values each of which is a language code model 3.2.1 | FAIL | FAIL | FAIL | FAIL | |||||||
1:13 Implements target creator key with one or more values - model 3.3.1 | FAIL | FAIL | FAIL | FAIL | |||||||
1:14 Implements target type key with one or more values each of which is drawn from the model's list of resource classes model 3.2.1 | FAIL | FAIL | FAIL | FAIL | |||||||
1:15 Implements target processingLanguage key with a single value that is a language code model 3.2.1 | FAIL | FAIL | FAIL | FAIL | |||||||
1:16 Implements target textDirection key with a single value that is is one of ltr, rtl, or auto model 3.2.1 | FAIL | FAIL | FAIL | FAIL | |||||||
1:17 Implements target modified key with a single value that is of format date-time model 3.3.1 | FAIL | FAIL | FAIL | FAIL | |||||||
1:18 Implements target audience key which has one or more values with each audience instance described using schema.org/Audience classes and properties - model 3.3.3 | FAIL | FAIL | FAIL | FAIL | |||||||
1:19 Implements target accessibility key which has one or more values - model 3.3.4 | FAIL | FAIL | FAIL | FAIL | |||||||
1:20 Implements target purpose key with one or more values are each drawn from model's list of Motivations model 3.3.5 | FAIL | FAIL | FAIL | FAIL | |||||||
1:21 Implements target rights key which has one or more values, each of which is a string of format uri - model 3.3.6 | FAIL | FAIL | FAIL | FAIL | |||||||
1:22 Implements target canonical key with a single value that is of format uri model 3.3.7 | FAIL | FAIL | FAIL | FAIL | |||||||
1:23 Implements target via key which has one or more values, each of which is a string of format uri - model 3.3.7 | FAIL | FAIL | FAIL | FAIL | |||||||
1:24 Implements Specific Resource target styleClass key which has one or more values - model 4.4 | FAIL | FAIL | FAIL | FAIL | |||||||
1:25 Implements Specific Resource target renderedVia key which has one or more values - model 4.5 | FAIL | FAIL | FAIL | FAIL | |||||||
Test | DG | EB | EF | HY | KM | MM | PN | PW | RI | RN | TK |
/annotation-model/annotations/annotationMusts-manual.html | OK | OK | OK | OK | OK | OK | OK | OK | - | OK | OK |
1:1 Implements @context key and 'http://www.w3.org/ns/anno.jsonld' is a value of @context - model 3.1 | PASS | PASS | PASS | PASS | PASS | PASS | FAIL | PASS | - | PASS | PASS |
1:2 Implements Annotation id key which has a single value that is a string of format uri - model 3.1 | PASS | PASS | PASS | PASS | PASS | PASS | FAIL | PASS | - | PASS | PASS |
1:3 Implements Annotation type key and 'Annotation' is a value of type - model 3.1 | PASS | PASS | PASS | PASS | PASS | PASS | FAIL | PASS | - | PASS | PASS |
1:4 Implements target key - model 3.1 | PASS | PASS | PASS | PASS | PASS | PASS | FAIL | PASS | - | PASS | PASS |
1:5 Each target is one of a string of format uri, an External Web Resource, a Choice or Set, or a Specific Resource - model 3.2, model 4 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | - | PASS | PASS |
1:6 Annotation has a body key, or a bodyValue key, or neither, but NEVER both - model 3.2.5 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | - | PASS | PASS |
1:7 If present, each body is one of a string of format uri, an External Web Resource, an Embedded Textual Body, a Choice or Set, or a Specific Resource - model 3.2, model 4 | PASS | PASS | PASS | FAIL | PASS | PASS | PASS | PASS | - | PASS | PASS |
1:8 If present the bodyValue key has a single value that is a string - model 3.2.5 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | - | PASS | PASS |
1:9 If present the Annotation-level created key has a single value that is of format date-time - model 3.3.1 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | - | PASS | PASS |
1:10 If present the Annotation-level modified key has a single value that is of format date-time - model 3.3.1 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | - | PASS | PASS |
1:11 If present the Annotation-level generated key has a single value that is of format date-time - model 3.3.1 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | - | PASS | PASS |
1:12 If present the Annotation-level rights key has values that are all strings of format uri - model 3.3.6 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | - | PASS | PASS |
1:13 If present the Annotation-level canonical key has a single value that is a string of format uri - model 3.3.7 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | - | PASS | PASS |
1:14 If present the Annotation-level via key has values that are all strings of format uri - model 3.3.7 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | - | PASS | PASS |
1:15 If present as a body or body/source property, the textDirection key has a single value which is one of 'ltr', 'rtl', 'auto' - model 3.2.1 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | - | PASS | PASS |
1:16 If present all body-level or body/source-level created keys have a single value that is of format date-time - model 3.3.1 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | - | PASS | PASS |
1:17 If present all body-level or body/source-level modified keys have a single value that is of format date-time - model 3.3.1 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | - | PASS | PASS |
1:18 If present all body-level or body/source-level rights key values are strings of format uri - model 3.3.6 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | - | PASS | PASS |
1:19 If present all body-level or body/source-level canonical keys have a single value which is a string of format uri - model 3.3. | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | - | PASS | PASS |
1:20 If present all body-level or body/source-level via key values are strings of format uri - model 3.3.7 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | - | PASS | PASS |
1:21 If an External Web Resource is a body, it does NOT have an items key - model 3.2.7 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | - | PASS | PASS |
1:22 If an External Web Resource is a body, it does NOT have an purpose key - model 3.3.5 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | - | PASS | PASS |
1:23 If a Choice or Set is a body, it does NOT have a value key - model 3.2.4 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | - | PASS | PASS |
1:24 If a Choice or Set is a body, it does NOT have a source key - model 4 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | - | PASS | PASS |
1:25 If a Choice or Set is a body, it does NOT have a purpose key - model 3.3.5 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | - | PASS | PASS |
1:26 If an Embedded Textual Body is a body, it does NOT have an items key - model 3.2.7 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | - | PASS | PASS |
1:27 If an Embedded Textual Body is a body, it does NOT have a source key - model 4 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | - | PASS | PASS |
1:28 If a Specific Resource is a body, it does NOT have an items key - model 3.2.7 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | - | PASS | PASS |
1:29 If a Specific Resource is a body, it does NOT have a value key - model 4 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | - | PASS | PASS |
1:30 If present as a target or target/source property, the textDirection key has a single value which is one of 'ltr', 'rtl', 'auto' - model 3.2.1 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | - | PASS | PASS |
1:31 If present all target-level or target/source-level created keys have a single value that is of format date-time - model 3.3.1 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | - | PASS | PASS |
1:32 If present all target-level or target/source-level modified keys have a single value that is of format date-time - model 3.3.1 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | - | PASS | PASS |
1:33 If present all target-level or target/source-level rights key values are strings of format uri - model 3.3.6 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | - | PASS | PASS |
1:34 If present all target-level or target/source-level canonical keys have a single value which is a string of format uri - model 3.3. | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | - | PASS | PASS |
1:35 If present all target-level or target/source-level via key values are strings of format uri - model 3.3.7 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | - | PASS | PASS |
1:36 If an External Web Resource is a target, it does NOT have an items key - model 3.2.7 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | - | PASS | PASS |
1:37 If an External Web Resource is a target, it does NOT have an purpose key - model 3.3.5 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | - | PASS | PASS |
1:38 If a Choice or Set is a target, it does NOT have a value key - model 3.2.4 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | - | PASS | PASS |
1:39 If a Choice or Set is a target, it does not have a source key - model 4 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | - | PASS | PASS |
1:40 If a Choice or Set is a target, it does NOT have a purpose key - model 3.3.5 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | - | PASS | PASS |
1:41 If a Specific Resource Target is a target, it does NOT have an items key - model 3.2.7 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | - | PASS | PASS |
1:42 If a Specific Resource is a target, it does NOT have a value key - model 4 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | - | PASS | PASS |
1:43 Neither target Resources nor target Choice or Set items have a type key which includes a value of TextualBody model 3.2.4 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | - | PASS | PASS |
1:44 If present Specific Resource selector key has one or more values each of which is of format uri or an object having a type key with a single value which is one of 'FragmentSelector', 'CssSelector', 'XPathSelector', 'TextQuoteSelector', 'TextPositionSelector', 'DataPositionSelector', 'SvgSelector', 'RangeSelector' - model 4.2 | PASS | PASS | PASS | FAIL | PASS | PASS | PASS | PASS | - | PASS | PASS |
1:45 If present Specific Resource state key has one or more values each of which is of format uri or an object having a type key with a single value which is one of 'TimeState' or 'HttpRequestState' - model 4.3 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | - | PASS | PASS |
1:46 If present Specific Resource state key has one or more values each of which is of format uri or an object having a type key with a single value which is one of 'TimeState' or 'HttpRequestState' - model 4.3 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | - | PASS | PASS |
1:47 If any Specific Resource styleClass keys are present, a stylesheet key (a key of Annotation) with a single value is also present model 4.4 | PASS | PASS | PASS | PASS | PASS | PASS | FAIL | PASS | - | PASS | PASS |
1:48 If present all Selectors of type FragmentSelector, CssSelector, or XPathSelector have a value key with a single value - model 4.2 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | - | PASS | PASS |
1:49 If present all Selectors of type TextQuoteSelector have an exact key with a single value - model 4.2.4 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | - | PASS | PASS |
1:50 If present all Selectors of type TextPositionSelector or DataPositionSelector have both a start key and an end key, each with a single non-negative integer value model 4.2 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | - | PASS | PASS |
1:51 If present all Selectors of type SvgSelector have either a value key or an id key with a single value of format uri model 4.2.7 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | - | PASS | PASS |
1:52 If present all Selectors of type RangeSelector have both a startSelector key and an endSelector key, each with a single value which is a Selector - model 4.2.8 | PASS | PASS | PASS | FAIL | PASS | PASS | PASS | PASS | - | PASS | PASS |
1:53 If present all States of type TimeState each have either (but not both) a souceDate key or paired sourceDateStart and sourceDateEnd keys, each of which is a single value of format date-time- model 4.3.1 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | - | PASS | PASS |
1:54 If present all States of type HttpRequestState have a value key - model 4.3.2 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | - | PASS | PASS |
/annotation-model/annotations/annotationOptionals-manual.html | OK | OK | OK | OK | OK | OK | OK | OK | - | PASS | OK |
1:1 Implements Annotation-level creator key with a single value - model 3.3.1 | - | PASS | PASS | PASS | PASS | PASS | - | - | - | - | - |
1:2 Implements Annotation-level created key which has a single value that is a string of format date-time - model 3.3.1 | - | PASS | PASS | PASS | PASS | PASS | - | PASS | - | - | - |
1:3 Implements motivation key with a single value that is from the model's list of Motivations - model 3.3.5 | - | PASS | PASS | - | - | PASS | - | - | - | - | - |
1:4 Implements bodyValue key which has a single value that is a string model 3.2.5 | - | - | PASS | - | PASS | - | - | - | - | - | - |
1:5 Implements Annotation-level generated key which has a single value that is a string of format date-time - model 3.3.1 | - | - | PASS | - | - | - | - | - | - | - | - |
1:6 Implements Annotation-level modified key which has a single value that is a string of format date-time - model 3.3.1 | - | - | - | PASS | - | - | - | - | - | - | - |
1:8 Implements motivation key which has one or more values, each of which is from the model's list of Motivations - model 3.3.5 | - | PASS | PASS | - | - | PASS | - | - | - | - | - |
1:10 Implements Annotation-level canonical key which has a single value that is a string of format uri - model 3.3.7 | - | - | - | - | - | PASS | - | - | - | - | - |
1:13 Implements body key - model 3.1 | PASS | PASS | PASS | PASS | - | PASS | - | PASS | - | - | PASS |
1:14 Implements body format key with a single value that is a media type model 3.2.1 | - | PASS | - | - | - | PASS | - | PASS | - | - | PASS |
1:15 Implements body language key with a single value that is a language code model 3.2.1 | - | PASS | - | - | - | PASS | - | PASS | - | - | - |
1:16 Implements body creator key with a single value model 3.3.1 | - | - | - | - | - | - | - | PASS | - | - | - |
1:18 Implements body format key with one or more values each of which is a media type model 3.2.1 | - | PASS | - | - | - | PASS | - | PASS | - | - | PASS |
1:19 Implements body language key with one or more values each of which is a language code model 3.2.1 | - | PASS | - | - | - | PASS | - | PASS | - | - | - |
1:20 Implements body type key with one or more values each of which is drawn from the model's list of resource classes model 3.2.1 | PASS | - | - | - | - | PASS | - | - | - | - | - |
1:23 Implements body modified key with a single value that is of format date-time model 3.3.1 | - | - | - | - | - | - | - | - | - | - | PASS |
1:26 Implements body purpose key with one or more values are each drawn from model's list of Motivations model 3.3.5 | PASS | - | - | - | - | - | - | - | - | - | - |
1:30 Implements External Web Resource with id key as a body of the Annotation model 3.2.1 | PASS | PASS | PASS | PASS | - | PASS | - | PASS | - | - | PASS |
1:31 Implements Embedded Textual Body with value key as a body of the Annotation model 3.2.4 | PASS | PASS | PASS | PASS | - | PASS | - | PASS | - | - | PASS |
1:32 Implements Embedded Textual Body type key which includes a value of TextualBody model 3.2.4 | PASS | PASS | - | - | - | PASS | - | PASS | - | - | - |
1:34 Implements Choice or Set with type and items key as a body - model 3.2.7 | PASS | - | - | - | - | PASS | - | PASS | - | - | - |
1:35 Implements Choice with type and items keys as a body of the Annotation model 3.2.7 | - | - | - | - | - | PASS | - | PASS | - | - | - |
1:37 Implements Composite with type and items keys as a body of the Annotation model 3.2.8 | PASS | - | - | - | - | - | - | - | - | - | - |
1:39 Implements target format key with a single value that is a media type model 3.2.1 | - | - | - | - | - | - | PASS | - | - | - | - |
1:40 Implements target language key with a single value that is a language code model 3.2.1 | - | - | - | - | - | - | PASS | - | - | - | - |
1:41 Implements target creator key with a single value model 3.3.1 | - | - | - | - | - | - | PASS | - | - | - | - |
1:42 Implements target created key with a single value that is of format date-time model 3.3.1 | - | - | - | - | - | - | PASS | - | - | - | - |
1:43 Implements target format key with one or more values each of which is a media type model 3.2.1 | - | - | - | - | - | - | PASS | - | - | - | - |
1:44 Implements target language key with one or more values each of which is a language code model 3.2.1 | - | - | - | - | - | - | PASS | - | - | - | - |
1:45 Implements target type key with one or more values each of which is drawn from the model's list of resource classes model 3.2.1 | - | - | - | - | PASS | - | PASS | - | - | - | - |
1:46 Implements target processingLanguage key with a single value that is a language code model 3.2.1 | - | - | - | - | - | - | PASS | - | - | - | - |
1:47 Implements target textDirection key with a single value that is is one of ltr, rtl, or auto model 3.2.1 | - | - | - | - | - | - | PASS | - | - | - | - |
1:48 Implements target modified key with a single value that is of format date-time model 3.3.1 | - | - | - | - | - | - | PASS | - | - | - | - |
1:49 Implements target audience key which has one or more values with each audience instance described using schema.org/Audience classes and properties - model 3.3.3 | - | - | - | - | - | - | PASS | - | - | - | - |
1:50 Implements target accessibility key which has one or more values - model 3.3.4 | - | - | - | - | - | - | PASS | - | - | - | - |
1:51 Implements target purpose key with one or more values are each drawn from model's list of Motivations model 3.3.5 | - | - | - | - | - | - | PASS | - | - | - | - |
1:52 Implements target rights key which has one or more values, each of which is a string of format uri - model 3.3.6 | - | - | - | - | - | - | PASS | - | - | - | - |
1:53 Implements target canonical key with a single value that is of format uri model 3.3.7 | - | - | - | - | - | - | PASS | - | - | - | - |
1:54 Implements target via key which has one or more values, each of which is a string of format uri - model 3.3.7 | - | - | - | - | - | - | PASS | - | - | - | - |
1:55 Implements External Web Resource with id key as a target of the Annotation model 3.2.1 | PASS | PASS | - | PASS | PASS | PASS | PASS | - | - | - | PASS |
1:56 Implements Choice or Set with type and items key as a target - model 3.2.7 | - | - | - | - | - | - | PASS | - | - | - | - |
1:57 Implements Choice with type and items keys as a target of the Annotation model 3.2.7 | - | - | - | - | - | - | PASS | - | - | - | - |
1:58 Implements List with type and items keys as a target of the Annotation model 3.2.8 | - | - | - | - | - | - | PASS | - | - | - | - |
1:59 Implements Composite with type and items keys as a target of the Annotation model 3.2.8 | - | - | - | - | - | - | PASS | - | - | - | - |
1:60 Implements Independents with type and items keys as a target of the Annotation model 3.2.8 | - | - | - | - | - | - | PASS | - | - | - | - |
1:62 Implements Specific Resource with source and at least one of purpose, selector, state, style, renderedVia, scope keys as a target of the Annotation model 4 | PASS | PASS | - | PASS | PASS | PASS | PASS | - | - | - | - |
1:63 Implements Specific Resource refinedBy key model 4.2.9, model 4.3.3 | PASS | - | - | PASS | PASS | PASS | PASS | - | - | - | - |
1:64 Implements Specific Resource styleClass key with one or more values on a Specific Resource - model 4.4 | - | - | - | - | - | - | PASS | - | - | - | - |
1:65 Implements Specific Resource renderedVia key with one or more values on a Specific Resource - model 4.5 | - | - | - | - | - | - | PASS | - | - | - | - |
1:66 Implements Specific Resource scope key - model 4.6 | - | PASS | - | - | - | - | PASS | - | - | - | - |
1:67 Implements Specific Resource Selector - model 4.2 | PASS | - | - | PASS | PASS | PASS | PASS | - | - | - | - |
1:68 Implements Specific Resource Fragment Selector - model 4.2.1 | - | - | - | - | PASS | - | PASS | - | - | - | - |
1:69 Implements Specific Resource conformsTo key with a single value which is of format uri on a Specific Resource FragmentSelector - model 4.2.1 | - | - | - | - | PASS | - | PASS | - | - | - | - |
1:70 Implements Specific Resource CSS Selector - model 4.2.2 | - | - | - | - | - | - | PASS | - | - | - | - |
1:71 Implements Specific Resource XPath Selector - model 4.2.3 | - | - | - | - | - | - | PASS | - | - | - | - |
1:72 Implements Specific Resource Text Quote Selector - model 4.2.4 | - | - | - | PASS | - | - | PASS | - | - | - | - |
1:73 Implements Specific Resource prefix key with a single string value on a Specific Resource TextQuoteSelector - model 4.2.4 | - | - | - | PASS | - | - | PASS | - | - | - | - |
1:74 Implements Specific Resource suffix key with a single string value on a Specific Resource TextQuoteSelector - model 4.2.4 | - | - | - | PASS | - | - | PASS | - | - | - | - |
1:75 Implements Specific Resource Text Position Selector - model 4.2.5 | - | - | - | PASS | - | - | PASS | - | - | - | - |
1:76 Implements Specific Resource Data Position Selector - model 4.2.6 | - | - | - | - | - | - | PASS | - | - | - | - |
1:77 Implements Specific Resource SVG Selector - model 4.2.7 | PASS | - | - | - | - | PASS | PASS | - | - | - | - |
1:78 Implements Specific Resource Range Selector - model 4.2.8 | - | - | - | - | - | - | PASS | - | - | - | - |
1:79 Implements Specific Resource State - model 4.3 | PASS | - | - | PASS | PASS | PASS | PASS | - | - | - | - |
1:80 Implements Specific Resource Time State - model 4.3.1 | - | - | - | - | - | - | PASS | - | - | - | - |
1:81 Implements Specific Resource Request Header State - model 4.3.2 | - | - | - | - | - | - | PASS | - | - | - | - |
1:82 Implements Specific Resource cached key with one or more values each of format uri on a Specific Resource TimeState - model 4.3.1 | - | - | - | - | - | - | PASS | - | - | - | - |
/annotation-model/annotations/annotationsAgentOptionals-manual.html | - | OK | OK | OK | OK | OK | OK | OK | - | PASS | - |
1:1 Implements creator key which has one or more values, each of which is a string of format uri or an object - model 3.3.1 | - | PASS | PASS | PASS | PASS | PASS | - | - | - | - | - |
1:3 Implements Annotation-level creator (Agent) type key with one or more values from model-recommended list (Person, Organization, Software) - model 3.2.2 | - | PASS | PASS | - | - | PASS | - | - | - | - | - |
1:5 Implements Annotation-level creator (Agent) name key with a single value that is a string - model 3.2.2 | - | PASS | PASS | - | - | PASS | - | - | - | - | - |
1:6 Implements Annotation-level creator (Agent) name key with one or more values - model 3.2.2 | - | PASS | PASS | - | - | PASS | - | - | - | - | - |
1:7 Implements Annotation-level creator (Agent) email key with one or more values, each of which is a mailto: uri - model 3.2.2 | - | PASS | - | - | - | PASS | - | - | - | - | - |
1:9 Implements Annotation-level creator (Agent) homepage key with one or more values, each of which is a string of format uri - model 3.2.2 | - | PASS | - | - | - | PASS | - | - | - | - | - |
1:10 Implements generator key which has one or more values, each of which is a string of format uri or an object - model 3.3.1. | - | PASS | PASS | - | - | PASS | - | - | - | - | - |
1:11 Implements Annotation-level generator (Agent) id key with single value that is a string of format uri - model 3.2.2 | - | PASS | - | - | - | PASS | - | - | - | - | - |
1:12 Implements Annotation-level generator (Agent) type key with one or more values from model-recommended list (Person, Organization, Software) - model 3.2.2 | - | PASS | PASS | - | - | PASS | - | - | - | - | - |
1:14 Implements Annotation-level generator (Agent) name key with a single value that is a string - model 3.2.2 | - | PASS | PASS | - | - | PASS | - | - | - | - | - |
1:15 Implements Annotation-level generator (Agent) name key with one or more values. model 3.2.2 | - | PASS | PASS | - | - | PASS | - | - | - | - | - |
1:18 Implements Annotation-level generator (Agent) homepage key with one or more values, each of which is a string of format uri - model 3.2.2 | - | PASS | PASS | - | - | PASS | - | - | - | - | - |
1:19 Implements body creator key with one or more values - model 3.3.1 | - | - | - | - | - | - | - | PASS | - | - | - |
1:20 Implements Body-level creator (Agent) id key with single value that is a string of format uri - model 3.2.2 | - | - | - | - | - | - | - | PASS | - | - | - |
1:21 Implements Body-level creator (Agent) type key with one or more values from model-recommended list (Person, Organization, Software) - model 3.2.2 | - | - | - | - | - | - | - | PASS | - | - | - |
1:23 Implements Body-level creator (Agent) name key with a single value that is a string - model 3.2.2 | - | - | - | - | - | - | - | PASS | - | - | - |
1:24 Implements Body-level creator (Agent) name key with one or more values - model 3.2.2 | - | - | - | - | - | - | - | PASS | - | - | - |
1:27 Implements Body-level creator (Agent) homepage key with one or more values, each of which is a string of format uri - model 3.2.2 | - | - | - | - | - | - | - | PASS | - | - | - |
1:28 Implements target creator key with one or more values - model 3.3.1 | - | - | - | - | - | - | PASS | - | - | - | - |
1:29 Implements Target-level creator (Agent) id key with single value that is a string of format uri - model 3.2.2 | - | - | - | - | - | - | PASS | - | - | - | - |
1:30 Implements Target-level creator (Agent) type key with one or more values from model-recommended list (Person, Organization, Software) - model 3.2.2 | - | - | - | - | - | - | PASS | - | - | - | - |
1:31 Implements Target-level creator (Agent) nickname key with a single value that is a string - model 3.2.2 | - | - | - | - | - | - | PASS | - | - | - | - |
1:32 Implements Target-level creator (Agent) name key with a single value that is a string - model 3.2.2 | - | - | - | - | - | - | PASS | - | - | - | - |
1:33 Implements Target-level creator (Agent) name key with one or more values - model 3.2.2 | - | - | - | - | - | - | PASS | - | - | - | - |
1:34 Implements Target-level creator (Agent) email key with one or more values, each of which is a mailto: uri - model 3.2.2 | - | - | - | - | - | - | PASS | - | - | - | - |
1:35 Implements Target-level creator (Agent) email_sha1 key with one or more values - model 3.2.2 | - | - | - | - | - | - | PASS | - | - | - | - |
1:36 Implements Target-level creator (Agent) homepage key with one or more values, each of which is a string of format uri - model 3.2.2 | - | - | - | - | - | - | PASS | - | - | - | - |
/annotation-model/collections/collectionMusts-manual.html | - | - | - | - | - | OK | - | - | OK | - | - |
1:1 Implements @context key and 'http://www.w3.org/ns/anno.jsonld' is a value of @context - model 5.1 | - | - | - | - | - | PASS | - | - | PASS | - | - |
1:2 Implements Annotation Collection id key which has a single value that is a string of format uri - model 5.1 | - | - | - | - | - | PASS | - | - | PASS | - | - |
1:3 Implements Annotation Collection type key such that 'AnnotationCollection' is a value of type - model 5.1 | - | - | - | - | - | FAIL | - | - | PASS | - | - |
1:4 Annotation Collection label key, if present, is a value of type string - model 5.1 | - | - | - | - | - | PASS | - | - | PASS | - | - |
1:5 Annotation Collection total key, if present, is a non-negative integer value - model 5.1 | - | - | - | - | - | PASS | - | - | PASS | - | - |
1:6 Annotation Collection has first key, or no total key, or total key with value of zero - model 5.1 | - | - | - | - | - | PASS | - | - | PASS | - | - |
1:7 Annotation Collection last key, if present, is a single value of format uri - model 5.1 | - | - | - | - | - | PASS | - | - | PASS | - | - |
1:8 If present the Annotation Collection-level created key has a single value that is of format date-time - model 3.3.1 | - | - | - | - | - | PASS | - | - | PASS | - | - |
1:9 If present the Annotation Collection-level modified key has a single value that is of format date-time - model 3.3.1 | - | - | - | - | - | PASS | - | - | PASS | - | - |
1:10 If present the Annotation Collection Collection-level rights key has values that are all strings of format uri - model 3.3.6 | - | - | - | - | - | PASS | - | - | PASS | - | - |
/annotation-model/collections/collectionOptionals-manual.html | - | - | - | - | - | - | - | - | OK | - | - |
1:1 Implements Annotation Collection label key - model 5.1 | - | - | - | - | - | - | - | - | PASS | - | - |
1:2 Implements Annotation Collection last key - model 5.1 | - | - | - | - | - | - | - | - | PASS | - | - |
1:3 Implements Annotation Collection total key - model 5.1 | - | - | - | - | - | - | - | - | PASS | - | - |
1:4 Implements Annotation Collection first key - model 5.1 | - | - | - | - | - | - | - | - | PASS | - | - |
1:5 Implements Annotation Collection-level modified key which has a single value that is a string of format date-time - model 3.3.1 | - | - | - | - | - | - | - | - | FAIL | - | - |
1:6 Implements Annotation Collection creator key which has one or more values, each of which is a string of format uri or an object - model 3.3.1 | - | - | - | - | - | - | - | - | FAIL | - | - |
1:7 Implements Annotation Collection-level created key which has a single value that is a string of format date-time - model 3.3.1 | - | - | - | - | - | - | - | - | FAIL | - | - |
1:8 Implements Annotation Collection-level rights key which has one or more values, each of which is a string of format uri - model 3.3.6 | - | - | - | - | - | - | - | - | FAIL | - | - |
1:9 Implements Annotation Collection-level creator (Agent) email_sha1 key with one or more values - model 3.2.2 | - | - | - | - | - | - | - | - | FAIL | - | - |
1:10 Implements Annotation Collection-level creator (Agent) email key with one or more values, each of which is a mailto: uri - model 3.2.2 | - | - | - | - | - | - | - | - | FAIL | - | - |
1:11 Implements Annotation Collection-level creator (Agent) homepage key with one or more values, each of which is a string of format uri - model 3.2.2 | - | - | - | - | - | - | - | - | FAIL | - | - |
1:12 Implements Annotation Collection-level creator (Agent) id key with single value that is a string of format uri - model 3.2.2 | - | - | - | - | - | - | - | - | FAIL | - | - |
1:13 Implements Annotation Collection-level creator (Agent) name key with one or more values - model 3.2.2 | - | - | - | - | - | - | - | - | FAIL | - | - |
1:14 Implements Annotation Collection-level creator (Agent) nickname key with a single value that is a string - model 3.2.2 | - | - | - | - | - | - | - | - | FAIL | - | - |
1:15 Implements Annotation Collection-level creator (Agent) type key with one or more values from model-recommended list (Person, Organization, Software) - model 3.2.2 | - | - | - | - | - | - | - | - | FAIL | - | - |
/annotation-model/collections/pages/pageMusts-manual.html | - | - | - | - | - | - | - | - | OK | - | - |
1:1 Implements Annotation Page (or Annotation Collection for embedded Page) @context key and 'http://www.w3.org/ns/anno.jsonld' is a value of @context - model 5.2 | - | - | - | - | - | - | - | - | PASS | - | - |
1:2 Implements Annotation Page id key which has a single value that is a string of format uri - model 5.2 | - | - | - | - | - | - | - | - | PASS | - | - |
1:3 Implements Annotation Page type key such that 'AnnotationPage' is a value of type - model 5.2 | - | - | - | - | - | - | - | - | PASS | - | - |
1:4 Implements Annotation Page items key such that value of items key is an array of strings of format uri and/or objects of type Annotation - model 5.2 | - | - | - | - | - | - | - | - | PASS | - | - |
1:5 True when Annotation Page has no startIndex key or has startIndex key with valid value of type integer >= 0 - model 5.2 | - | - | - | - | - | - | - | - | PASS | - | - |
1:6 True when Annotation Page has no partOf key or has partOf key with valid value oof string of format uri - model 5.2 | - | - | - | - | - | - | - | - | FAIL | - | - |
1:7 True when Annotation Page has no next key or has next key with valid value of string of format uri - model 5.2 | - | - | - | - | - | - | - | - | PASS | - | - |
1:8 True when Annotation Page has no prev key or has prev key with valid value of string of format uri - model 5.2 | - | - | - | - | - | - | - | - | PASS | - | - |
1:9 Annotation Page total key, if present (inherited from Collection), is a non-negative integer value - model 5.2 | - | - | - | - | - | - | - | - | PASS | - | - |
1:10 Annotation Page label key, if present (inherited from Collection), is a value of type string - model 5.2 | - | - | - | - | - | - | - | - | PASS | - | - |
1:11 Annotation Page first key (inherited from Collection), if present, has value of string of format uri - model 5.2 | - | - | - | - | - | - | - | - | PASS | - | - |
1:12 Annotation Page last key (inherited from Collection), if present, is a single value of format uri - model 5.2 | - | - | - | - | - | - | - | - | PASS | - | - |
1:13 If present the Annotation page-level created key has a single value that is of format date-time - model 3.3.1 | - | - | - | - | - | - | - | - | PASS | - | - |
1:14 If present the Annotation page-level modified key has a single value that is of format date-time - model 3.3.1 | - | - | - | - | - | - | - | - | PASS | - | - |
1:15 If present the Annotation page page-level rights key has values that are all strings of format uri - model 3.3.6 | - | - | - | - | - | - | - | - | PASS | - | - |
/annotation-model/collections/pages/pageOptionals-manual.html | - | - | - | - | - | - | - | - | OK | - | - |
1:1 Implements Annotation Page partOf key with valid value of string of format uri - model 5.2 | - | - | - | - | - | - | - | - | FAIL | - | - |
1:2 Implements Annotation Page startIndex key with valid value of type integer >= 0 - model 5.2 | - | - | - | - | - | - | - | - | FAIL | - | - |
1:3 Implements Annotation Page next key with valid value of string of format uri - model 5.2 | - | - | - | - | - | - | - | - | PASS | - | - |
1:4 Implements Annotation Page prev key with valid value of string of format uri - model 5.2 | - | - | - | - | - | - | - | - | PASS | - | - |
1:5 Implements Annotation Page label key (inherited from Collection) with valid value - model 5.1 | - | - | - | - | - | - | - | - | FAIL | - | - |
1:6 Implements Annotation Page last key (inherited from Collection) with valid value - model 5.1 | - | - | - | - | - | - | - | - | FAIL | - | - |
1:7 Implements Annotation Page total key (inherited from Collection) with valid value - model 5.1 | - | - | - | - | - | - | - | - | FAIL | - | - |
1:8 Implements Annotation Page first key (inherited from Collection) with valid value - model 5.1 | - | - | - | - | - | - | - | - | FAIL | - | - |
1:9 Implements Annotation Page-level modified key which has a single value that is a string of format date-time - model 3.3.1 | - | - | - | - | - | - | - | - | FAIL | - | - |
1:10 Implements Annotation Page-level creator key which has one or more values, each of which is a string of format uri or an object - model 3.3.1 | - | - | - | - | - | - | - | - | FAIL | - | - |
1:11 Implements Annotation Page-level created key which has a single value that is a string of format date-time - model 3.3.1 | - | - | - | - | - | - | - | - | FAIL | - | - |
1:12 Implements Annotation Page rights key (inherited from Collection) which has one or more values, each of which is a string of format uri - model 3.3.6 | - | - | - | - | - | - | - | - | FAIL | - | - |
1:13 Implements Annotation Page-level creator (Agent), inherited from Collection, email_sha1 key with one or more values - model 3.2.2 | - | - | - | - | - | - | - | - | PASS | - | - |
1:14 Implements Annotation Page-level creator (Agent), inherited from Collection, email key with one or more values, each of which is a mailto: uri - model 3.2.2 | - | - | - | - | - | - | - | - | PASS | - | - |
1:15 Implements Annotation Page-level creator (Agent), inherited from Collection, homepage key with one or more values, each of which is a string of format uri - model 3.2.2 | - | - | - | - | - | - | - | - | PASS | - | - |
1:16 Implements Annotation Page-level creator (Agent), inherited from Collection, id key with single value that is a string of format uri - model 3.2.2 | - | - | - | - | - | - | - | - | PASS | - | - |
1:17 Implements Annotation Page-level creator (Agent), inherited from Collection, name key with one or more values - model 3.2.2 | - | - | - | - | - | - | - | - | PASS | - | - |
1:18 Implements Annotation Page-level creator (Agent), inherited from Collection, nickname key with single value that is a string of format uri - model 3.2.2 | - | - | - | - | - | - | - | - | PASS | - | - |
1:19 Implements Annotation Page-level creator (Agent), inherited from Collection, type key with one or more values from model-recommended list (Person, Organization, Software) - model 3.2.2 | - | - | - | - | - | - | - | - | PASS | - | - |