-
Notifications
You must be signed in to change notification settings - Fork 30
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 vocabulary is inconsistent #125
Comments
Yes I agree this is a glitch. You have already outlined the fix. I don't think I am permitted to simply change that file because we are outside of a W3C Working Group. I guess once a SHACL 1.1 WG is created this would be an item to fix. The current Errata already links to this GitHub issues list, so it will be remembered until then. https://www.w3.org/2017/shacl/errata Meanwhile the issue would only be reported as an inconsistency if someone would define a SHACL constraint on sh:namespace. rdfs:range by itself doesn't do any "harm". This ticket will remain open. |
@HolgerKnublauch PySHACL implements the sh:declare feature with the rules defined in https://www.w3.org/TR/shacl/#sparql-prefixes It states:
PySHACL has logic to throw an error when loading a SHACL Constraint, if that constraint has This bug has been around since 2017, but it hasn't been a problem because normally It has come up in this case because:
My question is.. what do you suggest the most logical solution for pySHACL?
|
We have probably made a couple of mistakes in being too strict with datatypes for SHACL itself. For example, many people use xsd:integer values for sh:order although the spec only allows xsd:decimal. I think the proper fix would be to relax the spec in a version 1.1 to allow sh:or. So for sh:namespace you could in principle relax that constraint to allow xsd:string too. You can of course also hard-code an exception for the sh: namespace. In the past I have also redirected owl:imports to local copies, e.g. you can prevent the buggy graph from being downloaded and instead always use your own copy. |
This section in the W3C Process specification seems to be relevant: https://www.w3.org/2019/Process-20190301/#revised-rec |
@HolgerKnublauch
|
The SHACL vocabulary may be inconsistent, since it states that namespaces must be URIs:
but at the same times defines its own namespace with a string:
sh: sh:declare [ sh:namespace "http://www.w3.org/ns/shacl#" ].
The easiest fix here is probably to change the above literal to:
"http://www.w3.org/ns/shacl#"^^xsd:anyURI
The text was updated successfully, but these errors were encountered: