SHACL implementation on RDFUnit

There was a question from Peter yesterday on details about my (draft)
implementation but I wanted to share this with the group anyway.

the current status can be tracked here:
https://github.com/AKSW/RDFUnit/labels/SHACL
Most of the core constructs are covered and tested with my own test cases
<https://github.com/AKSW/RDFUnit/tree/master/rdfunit-core/src/test/resources/org/aksw/rdfunit/validate/data/shacl>
but the implementation is quite fragile right now.
Meaning validation might break if something deviates from standard
(supported) definitions.

As you already probably figured out, I use code generation to build up the
queries and everything that is supported so far is integrated to the
RDFUnit philosophy and operations, meaning
- can be executed on SPARQL Endpoints
- has different levels of result reporting (status, aggregated, simplified
shacl & shacl)
- one can mix owl, shacl, RS & DSP constraints all together and execute them

some differences with Holger's (current) implementation
- sh:valueShape implementation is evaluated using a bottom-up approach and
creates separate checks for every sub-shape/facet. IIRC Holger's does the
same thing but delegates this the SPARQL engine with sh:hasShape while I
keep the logic in RDFUnit.
- I plan to do the same with sh:and / sh:or / sh:not but to support that I
need some major refactoring on my test execution engine
- recursion is not supported atm, (actually the current code might get in
an endless loop is some recursion cases)

Other minors:
- severity is supported but atm I use the RDFUnit severity levels, I plan
to move to shacl severities soon
- custom sparql queries are not supported yet, I need to align them with my
SPARQL definitions
- the shacl validation report are implemented but I need some more work on
metadata like sh:sourceShape/Constraint etc

If you want to test it, use the command line
<https://github.com/AKSW/RDFUnit/wiki/CLI> or code directly
<https://github.com/AKSW/RDFUnit/wiki/LIB>, the webdemo is not updated  yet
(ping me if you get into trouble).

Best,
Dimitris
-- 
Dimitris Kontokostas
Department of Computer Science, University of Leipzig & DBpedia Association
Projects: http://dbpedia.org, http://rdfunit.aksw.org, http://
http://aligned-project.eu
Homepage:http://aksw.org/DimitrisKontokostas
Research Group: AKSW/KILT http://aksw.org/Groups/KILT

Received on Friday, 26 February 2016 09:26:20 UTC