Code: Select all
VAR Arbitrary BASE RELATION { name CHARACTER } KEY { name };
VAR Arbitrary_predicate BASE RELATION { name CHARACTER, predicate CHARACTER } KEY { name };
CONSTRAINT Arbitrary_predicate_opt Arbitrary_predicate { name } <= Arbitrary { name };
This is one of (probably) many ways of defining an optional attribute.