File Information

File: 05-lr/acl_arc_1_sum/cleansed_text/xml_by_section/metho/82/j82-3002_metho.xml

Size: 33,634 bytes

Last Modified: 2025-10-06 14:11:28

<?xml version="1.0" standalone="yes"?>
<Paper uid="J82-3002">
  <Title>An Efficient Easily Adaptable System for Interpreting Natural Language Queries 1</Title>
  <Section position="4" start_page="0" end_page="0" type="metho">
    <SectionTitle>
2. A Simplified Semantics for a Basic English Subset
</SectionTitle>
    <Paragraph position="0"> To answer a question, one first has to understand what it means. If question answering is to be done by computer, there needs to be some precise representation for the result of this first process, what one might call the &amp;quot;meaning&amp;quot; of the question, and also some precise way of relating the question to its meaning. It is further necessary that the meaning representation can in some way be given a precise interpretation (or &amp;quot;semantics&amp;quot;) so that, in the case of questions for instance, one then knows precisely what is or is not a correct answer to the questions. It is surprising that, even for such basic features of English as the common determiners, and even within the different language camps represented by linguistics, philosophy, and artificial intelligence, there is as yet no established solution to this problem.</Paragraph>
    <Paragraph position="1"> One way to try to articulate the meaning of a sentence is to paraphrase it into some standard, unambiguous form of English. Since these standard forms are likely to be stilted and long-winded, it will probably be convenient to represent them in a more concise notation. This is essentially the logician's approach, and we will call such meaning representations &amp;quot;logical forms&amp;quot;.</Paragraph>
    <Paragraph position="2"> Chat-80 represents the meaning of a question by a logical form. The approach is a development of that proposed by Colmerauer 1978 and implemented by Dahl 1981,1979.</Paragraph>
    <Paragraph position="3"> Words approximating to the status of &amp;quot;proper nouns&amp;quot; are represented by logical constants, for example: null France france the Soviet Union soviet union wine wine Most verbs, nouns, and adjectives (together with any associated prepositions) are represented by predicates, taking one or more arguments (which for our purposes are called constants). A predicate with its arguments is called a predication (or sometimes a goal). Examples are: American Journal of Computational Linguistics, Volume 8, Number 3-4, July-December 1982 111 David H.D. Warren and Fernando C.N. Pereira An Efficient Easily Adaptable System France exports wine to Britain.</Paragraph>
    <Paragraph position="4"> exports (france, wine, britain) France is a country, country(france) Paris is the capital of France. capital(france,paris) France is European. european(france) Many kinds of more complex phrases or sentences can be represented by conjunctions of predications, for example: Paris is a European city.</Paragraph>
    <Paragraph position="5"> european(paris) &amp; city(paris).</Paragraph>
    <Paragraph position="6"> France is a country that borders on Spain.</Paragraph>
    <Paragraph position="7"> country(france) &amp; borders(france,spain) The second of these conjunctions, for example, can be read more literally as a shorthand for &amp;quot;France is a country and France borders Spain&amp;quot;, which is just a paraphrase of the original sentence.</Paragraph>
    <Paragraph position="8"> The most important class of words not covered so far are the determiners - words such as &amp;quot;a&amp;quot;, &amp;quot;the&amp;quot;, &amp;quot;every&amp;quot;. Determiners play a particularly important role in questions, since they enable relatively complex requests for information to be expressed very concisely. null In Colmerauer's approach, each determiner is represented by what he called a &amp;quot;three-branched quantifier&amp;quot; (3BQ). For example, the logical form that would be ascribed to the sentence &amp;quot;The boy sleeps&amp;quot; would be: the(X,boy(X),sleeps(X)) where the determiner &amp;quot;the&amp;quot; is represented by the 3BQ 'the( , , )'. 3BQs are very close to the meaning representat'ion for determiners used by Woods in the LUNAR system (1977). Colmerauer gave 3BQs a precise semantics in terms of certain operations over sets. However, we have found that this way of interpreting 3BQs fails to give a correct model of natural language in certain cases, and, worse still, it does not appear to lend itself to efficient implementation. Certainly this is the case with Dahl's program which, while being very efficient at understanding questions, is hopelessly inefficient at answering questions where the domain is of any significant size.</Paragraph>
    <Paragraph position="9"> In Chat-80, we have addressed these problems by instead translating 3BQs directly into standard first-order logic, or rather into something as close to first-order logic as is practical. To be more exact, we translate into the Prolog subset of logic, which we have augmented with certain &amp;quot;meta-logical&amp;quot; extensions. (A similar approach has been taken by McCord 1982, who has independently been developing a system influenced by the Colmerauer/Dahl approach.) The subset of first-order logic we have chosen has the great advantage as a meaning representation that it already has a well understood semantics which is amenable to very efficient implementation. Thus the meaning representation can in principle be directly executed as a Prolog program (whereas 3BQs require a special-purpose interpreter). Furthermore, the first-order logic formulation lends itself to transformations which can greatly improve the efficiency of execution. This corresponds to what is known as &amp;quot;query optimisation&amp;quot; in relational database circles, and will be discussed in more detail later.</Paragraph>
    <Paragraph position="10"> Our translation into logic completely ignores the presuppositions which can be implicit in a natural language question, and which Colmerauer's 3BQ semantics took pains to reflect. In most situations that we are concerned with, this simplification seems relatively harmless or even beneficial. For example, Chat-80 ignores the presupposition that there is only one answer to the question &amp;quot;Which ocean borders the United States?&amp;quot;, and simply gives all three answers without further comment.</Paragraph>
    <Paragraph position="11"> The way we translate determiners into logic is shown in Figure 1. Each determiner is translated into a quantification, which introduces some logic variable (X, N, etc.), and which links two predications involving that variable, called the range and scope, indicated by R and S.</Paragraph>
    <Paragraph position="12"> The determiners &amp;quot;a&amp;quot;, &amp;quot;the&amp;quot; (in a singular context), and &amp;quot;some&amp;quot; (whether in a singular or plural context) are all translated in exactly the same way, by a standard first-order logic existential quantification. Read 'exists(X,P)' as &amp;quot;there is some X such that P&amp;quot;. The same translation is also normally used for the &amp;quot;empty plural&amp;quot; determiner, for example: Zambia exports minerals.</Paragraph>
    <Paragraph position="13"> exists(X,mineral(X) &amp; exports(zambia,X)).</Paragraph>
    <Paragraph position="14"> The determiner &amp;quot;no&amp;quot; is translated with the aid of a kind of negation. Read '\+P' as &amp;quot;it cannot be shown that P&amp;quot;. Note that this is not the standard negation of first-order logic, which is outside the Prolog subset. Standard negation is problematic to implement and seems inappropriate for many purposes. Instead Prolog systems provide (or can easily be extended with) a partial implementation of nonprovability. The predication '\+P' is considered true if P is not deducible from the facts and rules which define a particular application domain. Note that nonprovability is also used in the translation of the determiners &amp;quot;every&amp;quot; and &amp;quot;all&amp;quot;.</Paragraph>
    <Paragraph position="15"> The determiner &amp;quot;the&amp;quot; in a plural context presents a number of problems, for which we do not yet feel we have a completely adequate solution. In general, we consider a plural definite noun phrase to denote a set. To cater for this, we have proposed and implemented a &amp;quot;meta-logical&amp;quot; extension to Prolog, which has been described in detail elsewhere (Warren, 1982; Byrd, Pereira, and Warren 1980). The extension allows predications of the form: setof(X,P,S) 112 American Journal of Computational Linguistics, Volume 8, Number 3-4, July-December 1982 David H.D. Warren and Fernando C.N. Pereira An Efficient Easily Adaptable System a, some, the\[singular\] no every, all</Paragraph>
    <Paragraph position="17"> Some birds migrate.</Paragraph>
    <Paragraph position="18"> exists(X,bird(X) &amp; migrates(X)). The population of Britain exceeds 50 million.</Paragraph>
    <Paragraph position="20"> Jupiter is the largest of the planets.</Paragraph>
    <Paragraph position="21"> exists(X,setof(X,planet(X),X) &amp; largest(X,jupiter)). The Rhine flows through three countries.</Paragraph>
    <Paragraph position="22"> numberof(X,country(X) &amp; flows through(rhine,X),3). Which birds migrate?</Paragraph>
    <Paragraph position="24"> to be read as &amp;quot;the set of Xs such that P is provable is S, where S is nonempty&amp;quot;. Note that this construct behaves like a quantification in that it introduces a variable (or, more generally, a collection of variables) X which is purely local to P. Thus it is possible, as in the translation of the plural definite article given in Figure 1, to use the same variable name for a set and its &amp;quot;typical&amp;quot; element.</Paragraph>
    <Paragraph position="25"> Our translation entails that certain predicates can take sets as arguments. At present, we leave it up to the definition of each individual predicate to draw any necessary correspondence between predications over sets and predications over individuals, since it is hard to fix a general rule. To see what the problem is, compare the sentences: The boys like the girls.</Paragraph>
    <Paragraph position="26"> The boys are married to the girls.</Paragraph>
    <Paragraph position="27"> In certain contexts, such as: What are the ages of the boys? plural definite noun phrases are translated somewhat differently, as indexed sets. More on this later.</Paragraph>
    <Paragraph position="28"> For convenience in translating the numerals &amp;quot;one&amp;quot;, &amp;quot;two&amp;quot;, &amp;quot;three&amp;quot;, etc., we allow predications of the form: numberof (X,P,N) meaning &amp;quot;the number of Xs such that P is provable is N&amp;quot;. This predicate can easily be defined in terms of 'setof' by the logical implication:</Paragraph>
    <Paragraph position="30"> just gives the number of elements in a set.</Paragraph>
    <Paragraph position="31"> Notice that implications are also used in the translation of questions. Read 'answer(X) &lt;= P' as &amp;quot;X is an answer if P&amp;quot; or &amp;quot;I want to know X if P (is true)&amp;quot;. Variables in the 'answer' predicate are not explicitly quantified. Such free variables are interpreted, following normal conventions in logic, as though they were universally quantified; that is, one may prefix one's reading of the entire logical form with phrases &amp;quot;For any X, for any Y,&amp;quot; etc.</Paragraph>
    <Paragraph position="32"> We have now seen how some common types of English words are translated into bits of logical structure. It remains to discuss how the bits fit together to produce the complete logical form for a whole sentence. For example, a sentence within the scope of our subset is&amp;quot; Which European country exports no arms to countries in Africa? How is it that the bits of structure corresponding to each individual work in this sentence fit together to produce the following logical form: American Journal of Computational Linguistics, Volume 8, Number 3-4, July-December 1982 113 David H,D. Warren and Fernando C.N. Pereira An Efficient Easily Adaptable System</Paragraph>
    <Paragraph position="34"> (One should realize that this is just a shorthand for &amp;quot;For any C, C is an answer if C is European and C is a country and it cannot be shown that there is some X such that X is an armament and there is some C1 such that C1 is a country and C1 is in Africa and C exports X to CI&amp;quot;.) Hopefully, the reader should already have a fair intuitive idea of what the &amp;quot;assembly process&amp;quot; must do. Basically, there are two main problems.</Paragraph>
    <Paragraph position="35"> First, how are the appropriate variables or constants chosen to fill each predicate argument position? For example, why is the last argument of 'exports' the same variable C1 that appears as arguments to 'country' and 'in'? This &amp;quot;slot filling&amp;quot; is determined mainly by the grammatical structure of the sentence, but the correct attachment of prepositional phrases often cannot be determined on purely syntactic grounds.</Paragraph>
    <Paragraph position="36"> Second, what determines the scope of the different quantifications? For example, why is the existential quantification corresponding to the empty determiner governing &amp;quot;countries in Africa&amp;quot; nested inside the quantification corresponding to &amp;quot;no&amp;quot;? This &amp;quot;scoping&amp;quot; is only weakly influenced by grammatical structure.</Paragraph>
    <Paragraph position="37"> Indeed, it is possible to give an alternative but much less likely reading to our example sentence, which corresponds to the same grammatical structure, but to a different logical form where the nesting of the two inner quantifications is reversed. The more likely reading is that no arms are exported to any countries in Africa; the less likely reading is that no arms are exported to certain countries in Africa.</Paragraph>
    <Paragraph position="38"> The details of our mapping from English into logic are made precise in the program text corresponding to the first phase of Chat-80. This text itself consists of clauses of the Prolog subset of logic. It serves both as a clear formal definition of our mapping and, when executed by Prolog, as an efficient implementation of that mapping, which performs the translation of English questions into their logical forms. A fuller discussion of this implementation will be given in the next section, and further details can be found in Pereira 1982.</Paragraph>
    <Paragraph position="39"> 3. Translating English into Logic, in Logic The translation from English sentence to logical form can be seen as involving three main functions the slot filling and scope determination mentioned in the last section, and in addition the parsing function, which determines the grammatical structure of a sentence. In Chat-80, in contrast to Dahl's s~stem, these three functions are separated into distinct program modules, which operate in sequence:  The parsing module consists of a set of grammar rules of the XG formalism, which the Prolog system preprocesses into Prolog clauses. The interpretation and scoping modules consist of various translation rules, expressed directly as Prolog clauses. Executing the grammar rules with Prolog leads to a straightforward top-down, backtrack parsing strategy (Pereira and Warren 1980). Although the main concern in writing the grammar was to produce a clear description of the language covered, some concessions have had to be made to achieve a reasonably efficient behaviour with the above parsing strategy; in particular, left-recursive rules have been avoided. It is somewhat contrary to current opinion that such a grammar, not carefully designed for parsing, can also be the basis of an efficient parser. One of the reasons for the efficiency in this case may be that the grammar itself makes no attempt to give the &amp;quot;right&amp;quot; modifier attachments, as discussed below.</Paragraph>
    <Paragraph position="40"> There has been some debate on whether the different parts of language analysis, such as the three distinguished above, should be done serially or concurrently (Burton 1976; Woods 1977). Some of the arguments for concurrent operation are that early semantic interpretation limits search by bringing in relevant information at the earliest possible moment, and that piecewise generation of the interpretation is psychologically more plausible. Given that we are not proposing a model of language comprehension in people, the latter argument is not directly relevant. The other argument is a two-edged one: by interweaving several operations, one is multiplying together their nondeterminacies. There are two main reasons why we have chosen serial operation. The first is that serial operation is much simpler both conceptually and in programming terms, particularly if one is trying to deal flexibly with global properties of the input, for instance the relative scopes of determiners. The other reason is that the backtracking traditionally associated with modifier attachment can be avoided by a careful choice of the parse trees produced by the parsing module.</Paragraph>
    <Paragraph position="41"> In typical systems where syntactic and semantic functions operate in sequence (Woods, Kaplan, and Nash-Webber 1972), choices are made in the syntactic analysis that may be found to be inadequate on se114 American Journal of Computational Linguistics, Volume 8, Number 3-4, July-December 1982 David H.D. Warren and Fernando C.N. Pereira An Efficient Easily Adaptable System mantic grounds, as for example in prepositional phrase attachment. In the present system, the syntactic component of the grammar contains additional constraints which block all but one of the potential attachments of each postmodifier. Thus, all analyses produces are in a kind of normal form with respect to postmodifier attachment. From this normal form, subsequent operations can reconstruct other alternative analyses, if that is needed on semantic grounds. The use of normal form analyses has the useful consequence of making apparent other, significant, ambiguities in the input, which otherwise would be swamped by a large number of alternative analyses differing only with respect to modifier attachment.</Paragraph>
    <Paragraph position="42"> A major limitation of the current system is that pronouns (other than interrogative and relative pronouns) are not covered at all by the translation phase. This makes the natural language subset strictly less powerful than the underlying logic. For example, the following sentence has a logical form which cannot be rendered in our natural language subset: Which country contains a city bigger than its capital?</Paragraph>
    <Paragraph position="44"> To each of the three modules of the translation process there corresponds a separate dictionary. The grammar dictionary contains definitions of the usual syntactic categories, both for general-purpose, or &amp;quot;closed-category&amp;quot;, words, such as determiners, and for application dependent, or &amp;quot;content&amp;quot;, words, such as the nouns and verbs corresponding to database predicates. The slot filling module has a dictionary of templates, which define the translation of words to predicates and the argument patterns required for each such translation. Each application will require a different set of templates. Finally, the scope determination module has a small dictionary defining the scope relationships for determiners and other &amp;quot;operator&amp;quot; words, and their translation as discussed in the last section. This dictionary is independent of the application domain. The dictionaries are divided in this manner for conceptual and programming reasons, but it would not be difficult to write a program to create the dictionary entries from a more user-oriented dictionary format. The complete dictionary definition for a single word is shown in Appendix II.</Paragraph>
    <Section position="1" start_page="0" end_page="0" type="sub_section">
      <SectionTitle>
3.1. Phrase Structure
</SectionTitle>
      <Paragraph position="0"> A grammar for any substantial language fragment needs to define grammatical relationships which we may call &amp;quot;transformational&amp;quot;, that is, relationships which cannot be described directly by a small number of phrase structure (context-free) rules. Both MGs (used in Dahl's system) and DCGs have general programming power, and so can describe any &amp;quot;transformational&amp;quot; relationship, but they cannot do so by specific, well motivated grammar rules. In particular, this applies to &amp;quot;left extraposition&amp;quot;, the underlying concept in most grammars for such important constructions as WH-questions, relative clauses, and auxiliary fronting. Similar comments apply to ATNs (Woods 1970), even those using the HOLD/VIR facility. null To handle &amp;quot;left extraposition&amp;quot;, and some other &amp;quot;transformational&amp;quot; concepts, we have introduced the grammar formalism of extraposition grammars, which are described fully elsewhere (Pereira 1981). An XG, like a DCG, is no more than &amp;quot;syntactic sugar&amp;quot; for clauses of logic.</Paragraph>
      <Paragraph position="1"> As the Chat-80 grammar is intended partly as a demonstration of the power of XGs for treating left extraposition in English, the coverage of questions and relative clauses is fairly extensive. Of course, this wide coverage is essential if complex queries are to be formulated in a single sentence.</Paragraph>
      <Paragraph position="2"> A major limitation in the present coverage of English syntax is that the only phrases that may be conjoined (with &amp;quot;and&amp;quot;, etc.) are noun postmodifiers and predications introduced by the verb 'to be'. To cover more general conjunctions would require a minor change in the XG formalism, to cope with the interaction between left extraposition and conjoined phrases. The analysis of a sentence produced by the Chat-80 grammar is a fairly conventional annotated surface structure, where in general the subtrees for all phrases appear in the same order as in the input. This is essential for the heuristics used in the scoping operations, which rely on the left-to-right order of noun phrases.</Paragraph>
    </Section>
    <Section position="2" start_page="0" end_page="0" type="sub_section">
      <SectionTitle>
3.2. Attaching Arguments and Modifiers
</SectionTitle>
      <Paragraph position="0"> As we have seen, the translation of content words into predicates is defined by dictionary templates. Of course, certain words, like &amp;quot;average&amp;quot;, &amp;quot;number (of)&amp;quot; and superlative adjectives, cannot be translated as first-order predicates, but represent some higher-order operation. Templates specify, for each argument position of a predicate which translates a word, the &amp;quot;case&amp;quot; (usually a preposition) and the most general entity type that can fill the position, or slot. Type matching helps the system to find a semantically sound argument placement, and is also used to create additional predications when attributes are referred to implicitly, as in comparatives. Templates are similar to the dictionary entries in Dahl's system, but our attachment procedure, by being separate from the syntax analysis, can be much more flexible in deciding how to fill slots.</Paragraph>
      <Paragraph position="1"> The following are typical application dependent templates: American Journal of Computational Linguistics, Volume 8, Number 3-4, July-December 1982 115 David H.D. Warren and Fernando C.N. Pereira An Efficient Easily Adaptable System property(area,measure&amp;area,A,region&amp;Type,R, area(R,A)).</Paragraph>
      <Paragraph position="2"> transitive(exceed,measure&amp;Type,X,measure&amp;Type,Y, exceeds(X,Y)).</Paragraph>
      <Paragraph position="3"> The first template states that 'area' is a &amp;quot;property&amp;quot;, a subclass of nouns which require an argument marked by the preposition &amp;quot;of&amp;quot;. Variable A in this template corresponds to the &amp;quot;area&amp;quot; value, which belongs to the sub-type 'area' of the type 'measure'. Variable R corresponds to the thing having an area, and belongs to some sub-type of type 'region'. The predication for this word is 'area(R,A)'. The second template states that &amp;quot;(to) exceed&amp;quot; is a transitive verb, whose subject X and object Y are both measures of some common type Type, and 'exceeds(X,Y)' is the corresponding predication.</Paragraph>
      <Paragraph position="4"> When Prolog accesses such templates, unification automatically does most of the work of &amp;quot;slot filling&amp;quot;. The result of the slot filling process is a tree with three kinds of nodes, quantification nodes (Quants), predication nodes (Preds) and conjunction nodes (Conjs). Quants correspond to noun phrases, Preds to verbs, and Conjs to conjoined restrictive modifiers.</Paragraph>
      <Paragraph position="5"> As we have seen, quantifications play a crucial role in the translation of sentences into logics. The fields of a Quant are: * the determiner, which can be an English determiner or one of the special determiners described below; * the head, which is either the predication translating the head noun of a noun phrase, or a term denoting a higher-order operation; * the predication, a tree describing restrictions on the head whose determiners have narrower scope than the determiner on this Quant; * the arguments, a list of the trees for the arguments of the noun, together with the trees of those restrictions whose determiners may have wider scope than the present one; * the bound variable for this quantification.</Paragraph>
      <Paragraph position="6"> The distinction between the predication and the argument list of a Quant corresponds to one of the main scoping heuristics in the system: full relative clauses are the only subordinated phrases whose determiners cannot &amp;quot;move up&amp;quot; to dominate determiners in higher tree nodes. Thus, when a Quant is mapped into a logic quantification, the head, predication, and some of the arguments will translate into the range of the quantification, whereas the scope will be made from the rest of the arguments and some quantifications which are higher in the tree but whose determiners have a narrower scope than the present one.</Paragraph>
      <Paragraph position="7"> The determiner of a Quant may not be the original English determiner of the corresponding noun phrase.</Paragraph>
      <Paragraph position="8"> In nested plural definite noun phrases, only the highest determiner gets translated into a set expression following the translation table of Figure 1; lower determiners are understood to index that set, and are represented in Quants by an index token. For example, the noun phrase: the children of the employees translates into a set of sets of children, indexed by employees: setof(E-S, employee(E) &amp; setof(C,child(E,C),S), S1).</Paragraph>
      <Paragraph position="9"> 3.3. Meaning and Scope of Quantifications Given the tree of Quants, Preds, and Conjs produced by slot filling, the final module specifies the relative scopes of determiners, of negation, and of question markers. The main information for this module is a set of rules of thumb about what determiners usually &amp;quot;govern&amp;quot; other determiners. The relationship of &amp;quot;governing&amp;quot; is not a total order, or even a partial order: it is only meaningful for pairs of operators, one in a subordinating and the other in a subordinated position. Relative scopes not decided by &amp;quot;governing&amp;quot; are decided by the left-to-right order of phrases in the input sentence.</Paragraph>
      <Paragraph position="10"> Our scope rules are more accurate than those proposed by Colmerauer 1982 and used in Dahl's system.</Paragraph>
      <Paragraph position="11"> Colmerauer's rules determine relative scope strictly on the basis of predicate-argument relationships defined in syntactic terms. Our rules are related to the ideas for improving LUNAR discussed by Woods 1977 and Vanlehn 1978. Unfortunately, except for set and higher-order operations, we have no means of using the distinct roles of different argument places to help decide the scopes of their fillers.</Paragraph>
      <Paragraph position="12"> As an example of our scope rules, the determiner 'each' is assumed to have a &amp;quot;distributive&amp;quot; role, and governs most other determiners, and also question markers, so the reply to a question containing 'each' will be an indexed list of values, one for each entity satisfying the conditions in the noun phrase with that determiner. A negated verb, however, will prevent an 'each' in any of its arguments from assuming its distributive role. In fact, no determiner governs a negation except 'any', which is seen as a universal quantification of wide scope relative to negation.</Paragraph>
      <Paragraph position="13"> Apart from deciding on relative scopes, this module also specifies how set expressions are built from plural determiners and index determiners, and what are the first-order predications which make the arguments of higher-order functions like 'average' and 'number of'.</Paragraph>
    </Section>
  </Section>
  <Section position="5" start_page="0" end_page="0" type="metho">
    <SectionTitle>
4. Query Planning and Execution
</SectionTitle>
    <Paragraph position="0"> We have now seen how an English question is mapped into its logical form. Since the logical form has a precise semantics, it is in principle possible to determine the answer to the question. However, there is a 116 American Journal of Computational Linguistics, Volume 8, Number 3-4, July-December 1982 David H.D. Warren and Fernando C.N. Pereira An Efficient Easily Adaptable System big difference between principle and practice. Can the process of finding the answer really be made fast enough for this to be useful for practical question answering purposes? The evidence of Chat-80 is that it can.</Paragraph>
    <Paragraph position="1"> The key question here is how to avoid combinatorial explosion. Naive question-answering strategies typically take a time that is exponential in the size of the query. Even for relatively small databases, such as that in Chat-80, exponential behaviour will be disastrous for non-trivial queries (and non-trivial queries are what a natural language interface encourages). A query over a small database that can be answered almost instantaneously with the right question-answering strategy may easily take hours with a poor algorithm. We had actual experience of this phenomenon when we experimented with mounting the Chat database on the relational database system Ingres (Stonebraker, Wong, Kreps, and Held 1976). Simple queries Ingres handled easily, but on queries involving more than two relations, which were no problem for Chat, Ingres usually bogged down completely. We therefore think that the question-answering part of natural language question-answering is at least as worthy of attention as the natural language part, and the two should be studied hand in hand.</Paragraph>
    <Paragraph position="2"> A complete description of the way Chat-80 processes logic queries, together with a fuller discussion of the efficiency issues, is given in a separate paper (Warren 1981), which we urge the interested reader to consult. Here we just give a brief summary, illustrated by one example. Basically, Chat-80 augments the logical form of a query with extra control information, to make it into an efficient piece of Prolog program, which can then be directly executed to produce the answer. The control information is computed by a general planning algorithm, applicable to any query in the logic subset, not just to those derivable from the present natural language subset. The planning process makes use of certain statistics about the size, etc., of the domain relations, and is analogous to &amp;quot;query optimisation&amp;quot; in a relational database system.</Paragraph>
    <Paragraph position="3"> The control information that is generated takes two forms: * the ordering of predications within a query, which will determine the order in which Prolog will attempt to satisfy them; * the marking of &amp;quot;independent subproblems&amp;quot; by enclosing them in braces, to limit (or &amp;quot;cut&amp;quot;) the amount of backtracking performed by Prolog.</Paragraph>
    <Paragraph position="4"> For example, here is an English question with the logical form produced by the natural language analysis phase of Chat-80: &amp;quot;Which countries bordering the Mediterranean border</Paragraph>
    <Paragraph position="6"> When executed by Prolog, this produces a behaviour equivalent to the following procedural interpretation: To generate an answer C: generate a C bordering the mediterranean, and then check that C is a country, and then check that it is possible to: generate a C1 bordered by C, and then check that C1 is asian, and then check that C1 is a country.</Paragraph>
    <Paragraph position="7"> Thus Prolog is led to answer the query in an obviously sensible way; it iterates through the countries bordering the Mediterranean, and for each one, it iterates through the things bordering that country until it finds something that is an Asian country. In fact the DEC-10 Prolog compiler can in principle compile the transformed query into code which is comparable in efficiency with iterative loops in a conventional language (Warren 1977). However, in Chat-80 the transformed query is actually just interpreted.</Paragraph>
  </Section>
class="xml-element"></Paper>
Download Original XML