Knowledge management backend
For the next phase of Genesys we need to better document the meaning of terms, concepts and how they relate. We can (and will) use data and metadata that exists in the Genesys database schema. We want to be able to document the concepts using SKOS. Also see https://www.obitko.com/tutorials/ontologies-semantic-web/ontologies.html.
While following SKOS concepts, we will initially record Genesys terms in the database not RDF store.
Background
Multiple LOD (linked open data) resources contain data highly relevant to understanding and defining Genesys data.
Many of these resources provide not only definitions, but also translations.
Data model
The data modelling of a Concept
follows SKOS nomenclature.
{
"id": "foobar1",
"prefLabel": {
"_": "Default label",
"en": "Something else",
"de": "German label"
},
"altLabel": { ... },
"definition": { ... },
"sameAs" : "https://...",
}
RDF engine
And RDF engine would allow for making inferences about the data, but it appears that we do not yet have a need for that.
https://jena.apache.org appears to be our best match.
In production, Jena (and whatever is needed) will run as a separate Docker container (just like Amphibian) and will be responsible for its data (volume). TBD will most likely be the most appropriate engine as we don't want to overload the Genesys accession database with this data.
Genesys will provide API endpoints to query and interact with the RDF engine.
In this first phase, we want to be able to
- Add a new record to the RDF store
- List (all) records existing in the store
- Retrieve the details from the store