Re: Seeking successful SHACL use cases

Hello Benjamin

Le lun. 24 mars 2025 à 09:39, Benjamin Degenhart <
benjamin.degenhart@foerderfunke.org> a écrit :

> Hello,
>
> Prof. Pieter Colpaert recommended turning to this list with my question.
>
> I am preparing a presentation about SHACL to the FITKO, a public-law
> institution in Germany that plays a major role in digitizing the public
> administration. They are evaluating different options to embed validations
> in their body of standardized data fields (https://fimportal.de) and are
> interested to hear from our experience using SHACL at my startup
> FörderFunke. We describe the eligibility rules for state benefits as SHACL
> shapes ("law/rules as code") and use that to validate user profiles to tell
> people what they are eligible for.
>
> To build my presentation and in anticipation of questions they might have,
> I would be grateful for your input on the following:
>
> 1. What are examples of SHACL being used in (big) production workloads?
>

The European Parliament Open Data Portal (EPODP) is successfully using
SHACL (https://data.europarl.europa.eu/de/developer-corner) across all its
data workflow : data acquisition, KG specification, dataset families
structure specification and documentation. I don't know if you would call
it "big" - the KG is currently 60 million triples, dozens of internal
datasources integrated in the KG. At least it is a good example of usage in
a public administration.
Some details in French at
https://semweb.pro/conference/2024/presentation/liudvinaviciute-retex_graphe_europarl/


>
> 2. Some say, SHACL (especially when SHACL-SPARQL is involved) is hard to
> read/write for "newcomers" and there might be easier rule/validation
> languages. Do you agree? Do you know of tools that make it easier or even
> lets people create shapes without having to deal with the syntax at all?
>

We are using spreadsheet templates:
https://shacl-play.sparna.fr/play/shaclexcel
This is used by EPODP to edit all their SHACL specifications.
IMHO, the point is not about how easy or hard the syntax is, it is about
the lack of generally available tools for shapes maintenance. We are
lacking the Protégé for SHACL.


>
> 3. In what ways have you seen SHACL being used? I presume, the "original"
> and largest use case is validating large graph datasets? The way we are
> using it at FörderFunke to evaluate someone's eligibility in the context of
> state benefit means: starting from an empty profile with lots of
> MinCountConstraintComponent results. One by one we ask the user those
> missing data fields until only violating or conforming shapes are left. I
> know of two other efforts that use SHACL in a similar way:
> - Distributed Social Benefit Allocation using Reasoning over Personal Data
> in Solid - IDLab at imec:
> https://ceur-ws.org/Vol-3443/ESWC_2023_DMKG_paper_2204.pdf
> - Using the Shapes Constraint Language for modelling regulatory
> requirements - Veronika Heimsbakk (Capgemini), Kristian Torkelsen:
> https://arxiv.org/abs/2309.02723
> If you heard of similar or other uses of SHACL, please let me know.
>

In EPODP, SHACL is used for:

   - data validation at data ingestion step
   - automated documentation publication (e.g.
   https://europarl.github.io/eli-ep/ is generated automatically from the
   SHACL spec)
   - and we have explored or are exploring right now the following aspects :
      - automated SPARQL CONSTRUCT queries generation to extract a subset
      of the KG corresponding to a dataset specified in SHACL (
      https://shacl-play.sparna.fr/play/sparql#documentation-1)
      - automated JSON schema generation for REST API (
      https://shacl-play.sparna.fr/play/jsonschema)
      - automated JSON-LD context generation (
      https://shacl-play.sparna.fr/play/context)

(so as you can see, no inference right now)


>
> 4. I would like to pitch it also as a solution to build and dynamically
> adjust forms. We are experimenting with this by trying to
> integrate "decision tree logic" into SHACL. Some of the new SHACL 1.2
> features will help a lot here. Thanks to Thomas Bergwinkl's "experimental"
> branch on shacl-engine, we can already conditionally set sh:deactivated
> using Node Expressions. In that way we can say: "we are only interested in
> this, if that other thing is the case". Have you seen use cases that use
> shapes in this sort of conditional, dynamically adjusting way?
>

Nope

Cheers
Thomas


>
> Thanks and best regards
>
> *Benjamin Degenhart*
> Co-Founder & Knowledge Engineer | FörderFunke
>
> FörderFunke UG (haftungsbeschränkt)
> c/o Impact Hub Berlin, Rollbergstraße 28A, 12053 Berlin
> USt-IdNr.: DE369936723 | Geschäftsführung: Benjamin Degenhart, Ben Gläser
> Handelsregisternummer: HRB 267043 B | Amtsgericht Charlottenburg
>


-- 

*Thomas Francart* -* SPARN**A*
linked *data* | domain *ontologies* | *knowledge* graphs
blog : blog.sparna.fr, site : sparna.fr, linkedin :
fr.linkedin.com/in/thomasfrancart
tel :  +33 (0)6.71.11.25.97

Received on Monday, 24 March 2025 10:22:09 UTC