![]() |
1 Introduction
Once information is organised in Topic Map form as informally defined by XTM[xtm] and formally by SAM[sam] this data can be post-processed. Like for many other database technologies there is a major interest to retrieve particular parts out of a Topic Map repository, be it local or a remote one.
There have been already suggested various languages and infrastructures for querying topic map data. They roughly fall into three categories:
- SQL-like languages
- This class of languages try to leverage the existing SQL knowledge. They view a topic maps as a data structure and select portions out of it according to a more or less complex predicate. The result is usually a list of tuples. Examples are [tmql-wrightson, tmql-schmidt, stmql].
- graph languages
- This class is not so populated at the time of writing[tmql-Ksiezyk]. The main idea here is to view a topic map as a heterogeneous graph. The engineer has to navigate in this graph to the requested information.
- logic-oriented languages
- These languages use horn-clauses or first order logic to characterise the result in which one is interested (see e.g.. [tolog]).
In this document another logic-oriented query languages, AsTMa?, is proposed. The objective is to arrive on a language which harmonies with other languages in the Topic Map arena.
We will use the following definitions:
- query statement
- A query statement is a linear text following the syntax given in this document. An AsTMa? processor will parse accordingly this statement checking its syntactic validity. For stylistic reasons we will also refer to a query sometimes as 'query expression' or imprecisely the 'query'.
- query infrastructure
- A query infrastructure
is a system implemented in software or hardware which can process a
query statement. It is expected that the infrastructure provides
proper interfaces (APIs) to
- hand over maps from an application to the infrastructure,
- hand over query statements to the infrastructure,
- and to retrieve query results from the infrastructure.
- compiler
- The compiler is part of the query infrastructure. It parses and analyses the query.
- query
- The query is the actual execution of the query process performed by the query infrastructure as described here.
- query engineer
- The query engineer is typically the human who designs the query statements and will be in most cases the application engineer.
- caller, calling entity
- That entity (a human or an application software) which uses the query infrastructure to initiate a query. In many cases this will be software using a particular API.
Copyright © 2003 Robert Barta
![]() | ![]() | ![]() |




