import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo

This commit is contained in:
Roy Tam 2018-01-19 03:59:58 +08:00
commit dcd9973243
150858 changed files with 23884658 additions and 0 deletions

View file

@ -0,0 +1,10 @@
root = true
[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

View file

@ -0,0 +1,381 @@
Annotation-model: Guidelines for Contributing Tests
===================================================
This document describes the method people should use for authoring tests and
integrating them into the repository. Anyone is welcome to submit new tests to
this collection. If you do, please create the tests following the guidelines
below. Then submit them as a pull request so they can be evaluated
Structure
---------
Tests are organized by major section of the Annotation Model specification. The
folders associated with these are:
* annotations
* bodiesTargets
* collections
* specificResources
* selectors
* states
Within these folders, special files ending with the suffix ".test" provide the source
for the test as a set of declarative assertions about the required shape of the conforming
JSON object. These files are transformed using a test generation tool into ".html" files
that are then accessed by the Web Platform Test framework.
There are a few other folders that provide supporting materials for the tests:
* common - assertionObjects, conditionObjects, and other supporting materials
* definitions - JSON Schema definitions that can be referenced
* scripts - JavaScript that are included by tests
* tools - supporting scripts and files
NOTE: The files in the definitions folder are expected to be JSON Schema
definitions - basically commonly used concepts that are referenced by other JSON
Schema files in the system. All of these 'definitions' are preloaded by the
system before any other parts of a test are processed.
Test Cases
----------
Each test is expressed as a simple (or complex) requirement in a test file.
For each section of the document, the requirement is represented as a structure
that describes the nature of the test, and then includes or references minimal
JSON Schema that test the assertions implied by the requirement.
The structure of a test case is defined using a [JSON-LD
Context](JSONtest-v1.jsonld). That context defines the following terms:
|Keyword | Values | Meaning
|---------------|-----------------|---------
|name | string | The name of this test for display purposes
|description | string | A long self-describing paragraph that explains the purpose of the test and the expected input
|ref | URI | An optional reference to the portion of the specification to which the test relates
|testType | `automated`, `manual`, `ref` | The type of test - this informs [WPT](https://github.com/w3c/web-platform-tests) how the test should be controlled and presented
|skipFailures | list of strings | An optional list of assertionType values that, if present, should have their test skipped if the result would be "unexpected". Defaults to the empty list.
|assertions | list of URI, List @@@ATRISK@@@, or AssertionObject | The ordered collection of tests the input should be run against. See [JSON Schema Usage](#jsonSchema) for the structure of the objects. URI is relative to the top level folder of the test collection if it has a slash; relative to the current directory if it does not. @@@@ATRISK@@@@ Lists can be nested to define groups of sub-tests. Assertions / groups can be conditionally skipped. See [Assertion Lists](#assertionLists) for more details.
|content | URI or object | An object containing content to be checked against the referenced assertions, or a URI from which to retrieve that content
Each test case has a suffix of `.test` and a shape like:
<pre>
{
"@context": "https://www.w3.org/ns/JSONtest-v1.jsonld",
"name": "Verify annotation conforms to the model",
"description": "Supply an example annotation that conforms to the basic structure.",
"ref": "https://www.w3.org/TR/annotation-model/#model",
"testType": "manual",
"assertions": [
"common/has_context.json",
"common/has_id.json",
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Verify annotation has target",
"assertionType": "must",
"expectedResult": "valid",
"errorMessage": "The object was missing a required 'target' property",
"type": "object",
"properties": {
"target": {
"anyOf": [
{
"type": "string"
},
{
"type": "array",
"anyOf": [
{
"type": "string"
}
]
}
],
"not": {"type": "object"}
}
},
"required": ["target"]
}
]
}
</pre>
External references are used when the "assertion" is a common one that needs to
be checked on many different test cases (e.g., that there is an @context in the
supplied annotation).
NOTE: The title property of an assertionObject can contain markdown. This can
help improve readability of the rendered assertions and debugging output.
NOTE: The content property does not yet have a defined use. One potential use would
be to act as a pointer to a URI that can supply annotations from an implementation.
In that case the URI would take a parameter with the test name as a way of telling
the end point what test is running so it can deliver the right content.
### <a id="assertionLists">Assertion Lists</a> ###
The `assertion` list is an ordered list of assertions that will be evaluated
against the submitted content. The list is *required*, and MUST have at least
one entry. Entries in the list have the following types:
* AssertionObject
An in-line Object as defined in the section [Assertion
Objects](#assertionObjects).
* URI
A relative or absolute URI that references a AssertionObject in a .json file.
If the URI is relative but contains no slashes, then it is considered to be
in the current directory. If the URI is relative, contains slashes, but
**does not start with a slash** then it is considered relative to the top of
the tree of the current test collection (e.g., `annotation-model`).
* List @@@ATRISK@@@
A nested Assertion List. While nested Assertion Lists are optional, if one
is present it MUST have at least one entry. Entries are as in this list.
Assertion Lists can be nested to any depth (but don't do that - it would be
too hard to maintain).
<a id="assertionObjects">Assertion Objects</a>
-----------------
In this collection of tests, Assertion Objects can be contained inline in the
`.test` files or contained in external files with the suffix `.json`. The
vocabularly and structure is as defined in [JSON Schema
v4](http://json-schema.org/documentation.html) augmented with some additional
properties defined in this section.
In general each JSON Schema definition provided in this test suite should be as
minimal as possible. This promotes clarity and increases the likelihood that
it is correct. While it is ---possible--- to create JSON Schema files that
enforce many different requirements on a data model, it increases the
complexity and can also reduce the atomicity of tests / sub-tests (because a
test ends up testing more than one thing). Please try to avoid creating
complex JSON Schema. (A notable exception is the situation where multiple
properties of a structure are interdependent.)
Tools such as [the JSON Schema Creator](http://jsonschema.net/) may be helpful
in creating schema snippets that can be integrated into JSONtest Assertion
Objects. Remember that the JSON Schema you create should be as permissive as
possible to address the various shapes that a give property might take (e.g., a
'foo' might be a string or an object that contains sub-properties that express
the string, or an array of 1 or more objects with those sub-properties).
In addition to the validation keys defined in JSON Schema v4, Schema files in
this collection are also permitted to use the following keywords:
|Keyword | Values | Meaning |
|---------------|-----------------|---------|
|onUnexpectedResult | `failAndContinue`, `failAndSkip`, `failAndAbort`, `passAndContinue`, `passAndSkip`, `passAndAbort` | Action to take when the result is not as expected. Default is `failAndContinue` |
|assertionType | `must`, `may`, `should` | Informs the system about the severity of a failure. The default is `must` |
|assertionFile | URI | An external file that contains an assertion SCHEMA. When this value is supplied, and local properties will override the ones loaded from the external file.
|errorMessage | string | A human readable explanation of what it means if the test fails. |
|expectedResult | `valid`, `invalid` | Tells the framework whether validating against this schema is expected to succeed or fail. The default is `valid` |
### Example Assertion Object ###
<pre>
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Verify annotation has @context",
"type": "object",
"expectedResult" : "valid",
"properties": {
"@context": {
"anyOf": [
{
"type": "string"
},
{
"type": "array",
"anyOf": [
{
"type": "string"
}
]
}
],
"not": {"type": "object"}
}
},
"required": ["@context"]
}
</pre>
Note that in the case where a feature is *optional* the JSON Schema MUST be
crafted such that if the attribute is permitted to be missing from the content
(so that the result is `true`), but when the attribute is present in the
content it conforms to any requirements.
<a id="conditionObjects">Condition Objects</a>
-----------------
A Condition Object is a sub-class of an Assertion Object. It allows the
specification of the evaluation strategy for the assertions referenced by the
object. An object is a Condition Object IFF it has a `assertions` property. In
this case, there MUST NOT be an `assertionFile` property.
|Keyword | Values | Meaning |
|---------------|-----------------|---------|
|compareWith | `and`, `or` | How should the result of any referenced assertions be compared. Defaults to `and`. Note that this implies there is also an assertions property with a nested list of assertions to compare. |
|assertions | a list of assertions as in a Test Case above. This is required if there is a compareWith property |
An example of a test that would pass if there were an `@context` OR there were an `@id`:
<pre>
{
"@context": "https://www.w3.org/ns/JSONtest-v1.jsonld",
"name": "A test that has an 'or' clause",
"description": "A complex test that uses or-ing among a list of assertions",
"ref": "https://www.w3.org/TR/annotation-model/#model",
"testType": "manual",
"assertions": [
{ "$schema": "http://json-schema.org/draft-04/schema#",
"title": "must have context or id",
"description": "A more complex example that allows one of many options to pass",
"assertions": [
{ "title": "Condition Object",
"description": "A pseudo-test that will get a result from the aggregate of its children",
"assertionType": "must",
"expectedResult": "valid",
"errorMessage": "Error: None of the various options were present",
"compareWith": "or",
"assertions": [
"common/has_context.json",
"common/has_id.json"
]
}
]
}
]
}
</pre>
Command Line Tools
------------------
### Building the Test Files ###
The actual .html test case files are generated using the script
tools/make_tests.py. This script will search the directory heriarchy looking for
files ending on `.test` and creating `.html` files from them using the template in
the tools folder. If you want to regenerate the examples too, supply the
`--examples` option to the script.
Note that when submitting tests to the repository, the `.html` versions must be
included.
### Testing the Tests ###
### Driving Tests with Input Files ###
Complex Examples
----------------
This section is a collection of more complex examples to illustrate the
expressive power of the [Assertion List](#assertionLists) structure. These can
be used as templates for creating actual `.test` files.
### Including and Overriding an Assertion ###
Assertions can be contained in external `.json` files. It is possible for an
object in an Assertion List to include the external file and override one or
more of its properties:
<pre>
{
"@context": "https://www.w3.org/ns/JSONtest-v1.jsonld",
"name": "Permit no target property",
"description": "Ensure there is no 'target' property when there is a 'randomName' property in the Annotation",
"assertions": [
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Verify annotation has randomName",
"type": "object",
"properties": {
"randomName": {
"type": "string"
}
},
"required": ["randomName"]
},
{ "assertionFile" : "common/target.json",
"title" : "Require target to be missing",
"expectedResult" : "invalid",
"errorMessage" : "The target MUST not be present when 'randomName' is also present",
}
]
}
</pre>
### Nested Assertion Collections with Skip ###
Assertion Lists can be nested within Assertion Lists. This feature, combined
with the `onUnexpectedResult` property, makes it possible to skip a collection
of tests when an assertion in the list is not satisfied:
<pre>
{
"@context": "https://www.w3.org/ns/JSONtest-v1.jsonld",
"name": "If there is no 'target' property, skip some tests",
"description": "When 'target' is not present, other properties related to 'target' are not required",
"assertions": [
"common/context.json",
[
{ "assertionFile" : "common/target.json",
"errorMessage" : "Target was not present so skip the rest of this section",
"onUnexpectedResult" : "failAndSkip"
},
"sometest.json",
"sometest2.json",
"sometest3.json"
]
]
} ;
</pre>
### Assertion that finds a specific @context Value ###
Sometimes you want a property to be flexible, but to have one and only one of a
specific value. This is especially true with, for example, @context in JSON-LD.
One way you might do this is:
<pre>
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Verify a specific @context",
"type": "object",
"expectedResult" : "valid",
"properties": {
"@context": {
"anyOf": [
{
"type": "string"
"enum": [ "http://www.w3.org/ns/anno.jsonld" ]
},
{
"type": "array",
"minitems": "1",
"uniqueItems": true,
"additionalItems": true,
"items" : [
{ "type": "string",
"enum": [ "http://www.w3.org/ns/anno.jsonld" ]
}
]
}
],
"not": {"type": "object"}
}
},
"required": ["@context"]
}
</pre>

View file

@ -0,0 +1,3 @@
@halindrome
@bigbluehat
@tcole3

View file

@ -0,0 +1,81 @@
Annotation-model: Tests for the Web Annotation Data Model
=========================================================
The [Web Annotation Data Model](https://www.w3.org/TR/annotation-model)
specification presents a JSON-oriented collection of terms and structure that
permit the sharing of annotations about other content.
The purpose of these tests is to help validate that each of the structural
requirements expressed in the Data Model specification are properly supported
by implementations.
The general approach for this testing is to enable both manual and automated
testing. However, since the specification has no actual user interface
requirements, there is no general automation mechanism that can be presented
for clients. Instead, the automation mechanism is one where client
implementors could take advantage of the plumbing we provide here to push their
data into the tests and collect the results of the testing. This assumes
knowledge of the requirements of each test / collection of tests so that the
input data is relevant. Each test or test collection contains information
sufficient for the task.
Running Tests
-------------
In the case of this test collection, we will be initially creating manual
tests. These will automatically determine pass or fail and generate output for
the main WPT window. The plan is to minimize the number of such tests to
ease the burden on the testers while still exercising all the features.
The workflow for running these tests is something like:
1. Start up the test driver window and select the annotation-model tests -
click "Start"
2. A window pops up that shows a test - the description of which tells the
tester what input is expected. The window contains a textarea into which
the input can be typed / pasted, along with a button to click to start
testing that input.
3. The tester (presumably in another window) brings up their annotation client
and uses it to generate an annotation that supplies the requested structure.
They then copy / paste that into the aforementioned textarea and select the
button.
4. The test runs. Success or failure is determined and reported to the test
driver window, which then cycles to the next test in the sequence.
5. Repeat steps 2-4 until done.
6. Download the JSON format report of test results, which can then be visually
inspected, reported on using various tools, or passed on to W3C for
evaluation and collection in the Implementation Report via github.
**Remember that while these tests are written to help exercise implementations,
their other (important) purpose is to increase confidence that there are
interoperable implementations.** So, implementers are our audience, but these
tests are not meant to be a comprehensive collection of tests for a client that
might implement the Recommendation. The bulk of the tests are manual because
there are no UI requirements in the Recommendation that would make it possible
to effectively stimulate every client portably.
Having said that, because the structure of these "manual" tests is very rigid,
it is possible for an implementer who understands test automation to use an
open source tool such as [Selenium](http://www.seleniumhq.org/) to run these
"manual" tests against their implementation - exercising their implementation
against content they provide to create annotations and feed the data into our
test input field and run the test.
Capturing and Reporting Results
-------------------------------
As tests are run against implementations, if the results of testing are
submitted to [test-results](https://github.com/w3c/test-results/) then they will
be automatically included in documents generated by
[wptreport](https://www.github.com/w3c/wptreport). The same tool can be used
locally to view reports about recorded results.
Automating Test Execution
-------------------------
Writing Tests
-------------
If you are interested in writing tests for this environment, see the
associated [CONTRIBUTING](CONTRIBUTING.md) document.

View file

@ -0,0 +1,13 @@
Things still to be developed:
Script to run .jsonld files in tools/tests against .test files
Script to batch run submitted .jsonld files from an implementation against .test
files
Websocket communication to runner tests with a corresponding listener that an
implementation could use to auto-submit jsonld into the "manual" tests
Add a Skip option to tools/runner
Add a tuple mode for evaluating RDF declaratively as well.

View file

@ -0,0 +1,20 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.1-annotationContextValidated.json",
"assertionType": "must",
"expectedResult": "valid",
"onUnexpectedResult" : "failAndContinue",
"errorMessage": "ERROR: Annotation is missing @context key or 'http://www.w3.org/ns/anno.jsonld' is not a value of @context.",
"title": "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)",
"description": "True when the Annotation has @context key and 'http://www.w3.org/ns/anno.jsonld' is an @context value (Section 3.1)",
"type": "object",
"required": [ "@context" ],
"properties": {
"@context": {
"oneOf": [
{ "$ref": "annotations.json#/definitions/contextValueFound" },
{ "$ref": "annotations.json#/definitions/contextValueInArrayFound" }
]
}
}
}

View file

@ -0,0 +1,11 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.1-annotationIdValidated.json",
"assertionType": "must",
"expectedResult": "valid",
"onUnexpectedResult" : "failAndContinue",
"errorMessage": "ERROR: Annotation is missing id key or its value is not a single string of format uri.",
"title": "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)",
"description": "True when the Annotation has a single id that is a string of format uri (Section 3.1)",
"$ref": "id.json#/definitions/idValueFound"
}

View file

@ -0,0 +1,12 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.1-annotationTypeValidated.json",
"assertionType": "must",
"expectedResult": "valid",
"onUnexpectedResult" : "failAndContinue",
"errorMessage": "ERROR: Annotation is missing type key or 'Annotation' is not a value of type.",
"title": "Implements **Annotation _type_ key** and '**Annotation**' is **a value of _type_** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)",
"allOf": [
{ "$ref": "annotations.json#/definitions/annotationTypeValueFound"}
]
}

View file

@ -0,0 +1,12 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.1-bodyKeyFound.json",
"assertionType": "should",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "Annotation Should have a body.",
"title": "Implements **_body_ key** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)",
"description": "True when the Annotation has a body key (Section 3.1)",
"type": "object",
"required": ["body" ]
}

View file

@ -0,0 +1,12 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.1-targetKeyFound.json",
"assertionType": "must",
"expectedResult": "valid",
"onUnexpectedResult" : "failAndContinue",
"errorMessage": "Error: Annotation is missing target key.",
"title": "Implements **_target_ key** - [model 3.1](https://www.w3.org/TR/annotation-model/#annotations)",
"description": "True when the Annotation has a target key (Section 3.1)",
"type": "object",
"required": ["target" ]
}

View file

@ -0,0 +1,22 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.2-bodyObjectsRecognized.json",
"assertionType": "must",
"expectedResult": "valid",
"onUnexpectedResult" : "failAndContinue",
"errorMessage": "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.",
"title": "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)",
"description": "True when all Bodies are one of a string of format uri, an External Web Resource, a Choice or Set, a Specific Resource (Sections 3.2, Section 4)",
"type": "object",
"properties":
{
"body":
{"oneOf": [
{ "$ref": "bodyTarget.json#/definitions/bodyResourcesFound" },
{ "type" : ["array"],
"items": { "$ref": "bodyTarget.json#/definitions/bodyResourcesFound" }
}
]
}
}
}

View file

@ -0,0 +1,22 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.2-targetObjectsRecognized.json",
"assertionType": "must",
"expectedResult": "valid",
"onUnexpectedResult" : "failAndContinue",
"errorMessage": "ERROR: One or more Targets of the Annotation is not one of a string of format uri, an External Web Resource, a Choice or Set, a Specific Resource.",
"title": "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)",
"description": "True when all Target(s) are one of a string of format uri, an External Web Resource, a Choice or Set, a Specific Resource (Sections 3.2, Section 4)",
"type": "object",
"properties":
{
"target":
{"oneOf": [
{ "$ref": "bodyTarget.json#/definitions/targetResourcesFound" },
{ "type" : ["array"],
"items": { "$ref": "bodyTarget.json#/definitions/targetResourcesFound" }
}
]
}
}
}

View file

@ -0,0 +1,14 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.1-bodyValueImplemented.json",
"assertionType": "may",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "bodyValue key not found. Annotation May have exactly one bodyValue (if no body also included).",
"title": "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)",
"description": "True when the Annotation implements a bodyValue key (Section 3.2.5)",
"allOf":
[
{ "$ref": "annotations.json#/definitions/bodyValueFound"}
]
}

View file

@ -0,0 +1,13 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.2.5-bodyValueValidated.json",
"assertionType": "must",
"expectedResult": "valid",
"onUnexpectedResult" : "failAndContinue",
"errorMessage": "ERROR: Annotation has multiple bodyValue key values or a single bodyValue key value that is not of type string.",
"title": "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)",
"description": "True when no Annotation bodyValue or the Annotation bodyValue key value is a single string (Section 3.2.5)",
"allOf": [
{ "$ref": "annotations.json#/definitions/bodyValueValidIfPresent" }
]
}

View file

@ -0,0 +1,13 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.2.5-notBodyBodyValue.json",
"assertionType": "must",
"expectedResult": "valid",
"onUnexpectedResult" : "failAndContinue",
"errorMessage": "ERROR: body and bodyValue are exclusive keys; a single annotation cannot have both.",
"title": "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)",
"description": "True when the Annotation does not have both body key and bodyValue key (Section 3.2.5)",
"type": "object",
"not":
{ "required": [ "body", "bodyValue"] }
}

View file

@ -0,0 +1,14 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.3.1-annotationCreatedImplemented.json",
"assertionType": "should",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "Valid Annotation-level created key not found. Annotation should have exactly one created key value.",
"title": "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)",
"description": "True when the Annotation implements exactly one created key value (Section 3.3.1)",
"allOf":
[
{ "$ref": "otherProperties.json#/definitions/createdPropertyFound"}
]
}

View file

@ -0,0 +1,14 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.3.1-annotationCreatedValidated.json",
"assertionType": "must",
"expectedResult": "valid",
"onUnexpectedResult" : "failAndContinue",
"errorMessage": "ERROR: Annotation has multiple created key values or a single created key value that is not of format date-time.",
"title": "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)",
"description": "True when no Annotation created key present or when created key has a single value that is of format date-time (Section 3.3.1)",
"type": "object",
"allOf": [
{ "$ref": "otherProperties.json#/definitions/createdValidIfPresent" }
]
}

View file

@ -0,0 +1,14 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.3.1-annotationCreatorImplemented.json",
"assertionType": "may",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "creator key not found. Annotation may have zero or more creators.",
"title": "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)",
"description": "True when the Annotation implements creator key (Section 3.3.1)",
"allOf":
[
{ "$ref": "otherProperties.json#/definitions/creatorPropertyFound"}
]
}

View file

@ -0,0 +1,14 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.3.1-annotationGeneratedImplemented.json",
"assertionType": "may",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "Valid Annotation-level generated key not found. Annotation may have zero or exactly one generated key value.",
"title": "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)",
"description": "True when the Annotation implements exactly one generated key value (Section 3.3.1)",
"allOf":
[
{ "$ref": "otherProperties.json#/definitions/generatedPropertyFound"}
]
}

View file

@ -0,0 +1,14 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.3.1-annotationGeneratedValidated.json",
"assertionType": "must",
"expectedResult": "valid",
"onUnexpectedResult" : "failAndContinue",
"errorMessage": "ERROR: Annotation has multiple generated key values or a single generated key value that is not of format date-time.",
"title": "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)",
"description": "True when no Annotation generated key present or when generated key has a single value that is of format date-time (Section 3.3.1)",
"type": "object",
"allOf": [
{ "$ref": "otherProperties.json#/definitions/generatedValidIfPresent" }
]
}

View file

@ -0,0 +1,14 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.3.1-annotationGeneratorImplemented.json",
"assertionType": "may",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "generator key not found. Annotation may have zero or more generators.",
"title": "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).",
"description": "True when the Annotation implements generator key (Section 3.3.1)",
"allOf":
[
{ "$ref": "otherProperties.json#/definitions/generatorPropertyFound"}
]
}

View file

@ -0,0 +1,14 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.3.1-annotationModifiedImplemented.json",
"assertionType": "may",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "Valid Annotation-level modified key not found. Annotation may have zero or exactly one modified key value.",
"title": "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)",
"description": "True when the Annotation implements exactly one modified key value (Section 3.3.1)",
"allOf":
[
{ "$ref": "otherProperties.json#/definitions/modifiedPropertyFound"}
]
}

View file

@ -0,0 +1,14 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.3.1-annotationModifiedValidated.json",
"assertionType": "must",
"expectedResult": "valid",
"onUnexpectedResult" : "failAndContinue",
"errorMessage": "ERROR: Annotation has multiple modified key values or a single modified key value that is not of format date-time.",
"title": "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)",
"description": "True when no Annotation modified key present or when modified key has a single value that is of format date-time (Section 3.3.1)",
"type": "object",
"allOf": [
{ "$ref": "otherProperties.json#/definitions/modifiedValidIfPresent" }
]
}

View file

@ -0,0 +1,14 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.3.1-annotationSingleCreatorImplemented.json",
"assertionType": "should",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "Annotation SHOULD have a creator key with a single value.",
"title": "Implements Annotation-level **_creator_ key** with a **single value** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)",
"description": " (Section 3.3.1)",
"type": "object",
"allOf": [
{ "$ref": "otherProperties.json#/definitions/singleCreatorPropertyFound" }
]
}

View file

@ -0,0 +1,14 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.3.1-singleAnnotationCreatorImplemented.json",
"assertionType": "should",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": " Annotation should have exactly one creator.",
"title": "Annotation implements creator key with single value.",
"description": "True when the Annotation implements creator key with single value (Section 3.3.1)",
"allOf":
[
{ "$ref": "otherProperties.json#/definitions/singleCreatorPropertyFound"}
]
}

View file

@ -0,0 +1,24 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.3.2-annotationCreatorAgentEmailImplemented.json",
"assertionType": "may",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "Email for Annotation Creator (Agent) not found. Agents may have one or more email values.",
"title": "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)",
"description": "True when one or more email values for Annotation Creator (Agent) is implemented (Section 3.3.2)",
"properties":
{ "creator":
{ "oneOf":
[
{ "$ref": "otherProperties.json#/definitions/agentEmailFound" },
{ "type": "array",
"minItems": 1,
"not":
{ "items": { "not": { "$ref": "otherProperties.json#/definitions/agentEmailFound" } } }
}
]
}
},
"required": ["creator"]
}

View file

@ -0,0 +1,24 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.3.2-annotationCreatorAgentEmail_sha1Implemented.json",
"assertionType": "may",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "Email_sha1 for Annotation Creator (Agent) not found. Agents may have one or more email_sha1 values.",
"title": "Implements Annotation-level creator (Agent) **email_sha1 key** with one or more values - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)",
"description": "True when one or more email_sha1 values for Annotation Creator (Agent) is implemented (Section 3.3.2)",
"properties":
{ "creator":
{ "oneOf":
[
{ "$ref": "otherProperties.json#/definitions/agentEmail_sha1Found" },
{ "type": "array",
"minItems": 1,
"not":
{ "items": { "not": { "$ref": "otherProperties.json#/definitions/agentEmail_sha1Found" } } }
}
]
}
},
"required": ["creator"]
}

View file

@ -0,0 +1,24 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.3.2-annotationCreatorAgentHomepageImplemented.json",
"assertionType": "may",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "Homepage for Annotation Creator (Agent) not found. Agents may have one or more homepage values.",
"title": "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)",
"description": "True when one or more homepage values for Annotation Creator (Agent) is implemented (Section 3.3.2)",
"properties":
{ "creator":
{ "oneOf":
[
{ "$ref": "otherProperties.json#/definitions/agentHomepageFound" },
{ "type": "array",
"minItems": 1,
"not":
{ "items": { "not": { "$ref": "otherProperties.json#/definitions/agentHomepageFound" } } }
}
]
}
},
"required": ["creator"]
}

View file

@ -0,0 +1,24 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.3.2-annotationCreatorAgentIdImplemented.json",
"assertionType": "should",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "Id for Annotation Creator (Agent) not found or more than 1 found. Agents should have exactly one id of format uri.",
"title": "Implements Annotation-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)",
"description": "True when type for Annotation Creator (Agent) has exactly one id (Section 3.3.2)",
"properties":
{ "creator":
{ "oneOf":
[
{ "$ref": "id.json#/definitions/idValueFound" },
{ "type": "array",
"minItems": 1,
"not":
{ "items": { "not": { "$ref": "id.json#/definitions/idValueFound" } } }
}
]
}
},
"required": ["creator"]
}

View file

@ -0,0 +1,24 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.3.2-annotationCreatorAgentNameImplemented.json",
"assertionType": "may",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "Name for Annotation Creator (Agent) not found. Agents may have one or more name values.",
"title": "Implements Annotation-level creator (Agent) **_name_ key** with one or more values - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)",
"description": "True when one or more name values for Annotation Creator (Agent) is implemented (Section 3.3.2)",
"properties":
{ "creator":
{ "oneOf":
[
{ "$ref": "otherProperties.json#/definitions/agentNameFound" },
{ "type": "array",
"minItems": 1,
"not":
{ "items": { "not": { "$ref": "otherProperties.json#/definitions/agentNameFound" } } }
}
]
}
},
"required": ["creator"]
}

View file

@ -0,0 +1,24 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.3.2-annotationCreatorAgentNicknameImplemented.json",
"assertionType": "should",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "Nickname for Annotation Creator (Agent) not found. Agents should have exactly one nickname value.",
"title": "Implements Annotation-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)",
"description": "True when exactly one nickname for Annotation Creator (Agent) is implemented (Section 3.3.2)",
"properties":
{ "creator":
{ "oneOf":
[
{ "$ref": "otherProperties.json#/definitions/agentSingularNicknameFound" },
{ "type": "array",
"minItems": 1,
"not":
{ "items": { "not": { "$ref": "otherProperties.json#/definitions/agentSingularNicknameFound" } } }
}
]
}
},
"required": ["creator"]
}

View file

@ -0,0 +1,24 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.3.2-annotationCreatorAgentSingleNameImplemented.json",
"assertionType": "should",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "Single name for Annotation Creator (Agent) not found. Agents should have exactly one name value.",
"title": "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)",
"description": "True when exactly one name for Annotation Creator (Agent) is implemented (Section 3.3.2)",
"properties":
{ "creator":
{ "oneOf":
[
{ "$ref": "otherProperties.json#/definitions/agentSingularNameFound" },
{ "type": "array",
"minItems": 1,
"not":
{ "items": { "not": { "$ref": "otherProperties.json#/definitions/agentSingularNameFound" } } }
}
]
}
},
"required": ["creator"]
}

View file

@ -0,0 +1,24 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.3.2-annotationCreatorAgentTypeImplemented.json",
"assertionType": "should",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "Type (Person, Organization, Software) for Annotation Creator (Agent) not found. Agents should have one or more type values.",
"title": "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)",
"description": "True when type for Annotation Creator (Agent) is implemented (Section 3.3.2)",
"properties":
{ "creator":
{ "oneOf":
[
{ "$ref": "otherProperties.json#/definitions/agentTypeFound" },
{ "type": "array",
"minItems": 1,
"not":
{ "items": { "not": { "$ref": "otherProperties.json#/definitions/agentTypeFound" } } }
}
]
}
},
"required": ["creator"]
}

View file

@ -0,0 +1,24 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.3.2-annotationGeneratorAgentEmailImplemented.json",
"assertionType": "may",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "Email for Annotation Generator (Agent) not found. Agents may have one or more email values.",
"title": "Implements Annotation-level generator (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)",
"description": "True when one or more email values for Annotation Generator (Agent) is implemented (Section 3.3.2)",
"properties":
{ "generator":
{ "oneOf":
[
{ "$ref": "otherProperties.json#/definitions/agentEmailFound" },
{ "type": "array",
"minItems": 1,
"not":
{ "items": { "not": { "$ref": "otherProperties.json#/definitions/agentEmailFound" } } }
}
]
}
},
"required": ["generator"]
}

View file

@ -0,0 +1,24 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.3.2-annotationGeneratorAgentEmail_sha1Implemented.json",
"assertionType": "may",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "Email_sha1 for Annotation Generator (Agent) not found. Agents may have one or more email_sha1 values.",
"title": "Implements Annotation-level generator (Agent) **email_sha1 key** with one or more values - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)",
"description": "True when one or more email_sha1 values for Annotation Generator (Agent) is implemented (Section 3.3.2)",
"properties":
{ "generator":
{ "oneOf":
[
{ "$ref": "otherProperties.json#/definitions/agentEmail_sha1Found" },
{ "type": "array",
"minItems": 1,
"not":
{ "items": { "not": { "$ref": "otherProperties.json#/definitions/agentEmail_sha1Found" } } }
}
]
}
},
"required": ["generator"]
}

View file

@ -0,0 +1,24 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.3.2-annotationGeneratorAgentHomepageImplemented.json",
"assertionType": "may",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "Homepage for Annotation Generator (Agent) not found. Agents may have one or more homepage values.",
"title": "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)",
"description": "True when one or more homepage values for Annotation Generator (Agent) is implemented (Section 3.3.2)",
"properties":
{ "generator":
{ "oneOf":
[
{ "$ref": "otherProperties.json#/definitions/agentHomepageFound" },
{ "type": "array",
"minItems": 1,
"not":
{ "items": { "not": { "$ref": "otherProperties.json#/definitions/agentHomepageFound" } } }
}
]
}
},
"required": ["generator"]
}

View file

@ -0,0 +1,24 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.3.2-annotationGeneratorAgentIdImplemented.json",
"assertionType": "should",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "Id for Annotation Generator (Agent) not found or more than 1 found. Agents should have exactly one id of format uri.",
"title": "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)",
"description": "True when type for Annotation Generator (Agent) has exactly one id (Section 3.3.2)",
"properties":
{ "generator":
{ "oneOf":
[
{ "$ref": "id.json#/definitions/idValueFound" },
{ "type": "array",
"minItems": 1,
"not":
{ "items": { "not": { "$ref": "id.json#/definitions/idValueFound" } } }
}
]
}
},
"required": ["generator"]
}

View file

@ -0,0 +1,24 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.3.2-annotationGeneratorAgentNameImplemented.json",
"assertionType": "may",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "Name for Annotation Generator (Agent) not found. Agents may have one or more name values.",
"title": "Implements Annotation-level generator (Agent) **_name_ key** with one or more values. [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)",
"description": "True when one or more name values for Annotation Generator (Agent) is implemented (Section 3.3.2)",
"properties":
{ "generator":
{ "oneOf":
[
{ "$ref": "otherProperties.json#/definitions/agentNameFound" },
{ "type": "array",
"minItems": 1,
"not":
{ "items": { "not": { "$ref": "otherProperties.json#/definitions/agentNameFound" } } }
}
]
}
},
"required": ["generator"]
}

View file

@ -0,0 +1,24 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.3.2-annotationGeneratorAgentNicknameImplemented.json",
"assertionType": "should",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "Nickname for Annotation Generator (Agent) not found. Agents should have exactly one nickname value.",
"title": "Implements Annotation-level generator (Agent) **_nickname_ key** with a **single value** that is a string - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)",
"description": "True when exactly one nickname for Annotation Generator (Agent) is implemented (Section 3.3.2)",
"properties":
{ "generator":
{ "oneOf":
[
{ "$ref": "otherProperties.json#/definitions/agentSingularNicknameFound" },
{ "type": "array",
"minItems": 1,
"not":
{ "items": { "not": { "$ref": "otherProperties.json#/definitions/agentSingularNicknameFound" } } }
}
]
}
},
"required": ["generator"]
}

View file

@ -0,0 +1,24 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.3.2-annotationGeneratorAgentSingleNameImplemented.json",
"assertionType": "should",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "Single name for Annotation Generator (Agent) not found. Agents should have exactly one name value.",
"title": "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)",
"description": "True when exactly one name for Annotation Generator (Agent) is implemented (Section 3.3.2)",
"properties":
{ "generator":
{ "oneOf":
[
{ "$ref": "otherProperties.json#/definitions/agentSingularNameFound" },
{ "type": "array",
"minItems": 1,
"not":
{ "items": { "not": { "$ref": "otherProperties.json#/definitions/agentSingularNameFound" } } }
}
]
}
},
"required": ["generator"]
}

View file

@ -0,0 +1,24 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.3.2-annotationGeneratorAgentTypeImplemented.json",
"assertionType": "should",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "Type (Person, Organization, Software) for Annotation Generator (Agent) not found. Agents should have one or more type values.",
"title": "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)",
"description": "True when type for Annotation Generator (Agent) is implemented (Section 3.3.2)",
"properties":
{ "generator":
{ "oneOf":
[
{ "$ref": "otherProperties.json#/definitions/agentTypeFound" },
{ "type": "array",
"minItems": 1,
"not":
{ "items": { "not": { "$ref": "otherProperties.json#/definitions/agentTypeFound" } } }
}
]
}
},
"required": ["generator"]
}

View file

@ -0,0 +1,14 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.3.3-annotationAudienceImplemented.json",
"assertionType": "may",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "audience key not found. An Annotation may have one or more audience values.",
"title": "Implements **_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)",
"description": "True when the Annotation has an audience key (Section 3.3.3)",
"allOf":
[
{"$ref": "otherProperties.json#/definitions/audiencePropertyFound"}
]
}

View file

@ -0,0 +1,14 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.3.5-annotationMotivationImplemented.json",
"assertionType": "may",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "motivation key with value from model motivation list not found. Annotation may have zero or more motivations with values drawn from model ontology.",
"title": "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)",
"description": "True when the Annotation implements motivation key with value(s) drawn from model motivation ontology (Section 3.3.5)",
"allOf":
[
{ "$ref": "annotations.json#/definitions/motivationPropertyFound"}
]
}

View file

