Query languages

From korrekt.org

A query language is any formalism that can be used to define queries, where a query is a function that takes a database (or set of facts) as an input and that returns a list or set of results as an output. Therefore, many formalisms in knowledge representation and reasoning can be considered as query languages.

In particular, this applies to many kinds of rule languages, which are typically used to infer consequences from a set of facts. The close relationship between query languages and rule languages is also evident when observing that any query can be used as a body (premise) of a rule. Extending a query language with some formalism for defining new facts from query results thus yields a rule language. In SPARQL, for example, the CONSTRUCT feature provides an immediate mechanism to create facts from query results; to obtain a rule language, it only remains to apply such queries recursively.

On this page, I focus on a slightly more narrow definition of query language in order to avoid the extensional identification with rule languages. All of the above works focus on problems and motivations that are related to query answering. My earlier works were mainly concerned with query answering in the presence of ontologies, which today might be called ontology-based data access. These works usually considered basic positive, existential queries (conjunctive queries or disjunctive queries). More recently, I have also studied new query languages that combine some recursive expressiveness (as found in rule languages) with favourable computational properties (such as decidability of query containment).

See also:

Publications related to this topic

Updates to the following list are also available as RSS feed. A list of all publications is also available.