A Harness Language for Cooperative Information Systems

Keith L. Clark and Nikolaos Skarmeas


In this paper we introduce a high level process based programming language, AprilQ, and we illustrate its use for building distributed and cooperative information systems over the internet. The language is a macro implemented extension of the distributed symbolic programming language April.

In AprilQ, a process can query and update its own sets of records. It can also query those of any other process with which it is acquainted. The other processes can be located anywhere on the Internet. The queries are expressed in a high level query language which is a hybrid of Prolog and SQL syntax. A reply can be the set of answers, or a handle that can be used to retrieve the answers one at a time, as required. A process can also import relations from another process, or a data base server. To a querier there is no difference between a local and an imported relation. Such an importing process can therefore act as a transparent interface to a distributed and persistent information system spread over the internet.

There remains the question of how information sources become acquainted. For this purpose KQML style advertise, subscribe and recommend messages can be used in conjunction with intermediary brokering agents. We show how such a KQML cooperation layer can be constructed using AprilQ.

In: Cooperative Information Systems, (ed M. Papazoglou & Schlageter), Academic Press, 1997.

Click here for a compressed PostScript version of the paper (aprilq.ps.gz, 72892 bytes).