-
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
behaviour of SHACL Core implementations on shapes graphs with SHACL-SPARQL constructs #63
Comments
Pure SHACL Core implementations simply ignore SHACL-SPARQL - they are triples like any other meaningless triple. On the sh:sparql triple in the shacl-shacl file, there is no harm in keeping it. It only serves to recognize that its subjects are also shapes. The file does not claim to be about pure SHACL Core only. Given our very short remaining runway, my strong preference is to only make changes to the document if absolutely needed. Changing the policy to signal an error does not look sufficiently critical. |
I don't see any wording in the document to the effect that SHACL Core implementations are rquired to ignore SHACL-SPARQL constructs. Interoperability is a core W3C desire. Having SHACL Core implementations ignore SHACL-SPARQL constructs produces silent interoperability failures. |
Do OWL profiles in your view also produce silent interoperability failures because there is no requirement for reasoners to warn that they will not generate inferences as a result of certain OWL axioms? The spec simply identifies a subset of inferences that a reasoner that supports a given profile will generate. It has no statements requiring reasoner to warn that they will not act on some axioms because they are outside of the profile they support. |
Related to this, Peter had last week submitted some test cases that were testing "pure SHACL Core" behavior. However, there is no requirement for SHACL-SPARQL implementations to provide such a "pure SHACL Core" mode, and therefore there would be no way for those implementations to pass these tests. I have now deleted these tests. d966a35 |
In Shapes Constraint Language (SHACL) W3C Candidate Recommendation 11 April "All SHACL implementations MUST at least implement SHACL Core." "SHACL Core processors as processors that support validation with the SHACL "For SHACL Core this specification uses parts of SPARQL 1.1 in non-normative "SHACL-SPARQL is based on SPARQL 1.1 and uses it as a mechanism to declare "Access to the shapes graph is not a requirement for supporting the SHACL So it is clear that SHACL Core implementations do not have to implement 1/ SHACL Core implementations are oblivious of all SHACL-SPARQL constructs. 2/ SHACL Core implementations treat SHACL-SPARQL constructs as having no 3/ SHACL Core implementations treat shapes graphs with significant 4/ SHACL Core implementations treat shapes graphs with any triples whose There is evidence against behaviour 1/ in the SHACL document. The normative ex:s1 sh:sparql "SELECT $this WHERE { }" ; ex:s2 a sh:NodeShape ; Further evidence against behaviour 1/ is that I submitted tests to check out There is evidence for behaviour 2/ in the SHACL document, which states in If the working group wants behaviour 1/ it needs to make that behaviour I think that it is best to go with behaviour 3/, with the determination of |
The intent has always been option 1) so I have clarified this by adding an informative sentence. I also removed the potentially misleading reference to sh:sparql in the SHACL-SHACL graph. See |
We will consider the issue addressed unless we hear back from the submitter within 5 days of the last WG response comment. |
These are new requirements for SHACL Core implementations. Where are the tests to confirm two interoperating implementations? |
"Removed accidental use of sh:sparql in SHACL-for-SHACL graph, clarified that SHACL Core processors ignore SHACL-SPARQL constructs (see Issue #63)." This is not correct. There has already been discussion on the appearance of sh:sparql in the shapes graph, at which time the response was not that the inclusion was accidental but that indeed it did make some nodes be shapes that would not be so otherwise. |
I think you may be referring to me saying that shacl-shacl was not exclusively for SHACL Core processors and, thus, included some checks for shapes outside of SHACL Core. Is this correct? If not, please provide a link to the discussion. |
It's actually the second message in this thread. |
I take it you mean the following: "Pure SHACL Core implementations simply ignore SHACL-SPARQL - they are triples like any other meaningless triple. On the sh:sparql triple in the shacl-shacl file, there is no harm in keeping it. It only serves to recognize that its subjects are also shapes. The file does not claim to be about pure SHACL Core only." In this case, what this says is consistent with all the subsequent messages:
|
Adding a link to the wiki page for the formal objection https://www.w3.org/2014/data-shapes/wiki/PRFO1 |
The shapes graph that is supposed to check for syntactic validity of shapes
graphs includes checks concerning sh:sparql constraints. Are SHACL Core
implementations supposed to check for the syntactic validity of sh:sparql
and other SHACL-SPARQL constructs? What is the behaviour of SHACL Core
implementations on shapes graphs containing shapes with sh:sparql
constraints or containing definitions of SPARQL-based constraint components?
It would be best if SHACL Core implementations were required to signal an
error when given a shapes graph containing shapes with sh:sparql constraints
or containing definitions of SPARQL-based constraint components. This would
eliminate a source of silent interoperability problems.
The text was updated successfully, but these errors were encountered: