22.1.1 Idea

We next approach the concurrent agenda model. This model is fairly more complex model than the mail box but it also captures the essence of the concurrent chart parser of the next section.

An instance of the concurrent agenda model consists of a set of agents (simply threads) and a board. The agents communicate over the board only (and not directely with each other). The board is a realized as a port (mail box) which gives access to a stream of items on the board.

In our appliation to parsing, the board will play the role of a chart and carries edges as items. The collection of all agents will model an agenda. Each agent models a dotted rules which tries to combine with all items of the board. Combination produces a new item on the board (an edge) or new agent (a dotted edge).

The most complex duty to be solved will be to detect the time point when no agent can become active any more, i.e. when the concurrent processing of the agenda is terminated. In order to do so, we distinguish two kinds of items, information items and control items, both of which can be posted to the board. Furthermore, an instance of the concurrent agenda model is equipped with a stateful agent, the watcher, which reads all control items and detects termination.


Denys Duchier, Claire Gardent and Joachim Niehren
Version 1.3.99 (20050412)