Textual inference by combining multiple Logic programming paradigms

The goal of our approach to textual inference is to answer queries about events and dates reported in texts; queries that demand inferencing with the relevant background knowledge. Our primary knowledge representation language is AnsProlog. The core inference engine is a combination of AnsProlog and Constraint Logic programming. AnsProlog is particularly useful for the representation of defaults, causal relations, and other types of common-sense knowledge. Constraint Logic Programming is needed to solve constraints involving the relationship between the sequence of actions and the dates on which the actions may have occurred. The combination of the two creates a useful tool for answering quries over texts and in particular queries that involve relatively deep reasoning. Introduction and Motivation We envision a query answering system which is given a text of some sort. This text may be typed into the system by the user or it may have been retrieved by a search engine looking for sources of information relevant to a query. After the text is processed by the system, the user may then ask particular queries pertaining to the information in the text. Often the text will describe a series of actions or events and the queries that the user wishes to pose will concern the truth of various facts about the world after these events have taken place or while they are occurring. Answering those questions demands commonsense reasoning and the use of commonsense knowledge about the world. Generally, this commonsense knowledge is not contained in the actual text. The approach is to initially translate the natural language text (which we assume is in English) and the user’s query (also in English) into an appropriate knowledge representation language. A knowledge base, also in the same knowledge representation language, is available. The knowledge base needs to contain both commonsense and perhaps some expert knowledge about the relevant domains. Then the inference engine answers the user’s query by reasoning with both the representation of the information contained in the Copyright c © 2005, American Association for Artificial Intelligence (www.aaai.org). All rights reserved. text and the background knowledge base. Finally, an answer is returned to the user. Here we propose a knowledge representation language and an inference engine suitable for such a query answering system. As the core knowledge representation language, we propose AnsProlog a language of logic programs under the answer set semantics (Gelfond & Lifschitz 1988; 1991). This language is especially useful if answering the query requires sophisticated kinds of reasoning such as default, causal, counterfactual reasoning, reasoning about narratives, etc. The list of attractive properties of AnsProlog include its simplicity and expressive power, ability to reason with incomplete information, existence of a well developed mathematical theory and programming methodology (Baral 2003), and the availability of rather efficient reasoning systems such as SMODELS(Niemela & Simons 1997b) and others as well(Niemela & Simons 1997a; Lierler & Maratea 2004). AnsProlog allows its users to encode defaults, causal relations, inheritance hierarchies, and other types of knowledge not readily available in other KR languages. There is also a well developed methodology for representing dynamic domains (Baral & Gelfond 2000; Turner 1997). In addition, it supports the construction of elaboration tolerant knowledge bases, i.e., ability to accommodate new knowledge without doing large scale surgery. The main drawback of the language is the inability of its current inference engines to effectively deal with numbers and numerical computations. This is because the current answer set solvers start their computation with grounding the program, i.e. replacing its variables by possible ground instantiations. The grounding algorithms are smart and capable of eliminating many useless rules; answer sets can be effectively computed even if the resulting program consists of hundreds of thousands of rules. However, if several integer variables are used by the program rules, the size of the grounded program becomes unmanageable. Here we are concentrating on reasoning about texts that involve actions and time. We not only have to reason about the sequence of steps (individual actions) and what facts are true after each step, but we also need to reason about dates and times. Since the number of dates is relatively large, the use of several rules that contain date variables quickly becomes prohibitively inefficient. The same problem that occurs in general with numerical computations occurs in particular with reasoning about dates and times. We propose an architecture that combines the use of AnsProlog with (CLP) Constraint Logic Programming(Jaffar & Lassez 1987; Van Hentenryk 1989; Marriott & Stuckey 1998; Fruhwirth & Abdennadher 2002). CLP allows the use of efficient solvers over large and possibly infinite domains while still preserving the declarative properties of logic programming. The CLP portion determines which action steps correspond to which dates. Our implementation makes use of this combination of AnsProlog and CLP. We have used the SMODELS implementation of AnsProlog and the CLP module contained in Sicstus1 Prolog. We have also built a background theory in AnsProlog sufficient to reason about a travel domain. This paper describes the architecture of our reasoning system and the background travel domain. It does not cover the translation of natural language text and queries into the AnsProlog, nor does it cover the translation of the AnsProlog output into natural language. These are the topics of our current and future work.