1472 lines
45 KiB
JSON
1472 lines
45 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"id": "otherProperties.json",
|
|
"title": "Definitions: Other Properties.",
|
|
"description": "Schemas in #/definitions detect or validate keys, objects or constraints variously applicable to Annotations, Bodies, Targets, Specific Resources, Textual Bodies, Items, and/or Sources (Section 3.3).",
|
|
"definitions": {
|
|
|
|
"createdValidIfPresent": {
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Validation: created value",
|
|
"description": "True when the object being tested (annotation, body, target...) has no created or has a single created of format date-time (Section 3.3.1)",
|
|
"type": "object",
|
|
"properties": {"created": {"oneOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"maxItems": 1,
|
|
"items": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
]}}
|
|
},
|
|
|
|
"createdPropertyFound": {
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Collate: created key with qualifying body/target classes",
|
|
"description": "Supports implementation check of created (if/when) used on External Web Resources, Specific Resources, Textual Body Resources (Sections 3.2.1-6, 3.3)",
|
|
"oneOf": [
|
|
{"$ref": "annotations.json#/definitions/annotationTypeValueFound"},
|
|
{"$ref": "specificResource.json#/definitions/specificeResourceDetected"},
|
|
{"$ref": "bodyTarget.json#/definitions/externalWebResourceDetected"},
|
|
{"$ref": "bodyTarget.json#/definitions/textualBodyFound"}
|
|
],
|
|
"allOf": [
|
|
{"$ref": "#/definitions/createdValidIfPresent"},
|
|
{"required": ["created"]}
|
|
]
|
|
},
|
|
|
|
"itemCreatedPropertyFound":
|
|
{
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Collate: items having created key with qualifying body/target classes",
|
|
"description": "Supports implementation check of items having created (if/when) used on External Web Resources, Specific Resources, Textual Body Resources (Sections 3.2.1-6, 3.3)",
|
|
"type": "object",
|
|
"properties":
|
|
{
|
|
"items":
|
|
{
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"not":
|
|
{
|
|
"items":
|
|
{ "not": { "$ref": "#/definitions/createdPropertyFound" } }
|
|
}
|
|
}
|
|
},
|
|
"required": ["items"]
|
|
},
|
|
|
|
"sourceCreatedPropertyFound":
|
|
{
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Collate: Specific Resource source having created key",
|
|
"description": "Supports implementation check of created (if/when) used on Specific Resource source (Sections 3.2.1-6, 3.3)",
|
|
"type": "object",
|
|
"properties":
|
|
{
|
|
"source":
|
|
{
|
|
"type": "object",
|
|
"required": ["created"] ,
|
|
"$ref": "#/definitions/createdValidIfPresent"
|
|
}
|
|
},
|
|
"required": ["source"]
|
|
},
|
|
|
|
"generatedValidIfPresent": {
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Validation: generated value",
|
|
"description": "True when the annotation, body or target has no generated or has a single generated of format date-time (Section 3.3.1)",
|
|
"type": "object",
|
|
"properties": {"generated": {"oneOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"maxItems": 1,
|
|
"items": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
]}}
|
|
},
|
|
|
|
"generatedPropertyFound": {
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Collate: generated key with qualifying body/target classes",
|
|
"description": "Supports implementation check of generated (if/when) used on External Web Resources, Specific Resources, Textual Body Resources (Sections 3.2.1-6, 3.3)",
|
|
"oneOf": [
|
|
{"$ref": "annotations.json#/definitions/annotationTypeValueFound"}
|
|
],
|
|
"allOf": [
|
|
{"$ref": "#/definitions/generatedValidIfPresent"},
|
|
{"required": ["generated"]}
|
|
]
|
|
},
|
|
|
|
"modifiedValidIfPresent": {
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Validation: modified value",
|
|
"description": "True when the annotation, body or target has no modified or has a single modified of format date-time (Section 3.3.1)",
|
|
"type": "object",
|
|
"properties": {"modified": {"oneOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"maxItems": 1,
|
|
"items": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
]}}
|
|
},
|
|
|
|
"modifiedPropertyFound": {
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Collate: modified key with qualifying body/target classes",
|
|
"description": "Supports implementation check of modified (if/when) used on External Web Resources, Specific Resources, Textual Body Resources (Sections 3.2.1-6, 3.3)",
|
|
"oneOf": [
|
|
{"$ref": "annotations.json#/definitions/annotationTypeValueFound"},
|
|
{"$ref": "specificResource.json#/definitions/specificeResourceDetected"},
|
|
{"$ref": "bodyTarget.json#/definitions/externalWebResourceDetected"},
|
|
{"$ref": "bodyTarget.json#/definitions/textualBodyFound"}
|
|
],
|
|
"allOf": [
|
|
{"$ref": "#/definitions/modifiedValidIfPresent"},
|
|
{"required": ["modified"]}
|
|
]
|
|
},
|
|
|
|
"itemModifiedPropertyFound":
|
|
{
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Collate: items having modified key with qualifying body/target classes",
|
|
"description": "Supports implementation check of items having modified (if/when) used on External Web Resources, Specific Resources, Textual Body Resources (Sections 3.2.1-6, 3.3)",
|
|
"type": "object",
|
|
"properties":
|
|
{
|
|
"items":
|
|
{
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"not":
|
|
{
|
|
"items":
|
|
{ "not": { "$ref": "#/definitions/modifiedPropertyFound" } }
|
|
}
|
|
}
|
|
},
|
|
"required": ["items"]
|
|
},
|
|
|
|
"sourceModifiedPropertyFound":
|
|
{
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Collate: Specific Resource source having modified key",
|
|
"description": "Supports implementation check of modified (if/when) used on Specific Resource source (Sections 3.2.1-6, 3.3)",
|
|
"type": "object",
|
|
"properties":
|
|
{
|
|
"source":
|
|
{
|
|
"type": "object",
|
|
"required": ["modified"] ,
|
|
"$ref": "#/definitions/modifiedValidIfPresent"
|
|
}
|
|
},
|
|
"required": ["source"]
|
|
},
|
|
|
|
"creatorValidIfPresent": {
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Validation: creator value",
|
|
"description": "True when the annotation, body or target has one or more creators (Section 3.3.1)",
|
|
"type": "object",
|
|
"properties": {"creator":
|
|
{"oneOf": [
|
|
{ "$ref": "id.json#/definitions/stringUri" },
|
|
{ "type": "object" },
|
|
{
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"items":
|
|
{ "oneOf": [
|
|
{ "$ref": "id.json#/definitions/stringUri" },
|
|
{ "type": "object" }
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
|
|
"creatorSingularIfPresent": {
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Validation: creator value",
|
|
"description": "True when the annotation, body or target has exactly 1 creator (Section 3.3.1)",
|
|
"type": "object",
|
|
"properties": {"creator":
|
|
{"oneOf": [
|
|
{ "$ref": "id.json#/definitions/stringUri" },
|
|
{ "type": "object" },
|
|
{
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"maxItems": 1,
|
|
"items":
|
|
{ "oneOf": [
|
|
{ "$ref": "id.json#/definitions/stringUri" },
|
|
{ "type": "object" }
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
|
|
"creatorPropertyFound": {
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Collate: creator key with qualifying body/target classes",
|
|
"description": "Supports implementation check of creator (if/when) used on External Web Resources, Specific Resources, Textual Body Resources (Section 3.3.1)",
|
|
"oneOf": [
|
|
{"$ref": "annotations.json#/definitions/annotationTypeValueFound"},
|
|
{"$ref": "specificResource.json#/definitions/specificeResourceDetected"},
|
|
{"$ref": "bodyTarget.json#/definitions/externalWebResourceDetected"},
|
|
{"$ref": "bodyTarget.json#/definitions/textualBodyFound"}
|
|
],
|
|
"allOf": [
|
|
{"required": ["creator"]},
|
|
{"$ref": "#/definitions/creatorValidIfPresent"}
|
|
]
|
|
},
|
|
|
|
"itemCreatorPropertyFound":
|
|
{
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Collate: items having creator key with qualifying body/target classes",
|
|
"description": "Supports implementation check of items having creator (if/when) used on External Web Resources, Specific Resources, Textual Body Resources (Sections 3.2.1-6, 3.3)",
|
|
"type": "object",
|
|
"properties":
|
|
{
|
|
"items":
|
|
{
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"not":
|
|
{
|
|
"items":
|
|
{ "not": { "$ref": "#/definitions/creatorPropertyFound" } }
|
|
}
|
|
}
|
|
},
|
|
"required": ["items"]
|
|
},
|
|
|
|
"sourceCreatorPropertyFound":
|
|
{
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Collate: Specific Resource source having creator key",
|
|
"description": "Supports implementation check of creator (if/when) used on Specific Resource source (Sections 3.2.1-6, 3.3)",
|
|
"type": "object",
|
|
"properties":
|
|
{
|
|
"source":
|
|
{
|
|
"type": "object",
|
|
"required": ["creator"] ,
|
|
"$ref": "#/definitions/creatorValidIfPresent"
|
|
}
|
|
},
|
|
"required": ["source"]
|
|
},
|
|
|
|
"singleCreatorPropertyFound": {
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Collate: creator key with qualifying body/target classes",
|
|
"description": "Supports implementation check of creator being singular (if/when) used on External Web Resources, Specific Resources, Textual Body Resources (Section 3.3.1)",
|
|
"oneOf": [
|
|
{"$ref": "annotations.json#/definitions/annotationTypeValueFound"},
|
|
{"$ref": "specificResource.json#/definitions/specificeResourceDetected"},
|
|
{"$ref": "bodyTarget.json#/definitions/externalWebResourceDetected"},
|
|
{"$ref": "bodyTarget.json#/definitions/textualBodyFound"}
|
|
],
|
|
"allOf": [
|
|
{"required": ["creator"]},
|
|
{"$ref": "#/definitions/creatorSingularIfPresent"}
|
|
]
|
|
},
|
|
|
|
"itemSingleCreatorPropertyFound":
|
|
{
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Collate: items having singular creator key with qualifying body/target classes",
|
|
"description": "Supports implementation check of items having singular creator (if/when) used on External Web Resources, Specific Resources, Textual Body Resources (Sections 3.2.1-6, 3.3)",
|
|
"type": "object",
|
|
"properties":
|
|
{
|
|
"items":
|
|
{
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"not":
|
|
{
|
|
"items":
|
|
{ "not": { "$ref": "#/definitions/singleCreatorPropertyFound" } }
|
|
}
|
|
}
|
|
},
|
|
"required": ["items"]
|
|
},
|
|
|
|
"sourceSingleCreatorPropertyFound":
|
|
{
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Collate: Specific Resource source having singular creator key",
|
|
"description": "Supports implementation check of singular creator (if/when) used on Specific Resource source (Sections 3.2.1-6, 3.3)",
|
|
"type": "object",
|
|
"properties":
|
|
{
|
|
"source":
|
|
{
|
|
"type": "object",
|
|
"required": ["creator"] ,
|
|
"$ref": "#/definitions/creatorSingularIfPresent"
|
|
}
|
|
},
|
|
"required": ["source"]
|
|
},
|
|
|
|
"generatorValidIfPresent": {
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Validation: generator value",
|
|
"description": "True when the annotation, body or target has a single generator (Section 3.3.1)",
|
|
"type": "object",
|
|
"properties": {"generator":
|
|
{"oneOf": [
|
|
{ "$ref": "id.json#/definitions/stringUri" },
|
|
{ "type": "object" },
|
|
{
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"items":
|
|
{ "oneOf": [
|
|
{ "$ref": "id.json#/definitions/stringUri" },
|
|
{ "type": "object" }
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
|
|
"generatorPropertyFound": {
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Collate: generator key with qualifying body/target classes",
|
|
"description": "Supports implementation check of generator (if/when) used on External Web Resources, Specific Resources, Textual Body Resources (Section 3.3.1)",
|
|
"oneOf": [
|
|
{"$ref": "annotations.json#/definitions/annotationTypeValueFound"}
|
|
],
|
|
"allOf": [
|
|
{"required": ["generator"]},
|
|
{"$ref": "#/definitions/generatorValidIfPresent"}
|
|
]
|
|
},
|
|
|
|
"audienceDefinition":
|
|
{
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Definition: audience object",
|
|
"description": "True when object meets our requirements for audience value (Section 3.3.3)",
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {"$ref": "id.json#/definitions/arraySingleStringUri"} ,
|
|
"type": {
|
|
"oneOf": [
|
|
{ "type": "string",
|
|
"pattern": "^(schema:)"},
|
|
{ "type": "array",
|
|
"minItems": 1,
|
|
"items": {
|
|
"type": "string",
|
|
"pattern": "^(schema:)"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"patternProperties": {
|
|
"^(schema:)": { "type": ["string", "object", "array"] }
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
|
|
"audienceValidIfPresent":
|
|
{
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Validation: audience value",
|
|
"description": "True when no audience or audience property of the annotation, body, target, ... is valid (Section 3.3.3)",
|
|
"type": "object",
|
|
"properties": {
|
|
"audience":
|
|
{ "oneOf":
|
|
[
|
|
{ "$ref": "id.json#/definitions/stringUri" },
|
|
{ "$ref": "#/definitions/audienceDefinition" },
|
|
{
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"items": {
|
|
"oneOf": [
|
|
{ "$ref": "id.json#/definitions/stringUri" },
|
|
{ "$ref": "#/definitions/audienceDefinition" }
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
|
|
"audiencePropertyFound":
|
|
{
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Collate: audience key with qualifying body/target classes",
|
|
"description": "Supports implementation check of audience (if/when) used on Annotation, External Web Resources, Specific Resources, Textual Body Resources (Section 3.3.3)",
|
|
"oneOf": [
|
|
{"$ref": "annotations.json#/definitions/annotationTypeValueFound"},
|
|
{"$ref": "specificResource.json#/definitions/specificeResourceDetected"},
|
|
{"$ref": "bodyTarget.json#/definitions/externalWebResourceDetected"},
|
|
{"$ref": "bodyTarget.json#/definitions/textualBodyFound"}
|
|
],
|
|
"allOf": [
|
|
{"required": ["audience"]},
|
|
{"$ref": "#/definitions/audienceValidIfPresent"}
|
|
]
|
|
},
|
|
|
|
"itemAudiencePropertyFound":
|
|
{
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Collate: items having audience key with qualifying body/target classes",
|
|
"description": "Supports implementation check of items having audience (if/when) used on External Web Resources, Specific Resources, Textual Body Resources (Sections 3.2.1-6, 3.3)",
|
|
"type": "object",
|
|
"properties":
|
|
{
|
|
"items":
|
|
{
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"not":
|
|
{
|
|
"items":
|
|
{ "not": { "$ref": "#/definitions/audiencePropertyFound" } }
|
|
}
|
|
}
|
|
},
|
|
"required": ["items"]
|
|
},
|
|
|
|
"sourceAudiencePropertyFound":
|
|
{
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Collate: Specific Resource source having audience key",
|
|
"description": "Supports implementation check of audience (if/when) used on Specific Resource source (Sections 3.2.1-6, 3.3)",
|
|
"type": "object",
|
|
"properties":
|
|
{
|
|
"source":
|
|
{
|
|
"type": "object",
|
|
"required": ["audience"] ,
|
|
"$ref": "#/definitions/audienceValidIfPresent"
|
|
}
|
|
},
|
|
"required": ["source"]
|
|
},
|
|
|
|
"accessibilityValidIfPresent":
|
|
{
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Validation: accessibility value",
|
|
"description": "True when no accessibility or accessibility property of the body, target, ... is valid (Section 3.3.4)",
|
|
"type": "object",
|
|
"properties": {
|
|
"accessibility" : {
|
|
"oneOf": [
|
|
{ "type": "string" },
|
|
{ "type": "array" ,
|
|
"minItems": 1,
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
|
|
"accessibilityPropertyFound":
|
|
{
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Collate: accessibility key with qualifying body/target classes",
|
|
"description": "Supports implementation check of accessibility (if/when) used on External Web Resources, Specific Resources, Textual Body Resources (Section 3.3.4)",
|
|
"oneOf": [
|
|
{"$ref": "specificResource.json#/definitions/specificeResourceDetected"},
|
|
{"$ref": "bodyTarget.json#/definitions/externalWebResourceDetected"},
|
|
{"$ref": "bodyTarget.json#/definitions/textualBodyFound"}
|
|
],
|
|
"allOf": [
|
|
{"required": ["accessibility"]},
|
|
{"$ref": "#/definitions/accessibilityValidIfPresent"}
|
|
]
|
|
},
|
|
|
|
"itemAccessibilityPropertyFound":
|
|
{
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Collate: items having accessibility key with qualifying body/target classes",
|
|
"description": "Supports implementation check of items having accessibility (if/when) used on External Web Resources, Specific Resources, Textual Body Resources (Sections 3.2.1-6, 3.3)",
|
|
"type": "object",
|
|
"properties":
|
|
{
|
|
"items":
|
|
{
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"not":
|
|
{
|
|
"items":
|
|
{ "not": { "$ref": "#/definitions/accessibilityPropertyFound" } }
|
|
}
|
|
}
|
|
},
|
|
"required": ["items"]
|
|
},
|
|
|
|
"sourceAccessibilityPropertyFound":
|
|
{
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Collate: Specific Resource source having audience key",
|
|
"description": "Supports implementation check of audience (if/when) used on Specific Resource source (Sections 3.2.1-6, 3.3)",
|
|
"type": "object",
|
|
"properties":
|
|
{
|
|
"source":
|
|
{
|
|
"type": "object",
|
|
"required": ["accessibility"] ,
|
|
"$ref": "#/definitions/accessibilityValidIfPresent"
|
|
}
|
|
},
|
|
"required": ["source"]
|
|
},
|
|
|
|
"rightsValidIfPresent":
|
|
{ "$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Validation: rights value",
|
|
"description": "True when the annotation, body or target has 0 or more rights properties that are strings of format uri (Section 3.3.6)",
|
|
"type": "object",
|
|
"properties": {"rights":
|
|
{ "oneOf": [
|
|
{ "$ref": "id.json#/definitions/stringUri" },
|
|
{ "type": "array",
|
|
"minItems": 1,
|
|
"items": { "$ref": "id.json#/definitions/stringUri" } }
|
|
]
|
|
}
|
|
}
|
|
},
|
|
|
|
"rightsPropertyFound":
|
|
{ "$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Collate: rights key with qualifying annotation/body/target classes",
|
|
"description": "Supports implementation check of rights (if/when) used on Annotation, External Web Resources, Specific Resources, Textual Body Resources (Sections 3.3.6)",
|
|
"oneOf": [
|
|
{"$ref": "annotations.json#/definitions/annotationTypeValueFound"},
|
|
{"$ref": "specificResource.json#/definitions/specificeResourceDetected"},
|
|
{"$ref": "bodyTarget.json#/definitions/externalWebResourceDetected"},
|
|
{"$ref": "bodyTarget.json#/definitions/textualBodyFound"}
|
|
],
|
|
"allOf": [
|
|
{"required": ["rights"]},
|
|
{"$ref": "#/definitions/rightsValidIfPresent"}
|
|
]
|
|
},
|
|
|
|
"itemRightsPropertyFound":
|
|
{
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Collate: items having rights key with qualifying body/target classes",
|
|
"description": "Supports implementation check of items having rights (if/when) used on External Web Resources, Specific Resources, Textual Body Resources (Sections 3.2.1-6, 3.3)",
|
|
"type": "object",
|
|
"properties":
|
|
{
|
|
"items":
|
|
{
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"not":
|
|
{
|
|
"items":
|
|
{ "not": { "$ref": "#/definitions/rightsPropertyFound" } }
|
|
}
|
|
}
|
|
},
|
|
"required": ["items"]
|
|
},
|
|
|
|
"sourceRightsPropertyFound":
|
|
{
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Collate: Specific Resource source having rights key",
|
|
"description": "Supports implementation check of rights (if/when) used on Specific Resource source (Sections 3.2.1-6, 3.3)",
|
|
"type": "object",
|
|
"properties":
|
|
{
|
|
"source":
|
|
{
|
|
"type": "object",
|
|
"required": ["rights"] ,
|
|
"$ref": "#/definitions/rightsValidIfPresent"
|
|
}
|
|
},
|
|
"required": ["source"]
|
|
},
|
|
|
|
"canonicalValidIfPresent":
|
|
{ "$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Validation: canonical value",
|
|
"description": "True when the annotation, body or target has 0 or 1 canonical properties that are strings of format uri (Section 3.3.7)",
|
|
"type": "object",
|
|
"properties": {
|
|
"canonical": { "$ref": "id.json#/definitions/arraySingleStringUri" }
|
|
}
|
|
},
|
|
|
|
"canonicalPropertyFound":
|
|
{ "$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Collate: canonical key with qualifying annotation/body/target classes",
|
|
"description": "Supports implementation check of canonical (if/when) used on Annotation, External Web Resources, Specific Resources, Textual Body Resources (Sections 3.3.7)",
|
|
"oneOf": [
|
|
{"$ref": "annotations.json#/definitions/annotationTypeValueFound"},
|
|
{"$ref": "specificResource.json#/definitions/specificeResourceDetected"},
|
|
{"$ref": "bodyTarget.json#/definitions/externalWebResourceDetected"},
|
|
{"$ref": "bodyTarget.json#/definitions/textualBodyFound"}
|
|
],
|
|
"allOf": [
|
|
{"required": ["canonical"]},
|
|
{"$ref": "#/definitions/canonicalValidIfPresent"}
|
|
]
|
|
},
|
|
|
|
"itemCanonicalPropertyFound":
|
|
{
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Collate: items having canonical key with qualifying body/target classes",
|
|
"description": "Supports implementation check of items having canonical (if/when) used on External Web Resources, Specific Resources, Textual Body Resources (Sections 3.2.1-6, 3.3)",
|
|
"type": "object",
|
|
"properties":
|
|
{
|
|
"items":
|
|
{
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"not":
|
|
{
|
|
"items":
|
|
{ "not": { "$ref": "#/definitions/canonicalPropertyFound" } }
|
|
}
|
|
}
|
|
},
|
|
"required": ["items"]
|
|
},
|
|
|
|
"sourceCanonicalPropertyFound":
|
|
{
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Collate: Specific Resource source having canonical key",
|
|
"description": "Supports implementation check of canonical (if/when) used on Specific Resource source (Sections 3.2.1-6, 3.3)",
|
|
"type": "object",
|
|
"properties":
|
|
{
|
|
"source":
|
|
{
|
|
"type": "object",
|
|
"required": ["canonical"] ,
|
|
"$ref": "#/definitions/canonicalValidIfPresent"
|
|
}
|
|
},
|
|
"required": ["source"]
|
|
},
|
|
|
|
"viaValidIfPresent":
|
|
{ "$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Validation: via value",
|
|
"description": "True when the annotation, body or target has 0 or more via properties that are strings of format uri (Section 3.3.7)",
|
|
"type": "object",
|
|
"properties": {"via":
|
|
{ "oneOf": [
|
|
{ "$ref": "id.json#/definitions/stringUri" },
|
|
{ "type": "array",
|
|
"minItems": 1,
|
|
"items": { "$ref": "id.json#/definitions/stringUri" } }
|
|
]
|
|
}
|
|
}
|
|
},
|
|
|
|
"viaPropertyFound":
|
|
{ "$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Collate: via key with qualifying annotation/body/target classes",
|
|
"description": "Supports implementation check of via (if/when) used on Annotation, External Web Resources, Specific Resources, Textual Body Resources (Sections 3.3.7)",
|
|
"oneOf": [
|
|
{"$ref": "annotations.json#/definitions/annotationTypeValueFound"},
|
|
{"$ref": "specificResource.json#/definitions/specificeResourceDetected"},
|
|
{"$ref": "bodyTarget.json#/definitions/externalWebResourceDetected"},
|
|
{"$ref": "bodyTarget.json#/definitions/textualBodyFound"}
|
|
],
|
|
"allOf": [
|
|
{"required": ["via"]},
|
|
{"$ref": "#/definitions/viaValidIfPresent"}
|
|
]
|
|
},
|
|
|
|
"itemViaPropertyFound":
|
|
{
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Collate: items having via key with qualifying body/target classes",
|
|
"description": "Supports implementation check of items having via (if/when) used on External Web Resources, Specific Resources, Textual Body Resources (Sections 3.2.1-6, 3.3)",
|
|
"type": "object",
|
|
"properties":
|
|
{
|
|
"items":
|
|
{
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"not":
|
|
{
|
|
"items":
|
|
{ "not": { "$ref": "#/definitions/viaPropertyFound" } }
|
|
}
|
|
}
|
|
},
|
|
"required": ["items"]
|
|
},
|
|
|
|
"sourceViaPropertyFound":
|
|
{
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Collate: Specific Resource source having via key",
|
|
"description": "Supports implementation check of via (if/when) used on Specific Resource source (Sections 3.2.1-6, 3.3)",
|
|
"type": "object",
|
|
"properties":
|
|
{
|
|
"source":
|
|
{
|
|
"type": "object",
|
|
"required": ["via"] ,
|
|
"$ref": "#/definitions/viaValidIfPresent"
|
|
}
|
|
},
|
|
"required": ["source"]
|
|
},
|
|
|
|
"purposeRecognizedIfPresent":
|
|
{ "$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Validation: purpose value",
|
|
"description": "True when the body has 0 or more purpose property values (Section 3.3.5)",
|
|
"type": "object",
|
|
"properties": {"purpose":
|
|
{ "oneOf": [
|
|
{ "$ref": "annotations.json#/definitions/motivationList" },
|
|
{ "type": "array",
|
|
"minItems": 1,
|
|
"items": { "$ref": "annotations.json#/definitions/motivationList" } }
|
|
]
|
|
}
|
|
}
|
|
},
|
|
|
|
"purposePropertyFound":
|
|
{ "$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Collate: purpose key with qualifying body classes",
|
|
"description": "Supports implementation check of purpose (if/when) used on Specific Resource Body or Textual Body (Sections 3.3.5)",
|
|
"oneOf": [
|
|
{"$ref": "specificResource.json#/definitions/specificeResourceDetected"},
|
|
{"$ref": "bodyTarget.json#/definitions/textualBodyFound"}
|
|
],
|
|
"allOf": [
|
|
{"required": ["purpose"]},
|
|
{"$ref": "#/definitions/purposeRecognizedIfPresent"}
|
|
]
|
|
},
|
|
|
|
"itemPurposePropertyFound":
|
|
{
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Collate: items having purpose key with qualifying body/target classes",
|
|
"description": "Supports implementation check of items having purpose (if/when) used on Specific Resources, Textual Body Resources (Sections 3.2.1-6, 3.3)",
|
|
"type": "object",
|
|
"properties":
|
|
{
|
|
"items":
|
|
{
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"not":
|
|
{
|
|
"items":
|
|
{ "not": { "$ref": "#/definitions/purposePropertyFound" } }
|
|
}
|
|
}
|
|
},
|
|
"required": ["items"]
|
|
},
|
|
|
|
"creatorAgentWithIdFound":
|
|
{ "type": "object",
|
|
"properties":
|
|
{ "creator":
|
|
{ "oneOf":
|
|
[
|
|
{ "$ref": "id.json#/definitions/idValueFound" },
|
|
{ "type": "array",
|
|
"minItems": 1,
|
|
"not":
|
|
{ "items": { "not": { "$ref": "id.json#/definitions/idValueFound" } } }
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"required": ["creator"]
|
|
},
|
|
|
|
"sourceCreatorAgentWithIdFound":
|
|
{ "type": "object",
|
|
"properties":
|
|
{
|
|
"source":
|
|
{ "$ref": "#/definitions/creatorAgentWithIdFound" }
|
|
},
|
|
"required": ["source"]
|
|
},
|
|
|
|
"itemCreatorAgentWithIdFound":
|
|
{
|
|
"type": "object",
|
|
"properties":
|
|
{
|
|
"items":
|
|
{
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"not":
|
|
{
|
|
"items":
|
|
{ "not": { "$ref": "#/definitions/creatorAgentWithIdFound" } }
|
|
}
|
|
}
|
|
},
|
|
"required": ["items"]
|
|
},
|
|
|
|
"agentTypeDefinition":
|
|
{
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Definition: Agent type value",
|
|
"description": "True when the object (creator or generator agent) has no type or has at least one recognized Agent type value (Section 3.3.2)",
|
|
"type": "object",
|
|
"properties":
|
|
{
|
|
"type":
|
|
{
|
|
"oneOf":
|
|
[
|
|
{"type": "string",
|
|
"enum": ["Person", "Organization", "Software"] },
|
|
{"type": "array",
|
|
"minItems": 1,
|
|
"not":
|
|
{
|
|
"items" :
|
|
{ "not":
|
|
{ "type": "string",
|
|
"enum": ["Person", "Organization", "Software"] }
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
|
|
"agentTypeFound":
|
|
{
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Check for implementation of Agent type value",
|
|
"description": "True when the object (creator or generator agent) has at least one recognized Agent type value (Section 3.3.2)",
|
|
"allOf": [
|
|
{"required": ["type"]},
|
|
{"$ref": "#/definitions/agentTypeDefinition"}
|
|
]
|
|
},
|
|
|
|
"creatorAgentWithTypeFound":
|
|
{ "type": "object",
|
|
"properties":
|
|
{ "creator":
|
|
{ "oneOf":
|
|
[
|
|
{ "$ref": "#/definitions/agentTypeFound" },
|
|
{ "type": "array",
|
|
"minItems": 1,
|
|
"not":
|
|
{ "items": { "not": { "$ref": "#/definitions/agentTypeFound" } } }
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"required": ["creator"]
|
|
},
|
|
|
|
"sourceCreatorAgentWithTypeFound":
|
|
{ "type": "object",
|
|
"properties":
|
|
{
|
|
"source":
|
|
{ "$ref": "#/definitions/creatorAgentWithTypeFound" }
|
|
},
|
|
"required": ["source"]
|
|
},
|
|
|
|
"itemCreatorAgentWithTypeFound":
|
|
{
|
|
"type": "object",
|
|
"properties":
|
|
{
|
|
"items":
|
|
{
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"not":
|
|
{
|
|
"items":
|
|
{ "not": { "$ref": "#/definitions/creatorAgentWithTypeFound" } }
|
|
}
|
|
}
|
|
},
|
|
"required": ["items"]
|
|
},
|
|
|
|
"agentNameDefinition":
|
|
{
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Definition: Agent name value",
|
|
"description": "True when the object (creator or generator agent) has no name or has Agent name(s) of type string (Section 3.3.2)",
|
|
"type": "object",
|
|
"properties":
|
|
{
|
|
"name":
|
|
{
|
|
"oneOf":
|
|
[
|
|
{"type": "string" },
|
|
{"type": "array",
|
|
"minItems": 1,
|
|
"items": {"type": "string"}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
|
|
"agentSingularNameDefinition":
|
|
{
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Definition: Agent name value",
|
|
"description": "True when the object (creator or generator agent) has no name or has exactly one Agent name that is a string (Section 3.3.2)",
|
|
"type": "object",
|
|
"properties":
|
|
{
|
|
"name":
|
|
{
|
|
"oneOf":
|
|
[
|
|
{"type": "string" },
|
|
{"type": "array",
|
|
"minItems": 1,
|
|
"maxItems": 1,
|
|
"items": {"type": "string"}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
|
|
"agentNameFound":
|
|
{
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Check for implementation of Agent name value",
|
|
"description": "True when the object (creator or generator agent) has Agent name value(s) (Section 3.3.2)",
|
|
"allOf": [
|
|
{"required": ["name"]},
|
|
{"$ref": "#/definitions/agentNameDefinition"}
|
|
]
|
|
},
|
|
|
|
"creatorAgentWithNameFound":
|
|
{ "type": "object",
|
|
"properties":
|
|
{ "creator":
|
|
{ "oneOf":
|
|
[
|
|
{ "$ref": "#/definitions/agentNameFound" },
|
|
{ "type": "array",
|
|
"minItems": 1,
|
|
"not":
|
|
{ "items": { "not": { "$ref": "#/definitions/agentNameFound" } } }
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"required": ["creator"]
|
|
},
|
|
|
|
"sourceCreatorAgentWithNameFound":
|
|
{ "type": "object",
|
|
"properties":
|
|
{
|
|
"source":
|
|
{ "$ref": "#/definitions/creatorAgentWithNameFound" }
|
|
},
|
|
"required": ["source"]
|
|
},
|
|
|
|
"itemCreatorAgentWithNameFound":
|
|
{
|
|
"type": "object",
|
|
"properties":
|
|
{
|
|
"items":
|
|
{
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"not":
|
|
{
|
|
"items":
|
|
{ "not": { "$ref": "#/definitions/creatorAgentWithNameFound" } }
|
|
}
|
|
}
|
|
},
|
|
"required": ["items"]
|
|
},
|
|
|
|
"agentSingularNameFound":
|
|
{
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Check for implementation of Agent name value",
|
|
"description": "True when the object (creator or generator agent) has exactly one Agent name value (Section 3.3.2)",
|
|
"allOf": [
|
|
{"required": ["name"]},
|
|
{"$ref": "#/definitions/agentSingularNameDefinition"}
|
|
]
|
|
},
|
|
|
|
"creatorAgentWithSingularNameFound":
|
|
{ "type": "object",
|
|
"properties":
|
|
{ "creator":
|
|
{ "oneOf":
|
|
[
|
|
{ "$ref": "#/definitions/agentSingularNameFound" },
|
|
{ "type": "array",
|
|
"minItems": 1,
|
|
"not":
|
|
{ "items": { "not": { "$ref": "#/definitions/agentSingularNameFound" } } }
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"required": ["creator"]
|
|
},
|
|
|
|
"sourceCreatorAgentWithSingularNameFound":
|
|
{ "type": "object",
|
|
"properties":
|
|
{
|
|
"source":
|
|
{ "$ref": "#/definitions/creatorAgentWithSingularNameFound" }
|
|
},
|
|
"required": ["source"]
|
|
},
|
|
|
|
"itemCreatorAgentWithSingularNameFound":
|
|
{
|
|
"type": "object",
|
|
"properties":
|
|
{
|
|
"items":
|
|
{
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"not":
|
|
{
|
|
"items":
|
|
{ "not": { "$ref": "#/definitions/creatorAgentWithSingularNameFound" } }
|
|
}
|
|
}
|
|
},
|
|
"required": ["items"]
|
|
},
|
|
|
|
"agentSingularNicknameDefinition":
|
|
{
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Definition: Agent nickname value",
|
|
"description": "True when the object (creator or generator agent) has no nickname or has exacly one Agent nickname that is a string (Section 3.3.2)",
|
|
"type": "object",
|
|
"properties":
|
|
{
|
|
"nickname":
|
|
{
|
|
"oneOf":
|
|
[
|
|
{"type": "string" },
|
|
{"type": "array",
|
|
"minItems": 1,
|
|
"maxItems": 1,
|
|
"items": {"type": "string"}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
|
|
"agentSingularNicknameFound":
|
|
{
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Check for implementation of Agent nickname value",
|
|
"description": "True when the object (creator or generator agent) has an Agent nickname value (Section 3.3.2)",
|
|
"allOf": [
|
|
{"required": ["nickname"]},
|
|
{"$ref": "#/definitions/agentSingularNicknameDefinition"}
|
|
]
|
|
},
|
|
|
|
"creatorAgentWithSingularNicknameFound":
|
|
{ "type": "object",
|
|
"properties":
|
|
{ "creator":
|
|
{ "oneOf":
|
|
[
|
|
{ "$ref": "#/definitions/agentSingularNicknameFound" },
|
|
{ "type": "array",
|
|
"minItems": 1,
|
|
"not":
|
|
{ "items": { "not": { "$ref": "#/definitions/agentSingularNicknameFound" } } }
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"required": ["creator"]
|
|
},
|
|
|
|
"sourceCreatorAgentWithSingularNicknameFound":
|
|
{ "type": "object",
|
|
"properties":
|
|
{
|
|
"source":
|
|
{ "$ref": "#/definitions/creatorAgentWithSingularNicknameFound" }
|
|
},
|
|
"required": ["source"]
|
|
},
|
|
|
|
"itemCreatorAgentWithSingularNicknameFound":
|
|
{
|
|
"type": "object",
|
|
"properties":
|
|
{
|
|
"items":
|
|
{
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"not":
|
|
{
|
|
"items":
|
|
{ "not": { "$ref": "#/definitions/creatorAgentWithSingularNicknameFound" } }
|
|
}
|
|
}
|
|
},
|
|
"required": ["items"]
|
|
},
|
|
|
|
"agentEmailDefinition":
|
|
{
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Definition: Agent email value",
|
|
"description": "True when the object (creator or generator agent) has no email or has Agent one or more email addresses that start(s) mailto: and is format uri (Section 3.3.2)",
|
|
"type": "object",
|
|
"properties":
|
|
{
|
|
"email":
|
|
{
|
|
"oneOf":
|
|
[
|
|
{ "type": "string",
|
|
"pattern": "^(mailto)",
|
|
"format": "uri" },
|
|
{"type": "array",
|
|
"minItems": 1,
|
|
"items": {"type": "string",
|
|
"pattern": "^(mailto)",
|
|
"format": "uri" }
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
|
|
"agentEmailFound":
|
|
{
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Check for implementation of Agent email value",
|
|
"description": "True when the object (creator or generator agent) has Agent email value(s) (Section 3.3.2)",
|
|
"allOf": [
|
|
{"required": ["email"]},
|
|
{"$ref": "#/definitions/agentEmailDefinition"}
|
|
]
|
|
},
|
|
|
|
"creatorAgentWithEmailFound":
|
|
{ "type": "object",
|
|
"properties":
|
|
{ "creator":
|
|
{ "oneOf":
|
|
[
|
|
{ "$ref": "#/definitions/agentEmailFound" },
|
|
{ "type": "array",
|
|
"minItems": 1,
|
|
"not":
|
|
{ "items": { "not": { "$ref": "#/definitions/agentEmailFound" } } }
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"required": ["creator"]
|
|
},
|
|
|
|
"sourceCreatorAgentWithEmailFound":
|
|
{ "type": "object",
|
|
"properties":
|
|
{
|
|
"source":
|
|
{ "$ref": "#/definitions/creatorAgentWithEmailFound" }
|
|
},
|
|
"required": ["source"]
|
|
},
|
|
|
|
"itemCreatorAgentWithEmailFound":
|
|
{
|
|
"type": "object",
|
|
"properties":
|
|
{
|
|
"items":
|
|
{
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"not":
|
|
{
|
|
"items":
|
|
{ "not": { "$ref": "#/definitions/creatorAgentWithEmailFound" } }
|
|
}
|
|
}
|
|
},
|
|
"required": ["items"]
|
|
},
|
|
|
|
"agentEmail_sha1Definition":
|
|
{
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Definition: Agent email_sha1 value",
|
|
"description": "True when the object (creator or generator agent) has no email_sha1 or has one or more email_sha1 that is/are a string (Section 3.3.2)",
|
|
"type": "object",
|
|
"properties":
|
|
{
|
|
"email_sha1":
|
|
{
|
|
"oneOf":
|
|
[
|
|
{"type": "string" },
|
|
{"type": "array",
|
|
"minItems": 1,
|
|
"items": {"type": "string"}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
|
|
"agentEmail_sha1Found":
|
|
{
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Check for implementation of Agent email_sha1 value",
|
|
"description": "True when the object (creator or generator agent) has has one or more email_sha1 that is/are a string (Section 3.3.2)",
|
|
"allOf": [
|
|
{"required": ["email_sha1"]},
|
|
{"$ref": "#/definitions/agentEmail_sha1Definition"}
|
|
]
|
|
},
|
|
|
|
"creatorAgentWithEmail_sha1Found":
|
|
{ "type": "object",
|
|
"properties":
|
|
{ "creator":
|
|
{ "oneOf":
|
|
[
|
|
{ "$ref": "#/definitions/agentEmail_sha1Found" },
|
|
{ "type": "array",
|
|
"minItems": 1,
|
|
"not":
|
|
{ "items": { "not": { "$ref": "#/definitions/agentEmail_sha1Found" } } }
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"required": ["creator"]
|
|
},
|
|
|
|
"sourceCreatorAgentWithEmail_sha1Found":
|
|
{ "type": "object",
|
|
"properties":
|
|
{
|
|
"source":
|
|
{ "$ref": "#/definitions/creatorAgentWithEmail_sha1Found" }
|
|
},
|
|
"required": ["source"]
|
|
},
|
|
|
|
"itemCreatorAgentWithEmail_sha1Found":
|
|
{
|
|
"type": "object",
|
|
"properties":
|
|
{
|
|
"items":
|
|
{
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"not":
|
|
{
|
|
"items":
|
|
{ "not": { "$ref": "#/definitions/creatorAgentWithEmail_sha1Found" } }
|
|
}
|
|
}
|
|
},
|
|
"required": ["items"]
|
|
},
|
|
|
|
"agentHomepageDefinition":
|
|
{
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Definition: Agent homepage value",
|
|
"description": "True when the object (creator or generator agent) has no homempage or has one or more agent homepage addresses of format uri (Section 3.3.2)",
|
|
"type": "object",
|
|
"properties":
|
|
{
|
|
"email":
|
|
{
|
|
"oneOf":
|
|
[
|
|
{ "type": "string",
|
|
"format": "uri" },
|
|
{"type": "array",
|
|
"minItems": 1,
|
|
"items": {"type": "string",
|
|
"format": "uri" }
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
|
|
"agentHomepageFound":
|
|
{
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"title": "Check for implementation of Agent homepage value",
|
|
"description": "True when the object (creator or generator agent) has Agent homepage value(s) (Section 3.3.2)",
|
|
"allOf": [
|
|
{"required": ["homepage"]},
|
|
{"$ref": "#/definitions/agentHomepageDefinition"}
|
|
]
|
|
},
|
|
|
|
"creatorAgentWithHomepageFound":
|
|
{ "type": "object",
|
|
"properties":
|
|
{ "creator":
|
|
{ "oneOf":
|
|
[
|
|
{ "$ref": "#/definitions/agentHomepageFound" },
|
|
{ "type": "array",
|
|
"minItems": 1,
|
|
"not":
|
|
{ "items": { "not": { "$ref": "#/definitions/agentHomepageFound" } } }
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"required": ["creator"]
|
|
},
|
|
|
|
"sourceCreatorAgentWithHomepageFound":
|
|
{ "type": "object",
|
|
"properties":
|
|
{
|
|
"source":
|
|
{ "$ref": "#/definitions/creatorAgentWithHomepageFound" }
|
|
},
|
|
"required": ["source"]
|
|
},
|
|
|
|
"itemCreatorAgentWithHomepageFound":
|
|
{
|
|
"type": "object",
|
|
"properties":
|
|
{
|
|
"items":
|
|
{
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"not":
|
|
{
|
|
"items":
|
|
{ "not": { "$ref": "#/definitions/creatorAgentWithHomepageFound" } }
|
|
}
|
|
}
|
|
},
|
|
"required": ["items"]
|
|
}
|
|
|
|
}
|
|
}
|