Research Report XXXXXXXXXX

                           Artificial Intelligence Programs

                              The University of Georgia

                                Athens, Georgia 30602


                                Available by ftp from

                                  aisun1.ai.uga.edu

                                    (128.192.12.9)


                                   Series editor: 

                                  Michael Covington

                              mcovingt@aisun1.ai.uga.edu









                                                                          1






                           Handling Constrained Clauses in

                           Discourse Representation Theory


                                   William H. Smith


                                   Piedmont College

                                  Demorest, GA 30535


                        Artificial Intelligence Research Group

                              The University of Georgia

                                   Athens, GA 30602


                                    August 8, 1990


          Introduction


                 This report describes a Prolog program that transforms a

          natural language input into a knowledge base of Prolog clauses. 

          The key element of the program is its ability to handle

          constrained clauses--embedded clauses whose truth evaluation is

          different from that of independent clauses.  Consider sentence

          (0.1.a):


             (0.1.a)  Bob, who is a farmer, believes that Carol

                      regrets that she kissed Ted.

                 (b)  Bob is a farmer.

                 (c)  Carol regrets that she kissed Ted.

                 (d)  Carol kissed Ted.


          Clauses (0.1.b,c,d) are embedded in (0.1.a).  (0.1.b) is not

          constrained; it is subject to the same truth evaluation that

          (0.1.a) is.  (0.1.c) and (0.1.d) are constrained.  (0.1.a)

          reports what Bob believes, but Bob may be wrong, so the truth of

          (0.1.a) should not depend on the truth value of (0.1.c).  As we

          shall see in Section 3 of this report, (0.1.d) should be

          subjected to truth evaluation; the difference between (0.1.c) and

          (0.1.d) is determined by the difference between the constrainers

          believe and regret.


                 The theoretical basis of this program is an extension of

          Discourse Representation Theory (Kamp 1981).  Kamp proposed

          Discourse Representation Theory (DRT) as a bridge between the

          output of a syntactic parse and model theoretic semantics, a

          bridge that would combine "a definition of truth with a

          systematic account of semantic representations." (277)  The DRT

          algorithm produces a representation that can be used to determine

          the truth conditions of a discourse.  Subsequent research has








                                                                          2


          extended the original theory and has implemented it in computer

          programs.  


                 Section 1 of this report presents a description of the

          theoretical framework of DRT, a description that will further

          clarify what is meant by 'constrained clause' and 'truth

          contribution.'  Section 2 examines suggested extensions to DRT

          that enable it to handle a wider range of sentences.  Section 3

          presents the linguistic theory underlying the difference between

          (0.1.c) and (0.1.d).


                 In the remaining sections the report shifts its focus from

          theory to implementation.  Section 4 describes the Prolog program

          of which this is an extension, and Section 5 describes the

          extensions to that program.  Section 6 evaluates the success of

          the program and suggests other extensions that are needed.



          1.          DISCOURSE REPRESENTATION THEORY


                 A model consists of two sets: a set of entities (the

          universe) and a set of properties of those entities and relations

          that hold among them.  DRT seeks to provide a representation for

          discourse that will be suitable for truth evaluation in a model. 

          DRT takes as input the output of a syntactic parse (e.g. the

          Logical Form of Government and Binding Theory) and produces a

          representation whose structure parallels that of the model.


                 The central notion of DRT is the Discourse Representation

          Structure (DRS).  A DRS K is a pair <U,C>, where U is a set of

          reference markers (the universe) and C is a set of conditions

          (properties, relations, or complex conditions--negation,

          disjunction, or implication).  The initial DRS, K0, contains none

          of the information in the discourse.  As the discourse is

          processed, the DRS construction algorithm, taking the output of a

          syntactic parse as its input, produces a sequence of K' as it

          incorporates new material from the discourse into K.  For

          example:


          (1.1)  Bob saw a woman.

                      K:<U:{R1, R2},

                         C:{Bob(R1),

                            woman(R2)

                            saw(R1, R2) }>


                 At any point in the construction, the current DRS may be

          evaluated for truth in the model.  Discourse truth in model

          theoretic semantics is determined by a mapping from a

          representation of the discourse (in DRT, a DRS) to the model, a

          mapping that preserves the properties and relationships expressed

          in the discourse.  A discourse is held to be true in a model if

          there is a mapping such that the set of referenced items (the

          discourse referents in DRT) maps to a subset of the universe of








                                                                          3


          the model and each property or relation expressed by the

          discourse (the set of conditions in DRT) is true of the

          corresponding entities in the model.  (For ease of exposition, I

          refer to the truth evaluation of a clause or discourse; it is in

          fact the DRS that is evaluated.)


                 In DRT, each proper noun and each indefinite noun phrase

          (NP) in the input is taken to have existential quantification. 

          (In a DRS, quantifiers are implicit; with exceptions to be noted

          shortly, all discourse referents are understood as being

          existentially quantified.)  Thus, when the construction algorithm

          encounters a proper noun or indefinite NP, a new discourse

          referent is added to U (R1 and R2 in (1.1)).  Each definite NP

          (including each pronoun) in the discourse must be coreferential

          with a discourse referent.  Antecedent assignment is accomplished

          by finding an item in U that agrees with the anaphoric expression

          (for pronouns, an entity that agrees in gender and number).  (It

          should be noted that the fragment of natural language that can be

          handled by current versions of DRT is quite limited, excluding

          plural and generic NPs.)  Thus, (1.2) shows an extension of

          (1.1).  


          (1.2)  He kissed her.

                      K:<U,

                         C := C + {kissed(R1, R2) }>


                 As in Pascal, := is an assignment operator and + indicates

          union of sets.  Thus, the third line of (1.2) means that the new

          C is the union of the old C and the set {kissed(R1, R2)}.


                 The basic theory would add R3, R4 to U, and then set them

          equal to R1, R2, respectively.  A later "clean-up" operation

          would eliminate these redundant discourse referents by equating

          coreferential discourse referents.  In the implementation to be

          described here, resolution of anaphoric relations is accomplished

          during the syntactic parse, so the redundancy does not occur.  


                 If U contains two or more possible antecedents, the

          conflict is resolved by selecting the most recent one. 

          Consequently, U must be ordered, contrary to Kamp (1981) in which

          U is a set, and must be re-ordered each time an entity is

          referenced (see, for example, Goodman 1988).


                 Kamp (1985) describes the DRS construction algorithm as "a

          set of rules that operate, in a roughly top-down manner, on the

          nodes of the parse tree," (2) converting those nodes into the

          conditions of C and, when appropriate, introducing new discourse

          referents into U.  The basic version of DRT is directed toward

          the role of NP nodes in the discourse--their relationship to U.  


                 The special value of DRT is its ability to handle in-

          definite NPs that should not introduce new discourse referents. 

          Consider the following extension of (1.2):








                                                                          4


          (1.3.a)          She did not wear a ring.


          We must extend the algorithm, because as described so far it

          would produce something like (1.3.b): 


          (1.3.b)     K:<U := U + {R3},

                         C := C + {ring(R3),

                                   not wear(R2, R3) }>


          The truth contribution of (1.3.a) to the truth of the discourse

          will depend on the existence in the model of a ring that she did

          not wear.  But that is not what (1.3.a) means; (1.3.a) is true in

          the model only if there is no ring in the model such that she

          wore it.  That is, (1.3.c) must be false:


          (1.3.c)     She wore a ring.


          Thus, the truth evaluation of a negative clause demands a special

          representation.

                 Kamp's solution is to add to C a sub-DRS for (1.3.a):


          (1.3.d)     K:<U, C := C + {not(K1,

                                          K1:<U1: {R3},

                                              C1: {ring(R3),

                                                   wear(R2, R3) }> ) }>


          Discourse referents in U are visible to conditions in C1, but

          those in U1 are not visible to C.  Since the sub-DRS is

          controlled by negation, its truth contribution is the opposite of

          the truth value of K1; that is, if K1 can be satisfactorily

          mapped to the model, the discourse is false.


                 I shall speak of clauses such as (1.3.c) in (1.3.a) as

          'constrained clauses' because their truth contributions to the

          DRS in which they are embedded are constrained, in this case by

          negation.  (This definition of 'constrained clause' may seem to

          be at odds with that offered in the introduction, since (1.3.c)

          is not, in traditional terms, an embedded clause.  Some

          syntacticians, however, treat negation as a 'higher predicate'

          whose argument is the embedded clause to be negated. (e.g.

          McCawley 1988)).


                 Other constrained clauses handled by Kamp's original

          theory are those in disjunctions, implications, and universally

          quantified NPs.  In each case, the constrained clauses are

          represented by sub-DRSs.  The truth contribution of a disjunction

          is 'true' if one of the disjuncts evaluates to true; that of an

          implication is 'true' provided that in any mapping in which the

          antecedent is true the consequent is true also.


                 An important feature of DRT is that it treats sentences

          containing universally quantified NPs as implications.  The

          information within the universally quantified NP restricts the








                                                                          5


          set of entities in the universe to which the NP can refer, and

          the remainder of the sentence is the scope of the quantifier. 

          For example, the scope of the subject NP is the VP, and the scope

          of the direct object is the verb.  Kamp treats the information in

          the universally quantified NP as the antecedent of an implication

          whose consequent is the information in the scope of that NP. 

          Thus, (1.4.a) is represented as (1.4.b).


          (1.4.a)     Every sad man loves a pretty woman.

              (b)     K:<U:{},

                         C:{K1 ==> K2,

                            K1: <U1:{R1},

                                 C1:{man(R1),

                                     sad(R1) }> 

                            K2: <U2:{R2},

                                 C2:{woman(R2),

                                     pretty(R2),

                                     loves(R1, R2) }> }>


                 The effects of sentence connectives as constrainers is

          uncomplicated, as they are taken directly from formal logic.  The

          treatment of other constrainers is more complex, as will be seen

          when extensions to the basic theory are considered.



          2.          EXTENSIONS TO THE BASIC THEORY


          Events and Propositions


                 The basic theory is confined to a very limited subset of

          natural language.  In particular, it is limited to singular, non-

          generic NPs, to anaphoric reference (i.e. the referent is present

          in the discourse), and to sentences whose main verbs do not take

          propositions (i.e. DRSs) as arguments.  Reducing the first two

          limitations requires a full theory of reference that must take

          into account grammar, pragmatics, and knowledge of the real

          world, and is beyond the scope of this study.  Here we are

          concerned with reducing the third limitation.


                 Guenthner et al. (1986) extend the basic theory by adding

          two new types of discourse referent: event markers and time

          markers.  These researchers also include meaning rules in the DRS

          construction algorithm that assign an event marker to each verb

          and to each noun that refers to an action (e.g. accident).  Each

          time reference (i.e. time of day or extent of duration) is

          assigned to a time marker.  Events are temporally ordered with

          respect to each other and to time references: an event may

          precede or overlap another event or time, it may be given an

          argument expressing its duration, or it may be a subset of

          another event.  The addition of event markers makes it possible

          for predicates to take DRSs as arguments.  Guenthner et al.

          (1986) do not include any examples of such a use of event

          markers, but Guenthner (1987) does.  In that article he also








                                                                          6


          makes a notational distinction between events, which advance the

          time of discourse, and situations, which do not.

                 Spencer-Smith (1987) does not use event markers, but adds

          a different type of discourse referent, a proposition marker. 

          This extension makes it possible to include embedded predicates,

          such as infinitival complements and beliefs, in the DRS:


          (2.1)  Carol wants to kiss a rich man.

                      K:<U: {R1, P1

                         C: {Carol(R1), want(R1, P1),

                             P1: <U: {R2},

                                  C: {rich(R2),

                                      man(R2),

                                      kiss(R1, R2) }> }>


          The embedded DRS of (2.1) is an example of a constrained clause,

          in this case constrained by want.  (2.1) may evaluate to true

          even if no such R2 exists in the model.  (Note that this reading

          gives narrow scope to rich man; Carol does not know which rich

          man she wants to kiss.)



          Beliefs


                 Kamp (1985) also explored the representation of beliefs. 

          His treatment requires two further additions to DRT: internal and

          external anchors.  Anchors are used to connect discourse

          referents to entities in the world.  External anchors are ordered

          pairs, <Entity, Marker>, that associate the two as they actually

          are, while internal anchors are DRS-like structures that

          associate items as a subject believes they are.  The use of

          anchors makes it possible to represent propositions that are in

          fact contradictory but are not so in the subject's belief system

          because his internal anchors differ from the external anchors:








                                                                          7


          (2.2)  Bob believes that Hesperus is pretty and         

                 Phosphorus is not pretty.


                      External Anchors: <R1,Bob>,                           

                                        <R2, Venus>,

                                        <R3, Venus>

                      Internal Anchors:

                           L: <U: {R2, R3},

                               C: {evening_star(R2),

                                   morning_star(R3)}>

                           K: <U: {R1, P1},

                               C: {Bob(R1),

                                   believes(R1, P1),

                                   P1: <U: {R2, R3},

                                      C: {pretty(R2),

                                          枝1,

                                          K1: <C1: {pretty(R3)}> }> }>


                 The extension of DRT with internal and external anchors

          give the theory considerable power, but is far from giving it the

          power necessary to represent adequately the full range of

          meanings of natural language.  It does not, for example, specify

          whose internal anchor is to be invoked.  Asher (1986) combined

          the concepts of proposition markers and of anchors in order to

          handle the problem, again with considerable modification to DRT

          and the DRS construction algorithm.


                 Asher dealt with the problem of Pierre, who, as a child in

          Paris, saw Londres--London--in a picture book, and who, as an

          adult, lives in a London slum.  It is now reported that


          (2.3)  Pierre believes that Londres is pretty and London

                      is not pretty.


          Sentences like (2.2) and (2.3) have been a serious problem for

          traditional logic, which holds that the set of true sentences is

          closed under substitution of coreferential terms (SC), such as

          Londres and London.  The belief cannot be added to the toplevel

          DRS because under SC it is contradictory in the model and its

          truth value is false, although it is actually a true report of

          Pierre's belief.  The belief must somehow be constrained in a

          sub-DRS whose truth is evaluated according to Pierre's cognitive

          state.  But the belief remains contradictory in a simple sub-DRS

          such as that used for (2.2).


                 Asher made use of a proposition marker that refers to a

          sub-DRS rather than an entity, one that represents the content of

          the complement of believes. This sub-DRS, a 'delineated DRS', is

          more complex than those of the basic theory.  It is augmented

          with DRS-like structure representing the cognitive state of the

          believer--entities and properties that are not explicit in the

          discourse but must be true in the possible world in which the

          belief is true.  This internal anchor may contain a condition








                                                                          8


          that distinguishes between two referents that are coreferential

          in the model, as in Pierre's case, or vice versa.  In addition,

          Asher argues that SC does not hold in natural language; two NPs

          that are coreferential but different in form convey different

          information and are not substitutable.


                 In Smith (1989), I applied DRT, the basic theory augmented

          by the extensions suggested above, to a narrative that had been

          normed at sixth-grade comprehensibility in order to detect

          further extensions to DRT that would be necessary in order to

          represent adequately a natural language discourse.  That study

          suggested the need for additional mechanisms for handling the

          truth contributions of constrained clauses; mechanisms that deal

          with the influence of the constrainer on the constrained clause

          and mechanisms that determine whether, on the basis of subsequent

          information, a constrained clause should be elevated to the

          toplevel.  These topics are the focus of this study, and will be

          considered in the next section.



          3.          THE TRUTH-CONTRIBUTIONS OF CONSTRAINED CLAUSES


                 Clearly, beliefs are constrained clauses; their truth

          evaluation is constrained by believe to a method such as that

          described by Asher.  However, while Asher's procedure answers a

          number of problems when truth is considered from the standpoint

          of philosophical logic, it is rather awkward when truth is

          considered from the point of view of information retrieval.  For

          an information retrieval system, truth may simply be the ability,

          given (2.3), to answer such questions as (3):


          (3.1.a)     What does Pierre believe?

              (b)     Does Pierre believe that London is pretty?


                 Although Pierre's belief is contradictory, the report of

          that belief is not.  Perhaps the user does not care that the

          answer to (3.1.a) is contradictory (the user may even want to

          know if it is contradictory); or that the answer to (3.1.b) is

          one of two possible answers.  Furthermore, the software necessary

          to construct a possible world in which Pierre's belief is true

          (if such a program can be constructed at all) comes at a

          considerable cost in production time, program size, and run time,

          and the world it describes might be even less acceptable than

          Pierre's contradictory belief system.  We turn now to a method by

          which constrained clauses can be handled, from an information

          retrieval point of view, by a much less elaborate method.



          Truth Evaluation in an Information Retrieval System


                 From the information retrieval point of view, truth is

          what the user claims to be true; input is taken to be true unless

          it is constrained, as in (2.3) (unless, perhaps, it is








                                                                          9


          inconsistent with the knowledge base).  However, constrained

          clauses are not always blocked from toplevel truth evaluation.  I

          turn now to an examination of various constraining terms and

          their effects on truth evaluation.  This examination is limited

          to constrained clauses whose truth value is available; that is,

          the event or state reported has already occurred or failed to

          occur.  Consider the 'neutral' constrainer in (3.2):


          (3.2.a)     Ted said that Bob kissed Alice.

              (b)     Ted said, "Yecch!"

              (c)     She does not kiss yuppies.

              (d)     Ted was right.


                 (3.2.a) is true if Ted uttered the constrained clause (or

          words to that effect), even if the user knows Ted to be a

          pathological liar.  Thus, the constrained clause should not be

          evaluated for truth at all.  The simplest representation of

          (3.2.a) would assign a discourse referent to the constrained

          clause in its surface form, without analysis, as is necessarily

          the case for (3.2.b).  However, there are at least four reasons

          for representing the constrained clause as a sub-DRS, albeit a

          DRS that is shielded from truth evaluation:


          (3.3.a)     The user might have applied SC to Ted's actual

                      utterance.  If the system includes a facility for

                      calculating a confidence factor (i.e. How reliable is

                      Ted?), it will be necessary to analyze the

                      constrained clause in order to allow for SC in

                      checking for corroboration.


              (b)     (3.2.a) might be followed by (3.2.c).  If the

                      constrained clause has not been analyzed, the

                      discourse referent for Alice will not be available

                      as an antecedent for she.


              (c)     If (3.2.a) is the first occurrence of either

                      proper NP, a discourse referent for that entity

                      should be added to the toplevel universe; that

                      entity is 'pragmatically presupposed' by the

                      proper NP (McCawley 1981).  This addition can only

                      be made if the constrained clause is first

                      analyzed.


              (d)     If (3.2.a) is sometime later followed by (3.2.d),

                      provided by the user, the discourse referents and

                      conditions for the constrained clause should be

                      added to the toplevel DRS, and that addition

                      should be based on the context available at the

                      time of (3.2.a), excluding anything that might

                      have been added by intervening sentences.  While the

                      necessary analysis could be carried out at the time

                      of (3.2.d), it would be much simpler if it were done

                      at the time of (3.2.a).








                                                                         10


          Types of Constrainers


                 The procedure described above, which blocks the truth

          evaluation of the constrained clause, may, depending on the

          requirements of the information retrieval system, be satisfactory

          for a number of constrainers that report utterances or cognitive

          states, including the following:


          (3.4)  SAY CLASS (OBJECT)

                 say       suppose  allege   believe   deem

                 assert    assume   charge   fancy     conclude

                 maintain  intimate          deny      conjecture


          (The list of constrainers in (3.4), as well as those lists that

          follow, is taken largely from Kiparsky and Kiparsky (1970), as is

          the analysis on which what follows is based.)


                 Note that if a sentence whose main verb is deny is later

          confirmed, it is the negation of the constrained clause that must

          be added to the toplevel DRS.  The same would be true of (3.2.a)

          followed by (3.2.d) with right replaced by wrong.  Assuming this

          fact to be self-evident, I shall not make special note of other

          constrainers of this type.


                 The representation described above will allow an infor-

          mation retrieval system to answer questions such as those in

          (3.1).  However, there remains an implementation problem to be

          resolved.  Should the system respond only when the constrainer in

          the inquiry is identical to that in the original input, or should

          it respond when one constrainer in (3.4) is replaced by another? 

          If the answer is the latter, which constrainers are

          substitutable?  The answer depends on the needs of the particular

          system, and will not be examined further here.


                 A group of constrainers whose truth evaluation should be

          treated in the same fashion is illustrated in (3.5):


          (3.5)  It seems that Bob kissed Alice.


          Constrainers such as seem question or hedge on the truth of their

          subjects, which are often extraposed, as in (3.5).  Similar

          constrainers are shown in (3.6):


          (3.6)  SAY CLASS (SUBJECT)

                 seems     is likely         is possible

                 appears   is probable


          Kiparsky and Kiparsky point out the fact that some of these

          constrainers allow non-finite for-to clauses (e.g. 'for Bob to

          kiss Carol') as their subjects, but do not allow poss-ing (e.g.

          'Bob's kissing Carol') subjects.  I shall return to this fact

          shortly.








                                                                         11


                 Many of the Say Class of constrainers have adverbial

          forms:


          (3.6.a)     It is probable that Ted kissed Carol.

              (b)     Ted probably kissed Carol.


          Although the two sentences in (3.6) are synonymous, the

          constrained clause in (3.6.a) is dependent while the same clause

          in (3.6.b) is independent.  Nevertheless, synonymous clauses

          should be treated in the same manner; that is, the constrained

          clause should not be evaluated for truth in the toplevel DRS.


                 The group of constrainers shown in (3.7) is syntactically

          identical to those in (3.6), but the truth contribution is quite

          different.


          (3.7)  TRUE CLASS (SUBJECT)

                 true      happens      certain

                           chances      sure

                 false     turns out


          These constrainers assert the truth (or falsity) of the

          constrained clause.  Thus, the constrained clause should not be

          shielded from the truth evaluation of the toplevel DRS.  The

          simplest representation of a sentence containing one of these

          constrainers would ignore the constrainer and add the

          representation of the constrained clause to the toplevel DRS. 

          Such a representation would make it impossible to refer to the

          constrained clause (cf. 3.2.d), but such reference seems

          unlikely.  If such references must be allowed, sentences

          containing those constrainers can be handled in the manner of

          (3.2.a) followed by (3.2.d).


                 Note that if one of the True Class of constrainers appears

          in negated form, it is the negation of the constrained clause

          that is added to the DRS.  (However, the negation of certain is a

          Say Class constrainer.  The converse is true of possible.)


                 A fourth group of constrainers, although syntactically

          identical to the Say and True Classes, makes a truth contribution

          that is different from either.


          (3.8)  REGRET CLASS (SUBJECT)

                      surprising   exciting  amuses    matters

                      significant  relevant  counts    suffices

                      tragic       odd       bothers   makes sense


          These constrainers ('factives' for Kiparsky and Kiparsky)

          semantically presuppose the truth of their complement clauses. 

          That is, the complement clause is held to be true, whether the

          constrainer appears in positive or negative, declarative or

          interrogative form.  Therefore, the constrained clause should not

          be shielded from toplevel truth evaluation.  In addition, these








                                                                         12


          constrainers have semantic content of their own, unlike those in

          the True Class. (e.g. The user may want to know what the signif-

          icance is.)  It is thus necessary to assign a discourse referent

          to the constrained clause so that it can appear as an argument to

          the constrainer.  These considerations suggest that a clause

          constrained by one of these terms should be represented twice,

          once as an independent sentence and once in the manner of a

          clause constrained by a Say Class constrainer.


                 The fifth group of constrainers functions syntactically

          like the Say Class (Object), but makes a truth contribution like

          that of the Regret Class (Subject).


          (3.9)  REGRET CLASS (OBJECT)

                      regret       forget (about)      be aware (of)

                      resent       make clear          bear in mind

                      deplore      ignore              take into

                      mind         comprehend             account/

                      care (about) grasp                  consideration


          These verbs also have semantic content, so discourse referents

          for the constrained clauses must be added to the toplevel DRS. 

          These verbs allow the fact that and poss-ing complements, but not

          for-to complements (at least, not with presuppositional value). 

          Some (regret, forget) have presuppositional value under equi-NP

          deletion, but others do not.


                 Kiparsky and Kiparsky note that the truth contribution of

          a clause depends only on the immediate constrainer, no matter how

          deeply it is embedded:


          (3.10.a)    Carol appears to believe that Bob regrets that he

                      kissed Alice.

               (b)    Bob kissed Alice.


          Thus, (3.10.a) presupposes (3.10.b), because it is constrained by

          regret, in spite of the fact that the intervening appear and

          believe are Say Class constrainers.


                 The next class of constrainers is labeled 'indifferent' by

          Kiparsky and Kiparsky because the truth of the constrained clause

          may or may not be presupposed.


          (3.11) SUSPECT CLASS (OBJECT)

                      suspect      acknowledge    announce  emphasize

                      anticipate   admit          report    remember

                      deduce


          With poss-ing complements, these verbs are factives, Regret Class

          constrainers.  With finite and for-to complements, however, it is

          unclear whether they are Say Class or True Class constrainers.








                                                                         13


                 It may have been noted that there is no list of True Class

          (Object) constrainers.  This gap is particularly striking when

          one considers that two of the verbs in (3.7), certain and sure,

          can constrain object clauses.


          (3.12.a)    It was certain that Bob kissed Alice.

               (b)    Ted was certain that Bob kissed Alice.

               (c)    Ted was certain of Bob's kissing Alice.

               (d)    Bob kissed Alice.

               (e)    I am certain that Bob kissed Alice.


          Sentence (3.12.a) asserts the user's belief that (3.12.d) is

          true, but (3.12.b) only asserts Ted's belief; the user may know

          Ted to be wrong.  Sentence (3.12.c) is even worse; Ted may have

          believed that (3.12.d) had already occurred, or that it was

          potential.  Thus, while these verbs are True Class (Subject)

          constrainers, they are Say Class (Object) constrainers.


                 Almost paradoxically, this class shift holds even with a

          first-person subject.  Sentence (3.12.e) seems to assert what

          (3.12.a) asserts, the user's belief that (3.12.d) is true in the

          model.  However, the user's choice of (3.12.e) rather than

          (3.12.a) is a hedge on that assertion.


                 Another complex group of constrainers is that shown in

          (3.13):


          (3.13) KNOW CLASS (OBJECT)

                      know      comprehend   learn

                      see       understand   realize


          When one of these verbs is used in a past tense, it is factive;

          the truth of its constrained clause is presupposed, regardless of

          the subject or the polarity (affirmative or negative).  With a

          third-person subject, the constrained clause is presupposed in

          the present tense.  (It is assumed here that the constrainer is

          provided by the user and is not his ironic quotation of the

          subject.)


                 It is when the verb has a first-person subject in a

          present tense that the complexity arrives.  In this case, the

          verbs in (3.13) must be treated on an individual basis.  To do

          so, it will help to use the template in (3.14), where the blank

          is to be filled in by a (possibly negated) constrainer.


          (3.14) I __________ a. (that) Bob kissed Alice.

                              b. (of/about) Bob's kissing Alice.

                              c. (for) Bob (to) kiss Alice.


                 The constrainer know allows (3.14.a,b).  In either case,

          it is like certain: in the affirmative it is a True Class

          constrainer, but in the negative it shifts to the Say Class.  As








                                                                         14


          in the case of certain, the poss-ing complement is not

          presupposed.


                 In (3.14.b), comprehend and understand presuppose their

          complement clauses.  The verb understand allows (3.14.a), but

          only in the affirmative, in which case it is a Say Class

          constrainer, with a meaning something like "Someone said that Bob

          kissed Alice."  The constrainer realize is acceptable only in

          (3.14.a) and presupposes its complement clause; thus, if it is

          negated, it denies its own presupposition and the sentence makes

          no sense.


                 The simple present tense of learn does not work in (3.14)

          except in special contexts (e.g. an actor referring to his role

          as himself), and the present progressive requires that the

          learning process be extended, so that what is learned is

          (usually) not a simple fact.  While in some special contexts the

          constrained clause is presupposed, it is more practical to treat

          first-person present tense learn as a Say Class constrainer.  The

          verb see is ambiguous between an act of perception and a state of

          cognition.  In the former case it allows (3.14.c) (without

          prepositions) and is a True Class constrainer.  In (3.14.a), see

          reports a cognitive state; in the affirmative it acts as does

          understand, but in the negative it is a Say Class constrainer.


                 This section has examined clauses whose truth contribu-

          tions to a DRS are constrained by a certain group of predicates

          (verbs and adjectives).  It has found five classes of

          constrainer, some with subclasses according to whether the

          constrained clause is the subject (perhaps extraposed) or the

          object of the predicate:


          (3.15.a) SAY CLASS: The constrainer makes no claim about 

                 the truth contribution of the constrained clause, so

                 that clause should be shielded from toplevel truth eval-

                 uation.  However, the clause should be identified

                 by a discourse referent because it may later be 

                 confirmed or contradicted.


                 (b) TRUE CLASS: The constrained clause is added to the

                 toplevel DRS because the constrainer asserts the truth

                 of its complement.  (If the constrainer is negated, it

                 is the negation of the constrained clause that is

                 added.)  Such clauses might not require discourse

                 referents, although no harm is done if referents are

                 assigned.


                 (c) REGRET CLASS: The constrainer presupposes the 

                 truth of the complement clause, so that clause is added

                 to the toplevel DRS.  This addition is independent of

                 the form of the matrix clause (i.e. affirmative-

                 negative, declarative-interrogative).








                                                                         15


                 (d) SUSPECT CLASS: Presupposition depends on the 

                 syntactic form of the constrained clause.  poss-ing

                 complements are presupposed, but other complements are

                 unclear about presupposition and are to be treated as

                 those under Say Class constrainers.


                 (e) KNOW CLASS: The constrained clause is presupposed

                 unless the constrainer is first-person, present tense.

                 In the latter case, each verb requires its own

                 treatment.


                 It was noted that some True Class constrainers have

          corresponding adverbs.  Other adverbs can act as constrainers,

          and their truth contributions must be examined.  Modal

          auxiliaries and verbs with similar semantic value (e.g. ought to,

          want to) also require such analysis.  Associated with the modal

          class is the case of constrained clauses whose truth is not yet

          known; should they be left unevaluated, or should they become

          'demons' whose truth must eventually be evaluated?  These

          questions remain to be answered.


                 In the next section we examine a computer implementation

          of DRT that is able to handle certain of the constrained clauses

          described here.



          4.          AN IMPLEMENTATION OF DRT


                 In this section and the next we describe a computer

          implementation of DRT.  It takes as input a 'discourse' of one or

          more English sentences, parses the input and constructs a DRS for

          it, and then asserts the set of conditions in that DRS to a

          Prolog knowledge base.  The language it accepts includes both the

          types of sentence described in Section 2 and a subset of those

          described in Section 3.  Specifically, it handles noun clause

          complements of a selected group of Say, True, and Regret Class

          Constrainers.


                 This implementation is an extension of From English to

          Prolog via Discourse Representation Theory (Covington, Nute,

          Schmitz, & Goodman, 1988; henceforth CNS&G).  That program is "a

          set of techniques for translating the discourse representation

          structures of Kamp (1981) into semantically equivalent clauses in

          a slightly extended form of Prolog. (1)"  That program is in turn

          an extension of An Implementation of Discourse Representation

          Theory (Covington & Schmitz, 1988; henceforth C&S), "a program

          that constructs discourse representation structures from ordinary

          English input. (1)"  It, in turn, is an extended version of the

          program described in Johnson & Klein (1986).  (The extension to

          be described in Section 5 of this report is designated CONSTRAIN. 

          Note that the abbreviations C&S and CNS&G will be used to refer

          both to the programs and to the documents describing them.)








                                                                         16


          Phrase Structure Rules


                 C&S is a top-down parser, written in definite clause

          grammar (DCG) notation, for a phrase structure (PS) grammar.  The

          PS rules are augmented with a hold mechanism that allows the

          parsing of certain empty categories, and with a feature structure

          that allows syntactic and semantic information to be passed from

          one node of the parse tree to another.  Although Kamp employs a

          top-down procedural algorithm, CNS&G view the PS-to-DRT mapping

          as a static relation defined in terms of unification of feature

          structures.  (The CNS&G view follows that of Johnson & Klein

          (1986) and is in the spirit of Zeevat (1989)).


                 The addition of a hold mechanism and a feature structure,

          although necessary to give the program its power, can make the

          description of the parser complicated; the reader who is only

          concerned with the syntactic rules is likely to be confused by

          the presence of the feature unification rules.  To avoid that

          confusion, this description will be presented in three passes. 

          The first pass will treat the parser as if it consisted of DCG

          rules only, the second will add the hold mechanism to that

          description, and the final pass will treat the feature structure. 

          Because of the interaction between the three, this neat

          simplification is not entirely possible.  For the first two

          passes the reader must accept without explanation the fact that

          the semantic features carry the DRS for the portion of the

          discourse already processed.


                 C&S accepts discourses that conform to the PS rules shown

          below.  (Parentheses indicate optional elements; the parser

          actually has separate rules for these possibilities.  Words in

          brackets are terminal symbols.)


          (4.1)  discourse --> statement, (discourse).

                 discourse --> question, (discourse).

                 statement --> sentence.

                 question  --> [does], np, vp.

                 question  --> [is], np, adj.

                 question  --> [is], np, np.

                 sentence  --> np, vp.

                 sentence  --> np, [does, not], vp.

                 sentence  --> np, [is], adj.

                 sentence  --> np, [is, not], adj.

                 sentence  --> np, [is], np.

                 sentence  --> np, [is, not], np.

                 sentence  --> [if], sentence, [then], sentence.


                 The PS rules for VP and Adj are straightforward, as is

          shown in (4.2).  (Form is a variable representing a terminal

          symbol.)








                                                                         17


          (4.2.a)     vp  --> v, np.

              (b)     vp  --> v.

              (c)     v  --> [Form].

              (d)     adj --> [Form].


          As we shall see below, syntactic features prevent (4.2.c) from

          selecting a transitive verb for (4.2.b), or an intransitive for

          (4.2.a).


                 While the rules for VP are essentially those of Chomsky

          (1965), the NP rules make use of X-bar theory.  NP is bar-3, and

          numeric suffixes indicate the other bar levels.  As is the case

          for VP, syntactic features subcategorize Form for lexical

          insertion--proper or common noun.  (Pronoun is a notational

          device; each gender of pronoun requires a separate rule.  C&S is

          not sensitive to pronoun case.)


          (4.3.a)  np --> n.                 (Proper noun)

              (b)  np --> [Pronoun].

              (c)  np --> [].                (Empty category)

              (d)  np --> det, n2.

              (e)  n2 --> n1.

              (f)  n2 --> n1, relcl.         (NP with relative clause)

              (g)  n1 --> n.

              (h)  n1 --> adj, n1.

              (i)  n  --> [Form].


                 Rules (4.3.c) and (4.3.f) will be discussed with the hold

          mechanism.  Rule (4.3.b) searches the incoming DRS for the most

          recent discourse referent that matches Pronoun in gender. 

          (Remember that this version of DRT does not handle plural NPs.) 

          Rule (4.3.h) is recursive, so n1 may contain any number of

          adjectives.


                 In order to handle empty categories, C&S adds to each

          phrasal rule two arguments, an input and an output hold list. 

          When rule (4.3.f) is applied, the discourse referent of n1 is

          placed at the head of the input list and that list is passed to

          relcl.  When (4.3.c) is applied while processing relcl, the first

          referent on the hold list is removed and assigned to the empty

          category.  This procedure insures that empty categories are

          instantiated on a last-in-first-out basis.  The rules for

          discourse, statement and question require that the hold lists be

          empty, since empty categories cannot be bound across sentence

          boundaries.  



          Unification of Feature Structures


                 The C&S parser incorporates a unification based grammar

          (Schieber 1986) that passes feature structures from one node of

          the parse tree to another.  Since features are passed by means of

          unification, it is possible to pass a feature from one node to








                                                                         18


          another before it has been instantiated.  For example, rule

          (4.2.a) unifies the discourse referent of np with the second

          argument of v before either (4.2.c) or (4.3) is applied.


                 The use of feature structures is facilitated by the use of

          the GULP extension to Prolog (Covington 1987).  GULP makes it

          possible for the programmer to refer to features by name, rather

          than by position in the feature structure.  In consequence, a

          parser written in GULP is much easier to read than is one written

          in standard Prolog notation.  The C&S parser uses syntactic

          features that constrain the parse procedure and semantic features

          that construct DRSs during the parse procedure.  


                 The syntactic features employed by C&S are syn:index,

          syn:class, syn:arg1 and, syn:arg2.  syn:index is a unique integer

          that is generated for each noun in the discourse; its value is

          the discourse referent that is used to bind pronouns and empty

          categories.  syn:arg1 and syn:arg2 are also integers; they are

          unified with the syn:index features of the nouns in a sentence

          and become the arguments of its predicates.  The syn:class

          feature of a noun (proper or common) or verb (transitive or

          intransitive) is a subcategorization that serves to constrain the

          parse procedure, as was noted above.


                 The semantic features are sem:in, sem:out, sem:res:in,

          sem:res:out, sem:scope:in, sem:scope:out.  GULP makes it possible

          to address an individual feature or a bundle of features; for

          example, a variable may be bound to sem:res:in, to sem:res (both

          in and out are bound), or to sem (all features are bound). 

          Features may be cross-unified, so that sem:res of one node may be

          bound to sem of another node.


                 The value of a semantic feature is a list of one or more

          structures of the form drs(U, Con), where U is a list of

          discourse referents and Con is a list of conditions.  The first

          drs/2 on the list is the representation currently being

          processed.  Not all of the features are instantiated for every

          node; in fact, most nodes use only the sem:in/out features.  Each

          parent node instantiates the sem:in of its daughter(s) to the DRS

          for the portion of the discourse already processed.  The daughter

          then adds its own discourse referents to U and its conditions to

          Con, and returns the expanded drs/2 as sem:out to its parent. 

          (The initial sem:in for a discourse is [drs([], [])].)


                 Consider, for example, (4.4), which gives the full form of

          (4.2.d) along with the rules that it calls.








                                                                         19


          (4.4.a)     adj(Adj) --> [Form],

                                   {adjective_features(Form, Adj)}.

              (b)     adjective_features(Form,Adj):-

                            append(Semantics, Con, NewCon),

                            Adj = syn: (index:I) ::

                                  sem: (in : [drs(U, Con)| Super] ::

                                  out: [drs(U, NewCon)| Super]).

               (c)    adjective(big, lambda(I, [big(I)])).


                 The N1-rule that calls (4.4.a) unifies the syn features of

          Adj with those of the noun that the adjective modifies.  It also

          unifies the sem:in feature of Adj with the appropriate feature of

          that noun (which feature it is unified with depends on the

          calling rule).  The entire feature structure of Adj is then

          passed to (4.4.b).


                 Rule (4.4.b) unifies I with the syn:index feature of the

          modified noun and passes it to (4.4.c), which in turn unifies it

          with the argument of Form, the adjective being processed.  The

          resulting structure is appended to Con, the condition list on the

          input DRS, and the result, NewCon, is passed in the output DRS.


                 The sem:res and sem:scope features are needed in order to

          handle universally quantified NPs.  DRT treats a sentence with a

          universally quantified NP as an implication. The antecedent, the

          sem:res feature, consists of the information in the NP itself,

          information that restricts the set to which the NP refers.  The

          consequent, the sem:scope feature, consists of the information in

          the remainder of the sentence, the scope of the NP.  Scope is

          determined by the left-to-right ordering of NPs; the verb falls

          within the scope of all NPs, and the object NP is within the

          scope of the subject NP.  


                 C&S follows Johnson & Klein (1986) in treating the

          determiner as the key element in determining quantification. 

          Thus, the sem of a sentence is the sem of the subject NP, which

          in turn is the sem of the determiner of that NP.  Consider (4.5).








                                                                         20


          (4.5)  det(Det) --> [every],

                         { Det = sem:in:A,

                           Det = sem:res:in:[drs([],[])|A),

                           Det = sem:res:out:B,

                           Det = sem:scope:in:[drs([],[])|B],

                           Det = sem:scope:out:

                                   [Scope,Res,drs(U,Con)|Super],

                           Det = sem:out:[drs(U,[ifthen(Res,Scope)|

                                                  Con])|Super] }.


                 Let us assume that (4.5) is called by an NP-rule that is

          called directly by an S-rule (i.e. the NP in question is the

          subject of the sentence), and let us trace the feature

          unifications through the parse tree.  At this point, the only

          feature that has been instantiated is sem:in (A in rule (4.5)),

          which contains the DRS for the preceding portion of the

          discourse.  The NP-rule unifies its entire sem feature with that

          of Det, and the S-rule likewise unifies its sem feature with that

          of NP.  The S-rule also unifies the sem of VP with the sem:scope

          of NP, from which it is passed to the sem:scope of Det.  The NP-

          rule also unifies the sem of N2 with sem:res of Det.


                 Rule (4.5) unifies A with sem:in, the incoming DRS list,

          and conses to A a DRS with empty universe and condition lists. 

          The resulting list becomes sem:res:in, and therefore sem:in of

          N2.  The N2-rule fills those empty lists and returns them as B,

          the sem:res:out of Det.  (4.5) then prefixes an empty DRS to B,

          producing the sem:scope:in of Det and NP, and the sem:in of VP. 

          The VP-rule fills the empty DRS and returns it as sem:scope:out

          of NP and Det.  (4.5) extracts from sem:scope:out the first three

          DRSs: Scope, the now filled DRS from VP, Res, the now filled DRS

          from N2, and the first DRS in A (the input DRS list), drs(U,

          Con).  Finally, Res and Scope are made arguments to the functor

          ifthen, which is prefixed to Con.  The result is the sem:out of

          Det, NP, and S.


                 Rule (4.5) is more complicated than most of the C&S rules,

          but all phrasal rules work in the same general fashion.  The

          reader is referred to C&S for complete specification of the

          grammar; here we are concerned with the extensions to that

          program necessary in order to handle constrained clauses.



          Prologization of a DRS


                 CNS&G adds to C&S procedures that translate the DRS in the

          sem:out feature of a discourse into Prolog clauses

          (Prologization) and then assert/process those clauses.  Again, we

          are concerned primarily with those portions that must be modified

          or extended for the present implementation.  The reader is

          referred to CNS&G for a complete specification of that program.








                                                                         21


                 Before translating the set of conditions of the output DRS

          into Prolog, two "clean-up" steps must be performed.  The lexical

          insertion rules of the parser provide two conditions for each

          noun in the discourse: the property denoted by the noun and the

          gender of the noun.  The latter is needed only for anaphora

          resolution and is discarded before that set is processed.


                 The second clean-up step involves unifying equated

          discourse referents.  The original C&S parser assigns to each

          noun a unique integer, even in sentences such as (4.6):


          (4.6)  Pedro is a farmer.


          The parser would then add a condition that equates the discourse

          referent of Pedro with that of farmer.  The parser in CNS&G is

          modified to defer the assignment of integers to discourse

          referents to the Prologization module.  That delay makes it

          possible to unify the discourse referents for (4.6) so that only

          one integer is assigned to them.  With that unification

          accomplished, the universe of the DRS is no longer needed, and

          Prologization converts the list of properties/relations in the

          conditions into a list of Prolog clauses.  


                 Prologization works its way through the list of conditions

          and produces a new list that is suitable for asserting or

          querying.  If a condition is a simple property or relation, the

          output of a lexical rule, it is simply added to the new list.  If

          the condition is query(DRS), DRS itself has to be cleaned up,

          Prologized, and converted into a conjunction of clauses.  If the

          condition is ifthen(DRSA, DRSC), DRSA (the antecedent) and DRSC

          (the consequent) must be cleaned up and Skolemized before they

          can be Prologized and converted into conjunctions of goals. 

          Skolemization involves binding each uninstantiated variable in

          DRSC that does not appear in DRSA to a list whose head is a

          unique integer and whose tail is the universe of DRSA. 

          Skolemization insures that such variables have existential import

          and narrow scope.  



          Processing Prologized Clauses


                 The output of Prologization is a list of clauses, each in

          one of the following forms:


          (4.7.a)     Clause

              (b)     neg(Clause)

              (c)     (ClauseList1 ::- ClauseList2)

              (d)     query(Clause)


          Processing (4.7.a) in the assert/query module is a simple matter

          of asserting Clause.  CNS&G does not support negation; (4.7.b) is

          processed simply by noting that negation is not supported.  The

          symbol ::- in (4.7.c) is a functor corresponding roughly to :- in








                                                                         22


          Prolog; processing involves converting the list of clauses into a

          conjunction of Prolog terms and asserting them.  Similarly,

          Clause in (4.7.d) is converted to a conjunction of Prolog terms

          and called, and the result is reported to the user.  


                 Actually, CNS&G does not assert or query anything; it

          simply announces what it would do if it did.  One of the first

          extensions to that implementation made by CONSTRAIN is to make

          the processing step work.  In essence, this extension is a matter

          of making the program do what the  CNS&G program says it would

          do.  In the case of (4.7.b), Clause is not converted to a

          conjunction of terms; it remains a list, the single argument to

          neg.


                 This treatment of negation is rather cursory, but the

          treatment of negation is not the focus of this study.  CONSTRAIN

          extends the C&S grammar to include disjunction, to which the

          processing step pays similar lip service.  This limitation is due

          to the fact that a disjunction such as (4.8.a) is not a Horn

          clause and cannot be represented directly in Prolog (although a

          disjunction may appear in the body of a rule).  (4.8.a) could be

          represented as (4.8.b) and (4.8.c), but it would be unwise to do

          so before the details of neg/1 are worked out.


          (4.8.a)     p OR q

              (b)     p ::- neg(q)

              (c)     q ::- neg(p)

              (d)     query(p)


                 Further extensions to the grammar require more significant

          refinement of the assert/query module especially in the case of

          questions; we shall return to these after examining the

          extensions to the parser.



          5.          EXTENDING THE IMPLEMENTATION OF DRT


                 CONSTRAIN is divided, for ease of development, into eleven

          modules:


          (5.1)     DRT_LOAD.GLP

                    DRT_UTIL.GLP

                    DRT_PS1.GLP

                    DRT_PS2.GLP

                    DRT_PS3.GLP

                    DRT_LEX.GLP

                    DRT_RED_GLP

                    DRT_PRO1.GLP

                    DRT_PRO2.GLP

                    DRT_TRY.GLP

                    DRT.TEST.GLP








                                                                         23


                 DRT_LOAD loads the program.  Files that include feature

          structures make use of the GULP load/1 command, which converts

          GULP feature notation into Prolog form.  Those that do not use

          feature structures are consulted because that procedure is

          faster.  DRT_LOAD also defines the goal loadred/0, which is used

          to load the lexical redundancy rules in DRT_RED, a process that

          must be repeated every time the knowledge base is cleared with

          newkb/0.  Placing all of the load commands in one file

          facilitates relocating the program.  If, for example, the program

          is to be run from the A: drive, only DRT_LOAD need be edited.


                 DRT_UTIL contains general utility routines, such as list

          manipulation procedures, and procedures for displaying a DRS in a

          readable form.


                 DRT_PS1, DRT_PS2, and DRT_PS3 contain the phrase structure

          rules.  DRT_PS1 contains lexical insertion rules: rules that make

          direct calls to the lexicon (DRT_LEX).  DRT_PS3 contains rules

          that deal with whole clauses (discourse, question, statement). 

          DRT_PS2 contains rules that rewrite intermediate structures.


                 DRT_LEX and DRT_RED contain the lexicon.  The former

          contains the lexicon proper, while DRT_RED contains lexical

          redundancy rules, such as the rule that allows the program to

          infer that Bob is a man.


                 DRT_PRO1 and DRT_PRO2 contain the rules that apply the DRS

          output by the parser to a Prolog knowledge base.  DRT_PRO1

          contains the Prologization module that translates the conditions

          of the DRS into Prolog clauses, and DRT_PRO2 contains the

          assert/query module that asserts these clauses to the knowledge

          base or calls them as queries to that knowledge base.


                 DRT_TRY and DRT_TEST contain the user interface.  DRT_TRY

          contains the rules that accept an input and send it to the

          program for processing, while DRT_TEST contains a test suite that

          calls DRT_TRY for processing.



          Knowledge Representation


                 Most of the changes to C&S involve the addition of PS

          rules to DRT_PS2 or DRT_PS3.  These additions, of course, entail

          concomitant modifications to the other modules.  These

          modifications, however, are based on a more fundamental

          modification, a change in the form of knowledge representation in

          DRT_LEX.  


                 In Kamp's version of DRT, conditions are represented as

          predicate-argument structures: Pred(Arg) or Pred(Arg1, Arg2). 

          Pred is the natural language word (noun, verb, or adjective), and

          Arg is a discourse referent.  C&S follows that representation,

          with one modification: rather than being treated as predicates,








                                                                         24


          proper nouns are second arguments to the predicate named/2. 

          Thus, (5.2.a) is represented by the conditions in (5.2.b).


          (5.2.a)     Bob kisses Alice.

              (b)     [named(1, bob), named(2, alice), kiss(1, 2)]


                 This representation poses several problems for the design

          goals of CONSTRAIN: First, with such a representation it is

          awkward to distinguish between events and states.  Although that

          distinction plays a relatively minor role in this implementation,

          it could play a major role in an extension that incorporates

          Guenthner's (1987) proposals. 


                 Second, as was noted in Section 3 of this report, some

          constrainers behave differently depending on the tense of the

          sentence, so it is necessary to include tense in the

          representation.  It would, of course, be possible to add an

          argument for tense to the structure shown above, but such a

          solution would be, at best, unesthetic.  


                 Third, in order to query a knowledge base using the format

          shown above, it is necessary to know the predicate in advance. 

          One can ask who Bob kisses, but one cannot ask what Bob does. 

          Finally, the use of redundancy rules is very awkward with this

          format.  Given (5.3.a), one would like to get an affirmative

          response to 

          (5.3.b).


          (5.3.a)     Bob knows that Ted kissed Alice.

              (b)     Does Bob believe that Ted kissed Alice?


          Using the knowledge representation in (5.2.b), it is   necessary

          to have a separate rule for each verb that   entails believe.


                 In order to overcome these difficulties, this program

          reifies natural language predicates so that they become arguments

          to Prolog predicates.  (This, in effect, is the reverse of Kamp

          (1981), who uses proper nouns as predicates.)  Thus, the

          conditions in a DRS have one of the four forms in (5.4).


          (5.4.a)     named(Index, Name)

              (b)     isa(Noun, Index)

              (c)     event(Tense, Event, [Arg1|Rest])

              (d)     state(Tense, State, [Arg1|Rest])


          Event is an action verb, while State is a stative verb or an

          adjective.  Representing the argument(s) to a natural language

          predicate as a list makes it unnecessary to have separate rules

          for addressing one- and two-place predicates.


                 Representations (5.4.a,b) are adequate for the current

          implementation, which assumes that the name and/or class of an

          entity does not change during the time covered by a discourse. 








                                                                         25


          If the program is to cover greater periods of time, tense

          arguments must be added to these predicates in order to account

          for (5.5.a, b), for example.


          (5.5.a)     Bob was a boy.

              (b)     Bob is a man.


                 For affirmative statements, the addition of time reference

          to the knowledge representation requires, at first glance, only a

          simple modification of the lexical rules.  That is, the C&S rule

          in (5.6.a) need only be changed to that in (5.6.b) and an

          additional rule be added for saw.


          (5.6.a)     transitive_verb(sees, 

                           lambda(A1, A2, [see(A1,A2)]))

              (b)     transitive_verb(sees, 

                           lambda(pres,A1, A2, 

                                 [event(pres, see, [A1,A2])])


                 For negatives and questions, however, tense is determined

          by the form of the auxiliary, not that of the main verb.  It is

          necessary, therefore, to add a syntactic feature, syn:tense, to

          the GULP feature structure in order to pass tense from the

          clause-level rule to the lexical rules.  Thus, for example, the

          question rule of (4.1), repeated as (5.7.a), is modified to the

          form of (5.7.b).  (For clarity of exposition, hold arguments are

          not shown, and only those feature unification rules that are

          relevant to the present discussion are displayed.)


          (5.7.a)     question(Q) --> [does],np(NP),vp(VP).

              (b)     question(Q) --> {DO = syn:tense:Tense,

                                       VP = syn:tense:Tense,

                                       NP = syn:tense:Tense},

                                        do(DO), np(NP), vp(VP).


          (5.7.b) requires the addition of a lexical insertion rule for do

          and lexical rules for do and does.  The variable Tense is bound

          in the do rule, and its value is passed, by way of VP, to the

          lexical rule for the verb.  Similar modifications are needed for

          the PS rules that include the copula is, passing tense to the

          subject complement.


                 (5.7.b) does not pass syn:tense only to VP; it also

          unifies that feature with the corresponding feature in NP. 

          Although nouns do not have tense (at least, in the present

          system, but see the discussion of isa/2 above), nouns may be

          modified by attributive adjectives--states that require tense

          arguments--which receive their tense from the matrix clause. 

          Thus, every clause-level rule must pass a tense feature to its

          subject, and a VP rule must pass that feature to the direct

          object.








                                                                         26


                 Even within the limits noted above, the addition of time

          reference to the knowledge representation introduces a further

          difficulty: the frame problem.  Given that a state obtained in

          the past, does it continue into the present?  For the human

          processor of natural language, the frame problem is rarely a

          problem.  He knows which states can be assumed to be permanent

          (in the absence of evidence to the contrary) and which can be

          assumed to be momentary.  For those states that fall in between,

          he is able to assign a probable length of duration.  This

          assignment is based on real-world knowledge of the state and the

          participants.  Acquiring and programming such knowledge, however,

          is a daunting problem for artificial intelligence.  As is the

          case for negation, CONSTRAIN adopts a simplistic approach: a

          state that was true in the past remains true in the present

          unless its negation in the present has been asserted.  This

          approach is encoded in a meaning postulate in the file DRT_RED:


          (5.8)  state(pres, Verb, Args) :-

                                state(past, Verb, Args),

                                not neg([state(pres, Verb, Args)])



          Proper Nouns


                 A further extension that is independent of processing

          constrained clauses is the treatment of proper nouns.  Kamp

          (1981) assigns a discourse referent to each proper noun, and then

          equates those referents that are arguments to the same name;

          thus, there can be only one individual for each name.  CNS&G take

          the opposite approach, allowing for more than one individual with

          a particular name.  Each proper noun is assigned a unique

          integer, and there is no way to show that two instances of Bob

          refer to the same individual.


                 CONSTRAIN takes a middle road.  Within a discourse (a list

          of words and punctuation marks), all instances of a proper noun

          are assumed to refer to the same individual.  The first rule for

          a proper noun treats it as a pronoun, seeking a match in the

          input universe.  If a match is found, the new instance is

          assigned the same discourse referent; otherwise a new discourse

          referent is generated.


                 Between discourses that apply to the same knowledge base,

          however, the program allows for the possibility that a new

          instance of a name refers to a different individual.  Before the

          input string is sent to the parser, the rule preprocess/2 creates

          a list of the proper nouns in the input, eliminates duplication,

          and queries the user about each of the names that appears in the

          knowledge base.  If the user responds that this is the same (i.e.

          last mentioned) or the previous individual of that name, the ap-

          propriate named/2 and gender/2 propositions are placed in the

          initial DRS, K0; otherwise the parser will generate a new

          discourse referent for the name.  To allow correct application of








                                                                         27


          this procedure, when the assert/query module of DRT_PRO2

          encounters a named/2 clause it first retracts that clause, if it

          is present in the knowledge base, and then adds it with asserta/1

          to insure that it will be the next such clause to be accessed.


                 (Note that pronominal anaphora can only be resolved within

          a discourse.  In order to address a discourse referent in the

          knowledge base, it is necessary to refer to that individual by

          name.)



          Answering a Query


                 A final modification to CNS&G that is necessary for the

          handling of constrained clauses but also applies to other clauses

          is an extension of the mechanism for querying the knowledge base. 

          A query in CNS&G can only ask a yes/no question: given (5.9.a),

          one may query (5.9.b), but not (5.9.c,d).


          (5.9.a)     Bob kissed Carol.

              (b)     Did Bob kiss Carol?

              (c)     Who kissed Carol?

              (d)     Whom did Bob kiss?


                 The first problem is to find a place to put the answer. 

          The CNS&G program would handle questions by converting the list

          of queried propositions to a conjunction in the Prologization

          step and passing that conjunction to assert_or_process/1,  That

          predicate in turn calls test(Goal, Result) and prints Result. 

          test/2 uses the built-in predicate call/1 to test that

          conjunction.  Result is bound to 'yes' if the call succeeds and

          'no' if it fails.


                 The first step in this extension to that program is to

          expand the possibilities for Result.  test(Goal, Result), after

          displaying the goal that is being queried, calls test_list(Goal,

          Result).  If the latter call fails, Result is bound to

          'INSUFFICIENT DATA'; otherwise it returns the value assigned by

          test_list/2.  


                 test_list/2 tries three methods for assigning a value to

          Result.  The first method is that of CNS&G, converting the list

          of propositions to be queried into a conjunction and calling that

          conjunction; if the call is successful, Result is bound to

          'AFFIRMATIVE.'  The next method checks the knowledge base for

          neg(Goal); if that check succeeds, Result is bound to 'NEGATIVE.' 

          Thus, this implementation replaces Prolog's negation-as-failure

          with true negation.  However, this procedure is not complete; a

          query will return 'NEGATIVE' only if an identical list of

          propositions exists as an argument to neg.  Consequently, the

          response to (5.10.b) will be 'INSUFFICIENT DATA.'








                                                                         28


          (5.10.a)    Bob did not kiss a woman.  

                      named(p0, bob), 

                      neg([isa(X, woman), event(past, kiss, [p0, X])])

                (b)   Did he kiss a pretty woman?

                      query([isa(Y, woman), state(past, pretty, [Y]),

                             event(past,kiss,[p0, Y]) ])


                 If neither of the above methods succeeds, test_list/2

          enters a recursive loop that calls query(Goal, Result) on the

          head of the list of queries and than calls 

          test_list/2 on the remainder of the list.  This recursion is

          necessary in order to handle wh-questions.


                 At first glance, the treatment of wh-questions might seem

          a trivial matter.  One need only leave the discourse referent for

          the interrogative word unbound, so that  query/2 will seek to

          bind it.  However, the CNS&G parser leaves the discourse

          referents of all common nouns unbound until the clean-up step is

          reached, at which point it is impossible to distinguish the

          referents that should be bound from those that should remain

          free.  To overcome this difficulty, the CONSTRAIN parser unifies

          the pertinent syn:arg with the atom wh.  A query containing wh

          will not unify with any clause in the knowledge base, so the

          first two methods for test/2 will fail for such a clause.  (Note

          that the treatment of interrogative who/who is quite distinct

          from that for relative who/whom, which unifies the syn:index of

          the relative pronoun with that of its antecedent.)  When query/2

          encounters such a clause, it uses the built-in predicate set_of/3

          on a copy of the clause with wh replaced by a variable.  It then

          uses get_id_list/2 to produce a list of names of those discourse

          referents or, if they are not named, of their classes.  Result is

          then bound to that list.


                 The recursion on test_list terminates when one of three

          conditions is met:


          (5.11.a)    The input list is empty and Result is bound. 


               (b)    The input list is empty and Result is free (it is 

                      neither 'NEGATIVE' nor a discourse referent). 

                      Result is then bound to 'AFFIRMATIVE.'


               (c)    The input list can be satisfied by one of the 

                      non-recursive methods.  Result is then bound to

                      that Result.


          Note that if Result is bound by query/2, test_list(Goal, Result)

          cannot unify with the non-recursive methods.








                                                                         29


          Constrained Clauses: Say Class


                 The extensions to CNS&G described above provide the tools

          necessary for the addition of constrained clauses to the language

          handled by the extended program.  The first step in adding such

          clauses is the development of a representation of the embedded

          clause, an implementation of the proposition markers used by

          Spencer-Smith (1987) and Asher (1986).  The representation chosen

          is an additional knowledge base predicate, prop(Index, Clause). 

          This structure is created by the following PS rule:


          (5.12) nouncl(NC, [], []) -->

                         { NC = syn:index:Index,

                           NC = sem:in:A,

                           S  = sem:in:[drs([],[])|A],

                           S  = sem:out:[DRS,drs(U, Con)|Super],

                           NC = sem:scope:in:[drs([Index|U],

                                        [prop(Index,DRS)|Con])|Super],

                           NC = sem:scope:out:DRSList,

                           NC = sem:out:NewDRSList },

                           [that], s(S, [], []),

                         { add_to_topmost_drs(Index, 

                                              [prop(Index, DRS)],

                                              DRSList, NewDRSList) }.


                 The hold lists in (5.12) must be empty in order to prevent

          an empty category's referring to an element outside its governing

          category.  Like the rules for quantified NPs and negated

          sentences, (5.12) first conses an empty DRS to the input DRS;

          that DRS is filled in as S is processed, becoming DRS.  The

          remaining NC unification rules convert Index and DRS into a

          prop/2 structure and create the output.  After the DCG rule has

          instantiated those bindings, the rule add_to_topmost_drs/4

          elevates Index and the prop/2 structure to the toplevel DRS.


                 The nouncl rule is called by the rules VP --> V NC and 

          S --> it BE (not) Adj NC, which bind the syn:class feature of V

          to 'mental.'  The 'mental' feature contrasts with the features

          'transitive' and 'intransitive,' in the case of verbs, and

          'common,' in the case of adjectives.  The syn:class feature in a

          lexical insertion rule determines which lexical rule will be

          called, and the distinction must be reflected in the lexicon.


                 These modifications allow the program to handle clauses

          constrained by the Say Class of constrainers.  Such clauses are

          simply added to the DRS and are shielded from further truth

          evaluation.  Thus, the program at this point will properly handle

          the discourse in (5.13).  (Responses to queries are shown below

          the queries.)








                                                                         30


          (5.13.a)    Bob said that Ted kissed Alice.

               (b)    Did Bob say that Ted kissed Alice?

                      AFFIRMATIVE

               (c)    Who said that Ted kissed Alice?

                      bob

               (d)    Did Ted kiss Alice?

                      INSUFFICIENT DATA

               (e)    What did Bob say?

                      event(past, kiss, [ted, alice])



          Regret Class Constrainers


                 In order to extend the set of constrainers that the

          program handles to the Regret Class, the PS rule that calls the

          nouncl-rule must call check_factive(NC, X) after the DCG rule

          completes feature bindings.  NC is the feature structure of the

          constrained clause (actually, only the sem:out feature is used),

          and X is that of the constrainer's category (verb or adjective). 

          check_factive/2 tests the constrainer with factive(Constrainer),

          a redundancy rule in DRT_LEX.  If the test succeeds,

          add_to_topmost_drs/4 elevates the discourse referent(s) and

          condition(s) of the constrained clause to the toplevel DRS and

          the sem:out feature of X is bound to the result.  If the test

          fails, the sem:out feature of X is bound to that of NC. 

          Crucially, check_factive/2 makes no distinction between positive

          and negative constrainers, although different rules are necessary

          to handle the two structures.


                 Given this addition to the program, if say in (5.13) is

          replaced by regret, the response to (5.13.c) is AFFIRMATIVE. 

          Thus, the program is able to handle Regret Class constrainers

          properly.  Since the Know Class differs from the Regret Class

          only for first-person subjects, and since this parser does not

          handle first-person NPs, the latter class is subsumed by the

          former; in fact, three of the five factive constrainers included

          in the program are effectively in the Know Class.  The parser is

          also limited to constrained clauses in the that S form, and

          Suspect Class constrainers are factive only in the poss-ing form,

          so that class is omitted from consideration.


                 Implicational relationships between know on the one hand

          and think and believe on the other are captured in lexical

          redundancy rules in DRT_RED.  Another redundancy rule takes a

          rather optimistic view of learning: that if someone has learned

          something, he knows it.  With these additions, the program will

          handle the following discourse:








                                                                         31


          (5.14.a)    Carol learned that Bob kissed Alice.


               (b)    Did Bob kiss Alice?

                      AFFIRMATIVE


               (c)    Does Carol know that Bob kissed Alice?

                      AFFIRMATIVE


               (d)    Does Carol believe that Bob kissed Alice?

                      AFFIRMATIVE



          True Class Constrainers


                 As Kiparsky and Kiparsky (1970) note, the truth con-

          tribution of a clause embedded under a factive verb depends only

          on the immediate constrainer; depth of embedding is irrelevant. 

          It is for this reason that check_factive/2 can work in the

          parser, even though depth of embedding is not available at the

          time the rule is called.  In fact, if the treatment of such

          clauses were deferred, the constrainer might be buried in a list

          (e.g. within prop/2) and not available for examination.  That

          independence does not hold for clauses constrained by True Class

          constrainers.  Such clauses are true only if the constrainer is

          true (i.e. a toplevel assertion or the complement of a factive),

          and the constrainer's truth value is not available when the con-

          strainer is being parsed.  Furthermore, the effect of a True

          Class constrainer is dependent on its polarity, and that informa-

          tion also may not be available when the constrainer is being

          parsed.  Thus, the treatment of complements of such constrainers

          must be deferred to the processing step of the program.


                 CNS&G uses the predicate note/1 to assert the output of

          the Prologization step to the knowledge base.  That rule would

          simply assert its argument.  CONSTRAIN expands note/1

          considerably so that it tests its argument before asserting it. 

          One modification that has gone unremarked is that note/1 first

          attempts to retract the clause before asserting it, then uses

          asserta/1 rather than assertz/1, as in CNS&G.  These steps

          eliminate duplication in the knowledge base and insure that the

          most recently evoked clauses are at the head of the knowledge

          base.  It is the latter feature that allows proper nouns to be

          identified across discourses.  A further modification that is

          made necessary by the addition of True Class constrainers is the

          elimination of double negation; if the argument to neg/1 is

          itself a neg/1, the argument of the inner negation is processed

          and asserted.


                 The only clauses that reach note/1 for processing are

          those that are not shielded from truth evaluation--initially,

          toplevel assertions and conditions that have been raised to

          toplevel by check_factive/2.  Implications, including those

          created from universally quantified NPs, have been converted into








                                                                         32


          proper Prolog rules and are subject to the constraints imposed by

          the interpreter.  Clauses that constitute the conditions of

          negations and of embedded clauses remain in a list, an argument

          to neg/1 or prop/1, and are not sent to note/1 on their own.


                 The representation of a True Class constrainer has the

          form state(Tense, State, [X]), where State is the constrainer and

          X is the discourse referent for the embedded prop/1.  When note/1

          encounters a clause of that form, it calls the disjunctive query

          (true(State); certain(State)).  These predicates, similar to

          factive/1, identify those constrainers whose complements are to

          be asserted to the knowledge base when the constrainer is

          positive.  If the call succeeds, prop(X, PropList) is called and

          PropList is Skolemized and processed.  The original argument to

          note/1 is also asserted.


                 Processing PropList may bring a new True Class constrainer

          to note/1.  Thus, a clause embedded successively under True Class

          constrainers will eventually come to note/1 to be asserted. 

          However, if a Say Class constrainer intervenes, the sequence will

          be blocked.  Thus, (5.15.c) will receive AFFIRMATIVE if (5.15.a)

          has been entered, but INSUFFICIENT DATA if only (5.15.b) has been

          entered.


          (5.15.a)    It is true that it is certain that Ted kissed Carol.

               (b)    It is true that it is possible that Ted kissed Carol.

               (c)    Did Ted kiss Carol?


                 Since PropList is a list of conditions, there is no

          universe to provide the set of discourse referents to be

          Skolemized, so set_of_args(PropList, Args) must be called to

          collect those referents.  Actually, this predicate was already

          necessary.  This program, like C&S, raises the discourse

          referents of proper nouns to toplevel during parsing.  CNS&G does

          not do so, so these referents are available in the subordinate

          universe when an implication is Skolemized.  Thus, this program

          must call set_of_args/2 before Skolemizing an implication.


                 note/1 follows a similar procedure in the case of

          neg([state(Tense, State, [X])]).  In this case, however, the

          disjunctive query is (true(State); possible(State)); which

          identifies those constrainers for which, when negated, the

          negation of the complement should be asserted.








                                                                         33


                 note/1 is also used to handle the discourse shown in

          (5.16), the last of the extensions to CNS&G.


          (5.16.a)    Alice thinks that Ted kissed Carol.


               (b)    Alice is right.


               (c)    Did Ted kiss Carol?

                      AFFIRMATIVE


          Because think is a Say Class constrainer, (5.16.c) will receive

          INSUFFICIENT DATA if it only has (5.16.a) to work on.  In order

          to handle (5.16.b), it is necessary to find what she is right

          about and process that proposition appropriately.  The following

          clause for note/1 accomplishes that.


          (5.17) note(state(Tense, Truth, [X])):-

                           (Truth == right ; Truth == wrong),

                           (event(Tense, _, [X,P]) ;

                                state(Tense, _, [X,P])),

                           prop(P, Prop),

                           note_truth(Prop, Truth).


          If Truth is bound to 'right' or 'wrong,' note/1 seeks an event or

          state whose subject is X and whose complement is an embedded

          clause.  It then passes Prop and Truth to note_truth/2, which

          asserts Prop or its negation, according to the value of Truth. 

          If the clause to be asserted already exists in the knowledge

          base, note_truth/2 simply advises the user; if the opposite of

          the clause exists there, it is retracted before the new clause is

          asserted.  This is a rather simple-minded treatment of belief re-

          vision, but CONSTRAIN assumes that anything entered by the user

          is true unless it is constrained.



          6.          CONCLUSION


                 This report has presented an extension of Discourse

          Representation Theory that allows the representation of embedded

          noun phrases whose truth evaluation demands special treatment

          (constrained clauses), treatment that is determined by the

          constrainer (verb or adjective) of the embedded noun phrase.  It

          has also described an implementation of DRT, CONSTRAIN, that

          takes an English language input (which may contain such clauses)

          and transforms it into a Prolog knowledge base that can be

          queried.  Both the theory and the implementation remain at the

          experimental stage; both must be extended considerably before

          they can be used as a natural language interface for practical

          programs.  In this section we consider some of the necessary

          extensions.


                 The most needed extension to the implementation is a

          proper treatment of negation.  CONSTRAIN replaces the negation-








                                                                         34


          as-failure of Prolog with true negation, but in so doing it

          trades one form of unsoundness for another.  CONSTRAIN will

          return NEGATIVE as the response to a query only if the knowledge

          base contains a clause neg(Query) such that the elements in the

          query exactly match those in Query.  Thus, CONSTRAIN may return

          INSUFFICIENT DATA to a query when the knowledge base contains

          information that entails the response NEGATIVE.


                 With a more complete treatment of negation, proper

          treatment of disjunction may be added.  CONSTRAIN can parse a

          disjunction and add it to the knowledge base, but it is unable to

          use those disjunctions in order to infer conclusions.  As was

          noted in Section 4, a more complete treatment of negation will

          make possible a more adequate treatment of disjunction.


                 Improved treatment of negation and disjunction are matters

          of the DRT-to-Prolog portion of CONSTRAIN.  An extension needed

          at the other end of CONSTRAIN, the parser, is the ability to

          handle other syntactic types of constrained clauses: poss-ing and

          for-to complements.  That extension is made difficult by the fact

          that either construction may involve equi-NP deletion.  Given

          such an extension to the parser, it should be possible to add

          other constrainers that take VP complements to the language

          handled by CONSTRAIN.


                 Other needed additions to the parser are the facilities to

          handle subordinating conjunctions and sentence adverbials (e.g.

          probably, certainly).  The former require a knowledge

          representation that allows non-constrained clauses to be

          addressed in a manner like those that are arguments to prop/2. 

          One possibility for such a representation is the event markers of

          Guenthner (1987).  Handling sentence adverbials is a relatively

          simple but time-consuming matter.  The machinery for DRS

          construction already exists in CONSTRAIN, but it will be

          necessary to add to each sentence rule a new version for each

          possible adverbial position.


                 Extensions of the implementation will, of, course, be

          required by extensions to the theory.  The current version of DRT

          is limited to a very small subset of natural language.  Many

          extensions to the theory are required before it can handle a

          useful range of natural language.  The most obviously needed

          extensions are the ability to handle definite NPs and plural NPs. 

          Although definite NPs are usually anaphoric and thus could be

          treated in the same fashion as pronouns, the head noun of a

          definite NP is often not identical to that of its antecedent

          (e.g. the two may be synonyms).  Furthermore, definite NPs are

          not infrequently exophoric or generic, and an implementation

          would need to have some means of distinguishing between the

          possibilities.


                 Another needed extension to the theory is a formalism for

          specifying arguments that are not syntactically indicated (e.g.








                                                                         35


          sell requires, conceptually, a price, but that argument is not

          syntactically obligatory).  Handling this argument requires

          default specifications and a means of determining whether the

          default value applies.


                 These extensions, both to the implementation and to the

          theory, probably require user interaction.  The implementation

          may need to query the user about the scope of negation, non-

          anaphoric definite NPs, and default values.  With these

          extensions, DRT can provide a useful natural language interface

          to a knowledge base.




                                       WORKS CITED


          Asher, N.  1986.  Belief in discourse representation theory. 

                 Journal of Philosophical Logic 15:127-89.


          Chomsky, N.  1965.  Aspects of the Theory of Syntax.  Cambridge, MA:

                 MIT Press.


          Covington, M.  1987.  GULP 1.1: An extension of Prolog for

                 unification-based grammar.  ACMC Research Report 

                 01-0021, The University of Georgia, Athens.


          Covington, M., D. Nute, N. Schmitz, and D. Goodman. 1988.

                 From English to Prolog via Discourse Representation

                 Theory.  ACMC Research Report 01-0024, the University

                 of Georgia, Athens.


          Covington, M. and N. Schmitz.  1988.  An Implementation of 

                 Discourse Representation Theory.  ACMC Research Report

                 01-0023, The University of Georgia, Athens.


          Goodman, D. 1988.  An Implementation of and extension to

                 discourse representation theory: Translating natural 

                 language to discourse representation structures to

                 Prolog clauses.  Unpublished master's thesis, The

                 University of Georgia, Athens.


          Guenthner, F.  1987.  Linguistic meaning in discourse

                 representation theory.  Synthese 73:569-98.


          Guenthner, F., H. Lehman, and W. Schonfeld.  1986.  A  Theory for

                 the representation of knowledge.  IBM  Journal of Research

                 and Development 30:1.39-56.


          Johnson, M., and Klein, E.  1986.  Discourse, Anaphora, and

                 Parsing.  CSLI Research Report 86-63,Stanford

                 University.


          Kamp, H. 1981.  A Theory of truth and semantic representation.  In








                                                                             36


                 J. Groendendijk, T. Janssen, and M. Stokhof (eds.) Formal

                 methods in the Study of Language, 277-322.  University of

                 Amsterdam.


          Kamp, H. 1985.  Unpublished discourse representation theory project 

                 description, University of Texas, Austin.


          Kiparsky, P., and C. Kiparsky.  1971.  Fact.  In D. 

                 Steinberg and L. Jakobovits (eds.), Semantics, 

                 345-369.  New York: Cambridge University Press.


          McCawley, J.  1981.  Everything that Linguists have Always Wanted

                 to know about Logic.  Chicago: The University of Chicago

                 Press.


          McCawley, J.  1988. The Syntactic Phenomena of English.               

                 Chicago: The University of Chicago Press.


          Shieber, S.  1986.  An Introduction to Unification-based

                 Approaches to Grammar.  CSLI Lecture Notes No. 4, 

                 Stanford University.


          Spencer-Smith, R.  1987.  Semantics and discourse representation. 

                 Mind and Language 2:1.1-26.


          Smith, W.  1989. Problems in applying discourse representation

                 theory.  Research Report AI-1989-04, The   University of

                 Georgia, Athens.


          Zeevat, H.  1989.  A compositional approach to discourse

                 representation theory.  Linguistics and Philosophy 

                 12:95-131.