<?xml version="1.0"?><!DOCTYPE article SYSTEM "/project/take/software/searchbench_offline_processing/paperxml_generator/aclextractor/src/python/../resource/dtd/paperxml.dtd"><article><header><firstpageheader><page local="1"/><title>Self-Monitoring with Reversible Grammars</title><author surname="Neumann" givenname="Günter"><org  name="and ^"/></author><author surname="Noord" givenname="Gertjan van"><org  name="Deutsches Forschungszentrum für Künstliche Intelligenz Stuhlsatzenhausweg"/></author></firstpageheader><frontmatter><p><b>Self-Monitoring with Reversible Grammars</b></p><p>Günter Neumann* and Gertjan van Noord^</p><p>* Deutsches Forschungszentrum für Künstliche Intelligenz Stuhlsatzenhausweg 3 D-6600 Saarbrücken 11 neumann@dfki.uni-sb.de</p></frontmatter><abstract>We describe a method and its implementation for self-monitoring during natural language gen­eration. In situations of communication where the generation of ambiguous utterances should be avoided our method is able to compute an un­ambiguous utterance for a given semantic input. The proposed method is based on a very strict integration of parsing and generation. During the monitored generation step, a previously gen­erated (possibly) ambiguous utterance is parsed and the obtained alternative derivation trees are used as a 'guide' for re-generating the utterance. To achieve such an integrated approach the un­derlying grammar must be <i>reversible.</i> </abstract></header><body><section number="1" title="Introduction"><p>In many situations of communication a speaker need not to worry about the possible ambiguity of what she is saying because she can assume that the hearer will be able to disambiguate the utter­ance by means of contextual information or would otherwise ask for clarification. But in some sit­uations it is necessary to avoid the risk of gen­erating ambiguous utterances that could lead to misunderstanding by the hearer, e.g., during the process of writing text, where no interaction is possible, or when utterances refer to actions that have to be performed directly or in some specific dialog situations (e.g. having an interview with a company).</p><p>The need to generate un-ambiguous utterances is also relevant for the development of natural language generation systems. For example in the case of an intelligent help-system that sup­ports the use of an operating system (Wilensky <i>el </i>n/., 1984), asking an inexperienced user to 'Re­move the folder with the system tools' could have tremendous effects on the system itself.</p><p>If one assumes a modular division of the natu­ral language generation task between two stages</p><p>^Rijksuniversiteit Groningen Postbus 716 NL 9700 AS Groningen vannoord@let.rug.nl</p><p>of the language production process — deciding what to say <i>(conceptual </i>level) and deciding how to say it <i>(grammatical </i>level) — it is not realis­tic to expect that the conceptual component will be able to specify the input for the grammatical component such that ambiguous utterances can be avoided.</p><p>If it were possible to specify the input in such a way, then this would mean that the conceptual component has to provide all information needed by the grammatical component to make decisions about lexical and syntactic choices. Hence, the conceptual component would need detailed in­formation about the language to use. But this would blur the distinction between the grammat­ical and the conceptual level, because this would imply that both components share the grammar (see also Appelt (1989), Meteer (1990), Neumann (1991)).<footnote anchor="1"/></p><p>In order to maintain a modular design addi­tional mechanisms are necessary to perform some <i>monitoring </i>of the generator's output. Several authors argue for such additional mechanisms (Jameson and Wahlster, 1982; De Smedt and Kempen, 1987; Joshi, 1987; Levelt, 1989). For example, Levelt (1989) pointed out that "speak­ers monitor what they are saying and how they are saying it". In particular he shows that a speaker is also able to note that what she is say­ing involves a potential ambiguity for the hearer and can handle this problem by means of self-monitoring.</p><p>In this paper we describe an approach for self-monitoring which allows to generate un­ambiguous utterances in such situations where possible misunderstandings by the user have to be avoided. The proposed method is based on a very strict integration of parsing and genera­tion. During self-monitoring a generated ambigu-</p><p><b>JAs pointed out in Fodor (1983) one of the character­istic properties of a module is that it is </b><b><i>computationally autonomous. </i></b><b>But a relevant consideration of computa­tionally autonomy is that modules do not share sources (in our case the grammar),</b> aus utterance is parsed and the obtained alterna­tive derivation trees are used as a 'guide' for the 'monitored<footnote anchor="1"/> generation step.<page local="2" global="1992"/> We will show that such an integrated approach makes only sense with reversible grammars. To our knowledge, there is at present no algorithm that solves the problem of generating un-ambiguous utterances by means of self-monitoring.</p><doubt alpha="47.8" length="92" tooSmall="False" monospace="0.0">Actes deCOLING-92, Nantes. 23-28 août 1992 7 0 0 Proc. ofCOLING-92, Nantes, Aug. 23-28. 1992</doubt></section><section number="2" title="Overview of the Monitor­ing Algorithm"><p>Our approach is based on a <i>strict integration of parsing and </i>generation in that parsing is used to detect whether a produced utterance is ambigu­ous or not. The advantages of using comprehen­sion mechanisms to facilitate monitoring arc for example mentioned in Levelt (1989). In his model parsing and generation are performed in an iso­lated way by means of two different grammars. The problem with this view is that generation of un-ambiguous paraphrases can be very inefficient, because the source of the ambiguous utterance is not used to guide the generation process.</p><p>To overcome this problem the basic idea of our approach is to operate with <i>derivation tites </i>ob­tained during the generation and parsing step. In short, the algorithm works as follows. Firstly, it is checked whether a produced utterance S of an input form LI<footnote anchor="1"/>' is ambiguous, by parsing S, If during parsing e.g. two readings LF and LF' are deduced LF is generated again along the parse trees obtained for S. Now an utterance S' can be generated that has the same meaning but differs with respect to the ambiguity source of S.</p><p>In this way the derivation trees obtained dur­ing parsing of a previously generated utterances are used as a <i>guide </i>during monitored generation. Grammatical structures obtained during parsing are used directly to restrict the search space dur­ing generation. At this point it should be clear that the only way in order to be able to generate 'along parsed structures' is to use <i>reversible </i>gram­mars. This ensures that every sentence produced by the generator can be parsed. Similarly, for ev­ery semantic structure computed by the parser, the generator delivers an utterance.</p></section><section number="3" title="A monitoring strategy"><p>A naive strategy. The first and most straight­forward solution to obtain only un-ambiguous ut­terances during generation could be described as a 'brute force' solution. The generator de­rives possible utterances for a given logical form. For each of these utterances it is easy to check whether it is ambiguous or not, by counting the results the parser delivers for that utterance.</p><p>In a Prolog implementation this simple solution can be defined as follows. Note that we assume for simplicity that linguistic signs are represented with terms signfLF.Str^ynjDer) where LF represents the semantic information, Str repre­sents the string and Syn represents syntactic in­formation. The fourth argument position will be used later in this paper to represent <i>derivation trees.</i></p><p>monitor(aign(LF,Str,Syn,Der)): generate(sign(LF,Str,Syn,Der)), unambiguous(Str).</p><p>unambiguous(Str) :-</p><p>setof CLF,D""S~parse(sign(LF,StrfS(D), CEI] ).</p><p>The predicates parse/1 and generate/i call re­spectively the underlying parser and generator. The setof predicate is used to obtain the set of solutions of the parse predicate, where " indi­cates that, D and S are existentially quantified. By instantiating the resulting set as a set with exactly one element, we implement the idea that the utterance should be un-ambiguous (in that case there is only one parse result). Given Pro­log's search strategy this definition implies that the generator generates solutions until an un­ambiguous utterance is generated.</p><p>The problem with this 'generate and test' ap­proach is that the search of the generator is not directed by the goal to produce an un-ambiguous result. We will now present a more involved mon­itoring strategy which is oriented towards the goal of producing an un-ambiguous utterance.</p><p>Ambiguities are often 'local'. A fundamen­tal assumption is that it is often possible to obtain an un-ambiguous utterance by slightly changing an ambiguous one. Thus, after generating an am­biguous utterance, it may be possible to change that .utterance <i>locally, </i>to obtain an un-ambiguous utterance with the same meaning. In the case of a simple lexical ambiguity this idea is easily il­lustrated. Given the two meanings of the word 'bank' ('river bank' vs. 'money institution') a generator may produce, as a first possibility, the following sentence in the case of the first reading of 'bank'.</p><page local="3" global="1993"/><doubt alpha="100.0" length="2" tooSmall="False" monospace="0.0">si</doubt><doubt alpha="0.0" length="3" tooSmall="False" monospace="0.0">/ \</doubt><p>johnl aux3 stand3 nearl infll8 vp4</p><doubt alpha="85.7" length="7" tooSmall="False" monospace="0.0">infll8I</doubt><doubt alpha="66.7" length="3" tooSmall="False" monospace="0.0">vp4</doubt><doubt alpha="100.0" length="3" tooSmall="False" monospace="0.0">ppl</doubt><doubt alpha="20.0" length="5" tooSmall="True" monospace="0.0">I / \</doubt><doubt alpha="66.7" length="3" tooSmall="False" monospace="0.0">np2</doubt><doubt alpha="50.0" length="14" tooSmall="False" monospace="0.0">/ \ the2 bank4</doubt><doubt alpha="53.3" length="15" tooSmall="False" monospace="0.0">/ \ j ohnl aux3</doubt><doubt alpha="52.6" length="19" tooSmall="False" monospace="0.0">be2      infll2 ppl</doubt><doubt alpha="57.1" length="21" tooSmall="False" monospace="0.0">stand3      nearl np2</doubt><doubt alpha="50.0" length="14" tooSmall="False" monospace="0.0">/ \ the2 bank7</doubt><p>Figure 1 : Derivation trees</p><p>(1) John was standing near the bank while Mary tried to make a picture of him.</p><p>To 'repair' this utterance we simply alter the word 'bank' into the word 'river bank' and we obtain an un-ambiguous result. Similar examples can be constructed for structural ambiguities. Consider the German sentence:</p><p>(2) Heute ist durch das Außenministerium bekanntgegeben worden, daß Minister van den Broek den jugoslawischen Delegationsleiter aufgefordert hat, die Armee aus Kroatien zurückzuziehen. <i>Today it was announced by the ministry of foreign affairs that minister van den Broek has requested the Yugoslav delegation leaders to withdraw the army from Croatia.</i></p><p>which is ambiguous (in German) between 'with­draw [the army of Croatia]' and '[withdraw [the army] away from Croatia]'. In German this ambi­guity can be repaired <i>locally </i>simply by changing the order of'aus Kroatien' and 'die Armee', which forces the second reading. Thus again we only need to change only a small part of the utterance in order for it to be un-ambiguous.</p><p><b>Locating ambiguity with derivation trees. </b>We hypothesise that a good way to characterise the location of the ambiguity of an utterance is by referring to the notion of'derivation tree'. We are assuming that the underlying grammar formalism comes with a notion 'derivation tree' which repre­sents how a certain derivation is licenced by the rules and lexical entries of the grammar. Note that such a derivation tree does not necessarily reflect how the parser or generator goes about <i>finding </i>such a derivation tree for a given string or logical form. For example, the derivation trees of the two readings of 'john is standing near the bank' may look as in figure 1. The intuition that the ambiguity of this sentence is local is reflected in these derivation trees: the trees are identical up to the difference between bank4 and bank7. In our examples each sign sign(LF,Str,Syn,D) is specified for its corresponding derivation tree D. In Prolog such a tree is represented with terms of the form t(Label,Ds,M) where Label is the node name (the unique name of a rule) and Ds is a list of Daughter trees. The third argument position will be explained below.</p><p>Given a derivation tree / of a generated sen­tence <i>s, </i>we mark the places where the ambigu­ity occurs as follows. If <i>s </i>is ambiguous it can be parsed in several ways, giving rise to a set of derivation trees <i>T = t\...tn. </i>We now compare <i>t </i>with the set of trees <i>T </i>in a <i>top-down </i>fashion. If for a given node label in / there are several possible labels at the corresponding nodes in <i>T </i>then we have found an ambiguous spot, and the corresponding node in <i>t </i>is <i>marked. </i>Thus, in the previous example of structural ambiguity we may first generate sentence (2) above. After checking whether this sentence is ambiguous we obtain, as a result, the marked derivation tree of that sen­tence. A marked node in such a tree relates to an ambiguity. The relevant part of the resulting derivation tree of the example above may be the tree in figure 2.</p><p>Marking a derivation tree. The predicate mark(Tree,Set) marks the generated tree Tree given the trees Set found by the parser. The third argument M of the terms t(Label,Ds,M) repre-<page local="4" global="1994"/></p><doubt alpha="46.2" length="93" tooSmall="False" monospace="0.0">Actes de COUNG-92, Nantes, 23-28 août 1992 7 0 2 Proc. of COLING-92, Nantes, Aug. 23-28, 1992</doubt><doubt alpha="66.7" length="3" tooSmall="False" monospace="0.0">be2</doubt><doubt alpha="0.0" length="3" tooSmall="False" monospace="0.0">/ \</doubt><doubt alpha="100.0" length="3" tooSmall="False" monospace="0.0">vpB</doubt><doubt alpha="56.0" length="25" tooSmall="False" monospace="0.0">Ïragen3        vp2 MARKED</doubt><doubt alpha="71.4" length="7" tooSmall="False" monospace="0.0">npl vp4</doubt><doubt alpha="0.0" length="9" tooSmall="False" monospace="0.0">/    \/ \</doubt><doubt alpha="61.5" length="26" tooSmall="False" monospace="0.0">die2      armeel ppl infl4</doubt><doubt alpha="40.7" length="27" tooSmall="False" monospace="0.0">/   \ Iaus2       Krl zieh3</doubt><p>Figure 2: Marked derivation tree senting derivation trees indicates whether the cur­rent node is marked (in that case the value is y) or not (using the value n). Subtrees of marked nodes have no instantiated value for this variable.</p><doubt alpha="63.2" length="19" tooSmall="False" monospace="0.0">mark(t(L,Ds,n),Set)</doubt><doubt alpha="63.2" length="19" tooSmall="False" monospace="0.0">root_same(L,Set),!,</doubt><p>get_ds(Set,DsSet),</p><p>mark_ds(Ds,DsSet). mark(t(L,Ds,y),Set).</p><p>root„same(L» D). root_same(Lf<b><i>lt(L,_,_)</i></b>|T]):-root_same(L,T).</p><p>mark„ds ([],[]).</p><doubt alpha="38.2" length="34" tooSmall="False" monospace="0.0">mark„ds ( [H IT] , [Hs 1 Ts] ) : -</doubt><p>mark(H,Hs), mark_ds(T,Ts).</p><doubt alpha="38.6" length="44" tooSmall="False" monospace="0.0">get_ds([tC, [],„)!_],□). get„ds(Set,[H[T]):-</doubt><doubt alpha="61.1" length="18" tooSmall="False" monospace="0.0">get„f(Set,Set2,H),</doubt><p>get_ds(Set2,T).</p><doubt alpha="30.0" length="40" tooSmall="False" monospace="0.0">get_i( □,[],□). get_f([t(_,[H3|B],_)|T](</doubt><p>[t(„(B,_)lT2],[H3tT3]):-get_f(T,T2,T3).</p><p><b>Changing the ambiguous parts. </b>Summaris­ing, the generator first generates a possible ut­terance. This utterance is then given as input to the monitor. The monitor calls the parser to find which parts of that utterance are ambiguous. These parts are marked in the derivation tree as­sociated with the utterance. Finally the monitor tries to generate an utterance which uses alterna­tive derivation trees for the marked, i.e. ambigu­ous, parts.</p><p>Generating an utterance given a marked derivation tree proceeds as follows. The generator sim­ply 'repeats' the previous generation in a top-down fashion, as long as it encounters unmarked nodes. This part of the generation algorithm thus simply copies previous results. If a marked node is encountered the embedded generation al­gorithm is called for this partial structure. The result should be a different derivation tree than the given one. Now clearly, this may or may not be possible depending on the grammar. The next paragraph discusses what happens if it is not pos­sible.</p><p>The following definition assumes that gram­mar rules are represented simply as rule(Name, Mother, Ds) where Name is the rule name, Mother is the mother sign and Ds is a list of daughter signs. The predicate mgen is used to generate an utterance, using a marked derivation tree as an extra guide.</p><p>mgen(sign(Lf,Str,S,D),t(Same,Ds,y)):-generateCsign(Lf,Str,S,D)) , \+ D = t(Name,Ds,_).</p><p>mgen(sign(Lf,Str,S,D),t(Hame(Ds,n)): -rule(Name,sign(Li,Str,5,D),Kids), mgen_ds(Kids,Ds).</p><p>mgen_ds( [],_).</p><p>mgen_ds( [S|T], [Stree,Ttree]):-mgen(S,Stree), mgen„ds(T,Ttreè).</p><p>Redefining locality. Often it will not be pos­sible to generate an alternative expression by a local change as we suggested. We propose that the monitor first tries to change things as local as possible, If all possibilities are tried, the notion 'locality' is redefined by going up one level. This process repeats itself until no more alternative so­lutions are possible. Thus, given a marked deriva­tion tree the monitored generation first tries to find alternatives for the marked parts of the tree. If no further possibilities exist, all markers in the trees are inherited by their mother nodes. Again the monitored generation tries to find alterna­tives, after which the markers are pushed upwards yet another level, etc.</p><p>The following definition of the predicate mark_l-g(Tree, Set, Guide) will (procedurally speaking) first construct the 'guide' Guide given a derivation tree Tree and a set of derivation trees Set; upon backtracking it will push the markers in the tree one level upward at the time.</p><p>mark_l_g(Tree,Set,Guide):mark(Tree.<page local="5" global="1995"/>Set), l_g(Tree,Guide).</p><doubt alpha="47.8" length="92" tooSmall="False" monospace="0.0">Actus de COLING-92, Nantes, 23-28 août 1992 7 0 3 Pkoc.ovCOLING-92, Nantes, Aug. 23-28, 1992</doubt><doubt alpha="0.0" length="3" tooSmall="False" monospace="0.0">/ \</doubt><doubt alpha="63.6" length="33" tooSmall="False" monospace="0.0">l„g(Tree,Tree). l_g(Tree,Guide):-</doubt><p>one_up(Tree,Tree2), l_g(Tree2,Guide).</p><doubt alpha="51.7" length="29" tooSmall="False" monospace="0.0">one_up(t(L.Ds,n),t(L,Ds,y)):-</doubt><doubt alpha="50.0" length="52" tooSmall="False" monospace="0.0">member(tC_ ,y),Ds),!. one_up(t(L,Ds,n),t(L,Ds2,n)):-</doubt><p>one_up_ds(Ds,Ds2).</p><doubt alpha="43.5" length="46" tooSmall="False" monospace="0.0">one_up_da([],□).one_up_ds([H|T],[H2j T2j ) : -</doubt><p>one_up(H,H2), one_up_ds(T,T2).</p><p>The algorithm can be completed as follows. <footnote anchor="2"/></p><p>monitored„generation(LF,Sign):-generate(sign(LF,Str,Syn,D)), ! , */, stick to one. . monitor(sign(LF,Str,Syn,D).Sign).</p><doubt alpha="64.4" length="101" tooSmall="False" monospace="0.0">monitor(sign(LF,Str1,Synl,Dl), sign(LF,Str,Syn,D)):-iind_all_parse(Strl,TreeSet), (     TreeSet = [_]</doubt><doubt alpha="53.6" length="69" tooSmall="False" monospace="0.0">-&gt;   Strl = Str. Synl = Syn, Dl = D ;     mark_l_g(Dl,TreeSet.Guide),</doubt><p>mgen(sign(LF,Str,SyntD).Guide), unambiguous(Str) ).</p><p>iind^all_parse(Strl,TreeSet)  :-</p><p>setoi(D,LF*S~parse(sign(LF,Strl,S,D), TreeSet).</p><p><b>Simple attachment example. </b>In order to clarify the monitoring strategy we will now con­sider how an attachment ambiguity may be avoided. The following German sentence consti­tutes a simplified example of the sort of attach­ment ambiguity shown in (2).</p><p>(3) Die Manner haben heute die Frau mit dem Fernglas gesehen.</p><p>The men have today the woman with the telescope seen.</p><p><i>Today the men saw the woman with the telescope.</i></p><footnote label="2">In the actual implementation the predicate f ind_all_-parse is complicated in order to remember which parses were already tried. If a parse has been tried before, then the predicate fails because then that result is either al­ready shown to be ambiguous, or otherwise the corre­sponding solution has already been found.</footnote><doubt alpha="52.3" length="44" tooSmall="False" monospace="0.0">Actes de COLING-92, Nantes. 23-28 août1992 7</doubt><p>Suppose indeed that the generator, as a first pos­sibility, constructs this sentence in order to realize the (simplified) semantic representation:</p><p><i>heute(mit(f ernglas, sehen(pl(mann), frau))</i></p><p>Let us assume that the corresponding derivation tree is the tree in figure 3. To find out whether mann verb_sec haben vp^compl frau vpjnod mit dem fernglass gesehen</p><doubt alpha="100.0" length="5" tooSmall="False" monospace="0.0">topic</doubt><p>Figure 3: Derivation tree of German example this sentence is ambiguous the parser is called. The parser will find two results, indicating that the sentence is ambiguous. For the alternative reading the derivation tree shown in figure 4 is found.</p><doubt alpha="66.7" length="18" tooSmall="False" monospace="0.0">/ \ haben vp_compl</doubt><p>ppanod gesehen frau       mit dem fernglass</p><figure caption="Figure 4: Derivation tree of alternative reading"></figure><p>The derivation tree of the result of generation is then compared with the trees assigned to the alternative readings (in this case only one), given rise to the marked derivation tree shown in fig­ure 5.</p><p>The monitored generation will then try to find alternative possibilities at these marked nodes. However, no such alternatives exist. Therefore, the markers are pushed up one level, obtaining the derivation tree given in figure 6.</p><doubt alpha="46.7" length="45" tooSmall="False" monospace="0.0">4Proc. of COLING-92, Nantes, Aug. 23-28, 1992</doubt><page local="6" global="1992"/><doubt alpha="0.0" length="3" tooSmall="False" monospace="0.0">/ \</doubt><doubt alpha="100.0" length="5" tooSmall="False" monospace="0.0">topic</doubt><p>mit dem fernglass gesehen verbjsec vp.compl</p><doubt alpha="100.0" length="5" tooSmall="False" monospace="0.0">haben</doubt><doubt alpha="65.6" length="32" tooSmall="False" monospace="0.0">frau MARKET)       vp_mod MARKED</doubt><figure caption="Figure 5: Marked tree of German example topic"></figure><p>mann verb_sec haben      vp_compl MARKED</p><p>frau vp_mod mit dem fernglass gesehen</p><figure caption="Figure 6: Markers are pushed one level upward"></figure><p>At this point the monitored generator again tries to find alternatives for the marked nodes, this time successfully yielding:</p><p>(4) Die Manner haben mit dem Fernglass die Frau gesehen.</p><p>At this point we may stop. However, note that if we ask for further possibilities we will eventu­ally obtain all possible results. For example, if the markers are pushed to the root node of the derivation tree we will also obtain</p><p><b>(5) </b>Mit dem Fernglass haben die Manner die Frau gesehen.</p></section><section number="4" title="Discussion"><p><b>Properties. </b>Some of the important properties of our approach can be characterised as follows.</p><p>The strategy is <i>sound </i>and <i>complete </i>in the sense that no ambiguous utterances will be produced, and all un-ambiguous utterances are produced. If for a given semantic structure no un-ambiguous utterance is possible, the current strategy will not deliver a solution (it is foreseen that in such cases the planner decides what should happen).</p><p>The strategy is completely independent on the grammars that are being used (except for the re­liance' on derivation trees). Even more interest­ingly, the nature of the underlying <i>parsing </i>and <i>generation </i>strategy is not important either. The strategy can thus be used with any parsing- or generation strategy.</p><p>During the monitored generation previously generated structures are re-used, because only the ambiguous partial structures have to be re­generated,</p><p>Finally, for the proposed strategy to be mean­ingful, it must be the case that <i>reversible </i>gram­mars are being used. If this were not the case then it would not make sense to compare the deriva­tion tree of a generation result with the derivation trees which the parser produces.</p><p><b>Generation of Paraphrases. </b>In Neumann and van Noord (to appear) we discuss the imple­mentation of a variant of the monitoring strategy, to solve the problem of the generation of para­phrases.</p><p>If parsing an utterance has lead to several read­ings, one way in order to determine the intended meaning is to start a clarification dialog, in which the multiple interpretations of the parsed utter­ance arc contrasted by restating them in different form. The dialog partner is then requested to choose the appropriate paraphrase, by asking her 'Do you mean X or Y ?'.</p><p>The advantage of our approach is, that it will be ensured that the source of the ambiguity is used directly during the production of such para­phrases. Therefore, the generation of irrelevant paraphrases is avoided.</p><p>Limitations. It should be clear that monitor­ing involves more than the avoidance of ambigu­ities. Levelt (1989) discusses also monitoring on the conceptual level and monitoring with respect to social standards, lexical errors, loudness, pre­cision and others. Obviously, our approach is re­stricted in the sense that no changes to the input LF are made.</p><p>Metcer (1990) makes a strict distinction be­tween processes that can change decisions that operate on intermediate levels of representation <i>(optimisations) </i>and others that operate on pro­duced text <i>(revisions). </i>Our strategy is an exam­ple of revision. Optimisations are useful when changes have to be done during the initial gen­eration process. For example, in Neumann and<page local="7" global="706"/></p><doubt alpha="0.0" length="3" tooSmall="False" monospace="0.0">705</doubt><doubt alpha="48.8" length="43" tooSmall="False" monospace="0.0">Proc. orCOLING-92, Nantes, Aug. 23-28, 1992</doubt><doubt alpha="60.5" length="38" tooSmall="False" monospace="0.0">Actes de COLING-92, Nantes, 23-28 août</doubt><p>Finkler (1990) an incremental and parallel gram­matical component is described that is able to handle under-specified input such that it detects and requests missing but necessary grammatical information.</p><p><b>Implementation. </b>In Levelt (1989) and Meteer (1990) the need for revision respectively moni­toring is discussed in detail although they de­scribe no implementations. As far as we know our approach is the first implementation of re­vising a produced utterance in order to find an un-ambiguous alternative. The underlying parser and generator are described in Shieber <i>et al. </i>(1990) and van Noord (1991). We are using lex-icalized unification-based grammars for German and Dutch.</p></section><section title="Acknowledgements"><p>This research work has been partially supported by the German Science Foundation in its Special Collaborative Research Programme on Artificial Intelligence and Knowledge Based Systems (SFB 314, Project N3 BiLD), and by the DFKI in the project DISCO, funded by the German Ministry for Research and Technology under Grant-No.: ITW 9002.</p></section><references><p>Douglas E. Appelt. Bidirectional grammars and the design of natural language generation sys­tems. In Y. Wilks, editor, <i>Theoretical Issues tn Natural Language Processing, </i>pages 206-212. Hillsdale, N.J.: Erlbaum, 1989.</p><p>K. De Smedt and G. Kempen. Incremental sen­tence production, self-correction and coordina­tion. In G. Kempen, editor, <i>Natural Language Generation, </i>pages 365-376. Martinus Nijhoff, Dordrecht, 1987.</p><p>Jerry A. Fodor. <i>The Modularity of Mind: An Es­say on Faculty Psychology. A </i>Bradford Book, MIT Press, Cambridge, Massachusetts, 1983.</p><p>Anthony Jameson and Wolfgang Wahlster. User modelling in anaphora generation: Ellipsis and definite description. In <i>ECAI, </i>pages 222-227, Orsay, 1982.</p><p>Aravind K. Joshi. Generation - a new frontier of natural language processing? In <i>Theoretical Issues in Natural Language. Processing </i><b><i>8, </i></b>New Mexico State University, 1987.</p><p>Willem J. M. Levelt. <i>Speaking: From Intention to Articulation. </i>MIT Press, Cambridge, Mas­sachusetts, 1989.</p><p>Marie M. Meteer. <i>The Generation Gap - the problem of expressibiliiy tn text planning. </i>PhD thesis, University of Massachusetts, 1990.</p><p>Günter Neumann and Wolfgang Finkler. A head-driven approach to incremental and parallel generation of syntactic structures. In <i>Proceed­ings of the 13th International Conference on Computational Linguistics (COLING), </i>pages 288-293, Helsinki, 1990.</p><p>Günter Neumann and Gertjan van Noord. Re­versible grammars for self-monitoring and gen­eration of paraphrases. In Tomek Strzalkowski, editor, <i>Reversible Grammar in Natural Lan­guage Processing. </i>Kluwer, to appear.</p><p>Günter Neumann. Reversibility and modularity in natural language generation. In <i>Proceedings of the ACL Workshop on Reversible Grammar in Natural Language Processing, </i>pages 31-39, Berkeley, 1991.</p><p>Stuart M. Shieber, Gertjan van Noord, Robert C. Moore, and Fernando C.N. Pereira. Semantic-head-driven generation. <i>Computational Lin­guistics, </i>16(1), 1990.</p><p>Gertjan van Noord. Head corner parsing for dis­continuous constituency. In <i>29th Annual Meet­ing of the Association for Computational Lin­guistics, </i>Berkeley, 1991.</p><p>R, Wilensky, Y. Arens, and D. Chin. Talking to unix in english: An overview of uc. <i>Communi­cations of the ACM, </i>pages 574 - 593, 1984.</p><doubt alpha="46.8" length="77" tooSmall="False" monospace="0.0">COUNG-92. Nantes, 23-28 août 1992Proc. of COLING-92, Nantes, Aug. 23-28, 1992</doubt></references></body></article>