Motivated by the non-circularity and well-foundedness of justifications for supported models of a modular system, in this chapter, we extended the well-established stable model semantics of logic programs to the full propositional logic while still disallowing self-justifications. Needless to men-tion that, while stable model semantics has been previously extended to full proposimen-tional logic, all the previous extensions from self-justification. However, the novelty of our approach is to start with the fundamental ideas that motivated stable models in the first place. Starting from such fun-damentals, equivalence of supported semantics and stable model semantics (over the class of logic programs) is a necessary consequence of our approach rather than a surprising coincidence as in previous extensions.
This chapter also studied the connection between some of the proposed semantics for monotonic reasoning and our supported model semantics. There are still many semantics for non-monotonic reasoning (such as default logic and autoepistemic logic) for which the relation to our supported model semantics is not known. We hope that a detailed study of this relation reveals a deep and intrinsic connection between our semantics and other well-established frameworks for non-monotonic reasoning.
The last topic that we covered in this chapter is the complexity of reasoning about supported models. We proved that although we used intuitionistic reasoning to guarantee supportedness of models, none of the interesting reasoning tasks becomes more computationally complex than before (when supportedness was not a concern).
One of our future topics of interest is to develop an efficient mechanism to reason about sup-ported models of a propositional formula. Another future direction is to study the exact relation between supported models of modular systems and the supported model semantics for propositional logic programs. We believe that there is an inherent connection between these two semantics and the results from one domain can be easily carried over to the other domain.
Discussion and Future Directions
In this thesis, we touched on two fundamental issues of declarative programming in knowledge representation: (1) the problem of using arithmetic in declarative programming in a controlled man-ner, and, (2) the problem of modular declarative representation. We will discuss these two general directions and their possible extensions separately in the two following sections of this chapter.
7.1 Arithmetical Search Problems
In Chapter 3, we showed the shortcomings of existing declarative knowledge representation lan-guages. We showed that many natural arithmetical problems cannot be expressed by existing declar-ative languages for knowledge representation despite the fact these problems are computationally within the bounds of such declarative KR languages. We also introduced a fragment of first-order logic that captures exactly the set of NP-recognizable arithmetical problems.
Benefits: A Summary
As we described in Chapter 3, the benefits of our study is manifold:
Guaranteeing Universality. Studying expressiveness of a knowledge representation problem guar-antees the existence of specifications for certain classes of problems. For instance, our expres-siveness results for knowledge representation languages in Chapter 3 showed that classes of small-cost arithmetical structures that are recognizable in NP are guaranteed to have repre-sentations in many of the existing declarative languages. Given the intuitiveness of the notion of being a small-cost structure, users can check if the problem they are specifying satisfies
156
small-cost condition and, if so, our expressiveness proofs can be used as guidelines on how a standard specification can be obtained.
Identifying Possible Extensions. Studying non-expressiveness of a knowledge representation lan-guage pinpoints the type of constructs that a lanlan-guage lacks. For example, our study of arith-metic in existing knowledge representation languages showed that these languages generally lack constructs for dealing with the number of digits of an input numbers. Thus, designers of knowledge representation languages can use our non-expressiveness results for equipping their knowledge representation languages with the right constructs that are guaranteed to in-crease the expressiveness of their language.
Solving Effectively. By studying characterization results with respect to a complexity class, one can identify cases when certain reasoning mechanisms with a less resource consumption foot-print suffice for solving a problem. In these cases, such reasoning mechanisms can be used in order to obtain solutions more effectively. As an example, in Chapter 3, we showed that logic PBINT characterizes exactly the set of arithmetical search problems that can be recognized in NP. Thus, if a problem is specified within the syntax of logic PBINT and in a knowledge representation language that contains PBINT, it can be automatically deduced that the speci-fied problem can be solved through a uniform polynomial time translation into a SAT problem (even if the language is capable of specifying more computationally complex). Moreover, our proofs in Chapter 3, when interpreted constructively, provide one such uniform translation.
Future Direction: Expressiveness of Other Built-in Constructs
Although Chapter 3 discusses built-in arithmetic in declarative KR programming, the benefits of our study is a consequence of the approach we have taken rather than the specific constructs (i.e., built-in arithmetic) or the specific complexity class (i.e., NP) we have chosen to study. Our choice to study built-in arithmetical constructs and complexity class NP was due to their importance in knowledge representation languages. However, many similar results can be derived for other types of constructs and other complexity classes. To mention a few, of particular interest to us, are the constructs to create and work with lists and sets. These constructs are very useful for naturally specifying many knowledge representation problems. Designing and implementing a declarative language with such built-in constructs that is also guaranteed to capture a complexity class such as NP is extremely useful because it allows users to describe their problems conveniently while guaranteeing effective solving process using an underlying solver.
Needless to say that the expressiveness and capturing properties should not and need not be lim-ited to the complexity class NP. For example, the computational power of many new KR languages has gone beyond NP and we are now observing more and more languages that are designed to solve ΣP2-complete problems and even some languages that are designed to solve PSPACE-complete prob-lems. Thus, it is important to study the expressiveness of the built-in constructs these languages offer.
Future Direction: Practical Language with Arithmetic
In Chapter 3, we showed that PBINT can express all arithmetical search problems that are recog-nizable in NP. A consequence of this approach is that adding new polytime computable arithmetical constructs does not increase PBINT’s expressiveness because all such polytime computable opera-tors can be axiomatized within PBINT. However, in a practical declarative language, such constructs are necessary for convenience of users of declarative languages. Aggregates are an example of the type of arithmetical constructs that can be axiomatized inside NP but are still needed in any practical declarative language because it is not convenient for a user to always have to axiomatize aggregates.
Hence, we deem it worthwhile to design a practical language that has the same guarantees as PBINT while providing as many syntactical sugars as possible. The design PBINT-Spec in Chapter 3 is a small step in this direction but a lot more is still needed.