43 research outputs found
Modularity in answer set programs
Answer set programming (ASP) is an approach to rule-based constraint programming allowing flexible knowledge representation in variety of application areas. The declarative nature of ASP is reflected in problem solving. First, a programmer writes down a logic program the answer sets of which correspond to the solutions of the problem. The answer sets of the program are then computed using a special purpose search engine, an ASP solver. The development of efficient ASP solvers has enabled the use of answer set programming in various application domains such as planning, product configuration, computer aided verification, and bioinformatics.
The topic of this thesis is modularity in answer set programming. While modern programming languages typically provide means to exploit modularity in a number of ways to govern the complexity of programs and their development process, relatively little attention has been paid to modularity in ASP. When designing a module architecture for ASP, it is essential to establish full compositionality of the semantics with respect to the module system. A balance is sought between introducing restrictions that guarantee the compositionality of the semantics and enforce a good programming style in ASP, and avoiding restrictions on the module hierarchy for the sake of flexibility of knowledge representation.
To justify a replacement of a module with another, that is, to be able to guarantee that changes made on the level of modules do not alter the semantics of the program when seen as an entity, a notion of equivalence for modules is provided. In close connection with the development of the compositional module architecture, a transformation from verification of equivalence to search for answer sets is developed. The translation-based approach makes it unnecessary to develop a dedicated tool for the equivalence verification task by allowing the direct use of existing ASP solvers.
Translations and transformations between different problems, program classes, and formalisms are another central theme in the thesis. To guarantee efficiency and soundness of the translation-based approach, certain syntactical and semantical properties of transformations are desirable, in terms of translation time, solution correspondence between the original and the transformed problem, and locality/globality of a particular transformation.
In certain cases a more refined notion of minimality than that inherent in ASP can make program encodings more intuitive. Lifschitz' parallel and prioritized circumscription offer a solution in which certain atoms are allowed to vary or to have fixed values while others are falsified as far as possible according to priority classes. In this thesis a linear and faithful transformation embedding parallel and prioritized circumscription into ASP is provided. This enhances the knowledge representation capabilities of answer set programming by allowing the use of existing ASP solvers for computing parallel and prioritized circumscription
Complexity of Nested Circumscription and Nested Abnormality Theories
The need for a circumscriptive formalism that allows for simple yet elegant
modular problem representation has led Lifschitz (AIJ, 1995) to introduce
nested abnormality theories (NATs) as a tool for modular knowledge
representation, tailored for applying circumscription to minimize exceptional
circumstances. Abstracting from this particular objective, we propose L_{CIRC},
which is an extension of generic propositional circumscription by allowing
propositional combinations and nesting of circumscriptive theories. As shown,
NATs are naturally embedded into this language, and are in fact of equal
expressive capability. We then analyze the complexity of L_{CIRC} and NATs, and
in particular the effect of nesting. The latter is found to be a source of
complexity, which climbs the Polynomial Hierarchy as the nesting depth
increases and reaches PSPACE-completeness in the general case. We also identify
meaningful syntactic fragments of NATs which have lower complexity. In
particular, we show that the generalization of Horn circumscription in the NAT
framework remains CONP-complete, and that Horn NATs without fixed letters can
be efficiently transformed into an equivalent Horn CNF, which implies
polynomial solvability of principal reasoning tasks. Finally, we also study
extensions of NATs and briefly address the complexity in the first-order case.
Our results give insight into the ``cost'' of using L_{CIRC} (resp. NATs) as a
host language for expressing other formalisms such as action theories,
narratives, or spatial theories.Comment: A preliminary abstract of this paper appeared in Proc. Seventeenth
International Joint Conference on Artificial Intelligence (IJCAI-01), pages
169--174. Morgan Kaufmann, 200
The Role of preferences in logic programming: nonmonotonic reasoning, user preferences, decision under uncertainty
Intelligent systems that assist users in fulfilling complex tasks need a concise and processable representation of incomplete and
uncertain information. In order to be able to choose among different options, these systems also need a compact and processable
representation of the concept of preference.
Preferences can provide an effective way to choose the best solutions to a given problem. These solutions can represent the most
plausible states of the world when we model incomplete information, the most satisfactory states of the world when we express
user preferences, or optimal decisions when we make decisions under uncertainty.
Several domains, such as, reasoning under incomplete and uncertain information, user preference modeling, and qualitative
decision making under uncertainty, have benefited from advances on preference representation. In the literature, several symbolic
approaches of nonclassical reasoning have been proposed. Among them, logic programming under answer set semantics offers a
good compromise between symbolic representation and computation of knowledge and several extensions for handling
preferences.
Nevertheless, there are still some open issues to be considered in logic programming. In nonmonotonic reasoning, first, most
approaches assume that exceptions to logic program rules are already specified. However, sometimes, it is possible to consider
implicit preferences based on the specificity of the rules to handle incomplete information. Secondly, the joint handling of
exceptions and uncertainty has received little attention: when information is uncertain, the selection of default rules can be a matter
of explicit preferences and uncertainty. In user preference modeling, although existing logic programming specifications allow to
express user preferences which depend both on incomplete and contextual information, in some applications, some preferences in
some context may be more important than others. Furthermore, more complex preference expressions need to be supported. In
qualitative decision making under uncertainty, existing logic programming-based methodologies for making decisions seem to lack
a satisfactory handling of preferences and uncertainty.
The aim of this dissertation is twofold: 1) to tackle the role played by preferences in logic programming from different perspectives,
and 2) to contribute to this novel field by proposing several frameworks and methods able to address the above issues. To this
end, we will first show how preferences can be used to select default rules in logic programs in an implicit and explicit way. In
particular, we propose (i) a method for selecting logic program rules based on specificity, and (ii) a framework for selecting
uncertain default rules based on explicit preferences and the certainty of the rules. Then, we will see how user preferences can be
modeled and processed in terms of a logic program (iii) in order to manage user profiles in a context-aware system and (iv) in order
to propose a framework for the specification of nested (non-flat) preference expressions. Finally, in the attempt to bridge the gap
between logic programming and qualitative decision under uncertainty, (v) we propose a classical- and a possibilistic-based logic
programming methodology to compute an optimal decision when uncertainty and preferences are matters of degrees.Els sistemes intel.ligents que assisteixen a usuaris en la realització de tasques complexes necessiten
una representació concisa i formal de la informació que permeti un raonament nomonòton
en condicions d’incertesa. Per a poder escollir entre les diferents opcions, aquests
sistemes solen necessitar una representació del concepte de preferència.
Les preferències poden proporcionar una manera efectiva de triar entre les millors solucions
a un problema. Aquestes solucions poden representar els estats del món més plausibles
quan es tracta de modelar informació incompleta, els estats del món més satisfactori
quan expressem preferències de l’usuari, o decisions òptimes quan estem parlant de presa
de decisió incorporant incertesa.
L’ús de les preferències ha beneficiat diferents dominis, com, el raonament en presència
d’informació incompleta i incerta, el modelat de preferències d’usuari, i la presa de decisió
sota incertesa. En la literatura, s’hi troben diferents aproximacions al raonament no clàssic
basades en una representació simbòlica de la informació. Entre elles, l’enfocament de programació
lògica, utilitzant la semàntica de answer set, ofereix una bona aproximació entre
representació i processament simbòlic del coneixement, i diferents extensions per gestionar
les preferències.
No obstant això, en programació lògica es poden identificar diferents problemes pel
que fa a la gestió de les preferències. Per exemple, en la majoria d’enfocaments de raonament
no-monòton s’assumeix que les excepcions a default rules d’un programa lògic ja
estan expressades. Però de vegades es poden considerar preferències implícites basades en
l’especificitat de les regles per gestionar la informació incompleta. A més, quan la informació
és també incerta, la selecció de default rules pot dependre de preferències explícites i de la
incertesa. En el modelatge de preferències del usuari, encara que els formalismes existents
basats en programació lògica permetin expressar preferències que depenen d’informació
contextual i incompleta, en algunes aplicacions, donat un context, algunes preferències
poden ser més importants que unes altres. Per tant, resulta d’interès un llenguatge que
permeti capturar preferències més complexes. En la presa de decisions sota incertesa, les
metodologies basades en programació lògica creades fins ara no ofereixen una solució del
tot satisfactòria pel que fa a la gestió de les preferències i la incertesa.
L’objectiu d’aquesta tesi és doble: 1) estudiar el paper de les preferències en la programació
lògica des de diferents perspectives, i 2) contribuir a aquesta jove àrea d’investigació
proposant diferents marcs teòrics i mètodes per abordar els problemes anteriorment citats.
Per a aquest propòsit veurem com les preferències es poden utilitzar de manera implícita i
explícita per a la selecció de default rules proposant: (i) un mètode basat en l’especificitat
de les regles, que permeti seleccionar regles en un programa lògic; (ii) un marc teòric per a
la selecció de default rules incertes basat en preferències explícites i la incertesa de les regles.
També veurem com les preferències de l’usuari poden ser modelades i processades usant
un enfocament de programació lògica (iii) que suporti la creació d’un mecanisme de gestió
dels perfils dels usuaris en un sistema amb reconeixement del context; (iv) que permeti
proposar un marc teòric capaç d’expressar preferències amb fòrmules imbricades. Per últim,
amb l’objectiu de disminuir la distància entre programació lògica i la presa de decisió
amb incertesa proposem (v) una metodologia basada en programació lògica clàssica i en
una extensió de la programació lògica que incorpora lògica possibilística per modelar un
problema de presa de decisions i per inferir una decisió òptima.Los sistemas inteligentes que asisten a usuarios en tareas complejas necesitan una representación
concisa y procesable de la información que permita un razonamiento nomonótono
e incierto. Para poder escoger entre las diferentes opciones, estos sistemas suelen
necesitar una representación del concepto de preferencia.
Las preferencias pueden proporcionar una manera efectiva para elegir entre las mejores
soluciones a un problema. Dichas soluciones pueden representar los estados del mundo
más plausibles cuando hablamos de representación de información incompleta, los estados
del mundo más satisfactorios cuando hablamos de preferencias del usuario, o decisiones
óptimas cuando estamos hablando de toma de decisión con incertidumbre.
El uso de las preferencias ha beneficiado diferentes dominios, como, razonamiento en
presencia de información incompleta e incierta, modelado de preferencias de usuario, y
toma de decisión con incertidumbre. En la literatura, distintos enfoques simbólicos de razonamiento
no clásico han sido creados. Entre ellos, la programación lógica con la semántica
de answer set ofrece un buen acercamiento entre representación y procesamiento simbólico
del conocimiento, y diferentes extensiones para manejar las preferencias.
Sin embargo, en programación lógica se pueden identificar diferentes problemas con
respecto al manejo de las preferencias. Por ejemplo, en la mayoría de enfoques de razonamiento
no-monótono se asume que las excepciones a default rules de un programa lógico
ya están expresadas. Pero, a veces se pueden considerar preferencias implícitas basadas en
la especificidad de las reglas para manejar la información incompleta. Además, cuando la
información es también incierta, la selección de default rules pueden depender de preferencias
explícitas y de la incertidumbre. En el modelado de preferencias, aunque los formalismos
existentes basados en programación lógica permitan expresar preferencias que
dependen de información contextual e incompleta, in algunas aplicaciones, algunas preferencias
en un contexto puede ser más importantes que otras. Por lo tanto, un lenguaje
que permita capturar preferencias más complejas es deseable. En la toma de decisiones con
incertidumbre, las metodologías basadas en programación lógica creadas hasta ahora no
ofrecen una solución del todo satisfactoria al manejo de las preferencias y la incertidumbre.
El objectivo de esta tesis es doble: 1) estudiar el rol de las preferencias en programación
lógica desde diferentes perspectivas, y 2) contribuir a esta joven área de investigación proponiendo
diferentes marcos teóricos y métodos para abordar los problemas anteriormente
citados. Para este propósito veremos como las preferencias pueden ser usadas de manera implícita y explícita para la selección de default rules proponiendo: (i) un método para
seleccionar reglas en un programa basado en la especificad de las reglas; (ii) un marco
teórico para la selección de default rules basado en preferencias explícitas y incertidumbre.
También veremos como las preferencias del usuario pueden ser modeladas y procesadas
usando un enfoque de programación lógica (iii) para crear un mecanismo de manejo de
los perfiles de los usuarios en un sistema con reconocimiento del contexto; (iv) para crear
un marco teórico capaz de expresar preferencias con formulas anidadas. Por último, con
el objetivo de disminuir la distancia entre programación lógica y la toma de decisión con
incertidumbre proponemos (v) una metodología para modelar un problema de toma de
decisiones y para inferir una decisión óptima usando un enfoque de programación lógica
clásica y uno de programación lógica extendida con lógica posibilística.Sistemi intelligenti, destinati a fornire supporto agli utenti in processi decisionali complessi,
richiedono una rappresentazione dell’informazione concisa, formale e che permetta
di ragionare in maniera non monotona e incerta. Per poter scegliere tra le diverse opzioni,
tali sistemi hanno bisogno di disporre di una rappresentazione del concetto di preferenza
altrettanto concisa e formale.
Le preferenze offrono una maniera efficace per scegliere le miglior soluzioni di un problema.
Tali soluzioni possono rappresentare gli stati del mondo più credibili quando si tratta
di ragionamento non monotono, gli stati del mondo più soddisfacenti quando si tratta delle
preferenze degli utenti, o le decisioni migliori quando prendiamo una decisione in condizioni
di incertezza.
Diversi domini come ad esempio il ragionamento non monotono e incerto, la strutturazione
del profilo utente, e i modelli di decisione in condizioni d’incertezza hanno tratto
beneficio dalla rappresentazione delle preferenze. Nella bibliografia disponibile si possono
incontrare diversi approcci simbolici al ragionamento non classico. Tra questi, la programmazione
logica con answer set semantics offre un buon compromesso tra rappresentazione
simbolica e processamento dell’informazione, e diversi estensioni per la gestione delle preferenze
sono state proposti in tal senso.
Nonostante ció, nella programmazione logica esistono ancora delle problematiche aperte.
Prima di tutto, nella maggior parte degli approcci al ragionamento non monotono, si suppone
che nel programma le eccezioni alle regole siano già specificate. Tuttavia, a volte per
trattare l’informazione incompleta è possibile prendere in considerazione preferenze implicite
basate sulla specificità delle regole. In secondo luogo, la gestione congiunta di eccezioni
e incertezza ha avuto scarsa attenzione: quando l’informazione è incerta, la scelta
di default rule può essere una questione di preferenze esplicite e d’incertezza allo stesso
tempo. Nella creazione di preferenze dell’utente, anche se le specifiche di programmazione
logica esistenti permettono di esprimere preferenze che dipendono sia da un’informazione
incompleta che da una contestuale, in alcune applicazioni talune preferenze possono essere
più importanti di altre, o espressioni più complesse devono essere supportate. In un processo
decisionale con incertezza, le metodologie basate sulla programmazione logica viste
sinora, non offrono una gestione soddisfacente delle preferenze e dell’incertezza.
Lo scopo di questa dissertazione è doppio: 1) chiarire il ruolo che le preferenze giocano
nella programmazione logica da diverse prospettive e 2) contribuire proponendo in questo nuovo settore di ricerca, diversi framework e metodi in grado di affrontare le citate
problematiche. Per prima cosa, dimostreremo come le preferenze possono essere usate per
selezionare default rule in un programma in maniera implicita ed esplicita. In particolare
proporremo: (i) un metodo per la selezione delle regole di un programma logico basato
sulla specificità dell’informazione; (ii) un framework per la selezione di default rule basato
sulle preferenze esplicite e sull’incertezza associata alle regole del programma. Poi, vedremo
come le preferenze degli utenti possono essere modellate attraverso un programma
logico, (iii) per creare il profilo dell’utente in un sistema context-aware, e (iv) per proporre
un framework che supporti la definizione di preferenze complesse. Infine, per colmare le
lacune in programmazione logica applicata a un processo di decisione con incertezza (v)
proporremo una metodologia basata sulla programmazione logica classica e una metodologia
basata su un’estensione della programmazione logica con logica possibilistica
Recommended from our members
Using Extended Logic Programs to Formalize Commonsense Reasoning
In this dissertation, we investigate how commonsense reasoning can be formalized by using extended logic programs. In this investigation, we first use extended logic programs to formalize inheritance hierarchies with exceptions by adopting McCarthy's simple abnormality formalism to express uncertain knowledge. In our representation, not only credulous reasoning can be performed but also the ambiguity-blocking inheritance and the ambiguity-propagating inheritance in skeptical reasoning are simulated. In response to the anomalous extension problem, we explore and discover that the intuition underlying commonsense reasoning is a kind of forward reasoning. The unidirectional nature of this reasoning is applied by many reformulations of the Yale shooting problem to exclude the undesired conclusion. We then identify defeasible conclusions in our representation based on the syntax of extended logic programs. A similar idea is also applied to other formalizations of commonsense reasoning to achieve such a purpose
Disjunctive argumentation semantics (DAS) for reasoning over distributed uncertain knowledge.
by Benson, Ng Hin Kwong.Thesis (M.Phil.)--Chinese University of Hong Kong, 1998.Includes bibliographical references (leaves 111-117).Abstract also in Chinese.Chapter 1 --- Introduction --- p.9Chapter 1.1 --- Our approach --- p.11Chapter 1.2 --- Organization of the thesis --- p.12Chapter 2 --- Logic Programming --- p.13Chapter 2.1 --- Logic programming in Horn clauses --- p.14Chapter 2.1.1 --- Problem with incomplete information --- p.15Chapter 2.1.2 --- Problem with inconsistent information --- p.15Chapter 2.1.3 --- Problem with indefinite information --- p.16Chapter 2.2 --- Logic programming in non-Horn clauses --- p.16Chapter 2.2.1 --- Reasoning under incomplete information --- p.17Chapter 2.2.2 --- Reasoning under inconsistent information --- p.17Chapter 2.2.3 --- Reasoning under indefinite information --- p.20Chapter 2.3 --- "Coexistence of incomplete, inconsistent and indefinite information" --- p.21Chapter 2.4 --- Stable semantics --- p.22Chapter 2.5 --- Well-founded semantics --- p.23Chapter 2.6 --- Chapter summary --- p.25Chapter 3 --- Argumentation --- p.26Chapter 3.1 --- Toulmin's informal argumentation model --- p.27Chapter 3.2 --- Rescher's formal argumentation model --- p.28Chapter 3.3 --- Argumentation in AI research --- p.30Chapter 3.3.1 --- Poole's Logical Framework for Default Reasoning --- p.30Chapter 3.3.2 --- Inheritance Reasoning Framework of Touretzky et. al --- p.31Chapter 3.3.3 --- Pollock's Theory of Defeasible Reasoning --- p.32Chapter 3.3.4 --- Dung's Abstract Argumentation Framework --- p.33Chapter 3.3.5 --- Lin and Shoham's Argument System --- p.35Chapter 3.3.6 --- Vreeswijk's Abstract Argumentation --- p.35Chapter 3.3.7 --- Kowalski and Toni's Uniform Argumentation --- p.36Chapter 3.3.8 --- John Fox's Qualitative Argumentation --- p.37Chapter 3.3.9 --- Thomas Gordon's Pleading Games --- p.38Chapter 3.3.10 --- Chris Reed's Persuasive Dialogue --- p.39Chapter 3.3.11 --- Ronald Loui's Argument Game --- p.39Chapter 3.3.12 --- "Verheij's Reason-Based, Logics and CumulA" --- p.40Chapter 3.3.13 --- Prakken's Defeasible Argumentation --- p.40Chapter 3.3.14 --- Summary of existing frameworks --- p.41Chapter 3.4 --- Chapter summary --- p.42Chapter 4 --- Disjunctive Argumentation Semantics I --- p.46Chapter 4.1 --- Background --- p.47Chapter 4.2 --- Definition --- p.48Chapter 4.3 --- Conflicts within a KBS --- p.52Chapter 4.4 --- Conflicts between KBSs --- p.54Chapter 4.4.1 --- Credulous View --- p.56Chapter 4.4.2 --- Skeptical View --- p.57Chapter 4.4.3 --- Generalized Skeptical View --- p.58Chapter 4.5 --- Semantics --- p.60Chapter 4.6 --- Dialectical proof theory --- p.61Chapter 4.7 --- Relation to existing framework --- p.61Chapter 4.8 --- Issue on paraconsistency --- p.63Chapter 4.9 --- An illustrative example --- p.63Chapter 4.10 --- Chapter summary --- p.65Chapter 5 --- Disjunctive Argumentation Semantics II --- p.67Chapter 5.1 --- Background --- p.68Chapter 5.2 --- Definition --- p.70Chapter 5.2.1 --- Rules --- p.70Chapter 5.2.2 --- Splits --- p.71Chapter 5.3 --- Conflicts --- p.74Chapter 5.3.1 --- Undercut conflicts --- p.75Chapter 5.3.2 --- Rebuttal conflicts --- p.76Chapter 5.3.3 --- Thinning conflicts --- p.78Chapter 5.4 --- Semantics --- p.80Chapter 5.5 --- Relation to existing frameworks --- p.81Chapter 5.6 --- Issue on paraconsistency --- p.82Chapter 5.7 --- An illustrative example --- p.83Chapter 5.8 --- Chapter summary --- p.85Chapter 6 --- Evaluation --- p.86Chapter 6.1 --- Introduction --- p.86Chapter 6.2 --- Methodology --- p.87Chapter 6.3 --- DAS I --- p.88Chapter 6.3.1 --- Inoue's Benchmark problems --- p.88Chapter 6.3.2 --- Sherlock Holmes' problems --- p.96Chapter 6.4 --- DAS II --- p.100Chapter 6.4.1 --- Inoue's benchmark problems --- p.100Chapter 6.4.2 --- Sherlock Holmes' problem --- p.103Chapter 6.5 --- Analysis --- p.103Chapter 6.5.1 --- Possible extension --- p.104Chapter 6.6 --- Chapter summary --- p.106Chapter 7 --- Conclusion --- p.108Chapter 7.0.1 --- Possible extension of the present work --- p.109Bibliography --- p.117Chapter A --- First Oreder Logic (FOL) --- p.118Chapter B --- DAS-I Proof --- p.121Chapter B.1 --- Monotone proof --- p.121Chapter B.2 --- Soundness proof --- p.122Chapter B.3 --- Completeness proof --- p.123Chapter C --- Sherlock Holmes' Silver Blaze Excerpts --- p.125Chapter C.1 --- Double life --- p.125Chapter C.2 --- Poison stable boy --- p.12
Proceedings of the IJCAI-09 Workshop on Nonmonotonic Reasoning, Action and Change
Copyright in each article is held by the authors.
Please contact the authors directly for permission to reprint or use this material in any form for any purpose.The biennial workshop on Nonmonotonic Reasoning, Action
and Change (NRAC) has an active and loyal community.
Since its inception in 1995, the workshop has been held seven
times in conjunction with IJCAI, and has experienced growing
success. We hope to build on this success again this eighth
year with an interesting and fruitful day of discussion.
The areas of reasoning about action, non-monotonic reasoning
and belief revision are among the most active research
areas in Knowledge Representation, with rich inter-connections
and practical applications including robotics, agentsystems,
commonsense reasoning and the semantic web.
This workshop provides a unique opportunity for researchers
from all three fields to be brought together at a single forum
with the prime objectives of communicating important recent
advances in each field and the exchange of ideas. As these
fundamental areas mature it is vital that researchers maintain
a dialog through which they can cooperatively explore
common links. The goal of this workshop is to work against
the natural tendency of such rapidly advancing fields to drift
apart into isolated islands of specialization.
This year, we have accepted ten papers authored by a diverse
international community. Each paper has been subject
to careful peer review on the basis of innovation, significance
and relevance to NRAC. The high quality selection of work
could not have been achieved without the invaluable help of
the international Program Committee.
A highlight of the workshop will be our invited speaker
Professor Hector Geffner from ICREA and UPF in Barcelona,
Spain, discussing representation and inference in modern
planning. Hector Geffner is a world leader in planning,
reasoning, and knowledge representation; in addition to his
many important publications, he is a Fellow of the AAAI, an
associate editor of the Journal of Artificial Intelligence Research
and won an ACM Distinguished Dissertation Award
in 1990
Proceedings of the Workshop on Change of Representation and Problem Reformulation
The proceedings of the third Workshop on Change of representation and Problem Reformulation is presented. In contrast to the first two workshops, this workshop was focused on analytic or knowledge-based approaches, as opposed to statistical or empirical approaches called 'constructive induction'. The organizing committee believes that there is a potential for combining analytic and inductive approaches at a future date. However, it became apparent at the previous two workshops that the communities pursuing these different approaches are currently interested in largely non-overlapping issues. The constructive induction community has been holding its own workshops, principally in conjunction with the machine learning conference. While this workshop is more focused on analytic approaches, the organizing committee has made an effort to include more application domains. We have greatly expanded from the origins in the machine learning community. Participants in this workshop come from the full spectrum of AI application domains including planning, qualitative physics, software engineering, knowledge representation, and machine learning