Hi Ben,
Not currently I'm afaird but certainly something to provide.
Question to everyone:
Would it work if the same SHACL rules applied to all graphs? Or are
there cases where different graph have different sets of shapes?
It is possible to prune the validation work significantly because many
constraints don't need the whole dataset so having many shapes, most of
which don't apply to a graph should not have too much impact.
What is more the validation is focused on changes:
* the validation is only on the triple added (e.g. sh:datatype) - and
does not need access to the database so it can be done in parallel
outside the transaction.
* the validation needs local changes (e.g. minCount) to the entity
(subject and all triples with that subject) - that can be used to reduce
the number of validations done. If a entity isn't touched, no validation
necessary.
* global - needs access to the whole database. Not much can be done
except execute inline at the end of the transaction.
(from
https://lists.apache.org/thread.html/rc4df58fba718a0cbfe9305cee9ab24c6c25bc162c468f9336f059b85%40%3Cusers.jena.apache.org%3E
)
or does it need something more compliucated, may be even targeting graphs?
https://afs.github.io/shacl-datasets.html
Another thing to add is SHACL-C (Compact syntax), at least for reading,
for manageability in the case of many relatively simple constraints.
Andy
On 20/05/2020 13:08, Benjamin Geer wrote:
Hello,
Is it possible to configure Fuseki to use
org.apache.jena.shacl.GraphValidation, so that each update is accepted only if,
after the changes, the union of all named graphs in the dataset would be valid
according to SHACL shapes that are configured on the server? In other words, to
do what the Shacl02_validateTransaction example does, but for updates submitted
to Fuseki?
Ben
---
Data and Service Center for the Humanities (DaSCH)
University of Basel, Switzerland
https://dasch.swiss <https://dasch.swiss/>