API

This paragraph describes the overall API of the RoR.

Access / Query

The RoR has a browsable web interface that allows the user to navigate through the elements of the federation. The RoR has also a RESTful interface providing machine-readable results in JSON encoding.

Registry operations

Listing all the registries http://inspire-regadmin.jrc.ec.europa.eu/ror/rest/registries
Get a registry detail http://inspire-regadmin.jrc.ec.europa.eu/ror/rest/registries/<registry_localid>

Register operations

Listing all the registers http://inspire-regadmin.jrc.ec.europa.eu/ror/rest/registers
Get a register detail http://inspire-regadmin.jrc.ec.europa.eu/ror/rest/registers/<register_localid>

Relation operations

Listing all the relations http://inspire-regadmin.jrc.ec.europa.eu/ror/rest/relations
Get a relation detail http://inspire-regadmin.jrc.ec.europa.eu/ror/rest/relations/<relation_localid>

REST query interface

REST filter pattern

http://inspire-regadmin.jrc.ec.europa.eu/ror/rest/<registries|registers|relations>/q/<field>=<value>

 

Example RESTful query

Request: http://inspire-regadmin.jrc.ec.europa.eu/ror/rest/registers/27
Response:

{"register": {
  "registry": {
    "description": "The INSPIRE infrastructure involves a number of items, which require clear descriptions and the possibility to be referenced through unique identifiers. Examples for such items include INSPIRE themes, code lists, application schemas or discovery services. Registers provide a means to assign identifiers to items and their labels, definitions and descriptions (in different languages). The INSPIRE registry provides a central access point to a number of centrally managed INSPIRE registers. The content of these registers are based on the INSPIRE Directive, Implementing Rules and Technical Guidelines.",
    "publisher": {
      "label": "European Commission, Joint Research Centre",
      "uri": "https://ec.europa.eu/jrc",
      "email": "inspire-registry-dev@jrc.ec.europa.eu"
    },
    "id": "1",
    "label": "INSPIRE registry",
    "uri": "http://inspire.ec.europa.eu/registry",
    "user": "userid",
    "updatefrequency": "http://publications.europa.eu/resource/authority/frequency/DAILY"
  },
  "description": "Code values for statistics measurement method.",
  "publisher": {
    "label": "European Commission, Joint Research Centre",
    "uri": "https://ec.europa.eu/jrc",
    "email": "inspire-registry-dev@jrc.ec.europa.eu"
  },
  "id": "27",
  "label": "Statistics Measurement Method",
  "uri": "http://inspire.ec.europa.eu/codelist/StatisticsMeasurementMethodValue",
  "updatefrequency": "http://publications.europa.eu/resource/authority/frequency/DAILY"
 }
}

 

RoR Harvesting and Federated Search search indexing system

The RoR user interface will have a private area (using ECAS authentication) where users can specify the URL of the Registry exchange file and manage the different procedures related to each of the Registers included in the federation.

The RoR will accept:

For detailed information on required and optional field for the Registry and Register descriptors, prese visit the conformance classes page.

The system will import all the metadata related to the registry, all the metadata for each of the register specified in the list and all the relations between the registers.

The following paragraphs describe the step performed by the RoR Harvesting system.

Use cases

A list of common use cases are described below.

Use case 1 - The user adds a new Registry descriptor

URL check If the request to the specified URL for the Registry descriptor returns a HTTP code other than 200, an error is raised and the procedure stops.
  • Direct feedback in the web UI (visible one time - not stored)
  • Email
Unique check If the specified URL for the Registry descriptor is already available, an error is raised and the procedure stops.
  • Direct feedback in the web UI (visible one time - not stored)
  • Email
Add the descriptor The descriptor is added in the Database. If there is a problem in this operation, an error is raised and the procedure stops.
  • Direct feedback in the web UI (visible one time - not stored)
  • Email
Add the procedure to the procedure list The harvesting procedure is inserted in the procedure list with the status "first insert". If this operation fails, the system removes the Descriptor previously inserted and it raises an error.
  • Direct feedback in the web UI (visible one time - not stored)
  • Email
Start the Registry harvesting The Registry descriptor harvesting is started automatically.
  • Errors stored in the procedure's results
  • Email

Use case 2 - The user removes a Registry descriptor

Remove related Registers The systems will remove all of the registers listed in the Registry file
Remove Registry The systems will remove all of the Registry

Use case 3 - The user removes a Register descriptor from the Registry descriptor

Remove the Registers The systems will remove the Registers Object, Register Descriptor and the related Procedure

Use case 4 - Manual start of the Registry or Register harvesting

Manual start button

The system launchs the Registry or Register harvesting procedure. If there are more than n procedure currently running in the system, the manual started procedure's status is set to "waiting". It will automatically start when one of the procedures that are running ends.

