Which elements of a source structure may leave, expressed as sets over a declared default, and how those elements are addressed.
selection-scope-and-defaults
Selection Sets and Default Treatment
Include and exclude sets over source elements, the default treatment applied to everything the sets do not name, and whether the shape is closed against elements it has never seen.
Questions
- What treatment applies to a source element that neither the include nor the exclude set names?constraint
Expected answer
- default treatment code (omit, deny, mask, pass-through)
- justification for a default other than omit
- When an include path and an exclude path both match one element, which prevails and on what rule?decision
Expected answer
- resolution rule code (exclude-wins, most-specific-wins)
- worked example path pair
- Which elements must survive selection for the output to remain usable, and what happens when the policy would remove them?requirement
Expected answer
- mandatory element path list
- failure mode code (refuse, serve degraded, empty result)
- How is an element treated that was added to the source after this shape was authored?exception
Expected answer
- closure mode code (closed, open)
- unmatched-element outcome code
- notification target reference
path-expression-and-addressing
Path Expression and Element Addressing
How a shape addresses source elements across media, which grammar it uses, and what keeps an address resolvable when the source moves or repeats elements.
Questions
- Which path grammar and grammar version does this shape use to address source elements?definition
Expected answer
- grammar identifier (RFC 9535 JSONPath, RFC 6901 JSON Pointer, column name, property IRI)
- grammar version
- How is an element located when the source is not a JSON tree, such as a tabular column, an RDF triple, a binary region or a span of free text?interoperability
Expected answer
- media kind code
- media-specific locator expression
- locator normalisation rule
- How does an address stay resolvable when the source element is renamed, moved or occurs many times?identity
Expected answer
- normalized path form
- prior-path alias list
- repetition semantics code (all matches, first match)
- Which path constructs are forbidden because their result is non-deterministic or unbounded?constraint
Expected answer
- forbidden construct list
- rationale per construct
graph-extent-and-nested-shape
Expansion, include, and hierarchical node selection
Output shape is a graph, not only a column list. OData $expand includes related resources inline and may nest $select; context URLs describe projected+expanded entities. GraphQL selection sets are hierarchical down to scalars. FHIR _include/_revinclude add referenced resources; they cannot mix with _summary=text. JSON:API compound documents require full linkage except where sparse fieldsets exclude relationship fields. XACML Multiple Decision Profile interprets a multiple:content-selector XPath as one decision per node. This model records maximum expand depth, allowed navigation paths, and whether related resources inherit the parent policy or a nested policy.
Questions
- Which navigation/relationship paths may be expanded, and to what maximum depth?constraint
Expected answer
- expansion_extent — array<{path, max_depth}>, cardinality 0..n
- Does each expanded type use this policy, a nested projection-policy reference, or inherit parent treatments?relationship
Expected answer
- nested_policy_binding — array<{type_or_path, policy_ref, inherit}>, cardinality 0..n
- For hierarchical XML/JSON resources, is a content-selector (XPath/JSONPath) used to name the nodes whose shape is governed, analogous to XACML multiple:content-selector?identity
Expected answer
- hierarchical_selector — object{language, expression}, cardinality 0..1
Artifacts
- Field scope documentInclude/exclude path lists, default treatment, expansion extent, hierarchical selector, nested policy refs — compiled against one source schema version.