{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "FCM solver workflow",
  "description": "SeaDOTs Catalog Workflow profile for the fuzzy-cognitive-map solver of FuzzyCognitiveMapTools.jl: the record that makes the solver discoverable as the step between a map (input) and its solutions or sequences (output).\nThe profile exists for one reason. A map is self-contained -- it carries its own activation specification -- so the ONLY thing that distinguishes one run from another is a set of parameters that live exclusively as Julia keyword arguments and are serialised nowhere. Without them a solution is not reproducible. The `solver` object declares them, together with the two things a consumer cannot discover from the data model: which activation functions are actually implemented, and which inference rule is applied.\n",
  "allOf": [
    {
      "$ref": "https://ogcincubator.github.io/bblocks-seadots/build/annotated/hosted/seadots/catalog-workflow/schema.json"
    }
  ],
  "properties": {
    "properties": {
      "type": "object",
      "required": [
        "solver"
      ],
      "properties": {
        "type": {
          "const": "Workflow",
          "x-jsonld-id": "@type"
        },
        "solver": {
          "type": "object",
          "description": "What this solver does and how it may be parameterised. Values reflect FuzzyCognitiveMapTools.jl v0.1.0 and should be re-checked against the release the record describes.\n",
          "required": [
            "inferenceRule",
            "supportedActivation"
          ],
          "properties": {
            "inferenceRule": {
              "type": "string",
              "enum": [
                "kosko"
              ],
              "description": "The update applied at each iteration. Only `kosko` -- classic f(transpose(W) x) -- exists: it is hard-coded in `single_fcm_trial` with no parameter to select another. Declared as an enum rather than a constant so that a record describing a later release can say something different without a schema change.\n",
              "x-jsonld-id": "https://w3id.org/ogc/hosted/seadots/fcm/inferenceRule",
              "x-jsonld-type": "@vocab"
            },
            "supportedActivation": {
              "type": "array",
              "minItems": 1,
              "uniqueItems": true,
              "description": "Concepts of ogc.hosted.seadots.fcm-activation-scheme this solver can actually execute. A map whose `activation_spec.label` resolves outside this list will be rejected at load time -- `to_proc` raises \"Unknown activation function\".\nThe three listed below are the whole of v0.1.0. Note that the upstream label \"gaussian\" appears here as `logistic-of-square`, because that is what the implementation computes; see the activation scheme block.\n",
              "items": {
                "type": "string",
                "enum": [
                  "https://w3id.org/ogc/hosted/seadots/fcm/activation/logistic",
                  "https://w3id.org/ogc/hosted/seadots/fcm/activation/logistic-of-square",
                  "https://w3id.org/ogc/hosted/seadots/fcm/activation/offset"
                ]
              },
              "x-jsonld-id": "https://w3id.org/ogc/hosted/seadots/fcm/supportsActivation",
              "x-jsonld-type": "@id",
              "x-jsonld-container": "@set"
            },
            "executionParameters": {
              "type": "object",
              "description": "The parameters that are NOT in any serialised artefact. Each carries the default compiled into v0.1.0; a record for a specific run should state the value actually used. See description.md on why several of these cannot currently be set at all through the public entry point.\n",
              "properties": {
                "numTrials": {
                  "type": "integer",
                  "minimum": 1,
                  "default": 1000,
                  "description": "Number of randomly-started trials clustered into equilibria (`run_trials`)."
                },
                "x0Range": {
                  "$ref": "#/$defs/Interval",
                  "default": [
                    0.0,
                    1.0
                  ],
                  "description": "Range the random initial state is drawn from."
                },
                "x0ClampRange": {
                  "$ref": "#/$defs/Interval",
                  "default": [
                    0.1,
                    0.9
                  ],
                  "description": "Range the initial state is clamped to after sampling. Note this is NARROWER than `x0Range`, so the extremes of the sampling range are never actually explored.\n"
                },
                "maxIterations": {
                  "type": "integer",
                  "minimum": 1,
                  "default": 100,
                  "description": "Iteration cap per trial. A trial that hits it is NOT discarded; see description.md.\n"
                },
                "convergenceTolerance": {
                  "type": "number",
                  "exclusiveMinimum": 0,
                  "default": 1e-10,
                  "description": "Residual below which a trial is declared converged."
                },
                "clusteringTolerance": {
                  "type": "number",
                  "exclusiveMinimum": 0,
                  "default": 1e-06,
                  "description": "Distance within which two trial endpoints are treated as the same equilibrium. Must be larger than the supremum of the terminal residual, per the upstream docstring.\n"
                }
              },
              "additionalProperties": false
            },
            "refinement": {
              "type": "object",
              "description": "Optional second pass that re-solves from each cluster mean to sharpen the centroid (`refine_centroid_fcm`). It runs with its own hard-coded settings, which differ from the trial settings above.\n",
              "properties": {
                "enabled": {
                  "type": "boolean",
                  "default": false
                },
                "maxIterations": {
                  "type": "integer",
                  "default": 3000
                },
                "convergenceTolerance": {
                  "type": "number",
                  "default": 1e-13
                },
                "x0ClampRange": {
                  "$ref": "#/$defs/Interval",
                  "default": [
                    0.0,
                    1.0
                  ]
                },
                "checkTolerance": {
                  "type": "number",
                  "default": 1e-06,
                  "description": "A refined centroid further than this from the cluster mean is an error, not a warning: the run aborts.\n"
                }
              },
              "additionalProperties": false
            },
            "stochasticMapsSupported": {
              "type": "boolean",
              "default": false,
              "description": "Whether the solver accepts maps with distribution-valued edge weights. False for v0.1.0, which has no serialisation for them at all.\n",
              "x-jsonld-id": "https://w3id.org/ogc/hosted/seadots/fcm/supportsStochasticMaps",
              "x-jsonld-type": "http://www.w3.org/2001/XMLSchema#boolean"
            }
          },
          "additionalProperties": true,
          "x-jsonld-id": "https://w3id.org/ogc/hosted/seadots/fcm/solverCapability"
        }
      },
      "x-jsonld-id": "@nest"
    }
  },
  "$defs": {
    "Interval": {
      "type": "array",
      "description": "A closed interval [lower, upper], serialised as a two-element array.",
      "minItems": 2,
      "maxItems": 2,
      "items": {
        "type": "number"
      }
    }
  },
  "x-jsonld-extra-terms": {
    "Feature": "https://purl.org/geojson/vocab#Feature",
    "FeatureCollection": "https://purl.org/geojson/vocab#FeatureCollection",
    "GeometryCollection": "https://purl.org/geojson/vocab#GeometryCollection",
    "LineString": "https://purl.org/geojson/vocab#LineString",
    "MultiLineString": "https://purl.org/geojson/vocab#MultiLineString",
    "MultiPoint": "https://purl.org/geojson/vocab#MultiPoint",
    "MultiPolygon": "https://purl.org/geojson/vocab#MultiPolygon",
    "Point": "https://purl.org/geojson/vocab#Point",
    "Polygon": "https://purl.org/geojson/vocab#Polygon",
    "features": {
      "x-jsonld-container": "@set",
      "x-jsonld-id": "https://purl.org/geojson/vocab#features"
    },
    "id": "@id",
    "geometry": {
      "x-jsonld-context": {
        "coordinates": {
          "@container": "@list",
          "@id": "https://purl.org/geojson/vocab#coordinates"
        }
      },
      "x-jsonld-id": "https://purl.org/geojson/vocab#geometry"
    },
    "bbox": {
      "x-jsonld-container": "@list",
      "x-jsonld-id": "https://purl.org/geojson/vocab#bbox"
    },
    "links": {
      "x-jsonld-context": {
        "rel": {
          "@context": {
            "@base": "http://www.iana.org/assignments/relation/"
          },
          "@id": "http://www.iana.org/assignments/relation",
          "@type": "@id"
        },
        "type": "http://purl.org/dc/terms/type",
        "hreflang": "http://purl.org/dc/terms/language",
        "title": "http://www.w3.org/2000/01/rdf-schema#label",
        "length": "http://purl.org/dc/terms/extent"
      },
      "x-jsonld-id": "http://www.w3.org/2000/01/rdf-schema#seeAlso"
    },
    "conformsTo": {
      "x-jsonld-container": "@set",
      "x-jsonld-id": "http://purl.org/dc/terms/conformsTo",
      "x-jsonld-type": "@id"
    },
    "time": "http://purl.org/dc/terms/temporal",
    "linkTemplates": {
      "x-jsonld-context": {
        "rel": {
          "@context": {
            "@base": "http://www.iana.org/assignments/relation/"
          },
          "@id": "http://www.iana.org/assignments/relation",
          "@type": "@id"
        },
        "type": "http://purl.org/dc/terms/format",
        "hreflang": "http://purl.org/dc/terms/language",
        "title": "http://www.w3.org/2000/01/rdf-schema#label",
        "length": "http://purl.org/dc/terms/extent",
        "uriTemplate": {
          "@type": "http://www.w3.org/2001/XMLSchema#string",
          "@id": "https://www.opengis.net/def/ogc-api/records/uriTemplate"
        },
        "varBase": "https://www.opengis.net/def/ogc-api/records/varBase",
        "variables": {
          "@id": "https://www.opengis.net/def/ogc-api/records/hasVariable",
          "@container": "@index",
          "@index": "http://purl.org/dc/terms/identifier"
        }
      },
      "x-jsonld-id": "https://www.opengis.net/def/ogc-api/records/hasLinkTemplate"
    },
    "created": "http://purl.org/dc/terms/created",
    "updated": "http://purl.org/dc/terms/modified",
    "title": {
      "x-jsonld-container": "@set",
      "x-jsonld-id": "http://purl.org/dc/terms/title"
    },
    "description": {
      "x-jsonld-container": "@set",
      "x-jsonld-id": "http://purl.org/dc/terms/description"
    },
    "keywords": {
      "x-jsonld-container": "@set",
      "x-jsonld-id": "http://www.w3.org/ns/dcat#keyword"
    },
    "language": {
      "x-jsonld-id": "https://www.opengis.net/def/ogc-api/records/language",
      "x-jsonld-context": {
        "code": "https://www.opengis.net/def/ogc-api/records/languageCode",
        "name": "http://www.w3.org/2004/02/skos/core#prefLabel"
      }
    },
    "languages": {
      "x-jsonld-container": "@set",
      "x-jsonld-id": "https://www.opengis.net/def/ogc-api/records/languages",
      "x-jsonld-context": {
        "code": "https://www.opengis.net/def/ogc-api/records/languageCode",
        "name": "http://www.w3.org/2004/02/skos/core#prefLabel"
      }
    },
    "resourceLanguages": {
      "x-jsonld-container": "@set",
      "x-jsonld-id": "https://www.opengis.net/def/ogc-api/records/resourceLanguages",
      "x-jsonld-context": {
        "code": "https://www.opengis.net/def/ogc-api/records/languageCode",
        "name": "http://www.w3.org/2004/02/skos/core#prefLabel"
      }
    },
    "externalIds": {
      "x-jsonld-container": "@set",
      "x-jsonld-id": "https://www.opengis.net/def/ogc-api/records/scopedIdentifier",
      "x-jsonld-context": {
        "scheme": "https://www.opengis.net/def/ogc-api/records/scheme",
        "value": "https://www.opengis.net/def/ogc-api/records/id"
      }
    },
    "themes": {
      "x-jsonld-container": "@set",
      "x-jsonld-id": "https://www.opengis.net/def/ogc-api/records/themes",
      "x-jsonld-context": {
        "concepts": {
          "@id": "https://www.opengis.net/def/ogc-api/records/concept",
          "@context": {
            "id": {
              "@type": "http://www.w3.org/2001/XMLSchema#string",
              "@id": "https://www.opengis.net/def/ogc-api/records/conceptID"
            },
            "url": {
              "@type": "@id",
              "@id": "http://www.w3.org/ns/dcat#theme"
            }
          }
        },
        "scheme": "https://www.opengis.net/def/ogc-api/records/scheme"
      }
    },
    "formats": {
      "x-jsonld-id": "https://www.opengis.net/def/ogc-api/records/format",
      "x-jsonld-context": {
        "name": "https://www.opengis.net/def/ogc-api/records/name"
      }
    },
    "contacts": {
      "x-jsonld-container": "@set",
      "x-jsonld-id": "http://www.w3.org/ns/dcat#contactPoint",
      "x-jsonld-type": "@id"
    },
    "license": "http://purl.org/dc/terms/license",
    "accessrights": "http://purl.org/dc/terms/accessRights",
    "variables": {
      "x-jsonld-container": "@id",
      "x-jsonld-id": "https://www.opengis.net/def/ogc-api/records/hasVariable",
      "x-jsonld-context": {
        "@base": "http://example.com/variables/",
        "@vocab": "https://www.opengis.net/def/ogc-api/records/"
      }
    },
    "wasInfluencedBy": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#wasInfluencedBy",
      "x-jsonld-type": "@id"
    },
    "qualifiedInfluence": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#qualifiedInfluence",
      "x-jsonld-type": "@id"
    },
    "hadMember": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#hadMember",
      "x-jsonld-type": "@id"
    },
    "provType": "@type",
    "featureType": "@type",
    "entityType": "@type",
    "has_provenance": {
      "x-jsonld-id": "http://purl.org/dc/terms/provenance",
      "x-jsonld-type": "@id"
    },
    "wasGeneratedBy": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#wasGeneratedBy",
      "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"
    },
    "alternateOf": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#alternateOf",
      "x-jsonld-type": "@id"
    },
    "hadPrimarySource": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#hadPrimarySource",
      "x-jsonld-type": "@id"
    },
    "specializationOf": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#specializationOf",
      "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"
    },
    "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"
    },
    "value": "http://www.w3.org/ns/prov#value",
    "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"
    },
    "atLocation": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#atLocation",
      "x-jsonld-type": "@id"
    },
    "qualifiedGeneration": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#qualifiedGeneration",
      "x-jsonld-type": "@id"
    },
    "qualifiedInvalidation": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#qualifiedInvalidation",
      "x-jsonld-type": "@id"
    },
    "qualifiedDerivation": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#qualifiedDerivation",
      "x-jsonld-type": "@id"
    },
    "qualifiedAttribution": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#qualifiedAttribution",
      "x-jsonld-type": "@id"
    },
    "activityType": "@type",
    "agentType": "@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"
    },
    "startedAtTime": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#startedAtTime",
      "x-jsonld-type": "http://www.w3.org/2001/XMLSchema#dateTime"
    },
    "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"
    },
    "actedOnBehalfOf": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#actedOnBehalfOf",
      "x-jsonld-type": "@id"
    },
    "agent": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#agent",
      "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"
    },
    "hadPlan": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#hadPlan",
      "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"
    },
    "qualifiedCommunication": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#qualifiedCommunication",
      "x-jsonld-type": "@id"
    },
    "qualifiedDelegation": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#qualifiedDelegation",
      "x-jsonld-type": "@id"
    },
    "qualifiedEnd": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#qualifiedEnd",
      "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"
    },
    "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"
    },
    "wasEndedBy": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#wasEndedBy",
      "x-jsonld-type": "@id"
    },
    "wasInformedBy": {
      "x-jsonld-id": "http://www.w3.org/ns/prov#wasInformedBy",
      "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_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"
    },
    "name": "http://www.w3.org/2000/01/rdf-schema#label",
    "href": {
      "x-jsonld-type": "@id",
      "x-jsonld-id": "http://www.w3.org/ns/oa#hasTarget"
    },
    "rights": "http://www.w3.org/ns/dcat#rights",
    "Workflow": "http://www.w3.org/ns/prov#Plan",
    "applicationCategory": "https://schema.org/applicationCategory",
    "version": "http://purl.org/dc/terms/hasVersion",
    "method": "http://purl.org/dc/terms/method",
    "softwareVersion": "https://schema.org/softwareVersion",
    "programmingLanguage": "https://schema.org/programmingLanguage",
    "applicationPackage": {
      "x-jsonld-id": "https://w3id.org/ogc/hosted/seadots/catalog#applicationPackage",
      "x-jsonld-type": "@id"
    },
    "inputs": {
      "x-jsonld-context": {
        "profileId": {
          "@id": "http://purl.org/dc/terms/conformsTo",
          "@type": "@id"
        },
        "required": {
          "@id": "https://w3id.org/ogc/hosted/seadots/catalog#required",
          "@type": "http://www.w3.org/2001/XMLSchema#boolean"
        },
        "role": "https://w3id.org/ogc/hosted/seadots/catalog#role"
      },
      "x-jsonld-id": "https://w3id.org/apkg/terms/inputs",
      "x-jsonld-container": "@set"
    },
    "outputs": {
      "x-jsonld-context": {
        "profileId": {
          "@id": "http://purl.org/dc/terms/conformsTo",
          "@type": "@id"
        },
        "required": {
          "@id": "https://w3id.org/ogc/hosted/seadots/catalog#required",
          "@type": "http://www.w3.org/2001/XMLSchema#boolean"
        },
        "role": "https://w3id.org/ogc/hosted/seadots/catalog#role"
      },
      "x-jsonld-id": "https://w3id.org/apkg/terms/outputs",
      "x-jsonld-container": "@set"
    }
  },
  "x-jsonld-vocab": "https://w3id.org/ogc/hosted/seadots/catalog#",
  "x-jsonld-prefixes": {
    "geojson": "https://purl.org/geojson/vocab#",
    "rdfs": "http://www.w3.org/2000/01/rdf-schema#",
    "dct": "http://purl.org/dc/terms/",
    "rec": "https://www.opengis.net/def/ogc-api/records/",
    "xsd": "http://www.w3.org/2001/XMLSchema#",
    "dcat": "http://www.w3.org/ns/dcat#",
    "skos": "http://www.w3.org/2004/02/skos/core#",
    "prov": "http://www.w3.org/ns/prov#",
    "oa": "http://www.w3.org/ns/oa#",
    "schema": "https://schema.org/",
    "seadots": "https://w3id.org/ogc/hosted/seadots/catalog#",
    "apkg": "https://w3id.org/apkg/terms/",
    "fcm": "https://w3id.org/ogc/hosted/seadots/fcm/",
    "fcmact": "https://w3id.org/ogc/hosted/seadots/fcm/activation/",
    "owl": "http://www.w3.org/2002/07/owl#",
    "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
    "w3ctime": "http://www.w3.org/2006/time#",
    "dctype": "http://purl.org/dc/dcmitype/",
    "vcard": "http://www.w3.org/2006/vcard/ns#",
    "foaf": "http://xmlns.com/foaf/0.1/",
    "thns": "https://w3id.org/ogc/stac/themes/",
    "dcterms": "http://purl.org/dc/terms/"
  }
}