otherProperties.json (46267B)
1 { 2 "$schema": "http://json-schema.org/draft-04/schema#", 3 "id": "otherProperties.json", 4 "title": "Definitions: Other Properties.", 5 "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).", 6 "definitions": { 7 8 "createdValidIfPresent": { 9 "$schema": "http://json-schema.org/draft-04/schema#", 10 "title": "Validation: created value", 11 "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)", 12 "type": "object", 13 "properties": {"created": {"oneOf": [ 14 { 15 "type": "string", 16 "format": "date-time" 17 }, 18 { 19 "type": "array", 20 "minItems": 1, 21 "maxItems": 1, 22 "items": { 23 "type": "string", 24 "format": "date-time" 25 } 26 } 27 ]}} 28 }, 29 30 "createdPropertyFound": { 31 "$schema": "http://json-schema.org/draft-04/schema#", 32 "title": "Collate: created key with qualifying body/target classes", 33 "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)", 34 "oneOf": [ 35 {"$ref": "annotations.json#/definitions/annotationTypeValueFound"}, 36 {"$ref": "specificResource.json#/definitions/specificeResourceDetected"}, 37 {"$ref": "bodyTarget.json#/definitions/externalWebResourceDetected"}, 38 {"$ref": "bodyTarget.json#/definitions/textualBodyFound"} 39 ], 40 "allOf": [ 41 {"$ref": "#/definitions/createdValidIfPresent"}, 42 {"required": ["created"]} 43 ] 44 }, 45 46 "itemCreatedPropertyFound": 47 { 48 "$schema": "http://json-schema.org/draft-04/schema#", 49 "title": "Collate: items having created key with qualifying body/target classes", 50 "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)", 51 "type": "object", 52 "properties": 53 { 54 "items": 55 { 56 "type": "array", 57 "minItems": 1, 58 "not": 59 { 60 "items": 61 { "not": { "$ref": "#/definitions/createdPropertyFound" } } 62 } 63 } 64 }, 65 "required": ["items"] 66 }, 67 68 "sourceCreatedPropertyFound": 69 { 70 "$schema": "http://json-schema.org/draft-04/schema#", 71 "title": "Collate: Specific Resource source having created key", 72 "description": "Supports implementation check of created (if/when) used on Specific Resource source (Sections 3.2.1-6, 3.3)", 73 "type": "object", 74 "properties": 75 { 76 "source": 77 { 78 "type": "object", 79 "required": ["created"] , 80 "$ref": "#/definitions/createdValidIfPresent" 81 } 82 }, 83 "required": ["source"] 84 }, 85 86 "generatedValidIfPresent": { 87 "$schema": "http://json-schema.org/draft-04/schema#", 88 "title": "Validation: generated value", 89 "description": "True when the annotation, body or target has no generated or has a single generated of format date-time (Section 3.3.1)", 90 "type": "object", 91 "properties": {"generated": {"oneOf": [ 92 { 93 "type": "string", 94 "format": "date-time" 95 }, 96 { 97 "type": "array", 98 "minItems": 1, 99 "maxItems": 1, 100 "items": { 101 "type": "string", 102 "format": "date-time" 103 } 104 } 105 ]}} 106 }, 107 108 "generatedPropertyFound": { 109 "$schema": "http://json-schema.org/draft-04/schema#", 110 "title": "Collate: generated key with qualifying body/target classes", 111 "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)", 112 "oneOf": [ 113 {"$ref": "annotations.json#/definitions/annotationTypeValueFound"} 114 ], 115 "allOf": [ 116 {"$ref": "#/definitions/generatedValidIfPresent"}, 117 {"required": ["generated"]} 118 ] 119 }, 120 121 "modifiedValidIfPresent": { 122 "$schema": "http://json-schema.org/draft-04/schema#", 123 "title": "Validation: modified value", 124 "description": "True when the annotation, body or target has no modified or has a single modified of format date-time (Section 3.3.1)", 125 "type": "object", 126 "properties": {"modified": {"oneOf": [ 127 { 128 "type": "string", 129 "format": "date-time" 130 }, 131 { 132 "type": "array", 133 "minItems": 1, 134 "maxItems": 1, 135 "items": { 136 "type": "string", 137 "format": "date-time" 138 } 139 } 140 ]}} 141 }, 142 143 "modifiedPropertyFound": { 144 "$schema": "http://json-schema.org/draft-04/schema#", 145 "title": "Collate: modified key with qualifying body/target classes", 146 "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)", 147 "oneOf": [ 148 {"$ref": "annotations.json#/definitions/annotationTypeValueFound"}, 149 {"$ref": "specificResource.json#/definitions/specificeResourceDetected"}, 150 {"$ref": "bodyTarget.json#/definitions/externalWebResourceDetected"}, 151 {"$ref": "bodyTarget.json#/definitions/textualBodyFound"} 152 ], 153 "allOf": [ 154 {"$ref": "#/definitions/modifiedValidIfPresent"}, 155 {"required": ["modified"]} 156 ] 157 }, 158 159 "itemModifiedPropertyFound": 160 { 161 "$schema": "http://json-schema.org/draft-04/schema#", 162 "title": "Collate: items having modified key with qualifying body/target classes", 163 "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)", 164 "type": "object", 165 "properties": 166 { 167 "items": 168 { 169 "type": "array", 170 "minItems": 1, 171 "not": 172 { 173 "items": 174 { "not": { "$ref": "#/definitions/modifiedPropertyFound" } } 175 } 176 } 177 }, 178 "required": ["items"] 179 }, 180 181 "sourceModifiedPropertyFound": 182 { 183 "$schema": "http://json-schema.org/draft-04/schema#", 184 "title": "Collate: Specific Resource source having modified key", 185 "description": "Supports implementation check of modified (if/when) used on Specific Resource source (Sections 3.2.1-6, 3.3)", 186 "type": "object", 187 "properties": 188 { 189 "source": 190 { 191 "type": "object", 192 "required": ["modified"] , 193 "$ref": "#/definitions/modifiedValidIfPresent" 194 } 195 }, 196 "required": ["source"] 197 }, 198 199 "creatorValidIfPresent": { 200 "$schema": "http://json-schema.org/draft-04/schema#", 201 "title": "Validation: creator value", 202 "description": "True when the annotation, body or target has one or more creators (Section 3.3.1)", 203 "type": "object", 204 "properties": {"creator": 205 {"oneOf": [ 206 { "$ref": "id.json#/definitions/stringUri" }, 207 { "type": "object" }, 208 { 209 "type": "array", 210 "minItems": 1, 211 "items": 212 { "oneOf": [ 213 { "$ref": "id.json#/definitions/stringUri" }, 214 { "type": "object" } 215 ] 216 } 217 } 218 ] 219 } 220 } 221 }, 222 223 "creatorSingularIfPresent": { 224 "$schema": "http://json-schema.org/draft-04/schema#", 225 "title": "Validation: creator value", 226 "description": "True when the annotation, body or target has exactly 1 creator (Section 3.3.1)", 227 "type": "object", 228 "properties": {"creator": 229 {"oneOf": [ 230 { "$ref": "id.json#/definitions/stringUri" }, 231 { "type": "object" }, 232 { 233 "type": "array", 234 "minItems": 1, 235 "maxItems": 1, 236 "items": 237 { "oneOf": [ 238 { "$ref": "id.json#/definitions/stringUri" }, 239 { "type": "object" } 240 ] 241 } 242 } 243 ] 244 } 245 } 246 }, 247 248 "creatorPropertyFound": { 249 "$schema": "http://json-schema.org/draft-04/schema#", 250 "title": "Collate: creator key with qualifying body/target classes", 251 "description": "Supports implementation check of creator (if/when) used on External Web Resources, Specific Resources, Textual Body Resources (Section 3.3.1)", 252 "oneOf": [ 253 {"$ref": "annotations.json#/definitions/annotationTypeValueFound"}, 254 {"$ref": "specificResource.json#/definitions/specificeResourceDetected"}, 255 {"$ref": "bodyTarget.json#/definitions/externalWebResourceDetected"}, 256 {"$ref": "bodyTarget.json#/definitions/textualBodyFound"} 257 ], 258 "allOf": [ 259 {"required": ["creator"]}, 260 {"$ref": "#/definitions/creatorValidIfPresent"} 261 ] 262 }, 263 264 "itemCreatorPropertyFound": 265 { 266 "$schema": "http://json-schema.org/draft-04/schema#", 267 "title": "Collate: items having creator key with qualifying body/target classes", 268 "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)", 269 "type": "object", 270 "properties": 271 { 272 "items": 273 { 274 "type": "array", 275 "minItems": 1, 276 "not": 277 { 278 "items": 279 { "not": { "$ref": "#/definitions/creatorPropertyFound" } } 280 } 281 } 282 }, 283 "required": ["items"] 284 }, 285 286 "sourceCreatorPropertyFound": 287 { 288 "$schema": "http://json-schema.org/draft-04/schema#", 289 "title": "Collate: Specific Resource source having creator key", 290 "description": "Supports implementation check of creator (if/when) used on Specific Resource source (Sections 3.2.1-6, 3.3)", 291 "type": "object", 292 "properties": 293 { 294 "source": 295 { 296 "type": "object", 297 "required": ["creator"] , 298 "$ref": "#/definitions/creatorValidIfPresent" 299 } 300 }, 301 "required": ["source"] 302 }, 303 304 "singleCreatorPropertyFound": { 305 "$schema": "http://json-schema.org/draft-04/schema#", 306 "title": "Collate: creator key with qualifying body/target classes", 307 "description": "Supports implementation check of creator being singular (if/when) used on External Web Resources, Specific Resources, Textual Body Resources (Section 3.3.1)", 308 "oneOf": [ 309 {"$ref": "annotations.json#/definitions/annotationTypeValueFound"}, 310 {"$ref": "specificResource.json#/definitions/specificeResourceDetected"}, 311 {"$ref": "bodyTarget.json#/definitions/externalWebResourceDetected"}, 312 {"$ref": "bodyTarget.json#/definitions/textualBodyFound"} 313 ], 314 "allOf": [ 315 {"required": ["creator"]}, 316 {"$ref": "#/definitions/creatorSingularIfPresent"} 317 ] 318 }, 319 320 "itemSingleCreatorPropertyFound": 321 { 322 "$schema": "http://json-schema.org/draft-04/schema#", 323 "title": "Collate: items having singular creator key with qualifying body/target classes", 324 "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)", 325 "type": "object", 326 "properties": 327 { 328 "items": 329 { 330 "type": "array", 331 "minItems": 1, 332 "not": 333 { 334 "items": 335 { "not": { "$ref": "#/definitions/singleCreatorPropertyFound" } } 336 } 337 } 338 }, 339 "required": ["items"] 340 }, 341 342 "sourceSingleCreatorPropertyFound": 343 { 344 "$schema": "http://json-schema.org/draft-04/schema#", 345 "title": "Collate: Specific Resource source having singular creator key", 346 "description": "Supports implementation check of singular creator (if/when) used on Specific Resource source (Sections 3.2.1-6, 3.3)", 347 "type": "object", 348 "properties": 349 { 350 "source": 351 { 352 "type": "object", 353 "required": ["creator"] , 354 "$ref": "#/definitions/creatorSingularIfPresent" 355 } 356 }, 357 "required": ["source"] 358 }, 359 360 "generatorValidIfPresent": { 361 "$schema": "http://json-schema.org/draft-04/schema#", 362 "title": "Validation: generator value", 363 "description": "True when the annotation, body or target has a single generator (Section 3.3.1)", 364 "type": "object", 365 "properties": {"generator": 366 {"oneOf": [ 367 { "$ref": "id.json#/definitions/stringUri" }, 368 { "type": "object" }, 369 { 370 "type": "array", 371 "minItems": 1, 372 "items": 373 { "oneOf": [ 374 { "$ref": "id.json#/definitions/stringUri" }, 375 { "type": "object" } 376 ] 377 } 378 } 379 ] 380 } 381 } 382 }, 383 384 "generatorPropertyFound": { 385 "$schema": "http://json-schema.org/draft-04/schema#", 386 "title": "Collate: generator key with qualifying body/target classes", 387 "description": "Supports implementation check of generator (if/when) used on External Web Resources, Specific Resources, Textual Body Resources (Section 3.3.1)", 388 "oneOf": [ 389 {"$ref": "annotations.json#/definitions/annotationTypeValueFound"} 390 ], 391 "allOf": [ 392 {"required": ["generator"]}, 393 {"$ref": "#/definitions/generatorValidIfPresent"} 394 ] 395 }, 396 397 "audienceDefinition": 398 { 399 "$schema": "http://json-schema.org/draft-04/schema#", 400 "title": "Definition: audience object", 401 "description": "True when object meets our requirements for audience value (Section 3.3.3)", 402 "type": "object", 403 "properties": { 404 "id": {"$ref": "id.json#/definitions/arraySingleStringUri"} , 405 "type": { 406 "oneOf": [ 407 { "type": "string", 408 "pattern": "^(schema:)"}, 409 { "type": "array", 410 "minItems": 1, 411 "items": { 412 "type": "string", 413 "pattern": "^(schema:)" 414 } 415 } 416 ] 417 } 418 }, 419 "patternProperties": { 420 "^(schema:)": { "type": ["string", "object", "array"] } 421 }, 422 "additionalProperties": false 423 }, 424 425 "audienceValidIfPresent": 426 { 427 "$schema": "http://json-schema.org/draft-04/schema#", 428 "title": "Validation: audience value", 429 "description": "True when no audience or audience property of the annotation, body, target, ... is valid (Section 3.3.3)", 430 "type": "object", 431 "properties": { 432 "audience": 433 { "oneOf": 434 [ 435 { "$ref": "id.json#/definitions/stringUri" }, 436 { "$ref": "#/definitions/audienceDefinition" }, 437 { 438 "type": "array", 439 "minItems": 1, 440 "items": { 441 "oneOf": [ 442 { "$ref": "id.json#/definitions/stringUri" }, 443 { "$ref": "#/definitions/audienceDefinition" } 444 ] 445 } 446 } 447 ] 448 } 449 } 450 }, 451 452 "audiencePropertyFound": 453 { 454 "$schema": "http://json-schema.org/draft-04/schema#", 455 "title": "Collate: audience key with qualifying body/target classes", 456 "description": "Supports implementation check of audience (if/when) used on Annotation, External Web Resources, Specific Resources, Textual Body Resources (Section 3.3.3)", 457 "oneOf": [ 458 {"$ref": "annotations.json#/definitions/annotationTypeValueFound"}, 459 {"$ref": "specificResource.json#/definitions/specificeResourceDetected"}, 460 {"$ref": "bodyTarget.json#/definitions/externalWebResourceDetected"}, 461 {"$ref": "bodyTarget.json#/definitions/textualBodyFound"} 462 ], 463 "allOf": [ 464 {"required": ["audience"]}, 465 {"$ref": "#/definitions/audienceValidIfPresent"} 466 ] 467 }, 468 469 "itemAudiencePropertyFound": 470 { 471 "$schema": "http://json-schema.org/draft-04/schema#", 472 "title": "Collate: items having audience key with qualifying body/target classes", 473 "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)", 474 "type": "object", 475 "properties": 476 { 477 "items": 478 { 479 "type": "array", 480 "minItems": 1, 481 "not": 482 { 483 "items": 484 { "not": { "$ref": "#/definitions/audiencePropertyFound" } } 485 } 486 } 487 }, 488 "required": ["items"] 489 }, 490 491 "sourceAudiencePropertyFound": 492 { 493 "$schema": "http://json-schema.org/draft-04/schema#", 494 "title": "Collate: Specific Resource source having audience key", 495 "description": "Supports implementation check of audience (if/when) used on Specific Resource source (Sections 3.2.1-6, 3.3)", 496 "type": "object", 497 "properties": 498 { 499 "source": 500 { 501 "type": "object", 502 "required": ["audience"] , 503 "$ref": "#/definitions/audienceValidIfPresent" 504 } 505 }, 506 "required": ["source"] 507 }, 508 509 "accessibilityValidIfPresent": 510 { 511 "$schema": "http://json-schema.org/draft-04/schema#", 512 "title": "Validation: accessibility value", 513 "description": "True when no accessibility or accessibility property of the body, target, ... is valid (Section 3.3.4)", 514 "type": "object", 515 "properties": { 516 "accessibility" : { 517 "oneOf": [ 518 { "type": "string" }, 519 { "type": "array" , 520 "minItems": 1, 521 "items": { 522 "type": "string" 523 } 524 } 525 ] 526 } 527 } 528 }, 529 530 "accessibilityPropertyFound": 531 { 532 "$schema": "http://json-schema.org/draft-04/schema#", 533 "title": "Collate: accessibility key with qualifying body/target classes", 534 "description": "Supports implementation check of accessibility (if/when) used on External Web Resources, Specific Resources, Textual Body Resources (Section 3.3.4)", 535 "oneOf": [ 536 {"$ref": "specificResource.json#/definitions/specificeResourceDetected"}, 537 {"$ref": "bodyTarget.json#/definitions/externalWebResourceDetected"}, 538 {"$ref": "bodyTarget.json#/definitions/textualBodyFound"} 539 ], 540 "allOf": [ 541 {"required": ["accessibility"]}, 542 {"$ref": "#/definitions/accessibilityValidIfPresent"} 543 ] 544 }, 545 546 "itemAccessibilityPropertyFound": 547 { 548 "$schema": "http://json-schema.org/draft-04/schema#", 549 "title": "Collate: items having accessibility key with qualifying body/target classes", 550 "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)", 551 "type": "object", 552 "properties": 553 { 554 "items": 555 { 556 "type": "array", 557 "minItems": 1, 558 "not": 559 { 560 "items": 561 { "not": { "$ref": "#/definitions/accessibilityPropertyFound" } } 562 } 563 } 564 }, 565 "required": ["items"] 566 }, 567 568 "sourceAccessibilityPropertyFound": 569 { 570 "$schema": "http://json-schema.org/draft-04/schema#", 571 "title": "Collate: Specific Resource source having audience key", 572 "description": "Supports implementation check of audience (if/when) used on Specific Resource source (Sections 3.2.1-6, 3.3)", 573 "type": "object", 574 "properties": 575 { 576 "source": 577 { 578 "type": "object", 579 "required": ["accessibility"] , 580 "$ref": "#/definitions/accessibilityValidIfPresent" 581 } 582 }, 583 "required": ["source"] 584 }, 585 586 "rightsValidIfPresent": 587 { "$schema": "http://json-schema.org/draft-04/schema#", 588 "title": "Validation: rights value", 589 "description": "True when the annotation, body or target has 0 or more rights properties that are strings of format uri (Section 3.3.6)", 590 "type": "object", 591 "properties": {"rights": 592 { "oneOf": [ 593 { "$ref": "id.json#/definitions/stringUri" }, 594 { "type": "array", 595 "minItems": 1, 596 "items": { "$ref": "id.json#/definitions/stringUri" } } 597 ] 598 } 599 } 600 }, 601 602 "rightsPropertyFound": 603 { "$schema": "http://json-schema.org/draft-04/schema#", 604 "title": "Collate: rights key with qualifying annotation/body/target classes", 605 "description": "Supports implementation check of rights (if/when) used on Annotation, External Web Resources, Specific Resources, Textual Body Resources (Sections 3.3.6)", 606 "oneOf": [ 607 {"$ref": "annotations.json#/definitions/annotationTypeValueFound"}, 608 {"$ref": "specificResource.json#/definitions/specificeResourceDetected"}, 609 {"$ref": "bodyTarget.json#/definitions/externalWebResourceDetected"}, 610 {"$ref": "bodyTarget.json#/definitions/textualBodyFound"} 611 ], 612 "allOf": [ 613 {"required": ["rights"]}, 614 {"$ref": "#/definitions/rightsValidIfPresent"} 615 ] 616 }, 617 618 "itemRightsPropertyFound": 619 { 620 "$schema": "http://json-schema.org/draft-04/schema#", 621 "title": "Collate: items having rights key with qualifying body/target classes", 622 "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)", 623 "type": "object", 624 "properties": 625 { 626 "items": 627 { 628 "type": "array", 629 "minItems": 1, 630 "not": 631 { 632 "items": 633 { "not": { "$ref": "#/definitions/rightsPropertyFound" } } 634 } 635 } 636 }, 637 "required": ["items"] 638 }, 639 640 "sourceRightsPropertyFound": 641 { 642 "$schema": "http://json-schema.org/draft-04/schema#", 643 "title": "Collate: Specific Resource source having rights key", 644 "description": "Supports implementation check of rights (if/when) used on Specific Resource source (Sections 3.2.1-6, 3.3)", 645 "type": "object", 646 "properties": 647 { 648 "source": 649 { 650 "type": "object", 651 "required": ["rights"] , 652 "$ref": "#/definitions/rightsValidIfPresent" 653 } 654 }, 655 "required": ["source"] 656 }, 657 658 "canonicalValidIfPresent": 659 { "$schema": "http://json-schema.org/draft-04/schema#", 660 "title": "Validation: canonical value", 661 "description": "True when the annotation, body or target has 0 or 1 canonical properties that are strings of format uri (Section 3.3.7)", 662 "type": "object", 663 "properties": { 664 "canonical": { "$ref": "id.json#/definitions/arraySingleStringUri" } 665 } 666 }, 667 668 "canonicalPropertyFound": 669 { "$schema": "http://json-schema.org/draft-04/schema#", 670 "title": "Collate: canonical key with qualifying annotation/body/target classes", 671 "description": "Supports implementation check of canonical (if/when) used on Annotation, External Web Resources, Specific Resources, Textual Body Resources (Sections 3.3.7)", 672 "oneOf": [ 673 {"$ref": "annotations.json#/definitions/annotationTypeValueFound"}, 674 {"$ref": "specificResource.json#/definitions/specificeResourceDetected"}, 675 {"$ref": "bodyTarget.json#/definitions/externalWebResourceDetected"}, 676 {"$ref": "bodyTarget.json#/definitions/textualBodyFound"} 677 ], 678 "allOf": [ 679 {"required": ["canonical"]}, 680 {"$ref": "#/definitions/canonicalValidIfPresent"} 681 ] 682 }, 683 684 "itemCanonicalPropertyFound": 685 { 686 "$schema": "http://json-schema.org/draft-04/schema#", 687 "title": "Collate: items having canonical key with qualifying body/target classes", 688 "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)", 689 "type": "object", 690 "properties": 691 { 692 "items": 693 { 694 "type": "array", 695 "minItems": 1, 696 "not": 697 { 698 "items": 699 { "not": { "$ref": "#/definitions/canonicalPropertyFound" } } 700 } 701 } 702 }, 703 "required": ["items"] 704 }, 705 706 "sourceCanonicalPropertyFound": 707 { 708 "$schema": "http://json-schema.org/draft-04/schema#", 709 "title": "Collate: Specific Resource source having canonical key", 710 "description": "Supports implementation check of canonical (if/when) used on Specific Resource source (Sections 3.2.1-6, 3.3)", 711 "type": "object", 712 "properties": 713 { 714 "source": 715 { 716 "type": "object", 717 "required": ["canonical"] , 718 "$ref": "#/definitions/canonicalValidIfPresent" 719 } 720 }, 721 "required": ["source"] 722 }, 723 724 "viaValidIfPresent": 725 { "$schema": "http://json-schema.org/draft-04/schema#", 726 "title": "Validation: via value", 727 "description": "True when the annotation, body or target has 0 or more via properties that are strings of format uri (Section 3.3.7)", 728 "type": "object", 729 "properties": {"via": 730 { "oneOf": [ 731 { "$ref": "id.json#/definitions/stringUri" }, 732 { "type": "array", 733 "minItems": 1, 734 "items": { "$ref": "id.json#/definitions/stringUri" } } 735 ] 736 } 737 } 738 }, 739 740 "viaPropertyFound": 741 { "$schema": "http://json-schema.org/draft-04/schema#", 742 "title": "Collate: via key with qualifying annotation/body/target classes", 743 "description": "Supports implementation check of via (if/when) used on Annotation, External Web Resources, Specific Resources, Textual Body Resources (Sections 3.3.7)", 744 "oneOf": [ 745 {"$ref": "annotations.json#/definitions/annotationTypeValueFound"}, 746 {"$ref": "specificResource.json#/definitions/specificeResourceDetected"}, 747 {"$ref": "bodyTarget.json#/definitions/externalWebResourceDetected"}, 748 {"$ref": "bodyTarget.json#/definitions/textualBodyFound"} 749 ], 750 "allOf": [ 751 {"required": ["via"]}, 752 {"$ref": "#/definitions/viaValidIfPresent"} 753 ] 754 }, 755 756 "itemViaPropertyFound": 757 { 758 "$schema": "http://json-schema.org/draft-04/schema#", 759 "title": "Collate: items having via key with qualifying body/target classes", 760 "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)", 761 "type": "object", 762 "properties": 763 { 764 "items": 765 { 766 "type": "array", 767 "minItems": 1, 768 "not": 769 { 770 "items": 771 { "not": { "$ref": "#/definitions/viaPropertyFound" } } 772 } 773 } 774 }, 775 "required": ["items"] 776 }, 777 778 "sourceViaPropertyFound": 779 { 780 "$schema": "http://json-schema.org/draft-04/schema#", 781 "title": "Collate: Specific Resource source having via key", 782 "description": "Supports implementation check of via (if/when) used on Specific Resource source (Sections 3.2.1-6, 3.3)", 783 "type": "object", 784 "properties": 785 { 786 "source": 787 { 788 "type": "object", 789 "required": ["via"] , 790 "$ref": "#/definitions/viaValidIfPresent" 791 } 792 }, 793 "required": ["source"] 794 }, 795 796 "purposeRecognizedIfPresent": 797 { "$schema": "http://json-schema.org/draft-04/schema#", 798 "title": "Validation: purpose value", 799 "description": "True when the body has 0 or more purpose property values (Section 3.3.5)", 800 "type": "object", 801 "properties": {"purpose": 802 { "oneOf": [ 803 { "$ref": "annotations.json#/definitions/motivationList" }, 804 { "type": "array", 805 "minItems": 1, 806 "items": { "$ref": "annotations.json#/definitions/motivationList" } } 807 ] 808 } 809 } 810 }, 811 812 "purposePropertyFound": 813 { "$schema": "http://json-schema.org/draft-04/schema#", 814 "title": "Collate: purpose key with qualifying body classes", 815 "description": "Supports implementation check of purpose (if/when) used on Specific Resource Body or Textual Body (Sections 3.3.5)", 816 "oneOf": [ 817 {"$ref": "specificResource.json#/definitions/specificeResourceDetected"}, 818 {"$ref": "bodyTarget.json#/definitions/textualBodyFound"} 819 ], 820 "allOf": [ 821 {"required": ["purpose"]}, 822 {"$ref": "#/definitions/purposeRecognizedIfPresent"} 823 ] 824 }, 825 826 "itemPurposePropertyFound": 827 { 828 "$schema": "http://json-schema.org/draft-04/schema#", 829 "title": "Collate: items having purpose key with qualifying body/target classes", 830 "description": "Supports implementation check of items having purpose (if/when) used on Specific Resources, Textual Body Resources (Sections 3.2.1-6, 3.3)", 831 "type": "object", 832 "properties": 833 { 834 "items": 835 { 836 "type": "array", 837 "minItems": 1, 838 "not": 839 { 840 "items": 841 { "not": { "$ref": "#/definitions/purposePropertyFound" } } 842 } 843 } 844 }, 845 "required": ["items"] 846 }, 847 848 "creatorAgentWithIdFound": 849 { "type": "object", 850 "properties": 851 { "creator": 852 { "oneOf": 853 [ 854 { "$ref": "id.json#/definitions/idValueFound" }, 855 { "type": "array", 856 "minItems": 1, 857 "not": 858 { "items": { "not": { "$ref": "id.json#/definitions/idValueFound" } } } 859 } 860 ] 861 } 862 }, 863 "required": ["creator"] 864 }, 865 866 "sourceCreatorAgentWithIdFound": 867 { "type": "object", 868 "properties": 869 { 870 "source": 871 { "$ref": "#/definitions/creatorAgentWithIdFound" } 872 }, 873 "required": ["source"] 874 }, 875 876 "itemCreatorAgentWithIdFound": 877 { 878 "type": "object", 879 "properties": 880 { 881 "items": 882 { 883 "type": "array", 884 "minItems": 1, 885 "not": 886 { 887 "items": 888 { "not": { "$ref": "#/definitions/creatorAgentWithIdFound" } } 889 } 890 } 891 }, 892 "required": ["items"] 893 }, 894 895 "agentTypeDefinition": 896 { 897 "$schema": "http://json-schema.org/draft-04/schema#", 898 "title": "Definition: Agent type value", 899 "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)", 900 "type": "object", 901 "properties": 902 { 903 "type": 904 { 905 "oneOf": 906 [ 907 {"type": "string", 908 "enum": ["Person", "Organization", "Software"] }, 909 {"type": "array", 910 "minItems": 1, 911 "not": 912 { 913 "items" : 914 { "not": 915 { "type": "string", 916 "enum": ["Person", "Organization", "Software"] } 917 } 918 } 919 } 920 ] 921 } 922 } 923 }, 924 925 "agentTypeFound": 926 { 927 "$schema": "http://json-schema.org/draft-04/schema#", 928 "title": "Check for implementation of Agent type value", 929 "description": "True when the object (creator or generator agent) has at least one recognized Agent type value (Section 3.3.2)", 930 "allOf": [ 931 {"required": ["type"]}, 932 {"$ref": "#/definitions/agentTypeDefinition"} 933 ] 934 }, 935 936 "creatorAgentWithTypeFound": 937 { "type": "object", 938 "properties": 939 { "creator": 940 { "oneOf": 941 [ 942 { "$ref": "#/definitions/agentTypeFound" }, 943 { "type": "array", 944 "minItems": 1, 945 "not": 946 { "items": { "not": { "$ref": "#/definitions/agentTypeFound" } } } 947 } 948 ] 949 } 950 }, 951 "required": ["creator"] 952 }, 953 954 "sourceCreatorAgentWithTypeFound": 955 { "type": "object", 956 "properties": 957 { 958 "source": 959 { "$ref": "#/definitions/creatorAgentWithTypeFound" } 960 }, 961 "required": ["source"] 962 }, 963 964 "itemCreatorAgentWithTypeFound": 965 { 966 "type": "object", 967 "properties": 968 { 969 "items": 970 { 971 "type": "array", 972 "minItems": 1, 973 "not": 974 { 975 "items": 976 { "not": { "$ref": "#/definitions/creatorAgentWithTypeFound" } } 977 } 978 } 979 }, 980 "required": ["items"] 981 }, 982 983 "agentNameDefinition": 984 { 985 "$schema": "http://json-schema.org/draft-04/schema#", 986 "title": "Definition: Agent name value", 987 "description": "True when the object (creator or generator agent) has no name or has Agent name(s) of type string (Section 3.3.2)", 988 "type": "object", 989 "properties": 990 { 991 "name": 992 { 993 "oneOf": 994 [ 995 {"type": "string" }, 996 {"type": "array", 997 "minItems": 1, 998 "items": {"type": "string"} 999 } 1000 ] 1001 } 1002 } 1003 }, 1004 1005 "agentSingularNameDefinition": 1006 { 1007 "$schema": "http://json-schema.org/draft-04/schema#", 1008 "title": "Definition: Agent name value", 1009 "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)", 1010 "type": "object", 1011 "properties": 1012 { 1013 "name": 1014 { 1015 "oneOf": 1016 [ 1017 {"type": "string" }, 1018 {"type": "array", 1019 "minItems": 1, 1020 "maxItems": 1, 1021 "items": {"type": "string"} 1022 } 1023 ] 1024 } 1025 } 1026 }, 1027 1028 "agentNameFound": 1029 { 1030 "$schema": "http://json-schema.org/draft-04/schema#", 1031 "title": "Check for implementation of Agent name value", 1032 "description": "True when the object (creator or generator agent) has Agent name value(s) (Section 3.3.2)", 1033 "allOf": [ 1034 {"required": ["name"]}, 1035 {"$ref": "#/definitions/agentNameDefinition"} 1036 ] 1037 }, 1038 1039 "creatorAgentWithNameFound": 1040 { "type": "object", 1041 "properties": 1042 { "creator": 1043 { "oneOf": 1044 [ 1045 { "$ref": "#/definitions/agentNameFound" }, 1046 { "type": "array", 1047 "minItems": 1, 1048 "not": 1049 { "items": { "not": { "$ref": "#/definitions/agentNameFound" } } } 1050 } 1051 ] 1052 } 1053 }, 1054 "required": ["creator"] 1055 }, 1056 1057 "sourceCreatorAgentWithNameFound": 1058 { "type": "object", 1059 "properties": 1060 { 1061 "source": 1062 { "$ref": "#/definitions/creatorAgentWithNameFound" } 1063 }, 1064 "required": ["source"] 1065 }, 1066 1067 "itemCreatorAgentWithNameFound": 1068 { 1069 "type": "object", 1070 "properties": 1071 { 1072 "items": 1073 { 1074 "type": "array", 1075 "minItems": 1, 1076 "not": 1077 { 1078 "items": 1079 { "not": { "$ref": "#/definitions/creatorAgentWithNameFound" } } 1080 } 1081 } 1082 }, 1083 "required": ["items"] 1084 }, 1085 1086 "agentSingularNameFound": 1087 { 1088 "$schema": "http://json-schema.org/draft-04/schema#", 1089 "title": "Check for implementation of Agent name value", 1090 "description": "True when the object (creator or generator agent) has exactly one Agent name value (Section 3.3.2)", 1091 "allOf": [ 1092 {"required": ["name"]}, 1093 {"$ref": "#/definitions/agentSingularNameDefinition"} 1094 ] 1095 }, 1096 1097 "creatorAgentWithSingularNameFound": 1098 { "type": "object", 1099 "properties": 1100 { "creator": 1101 { "oneOf": 1102 [ 1103 { "$ref": "#/definitions/agentSingularNameFound" }, 1104 { "type": "array", 1105 "minItems": 1, 1106 "not": 1107 { "items": { "not": { "$ref": "#/definitions/agentSingularNameFound" } } } 1108 } 1109 ] 1110 } 1111 }, 1112 "required": ["creator"] 1113 }, 1114 1115 "sourceCreatorAgentWithSingularNameFound": 1116 { "type": "object", 1117 "properties": 1118 { 1119 "source": 1120 { "$ref": "#/definitions/creatorAgentWithSingularNameFound" } 1121 }, 1122 "required": ["source"] 1123 }, 1124 1125 "itemCreatorAgentWithSingularNameFound": 1126 { 1127 "type": "object", 1128 "properties": 1129 { 1130 "items": 1131 { 1132 "type": "array", 1133 "minItems": 1, 1134 "not": 1135 { 1136 "items": 1137 { "not": { "$ref": "#/definitions/creatorAgentWithSingularNameFound" } } 1138 } 1139 } 1140 }, 1141 "required": ["items"] 1142 }, 1143 1144 "agentSingularNicknameDefinition": 1145 { 1146 "$schema": "http://json-schema.org/draft-04/schema#", 1147 "title": "Definition: Agent nickname value", 1148 "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)", 1149 "type": "object", 1150 "properties": 1151 { 1152 "nickname": 1153 { 1154 "oneOf": 1155 [ 1156 {"type": "string" }, 1157 {"type": "array", 1158 "minItems": 1, 1159 "maxItems": 1, 1160 "items": {"type": "string"} 1161 } 1162 ] 1163 } 1164 } 1165 }, 1166 1167 "agentSingularNicknameFound": 1168 { 1169 "$schema": "http://json-schema.org/draft-04/schema#", 1170 "title": "Check for implementation of Agent nickname value", 1171 "description": "True when the object (creator or generator agent) has an Agent nickname value (Section 3.3.2)", 1172 "allOf": [ 1173 {"required": ["nickname"]}, 1174 {"$ref": "#/definitions/agentSingularNicknameDefinition"} 1175 ] 1176 }, 1177 1178 "creatorAgentWithSingularNicknameFound": 1179 { "type": "object", 1180 "properties": 1181 { "creator": 1182 { "oneOf": 1183 [ 1184 { "$ref": "#/definitions/agentSingularNicknameFound" }, 1185 { "type": "array", 1186 "minItems": 1, 1187 "not": 1188 { "items": { "not": { "$ref": "#/definitions/agentSingularNicknameFound" } } } 1189 } 1190 ] 1191 } 1192 }, 1193 "required": ["creator"] 1194 }, 1195 1196 "sourceCreatorAgentWithSingularNicknameFound": 1197 { "type": "object", 1198 "properties": 1199 { 1200 "source": 1201 { "$ref": "#/definitions/creatorAgentWithSingularNicknameFound" } 1202 }, 1203 "required": ["source"] 1204 }, 1205 1206 "itemCreatorAgentWithSingularNicknameFound": 1207 { 1208 "type": "object", 1209 "properties": 1210 { 1211 "items": 1212 { 1213 "type": "array", 1214 "minItems": 1, 1215 "not": 1216 { 1217 "items": 1218 { "not": { "$ref": "#/definitions/creatorAgentWithSingularNicknameFound" } } 1219 } 1220 } 1221 }, 1222 "required": ["items"] 1223 }, 1224 1225 "agentEmailDefinition": 1226 { 1227 "$schema": "http://json-schema.org/draft-04/schema#", 1228 "title": "Definition: Agent email value", 1229 "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)", 1230 "type": "object", 1231 "properties": 1232 { 1233 "email": 1234 { 1235 "oneOf": 1236 [ 1237 { "type": "string", 1238 "pattern": "^(mailto)", 1239 "format": "uri" }, 1240 {"type": "array", 1241 "minItems": 1, 1242 "items": {"type": "string", 1243 "pattern": "^(mailto)", 1244 "format": "uri" } 1245 } 1246 ] 1247 } 1248 } 1249 }, 1250 1251 "agentEmailFound": 1252 { 1253 "$schema": "http://json-schema.org/draft-04/schema#", 1254 "title": "Check for implementation of Agent email value", 1255 "description": "True when the object (creator or generator agent) has Agent email value(s) (Section 3.3.2)", 1256 "allOf": [ 1257 {"required": ["email"]}, 1258 {"$ref": "#/definitions/agentEmailDefinition"} 1259 ] 1260 }, 1261 1262 "creatorAgentWithEmailFound": 1263 { "type": "object", 1264 "properties": 1265 { "creator": 1266 { "oneOf": 1267 [ 1268 { "$ref": "#/definitions/agentEmailFound" }, 1269 { "type": "array", 1270 "minItems": 1, 1271 "not": 1272 { "items": { "not": { "$ref": "#/definitions/agentEmailFound" } } } 1273 } 1274 ] 1275 } 1276 }, 1277 "required": ["creator"] 1278 }, 1279 1280 "sourceCreatorAgentWithEmailFound": 1281 { "type": "object", 1282 "properties": 1283 { 1284 "source": 1285 { "$ref": "#/definitions/creatorAgentWithEmailFound" } 1286 }, 1287 "required": ["source"] 1288 }, 1289 1290 "itemCreatorAgentWithEmailFound": 1291 { 1292 "type": "object", 1293 "properties": 1294 { 1295 "items": 1296 { 1297 "type": "array", 1298 "minItems": 1, 1299 "not": 1300 { 1301 "items": 1302 { "not": { "$ref": "#/definitions/creatorAgentWithEmailFound" } } 1303 } 1304 } 1305 }, 1306 "required": ["items"] 1307 }, 1308 1309 "agentEmail_sha1Definition": 1310 { 1311 "$schema": "http://json-schema.org/draft-04/schema#", 1312 "title": "Definition: Agent email_sha1 value", 1313 "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)", 1314 "type": "object", 1315 "properties": 1316 { 1317 "email_sha1": 1318 { 1319 "oneOf": 1320 [ 1321 {"type": "string" }, 1322 {"type": "array", 1323 "minItems": 1, 1324 "items": {"type": "string"} 1325 } 1326 ] 1327 } 1328 } 1329 }, 1330 1331 "agentEmail_sha1Found": 1332 { 1333 "$schema": "http://json-schema.org/draft-04/schema#", 1334 "title": "Check for implementation of Agent email_sha1 value", 1335 "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)", 1336 "allOf": [ 1337 {"required": ["email_sha1"]}, 1338 {"$ref": "#/definitions/agentEmail_sha1Definition"} 1339 ] 1340 }, 1341 1342 "creatorAgentWithEmail_sha1Found": 1343 { "type": "object", 1344 "properties": 1345 { "creator": 1346 { "oneOf": 1347 [ 1348 { "$ref": "#/definitions/agentEmail_sha1Found" }, 1349 { "type": "array", 1350 "minItems": 1, 1351 "not": 1352 { "items": { "not": { "$ref": "#/definitions/agentEmail_sha1Found" } } } 1353 } 1354 ] 1355 } 1356 }, 1357 "required": ["creator"] 1358 }, 1359 1360 "sourceCreatorAgentWithEmail_sha1Found": 1361 { "type": "object", 1362 "properties": 1363 { 1364 "source": 1365 { "$ref": "#/definitions/creatorAgentWithEmail_sha1Found" } 1366 }, 1367 "required": ["source"] 1368 }, 1369 1370 "itemCreatorAgentWithEmail_sha1Found": 1371 { 1372 "type": "object", 1373 "properties": 1374 { 1375 "items": 1376 { 1377 "type": "array", 1378 "minItems": 1, 1379 "not": 1380 { 1381 "items": 1382 { "not": { "$ref": "#/definitions/creatorAgentWithEmail_sha1Found" } } 1383 } 1384 } 1385 }, 1386 "required": ["items"] 1387 }, 1388 1389 "agentHomepageDefinition": 1390 { 1391 "$schema": "http://json-schema.org/draft-04/schema#", 1392 "title": "Definition: Agent homepage value", 1393 "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)", 1394 "type": "object", 1395 "properties": 1396 { 1397 "email": 1398 { 1399 "oneOf": 1400 [ 1401 { "type": "string", 1402 "format": "uri" }, 1403 {"type": "array", 1404 "minItems": 1, 1405 "items": {"type": "string", 1406 "format": "uri" } 1407 } 1408 ] 1409 } 1410 } 1411 }, 1412 1413 "agentHomepageFound": 1414 { 1415 "$schema": "http://json-schema.org/draft-04/schema#", 1416 "title": "Check for implementation of Agent homepage value", 1417 "description": "True when the object (creator or generator agent) has Agent homepage value(s) (Section 3.3.2)", 1418 "allOf": [ 1419 {"required": ["homepage"]}, 1420 {"$ref": "#/definitions/agentHomepageDefinition"} 1421 ] 1422 }, 1423 1424 "creatorAgentWithHomepageFound": 1425 { "type": "object", 1426 "properties": 1427 { "creator": 1428 { "oneOf": 1429 [ 1430 { "$ref": "#/definitions/agentHomepageFound" }, 1431 { "type": "array", 1432 "minItems": 1, 1433 "not": 1434 { "items": { "not": { "$ref": "#/definitions/agentHomepageFound" } } } 1435 } 1436 ] 1437 } 1438 }, 1439 "required": ["creator"] 1440 }, 1441 1442 "sourceCreatorAgentWithHomepageFound": 1443 { "type": "object", 1444 "properties": 1445 { 1446 "source": 1447 { "$ref": "#/definitions/creatorAgentWithHomepageFound" } 1448 }, 1449 "required": ["source"] 1450 }, 1451 1452 "itemCreatorAgentWithHomepageFound": 1453 { 1454 "type": "object", 1455 "properties": 1456 { 1457 "items": 1458 { 1459 "type": "array", 1460 "minItems": 1, 1461 "not": 1462 { 1463 "items": 1464 { "not": { "$ref": "#/definitions/creatorAgentWithHomepageFound" } } 1465 } 1466 } 1467 }, 1468 "required": ["items"] 1469 } 1470 1471 } 1472 }