This is the Baseline module of FLD. It is the foundation of the full schema
defined through the Skyline module. The Baseline XML schema is based on the
following EBNF (compared to the full EBNF of RIF-FLD, Group and Document are
omitted, and 'Implies' is missing from the productions for FORMULA and TERMULA).
The nonterminals starting with NEW provide extensions points for FLD
(cf. Section 4 XML Serialization Framework).
FORMULA ::= IRIMETA? CONNECTIVE '(' FORMULA* ')' |
IRIMETA? QUANTIFIER '(' FORMULA ')' |
IRIMETA? 'Neg' FORMULA |
IRIMETA? 'Naf' FORMULA |
IRIMETA? FORMULA '@' MODULEREF |
FORM
FORM ::= IRIMETA? (Var | ATOMIC |
'External' '(' ATOMIC LOCATOR? ')')
ATOMIC ::= Const | Atom | Equal | Member | Subclass | Frame
Atom ::= UNITERM
UNITERM ::= TERMULA '(' (TERMULA* | (Name '->' TERMULA)*) ')'
Equal ::= TERMULA '=' TERMULA
Member ::= TERMULA '#' TERMULA
Subclass ::= TERMULA '##' TERMULA
Frame ::= TERMULA '[' (TERMULA '->' TERMULA)* ']'
TERMULA ::= IRIMETA? CONNECTIVE '(' TERMULA* ')' |
IRIMETA? QUANTIFIER '(' TERMULA ')' |
IRIMETA? 'Neg' TERMULA |
IRIMETA? 'Naf' TERMULA |
IRIMETA? TERMULA '@' MODULEREF |
TERM
TERM ::= IRIMETA? (Var | EXPRIC | List |
'External' '(' EXPRIC LOCATOR? ')' |
AGGREGATE | NEWTERM)
EXPRIC ::= Const | Expr | Equal | Member | Subclass | Frame
Expr ::= UNITERM
List ::= 'List' '(' TERM* ')' | 'List' '(' TERM+ '|' TERM ')'
AGGREGATE ::= AGGRFUNC '{' Var ('[' Var+ ']')? '|' FORMULA '}'
Const ::= '"' UNICODESTRING '"^^' SYMSPACE | CONSTSHORT
MODULEREF ::= Var | Const | Expr
CONNECTIVE ::= 'And' | 'Or' | NEWCONNECTIVE
QUANTIFIER ::= ('Exists' | 'Forall' | NEWQUANTIFIER) Var*
AGGRFUNC ::= 'Min' | 'Max' | 'Sum' | 'Prod' | 'Avg' | 'Count' |
'Set' | 'Bag' | NEWAGGRFUNC
SYMSPACE ::= ANGLEBRACKIRI | CURIE
LOCATOR ::= ANGLEBRACKIRI
Var ::= '?' Name
Name ::= NCName | '"' UNICODESTRING '"'
IRIMETA ::= '(*' Const? (Frame | 'And' '(' Frame* ')')? '*)'