Skip to content

Reference path decomposition #7

@TRThurman

Description

@TRThurman

Summary

This issue proposes additions and clarifications to the EXPRESS-Q specification based on formal analysis comparing the specification against implementation requirements and architecture documentation.

Identified Gaps

1. Incomplete EBNF Grammar

The current grammar in express-q.ebnf is missing several constructs that are documented in the specification prose:

  • Inverse navigation operator (<-): Documented in symbols table but not in EBNF
  • Constraint blocks ({}, \!{}): Documented but grammar only shows []
  • Alternative blocks (()): Documented but not in EBNF relationship production
  • Required path blocks (<>): Documented but not in EBNF
  • Supertype constraint (||): Documented but not in EBNF
  • Aggregate index ([i], [n]): Documented but not in EBNF
  • Line continuation (\): Documented but not in EBNF
  • Enumeration literals (.VALUE.): Not documented at all

2. Missing Constraint Expression Grammar

The specification states:

constraint_expression = ? expression following EXPRESS syntax ?

This is incomplete. Need formal grammar for:

  • Comparison operators (=, <>, <, >, <=, >=)
  • Boolean operators (AND, OR, NOT)
  • String literals ('value')
  • Enumeration literals (.TRUE., .MAXIMUM_MATERIAL_CONDITION.)
  • Attribute paths (entity.attribute)

3. Missing Operator Precedence

No explicit precedence rules for combining operators in complex reference paths.

4. Missing MAPPING_OF Template

Cross-module reference substitution via /MAPPING_OF(entity)/ is used in practice but not documented.

5. Negative Constraint Logic Rules

The \!{} operator is documented but no rules for:

  • Logical interaction with positive constraints
  • Contradiction detection
  • Satisfiability requirements

Proposed Changes

  1. Extend EBNF grammar with complete operator coverage
  2. Add formal constraint expression grammar
  3. Add operator precedence table
  4. Document MAPPING_OF template syntax
  5. Add negative constraint validation rules

References

  • ISO 10303-11:2004 — EXPRESS Language Reference Manual
  • ISO TC 184/SC 4 N2661 — Guidelines for the Development of Mapping Specifications
  • Mapping Spec Validator formal analysis documentation

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions