Description
(Assigning to Nick since he's very familiar with Profiles in GeoSPARQL).
cc @HolgerKnublauch, @afs , @gkellogg , @labra .
The charter https://www.w3.org/2024/12/data-shapes.html says
SHACL 1.2 Profiling: This specification will define methods for using SHACL to create formal profiles of (RDF) standards.
This work will likely build on the profile definitions of the W3C's Profiles Vocabulary which has been used extensively with SHACL constraints and the proposed SHACL 1.2 Inferencing Rules.
That part is about using SHACL as an Application Profiling language.
BTW the link there is to https://github.com/w3c/shacl/labels/profiling
,
and should be changed to https://github.com/w3c/data-shapes/labels/Profiles
(different repo and different label)
This issue is about defining formally SHACL's own profiles, i.e. "logically closed" feature sets, so applications can claim conformance to one or multiple profiles.
The same will be used to organize Conformance Tests into groups (#190).
Here is an example:
- Currently we have SHACL and SHACL-AF
- People also talk about SHACL-Core and SHACL-SPARQL
- SPARQL features are split in the two specs:
- In Core: https://w3c.github.io/data-shapes/shacl/#sparql-constraints, https://w3c.github.io/data-shapes/shacl/#sparql-constraint-components
- In AF: https://w3c.github.io/data-shapes/shacl-af/#SPARQLTarget, https://w3c.github.io/data-shapes/shacl-af/#SPARQLTargetType (and SPARQL functions, SPARQL rules)
- But arguably, an implementation will implement either both of SPARQL Constraints and Targets, or neither. So they should be in one Profile.
- A good practice is to put violation finding in SPARQL Target, and the SPARQL Constraint should only populate the result fields (that still runs 1+N queries, but the difficult work is done in the 1 query).
- Also arguably, parametrization (constraint Components and target Types) belong together in one Profile. Eg rdf4j implements SPARQL Constraints and Targets, but not parametrization
In summary:
- we should define a number of Profiles with their formal URLs.
- maybe we should merge the SHACL specs, or re-split along the lines of Profiles