Enhanced STA Properties

The properties objects in the respective OGC STA entities are populated with additional information that is difficult or impossible to represent with the current STA data model (OGC SensorThings API Part 1: Sensing Version 1.1).

The provided data structures use JSON-LD and are loosely based on schema.org. A corresponding JSON Schema has been created on each properties object.

Thing properties

The ThingProperties schema definition serves as a structured extension for the OGC SensorThings API (STA) Thing entity. This schema allows for the enrichment of Thing entities with critical information, such as persistent identifiers (PIDs) for the Thing itself, details about the individuals or organizations responsible for the Thing including roles and affiliations, links to projects the Thing is associated with, a collection of images for visual documentation, links to external metadata records and data distributions like SensorML documents, and relationships to other Things, such as a sensor’s relationship to a platform.

Table 1: The Thing properties

Name

Definition

Data type

Multiplicity and use

@context

JSON-LD context for defining keywords and vocabulary.

Object

One (mandatory)

@context.@version

The version of the context.

String/Number

One (mandatory)

@context.@import

Import URL for the STAMPLATE context.

String

One (mandatory)

@context.@vocab

The default vocabulary used (schema.org).

String

One (mandatory)

jsonld.id

Unique ID of the object (e.g., the URL to its representation in an application).

String

(One) mandatory

jsonld.type

The type of the object, in this case ‘ThingProperties’.

String

One (mandatory)

identifier

Another unique identifier for the object, eg. a PID.

String

Zero-to-one

responsiblePersons

A list of persons responsible for the object.

Array of Role-Objects

Zero-to-many

responsiblePersons["jsonld.type"]

The type of the object, in this case ‘Role’.

String

One (mandatory)

responsiblePersons.roleName

The name of the role (e.g., ‘Owner’).

String

Zero-to-one

responsiblePersons.definition

URL to the definition of the role.

String

Zero-to-one

responsiblePersons.responsiblePersons

A nested list of person objects fulfilling the role.

Array of Person-Objects

Zero-to-many

responsiblePersons.responsiblePersons["jsonld.id"]

Unique ID of the person (e.g., the URL to its representation in an application).

String

One (mandatory)

responsiblePersons.responsiblePersons["jsonld.type"]

The type of the object, in this case ‘Person’.

String

One (mandatory)

responsiblePersons.responsiblePersons.givenName

The person’s given name.

String

Zero-to-one

responsiblePersons.responsiblePersons.familyName

The person’s family name.

String

Zero-to-one

responsiblePersons.responsiblePersons.email

The person’s email address.

String

Zero-to-one

responsiblePersons.responsiblePersons.affiliation

The organization the person is affiliated with.

Organization-Object

Zero-to-one

responsiblePersons.responsiblePersons.affiliation["jsonld.type"]

The type of the object, in this case ‘Organization’.

String

One (mandatory)

responsiblePersons.responsiblePersons.affiliation.name

Name of the organization.

String

Zero-to-one

responsiblePersons.responsiblePersons.affiliation.identifier

Unique identifier of the organization (e.g., ROR).

String

Zero-to-one

responsiblePersons.responsiblePersons.identifier

Unique identifier of the person (e.g., ORCID).

String

Zero-to-one

partOfProjects

A list of projects this object belongs to.

Array of ResearchProject-Objects

Zero-to-many

partOfProjects["jsonld.type"]

The type of the object, in this case ‘ResearchProject’.

String

One (mandatory)

partOfProjects.name

Name of the project.

String

Zero-to-one

images

A list of images linked to the object.

Array of ImageObject-Objects

Zero-to-many

images["jsonld.type"]

The type of the object, in this case ‘ImageObject’.

String

One (mandatory)

images.caption

A short caption for the image.

String

Zero-to-one

images.contentUrl

The URL where the image can be accessed.

String

Zero-to-one

metadata

Additional Metadata describing the thing.

Dataset-Object

Zero-to-one

metadata["jsonld.type"]

The type of the object, in this case ‘Dataset’.

String

One (mandatory)

metadata.encodingType

