This language comprises three categories. Queries are formed by abstracting variables from sentences. Sentences are built up by means of the usual connectives and quantifiers, together with equality, the inequalities and the table membership construct ( is a metavariable over tables), while terms comprise constants and variables. The term is not essential, it merely provides an anonymous implicit existential quantification, e.g.:
The translation process makes use of information contained in the Extended Data Model (EDM) which allows us to map our domain independent logical expressions onto the appropriate database objects. Formally, this information is represented as a set of equivalences of the form
where is a predicate in the first order logic, and are individual variables, and is any URC sentence.