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:
- the direct URL to the file (e.g. http://inspire.ec.europa.eu/registry/registry.en.rdf)
- the content-negotiation approach (e.g http://inspire.ec.europa.eu/registry - HTTP headers: [Accept: application/rdf+xml])
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. |
|
Unique check | If the specified URL for the Registry descriptor is already available, an error is raised and the procedure stops. |
|
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. |
|
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. |
|
Start the Registry harvesting | The Registry descriptor harvesting is started automatically. |
|
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 |
|
RDF check | The system checks the descriptor using the XSL validators |
|
Registry insert/update | The system creates or update the Registry object |
|
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. |
|
Register harvesting steps
XML check | The system checks the validity of the XML |
|
RDF check | The system checks the descriptor using the XSL validators |
|
Register insert/update | The system creates or update the Register object |
|
Relation insert/update | The system check if the Register has a relation with another register (reliesOn property). If so, it creates/update the relation |
|
Search index creation | If some items (defined in that register) are available, the system creates the Solr index. |
|
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