@ -0,0 +1,14 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.3.5-annotationSingleMotivationImplemented.json",
"assertionType": "should",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": " Annotation SHOULD have a motivation key with a single value from model motivation ontology.",
"title": "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)",
"description": "True when the Annotation has motivation key with a single value from model motivation ontology (Section 3.3.5)",
"type": "object",
"allOf": [
{ "$ref": "annotations.json#/definitions/singleMotivationPropertyFound" }
]
}

View file

@ -0,0 +1,14 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.3.6-annotationRightsImplemented.json",
"assertionType": "may",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "Annotatoin-level rights key having string value(s) of format uri not found. Annotation may have zero or more rights key values.",
"title": "Implements Annotation-level **_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)",
"description": "True when the Annotation implements rights key with with string(s) of format uri value(s) (Section 3.3.6)",
"allOf":
[
{ "$ref": "otherProperties.json#/definitions/rightsPropertyFound"}
]
}

View file

@ -0,0 +1,14 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.3.6-annotationRightsValidated.json",
"assertionType": "must",
"expectedResult": "valid",
"onUnexpectedResult" : "failAndContinue",
"errorMessage": "ERROR: Annotation has one or more values for the rights key are not strings of format uri.",
"title": "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)",
"description": "True when no Annotation rights key present or when all values of rights key are strings of format uri (Section 3.3.6)",
"type": "object",
"allOf": [
{ "$ref": "otherProperties.json#/definitions/rightsValidIfPresent" }
]
}

View file

@ -0,0 +1,14 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.3.7-annotationCanonicalImplemented.json",
"assertionType": "may",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "canonical key having a single string value of format uri not found. Annotation may have canonical key with exactly one value.",
"title": "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)",
"description": "True when the Annotation implements canonical key with with single string of format uri value (Section 3.3.7)",
"allOf":
[
{ "$ref": "otherProperties.json#/definitions/canonicalPropertyFound"}
]
}

View file

@ -0,0 +1,14 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.3.7-annotationCanonicalValidated.json",
"assertionType": "must",
"expectedResult": "valid",
"onUnexpectedResult" : "failAndContinue",
"errorMessage": "ERROR: Annotation has more than one value for canonical key or value for canonical key is not of format uri.",
"title": "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)",
"description": "True when no Annotation canonical key present or when value of canonical key is singular and of format uri (Section 3.3.7)",
"type": "object",
"allOf": [
{ "$ref": "otherProperties.json#/definitions/canonicalValidIfPresent" }
]
}

View file

@ -0,0 +1,14 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.3.7-annotationViaImplemented.json",
"assertionType": "may",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "Annotation-level via key with string(s) of format uri as value(s) not found. Annotation may have via key with one or more values.",
"title": "Implements Annotation-level **_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)",
"description": "True when the Annotation implements via key with with string(s) of format uri as value(s) (Section 3.3.7)",
"allOf":
[
{ "$ref": "otherProperties.json#/definitions/viaPropertyFound"}
]
}

View file

@ -0,0 +1,14 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.3.7-annotationViaValidated.json",
"assertionType": "must",
"expectedResult": "valid",
"onUnexpectedResult" : "failAndContinue",
"errorMessage": "ERROR: Annotation values for via key are not of format uri.",
"title": "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)",
"description": "True when no Annotation via key present or when all values of via key are strings of format uri (Section 3.3.7)",
"type": "object",
"allOf": [
{ "$ref": "otherProperties.json#/definitions/viaValidIfPresent" }
]
}

View file

@ -0,0 +1,14 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "4.4-annotationStylesheetImplemented.json",
"assertionType": "may",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "stylesheet key with exactly one value not found. Annotation may have stylesheet key with exactly one value.",
"title": "Implements **_stylesheet_ key** which has a **single value** that is an **object or string of format uri**. [model 4.4](https://www.w3.org/TR/annotation-model/#styles)",
"description": "True when the Annotation implements stylesheet key with exactly one value (object or string of format uri)(Section 4.4)",
"allOf":
[
{ "$ref": "annotations.json#/definitions/stylesheetDetected"}
]
}

View file

@ -0,0 +1,48 @@
<!doctype html>
<html>
<head>
<title>A single ANNOTATION has all required keys and all annotation keys used meet required value constraints</title>
<link rel="stylesheet" href="/resources/testharness.css">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/annotation-model/scripts/ajv.min.js"></script>
<script src="/annotation-model/scripts/showdown.min.js"></script>
<script src="/annotation-model/scripts/JSONtest.js"></script>
<script>
setup({explicit_timeout: true, explicit_done: true });
var theDefinitions=[
"definitions/specificResource.json",
"definitions/choiceSet.json",
"definitions/bodyTarget.json",
"definitions/annotations.json",
"definitions/otherProperties.json",
"definitions/id.json"
];
var theTestFile="annotationMusts.test";
var runningTest = new JSONtest( {
"testInput" : "annotation-input",
"runTest" : "annotation-run",
"closeWindow" : "annotation-close",
"schemaDefs" : theDefinitions,
"testFile" : theTestFile
} ) ;
</script>
</head>
<body>
<p>Fill the textarea below with JSON output from your annotation client
implementation that supports the following criteria:</p>
<div id="testDescription"></div>
<form name="annotation" id="annotation">
<textarea name="annotation-input" id="annotation-input" style="width: 90%; height: 10em" ></textarea>
<p><input type="button" id="annotation-run" name="Loading..." value="Loading...">
<input style="display: none" type="button" id="annotation-close"
name="Close" value="Close"></p>
</form>
<p>Specifically, the following assertions will be evaluated:</p>
<div id="assertion"></div>
</body>
</html>

View file

@ -0,0 +1,63 @@
{
"@context": "https://www.w3.org/ns/JSONtest-v1.jsonld",
"name": "A single ANNOTATION has all required keys and all annotation keys used meet required value constraints",
"description": "Web Annotations: <ul> <li>MUST include certain properties (keys)</li> <li>MUST NOT have both body and bodyValue keys simultaneously</li> <li>MUST satisfy model constraints on values of required and any optional Annotation keys used</li> </ul> Note: Implementation of optional Annotation keys (features), optional constraints on key values, and optional keys and constraints on Agents involved in an Annotation checked by other tests.",
"testType": "manual",
"ref": "https://www.w3.org/TR/annotation-model/",
"assertions": [
"annotations/3.1-annotationContextValidated.json",
"annotations/3.1-annotationIdValidated.json",
"annotations/3.1-annotationTypeValidated.json",
"annotations/3.1-targetKeyFound.json",
"annotations/3.2-targetObjectsRecognized.json",
"annotations/3.2.5-notBodyBodyValue.json",
"annotations/3.2-bodyObjectsRecognized.json",
"annotations/3.2.5-bodyValueValidated.json",
"annotations/3.3.1-annotationCreatedValidated.json",
"annotations/3.3.1-annotationModifiedValidated.json",
"annotations/3.3.1-annotationGeneratedValidated.json",
"annotations/3.3.6-annotationRightsValidated.json",
"annotations/3.3.7-annotationCanonicalValidated.json",
"annotations/3.3.7-annotationViaValidated.json",
"annotations/bodiesTargets/3.2.1-bodyTextDirectionValidated.json",
"annotations/bodiesTargets/3.3.1-bodyCreatedValidated.json",
"annotations/bodiesTargets/3.3.1-bodyModifiedValidated.json",
"annotations/bodiesTargets/3.3.6-bodyRightsValidated.json",
"annotations/bodiesTargets/3.3.7-bodyCanonicalValidated.json",
"annotations/bodiesTargets/3.3.7-bodyViaValidated.json",
"annotations/bodiesTargets/3.2.7-bodyEWRNoItems.json",
"annotations/bodiesTargets/3.3.5-bodyEWRNoPurpose.json",
"annotations/bodiesTargets/3.2.4-bodyChoiceSetNoValue.json",
"annotations/bodiesTargets/4-bodyChoiceSetNoSource.json",
"annotations/bodiesTargets/3.3.5-bodyChoiceSetNoPurpose.json",
"annotations/bodiesTargets/3.2.7-bodyEmbeddedTextualNoItems.json",
"annotations/bodiesTargets/4-bodyEmbeddedTextualNoSource.json",
"annotations/bodiesTargets/3.2.7-bodySpecificResourceNoItems.json",
"annotations/bodiesTargets/4-bodySpecificResourceNoValue.json",
"annotations/bodiesTargets/3.2.1-targTextDirectionValidated.json",
"annotations/bodiesTargets/3.3.1-targCreatedValidated.json",
"annotations/bodiesTargets/3.3.1-targModifiedValidated.json",
"annotations/bodiesTargets/3.3.6-targRightsValidated.json",
"annotations/bodiesTargets/3.3.7-targCanonicalValidated.json",
"annotations/bodiesTargets/3.3.7-targViaValidated.json",
"annotations/bodiesTargets/3.2.7-targEWRNoItems.json",
"annotations/bodiesTargets/3.3.5-targEWRNoPurpose.json",
"annotations/bodiesTargets/3.2.4-targChoiceSetNoValue.json",
"annotations/bodiesTargets/4-targChoiceSetNoSource.json",
"annotations/bodiesTargets/3.3.5-targChoiceSetNoPurpose.json",
"annotations/bodiesTargets/3.2.7-targSpecificResourceNoItems.json",
"annotations/bodiesTargets/4-targSpecificResourceNoValue.json",
"annotations/bodiesTargets/3.2.4-targNoTypeTextualBody.json",
"annotations/specificResource/4.2-selectorValidIfPresent.json",
"annotations/specificResource/4.3-stateValidIfPresent.json",
"annotations/specificResource/4.3.3-refinedByValidated.json",
"annotations/specificResource/4.4-styleClassValidIfPresent.json",
"annotations/specificResource/4.2-fragmentCssXPathSelectorValid.json",
"annotations/specificResource/4.2.4-textQuoteSelectorValid.json",
"annotations/specificResource/4.2-TextDataPositionSelectorValid.json",
"annotations/specificResource/4.2.7-svgSelectorValid.json",
"annotations/specificResource/4.2.8-rangeSelectorValid.json",
"annotations/specificResource/4.3.1-timeStateValid.json",
"annotations/specificResource/4.3.2-httpRequestStateValid.json"
]
}

View file

@ -0,0 +1,48 @@
<!doctype html>
<html>
<head>
<title>Annotation implements optional keys and meets optional key value constraints</title>
<link rel="stylesheet" href="/resources/testharness.css">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/annotation-model/scripts/ajv.min.js"></script>
<script src="/annotation-model/scripts/showdown.min.js"></script>
<script src="/annotation-model/scripts/JSONtest.js"></script>
<script>
setup({explicit_timeout: true, explicit_done: true });
var theDefinitions=[
"definitions/specificResource.json",
"definitions/choiceSet.json",
"definitions/bodyTarget.json",
"definitions/annotations.json",
"definitions/otherProperties.json",
"definitions/id.json"
];
var theTestFile="annotationOptionals.test";
var runningTest = new JSONtest( {
"testInput" : "annotation-input",
"runTest" : "annotation-run",
"closeWindow" : "annotation-close",
"schemaDefs" : theDefinitions,
"testFile" : theTestFile
} ) ;
</script>
</head>
<body>
<p>Fill the textarea below with JSON output from your annotation client
implementation that supports the following criteria:</p>
<div id="testDescription"></div>
<form name="annotation" id="annotation">
<textarea name="annotation-input" id="annotation-input" style="width: 90%; height: 10em" ></textarea>
<p><input type="button" id="annotation-run" name="Loading..." value="Loading...">
<input style="display: none" type="button" id="annotation-close"
name="Close" value="Close"></p>
</form>
<p>Specifically, the following assertions will be evaluated:</p>
<div id="assertion"></div>
</body>
</html>

View file