Use case 5 - Automatic start of the Registry or Register harvesting

Action based on the schedule The system checks (based on a defined interval - for example: every day at 00.00) if there are procedures with the "next harvest date" set to the current date. If so, it starts the Registry or Register harvesting. The system can run n procedures at the same time; if there are more than n procedure to run, the other procedures' status are set to "waiting". They will start one by one once the other procedures will finish.

Harvesting

The harvesting procedures are divided based on the type of resource: Registry descriptor and Register descriptor.

Registry harvesting steps

XML check The system checks the validity of the XML
  • Errors stored in the procedure's results
  • Email
RDF check The system checks the descriptor using the XSL validators
  • Errors stored in the procedure's results
  • Email
Registry insert/update The system creates or update the Registry object
  • Errors stored in the procedure's results
  • Email
Registers insert/update

The system check if there are any Registers specifyed in the Registry Descriptor. If so, it checks if the descriptor for each register is already available in the database. If not, it create the Register descriptor.

Then it starts the harvesting for each of the Registers.

  • Errors stored in the procedure's results
  • Email

Register harvesting steps

XML check The system checks the validity of the XML
  • Errors stored in the procedure's results
  • Email
RDF check The system checks the descriptor using the XSL validators
  • Errors stored in the procedure's results
  • Email
Register insert/update The system creates or update the Register object
  • Errors stored in the procedure's results
  • Email
Relation insert/update The system check if the Register has a relation with another register (reliesOn property). If so, it creates/update the relation
  • Errors stored in the procedure's results
  • Email
Search index creation  If some items (defined in that register) are available, the system creates the Solr index.
  • Errors stored in the procedure's results
  • Email

 

Access / Query

The RoR has a browsable web interface that allows the user to navigate through the elements of the federation. The RoR has also a RESTful interface providing machine-readable results in JSON encoding.

Registry operations

Listing all the registries http://inspire-regadmin.jrc.ec.europa.eu/ror/rest/registries
Get a registry detail http://inspire-regadmin.jrc.ec.europa.eu/ror/rest/registries/<registry_localid>

Register operations

Listing all the registers http://inspire-regadmin.jrc.ec.europa.eu/ror/rest/registers
Get a register detail http://inspire-regadmin.jrc.ec.europa.eu/ror/rest/registers/<register_localid>

Relation operations

Listing all the relations http://inspire-regadmin.jrc.ec.europa.eu/ror/rest/relations
Get a relation detail http://inspire-regadmin.jrc.ec.europa.eu/ror/rest/relations/<relation_localid>

REST query interface

REST filter pattern

http://inspire-regadmin.jrc.ec.europa.eu/ror/rest/<registries|registers|relations>/q/<field>=<value>

 

Example RESTful query

Request: http://inspire-regadmin.jrc.ec.europa.eu/ror/rest/registers/27
Response:

{"register": {
  "registry": {
    "description": "The INSPIRE infrastructure involves a number of items, which require clear descriptions and the possibility to be referenced through unique identifiers. Examples for such items include INSPIRE themes, code lists, application schemas or discovery services. Registers provide a means to assign identifiers to items and their labels, definitions and descriptions (in different languages). The INSPIRE registry provides a central access point to a number of centrally managed INSPIRE registers. The content of these registers are based on the INSPIRE Directive, Implementing Rules and Technical Guidelines.",
    "publisher": {
      "label": "European Commission, Joint Research Centre",
      "uri": "https://ec.europa.eu/jrc",
      "email": "inspire-registry-dev@jrc.ec.europa.eu"
    },
    "id": "1",
    "label": "INSPIRE registry",
    "uri": "http://inspire.ec.europa.eu/registry",
    "user": "userid",
    "updatefrequency": "http://publications.europa.eu/resource/authority/frequency/DAILY"
  },
  "description": "Code values for statistics measurement method.",
  "publisher": {
    "label": "European Commission, Joint Research Centre",
    "uri": "https://ec.europa.eu/jrc",
    "email": "inspire-registry-dev@jrc.ec.europa.eu"
  },
  "id": "27",
  "label": "Statistics Measurement Method",
  "uri": "http://inspire.ec.europa.eu/codelist/StatisticsMeasurementMethodValue",
  "updatefrequency": "http://publications.europa.eu/resource/authority/frequency/DAILY"
 }
}

Search interface

The "Federated search" web interface provide a simple searching form with the autocomplete feature. THe system will search through all of the items defined in the different registers that are in the INSPIRE Register Federation.

The result list will provide:

  • The label of the item
  • The URI of the item
  • The URI of the register containing this item

Validation

To be completed

Translation

To be completed