The encoding type of the dataset. Must be one of application/pdf, http://www.opengis.net/doc/IS/SensorML/2.0, text/html

String

Zero-to-one

metadata.distribution

Information about the dataset’s distribution. Use this, if a download link is provided.

DataDownload-Object

Zero-to-one

metadata.distribution["jsonld.type"]

The type of the object, in this case ‘DataDownload’.

String

One (mandatory)

metadata.distribution.url

The URL to download the dataset.

String

Zero-to-one

metadata.text

Text representation of the metadata. Use this, if a SensorML or plain text representation should be provided.

String

Zero-to-one

sourceRelatedThings

A list of related things from which this object originates.

Array of Objects

Zero-to-many

sourceRelatedThings["jsonld.id"]

Unique ID of the related thing (e.g., the URL to its representation in an application).

String

One (mandatory)

sourceRelatedThings["jsonld.type"]

The type of the object, in this case ‘RelatedThing’.

String

One (mandatory)

sourceRelatedThings.relationRole

The role the object plays in the relationship.

Object

Zero-to-one

sourceRelatedThings.relationRole["jsonld.type"]

The type of the object, in this case ‘RelationRole’.

String

One (mandatory)

sourceRelatedThings.relationRole.name

The name of the relationship (e.g., ‘containedInPlace’).

String

Zero-to-one

sourceRelatedThings.relationRole.definition

URL to the definition of the relationship.

String

Zero-to-one

sourceRelatedThings.relationRole.inverseName

The name of the inverse relationship.

String

Zero-to-one

sourceRelatedThings.relationRole.inverseDefinition

URL to the definition of the inverse relationship.

String

Zero-to-one

Example: Additional information for a Thing, in this case a climate station.

{
  "@context": {
    "@version": 1.1,
    "@import": "stamplate.jsonld",
    "@vocab": "http://schema.org/"
  },
  "jsonld.id": "https://sensors.gfz.de/configurations/35",
  "jsonld.type": "ThingProperties",
  "identifier": "https://handle.net/12345",
  "responsiblePersons": [
    {
      "jsonld.type": "Role",
      "roleName": "Owner",
      "definition": "https://sms-cv.helmholtz.cloud/sms/cv/api/v1/contactroles/4",
      "responsiblePersons": [
        {
          "jsonld.id": "https://sensors.gfz.de/contacts/12345",
          "jsonld.type": "Person",
          "givenName": "John",
          "familyName": "Doe",
          "email": "john.doe@example.org",
          "affiliation": {
            "jsonld.type": "Organization",
            "name": "GFZ Helmholtz Centre for Geosciences",
            "identifier": "https://ror.org/04z8jg394"
          },
          "identifier": "https://orcid.org/0000-0000-0000-1234"
        }
      ]
    }
  ],
  "partOfProjects": [
    {
      "jsonld.type": "ResearchProject",
      "name": "TERENO-NO"
    }
  ],
  "images": [
    {
      "@type": "ImageObject",
      "caption": "Echo Sound Transducer at backside of Speedboat",
      "contentUrl": "https://sensors.gfz.de/backend/api/v1/configuration-attachments/2/file/IMG_20231204_144945_Echo_Sounder.jpg"
    },
    {
      "@type": "ImageObject",
      "caption": "Platform in situ",
      "contentUrl": "https://sensors.gfz.de/backend/api/v1/configuration-attachments/3/file/IMG_1451_Speedboat_platform_in_situ.jpg"
    }
  ],
  "metadata": {
    "jsonld.type": "Dataset",
    "encodingType": "http://www.opengis.net/doc/IS/SensorML/2.0",
    "distribution": {
      "jsonld.type": "DataDownload",
      "url": "https://sensors.gfz.de/backend/api/v1/devices/1/sensorml"
    }
  },
  "sourceRelatedThings": [
    {
      "jsonld.id": "https://sta.gfz.de/v1.1/Things(1)",
      "jsonld.type": "RelatedThing",
      "relationRole": {
        "jsonld.type": "RelationRole",
        "name": "containedInPlace",
        "definition": "https://schema.org/containedInPlace",
        "inverseName": "containsPlace",
        "inverseDefinition": "https://schema.org/containsPlace"
      }
    }
  ]
}