@ -0,0 +1,92 @@
{
"@context": "https://www.w3.org/ns/JSONtest-v1.jsonld",
"name": "Annotation implements optional keys and meets optional key value constraints",
"description": "Web Annotations: <ul> <li>Should include certain properties (keys)</li> <li>May include additional keys</li> <li>should have Annotation key values that conform to model recommended constraints</li> </ul> Note: failing an assertion indicates that a recommended or optional feature has not been implemented or has not been implemented correctly.",
"testType": "manual",
"ref": "https://www.w3.org/TR/annotation-model/#other-properties",
"skipFailures": [ "should", "may" ],
"assertions": [
"annotations/3.3.1-annotationSingleCreatorImplemented.json",
"annotations/3.3.1-annotationCreatedImplemented.json",
"annotations/3.3.5-annotationSingleMotivationImplemented.json",
"annotations/3.2.5-bodyValueImplemented.json",
"annotations/3.3.1-annotationGeneratedImplemented.json",
"annotations/3.3.1-annotationModifiedImplemented.json",
"annotations/3.3.3-annotationAudienceImplemented.json",
"annotations/3.3.5-annotationMotivationImplemented.json",
"annotations/3.3.6-annotationRightsImplemented.json",
"annotations/3.3.7-annotationCanonicalImplemented.json",
"annotations/3.3.7-annotationViaImplemented.json",
"annotations/4.4-annotationStylesheetImplemented.json",
"annotations/3.1-bodyKeyFound.json",
"annotations/bodiesTargets/3.2.1-bodySingleFormat.json",
"annotations/bodiesTargets/3.2.1-bodySingleLanguage.json",
"annotations/bodiesTargets/3.3.1-bodySingleCreator.json",
"annotations/bodiesTargets/3.3.1-bodyCreated.json",
"annotations/bodiesTargets/3.2.1-bodyFormat.json",
"annotations/bodiesTargets/3.2.1-bodyLanguage.json",
"annotations/bodiesTargets/3.2.2-bodyType.json",
"annotations/bodiesTargets/3.2.1-bodyProcessingLanguage.json",
"annotations/bodiesTargets/3.2.1-bodyTextDirection.json",
"annotations/bodiesTargets/3.3.1-bodyModified.json",
"annotations/bodiesTargets/3.3.3-bodyAudience.json",
"annotations/bodiesTargets/3.3.4-bodyAccessibility.json",
"annotations/bodiesTargets/3.3.5-bodyPurpose.json",
"annotations/bodiesTargets/3.3.6-bodyRights.json",
"annotations/bodiesTargets/3.3.7-bodyCanonical.json",
"annotations/bodiesTargets/3.3.7-bodyVia.json",
"annotations/bodiesTargets/3.2.1-bodyEWR.json",
"annotations/bodiesTargets/3.2.4-bodyETB.json",
"annotations/bodiesTargets/3.2.4-bodyETBTypeTextualBody.json",
"annotations/bodiesTargets/3.2.4-bodyETBTypeText.json",
"annotations/bodiesTargets/3.2.7-bodyChoiceSet.json",
"annotations/bodiesTargets/3.2.7-bodyChoice.json",
"annotations/bodiesTargets/3.2.8-bodyList.json",
"annotations/bodiesTargets/3.2.8-bodyComposite.json",
"annotations/bodiesTargets/3.2.8-bodyIndependents.json",
"annotations/bodiesTargets/3.2.1-targSingleFormat.json",
"annotations/bodiesTargets/3.2.1-targSingleLanguage.json",
"annotations/bodiesTargets/3.3.1-targSingleCreator.json",
"annotations/bodiesTargets/3.3.1-targCreated.json",
"annotations/bodiesTargets/3.2.1-targFormat.json",
"annotations/bodiesTargets/3.2.1-targLanguage.json",
"annotations/bodiesTargets/3.2.2-targType.json",
"annotations/bodiesTargets/3.2.1-targProcessingLanguage.json",
"annotations/bodiesTargets/3.2.1-targTextDirection.json",
"annotations/bodiesTargets/3.3.1-targModified.json",
"annotations/bodiesTargets/3.3.3-targAudience.json",
"annotations/bodiesTargets/3.3.4-targAccessibility.json",
"annotations/bodiesTargets/3.3.5-targPurpose.json",
"annotations/bodiesTargets/3.3.6-targRights.json",
"annotations/bodiesTargets/3.3.7-targCanonical.json",
"annotations/bodiesTargets/3.3.7-targVia.json",
"annotations/bodiesTargets/3.2.1-targEWR.json",
"annotations/bodiesTargets/3.2.7-targChoiceSet.json",
"annotations/bodiesTargets/3.2.7-targChoice.json",
"annotations/bodiesTargets/3.2.8-targList.json",
"annotations/bodiesTargets/3.2.8-targComposite.json",
"annotations/bodiesTargets/3.2.8-targIndependents.json",
"annotations/bodiesTargets/4-bodySpecificResource.json",
"annotations/bodiesTargets/4-targSpecificResource.json",
"annotations/specificResource/4.3.3-refinedBy.json",
"annotations/specificResource/4.4-styleClass.json",
"annotations/specificResource/4.5-renderedVia.json",
"annotations/specificResource/4.6-scope.json",
"annotations/specificResource/4.2-selectorFound.json",
"annotations/specificResource/4.2.1-fragmentSelector.json",
"annotations/specificResource/4.2.1-conformsTo.json",
"annotations/specificResource/4.2.2-cssSelector.json",
"annotations/specificResource/4.2.3-xpathSelector.json",
"annotations/specificResource/4.2.4-textQuoteSelector.json",
"annotations/specificResource/4.2.4-prefix.json",
"annotations/specificResource/4.2.4-suffix.json",
"annotations/specificResource/4.2.5-textPositionSelector.json",
"annotations/specificResource/4.2.6-dataPositionSelector.json",
"annotations/specificResource/4.2.7-svgSelector.json",
"annotations/specificResource/4.2.8-rangeSelector.json",
"annotations/specificResource/4.3-stateFound.json",
"annotations/specificResource/4.3.1-timeState.json",
"annotations/specificResource/4.3.2-requestHeaderState.json",
"annotations/specificResource/4.3.1-cached.json"
]
}

View file

@ -0,0 +1,48 @@
<!doctype html>
<html>
<head>
<title>Annotation implements optional keys and meets optional key value constraints for Creator and Generator Agents</title>
<link rel="stylesheet" href="/resources/testharness.css">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/annotation-model/scripts/ajv.min.js"></script>
<script src="/annotation-model/scripts/showdown.min.js"></script>
<script src="/annotation-model/scripts/JSONtest.js"></script>
<script>
setup({explicit_timeout: true, explicit_done: true });
var theDefinitions=[
"definitions/specificResource.json",
"definitions/choiceSet.json",
"definitions/bodyTarget.json",
"definitions/annotations.json",
"definitions/otherProperties.json",
"definitions/id.json"
];
var theTestFile="annotationsAgentOptionals.test";
var runningTest = new JSONtest( {
"testInput" : "annotation-input",
"runTest" : "annotation-run",
"closeWindow" : "annotation-close",
"schemaDefs" : theDefinitions,
"testFile" : theTestFile
} ) ;
</script>
</head>
<body>
<p>Fill the textarea below with JSON output from your annotation client
implementation that supports the following criteria:</p>
<div id="testDescription"></div>
<form name="annotation" id="annotation">
<textarea name="annotation-input" id="annotation-input" style="width: 90%; height: 10em" ></textarea>
<p><input type="button" id="annotation-run" name="Loading..." value="Loading...">
<input style="display: none" type="button" id="annotation-close"
name="Close" value="Close"></p>
</form>
<p>Specifically, the following assertions will be evaluated:</p>
<div id="assertion"></div>
</body>
</html>

View file

@ -0,0 +1,47 @@
{
"@context": "https://www.w3.org/ns/JSONtest-v1.jsonld",
"name": "Annotation implements optional keys and meets optional key value constraints for Creator and Generator Agents",
"description": "Agents (Creators, Generators) involved in an Annotation: <ul> <li>Should include certain properties (keys)</li> <li>May include additional keys</li> <li>should have Agent key values that conform to model recommended constraints</li> </ul> Note: failing an assertion indicates that a recommended or optional feature has not been implemented or has not been implemented correctly.",
"testType": "manual",
"skipFailures": [ "should", "may" ],
"ref": "https://www.w3.org/TR/annotation-model/#other-properties",
"assertions":
[
"annotations/3.3.1-annotationCreatorImplemented.json",
"annotations/3.3.2-annotationCreatorAgentIdImplemented.json",
"annotations/3.3.2-annotationCreatorAgentTypeImplemented.json",
"annotations/3.3.2-annotationCreatorAgentNicknameImplemented.json",
"annotations/3.3.2-annotationCreatorAgentSingleNameImplemented.json",
"annotations/3.3.2-annotationCreatorAgentNameImplemented.json",
"annotations/3.3.2-annotationCreatorAgentEmailImplemented.json",
"annotations/3.3.2-annotationCreatorAgentEmail_sha1Implemented.json",
"annotations/3.3.2-annotationCreatorAgentHomepageImplemented.json",
"annotations/3.3.1-annotationGeneratorImplemented.json",
"annotations/3.3.2-annotationGeneratorAgentIdImplemented.json",
"annotations/3.3.2-annotationGeneratorAgentTypeImplemented.json",
"annotations/3.3.2-annotationGeneratorAgentNicknameImplemented.json",
"annotations/3.3.2-annotationGeneratorAgentSingleNameImplemented.json",
"annotations/3.3.2-annotationGeneratorAgentNameImplemented.json",
"annotations/3.3.2-annotationGeneratorAgentEmailImplemented.json",
"annotations/3.3.2-annotationGeneratorAgentEmail_sha1Implemented.json",
"annotations/3.3.2-annotationGeneratorAgentHomepageImplemented.json",
"annotations/bodiesTargets/3.3.1-bodyCreator.json",
"annotations/bodiesTargets/3.3.2-bodyCreatorAgentIdImplemented.json",
"annotations/bodiesTargets/3.3.2-bodyCreatorAgentTypeImplemented.json",
"annotations/bodiesTargets/3.3.2-bodyCreatorAgentNicknameImplemented.json",
"annotations/bodiesTargets/3.3.2-bodyCreatorAgentSingleNameImplemented.json",
"annotations/bodiesTargets/3.3.2-bodyCreatorAgentNameImplemented.json",
"annotations/bodiesTargets/3.3.2-bodyCreatorAgentEmailImplemented.json",
"annotations/bodiesTargets/3.3.2-bodyCreatorAgentEmail_sha1Implemented.json",
"annotations/bodiesTargets/3.3.2-bodyCreatorAgentHomepageImplemented.json",
"annotations/bodiesTargets/3.3.1-targCreator.json",
"annotations/bodiesTargets/3.3.2-targCreatorAgentIdImplemented.json",
"annotations/bodiesTargets/3.3.2-targCreatorAgentTypeImplemented.json",
"annotations/bodiesTargets/3.3.2-targCreatorAgentNicknameImplemented.json",
"annotations/bodiesTargets/3.3.2-targCreatorAgentSingleNameImplemented.json",
"annotations/bodiesTargets/3.3.2-targCreatorAgentNameImplemented.json",
"annotations/bodiesTargets/3.3.2-targCreatorAgentEmailImplemented.json",
"annotations/bodiesTargets/3.3.2-targCreatorAgentEmail_sha1Implemented.json",
"annotations/bodiesTargets/3.3.2-targCreatorAgentHomepageImplemented.json"
]
}

View file

@ -0,0 +1,26 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.2.1-bodyEWR.json",
"assertionType": "may",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "An External Web Resource body may be used as an Annotation Body.",
"title": "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)",
"description": "True when Annotation includes one or more External Web Resources as Annotation body(ies). (Section 3.2.1)",
"type": "object",
"required": ["body"],
"properties":
{
"body":
{
"anyOf": [
{ "$ref": "bodyTarget.json#/definitions/externalWebResourceDetected" },
{ "not": { "items": { "not": { "$ref": "bodyTarget.json#/definitions/externalWebResourceDetected" } } } },
{ "$ref": "bodyTarget.json#/definitions/sourceEwrDetected" },
{ "not": { "items": { "not": { "$ref": "bodyTarget.json#/definitions/sourceEwrDetected" } } } },
{ "$ref": "bodyTarget.json#/definitions/itemEwrDetected" },
{ "not": { "items": { "not": { "$ref": "bodyTarget.json#/definitions/itemEwrDetected" } } } }
]
}
}
}

View file

@ -0,0 +1,38 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.2.1-bodyFormat.json",
"assertionType": "may",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "The description of a body may include format key with one or more values that are each a media type.",
"title": "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)",
"description": "True when Annotation includes one or more bodies, one or more of which include format key with one or more values that are each a media type. (Section 3.2.1)",
"type": "object",
"required": ["body"],
"properties":
{
"body":
{
"oneOf": [
{ "anyOf": [
{ "$ref": "bodyTarget.json#/definitions/formatPropertyFound" },
{ "$ref": "bodyTarget.json#/definitions/itemFormatPropertyFound" },
{ "$ref": "bodyTarget.json#/definitions/sourceFormatPropertyFound" }
]
},
{ "not":
{ "items":
{ "not":
{ "anyOf": [
{ "$ref": "bodyTarget.json#/definitions/formatPropertyFound" },
{ "$ref": "bodyTarget.json#/definitions/itemFormatPropertyFound" },
{ "$ref": "bodyTarget.json#/definitions/sourceFormatPropertyFound" }
]
}
}
}
}
]
}
}
}

