Skip to content

https://schema.org/SoftwareApplication Crosswalk for OGC API - Records

The OGC API - Records spec defines discovery of geospatial resources by standardizing the way collections of descriptive information about the resources (metadata) are exposed.

Root properties:

RecordGeoJSON
Schema.org OGC API - Records
N/A id
N/A type
N/A conformsTo
N/A properties.version
N/A properties.updated
N/A properties.language
N/A properties.resourceLanguages
N/A properties.formats
https://schema.org/softwareVersion N/A
https://schema.org/description properties.description
https://schema.org/applicationCategory N/A
https://schema.org/applicationSubCategory N/A
https://schema.org/copyrightYear N/A
https://schema.org/dateCreated properties.created, links[].created
https://schema.org/name properties.title
https://schema.org/operatingSystem N/A
https://schema.org/keywords keywords
https://schema.org/softwareRequirements N/A
https://schema.org/author contacts
https://schema.org/license license
https://schema.org/publisher N/A
https://schema.org/softwareHelp links

Generated and default values

These OGC API - Records values are generated by the transpiler or supplied by the generated OGC model rather than mapped from a Schema.org property.

OGC API - Records Value
id urn:uuid:{uuid4}
type Feature
conformsTo http://www.opengis.net/spec/ogcapi-records-1/1.0/req/record-core
properties.version 1
properties.updated current timestamp
properties.language {"code": "en-US", "name": "English (United States)"}
properties.resourceLanguages [{"code": "en-US", "name": "English (United States)"}]
properties.formats [{"name": "CWL", "mediaType": "application/cwl"}]

https://schema.org/dateCreated is normalized to a timestamp and mapped to properties.created. The same timestamp is also used for each links[].created value generated from https://schema.org/softwareHelp.

Keywords

String keywords

Each str instance will be part of the properties.keywords property of RecordGeoJSON.

https://schema.org/DefinedTerm keywords

Each https://schema.org/DefinedTerm keyword will be transpiled as item of the properties.themes[].concepts property of RecordGeoJSON if:

  • https://schema.org/inDefinedTermSet points to https://gcmd.earthdata.nasa.gov/kms/concepts/concept_scheme/sciencekeywords;
  • https://schema.org/termCode is a valid concept UUID that points to an existing https://cmr.earthdata.nasa.gov/kms/concept/{UUID}.

i.e. given an input keyword like the one below:

s:keywords:
- '@type': s:DefinedTerm
  s:inDefinedTermSet: https://gcmd.earthdata.nasa.gov/kms/concepts/concept_scheme/sciencekeywords
  s:termCode: 959f1861-a776-41b1-ba6b-d23c71d4d1eb

Resulting as an element like the one below:

"themes": [
    {
        "concepts": [
            {
                "id": "EARTH SCIENCE",
                "title": "EARTH SCIENCE",
                "description": "EARTH SCIENCE",
                "url": "https://cmr.earthdata.nasa.gov/kms/concept/959f1861-a776-41b1-ba6b-d23c71d4d1eb"
            },
            {
                "id": "TERRESTRIAL HYDROSPHERE",
                "title": "TERRESTRIAL HYDROSPHERE",
                "description": "EARTH SCIENCE > TERRESTRIAL HYDROSPHERE",
                "url": "https://cmr.earthdata.nasa.gov/kms/concept/959f1861-a776-41b1-ba6b-d23c71d4d1eb"
            },
            {
                "id": "SURFACE WATER",
                "title": "SURFACE WATER",
                "description": "EARTH SCIENCE > TERRESTRIAL HYDROSPHERE > SURFACE WATER",
                "url": "https://cmr.earthdata.nasa.gov/kms/concept/959f1861-a776-41b1-ba6b-d23c71d4d1eb"
            },
            {
                "id": "SURFACE WATER FEATURES",
                "title": "SURFACE WATER FEATURES",
                "description": "EARTH SCIENCE > TERRESTRIAL HYDROSPHERE > SURFACE WATER > SURFACE WATER FEATURES",
                "url": "https://cmr.earthdata.nasa.gov/kms/concept/959f1861-a776-41b1-ba6b-d23c71d4d1eb"
            }
        ],
        "scheme": "https://gcmd.earthdata.nasa.gov/kms/concepts/concept_scheme/sciencekeywords"
    }
]

Unsupported DefinedTerm values and unsupported keyword value types are discarded. If the Science Keywords termCode is not found in the local keyword index, the transpiler logs a warning and does not emit a theme for that keyword.

License

The properties.license field is populated from https://schema.org/license.

Schema.org OGC API - Records
https://schema.org/identifier properties.license
https://schema.org/name N/A
https://schema.org/url N/A

When license is a CreativeWork, the transpiler uses its identifier. When license is a URL value, the transpiler serializes that URL directly. Multiple license values are joined with :.

Contacts

The properties.contacts field is populated from https://schema.org/author.

If an author is represented as https://schema.org/Role, roleName is mapped to position and the nested author is mapped as the contact person.

Schema.org OGC API - Records
https://schema.org/roleName properties.contacts[].position
https://schema.org/identifier properties.contacts[].identifier
https://schema.org/familyName properties.contacts[].name
https://schema.org/givenName properties.contacts[].name
https://schema.org/affiliation properties.contacts[].organization
https://schema.org/email properties.contacts[].emails[].value

The contact name is serialized as familyName, givenName. The organization is taken from the author's affiliation name.

The root links field is populated from https://schema.org/softwareHelp.

Schema.org OGC API - Records
https://schema.org/name links[].title
https://schema.org/url links[].href

The transpiler also sets links[].rel to via, links[].hreflang to en, links[].created from dateCreated, and links[].updated to the current timestamp.

Publisher

https://schema.org/publisher is not mapped by the current OGC API - Records transpiler.

Schema.org OGC API - Records
https://schema.org/email N/A
https://schema.org/identifier N/A
https://schema.org/name N/A