Skip to content

ROR Format

simonoakesepimorphics edited this page May 16, 2023 · 2 revisions

ROR Format & INSPIRE

You can configure and access descriptors for your registry and its registers in ROR (Register of Registers) format. This can be used to conform with the INSPIRE registry federation scheme. The specification for the serialisation of registry and register entries can be found here.

The ROR format rendered by the registry is similar to the RDF/XML format, but it renders only properties which are documented by the INSPIRE specification. It also renders some properties of related resources by retrieving them from the registry. This is necessary in order to ensure that the RDF/XML serialisation complies with the given XSL templates.

In addition, resources of type skos:Concept and skos:ConceptScheme are rendered as root elements of the document, in order to support the Register conformance class.

Content Negotiation

ROR format is available for all registers through the usual content negotiation; set the Accept header to application/x-ror-rdf+xml or set the _format query parameter to ror. If you are using the latest version of registry-config-base, you can access this format through the registry UI by clicking on "Download" and selecting the format. This is only available for registers.

Namespace Prefixes

In order to work more easily with the RDF properties and types in the INSPIRE specification, you can add the following namespace prefixes to your system/prefixes register:

Registry Descriptor

The registry descriptor describes the registry itself, and a catalogue of registers that are maintained and available for federation. You can find the specification here.

The registry description is represented by the /structure/catalog register, which must be defined as a register of type dcat:Catalog. If you are starting a new registry, the register is created automatically. Otherwise, you can create it manually through the UI or API.

When creating the register, you should make sure that you set the ldp:membershipPredicate property to dcat:dataset and the reg:containedItemClass property to dcat:Dataset.

You should update the registry description with the descriptive properties required by the specification.

You can access the federated registry description by requesting the root register in ROR format. The resulting RDF graph will transpose the description given in the /structure/catalog register onto the root register resource.

You should also set the dct:publisher value to be a resource (internal or external) that is described in the registry. The relevant publisher information will be queried from the data store and incorporated into the ROR serialisation.

Example

<catalog> a dcat:Catalog, reg:Register;
    rdfs:label "Catalog"@en;
    dct:description "Registry descriptor for INSPIRE federation."@en;
    dct:title "Example Registry";
    dct:publisher <http://environment.data.gov.uk/registry/structure/org/default> ;
    reg:containedItemClass dcat:Dataset;
    ldp:membershipPredicate dcat:dataset;
    .

The items that you add to your registry descriptor should refer to other registers in the registry (as if they were external resources). When you upload the register item, properties that you supply for the register resource itself will be applied to the register. As such, it may be useful to add any properties that are required by the specification at this point (eg. dct:publisher, dct:isPartOf).

The dcat:distribution property is set automatically on each item when rendering in ROR format.

Example

<_def> a reg:RegisterItem ;
  rdfs:label "Definitions"@en;
  dct:description "Definitions"@en;
  reg:status reg:statusStable;
  reg:notation "def";
  reg:definition [ reg:entity <http://environment.data.gov.uk/registry/def> ];
  .

<http://environment.data.gov.uk/registry/def> a skos:ConceptScheme ;
  rdfs:label "Definitions"@en ;
  dct:isPartOf <../catalog> ;
  dct:publisher <http://example.org/org/default>
  .

Register Descriptor

The register descriptor describes a register as a concept scheme. You can find the specification here.

Any register whose type is skos:ConceptScheme, and is not a registry descriptor, will be treated as a register descriptor when is rendered in ROR format.

When creating the register, you should make sure that you set the ldp:inverseMembershipPredicate property to skos:inScheme and the reg:containedItemClass property to skos:Concept, as well as providing the properties required by the specification. You can do this by using the "Create Register" button on the UI and selecting "Concept Scheme" as the type of register.

You should also set the dct:publisher value to be a resource (internal or external) that is described in the registry. The relevant publisher information will be queried from the data store and incorporated into the ROR serialisation.

All of the properties of the register's items that would usually be rendered in other formats will also be rendered in ROR format.