logo astma
print
prev Up Next

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.
This document does not constrain the nature of the API (subject to change). We sometimes refer to a concrete infrastructure as the implementation.
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

prevUpNext