SemApps currently relies on Apache's Jena Fuseki triplestore. Other triplestore could be supported in the future, but it would require to adapt the TripleStoreService.
To be able to offer public SPARQL endpoint which take into account WebACL permissions, we have developed a class which
checks the rights of each triples before returning them. The WebACL triples themselves should be stored on a graph named
http://semapps.org/webacl. You can have more information about this class by reading this page.
If you have activated the MirrorService, mirrored data are also stored on their own graph,
http://semapps.org/mirror. This allows to easily differentiate local data from cached data, and thus improve
performances of SPARQL queries.
Jena Fuseki does not persist graphs by default, so it requires additional configuration for each dataset. To create a
new dataset with the right configuration, you should use the
triplestore.dataset.create action, eventually with the
secure: true parameter if you wish to activate WebACL.
Note that this will work only if you use the Docker image below.
We have created a semapps/jena-fuseki-webacl image which includes the class to check permissions. You should use it if you use WebACL permissions or the mirror service.
Here is an example of a docker-compose.yml configuration file: