Skip to content

docs(query-language): declare IDTA-01002 as SoT for formula grammar (T-01)#589

Open
aorzelskiGH wants to merge 1 commit into
IDTA-01002-3-2_workingfrom
docs/formula-grammar-sot
Open

docs(query-language): declare IDTA-01002 as SoT for formula grammar (T-01)#589
aorzelskiGH wants to merge 1 commit into
IDTA-01002-3-2_workingfrom
docs/formula-grammar-sot

Conversation

@aorzelskiGH
Copy link
Copy Markdown
Contributor

Summary

Add a normative subsection "Single source of truth for the formula grammar and JSON Schema" to the Query Language chapter. This formally names IDTA-01002 as the authoritative source for all formula productions shared with IDTA-01004 (Security / Access Rule Model).

Problem

Today the same formula grammar (logical expressions, comparisons, FieldIdentifiers, value literals, type casts, $match/$and/$or/$not) and the same JSON Schema blocks are shipped in both aas-specs-api and aas-specs-security. The two copies are maintained in parallel, but no text states which one is authoritative. This creates recurring drift between the two specs (recent examples: timeLiteralPattern, $dayOfWeek refs, supplementalSemanticIds).

Solution

  • Add a new subsection === Single source of truth for the formula grammar and JSON Schema right below the existing note that Query Language and Access Rules share the same BNF grammar.
  • State that formula productions are normatively defined in IDTA-01002.
  • State that IDTA-01004 MUST NOT redefine or diverge from these productions and only adds Access-Rule-specific productions on top.
  • Clarify that bugfixes in IDTA-01002 are automatically inherited by IDTA-01004.

Affected files

  • documentation/IDTA-01002-3/modules/ROOT/pages/query-language.adoc

Review notes

  • Pure documentation change, no normative change to the grammar or schema content.
  • Companion PR in aas-specs-security adds the mirrored statement.

Refs: Review Finding T-01

Add a normative subsection "Single source of truth for the
formula grammar and JSON Schema" to the Query Language chapter.
This clarifies that all formula productions (logical
expressions, comparisons, FieldIdentifiers, value literals,
type casts, $match/$and/$or/$not) are defined here and MUST
NOT be redefined or diverged from in IDTA-01004 (Security).

This matches the long-standing practical situation where the
two specs ship the same BNF fragments and JSON Schema blocks
but did not explicitly name one of them as the authoritative
source.

Refs: Review Finding T-01
Made-with: Cursor
[#formula-grammar-sot]
=== Single source of truth for the formula grammar and JSON Schema

The BNF grammar and JSON Schema productions for *formula expressions* (logical expressions, comparisons, FieldIdentifiers, value literals, operands, type casts, and `$match` / `$and` / `$or` / `$not` operators) are *normatively defined in this specification* (IDTA-01002, this chapter and the JSON Schema below).

The BNF grammar and JSON Schema productions for *formula expressions* (logical expressions, comparisons, FieldIdentifiers, value literals, operands, type casts, and `$match` / `$and` / `$or` / `$not` operators) are *normatively defined in this specification* (IDTA-01002, this chapter and the JSON Schema below).

IDTA-01004 Part 4: Security xref:bibliography.adoc#bib3[[3\]] uses the same formula grammar and schema for `FORMULA`, `FILTER` and related constructs in Access Rules. IDTA-01004 MUST NOT redefine or diverge from these shared productions; it only adds Access-Rule-specific productions (`ACL`, `OBJECTS`, `RIGHTS`, `ACCESS`, `ROUTE`, etc.) on top.

IDTA-01004 Part 4: Security xref:bibliography.adoc#bib3[[3\]] uses the same formula grammar and schema for `FORMULA`, `FILTER` and related constructs in Access Rules. IDTA-01004 MUST NOT redefine or diverge from these shared productions; it only adds Access-Rule-specific productions (`ACL`, `OBJECTS`, `RIGHTS`, `ACCESS`, `ROUTE`, etc.) on top.

If a future bugfix or minor release changes a shared production in IDTA-01002, IDTA-01004 inherits that change. Implementations SHOULD validate formulas against the schema shipped with their IDTA-01002 version.
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.

3 participants