Sensor properties

The SensorProperties schema definition serves as a structured extension for the OGC SensorThings API (STA) Sensor entity. This schema definition allows for the detailed documentation of sensors, including their unique identifiers, the product group they belong to, whether they are virtual or physical, their specific model and manufacturer details, serial numbers, and importantly, information about the responsible persons, complete with their roles, affiliations, and contact information.

Table 2: The Sensor properties

Name

Description

Datatype

Multiplicity

@context

JSON-LD context for defining keywords and vocabulary.

Object

One (mandatory)

@context.@version

The version of the context.

Number

One (mandatory)

@context.@import

Import URL for the STAMPLATE context.

String

One (mandatory)

@context.@vocab

The default vocabulary used.

String

One (mandatory)

jsonld.id

Unique ID of the sensor (e.g., the URL to its representation in an application).

String

One (mandatory)

jsonld.type

The type of the object, in this case ‘SensorProperties’.

String

One (mandatory)

identifier

Another unique identifier for the object, e.g., a PID.

String

Zero-to-one

isVariantOf

Describes the product group the sensor belongs to.

ProductGroup-Object

Zero-to-one

isVariantOf["jsonld.type"]

The type of the object, in this case ‘ProductGroup’.

String

One (mandatory)

isVariantOf.name

The name of the product group.

String

Zero-to-one

isVariantOf.definition

URL to the definition of the product group.

String

Zero-to-one

isVirtual

Indicates if the sensor is virtual.

Boolean

Zero-to-one

model

The model name of the sensor.

String

Zero-to-one

manufacturer

Information about the manufacturer of the sensor.

Organization-Object

Zero-to-one

manufacturer["jsonld.type"]

The type of the object, in this case ‘Organization’.

String

One (mandatory)

manufacturer.name

The name of the manufacturer.

String

Zero-to-one

manufacturer.definition

URL to the definition of the manufacturer.

String

Zero-to-one

serialNumber

The serial number of the sensor.

String

Zero-to-one

responsiblePersons

A list of persons responsible for the object.

Array of Role-Objects

Zero-to-many

responsiblePersons["jsonld.type"]

The type of the object, in this case ‘Role’.

String

One (mandatory)

responsiblePersons.roleName

The name of the role (e.g., ‘Owner’).

String

Zero-to-one

responsiblePersons.definition

URL to the definition of the role.

String

Zero-to-one

responsiblePersons.responsiblePersons

A nested list of person objects fulfilling the role.

Array of Person-Objects

Zero-to-many

responsiblePersons.responsiblePersons["jsonld.id"]

Unique ID of the person (e.g., the URL to its representation in an application).

String

One (mandatory)

responsiblePersons.responsiblePersons["jsonld.type"]

The type of the object, in this case ‘Person’.

String

One (mandatory)

responsiblePersons.responsiblePersons.givenName

The person’s given name.

String

Zero-to-one

responsiblePersons.responsiblePersons.familyName

The person’s family name.

String

Zero-to-one

responsiblePersons.responsiblePersons.email

The person’s email address.

String

Zero-to-one

responsiblePersons.responsiblePersons.affiliation

The organization the person is affiliated with.

Organization-Object

Zero-to-one

responsiblePersons.responsiblePersons.affiliation["jsonld.type"]

The type of the object, in this case ‘Organization’.

String

One (mandatory)

responsiblePersons.responsiblePersons.affiliation.name

The name of the organization.

String

Zero-to-one

responsiblePersons.responsiblePersons.affiliation.identifier

A unique identifier for the organization (e.g., ROR).

String

Zero-to-one

responsiblePersons.responsiblePersons.identifier

A unique identifier for the person (e.g., ORCID).

String

Zero-to-one

Example: Additional information for a Sensor, in this case a Pressure Transducer.

{
  "@context": {
    "@version": 1.1,
    "@import": "stamplate.jsonld",
    "@vocab": "http://schema.org/"
  },
  "jsonld.id": "https://sensors.gfz.de/devices/786",
  "jsonld.type": "SensorProperties",
  "identifier": "https://handle.net/1234567",
  "isVariantOf": {
    "jsonld.type": "ProductGroup",
    "name": "Pressure transducer",
    "definition": "https://sms-cv.helmholtz.cloud/sms/cv/api/v1/equipmenttypes/42"
  },
  "isVirtual": false,
  "model": "AdconBP1",
  "manufacturer": {
    "jsonld.type": "Organization",
    "name": "OTT HydroMet",
    "definition": "https://sms-cv.helmholtz.cloud/sms/cv/api/v1/manufacturers/48"
  },
  "serialNumber": "12345",
  "responsiblePersons": [
    {
      "jsonld.type": "Role",
      "roleName": "Owner",
      "definition": "https://sms-cv.helmholtz.cloud/sms/cv/api/v1/contactroles/4",
      "responsiblePersons": [
        {
          "jsonld.id": "https://sensors.gfz.de/contacts/12345",
          "jsonld.type": "Person",
          "givenName": "Jane",
          "familyName": "Doe",
          "email": "jane.doe@example.org",
          "affiliation": {
            "jsonld.type": "Organization",
            "name": "GFZ Helmholtz Centre for Geosciences",
            "identifier": "https://ror.org/04z8jg394"
          },
          "identifier": ""
        }
      ]
    }
  ]
}

Datastream properties

The DatastreamProperties schema definition serves as a structured extension for the OGC SensorThings API (STA) Datastream entity. It allows for a more comprehensive description of a datastream by providing details about its observing procedure, including specific parameters like the aggregation period and its unit, as well as defining the measurement properties such as resolution, accuracy, and operational range, complete with their respective units. Furthermore, this schema accommodates information regarding the license under which the data is provided, the mobility, specific deployment details including timestamps and spatial offsets, and the data source from which the datastream originates.

Table 3: The Datastream properties

Name

Definition

Data type

Multiplicity and use

@context

JSON-LD context for defining keywords and vocabulary.

Object

One (mandatory)

@context.@version

The version of the context.

String/Number

One (mandatory)

@context.@import

Import URL for the STAMPLATE context.

String

One (mandatory)

@context.@vocab

The default vocabulary used (schema.org).

String

One (mandatory)

jsonld.id

Unique ID of the datastream (e.g., the URL to its representation in an application).

String

One (mandatory)

jsonld.type

The type of the object, in this case ‘DatastreamProperties’.

String

One (mandatory)

observingProcedure

Details about the observing procedure.

Object

Zero-to-one

observingProcedure["jsonld.type"]

The type of the object, in this case ‘ObservingProcedure’.

String

One (mandatory)

observingProcedure.name

The name of the procedure.

String

Zero-to-one

observingProcedure.description

A description of the procedure.

String

Zero-to-one

observingProcedure.definition

URL to the definition of the procedure.

String

Zero-to-one

observingProcedure.properties

Additional properties of the procedure.

Object

Zero-to-one

observingProcedure.properties.period

The duration of the observation period.

Number

Zero-to-one

observingProcedure.properties.unitOfPeriod

The unit for the observation period.

Object

Zero-to-one

observingProcedure.properties.unitOfPeriod["jsonld.type"]

The type of the object, in this case ‘Unit’.

String

One (mandatory)

observingProcedure.properties.unitOfPeriod.name

The name of the unit.

String

Zero-to-one

observingProcedure.properties.unitOfPeriod.symbol

The symbol for the unit.

String

Zero-to-one

observingProcedure.properties.unitOfPeriod.definition

URL to the definition of the unit.

String

Zero-to-one

measurementProperties

Properties of the measurement itself.

Object

Zero-to-one

measurementProperties["jsonld.type"]

The type of the object, in this case ‘MeasurementProperties’.

String

One (mandatory)

measurementProperties.measurementResolution

The resolution of the measurement.

Number

Zero-to-one

