{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "PROV Agent object schema",
  "$defs": {
    "dateTime": {
      "type": "string",
      "format": "date-time",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})?$"
    },
    "AgentTypes": {
      "type": "string",
      "enum": [
        "Agent",
        "Organization",
        "Person",
        "SoftwareAgent",
        "SoftwareDescription",
        "DirectQueryService",
        "prov:Agent",
        "prov:Organization",
        "prov:Person",
        "prov:SoftwareAgent",
        "prov:SoftwareDescription",
        "prov:DirectQueryService"
      ]
    },
    "AgentType": {
      "oneOf": [
        {
          "$ref": "#/$defs/AgentTypes"
        },
        {
          "type": "array",
          "items": {
            "contains": {
              "$ref": "#/$defs/AgentTypes"
            }
          }
        }
      ]
    },
    "Agent": {
      "$anchor": "Agent",
      "type": "object",
      "properties": {
        "agentType": {
          "$ref": "https://ogcincubator.github.io/bblock-prov-schema/build/annotated/ogc-utils/prov/schema.json#oneOrMoreObjectref",
          "x-jsonld-id": "@type"
        },
        "provType": {
          "$ref": "#/$defs/AgentType",
          "x-jsonld-id": "@type"
        },
        "prov:type": {
          "$ref": "#/$defs/AgentType",
          "x-jsonld-id": "http://www.w3.org/ns/prov#type"
        },
        "name": {
          "type": "string",
          "x-jsonld-id": "http://www.w3.org/2000/01/rdf-schema#label"
        },
        "id": {
          "$ref": "https://ogcincubator.github.io/bblock-prov-schema/build/annotated/ogc-utils/prov/schema.json#objectref",
          "x-jsonld-id": "@id"
        },
        "actedOnBehalfOf": {
          "$ref": "https://ogcincubator.github.io/bblock-prov-schema/build/annotated/ogc-utils/prov/schema.json#oneOrMoreAgentsOrRefIds",
          "x-jsonld-id": "http://www.w3.org/ns/prov#actedOnBehalfOf",
          "x-jsonld-type": "@id"
        },
        "atLocation": {
          "$ref": "https://ogcincubator.github.io/bblock-prov-schema/build/annotated/ogc-utils/prov/schema.json#objectref",
          "x-jsonld-id": "http://www.w3.org/ns/prov#atLocation",
          "x-jsonld-type": "@id"
        },
        "qualifiedDelegation": {
          "oneOf": [
            {
              "$ref": "https://ogcincubator.github.io/bblock-prov-schema/build/annotated/ogc-utils/prov/schema.json#objectref"
            },
            {
              "$ref": "https://ogcincubator.github.io/bblock-prov-schema/build/annotated/ogc-utils/prov-activity/schema.json#Delegation"
            },
            {
              "type": "array",
              "items": {
                "oneOf": [
                  {
                    "$ref": "https://ogcincubator.github.io/bblock-prov-schema/build/annotated/ogc-utils/prov/schema.json#objectref"
                  },
                  {
                    "$ref": "https://ogcincubator.github.io/bblock-prov-schema/build/annotated/ogc-utils/prov-activity/schema.json#Delegation"
                  }
                ]
              }
            }
          ],
          "x-jsonld-id": "http://www.w3.org/ns/prov#qualifiedDelegation",
          "x-jsonld-type": "@id"
        }
      },
      "anyOf": [
        {
          "required": [
            "name"
          ]
        },
        {
          "required": [
            "id"
          ]
        }
      ],
      "allOf": [
        {
          "$ref": "https://ogcincubator.github.io/bblock-prov-schema/build/annotated/ogc-utils/prov/schema.json#influenced"
        }
      ]
    },
    "Association": {
      "$anchor": "Association",
      "type": "object",
      "properties": {
        "id": {
          "$ref": "https://ogcincubator.github.io/bblock-prov-schema/build/annotated/ogc-utils/prov/schema.json#objectref",
          "x-jsonld-id": "@id"
        },
        "type": {
          "oneOf": [
            {
              "type": "string",
              "const": "Association"
            },
            {
              "type": "array",
              "contains": {
                "type": "string",
                "const": "Association"
              },
              "items": {
                "type": "string"
              }
            }
          ]
        },
        "agent": {
          "oneOf": [
            {
              "$ref": "https://ogcincubator.github.io/bblock-prov-schema/build/annotated/ogc-utils/prov/schema.json#objectref"
            },
            {
              "$ref": "#/$defs/Agent"
            }
          ],
          "x-jsonld-id": "http://www.w3.org/ns/prov#agent",
          "x-jsonld-type": "@id"
        },
        "hadRole": {
          "$ref": "https://ogcincubator.github.io/bblock-prov-schema/build/annotated/ogc-utils/prov/schema.json#oneOrMoreObjectref",
          "x-jsonld-id": "http://www.w3.org/ns/prov#hadRole",
          "x-jsonld-type": "@id"
        },
        "hadPlan": {
          "$ref": "https://ogcincubator.github.io/bblock-prov-schema/build/annotated/ogc-utils/prov/schema.json#oneOrMoreObjectref",
          "x-jsonld-id": "http://www.w3.org/ns/prov#hadPlan",
          "x-jsonld-type": "@id"
        }
      }
    }
  },
  "anyOf": [
    {
      "$ref": "#/$defs/Agent"
    }
  ],
  "x-jsonld-extra-terms": {
    "activityType": "@type",
    "entityType": "@type",
    "featureType": "@type",
    "Activity": "http://www.w3.org/ns/prov#Activity",
    "ActivityInfluence": "http://www.w3.org/ns/prov#ActivityInfluence",
    "Agent": "http://www.w3.org/ns/prov#Agent",
    "AgentInfluence": "http://www.w3.org/ns/prov#AgentInfluence",
    "Association": "http://www.w3.org/ns/prov#Association",
    "Attribution": "http://www.w3.org/ns/prov#Attribution",
    "Bundle": "http://www.w3.org/ns/prov#Bundle",
    "Collection": "http://www.w3.org/ns/prov#Collection",
    "Communication": "http://www.w3.org/ns/prov#Communication",
    "Delegation": "http://www.w3.org/ns/prov#Delegation",
    "Derivation": "http://www.w3.org/ns/prov#Derivation",
    "EmptyCollection": "http://www.w3.org/ns/prov#EmptyCollection",
    "End": "http://www.w3.org/ns/prov#End",
    "Entity": "http://www.w3.org/ns/prov#Entity",
    "EntityInfluence": "http://www.w3.org/ns/prov#EntityInfluence",
    "Generation": "http://www.w3.org/ns/prov#Generation",
    "Influence": "http://www.w3.org/ns/prov#Influence",
    "InstantaneousEvent": "http://www.w3.org/ns/prov#InstantaneousEvent",
    "Invalidation": "http://www.w3.org/ns/prov#Invalidation",
    "Location": "http://www.w3.org/ns/prov#Location",
    "Organization": "http://www.w3.org/ns/prov#Organization",
    "Person": "http://www.w3.org/ns/prov#Person",
    "Plan": "http://www.w3.org/ns/prov#Plan",
    "PrimarySource": "http://www.w3.org/ns/prov#PrimarySource",
    "Quotation": "http://www.w3.org/ns/prov#Quotation",
    "Revision": "http://www.w3.org/ns/prov#Revision",
    "Role": "http://www.w3.org/ns/prov#Role",
    "SoftwareAgent": "http://www.w3.org/ns/prov#SoftwareAgent",
    "Start": "http://www.w3.org/ns/prov#Start",
    "Usage": "http://www.w3.org/ns/prov#Usage",
    "ServiceDescription": "http://www.w3.org/ns/prov#ServiceDescription",
    "DirectQueryService": "http://www.w3.org/ns/prov#DirectQueryService",
    "Accept": "http://www.w3.org/ns/prov#Accept",
    "Contribute": "http://www.w3.org/ns/prov#Contribute",
    "Contributor": "http://www.w3.org/ns/prov#Contributor",
    "Copyright": "http://www.w3.org/ns/prov#Copyright",
    "Create": "http://www.w3.org/ns/prov#Create",
    "Creator": "http://www.w3.org/ns/prov#Creator",
    "Modify": "http://www.w3.org/ns/prov#Modify",
    "Publish": "http://www.w3.org/ns/prov#Publish",
    "Publisher": "http://www.w3.org/ns/prov#Publisher",
    "Replace": "http://www.w3.org/ns/prov#Replace",
    "RightsAssignment": "http://www.w3.org/ns/prov#RightsAssignment",
    "RightsHolder": "http://www.w3.org/ns/prov#RightsHolder",
    "Submit": "http://www.w3.org/ns/prov#Submit",
    "Dictionary": "http://www.w3.org/ns/prov#Dictionary",
    "EmptyDictionary": "http://www.w3.org/ns/prov#EmptyDictionary",
    "KeyEntityPair": "http://www.w3.org/ns/prov#KeyEntityPair",
    "Insertion": "http://www.w3.org/ns/prov#Insertion",
    "Removal": "http://www.w3.org/ns/prov#Removal",
    "atTime": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#atTime",
      "x-jsonld-type": "http://www.w3.org/2001/XMLSchema#dateTime"
    },
    "endedAtTime": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#endedAtTime",
      "x-jsonld-type": "http://www.w3.org/2001/XMLSchema#dateTime"
    },
    "generatedAtTime": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#generatedAtTime",
      "x-jsonld-type": "http://www.w3.org/2001/XMLSchema#dateTime"
    },
    "invalidatedAtTime": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#invalidatedAtTime",
      "x-jsonld-type": "http://www.w3.org/2001/XMLSchema#dateTime"
    },
    "startedAtTime": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#startedAtTime",
      "x-jsonld-type": "http://www.w3.org/2001/XMLSchema#dateTime"
    },
    "value": "http://www.w3.org/ns/prov#value",
    "provenanceUriTemplate": "http://www.w3.org/ns/prov#provenanceUriTemplate",
    "pairKey": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#pairKey",
      "x-jsonld-type": "http://www.w3.org/2000/01/rdf-schema#Literal"
    },
    "removedKey": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#removedKey",
      "x-jsonld-type": "http://www.w3.org/2000/01/rdf-schema#Literal"
    },
    "agent": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#agent",
      "x-jsonld-type": "@id"
    },
    "alternateOf": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#alternateOf",
      "x-jsonld-type": "@id"
    },
    "entity": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#entity",
      "x-jsonld-type": "@id"
    },
    "generated": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#generated",
      "x-jsonld-type": "@id"
    },
    "hadActivity": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#hadActivity",
      "x-jsonld-type": "@id"
    },
    "activity": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#activity",
      "x-jsonld-type": "@id"
    },
    "hadGeneration": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#hadGeneration",
      "x-jsonld-type": "@id"
    },
    "hadMember": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#hadMember",
      "x-jsonld-type": "@id"
    },
    "hadPlan": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#hadPlan",
      "x-jsonld-type": "@id"
    },
    "hadPrimarySource": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#hadPrimarySource",
      "x-jsonld-type": "@id"
    },
    "hadRole": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#hadRole",
      "x-jsonld-type": "@id"
    },
    "hadUsage": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#hadUsage",
      "x-jsonld-type": "@id"
    },
    "influenced": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#influenced",
      "x-jsonld-type": "@id"
    },
    "influencer": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#influencer",
      "x-jsonld-type": "@id"
    },
    "invalidated": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#invalidated",
      "x-jsonld-type": "@id"
    },
    "qualifiedAssociation": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#qualifiedAssociation",
      "x-jsonld-type": "@id"
    },
    "qualifiedAttribution": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#qualifiedAttribution",
      "x-jsonld-type": "@id"
    },
    "qualifiedCommunication": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#qualifiedCommunication",
      "x-jsonld-type": "@id"
    },
    "qualifiedDerivation": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#qualifiedDerivation",
      "x-jsonld-type": "@id"
    },
    "qualifiedEnd": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#qualifiedEnd",
      "x-jsonld-type": "@id"
    },
    "qualifiedGeneration": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#qualifiedGeneration",
      "x-jsonld-type": "@id"
    },
    "qualifiedInfluence": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#qualifiedInfluence",
      "x-jsonld-type": "@id"
    },
    "qualifiedInvalidation": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#qualifiedInvalidation",
      "x-jsonld-type": "@id"
    },
    "qualifiedPrimarySource": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#qualifiedPrimarySource",
      "x-jsonld-type": "@id"
    },
    "qualifiedQuotation": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#qualifiedQuotation",
      "x-jsonld-type": "@id"
    },
    "qualifiedRevision": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#qualifiedRevision",
      "x-jsonld-type": "@id"
    },
    "qualifiedStart": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#qualifiedStart",
      "x-jsonld-type": "@id"
    },
    "qualifiedUsage": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#qualifiedUsage",
      "x-jsonld-type": "@id"
    },
    "specializationOf": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#specializationOf",
      "x-jsonld-type": "@id"
    },
    "used": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#used",
      "x-jsonld-type": "@id"
    },
    "wasAssociatedWith": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#wasAssociatedWith",
      "x-jsonld-type": "@id"
    },
    "wasAttributedTo": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#wasAttributedTo",
      "x-jsonld-type": "@id"
    },
    "wasDerivedFrom": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#wasDerivedFrom",
      "x-jsonld-type": "@id"
    },
    "wasEndedBy": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#wasEndedBy",
      "x-jsonld-type": "@id"
    },
    "wasGeneratedBy": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#wasGeneratedBy",
      "x-jsonld-type": "@id"
    },
    "wasInfluencedBy": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#wasInfluencedBy",
      "x-jsonld-type": "@id"
    },
    "wasInformedBy": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#wasInformedBy",
      "x-jsonld-type": "@id"
    },
    "wasInvalidatedBy": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#wasInvalidatedBy",
      "x-jsonld-type": "@id"
    },
    "wasQuotedFrom": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#wasQuotedFrom",
      "x-jsonld-type": "@id"
    },
    "wasRevisionOf": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#wasRevisionOf",
      "x-jsonld-type": "@id"
    },
    "wasStartedBy": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#wasStartedBy",
      "x-jsonld-type": "@id"
    },
    "has_anchor": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#has_anchor",
      "x-jsonld-type": "@id"
    },
    "has_provenance": {
      "x-jsonld-id": "http://purl.org/dc/terms/provenance",
      "x-jsonld-type": "@id"
    },
    "has_query_service": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#has_query_service",
      "x-jsonld-type": "@id"
    },
    "describesService": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#describesService",
      "x-jsonld-type": "@id"
    },
    "pingback": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#pingback",
      "x-jsonld-type": "@id"
    },
    "dictionary": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#dictionary",
      "x-jsonld-type": "@id"
    },
    "derivedByInsertionFrom": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#derivedByInsertionFrom",
      "x-jsonld-type": "@id"
    },
    "derivedByRemovalFrom": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#derivedByRemovalFrom",
      "x-jsonld-type": "@id"
    },
    "insertedKeyEntityPair": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#insertedKeyEntityPair",
      "x-jsonld-type": "@id"
    },
    "hadDictionaryMember": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#hadDictionaryMember",
      "x-jsonld-type": "@id"
    },
    "pairEntity": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#pairEntity",
      "x-jsonld-type": "@id"
    },
    "qualifiedInsertion": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#qualifiedInsertion",
      "x-jsonld-type": "@id"
    },
    "qualifiedRemoval": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#qualifiedRemoval",
      "x-jsonld-type": "@id"
    },
    "asInBundle": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#asInBundle",
      "x-jsonld-type": "@id"
    },
    "mentionOf": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#mentionOf",
      "x-jsonld-type": "@id"
    },
    "links": "http://www.w3.org/2000/01/rdf-schema#seeAlso"
  },
  "x-jsonld-prefixes": {
    "prov": "http://www.w3.org/ns/prov#",
    "xsd": "http://www.w3.org/2001/XMLSchema#",
    "rdfs": "http://www.w3.org/2000/01/rdf-schema#",
    "dct": "http://purl.org/dc/terms/",
    "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  }
}