View file

@ -0,0 +1,38 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.2.1-bodyLanguage.json",
"assertionType": "may",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "The description of a body may include language key with one or more values that are each a language code.",
"title": "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)",
"description": "True when Annotation includes one or more bodies, one or more of which include language key with one or more values that are each a language code. (Section 3.2.1)",
"type": "object",
"required": ["body"],
"properties":
{
"body":
{
"oneOf": [
{ "anyOf": [
{ "$ref": "bodyTarget.json#/definitions/languagePropertyFound" },
{ "$ref": "bodyTarget.json#/definitions/itemLanguagePropertyFound" },
{ "$ref": "bodyTarget.json#/definitions/sourceLanguagePropertyFound" }
]
},
{ "not":
{ "items":
{ "not":
{ "anyOf": [
{ "$ref": "bodyTarget.json#/definitions/languagePropertyFound" },
{ "$ref": "bodyTarget.json#/definitions/itemLanguagePropertyFound" },
{ "$ref": "bodyTarget.json#/definitions/sourceLanguagePropertyFound" }
]
}
}
}
}
]
}
}
}

View file

@ -0,0 +1,38 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.2.1-bodyProcessingLanguage.json",
"assertionType": "may",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "The description of a Body may include processingLanguage key with a single value that is a language code.",
"title": "Implements **body _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)",
"description": "True when Annotation includes one or more Bodies, one or more of which include single processingLanguage key with a language code as value. (Section 3.2.1)",
"type": "object",
"required": ["body"],
"properties":
{
"body":
{
"oneOf": [
{ "anyOf": [
{ "$ref": "bodyTarget.json#/definitions/processingLanguagePropertyFound" },
{ "$ref": "bodyTarget.json#/definitions/itemProcessingLanguagePropertyFound" },
{ "$ref": "bodyTarget.json#/definitions/sourceProcessingLanguagePropertyFound" }
]
},
{ "not":
{ "items":
{ "not":
{ "anyOf": [
{ "$ref": "bodyTarget.json#/definitions/processingLanguagePropertyFound" },
{ "$ref": "bodyTarget.json#/definitions/itemProcessingLanguagePropertyFound" },
{ "$ref": "bodyTarget.json#/definitions/sourceProcessingLanguagePropertyFound" }
]
}
}
}
}
]
}
}
}

View file

@ -0,0 +1,39 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.2.1-bodySingleFormat.json",
"assertionType": "should",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "The description of a Body should include format key with a single value that is a media type.",
"title": "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)",
"description": "True when Annotation includes one or more bodies, one or more of which include single format key with a media type as value. (Section 3.2.1)",
"type": "object",
"required": ["body"],
"properties":
{
"body":
{
"oneOf": [
{ "anyOf": [
{ "$ref": "bodyTarget.json#/definitions/singleFormatPropertyFound" },
{ "$ref": "bodyTarget.json#/definitions/itemSingleFormatPropertyFound" },
{ "$ref": "bodyTarget.json#/definitions/sourceSingleFormatPropertyFound" }
]
},
{ "not":
{ "items":
{ "not":
{ "anyOf": [
{ "$ref": "bodyTarget.json#/definitions/singleFormatPropertyFound" },
{ "$ref": "bodyTarget.json#/definitions/itemSingleFormatPropertyFound" },
{ "$ref": "bodyTarget.json#/definitions/sourceSingleFormatPropertyFound" }
]
}
}
}
}
]
}
},
"required": ["body"]
}

View file

@ -0,0 +1,38 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.2.1-bodySingleLanguage.json",
"assertionType": "should",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "The description of a Body should include language key with a single value that is a language code.",
"title": "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)",
"description": "True when Annotation includes one or moreBodies, one or more of which include single language key with a language code as value. (Section 3.2.1)",
"type": "object",
"required": ["body"],
"properties":
{
"body":
{
"oneOf": [
{ "anyOf": [
{ "$ref": "bodyTarget.json#/definitions/singleLanguagePropertyFound" },
{ "$ref": "bodyTarget.json#/definitions/itemSingleLanguagePropertyFound" },
{ "$ref": "bodyTarget.json#/definitions/sourceSingleLanguagePropertyFound" }
]
},
{ "not":
{ "items":
{ "not":
{ "anyOf": [
{ "$ref": "bodyTarget.json#/definitions/singleLanguagePropertyFound" },
{ "$ref": "bodyTarget.json#/definitions/itemSingleLanguagePropertyFound" },
{ "$ref": "bodyTarget.json#/definitions/sourceSingleLanguagePropertyFound" }
]
}
}
}
}
]
}
}
}

View file

@ -0,0 +1,38 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.2.1-bodyTextDirection.json",
"assertionType": "may",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "The description of a Body may include textDirection key with a single value that is one of ltr, rtl, or auto.",
"title": "Implements **body _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)",
"description": "True when Annotation includes one or more Bodies, one or more of which include single textDirection key with one of ltr, rtl, or auto as value. (Section 3.2.1)",
"type": "object",
"required": ["body"],
"properties":
{
"body":
{
"oneOf": [
{ "anyOf": [
{ "$ref": "bodyTarget.json#/definitions/textDirectionPropertyFound" },
{ "$ref": "bodyTarget.json#/definitions/itemTextDirectionPropertyFound" },
{ "$ref": "bodyTarget.json#/definitions/sourceTextDirectionPropertyFound" }
]
},
{ "not":
{ "items":
{ "not":
{ "anyOf": [
{ "$ref": "bodyTarget.json#/definitions/textDirectionPropertyFound" },
{ "$ref": "bodyTarget.json#/definitions/itemTextDirectionPropertyFound" },
{ "$ref": "bodyTarget.json#/definitions/sourceTextDirectionPropertyFound" }
]
}
}
}
}
]
}
}
}

View file

@ -0,0 +1,44 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.2.1-bodyTextDirectionValidated.json",
"assertionType": "must",
"expectedResult": "valid",
"onUnexpectedResult" : "failAndContinue",
"errorMessage": "ERROR: A body or body/source has multiple textDirection key values for a body or source, or a single textDirection key with a value that is not one of ltr, rtl, auto.",
"title": "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)",
"description": "True when no body-level or body/source-level (SR body) textDirection key present or when all textDirection keys have a single value that is one of ltr, rtl, auto (Section 3.2.1)",
"type": "object",
"properties":
{
"body":
{
"oneOf":
[
{ "$ref": "id.json#/definitions/arraySingleStringUri" },
{ "allOf":
[
{ "$ref": "bodyTarget.json#/definitions/textDirectionValidIfPresent" },
{ "$ref": "specificResource.json#/definitions/sourceWithTextDirection" }
]
},
{
"type": "array",
"minItems": 1,
"items":
{
"oneOf":
[
{ "$ref": "id.json#/definitions/arraySingleStringUri" },
{ "allOf":
[
{ "$ref": "bodyTarget.json#/definitions/textDirectionValidIfPresent" },
{ "$ref": "specificResource.json#/definitions/sourceWithTextDirection" }
]
}
]
}
}
]
}
}
}

View file

@ -0,0 +1,25 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.2.1-targEWR.json",
"assertionType": "may",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "An External Web Resource target may be used as an Annotation Target.",
"title": "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)",
"description": "True when Annotation includes one or more External Web Resources as Annotation target(ies). (Section 3.2.1)",
"type": "object",
"properties":
{
"target":
{
"anyOf": [
{ "$ref": "bodyTarget.json#/definitions/externalWebResourceDetected" },
{ "not": { "items": { "not": { "$ref": "bodyTarget.json#/definitions/externalWebResourceDetected" } } } },
{ "$ref": "bodyTarget.json#/definitions/sourceEwrDetected" },
{ "not": { "items": { "not": { "$ref": "bodyTarget.json#/definitions/sourceEwrDetected" } } } },
{ "$ref": "bodyTarget.json#/definitions/itemEwrDetected" },
{ "not": { "items": { "not": { "$ref": "bodyTarget.json#/definitions/itemEwrDetected" } } } }
]
}
}
}

View file

@ -0,0 +1,37 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.2.1-targFormat.json",
"assertionType": "may",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "The description of a target may include format key with one or more values that are each a media type.",
"title": "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)",
"description": "True when Annotation includes one or more targets, one or more of which include format key with one or more values that are each a media type. (Section 3.2.1)",
"type": "object",
"properties":
{
"target":
{
"oneOf": [
{ "anyOf": [
{ "$ref": "bodyTarget.json#/definitions/formatPropertyFound" },
{ "$ref": "bodyTarget.json#/definitions/itemFormatPropertyFound" },
{ "$ref": "bodyTarget.json#/definitions/sourceFormatPropertyFound" }
]
},
{ "not":
{ "items":
{ "not":
{ "anyOf": [
{ "$ref": "bodyTarget.json#/definitions/formatPropertyFound" },
{ "$ref": "bodyTarget.json#/definitions/itemFormatPropertyFound" },
{ "$ref": "bodyTarget.json#/definitions/sourceFormatPropertyFound" }
]
}
}
}
}
]
}
}
}

View file

@ -0,0 +1,37 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.2.1-targLanguage.json",
"assertionType": "may",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "The description of a target may include language key with one or more values that are each a language code.",
"title": "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)",
"description": "True when Annotation includes one or more targets, one or more of which include language key with one or more values that are each a language code. (Section 3.2.1)",
"type": "object",
"properties":
{
"target":
{
"oneOf": [
{ "anyOf": [
{ "$ref": "bodyTarget.json#/definitions/languagePropertyFound" },
{ "$ref": "bodyTarget.json#/definitions/itemLanguagePropertyFound" },
{ "$ref": "bodyTarget.json#/definitions/sourceLanguagePropertyFound" }
]
},
{ "not":
{ "items":
{ "not":
{ "anyOf": [
{ "$ref": "bodyTarget.json#/definitions/languagePropertyFound" },
{ "$ref": "bodyTarget.json#/definitions/itemLanguagePropertyFound" },
{ "$ref": "bodyTarget.json#/definitions/sourceLanguagePropertyFound" }
]
}
}
}
}
]
}
}
}

View file

@ -0,0 +1,37 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.2.1-targProcessingLanguage.json",
"assertionType": "may",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "The description of a Target may include processingLanguage key with a single value that is a language code.",
"title": "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)",
"description": "True when Annotation includes one or more Targets, one or more of which include single processingLanguage key with a language code as value. (Section 3.2.1)",
"type": "object",
"properties":
{
"target":
{
"oneOf": [
{ "anyOf": [
{ "$ref": "bodyTarget.json#/definitions/processingLanguagePropertyFound" },
{ "$ref": "bodyTarget.json#/definitions/itemProcessingLanguagePropertyFound" },
{ "$ref": "bodyTarget.json#/definitions/sourceProcessingLanguagePropertyFound" }
]
},
{ "not":
{ "items":
{ "not":
{ "anyOf": [
{ "$ref": "bodyTarget.json#/definitions/processingLanguagePropertyFound" },
{ "$ref": "bodyTarget.json#/definitions/itemProcessingLanguagePropertyFound" },
{ "$ref": "bodyTarget.json#/definitions/sourceProcessingLanguagePropertyFound" }
]
}
}
}
}
]
}
}
}

View file

@ -0,0 +1,37 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.2.1-targSingleFormat.json",
"assertionType": "should",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "The description of a Target should include format key with a single value that is a media type.",
"title": "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)",
"description": "True when Annotation includes one or more targets, one or more of which include single format key with a media type as value. (Section 3.2.1)",
"type": "object",
"properties":
{
"target":
{
"oneOf": [
{ "anyOf": [
{ "$ref": "bodyTarget.json#/definitions/singleFormatPropertyFound" },
{ "$ref": "bodyTarget.json#/definitions/itemSingleFormatPropertyFound" },
{ "$ref": "bodyTarget.json#/definitions/sourceSingleFormatPropertyFound" }
]
},
{ "not":
{ "items":
{ "not":
{ "anyOf": [
{ "$ref": "bodyTarget.json#/definitions/singleFormatPropertyFound" },
{ "$ref": "bodyTarget.json#/definitions/itemSingleFormatPropertyFound" },
{ "$ref": "bodyTarget.json#/definitions/sourceSingleFormatPropertyFound" }
]
}
}
}
}
]
}
}
}

View file

@ -0,0 +1,37 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.2.1-targSingleLanguage.json",
"assertionType": "should",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "The description of a Target should include language key with a single value that is a language code.",
"title": "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)",
"description": "True when Annotation includes one or moreTargets, one or more of which include single language key with a language code as value. (Section 3.2.1)",
"type": "object",
"properties":
{
"target":
{
"oneOf": [
{ "anyOf": [
{ "$ref": "bodyTarget.json#/definitions/singleLanguagePropertyFound" },
{ "$ref": "bodyTarget.json#/definitions/itemSingleLanguagePropertyFound" },
{ "$ref": "bodyTarget.json#/definitions/sourceSingleLanguagePropertyFound" }
]
},
{ "not":
{ "items":
{ "not":
{ "anyOf": [
{ "$ref": "bodyTarget.json#/definitions/singleLanguagePropertyFound" },
{ "$ref": "bodyTarget.json#/definitions/itemSingleLanguagePropertyFound" },
{ "$ref": "bodyTarget.json#/definitions/sourceSingleLanguagePropertyFound" }
]
}
}
}
}
]
}
}
}

View file

@ -0,0 +1,37 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.2.1-targTextDirection.json",
"assertionType": "may",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "The description of a Target may include textDirection key with a single value that is one of ltr, rtl, or auto.",
"title": "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)",
"description": "True when Annotation includes one or more Targets, one or more of which include single textDirection key with one of ltr, rtl, or auto as value. (Section 3.2.1)",
"type": "object",
"properties":
{
"target":
{
"oneOf": [
{ "anyOf": [
{ "$ref": "bodyTarget.json#/definitions/textDirectionPropertyFound" },
{ "$ref": "bodyTarget.json#/definitions/itemTextDirectionPropertyFound" },
{ "$ref": "bodyTarget.json#/definitions/sourceTextDirectionPropertyFound" }
]
},
{ "not":
{ "items":
{ "not":
{ "anyOf": [
{ "$ref": "bodyTarget.json#/definitions/textDirectionPropertyFound" },
{ "$ref": "bodyTarget.json#/definitions/itemTextDirectionPropertyFound" },
{ "$ref": "bodyTarget.json#/definitions/sourceTextDirectionPropertyFound" }
]
}
}
}
}
]
}
}
}

View file

@ -0,0 +1,44 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.2.1-targTextDirectionValidated.json",
"assertionType": "must",
"expectedResult": "valid",
"onUnexpectedResult" : "failAndContinue",
"errorMessage": "ERROR: A target or target/source has multiple textDirection key values for a target or source, or a single textDirection key with a value that is not one of ltr, rtl, auto.",
"title": "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)",
"description": "True when no target-level or target/source-level (SR target) textDirection key present or when all textDirection keys have a single value that is one of ltr, rtl, auto (Section 3.2.1)",
"type": "object",
"properties":
{
"target":
{
"oneOf":
[
{ "$ref": "id.json#/definitions/arraySingleStringUri" },
{ "allOf":
[
{ "$ref": "bodyTarget.json#/definitions/textDirectionValidIfPresent" },
{ "$ref": "specificResource.json#/definitions/sourceWithTextDirection" }
]
},
{
"type": "array",
"minItems": 1,
"items":
{
"oneOf":
[
{ "$ref": "id.json#/definitions/arraySingleStringUri" },
{ "allOf":
[
{ "$ref": "bodyTarget.json#/definitions/textDirectionValidIfPresent" },
{ "$ref": "specificResource.json#/definitions/sourceWithTextDirection" }
]
}
]
}
}
]
}
}
}

View file

@ -0,0 +1,38 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.2.2-bodyType.json",
"assertionType": "may",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "The description of a Body may include type key with one or more values that are each drawn from the model's list of resource classes.",
"title": "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)",
"description": "True when Annotation includes one or more Bodies, one or more of which include type key with one or more values that are each drawn from the model's list of resource classes. (Section 3.2.1)",
"type": "object",
"required": ["body"],
"properties":
{
"body":
{
"oneOf": [
{ "anyOf": [
{ "$ref": "bodyTarget.json#/definitions/recognizedTypeFound" },
{ "$ref": "bodyTarget.json#/definitions/itemRecognizedTypeFound" },
{ "$ref": "bodyTarget.json#/definitions/sourceFormatPropertyFound" }
]
},
{ "not":
{ "items":
{ "not":
{ "anyOf": [
{ "$ref": "bodyTarget.json#/definitions/recognizedTypeFound" },
{ "$ref": "bodyTarget.json#/definitions/itemRecognizedTypeFound" },
{ "$ref": "bodyTarget.json#/definitions/sourceRecognizedTypeFound" }
]
}
}
}
}
]
}
}
}

View file

@ -0,0 +1,37 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.2.2-targType.json",
"assertionType": "may",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "The description of a Target may include type key with one or more values that are each drawn from the model's list of resource classes.",
"title": "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)",
"description": "True when Annotation includes one or more Targets, one or more of which include type key with one or more values that are each drawn from the model's list of resource classes. (Section 3.2.1)",
"type": "object",
"properties":
{
"target":
{
"oneOf": [
{ "anyOf": [
{ "$ref": "bodyTarget.json#/definitions/recognizedTypeFound" },
{ "$ref": "bodyTarget.json#/definitions/itemRecognizedTypeFound" },
{ "$ref": "bodyTarget.json#/definitions/sourceFormatPropertyFound" }
]
},
{ "not":
{ "items":
{ "not":
{ "anyOf": [
{ "$ref": "bodyTarget.json#/definitions/recognizedTypeFound" },
{ "$ref": "bodyTarget.json#/definitions/itemRecognizedTypeFound" },
{ "$ref": "bodyTarget.json#/definitions/sourceRecognizedTypeFound" }
]
}
}
}
}
]
}
}
}

View file

@ -0,0 +1,21 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.2.4-bodyChoiceSetNoValue.json",
"assertionType": "must",
"expectedResult": "valid",
"onUnexpectedResult" : "failAndContinue",
"errorMessage": "A Choice or Set body cannot include a value key. value key is only valid with Embedded Textual Bodies.",
"title": "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)",
"description": "True when no Choice or Set bodies or when none of the Choice or Set bodies include the value key. (Section 3.3.4)",
"type": "object",
"properties":
{
"body":
{
"allOf": [
{ "not": { "$ref": "choiceSet.json#/definitions/choiceSetWithValue" } },
{ "items": { "not": { "$ref": "choiceSet.json#/definitions/choiceSetWithValue" } } }
]
}
}
}

View file

@ -0,0 +1,24 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.2.4-bodyETB.json",
"assertionType": "may",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "An Embedded Textual Body may be used as an Annotation Body.",
"title": "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)",
"description": "True when Annotation includes one or more Embedded Textual Bodies as Annotation body(ies). (Section 3.2.4)",
"type": "object",
"required": ["body"],
"properties":
{
"body":
{
"anyOf": [
{ "$ref": "bodyTarget.json#/definitions/textualBodyFound" },
{ "not": { "items": { "not": { "$ref": "bodyTarget.json#/definitions/textualBodyFound" } } } },
{ "$ref": "bodyTarget.json#/definitions/itemETBDetected" },
{ "not": { "items": { "not": { "$ref": "bodyTarget.json#/definitions/itemETBDetected" } } } }
]
}
}
}

View file

@ -0,0 +1,39 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.2.4-bodyETBTypeText.json",
"assertionType": "may",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "The description of an Embedded Textual Body should include type key which includes the value of Text.",
"title": "Implements **Embedded Textual Body _type_ key** which includes a value of **Text** [model 3.2.4](https://www.w3.org/TR/annotation-model/#embedded-textual-body)",
"description": "True when Annotation includes one or more Embedded Textual Bodies (incl. as part of body Choice or Set), one or more of which includes a type key which includes a value of Text. (Section 3.2.4)",
"type": "object",
"required": ["body"],
"properties":
{
"body":
{
"oneOf": [
{ "anyOf":
[
{ "$ref": "bodyTarget.json#/definitions/embeddedTextTypeIncludesText" },
{ "$ref": "bodyTarget.json#/definitions/itemEmbeddedTextTypeIncludesText" }
]
},
{ "not":
{
"items":
{ "not":
{ "anyOf":
[
{ "$ref": "bodyTarget.json#/definitions/embeddedTextTypeIncludesText" },
{ "$ref": "bodyTarget.json#/definitions/itemEmbeddedTextTypeIncludesText" }
]
}
}
}
}
]
}
}
}

View file

@ -0,0 +1,39 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.2.4-bodyETBTypeTextualBody.json",
"assertionType": "should",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "The description of an Embedded Textual Body should include type key which includes the value of TextualBody.",
"title": "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)",
"description": "True when Annotation includes one or more Embedded Textual Bodies (incl. as part of body Choice or Set), one or more of which includes a type key which includes a value of TextualBody. (Section 3.2.4)",
"type": "object",
"required": ["body"],
"properties":
{
"body":
{
"oneOf": [
{ "anyOf":
[
{ "$ref": "bodyTarget.json#/definitions/embeddedTextTypeIncludesTextualBody" },
{ "$ref": "bodyTarget.json#/definitions/itemEmbeddedTextTypeIncludesTextualBody" }
]
},
{ "not":
{
"items":
{ "not":
{ "anyOf":
[
{ "$ref": "bodyTarget.json#/definitions/embeddedTextTypeIncludesTextualBody" },
{ "$ref": "bodyTarget.json#/definitions/itemEmbeddedTextTypeIncludesTextualBody" }
]
}
}
}
}
]
}
}
}

View file

@ -0,0 +1,21 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.2.4-targChoiceSetNoValue.json",
"assertionType": "must",
"expectedResult": "valid",
"onUnexpectedResult" : "failAndContinue",
"errorMessage": "A Choice or Set target cannot include a value key. value key is only valid with Embedded Textual Bodies.",
"title": "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)",
"description": "True when no Choice or Set targets or when none of the Choice or Set targets include the value key. (Section 3.3.4)",
"type": "object",
"properties":
{
"target":
{
"allOf": [
{ "not": { "$ref": "choiceSet.json#/definitions/choiceSetWithValue" } },
{ "items": { "not": { "$ref": "choiceSet.json#/definitions/choiceSetWithValue" } } }
]
}
}
}

View file

@ -0,0 +1,32 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.2.4-targNoTypeTextualBody.json",
"assertionType": "must",
"expectedResult": "valid",
"onUnexpectedResult" : "failAndContinue",
"errorMessage": "The description of a target resource MUST NOT include type key which includes the value of TextualBody.",
"title": "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)",
"description": "True when none of target(s), target source(s), target item(s) have a type key which includes a value of TextualBody. (Section 3.2.4)",
"type": "object",
"properties":
{
"target":
{
"allOf": [
{ "not": { "$ref": "bodyTarget.json#/definitions/embeddedTextTypeIncludesTextualBody" } },
{ "not": { "$ref": "bodyTarget.json#/definitions/itemEmbeddedTextTypeIncludesTextualBody" } },
{
"items":
{ "not":
{ "anyOf":
[
{ "$ref": "bodyTarget.json#/definitions/embeddedTextTypeIncludesTextualBody" },
{ "$ref": "bodyTarget.json#/definitions/itemEmbeddedTextTypeIncludesTextualBody" }
]
}
}
}
]
}
}
}

View file

@ -0,0 +1,29 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.2.7-bodyChoice.json",
"assertionType": "may",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "A Choice resource may be used as an Annotation Body (not found).",
"title": "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)",
"description": "True when Annotation includes one or more Choice resources as Annotation body(ies). (Section 3.2.7)",
"type": "object",
"required": ["body"],
"properties":
{
"body":
{
"oneOf": [
{ "$ref": "choiceSet.json#/definitions/choiceDetected" },
{ "not":
{
"items":
{ "not":
{ "$ref": "choiceSet.json#/definitions/choiceDetected" }
}
}
}
]
}
}
}

View file

