Technical architecture and documentation of the NFDI4Objects Knowledge Graph
- n4o-fuseki: RDF triple store
- n4o-graph-apis: web interface and public SPARQL endpoint
- n4o-graph-importer: scripts to import data into the triple store
- n4o-admin: web interface to manage the knowledge graph
- lido-rdf-converter: convert LIDO format to RDF
Another component is planned to provide an admin interface.
graph TD
terminologies(terminologies) --> receive
collections(collections) --> receive
data(research data) --> receive
stage(stage)
subgraph importer ["n4o-graph-**importer**"]
receive[**receive**]
receive -- validate, transform, report --> stage
stage --> load
load[**load**]
end
subgraph n4o-**admin**
admin-ui[**web application**]
end
admin-ui --> importer
admin-ui -- web browser --- admin(admin)
subgraph "n4o-**fuseki**"
kg(triple store)
end
subgraph "n4o-graph-**apis**"
ui[**web application**]
end
subgraph "lido-rdf-**converter**"
lido2rdf[**lido2rdf**]
web-app[**web-app**]
end
stage --> ui
kg -- SPARQL --> ui
ui -- SPARQL --> apps(applications)
receive <--> lido2rdf
load -- SPARQL update & graph store --> kg
web-app <--> ui
ui <--web browser--> users(users)
Clone this repository or copy file docker-compose.yml
and config file config-apis.yml
to a local directory. Then start a new set of docker containers that make the N4O Knowledge Graph:
docker compose up --force-recreate --remove-orphans -V
To update the locally cached Docker images, first run:
docker compose pull
The web interface is made public at http://localhost:8000/ by default. The tool to convert LIDO to RDF is hosted at http://localhost:8000/lido2rdf/.
The importer scripts can be called with docker compose run importer
:
First retrieve the current list of terminologies and their metadata:
docker compose run importer update-terminologies
docker compose run importer load-terminologies-metadata
The terminology metadata should now be listed at http://localhost:8000/terminology/.
Then retrieve and load selected terminologies, e.g.:
docker compose run importer import-terminology http://bartoc.org/en/node/18274 # SKOS
docker compose run importer import-terminology http://bartoc.org/en/node/1644 # CRM
To import collections, fist get and import the list of collections:
docker compose run importer update-collections
docker compose run importer load-collections-metadata
Import of selected collection data is not fully implemented yet.
To retrieve and load the lists of terminologies and collection with one command:
docker compose run importer import-metadata
The following environment variables can be used for configuration:
- PORT
- STAGE
- DATA
The content of this repository can be used freely as Public Domain (CC Zero).