Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SHACL's Own Profiles #216

Open
VladimirAlexiev opened this issue Jan 21, 2025 · 8 comments
Open

SHACL's Own Profiles #216

VladimirAlexiev opened this issue Jan 21, 2025 · 8 comments
Assignees
Labels
Profiles For SHACL 1.2 Profiles spec

Comments

@VladimirAlexiev
Copy link

VladimirAlexiev commented Jan 21, 2025

(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:

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
@afs
Copy link

afs commented Jan 21, 2025

This specification will define methods for using SHACL to create formal profiles of (RDF) standards.

I don't understand this part - why is it limited to (RDF) standards / what does that mean?

Support a domain-specific SKOS concept hierarchy (so not an "RDF Standard", it is is written in RDF) that has a "core" and "extended" sections. Is a way to describe, as a profile, the "core" part in-scope of this charter issue?

@gkellogg
Copy link
Member

It seems that Profiles should also cover things like w3c/json-ld-syntax#436, where the Profile parameter is used to describe the syntactic shape of the data, as well as the semantic. JSON-LD profiles are used to describe a given document (or to request such a document) based on if it's expanded, compacted, flattened, or framed, and can be used to specify the frame to use when returning such results.

Updates to how browsers handle CORS has complicated using an IRI to identify the profile.

@VladimirAlexiev
Copy link
Author

@afs This issue is about grouping SHACL's own features into "profiles".

I think your comment is about using SHACL to describe other profiles.
Since SHACL describes RDF data, I think the clarification "(RDF) standards" is correct.
SKOS is a standard on how to express thesauri in RDF.

@ajnelson-nist
Copy link

I confess I'd confused "Profiles" with the 2017 spec's entailments regime support (Section 1.5).

Is there any intent to relate the profiles described in this thread with with entailment regimes?

@VladimirAlexiev
Copy link
Author

SHACL uses only rdfs:subClassOf, which is a small part of RDFS.
I don't think there is appetite to enlarge use of reasoning; SHACL wants to do it in its own way, see #215

@afs
Copy link

afs commented Jan 26, 2025

Is there any intent to relate the profiles described in this thread with with entailment regimes?

In this thread, focused on SHACL's features, maybe not. I'm reading that as the profiles for "SHACL-UI" so as not to pick up, say, "SHACL-rules".

As an example of an entailment regime, RDFS is 6 rules, plus rules for meta-modelling, and axiomatic triples.

https://www.w3.org/TR/shacl-af/#rules-execution --

Note that this algorithm only covers a single "iteration" over all rules, without prescribing the behavior if the same rule needs to be applied multiple times after other rules have fired. The latter is left to future work.

My emphasis. Profiles come in for SHACL Rules for rulesets and assumed evaluation. Where the boundaries of WG work are is not clear (to me at least). The WG has finite resources in people and time so choices to be made.

SHACL wants to do it in its own way, see #215

Node Expressions are part of the picture here but they aren't the whole picture (SHACL Rules).

An issue I see arising is that the core phase1 ("a few months") may be dependent on, or at least making assumptions about, phase 2 work e.g. sh:targetNode.

@HolgerKnublauch
Copy link
Contributor

Yes, I think the derived properties from #215 are quite different from graph-level inferences using something like sh:rule. Derived properties can usually be computed on-demand, e.g. whenever a certain property is requested for rendering, while the algorithms that produce additional triples from sh:rules may require more complex infrastructure, e.g. for chaining sh:construct rules. Also, they may be seen as competitor to existing rule frameworks such as RIF and thus attract more external scrutiny.

A decision whether we want to support derived properties needs to be made for Core (soonish) while the graph-level inferences can be decided later and handled by a special interest subgroup. We could check which of the requirements for inferencing can be already covered by the derived properties and which require a full-blown rule engine.

@VladimirAlexiev
Copy link
Author

All these are important considerations for #215. But please stop commenting about inference in this issue. Cheers!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Profiles For SHACL 1.2 Profiles spec
Projects
None yet
Development

No branches or pull requests

6 participants