@ -0,0 +1,29 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.2.7-bodyChoiceSet.json",
"assertionType": "may",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "A Body may be a Choice or Set.",
"title": "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)",
"description": "True when a Choice or Set is used as a body. (Section 3.2.7)",
"type": "object",
"required": ["body"],
"properties":
{
"body":
{
"oneOf": [
{ "$ref": "choiceSet.json#/definitions/choiceOrSetDetected" },
{ "not":
{
"items":
{ "not":
{ "$ref": "choiceSet.json#/definitions/choiceOrSetDetected" }
}
}
}
]
}
}
}

View file

@ -0,0 +1,25 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.2.7-bodyEWRNoItems.json",
"assertionType": "must",
"expectedResult": "valid",
"onUnexpectedResult" : "failAndContinue",
"errorMessage": "The description of an External Web Resource body cannot include an items key. items key is only valid with Choice or Set.",
"title": "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)",
"description": "True when no External Web Resource bodies or when none of the External Web Recource bodies include the items key. (Section 3.2.7)",
"type": "object",
"properties":
{
"body":
{
"allOf": [
{ "not": { "$ref": "bodyTarget.json#/definitions/ewrWithItems" } },
{ "items": { "not": { "$ref": "bodyTarget.json#/definitions/ewrWithItems" } } },
{ "not": { "$ref": "bodyTarget.json#/definitions/sourceEwrWithItems" } },
{ "items": { "not": { "$ref": "bodyTarget.json#/definitions/sourceEwrWithItems" } } },
{ "not": { "$ref": "bodyTarget.json#/definitions/itemEwrWithItems" } },
{ "items": { "not": { "$ref": "bodyTarget.json#/definitions/itemEwrWithItems" } } }
]
}
}
}

View file

@ -0,0 +1,23 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.2.7-bodyEmbeddedTextualNoItems.json",
"assertionType": "must",
"expectedResult": "valid",
"onUnexpectedResult" : "failAndContinue",
"errorMessage": "An Embedded Textual body cannot include an items key. items key is only valid with Choice or Set.",
"title": "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)",
"description": "True when no Embedded Textual bodies or when none of the Embedded Textual bodies include the items key. (Section 4)",
"type": "object",
"properties":
{
"body":
{
"allOf": [
{ "not": { "$ref": "bodyTarget.json#/definitions/embeddedTextualBodyWithItems" } },
{ "items": { "not": { "$ref": "bodyTarget.json#/definitions/embeddedTextualBodyWithItems" } } },
{ "not": { "$ref": "bodyTarget.json#/definitions/itemETBWithItems" } },
{ "items": { "not": { "$ref": "bodyTarget.json#/definitions/itemETBWithItems" } } }
]
}
}
}

View file

@ -0,0 +1,23 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.2.7-bodySpecificResourceNoItems.json",
"assertionType": "must",
"expectedResult": "valid",
"onUnexpectedResult" : "failAndContinue",
"errorMessage": "An Specific Resource body cannot include an items key. items key is only valid with Choice or Set.",
"title": "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)",
"description": "True when no Specific Resource bodies or when none of the Specific Resource bodies include the items key. (Section 4)",
"type": "object",
"properties":
{
"body":
{
"allOf": [
{ "not": { "$ref": "specificResource.json#/definitions/specificResourceWithItems" } },
{ "items": { "not": { "$ref": "specificResource.json#/definitions/specificResourceWithItems" } } },
{ "not": { "$ref": "specificResource.json#/definitions/itemSRWithItems" } },
{ "items": { "not": { "$ref": "specificResource.json#/definitions/itemSRWithItems" } } }
]
}
}
}

View file

@ -0,0 +1,28 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.2.7-targChoice.json",
"assertionType": "may",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "A Choice resource may be used as an Annotation Target (not found).",
"title": "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)",
"description": "True when Annotation includes one or more Choice resources as Annotation target(ies). (Section 3.2.7)",
"type": "object",
"properties":
{
"target":
{
"oneOf": [
{ "$ref": "choiceSet.json#/definitions/choiceDetected" },
{ "not":
{
"items":
{ "not":
{ "$ref": "choiceSet.json#/definitions/choiceDetected" }
}
}
}
]
}
}
}

View file

@ -0,0 +1,28 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.2.7-targChoiceSet.json",
"assertionType": "may",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "A Target may be a Choice or Set.",
"title": "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)",
"description": "True when a Choice or Set is used as a target. (Section 3.2.7)",
"type": "object",
"properties":
{
"target":
{
"oneOf": [
{ "$ref": "choiceSet.json#/definitions/choiceOrSetDetected" },
{ "not":
{
"items":
{ "not":
{ "$ref": "choiceSet.json#/definitions/choiceOrSetDetected" }
}
}
}
]
}
}
}

View file

@ -0,0 +1,25 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.2.7-targEWRNoItems.json",
"assertionType": "must",
"expectedResult": "valid",
"onUnexpectedResult" : "failAndContinue",
"errorMessage": "The description of an External Web Resource target cannot include an items key. items key is only valid with Choice or Set.",
"title": "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)",
"description": "True when no External Web Resource targets (incl. as source or item) or when none of the External Web Recource targets include the items key. (Section 3.2.7)",
"type": "object",
"properties":
{
"target":
{
"allOf": [
{ "not": { "$ref": "bodyTarget.json#/definitions/ewrWithItems" } },
{ "items": { "not": { "$ref": "bodyTarget.json#/definitions/ewrWithItems" } } },
{ "not": { "$ref": "bodyTarget.json#/definitions/sourceEwrWithItems" } },
{ "items": { "not": { "$ref": "bodyTarget.json#/definitions/sourceEwrWithItems" } } },
{ "not": { "$ref": "bodyTarget.json#/definitions/itemEwrWithItems" } },
{ "items": { "not": { "$ref": "bodyTarget.json#/definitions/itemEwrWithItems" } } }
]
}
}
}

View file

@ -0,0 +1,23 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.2.7-targSpecificResourceNoItems.json",
"assertionType": "must",
"expectedResult": "valid",
"onUnexpectedResult" : "failAndContinue",
"errorMessage": "An Specific Resource target cannot include an items key. items key is only valid with Choice or Set.",
"title": "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)",
"description": "True when no Specific Resource targets or when none of the Specific Resource targets include the items key. (Section 4)",
"type": "object",
"properties":
{
"target":
{
"allOf": [
{ "not": { "$ref": "specificResource.json#/definitions/specificResourceWithItems" } },
{ "items": { "not": { "$ref": "specificResource.json#/definitions/specificResourceWithItems" } } },
{ "not": { "$ref": "specificResource.json#/definitions/itemSRWithItems" } },
{ "items": { "not": { "$ref": "specificResource.json#/definitions/itemSRWithItems" } } }
]
}
}
}

View file

@ -0,0 +1,29 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.2.8-bodyComposite.json",
"assertionType": "may",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "A Composite resource may be used as an Annotation Body (not found).",
"title": "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)",
"description": "True when Annotation includes one or more Composite resources as Annotation body(ies). (Section 3.2.8)",
"type": "object",
"required": ["body"],
"properties":
{
"body":
{
"oneOf": [
{ "$ref": "choiceSet.json#/definitions/compositeDetected" },
{ "not":
{
"items":
{ "not":
{ "$ref": "choiceSet.json#/definitions/compositeDetected" }
}
}
}
]
}
}
}

View file

@ -0,0 +1,29 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.2.8-bodyIndependents.json",
"assertionType": "may",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "A Independents resource may be used as an Annotation Body (not found).",
"title": "Implements **Independents** 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)",
"description": "True when Annotation includes one or more Independents resources as Annotation body(ies). (Section 3.2.8)",
"type": "object",
"required": ["body"],
"properties":
{
"body":
{
"oneOf": [
{ "$ref": "choiceSet.json#/definitions/independentsDetected" },
{ "not":
{
"items":
{ "not":
{ "$ref": "choiceSet.json#/definitions/independentsDetected" }
}
}
}
]
}
}
}

View file

@ -0,0 +1,29 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.2.8-bodyList.json",
"assertionType": "may",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "A List resource may be used as an Annotation Body (not found).",
"title": "Implements **List** 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)",
"description": "True when Annotation includes one or more List resources as Annotation body(ies). (Section 3.2.8)",
"type": "object",
"required": ["body"],
"properties":
{
"body":
{
"oneOf": [
{ "$ref": "choiceSet.json#/definitions/listDetected" },
{ "not":
{
"items":
{ "not":
{ "$ref": "choiceSet.json#/definitions/listDetected" }
}
}
}
]
}
}
}

View file

@ -0,0 +1,28 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.2.8-targComposite.json",
"assertionType": "may",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "A Composite resource may be used as an Annotation Target (not found).",
"title": "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)",
"description": "True when Annotation includes one or more Composite resources as Annotation target(ies). (Section 3.2.8)",
"type": "object",
"properties":
{
"target":
{
"oneOf": [
{ "$ref": "choiceSet.json#/definitions/compositeDetected" },
{ "not":
{
"items":
{ "not":
{ "$ref": "choiceSet.json#/definitions/compositeDetected" }
}
}
}
]
}
}
}

View file

@ -0,0 +1,28 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.2.8-targIndependents.json",
"assertionType": "may",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "A Independents resource may be used as an Annotation Target (not found).",
"title": "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)",
"description": "True when Annotation includes one or more Independents resources as Annotation target(ies). (Section 3.2.8)",
"type": "object",
"properties":
{
"target":
{
"oneOf": [
{ "$ref": "choiceSet.json#/definitions/independentsDetected" },
{ "not":
{
"items":
{ "not":
{ "$ref": "choiceSet.json#/definitions/independentsDetected" }
}
}
}
]
}
}
}

View file

@ -0,0 +1,28 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.2.8-targList.json",
"assertionType": "may",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "A List resource may be used as an Annotation Target (not found).",
"title": "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)",
"description": "True when Annotation includes one or more List resources as Annotation target(ies). (Section 3.2.8)",
"type": "object",
"properties":
{
"target":
{
"oneOf": [
{ "$ref": "choiceSet.json#/definitions/listDetected" },
{ "not":
{
"items":
{ "not":
{ "$ref": "choiceSet.json#/definitions/listDetected" }
}
}
}
]
}
}
}

View file

@ -0,0 +1,39 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.3.1-bodyCreated.json",
"assertionType": "should",
"expectedResult": "valid",
"onUnexpectedResult" : "passAndContinue",
"errorMessage": "The description of a body should include created key with a single value that is of format date-time.",
"title": "Implements **body _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)",
"description": "True when Annotation includes one or more bodies, one or more of which include created key with a single value of date-time format. (Section 3.3.1)",
"type": "object",
"required": ["body"],
"properties":
{
"body":
{
"oneOf": [
{ "anyOf": [
{ "$ref": "otherProperties.json#/definitions/createdPropertyFound" },
{ "$ref": "otherProperties.json#/definitions/itemCreatedPropertyFound" },
{ "$ref": "otherProperties.json#/definitions/sourceCreatedPropertyFound" }
]
},
{ "not":
{ "items":
{ "not":
{ "anyOf": [
{ "$ref": "otherProperties.json#/definitions/createdPropertyFound" },
{ "$ref": "otherProperties.json#/definitions/itemCreatedPropertyFound" },
{ "$ref": "otherProperties.json#/definitions/sourceCreatedPropertyFound" }
]
}
}
}
}
]
}
}
}

View file

@ -0,0 +1,43 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "3.3.1-bodyCreatedValidated.json",
"assertionType": "must",
"expectedResult": "valid",
"onUnexpectedResult" : "failAndContinue",
"errorMessage": "ERROR: A body or body/source has multiple created key values for a body or source, or a single created key value that is not of format date-time.",
"title": "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)",
"description": "True when no body-level or body/source-level (SR body) created key present or when all created keys have a single value that is of format date-time (Section 3.3.1)",
"type": "object",
"properties":
{
"body":
{
"oneOf":
[
{ "$ref": "id.json#/definitions/arraySingleStringUri" },
{ "allOf":
[
{ "$ref": "otherProperties.json#/definitions/createdValidIfPresent" },
{ "$ref": "specificResource.json#/definitions/sourceWithCreated" }
]
},
{
"type": "array",
"items":
{
"oneOf":
[
{ "$ref": "id.json#/definitions/arraySingleStringUri" },
{ "allOf":
[
{ "$ref": "otherProperties.json#/definitions/createdValidIfPresent" },
{ "$ref": "specificResource.json#/definitions/sourceWithCreated" }
]
}
]
}
}
]
}
}
}

Some files were not shown because too many files have changed in this diff Show more