The system control mechanism utilizes techniques derived from the discipline of artificial intelligence and in particular Blackboard systems. This approach was chosen to allow maximum flexibility of both operation and the implementation of differing models of user interaction. It is this level of flexibility that accounts for Zylaphon's claim to suitability for diverse uses within the domain of music. Zylaphon's implementation of its architecture is more granular and more structured than the typical Blackboard and in some ways it is more rigid: the use of opportunistic data driven methods is highly discouraged except in the most circumscribed situations -- e.g. the solution of contrapuntal problems over a small locus. Problems of efficiency of data driven models aside, the motivation is Zylaphon's intent that user input remain tightly coupled with the system control process.
First two paragraphs of TheAgenda
1. check TheSystemState and user input
2. if TheSystemState is not HALT
3. check
TheAgenda and
if it is empty
4.
sleep, then goto 1
5. else make the top
Goal Active, read
its plan and in sequence
6. for each
Task in
its plan
7.
if the Task is simple
8.
find its Agent and invoke it directly
9.
else
10.
create a Solution Panel
11.
assign a reference to the SolutionPanel to the Active Goal
12.
put the Task on the SolutionPanel
13.
run the SolutionPanel
14.
if the SolutionPanel accomplishes its Task
15.
remove the goal from TheAgenda
16.
goto 1.
17.
else
18.
inform the Goal that it cannot be met
19.
the Goal cleans up after itself
20.
informs its parent that it has failed
21.
and is popped off the agenda
22.
goto 1
Note that only the last Task in a plan may be non-Simple and thus one SolutionPanel, at most, may be associated with a given Goal.
TheSystemState values: RUN, HALT, STEP, N_STEPS. It is within step 1. above that these values are set and processed.
.......