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

clarify that owl:import is not enacted for the Data Graph #241

Open
VladimirAlexiev opened this issue Feb 13, 2025 · 3 comments
Open

clarify that owl:import is not enacted for the Data Graph #241

VladimirAlexiev opened this issue Feb 13, 2025 · 3 comments

Comments

@VladimirAlexiev
Copy link

VladimirAlexiev commented Feb 13, 2025

owl:import is enacted in the Shapes Graph, which is a major modularity mechanism:
https://w3c.github.io/data-shapes/shacl/#shapes-graph

SHACL processors SHOULD extend the originally provided shapes graph by transitively following and importing all referenced shapes graphs through the owl:imports predicate.

However, https://w3c.github.io/data-shapes/shacl/#data-graph is silent on what happens with owl:import in the Data Graph.
Why would anyone use owl:import in a data graph? At least 2 reasons:

I suggest NOT to enact such imports, and to add this to https://w3c.github.io/data-shapes/shacl/#data-graph:

owl:import in the data graph is not enacted, in order to avoid uncontrolled increase of validation work.
If you want to validate several related ontologies, pass all of them to the SHACL processor (together or one by one), do not rely on owl:import links.

Such decision/clarification is important for #214

@VladimirAlexiev VladimirAlexiev changed the title should owl:import be enacted for the Data Graph? clarify that owl:import is not enacted for the Data Graph Feb 13, 2025
@HolgerKnublauch
Copy link
Contributor

If something is not stated (like here) then the assumption is that it does not apply. So yes, the engine is not required and should not automatically follow owl:imports. This is, for example, because sometimes the validation should only apply to the "local" resources from a graph but not all imports.

If you find it useful, your prose could go into a non-normative section with an informal PR as it does not change semantics.

@robert-david
Copy link

I think this is still useful to validate ontology RDF data and we saw such examples. Copying over ontologies is not desirable. Having some sort of configuration to decide if owl:imports should be followed would be helpful.

@afs
Copy link
Contributor

afs commented Feb 14, 2025

The engine is given a data graph - we can leave out how that data graph came into being. It might be a graph formed by owl:imports but that isn't the only possibility (union of named graphs, non-RDF virtual graph, etc), but by the time the specs apply, it looks like a single graph.

Calling it sh:imports might make this clear as well.

your prose could go into a non-normative section

The spec could have a <p class=note">...</p> about this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants