Repository navigation
Conversation
jdsika
marked this pull request as draft
October 5, 2026 12:01
jdsika
force-pushed
the
feat/shaclgen-postcondition-range-expression
branch
from
October 5, 2026 12:11
58b7817 to
cf5a2df
Compare
jdsika
marked this pull request as ready for review
October 5, 2026 12:25
jdsika
force-pushed
the
docs/shaclgen-rule-constraints
branch
2 times, most recently
from
October 6, 2026 18:20
442dd51 to
6a78f26
Compare
Author
|
Update: reopened as a test-only follow-up on #20 (see the description). #20 (mirror of linkml#3990, head c89faac) supersedes this PR's original implementation. Its composed translation handles nested
|
jdsika
changed the base branch from
docs/shaclgen-rule-constraints
to
feat/shaclgen-compositional-rule-fallback
October 7, 2026 08:18
The composed rule translation handles a range_expression in a postcondition with the same code as in a precondition, but its tests exercised nested postconditions only in a closed world. Pin the cases specific to nested postconditions: - open_world: an omitted or empty wrapper satisfies the rule, and a present non-matching value violates it; - closed world: an empty wrapper satisfies the inner value condition, and every member of a multivalued wrapper must satisfy it; - an enum value with a meaning compares as that IRI, resolved on the range class; - a condition on the range class's identifier skips the rule. Signed-off-by: jdsika <carlo.van-driesten@vdl.digital>
jdsika
force-pushed
the
feat/shaclgen-postcondition-range-expression
branch
from
October 7, 2026 08:20
cf5a2df to
fbc5a66
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Test-only follow-up to #20 (mirror of linkml#3990). #20's composed translation handles a
range_expressionpostcondition with the same code it uses for preconditions, but its tests covered nested postconditions only in a closed world. This PR pins the nested-postcondition cases:open_world, wrapper omitted or emptyopen_world, value doesn't matchmeaningThe JSON Schema cases run for the declaring class and for a subclass. Four mutants of the shared code are each killed by the new cases: the inner presence default flipped,
open_worldignored, the identifier check removed, and enummeaningignored. No code changes.History: this PR first implemented the translation itself, using an existential query form, so it had to skip multivalued wrappers and optional or multivalued inner slots. #20 now translates those cases. On this PR's original schemas, SHACL and JSON Schema agree on all 15 instances checked. The original commit is replaced by this test-only commit.
Fork stack: #19 → #20 → #35 (tests); #23 (docs) is also based on #20.