Skip to content

#429: Have SHACL-SHACL warn about unsatisfiable usage of sh:in and sh:xone #451

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

Open
wants to merge 1 commit into
base: gh-pages
Choose a base branch
from

Conversation

ajnelson-nist
Copy link
Contributor

Closes #429 .

This patch revises part of the implementation in PR 417.

  • in-minListLength was not added to the Core document, but it was referenced in SHACL-SHACL. Verbiage is added to Core in line with the text drafted for Issue 429.
  • xone-memberShape was added as a reference in SHACL-SHACL, but doesn't exist in the Core document. xone-members-node is the anchor in the Core document. xone-members-node is now used.
  • The PropertyShape for sh:in set a minimum required length of 1, which after discussion in Issue 429 appears to be a backward- incompatible change. A shape paralleling the original suggestion for sh:xone is added to house that new restriction at the same warning- level severity.

An implementation style point: The property shapes housing sh:minListLength are given IRIs after sketching a test (.../in-003.ttl) and assuming it would be more desirable to have an IRI-identified shape in the results graph, rather than a blank node.

A testing style point: Rather than running SHACL-SHACL over the whole of a test, shapes from SHACL-SHACL are copied into some focused tests (.../{in,xone}-003.ttl).

…:xone

This patch revises part of the implementation in PR 417.

* `in-minListLength` was not added to the Core document, but it was
  referenced in SHACL-SHACL.  Verbiage is added to Core in line with the
  text drafted for Issue 429.
* `xone-memberShape` was added as a reference in SHACL-SHACL, but
  doesn't exist in the Core document.  `xone-members-node` is the anchor
  in the Core document.  `xone-members-node` is now used.
* The `PropertyShape` for `sh:in` set a minimum required length of 1,
  which after discussion in Issue 429 appears to be a backward-
  incompatible change.  A shape paralleling the original suggestion for
  `sh:xone` is added to house that new restriction at the same warning-
  level severity.

An implementation style point: The property shapes housing
`sh:minListLength` are given IRIs after sketching a test
(`.../in-003.ttl`) and assuming it would be more desirable to have an
IRI-identified shape in the results graph, rather than a blank node.

A testing style point: Rather than running SHACL-SHACL over the whole of
a test, shapes from SHACL-SHACL are copied into some focused tests
(`.../{in,xone}-003.ttl`).

References:
* #429
* #417

Signed-off-by: Alex Nelson <[email protected]>
@ajnelson-nist ajnelson-nist added the Core For SHACL 1.2 Core spec label Jul 29, 2025
@ajnelson-nist ajnelson-nist requested a review from jeswr July 29, 2025 14:32
Copy link
Member

@jeswr jeswr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM - apologies for the delay in reviewing

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

Successfully merging this pull request may close these issues.

sh:xone and list length
2 participants