Multiparty Specification
Multiparty Specification
Multi-party Specification
0 Abstract
1 Introduction
This contrasts with the approach taken by existing specification schemes, methods
and tools which are generally based on specification from a single viewpoint and
refined using examples that consolidate this weakness.
Multi-party Specification - 1
2 Dialogue
Before introducing our model in detail it may be useful to examine the intuitions that
suggested this approach.
The most straightforward of these is that it directly mirrors the conventional setting
of requirements specification in which clients and systems analysts sit around a
table - the clients explaining the requirements, waving documents in the air and
occasionally arguing among themselves while the developers ask guiding questions,
seek clarification, point out inconsistencies and raise unanticipated consequences.
Examining the way in which complex specifications are built and documented - in
natural language - is a well understood way of developing specification techniques
with higher expressiveness (Balzer, Goldman & Wile 1978). The approach is
exemplified by Gist (Balzer 1985) and Pure Tell (Horai, Saeki & Enomoto 1987). It is
not such a great leap of the imagination to extrapolate from this to using the
structure of dialogue as an overall setting.
Finally it is hoped that by having a model which is based on dialogue we might have a
convenient framework to understand empirical studies of specification, generally in
the form of protocols, which are notoriously difficult to analyse (Soloway 1986).
3 Model
The model we present has two parts: an underlying viewpoint architecture and a
dialogue scheme animated by that architecture. Our model also comes in two basic
flavours. Two party dialogues (or multi-party dialogues consisting of many two party
Multi-party Specification - 2
dialogues) and true N party (N>2) dialogues. Currently we have a detailed
understanding of two party dialogues, which we will illustrate in this paper, and have
established the formal underpinning for N party dialogue which will be briefly
reviewed.
The underlying vehicle for defining our model is a formal account of dialogue. Such
accounts have their roots in a number of different traditions:
the game theoretic semantics tradition in which dialogue "games" are used to
define the meanings of components of a formal language, for example Lorenz
(1982);
We have sought to combine the formal apparatus - dialogue logics - of the foundations
of logic tradition with the approach - cooperation and negotiation - of the distributed
artificial intelligence tradition. We have explicitly rejected the competitive approach
typical of the game theoretic semantics tradition and are not directly concerned with
the discourse level issues that dominate both the natural language processing and the
rhetorical tradition. The descriptive tools provided by the computer human
interaction tradition lack the required expressiveness for the less highly
constrained dialogues on which we have focussed.
Multi-party Specification - 3
3.1 Viewpoint Architecture
Figure 1 shows a block diagram of the viewpoint architecture. We have shown two
main participants (Viewpoints A & B) in the diagram. Each additional participant in
a dialogue (such as Viewpoint N) has a similar structure.
Viewpoint A Viewpoint B
Commitment Commitment
store store
(A) (B)
Viewpoint N
Dialogue Event
kernel record
Commitment
store
(N)
Multi-party Specification - 4
The main building blocks of the viewpoint architecture are as follows:
Viewpoint
Commitment store
Each viewpoint has a commitment store which holds it's commitments within
the dialogue. A commitment is the public engagement to a statement that
restricts freedom of action. A commitment to a statement is, in effect, holding
yourself out as liable for the consequences of that statement (just as clients in
"real-life" software specification "commit" themselves by signing off a
requirements statement). As a concept commitment needs to be carefully
distinguished from epistemic notions such as belief, which are essentially
private and which we exclude from our model both on philosophical and
technical grounds. The general status and role of commitments is discussed by
Winograd & Flores (1986). In the context of design Thimbleby (1988) suggests
that "... abstraction and commitment are inverse processes - an abstraction is
an outcome of relaxing commitments and a representation is the outcome of
making commitments".
Working area
Multi-party Specification - 5
Event store
The event store keeps a record of the "dialogue events". It is used by the dialogue
kernel to maintain the legality of the dialogue. Dialogues are flexible and
dynamic, participants make moves to realise their aims based on the revealed
"record of play".
Dialogue kernel
In the two party version of the model responsibility for issues such as control of the
domain of discourse, initiation and completion of dialogues are implicitly assigned
to the individual viewpoints. An alternative approach is to provide each dialogue
with an “agenda” which explicitly handles these issues by establishing a larger set of
commitments at the level of the dialogue itself (this can be thought of as analogous to
the organising role played by a specification method). We are investigating this
approach further in the context of N-party dialogues.
Formal schemes that fit with the architecture outlined above and with our overall
approach to modelling dialogue have been proposed by Hamblin (1971) and more
fully worked by Mackenzie (1981, 1985). We have adopted Mackenzie's dialogue
system - DC - and, with some changes and substantial reinterpretation, are using it
as the basis for validating our intuitions. Below we present a brief overview of the
main elements of DC, using our own notation.
(i) Acts
Multi-party Specification - 6
Denials, to be read as "I deny that it is the case that Statement", notationally
denies(Statement).
(ii) Events
Represented by a triple of the form <Stage, Viewpoint, Act>. Stage marks the progress
of the dialogue, stage, stage+1 and so on. Viewpoint indicates the current speaker. A
dialogue is a sequence of such events.
(iii) Commitments
Represented committed(Stage,Viewpoint).
These constructs are used in the rules of the scheme which are divided into three
subsets:
Establish the "etiquette" or rules governing the legitimate shape of the interaction,
they provide a way of maintaining a "legal" dialogue.
For example:
Multi-party Specification - 7
No legal dialogue of length stage+1 contains an event
<stage-1,hearer,questions(Statement)> unless it also contains an event
<stage,speaker,asserts(Statement)> ∨ <stage,speaker,withdraws(Statement)>
∨ <stage,speaker,denies(Statement)>.
Set out how acts affect the commitment store of each viewpoint (we see these changes
to the commitments as more or less equivalent to the "high level edits" described by
Feather (1987)).
For example:
Commitment rule W:
After <stage,speaker,withdraws(Statement)>
committed(stage+1,speaker)=
committed(stage,speaker) - {Statement}
committed(stage+1,hearer)=
committed(stage,hearer)
Define, syntactically, the form of reasoning permissible within the dialogue and
common to it's participants. Our presentation of DC primarily involves "modus
ponens", though addition of other schemas to fit various logical tastes is a relatively
simple matter. The argument form mechanism for modus ponens is embedded in the
rule below:
Commitment rule G:
After <stage,speaker,asserts(AnotherStatement)>
where the preceding dialogue event was
<stage-1,speaker,why(Statement)>
committed(stage+1,speaker)=committed(stage,speaker) ∪
{AnotherStatement, AnotherStatement -> Statement}
committed(stage+1,hearer)= committed(stage,hearer) ∪
{AnotherStatement, AnotherStatement -> Statement}
Multi-party Specification - 8
As can be seen, not only was {AnotherStatement} added to both stores, as would be
expected, but also {AnotherStatement -> Statement}. If we take {AnotherStatement,
AnotherStatement -> Statement} and apply the modus ponens rule to it, we deduce
{Statement} - exactly what was originally challenged.
4 Examples
Our overall approach may be clarified by looking at some examples. We shall use a
small case study concerning description of an automated travel ticketing system. In
this case study various statements about travel and travel discounts are distributed
between the working area of two viewpoints.
Figures 2, 3 & 4 below, differ slightly from Figure 1 for ease and economy of
presentation. The figures show two viewpoints called respectively A and B each
represented by a shaded box. Each viewpoint has a working area with different
contents (WA (A) and WA (B)). Commitments are represented in separate stores (CS (A')
and CS (B')). The current dialogue event is given in a box at the top of the diagram
alongside an arrow that points from the originator of the event (speaker) to the
recipient (hearer). The commitments stores resulting from that dialogue event (CS (A)
and CS (B)) are shown at the bottom of the diagram. Other figures just show the
commitment stores with the original commitments in a box above a bar showing the
dialogue event and the resulting commitments below. These commitments may in
turn be altered by a subsequent event.
Initially the commitment store is empty. The speaker (B) asserts the statement, in
this case ticket ["can obtain a ticket"] (an immediate consequence of the content of
its working area (discount_fare, discount_fare -> ticket ) ["paid a discount fare" and
"paying a discount fare implies that you can obtain a ticket]), and so by:
Commitment rule S:
If a statement has been made which is not the reply to a challenge then the
speaker and the hearer are obliged to place it in their commitment store.
Multi-party Specification - 9
After <stage,speaker,asserts(Statement)>where the preceding dialogue event
was not <stage-1, hearer,why(AnotherStatement)>
committed(stage+1,speaker)=
committed(stage,speaker) ∪ {Statement}
committed(stage+1,hearer)=
committed(stage,hearer) ∪ {Statement}
Viewpoint A Viewpoint B
WA(A) WA(B)
child -> member_of_public full_fare -> ticket
~member_of_public ->
member_of_staff
~member_of_staff ->
member_of_public
~commuter and
~entitled_discount ->
~can_travel
CS(A') CS(B')
CS(A) CS(B)
ticket ticket
Figure 2 Example A (1 of 1)
The resulting commitment stores are CS (A) and CS (B). Both A and B are committed
Multi-party Specification - 10
to ticket and must answer for any consequences of this commitment and other
commitments added in a similar manner. This process of straightforwardly adding
commitments, which we can clearly continue, can be termed "simple elaboration".
An enhanced description or specification is built up in the commitment stores and
shared between the participating viewpoints.
It should be noted that in this setting asking why is a demand for evidence, not for an
explanation. So by:
Commitment rule Y:
After a challenge the hearer adds the challenged statement to it's own
commitment store and the speaker removes the statement from it's
commitment store, replacing it by the challenge itself. This is necessary to
avoid the problem of circularity ("Why is the book on loan?","Because it is out
of the library!","Why is it out of the library?","Because it is on loan!!" and so on).
After <stage,speaker,why(Statement)>
committed(stage+1,speaker)=
committed(stage,speaker) - {Statement}∪{why(Statement)}
committed(stage+1,hearer)=
committed(stage,hearer) ∪ {Statement}
Observe that the placing of {Statement} in the hearer's commitment store forces a
reaction - either a challenge to "give a good reason" for the statement or a withdrawal
in order not to be committed to it. As a last resort the hearer may demand a
resolution over the speaker's commitment store, we will illustrate this in a
subsequent example.
Multi-party Specification - 11
Viewpoint A Viewpoint B
WA(A) WA(B)
child -> member_of_public discount_fare -> ticket
~commuter and
~entitled_discount ->
~can_travel
CS(A') CS(B')
child -> ticket
CS(A) CS(B)
Figure 3 Example B (1 of 5)
CS (A) and CS (B) now form the commitments for the next stage of the dialogue and
reappear as the new CS (A') and CS (B') shown in Figure 4. Viewpoint B replies to
maintain dialogue legality as indicated by:
Multi-party Specification - 12
Dialogue rule Form:
Each viewpoint contributes an act at a time, in turn each act must be well
formed that is a statement, question etc.
The act that follows is the assertion of discount_fare which is taken from the
statement contained in the working area that discount_fare -> ticket. The resulting
commitment stores CS (A) and CS (B) are derived according to the rule below:
After <stage,speaker,asserts(AnotherStatement)>
where the preceding dialogue event was
<stage-1,speaker,why(Statement1 -> Statement2)>
committed(stage+1,speaker)=committed(stage,speaker) ∪
{AnotherStatement, AnotherStatement -> Statement2}
committed(stage+1,hearer)= committed(stage,hearer) ∪
{AnotherStatement, AnotherStatement -> Statement2}
Multi-party Specification - 13
Viewpoint A Viewpoint B
WA(A) WA(B)
~commuter and
~entitled_discount ->
~can_travel
CS(A') CS(B')
why(child -> ticket) child -> ticket
CS(A) CS(B)
discount_fare discount_fare
Figure 4 Example B (2 of 5)
Multi-party Specification - 14
Figures 5, 6 & 7 show the continuation of this dialogue in which the refinement (all
the steps required to show why a child can obtain a ticket) is completed in a
constructive manner by a process of "dialogue led" backward chaining.
Note that in Figure 5 Viewpoint A can challenge either discount_fare -> ticket or
discount_fare. It chooses to challenge discount_fare because this was the actual
reply of B, while discount_fare -> ticket is a construct of the commitment rule G.
discount_fare discount_fare
why (discount_fare)
Figure 5 Example B (3 of 5)
Multi-party Specification - 15
why (child -> ticket ) child -> ticket
asserts (id_card)
id_card id_card
why (id_card)
Figure 6 Example B (4 of 5)
Multi-party Specification - 16
child -> ticket
why (child -> ticket )
asserts (child)
Figure 7 Example B (5 of 5)
The final example (Example C) we will consider is again more complex, illustrating a
number of features including progressive verification of one viewpoint with respect
to another. By looking at WA(A) in Figure 8 it should be easy to spot the inconsistency
which has been introduced (~id_card) [" it is not the case that there is an id_card "],
as a result of which notice the inconsistency that may possibly arise between
Viewpoint B (which is working on the basis of oap -> entitled_discount ["oap's are
entitled to a discount"] and Viewpoint A.
Multi-party Specification - 17
Viewpoint A Viewpoint B
WA(A) WA(B)
~commuter and
~entitled_discount ->
~can_travel
~id_card
oap
CS(A') CS(B')
CS(A) CS(B)
Figure 8 Example C (1 of 5)
Multi-party Specification - 18
B replies (Figure 9) by asserting id_card obtained by matching with the implication
id_card -> entitled_discount and the commitments are established according to
Commitment rule G (for the challenge of an implication) which we have also seen
before. B now challenges id_card and A withdraws it being unable to deny it due to
Dialogue rule Chall which, substantially abbreviated, states:
asserts (id_card)
id_card id_card
why (id_card)
withdraws (id_card)
why(id_card)
Figure 9 Example C (2 of 5)
Some straightforward question and answer follows with the results determined by
Commitment rule S above and:
Multi-party Specification - 19
Commitment rule Q:
Questions do not affect commitment stores.
After <stage,speaker,questions(Statement)>
committed(stage+1,speaker)=committed(stage,speaker)
committed(stage+1,hearer)= committed(stage,hearer)
why(id_card)
questions (oap)
Figure 10 Example (3 of 5)
Commitment rule D:
If a denial of a statement has been made then the speaker and the hearer are
obliged to place the negation of the statement in their commitment store.
Multi-party Specification - 20
After <stage,speaker,denies(Statement)>
committed(stage+1,speaker)=
committed(stage,speaker) ∪ {~Statement}
committed(stage+1,hearer)=
committed(stage,hearer) ∪ {~Statement}
Commitment rule R:
After <stage,speaker,resolve(CS(hearer))>
committed(stage+1,speaker)=committed(stage,speaker)
committed(stage+1,hearer)=committed(stage,hearer)
Multi-party Specification - 21
oap -> entitled_discount why(oap -> entitled_discount)
asserts (oap)
oap
questions (id_card)
oap
denies (id_card)
~id_card oap
~id_card
resolve (CS(A))
Figure 11 Example C (4 of 5)
Multi-party Specification - 22
In Figure 12 Viewpoint A withdraws it's previous denial (it is constrained to do so by
the dialogue rules) restoring consistency by adjusting the commitments according to
Commitment rule W given in our overview of the dialogue scheme.
B follows suit by also withdrawing the inconsistency, which if not removed would
now leave it liable to a resolution demand from A, and so the dialogue concludes with
a shared description and discovery of the "misunderstanding" hidden in A's working
area.
~id_card oap
~id_card
withdraws (~id_card)
oap
~id_card
withdraws (~id_card)
oap
Figure 12 Example C (5 of 5)
Multi-party Specification - 23
5 N-party
6 Automated support
We have developed two dialogue support systems (IC~DC One & IC~DC Two) which
animate, albeit in a simple minded way, the dialogue scheme. These tools allow the
user to develop simple dialogues like the examples above and then replay them in
whole or in part. IC~DC One is written in Prolog and has been used to help us to
understand and enhance the dialogue rules. IC~DC Two is written in Smalltalk-80
and has been used to investigate an appropriate architecture for a specification
support environment and N-party extensions to the model.
In both tools the dialogues are monitored for legality and illegal dialogues can be
explained and rolled back to a legal state. Users may view the commitment stores of
the participating views and may change the course of the dialogue by editing the
commitment stores directly. Figure 13 shows a snapshot of IC~DC One.
Multi-party Specification - 24
Figure 13 Snapshot of IC~DC One
IC~DC Two, a snapshot of which is shown in Figure 14, is the main vehicle for our
further work in this area.
Multi-party Specification - 25
7 Conclusions
Having made a radical departure from existing models it should stressed that there
remains a substantial amount of foundational work to be done to make extended
dialogue models which are both computationally tractable and formally sound. To
this end we are currently engaged in the construction of a dialogic framework for
theorem proving (Fuks, Pequeno & Sadler 1988). In this work we are developing an
idea posed by Hintikka (1973), that the act of proving a theorem can be seen as a
dialogue between "nature" and the logician.
It is important to emphasise that our model is very sparse. By basing our work on a
formal model of argumentation there are practical limitations in both the
underlying language and the dialogic strategies we can capture. Observational studies
of specification construction (Fickas, Collins & Olivier 1987) show clearly the
sophisticated strategies, such as example generation, which are employed during this
activity. We aim, within our overall framework, to be able to capture such strategies
but in doing so we must of necessity make the delicate balance between this concern
and the formal properties of our model. Our argument is not that the strategies we
have succeeded in capturing are sufficient in themselves for understanding
specification but rather that our approach provides a foundation on which such an
understanding may be built.
Our immediate aim is to continue work revising and extending the dialogue schemes,
including generalising dialogue strategies, with the long term objective of developing
a full specification support environment based on the approach we have outlined.
Our vision of the future sees dialogue as providing the logical equivalent of Unix-
style pipes and filters to support the communication of complex formal objects
between distributed and cooperating communities of tools and users.
Acknowledgements
The authors would like to thank their colleagues and students most notably Wayne
Butcher who has been responsible for implementing IC~DC Two, also Martin Sadler
and Celso Niskier for the lively critical discussion which has contributed
Multi-party Specification - 26
significantly to the work this paper reports. Hugo Fuks is supported by the Brazilian
National Research Council CNPq, grant 202471/86-cc.
References
Allwood, J. (1986); Logic and Spoken Interaction; In: Myers,Brown & McGonigle
(Eds), Reasoning and Discourse Processes, Academic Press Cognitive Science Series,
pp 67-94.
Erman, L. & Lesser, V. (1975); A Multi-Level Organization for Problem Solving Using
Many, Diverse, Cooperating Sources of Knowledge; Proc. IJCAI-75, pp 483-489.
Green, M. (1983); Report on Dialogue Specification tools; In: Pfaff (Ed) Proc. Wrkshp.
User Interface Management Systems 1983; Springer-Verlag.
Multi-party Specification - 27
Hamblin, C (1987); Imperatives; Basil Blackwell, Oxford.
Kornfeld, W. & Hewitt, C. (1981); The Scientific Community Metaphor; IEEE Trans
Systems, Man & Cybernetics, SMC-11,1, pp 24-32.
Lorenz, K. (1982); On the Criteria for the choice of Rules of Dialogic Logic; In Barth &
Martens (Eds), Argumentation: approaches to theory formation, SLCS V8, John
Benjamins, Amsterdam.
Maibaum,T., Veloso, P. & Sadler, M. (1985); A Theory of Abstract Data Types for
Formal Development: bridging the gap?; Proc. Colloq. Software Engineering Berlin
1985; LNCS 186, Springer Verlag.
Niskier, C., Fuks, H. & Sadler, M. (1988); Changing Views in Software Specification:
interpretation between theories using dialogue; (In preparation).
Smith, R. (1980); The Contract Net Protocol: High-Level Communication and Control
in a Distributed Problem Solver; IEEE Trans. Computers, C-29,12, pp1104-1113.
Multi-party Specification - 28
Solving; IEEE Trans Systems, Man & Cybernetics, SMC-11,1, pp 61-69.
Multi-party Specification - 29