- From: simon via GitHub <noreply@w3.org>
- Date: Mon, 25 Aug 2025 09:41:50 +0000
- To: public-shacl@w3.org
simonstey has just submitted a new pull request for https://github.com/w3c/data-shapes: == feat: Implement sequence processing improvements for SHACL Node Expressions (Issue #484) == This pull request implements comprehensive changes to address [Issue #484](https://github.com/w3c/data-shapes/issues/484) regarding sequence processing naming inconsistencies in SHACL Node Expressions. The changes align the vocabulary and documentation with the sequence-based nature of node expression processing while maintaining backward compatibility through deprecation notices. ## Problem Statement SHACL Node Expressions are fundamentally sequence-based but were using set-style operation names, creating confusion: - Operations like `union` and `minus` suggested set semantics despite working on ordered sequences - The generic `path` property conflicted conceptually with constraint `sh:path` - Missing advanced sequence operations limited processing capabilities ## Solution ### 1. Vocabulary Renaming for Sequence Semantics **Renamed Operations:** - `shnex:union` → `shnex:join` - Emphasizes sequence concatenation with order preservation - `shnex:minus` → `shnex:remove` - Clearer operation name for sequence subtraction - `shnex:path` → `shnex:pathValues` - Distinguishes from constraint `sh:path` (needs to align with #514 ) **Deprecation Strategy:** - Updated `shacl.ttl` with deprecation notices for `sh:union` and `sh:minus` - Maintained backward compatibility while guiding migration to new terms ### 2. Advanced Sequence Operations **New Operations Added:** - `shnex:flatMap` - Applies expression to each input node and flattens results - `shnex:findFirst` - Returns first node conforming to a given shape - `shnex:matchAll` - Returns true if all nodes conform to a given shape ## Files Modified ### Vocabulary Files - **`shacl12-vocabularies/shnex.ttl`** - Added complete RDF definitions for FlatMap, FindFirst, and MatchAll expressions - Updated existing definitions with sequence-appropriate naming - Enhanced property comments for clarity - **`shacl12-vocabularies/shacl.ttl`** - Added deprecation notices for `sh:union` and `sh:minus` - Clear migration guidance to new sequence-based terms ### Documentation - **`shacl12-node-expr/index.html`** - Renamed sections: UnionExpression → JoinExpression, MinusExpression → RemoveExpression ### New Advanced Operations: ```turtle # Find first senior employee sh:values [ shnex:findFirst [ shnex:nodes [ shnex:pathValues ex:employee ] ; shnex:findFirst ex:SeniorEmployeeShape ; ] ; ] . # Check if all employees are active sh:values [ shnex:matchAll [ shnex:nodes [ shnex:pathValues ex:employee ] ; shnex:matchAll ex:ActiveEmployeeShape ; ] ; ] . ``` Fixes #484 - Sequence processing naming inconsistencies --- **Reviewers:** Please pay special attention to: - Vocabulary definition completeness in `shnex.ttl` - Evaluation semantics for new advanced operations - Example accuracy and practical utility - Documentation clarity and consistency Closes #484 * [See this document rendered online here](https://raw.githack.com/w3c/data-shapes/issue-484-sequence-processing/shacl12-node-expr/index.html) See https://github.com/w3c/data-shapes/pull/526 -- Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Monday, 25 August 2025 09:41:51 UTC