measurementProperties.unitOfMeasurementResolution

The unit for the measurement resolution.

Object

Zero-to-one

measurementProperties.unitOfMeasurementResolution["jsonld.type"]

The type of the object, in this case ‘Unit’.

String

One (mandatory)

measurementProperties.unitOfMeasurementResolution.name

The name of the unit.

String

Zero-to-one

measurementProperties.unitOfMeasurementResolution.symbol

The symbol for the unit.

String

Zero-to-one

measurementProperties.unitOfMeasurementResolution.definition

URL to the definition of the unit.

String

Zero-to-one

measurementProperties.measurementAccuracy

The accuracy of the measurement.

Number

Zero-to-one

measurementProperties.unitOfMeasurementAccuracy

The unit for the measurement accuracy.

Object

Zero-to-one

measurementProperties.unitOfMeasurementAccuracy["jsonld.type"]

The type of the object, in this case ‘Unit’.

String

One (mandatory)

measurementProperties.unitOfMeasurementAccuracy.name

The name of the unit.

String

Zero-to-one

measurementProperties.unitOfMeasurementAccuracy.symbol

The symbol for the unit.

String

Zero-to-one

measurementProperties.unitOfMeasurementAccuracy.definition

URL to the definition of the unit.

String

Zero-to-one

measurementProperties.operationRange

The operational range of the measurement.

Array of Numbers

Zero-to-one

measurementProperties.unitOfOperationRange

The unit for the operational range.

Object

Zero-to-one

measurementProperties.unitOfOperationRange["jsonld.type"]

The type of the object, in this case ‘Unit’.

String

One (mandatory)

measurementProperties.unitOfOperationRange.name

The name of the unit.

String

Zero-to-one

measurementProperties.unitOfOperationRange.symbol

The symbol for the unit.

String

Zero-to-one

measurementProperties.unitOfOperationRange.definition

URL to the definition of the unit.

String

Zero-to-one

license

Information about the license for the data.

CreativeWork-Object

Zero-to-one

license["jsonld.type"]

The type of the object, in this case ‘CreativeWork’.

String

One (mandatory)

license.name

The name of the license.

String

Zero-to-one

license.url

The URL to the full license text.

String

Zero-to-one

license.provider

The provider of the license.

String

Zero-to-one

providerMobility

The mobility of the data provider (e.g., ‘static’).

String

Zero-to-one

deployment

Details about the deployment of the datastream.

Object

Zero-to-one

deployment["jsonld.id"]

Unique ID of the deployment (e.g., the URL to its representation in an application).

String

One (mandatory)

deployment["jsonld.type"]

The type of the object, in this case ‘Deployment’.

String

One (mandatory)

deployment.deploymentTime

The time of deployment.

String

Zero-to-one

deployment.properties

Additional properties of the deployment.

Object

Zero-to-one

deployment.properties["jsonld.type"]

The type of the object, in this case ‘DeploymentProperties’.

String

One (mandatory)

deployment.properties.offsets

The offsets of the deployment.

Object

Zero-to-one

deployment.properties.offsets["jsonld.type"]

The type of the object, in this case ‘Offset’.

String

One (mandatory)

deployment.properties.offsets.x

The x-offset.

Number

Zero-to-one

deployment.properties.offsets.y

The y-offset.

Number

Zero-to-one

deployment.properties.offsets.z

The z-offset.

Number

Zero-to-one

deployment.properties.unitOfOffsets

The unit for the offsets.

Object

Zero-to-one

deployment.properties.unitOfOffsets["jsonld.type"]

The type of the object, in this case ‘Unit’.

String

One (mandatory)

deployment.properties.unitOfOffsets.name

The name of the unit.

String

Zero-to-one

deployment.properties.unitOfOffsets.symbol

The symbol for the unit.

String

Zero-to-one

deployment.properties.unitOfOffsets.definition

URL to the definition of the unit.

String

Zero-to-one

dataSource

A descriptive string indicating the source of the data.

String

Zero-to-one

Example: Additional information for a Datastream

