Binary Languages with Various Levels of Expressivity
Binary languages (as in RDF and OWL properties) could be created at any level, while the binary languages are available in 0.91 and 1.0 only for Datalog and lower in the hand-written XSD.
The orthogonality of the binary sequences module from the expressions module in the Relax NG modular grammar has enabled sublanguages such as "binary hornlog" to be created within the MYNG language lattice. The repo module should not be selected for a truly binary (or dyadic) sublanguage.
In the current implementation, both atomic formulas and expressions are allowed to have exactly two or no arguments.
However, making an analogy to OWL suggests that functions should instead be unary. (Functionality property of dyadic relations is analagous to unary functions.) On the other hand, the introduction of existential rules would lead to a requirement for polyadic skolem functions, independent of the arity of predicates. So perhaps it is necessary to make the arity of predicates and functions separate options.
Note that the MYNG approach already allows binarity (dyadicity?) of predicates and functions to be mixed-in at any level of expressivity. Auto-generation of the XSDs from the Relax NG will resolve this issue.
- See also Unary_Term_Sequences
- Resolved in 1.01 by the introduction of automatically-generated XSDs from the Relax NG. In binary sublanguages at Horn expressivity and up, functions are binary (or nullary).