Data Product Application Profile

Definition

Informal conceptual model of a data product application profile
Figure 1. Informal conceptual model of a data product application profile

(application) profile[PROF]

A specification that constrains, extends, combines, or provides guidance or explanation about the usage of other specifications.

profile version

A specific version of a profile.

vocabulary term

A controlled term defined in the context of this profile.

profile resource[PROF]

A resource that defines an aspect — a particular part or feature — of a profile.

Identification

The considerations and justifications for the choices made are documented here.

All IRI templates conform to [RFC6570].
Part URI template

Profile

https://nbnl.info/{profile}

Vocabulary term

https://nbnl.info/{profile}/term/{reference}

Profile version

https://nbnl.info/{profile}/{version}

Schema

https://nbnl.info/{profile}/{version}/schema

JSON Schema

https://nbnl.info/{profile}/{version}/schema/json-schema

SHACL schema

https://nbnl.info/{profile}/{version}/schema/shacl

Example data

https://nbnl.info/{profile}/{version}/example/{reference}

where:

{profile}

Path component — possibly nested — that identifies the profile.

{version}

Major version of the profile (e.g. v1).

{reference}

Local name of the resource.


Example: Capaciteitskaart
Part URI

Profile

https://nbnl.info/capaciteitskaart

Vocabulary term

https://nbnl.info/capaciteitskaart/term/ean18

Profile version

https://nbnl.info/capaciteitskaart/v2

Schema

https://nbnl.info/capaciteitskaart/v2/schema

JSON Schema

https://nbnl.info/capaciteitskaart/v2/schema/json-schema

Example data

https://nbnl.info/capaciteitskaart/v2/example/tso
https://nbnl.info/capaciteitskaart/v2/example/dso

Example: NC13 Core Equipment

In this example, a nested namespace is used to group NC13 data products together.

Part URI

Profile

https://nbnl.info/nc13/core-eq

Vocabulary term

https://nbnl.info/nc13/core-eq/term/ean18

Profile version

https://nbnl.info/nc13/core-eq/v2

Schema

https://nbnl.info/nc13/core-eq/v2/schema

JSON Schema

https://nbnl.info/nc13/core-eq/v2/schema/json-schema

Example data

https://nbnl.info/nc13/core-eq/v2/example/tso
https://nbnl.info/nc13/core-eq/v2/example/dso

Representation

  • URIs of information resources may redirect to URLs which provide the resource representation using status code 307 Temporary Redirect.

  • Non-information (or real-world) resources do not have representations, and redirect to appropriate representations offered by resources using status code 303 See Other

Part

Machine-processable

Human-readable

Language

Media type

Language

Media type

Profile

PROF

application/ld+json

Antora/AsciiDoc

text/html

Vocabulary term[1]

n/a

n/a

Profile version

PROF, RDF, JSON-LD

Antora/AsciiDoc, HTML/JS/CSS

Schema

LinkML, YAML

Antora/AsciiDoc, HTML/JS/CSS

JSON Schema

JSON Schema, JSON

n/a

Example data

Versioning

Data product application profiles are versioned using SchemaVer — as advised by DWBP (#7):

Given a version number MODEL-REVISION-ADDITION, increment the:

  • MODEL when you make a breaking schema change which will prevent interaction with any historical data

  • REVISION when you make a schema change which may prevent interaction with some historical data

  • ADDITION when you make a schema change that is compatible with all historical data

The schema and examples of course follow suit, but not the vocabulary.

Vocabulary

Profile vocabulary follow an evolution strategy where breaking changes are never allowed.

As can be seen in the definition above, the vocabulary is part of the profile itself and not any version of it. This is by design, since the stability of vocabulary is essential, since it is the terms from the vocabulary that are being used in all the data sets that use it.

Through deprecation and introduction of new URIs and statements, newer and older versions of the vocabulary model all live in one schema.


1. Vocabulary terms are real-world concepts and therefore do not have representations. Documents that describe them, however, can be redirected to using HTTP redirects with status code 303 (See Other).