Answer Set Programming (ASP) [1] has emerged as a successful paradigm for developing intelligent applications. ASP is based on adding negation as failure to logic programming under the stable model semantics regime [2]. ASP allows for sophisticated reasoning mechanisms that are employed by humans (and that can be clubbed under the rubric of common sense reasoning) to be modeled elegantly. The main characteristic of answer set programming is that it supports non-monotonic logic-based reasoning mechanisms that can model default reasoning, counterfactual reasoning, abductive reasoning, etc.—mechanisms that humans use for everyday reasoning. ASP is particularly good at modeling reasoning based on default rules (and exceptions to these default rules) [1]. Humans simplify their burden of reasoning by relying on default rules. For example, we will automatically assume that if Tweety is a bird, it flies. In general, we discount the possibility that Tweety might be a penguin, an ostrich, or it may be wounded, etc. We may not consider these exceptional situations right in the beginning. However, once we learn that that one of the exceptional situation holds, we will withdraw our earlier conclusion that Tweety can fly. Likewise, if I call a very close friend of mine on his mobile phone in the morning on a weekday, and he doesn’t pick it up, then I would immediately conclude that he is busy getting ready for work (because normally he picks up the phone immediately). We will discount less likely reasons such as he may be sick and may be in the hospital or may have had to leave for work early, unless we learn that that is indeed the case. In fact, I may take further actions based on the default conclusion I reached (e.g., I need to talk to my friend urgently, so next I will call his home phone, because I have concluded that he is home, he is just not picking up his mobile phone). There are many other such reasoning patterns that humans use that can be elegantly modeled by ASP as well, e.g., preferences, anti-recommendation, concomitant choice, indispensable choice, incompatible choice, etc. [8]. One could argue that for many applications, such as self-driving cars, human-styled common sense reasoning is a must. Arguably, ASP should be sufficient for modeling human-style reasoning. That is because well-founded reasoning (inductive reasoning) as well as cyclical reasoning (establishing mutual consistency or coinductive reasoning) can be both represented in ASP, permitting a wide-range of reasoning patterns to be modeled [7]. Our experience modeling a physician advisory system for chronic heart failure indeed bears this out [8].
[1]
David Scott Warren,et al.
XSB: Extending Prolog with Tabled Logic Programming
,
2010,
Theory and Practice of Logic Programming.
[2]
Gopal Gupta,et al.
Goal-directed execution of answer set programs
,
2012,
PPDP.
[3]
Gopal Gupta,et al.
Computing Stable Models of Normal Logic Programs Without Grounding
,
2017,
ArXiv.
[4]
Martin Gebser,et al.
clasp : A Conflict-Driven Answer Set Solver
,
2007,
LPNMR.
[5]
Gopal Gupta,et al.
Dynamic Consistency Checking in Goal-Directed Answer Set Programming
,
2014,
Theory and Practice of Logic Programming.
[6]
Peter J. Stuckey,et al.
Programming with Constraints: An Introduction
,
1998
.
[7]
Gopal Gupta,et al.
A Physician Advisory System for Chronic Heart Failure management based on knowledge patterns
,
2016,
Theory and Practice of Logic Programming.
[8]
Gopal Gupta,et al.
Coinductive Logic Programming and Its Applications
,
2007,
ICLP.
[9]
Chitta Baral,et al.
Knowledge Representation, Reasoning and Declarative Problem Solving: Declarative problem solving and reasoning in AnsProlog*
,
2003
.