Skip to content

fix: evaluate property shapes of nested SHACL shapes - #15

Merged
St4NNi merged 10 commits into
mainfrom
fix/nested-property-shapes
Sep 25, 2026
Merged

St4NNi merged 10 commits into
mainfrom
fix/nested-property-shapes

Conversation

@St4NNi

@St4NNi St4NNi commented Sep 25, 2026

Copy link
Copy Markdown
Member

Description

Shapes reached through sh:node, sh:or, sh:and, sh:not, sh:xone or sh:qualifiedValueShape have no targets of their own, so their property shapes were never evaluated. The nested check then counted as conforming: a required property missing on a nested node passed, and sh:not over such a shape always failed. Incremental validation had the same gap. A change read only by a nested shape's property shape did not recheck the shapes that reference that nested shape, so a delta result could keep a stale verdict.

Changes

  • Evaluate a shape's property shapes for the same focus node when the shape is checked as a nested shape. The top-level path is unchanged and still reaches property shapes through their inherited targets.
  • Treat changes to a nested shape's property shapes as changes to that nested shape when selecting delta targets and estimating delta work, so parent shapes are rechecked.
  • Add full-validation tests for nested property shapes through each logical and qualified constraint, compared with the reference validator.
  • Add an incremental test where removing and restoring a nested property value flips the delta verdict in line with full validation.
  • Note the fix in the changelog.

@St4NNi
St4NNi merged commit 4621f4e into main Sep 25, 2026
12 checks passed
@St4NNi
St4NNi deleted the fix/nested-property-shapes branch September 25, 2026 22:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant