Rule syntax - BNF notation

General rule structure

AIXM Business Rules follow the following general pattern:

EBNF source
Rule = "It is prohibited that" ["not"] "elementary condition" {"and" ["not"] "elementary condition"}.

Where:

  • elementary condition is a test that involves one or more AIXM XML elements or attributes and that is evaluated as either True or False. The various types of elementary conditions are explained further down.

Order of logical operators

No parenthesis are used in the expression of the AIXM Business Rules. The following convention is applied: and is evaluated before or.

For example: True and True or False = True.  This means and operators appear in an "inner loop" within the or loop(s).

Rule grammar

The syntax of the AIXM Business Rules complies with the following BNF grammar: https://github.com/aixm/Business-Rules-Grammar 

Work in progress!

The EBNF code is "work in progress". This grammar is currently tested and, when necessary enhanced, in two ways:

  • re-writing of the AIXM Business Rules that are part of the EAD Profile (rules set 0.9.0);
  • creating the new rules for verifying the compliance of AIXM Digital NOTAM data with the Event coding scenarios.

Elementary conditions - mapping to the AIXM XML structure

An elementary condition tests the presence or the values of one ore more AIXM XML nodes. The first node from the first elementary condition that composes a rule is considered the "entry node", as discussed in the Rules execution on AIXM XML data sets part.

The elementary conditions described in this section are based on situations that can exist in valid AIXM XML documents. An AIXM file that does not pass schema validation is not suitable for being verified against AIXM business rules, as it might contain data structures that are completely unexpected, thus not usable.