Table of contents:
The Knowledge Graph is based on the Apache Jena Fuseki SPARQL server. As such it interacted with through the SPARQL Query Language. The server itself is schema-agnostic, meaning the data-schema is solely defined by the user. In disco-graph the interaction with the server is done exclusively via the graph-connector, which makes sure that all queries are well-formed and comply with the defined schema.
The schema revolves around publications that are represented as documents with a number of attributes. Each publication is
associated with any number of keywords and so-called additional attributes.
Each keyword of a publication is associated with a publication-specific keyword instance. This keyword instance has a status attribute that is used to track whether users confirm how fitting the keyword association is, and a keyword as type. This keyword type that represents a language independent representation of a keyword that is associated with any number of keyword instances of different publications.
Additional Attributes are placeholders for custom attributes associated with publications. Their schema shares similarities
with the schema of keywords, as there are also attribute instances with a verification status that are of an Attribute type.
Additionally, the Attribute type is subclass of an so-called Attribute Flavor which describes the context of the Attribute.
For example associating the research group responsible for a publication as additional attribute would mean that there is
an Attribute Flavor "Group", which has Attribute types as subclasses representing the specific different research groups.
Since disco-graph uses the Fuseki project as it is, the only code is the deployment code found in the deploy/docker/fuseki directory. This folder contains the Dockerfile used to build the docker image and the docker-compose.yml file used to control the deployment.