{
  "@context": {
    "@version": 1.1,
    "@import": "stamplate.jsonld",
    "@vocab": "http://schema.org/"
  },
  "jsonld.id": "https://sensors.gfz.de/datastream-links/6",
  "jsonld.type": "DatastreamProperties",
  "observingProcedure": {
    "jsonld.type": "ObservingProcedure",
    "name": "mean",
    "description": "the arithmetic mean value",
    "definition": "https://sms-cv.helmholtz.cloud/sms/cv/api/v1/aggregationtypes/1",
    "properties": {
      "period": 600,
      "unitOfPeriod": {
        "jsonld.type": "Unit",
        "name": "seconds",
        "symbol": "s",
        "definition": "https://sms-cv.helmholtz.cloud/sms/cv/api/v1/units/63"
      }
    }
  },
  "measurementProperties": {
    "jsonld.type": "MeasurementProperties",
    "measurementResolution": 0.2,
    "unitOfMeasurementResolution": {
      "jsonld.type": "Unit",
      "name": "seconds",
      "symbol": "sec",
      "definition": "https://sms-cv.helmholtz.cloud/sms/cv/api/v1/units/58"
    },
    "measurementAccuracy": 1.0,
    "unitOfMeasurementAccuracy": {
      "jsonld.type": "Unit",
      "name": "millibars",
      "symbol": "mbar",
      "definition": "https://sms-cv.helmholtz.cloud/sms/cv/api/v1/units/64"
    },
    "operationRange": [
      500.0,
      1500.0
    ],
    "unitOfOperationRange": {
      "jsonld.type": "Unit",
      "name": "millibars",
      "symbol": "mbar",
      "definition": "https://sms-cv.helmholtz.cloud/sms/cv/api/v1/units/64"
    }
  },
  "license": {
    "jsonld.type": "CreativeWork",
    "name": "GPLv3",
    "url": "https://www.gnu.org/licenses/gpl-3.0.txt",
    "provider": "The HMC-STAMPLATE project consortium"
  },
  "providerMobility": "static",
  "deployment": {
    "jsonld.id": "https://sensors.gfz.de/configurations/35/platforms-and-devices?deviceMountAction=182",
    "jsonld.type": "Deployment",
    "deploymentTime": "2020-01-01T00:50-03:00",
    "properties": {
      "jsonld.type": "DeploymentProperties",
      "offsets": {
        "jsonld.type": "Offset",
        "x": -3,
        "y": 2,
        "z": 10
      },
      "unitOfOffsets": {
        "jsonld.type": "Unit",
        "name": "meters",
        "symbol": "m",
        "definition": "https://sms-cv.helmholtz.cloud/sms/cv/api/v1/units/63"
      }
    }
  },
  "dataSource": "ftp/uploads01"
}

Location properties

The LocationProperties schema definition serves as a structured extension for the OGC SensorThings API (STA) Location entity.

No specific properties have been defined so far.

Table 4: The Location properties

Name

Definition

Data type

Multiplicity and use

@context

JSON-LD context for defining keywords and vocabulary.

Object

One (mandatory)

@context.@version

The version of the context.

String/Number

One (mandatory)

@context.@import

Import URL for the STAMPLATE context.

String

One (mandatory)

@context.@vocab

The default vocabulary used (schema.org).

String

One (mandatory)

jsonld.id

Unique ID of the location (e.g., the URL to its representation in an application).

String

One (mandatory)

jsonld.type

The type of the object, in this case ‘LocationProperties’.

String

One (mandatory)

Example: Additional information for a Location

{
  "@context": {
    "@version": 1.1,
    "@import": "stamplate.jsonld",
    "@vocab": "http://schema.org/"
  },
  "jsonld.id": "https://sensors.gfz.de/configurations/35/locations/static-location-actions/15",
  "jsonld.type": "LocationProperties"
}

ObservedProperty properties

The ObservedPropertyProperties schema definition serves as a structured extension for the OGC SensorThings API (STA) ObservedProperty entity.

No specific properties have been defined so far.

Table 5: The Observed Property properties

Name

Definition

Data type

Multiplicity and use

@context

JSON-LD context for defining keywords and vocabulary.

Object

One (mandatory)

@context.@version

The version of the context.

String/Number

One (mandatory)

@context.@import

Import URL for the STAMPLATE context.

String

One (mandatory)

@context.@vocab

The default vocabulary used (schema.org).

String

One (mandatory)

jsonld.id

Unique ID of the Observed Property (e.g., the URL to its representation in an application).

String

One (mandatory)

jsonld.type

The type of the object, in this case ‘ObservedPropertyProperties’.

String

One (mandatory)

Example: Additional information for an ObservedProperty

{
  "@context": {
    "@version": 1.1,
    "@import": "stamplate.jsonld",
    "@vocab": "http://schema.org/"
  },
  "jsonld.id": "https://sensors.gfz.de/cv/api/v1/measuredquantities/32/",
  "jsonld.type": "ObservedPropertyProperties"
}

Observation properties

The ObservationProperties schema definition serves as a structured extension for the OGC SensorThings API (STA) Observation entity.

Table 6: The Observation properties

Name

Definition

Data type

Multiplicity and use

@context

JSON-LD context for defining keywords and vocabulary.

Object

One (mandatory)

@context.@version

The version of the context.

String/Number

One (mandatory)

@context.@import

Import URL for the STAMPLATE context.

String

One (mandatory)

@context.@vocab

The default vocabulary used (schema.org).

String

One (mandatory)

jsonld.type

The type of the object, in this case ‘ObservationProperties’.

String

One (mandatory)

dataSource

A descriptive string indicating the source of the observation data.

String

Zero-to-one

Example: Additional information for an Observation

{
  "@context": {
    "@version": 1.1,
    "@import": "stamplate.jsonld",
    "@vocab": "http://schema.org/"
  },
  "jsonld.type": "ObservationProperties",
  "dataSource": "file01.csv"
}

Observation ResultQuality properties

[!WARNING] Work in progress

Table 7: The Observation Result Quality properties

Name

Definition

Data type

Multiplicity and use

@context

JSON-LD context for defining keywords and vocabulary.

Object

One (mandatory)

@context.@version

The version of the context.

String/Number

One (mandatory)

@context.@import

Import URL for the STAMPLATE context.

String

One (mandatory)

@context.@vocab

The default vocabulary used (schema.org).

String

One (mandatory)

annotations

A list of annotations for the object.

Array of Objects

Zero-to-many

annotations["jsonld.id"]

Unique ID of the annotation.

String

Zero-to-one

annotations["jsonld.type"]

The type of the annotation, in this case ‘ObservationResultQuality’.

String

One (mandatory)

annotations.annotation

The value of the annotation.

String

Zero-to-one

annotations.annotationType

The type of the annotation (e.g., ‘SaQC’, ‘generic’).

String

Zero-to-one

annotations.properties

Additional properties of the annotation.

Object

Zero-to-one

annotations.properties.version

The version of the annotation.

String

Zero-to-one

annotations.properties.measure

The measure used for the annotation.

String

Zero-to-one

annotations.properties.definition

URL to the definition of measure.

String

Zero-to-one

Example: Additional information for the ResultQuality

{
  "@context": {
    "@version": 1.1,
    "@import": "stamplate.jsonld",
    "@vocab": "http://schema.org/"
  },
  "annotations": [
    {
      "@id": "https://rdm-software.pages.ufz.de/saqc/",
      "@type": "ObservationResultQuality",
      "annotation": "99",
      "annotationType": "SaQC",
      "properties": {
        "version": "2.6",
        "measure": "flagUniLOF",
        "definition": "https://url/to/config"
      }
    },
    {
      "@id": "https://tereno.net/quality",
      "@type": "ObservationResultQuality",
      "annotation": "baddata",
      "annotationType": "generic"
    },
    {
      "@id": "https://tereno.net/quality",
      "@type": "ObservationResultQuality",
      "annotation": "Analysis error",
      "annotationType": "specific"
    }
  ]
}