This is the XML schema for the Condition Language as defined by
the RIF Core Dialect.
The schema is based on the following EBNF for the RIF-Core Condition Language
(prepared for generalization to the RIF-BLD and RIF-PRD Condition Languages):
FORMULA ::= IRIMETA? 'And' '(' FORMULA* ')' |
IRIMETA? 'Or' '(' FORMULA* ')' |
IRIMETA? 'Exists' Var+ '(' FORMULA ')' |
ATOMIC |
IRIMETA? Equal |
IRIMETA? Member |
IRIMETA? 'External' '(' Atom ')'
ATOMIC ::= IRIMETA? (Atom | Frame)
Atom ::= UNITERM
UNITERM ::= Const '(' (TERM* ')'
Equal ::= TERM '=' TERM
Member ::= TERM '#' TERM
Frame ::= TERM '[' (TERM '->' TERM)* ']'
TERM ::= IRIMETA? (Const | Var | 'External' '(' Expr ')')
Expr ::= UNITERM
Const ::= '"' UNICODESTRING '"^^' SYMSPACE | CONSTSHORT
Name ::= UNICODESTRING
Var ::= '?' UNICODESTRING
SYMSPACE ::= ANGLEBRACKIRI | CURIE
IRIMETA ::= '(*' IRICONST? (Frame | 'And' '(' Frame* ')')? '*)'