CQL: Contextual Query Language
CQL Context Sets
CQL is so-named ("Contextual Query Language") because it is
founded on the concept of searching by semantics or context, rather than
by syntax. The same search may be performed in a different way on very
different underlying data structures in different servers, but the important
thing is that both servers understand the intent behind the query. In
order for multiple communities to define their own semantics, CQL uses
Context Sets in order to ensure cross-domain interoperability.
Context sets permit CQL users to create their own indexes, relations,
relation modifiers and boolean modiers without fear of chosing the same
name as someone else and thereby having an ambiguous query. All of these
four aspects of CQL must come from a context set, however there are rules
for determining the prevailing default if one is not supplied. Context
sets allow CQL to be used by communities in ways which the designers could
not have foreseen, while still maintaining the same rules for parsing
which allow interoperability.
When defining a new context set, it is necessary to provide a description
of the semantics of each item within it. While context sets may contain
indexes, relations, relation modifiers and boolean modifiers, there is
no requirement that all should be present; in fact it is expected that
most context sets will only define indexes.
Each context set has a unique identifier, a URI. When sending the context
set in a query, a short form is used. These short names may be sent as
a mapping within the query itself, or be published by the recipient of
the query in some protocol dependent fashion. The prefix 'cql' is reserved
for the base CQL context set, but authors may wish to recommend a short
name for use with their set.
An index, relation, or modifier qualified by a context is represented
in the form prefix.value, where prefix is a short
name for a unique context set identifier.
|