TY - JOUR AU - Zhang, Yuanlin AB - Abstract In this article, we present a new version of the language of Epistemic Specifications. The goal is to simplify and improve the intuitive and formal semantics of the language. We describe an algorithm for computing solutions of programs written in this new version of the language. The new semantics is illustrated by a number of examples, including an Epistemic Specifications-based framework for conformant planning. In addition, we introduce the notion of an epistemic logic program with sorts . This extends recent efforts to define a logic programming language that includes the means for explicitly specifying the domains of predicate parameters. An algorithm and its implementation as a solver for epistemic logic programs with sorts is also discussed. 1 Introduction We define a new version of the language of Epistemic Specifications —an extension of the language of answer set programming (ASP)—that was introduced by Gelfond in the early 1990s [ 14 , 15 ]. The language of Epistemic Specifications allows for introspective reasoning through the use of modal operators K (‘known’) and M (‘may be true’), similar to □ and ⋄ of modal logic. The original version allowed formalizing certain types of knowledge not expressible in ASP, but its semantics was not fully satisfactory. The difficulty was related to issues with the formalization of the rationality principle which states that a rational agent should believe only what he is forced to believe . The semantics did not seem to adequately capture this principle for programs with recursion through modal operators. The problem was partially addressed in [ 16 ] where some progress was made with respect to the semantics of programs with recursion through the K operator. The approach was, however, not sufficient for programs with recursion through M . The version of the language presented herein addresses that issue. Concurrent with this work was an effort by Balai et al . [ 3 , 4 ] to enhance ASP by providing a framework for specifying sorts for the parameters of predicates in a language they called SPARC . This promoted better program design, helped to eliminate certain common errors (e.g. misspellings), and encouraged development of rules specific to a particular domain without the concern for rule safety that has been associated with variable terms by popular ASP solvers (e.g. clingo [ 21 ], DLV [ 10 ]). We utilize these recent efforts on sorts in order to provide within the language of Epistemic Specifications a framework for specifying predicate parameter domains. We call a program written in this new language an epistemic logic program with sorts (ELPS) . In addition to the benefits a sorted signature provides to the programmer, it also allows for a more straightforward algorithm for computing world views. We describe such an algorithm—one that can take advantage of existing state-of-the-art ASP solvers—and give a synopsis of test results from our implementation. In the next section, we provide some background information about the language. In Section 3 , we give the syntax and semantics for the new version. We then show comparisons between the new and old versions in Section 4 . An algorithm for an epistemic logic program solver is given in Section 5 . Epistemic logic programs with sorts are presented in Section 6 . The algorithm is modified for sorts in Section 7 , and an implementation and test results are presented in Section 8 . We next look at applications in Section 9 , including a framework for a conformant planner that takes advantage of the added features of the language. Finally, we describe related work, conclusions, and future work. Appendices are given with proofs of the theorems presented in the article, plus an alternative modal reduct that offers deeper insight into the new semantics. 2 Background The first paper [ 14 ] on Epistemic Specifications illustrated the need for a new formalism by considering the following problem. E xample 1 [Scholarship Eligibility Problem] Consider the following three ASP rules (with rule labels added for later reference) used by a certain college to determine eligibility of students for scholarships, where the variable X ranges over a given set of students. A fourth rule—given here in plain text—is that a student should be interviewed by the scholarship committee if his/her eligibility cannot be determined using the prior three rules . R1 : eligible(X)←highGPA(X) . R2 : eligible(X)←minority(X),fairGPA(X) . R3 : ¬eligible(X)←¬fairGPA(X),¬highGPA(X) . A reasonable attempt to express this fourth rule in ASP is as follows: However, when used with a database containing incomplete information, the resulting program is unable to correctly determine if a student is supposed to be interviewed. This is illustrated by considering the following disjunctive rule representing information from a database that Mike's GPA is either fair or high. Note that his minority status is not given and is therefore unknown. Together, rules R1 – R5 comprise a program having the following two answer sets: Although the program correctly represents Mike's eligibility for a scholarship as indeterminate, it fails to entail that Mike should be interviewed. A general representation was unable to be found for solving this problem using ASP. R4 : interview(X)←   noteligible ( X ), not ¬eligible(X) . R5 : fairGPA(mike)or highGPA(mike) . A1={highGPA(mike),eligible(mike)} , and A2={fairGPA(mike),interview(mike)} . Gelfond's remedy to this problem was to extend ASP by introducing modal operators, providing for more powerful introspective reasoning with respect to all answer sets (the K modal operator) or some answer set (the M modal operator). The intuitive meaning of these operators was influenced by modal logics of knowledge and belief (see, e.g. [ 13 ]). Semantically, programs in the language of Epistemic Specifications define possible collections of belief sets of a rational agent—called world views —associated with the program. The world view of a program without modal operators coincides with the collection of its answer sets if taken as an ASP program. If a program has modal operators, a world view W satisfies subjective literal K ℓ if literal ℓ belongs to all the belief sets in W , and subjective literal M ℓ if ℓ belongs to at least one belief set in W . For example, {{p,r},{q,r}} is the world view of the following program: The language of Epistemic Specifications provides a natural way to deal with the problem described in Example 1. por q . r←M p . E xample 2 [Scholarship Eligibility Problem Revisited] The fourth rule can be expressed in the language of Epistemic Specifications as The epistemic logic program consisting of rule R6 together with rules R1 – R3 and R5 from Example 1 has the world view W={A1,A2} where Notice that interview(mike) is in every belief set of the world view of this program; thus, we now have a program that correctly entails that Mike should be interviewed. R6 : interview(X)←not K eligible(X) , not K ¬eligible(X) . A1={highGPA(mike),eligible(mike),interview(mike)} , and A2={fairGPA(mike),interview(mike)} . Now let us consider the following program: Under the original semantics, this program has two world views: {{}} and {{p}} . We believe a rational agent should not accept {{p}} as a world view of this program as support for p is clearly circular and belief in Kp should require stronger conviction than that given (e.g. since the one-rule program p←p does not force belief in p , it is clear that p←K p should not since Kp requires more conviction to accept than p ). p←K p . Gelfond updated the semantics in [ 16 ], fixing the problem with recursion through K such that {{}} was the only world view of p←K p ; however, the following program still had two world views: {{}} and {{p}} . We couldn't find a justification for this result compatible with the rationality principle. p←M p . 3 Syntax and semantics of epistemic specifications—new version In what follows, we will distinguish between different versions of Epistemic Specifications by the years of their introduction. The new version will be referred to as ES2014 . 3.1 Syntax of ES2014 The language of Epistemic Specifications consists of the usual first-order signature, ASP logical connectives ( not , or , ¬ , etc.), and modal operators K and M . An objective literal is the same as a literal in ASP. A subjective literal is an expression of the form K ℓ or Mℓ where ℓ is an objective literal. A default-negated literal is an expression of the form not g where g is an objective or subjective literal. An extended literal is an objective, subjective, or default-negated literal. A rule is of the form where k≥0 , n≥0 , ℓ s are objective literals, and e s are extended literals. A program in this language, called an epistemic logic program , is a set of rules. ℓ1or … or ℓk←e1,…,en , 3.2 Semantics of ES2014 Note: In the following definitions, ℓ is used to denote a ground objective literal. By an ES structure , W , we mean a non-empty collection of consistent sets of ground objective literals. A pair 〈A,W〉 is called a pointed ES structure of W where A∈W . To define the semantics of Epistemic Specifications, we first define the notion of a model of an epistemic logic program Π . W is a model of Π if for each rule R in Π , R is satisfied by every pointed ES structure of W . The notion of satisfiability is defined below. D efinition 1 [ When an Extended Literal Is Satisfied ] Let W be an ES structure and 〈A,W〉 be a pointed ES structure of W . Note that the satisfiability of an objective literal does not depend on W and the satisfiability of a subjective literal does not depend on A . For example, if 〈A,W〉⊨ℓ we can simply say that A⊨ℓ ; likewise, if 〈A,W〉⊨K ℓ we can simply say that W⊨K ℓ . 〈A,W〉⊨ℓ     if ℓ∈A . 〈A,W〉⊨not ℓ   if ℓ∉A . 〈A,W〉⊨K ℓ    if ∀S∈W:ℓ∈S . 〈A,W〉⊨not K ℓ  if ∃S∈W:ℓ∉S . 〈A,W〉⊨Mℓ    if ∃S∈W:ℓ∈S . 〈A,W〉⊨not Mℓ  if ∀S∈W:ℓ∉S . D efinition 2 [ When a Rule Is Satisfied ] Let Π be a ground epistemic logic program, W be an ES structure, 〈A,W〉 be a pointed ES structure of W , and R be a rule in Π . 〈A,W〉⊨R if where head(R) denotes the set of objective literals in the head of R , and body(R) denotes the set of extended literals in the body of R . ∃ℓ∈head(R):〈A,W〉⊨ℓ , or ∃e∈body(R):〈A,W〉⊭e D efinition 3 [ Modal Reduct ] 1 Let Π be a ground epistemic logic program and W be an ES structure. The modal reduct of Π with respect to W , denoted by ΠW , is the ASP program (with nested expressions2 ) obtained from Π by replacing/removing subjective literals and deleting rules according to the following table. s if W⊨s if W⊭s K ℓ replace K ℓ with ℓ delete the rule not K ℓ remove not K ℓ replace not K ℓ with not ℓ Mℓ remove Mℓ replace Mℓ with notnot ℓ not Mℓ replace not Mℓ with not ℓ delete the rule s if W⊨s if W⊭s K ℓ replace K ℓ with ℓ delete the rule not K ℓ remove not K ℓ replace not K ℓ with not ℓ Mℓ remove Mℓ replace Mℓ with notnot ℓ not Mℓ replace not Mℓ with not ℓ delete the rule View Large s if W⊨s if W⊭s K ℓ replace K ℓ with ℓ delete the rule not K ℓ remove not K ℓ replace not K ℓ with not ℓ Mℓ remove Mℓ replace Mℓ with notnot ℓ not Mℓ replace not Mℓ with not ℓ delete the rule s if W⊨s if W⊭s K ℓ replace K ℓ with ℓ delete the rule not K ℓ remove not K ℓ replace not K ℓ with not ℓ Mℓ remove Mℓ replace Mℓ with notnot ℓ not Mℓ replace not Mℓ with not ℓ delete the rule View Large D efinition 4 [ World View ] W is a world view of Π if W=AS(ΠW) where AS(ΠW) denotes the set of all answer sets of ΠW . Π is said to be inconsistent if Π has no world view. Not only does this new definition retain the ‘fix’ for unintended world views due to recursion through K (as provided in ES2011), it also provides a reasonable solution to the problem of unintended world views due to recursion through M . The next example demonstrates this important new feature of our new definition. E xample 3 Let Π be the following epistemic logic program. Consider the ES structure W1={{}} . ΠW1 is which has two answer sets, {} and {p} ; thus, since W1≠AS(ΠW1) , W1 is not a world view of Π . Now consider the ES structure W2={{p}} . ΠW2 is whose answer set is {p} ; thus, since W2=AS(ΠW2) , W2 is a world view of Π . p←M p . p←notnot p . p . It is worth noting that, per our original intuition, we believed W1 should have been the only world view of Π . New insights into the nature of modal operators forced us to change our view. In the next section, we give a short description of our new intuition. 3.3 Preference order for extended literals and new intuition It was observed by looking at the definitions for satisfiability that a rational agent should find it easier to accept certain extended literals over others. This is clear when we look at the fact that, e.g. given a pointed ES structure 〈A,W〉 , in order to establish K ℓ , it must be demonstrated that ℓ belongs to all belief sets in W . To establish ℓ , it must be demonstrated that ℓ belongs to a particular belief set in W , namely A . But to establish Mℓ , it is sufficient to demonstrate that ℓ belongs to some belief set in W . This implies a preference order as illustrated below. We believe this to be an important observation, one that is key to the development of an intuitive understanding of the semantics of our new definition, and for our acceptance of {{p}} as the one and only world view of p←M p . In order to formalize our intuition about the preference of ℓ with respect to Mℓ , the definition of the reduct uses a translation of Mℓ into notnot ℓ rather than ℓ when Mℓ is not satisfied. The next example demonstrates another feature of the new semantics in that replacement of Mℓ by notnot ℓ when Mℓ is not satisfied allows acceptance of a world view where none existed under any of the semantics of previous language versions. E xample 4 Let Π be the following epistemic logic program. Consider the ES structure W={{p}} . ΠW is whose answer set is {p} ; thus, since W=AS(ΠW) , {{p}} is a world view of Π . por q . p←M q . por q . p←notnot q . In the next section, we provide more examples to demonstrate the ensuing effects of the new semantics. 4 Comparison with previous language version The modal reduct in Gelfond's 1994 definition [ 15 ] (referred to henceforth as ES1994 ) simply removed all satisfied subjective literals from the bodies of rules and removed any rules containing unsatisfied subjective literals. ES1994 also allowed empty world views and world views with an inconsistent belief set. The syntax of ES2014 differs from ES1994 by changing ¬K ℓ and ¬Mℓ to not K ℓ and not Mℓ , respectively. The table below shows world views and respective modal reducts of various example programs for ES1994 and ES2014. Among the differences given between ES1994 and ES2014 semantics is that a world view is now required to be non-empty and composed of consistent sets of literals. It may be viewed that since the definition of a world view was dependent on ASP semantics that the consistency requirement for belief sets in a world view came indirectly as a result of the evolution of ASP semantics. (The non-empty world view requirement was first proposed by Truszczyński in [ 24 ].) 5 An algorithm for finding world views of an ES2014 program We propose an algorithm that takes an epistemic logic program as its input and outputs the world views (if any) of the program. We first generate candidate solutions by creating an ASP program from the input that emulates all possible modal reducts with respect to combinations of truth assignments to distinct ground subjective literals of the input program. The answer sets of the ASP program are then computed and grouped into candidate world views based on associated subjective literal truth values. Finally, candidates are verified as world views if all associated subjective literals are satisfied. The algorithm requires all rules to be safe . We use the following definition: D efinition 5 [ Safe Rule ] A rule is said to be safe if for each variable that occurs in the rule there is at least one occurrence of the variable in a positive literal of the body. For ease of presentation, k_ℓ , k0_ℓ , k1_ℓ , m_ℓ , m0_ℓ , m1_ℓ , or d_ℓ will be used to denote the fresh atom obtained from literal ℓ by prefixing it with k_ , k0_ , k1_ , m_ , m0_ , m1_ , or d_ (respectively), and with substitution of 0 for ¬ within the fresh atom implicitly understood if ℓ is a classically-negated atom. For example, if ℓ=p(X) then k0_ℓ=k0_p(X) , but if ℓ=¬p(X) then k0_ℓ=k0_0p(X) . An atom of the form k_ℓ , k0_ℓ , or k1_ℓ will be referred to as a k-atom , whereas an atom of the form m_ℓ , m0_ℓ , or m1_ℓ will be referred to as an m-atom . By a k-/m-literal we mean a k-/m-atom or its negation. If W is a collection of sets of literals, we denote by W∖KM the collection of sets from W with all k-/m-literals removed. An atom of the form d_ℓ is used strictly as a device to achieve proper grounding of rules associated with a subjective literal of the form K ℓ , ensuring rule safety when ℓ contains a variable. After grounding, atoms of the form d_ℓ are removed. Likewise, rbody+(R) —denoting the comma-delimited list of relevant positive literals from the body of rule R when R contains a subjective literal containing a variable—is used to achieve proper grounding and safety of added rules. In the following algorithm, k1_ℓ is to be intuitively understood as ‘ K ℓ is true ’ and k0_ℓ as ‘ K ℓ is false .’ Respectively, m1_ℓ ( m0_ℓ ) corresponds to ‘ Mℓ is true ( false )’. Algorithm 1. [ ELPsolver : Finds the World Views of an Epistemic Logic Program] (1) Create ASP program Π′ from the rules of Π . Rules without subjective literals are left unchanged. For each rule R containing a subjective literal, replace the subjective literal and add new rules per the following table. (2) Compute (the ground version of Π′ ) with an appropriate ASP grounder, then create from by removing each rule with an atom of the form d_ℓ in its head along with every occurrence of d_ℓ from the rest of the program and removing the rbody+(R) literals from the bodies of rules added in step 1, and then compute the answer sets of with an appropriate ASP solver. Note: If there are no answer sets (i.e. is inconsistent), then Π has no world view. If Π has no subjective literals and is consistent, then the collection of answer sets of is the only world view of Π . In either case, the algorithm is finished and no further steps are performed. (3) Group the answer sets of by common k-/m-atoms of the form k0_ℓ , k1_ℓ , m0_ℓ , and m1_ℓ . Each group W of answer sets is said to represent (i.e. if its k-/m-literals are removed) a candidate world view of Π . (4) For each W representing a candidate world view of Π , check that the following conditions are met for all its k-/m-atoms: (a) if k1_ℓ is in the sets of W , then ℓ is in every set of W ; (b) if k0_ℓ is in the sets of W , then ℓ is missing from at least one set of W ; (c) if m1_ℓ is in the sets of W , then ℓ is in at least one set of W ; and (d) if m0_ℓ is in the sets of W , then ℓ is missing from every set of W . W∖KM is a world view of Π if conditions (a)–(d) above are met. T heorem 1 [ The Algorithm Is Sound ] 3 Given as input an epistemic logic program Π with only safe rules and an equivalent finite ground representation, if W is output by Algorithm 1 then W is a world view of Π . T heorem 2 [ The Algorithm Is Complete ] Given as input an epistemic logic program Π with only safe rules and an equivalent finite ground representation, if W is a world view of Π then W is output by Algorithm 1. 6 Epistemic logic programs with sorts Under the original semantics of both ASP and Epistemic Specifications, the signature of a program is typically implied by the symbols that occur, with universal domain for all predicate parameters. Additionally, a rule containing a variable is considered a shorthand for all its ground instantiations. Thus, for the following program the last rule is simply a shorthand for the rules p(a) . p(b) . q(c) . r(X)←p(X) . r(a)←p(a) . r(b)←p(b) . r(c)←p(c) . Now consider the same initial program, but with a sorted signature explicitly given that specifies the domain for each predicate parameter per the following table: Note that the parameter domains for p and r differ. One might ask whether the last rule of the program is still valid, and if so, what the ground instantiations should be. We use the same convention as in [ 4 ] where the ground instantiations of a rule with variables are only those where each variable instantiation maintains predicate parameter values within their declared domains. Thus, the last rule is now a shorthand for only one rule since any other instantiation for the variable X would not result in values for the parameters of p and r that would be in both of their respective domains. PREDICATE SYMBOL PARAMETER DOMAIN p {a,b} q {c} r {a,c} PREDICATE SYMBOL PARAMETER DOMAIN p {a,b} q {c} r {a,c} View Large PREDICATE SYMBOL PARAMETER DOMAIN p {a,b} q {c} r {a,c} PREDICATE SYMBOL PARAMETER DOMAIN p {a,b} q {c} r {a,c} View Large r(a)←p(a) . 6.1 Syntax of an ELPS Syntactically, the difference between an epistemic logic program and an epistemic logic program with sorts is that the latter includes explicit sort definitions and predicate declarations in addition to the program rules. A sort is a (non-empty) set of ground terms intended for use in defining the domain of predicate parameters. Various means for defining sorts have been proposed (e.g. see [ 28 ]). In this article, we use the same framework as that used in SPARC [ 3 , 4 ] which uses a preface before the program rules to define the sorts and provide predicate declarations. The first section of the framework begins with the keyword sorts followed by sort definitions of the form where sort_name begins with the symbol # followed by a unique identifier starting with a lower-case letter, and sort_expression is one of the following forms where n>0 , each t is a ground term, f is a function symbol, and ⊗ denotes a set operator (union, intersection, or difference) where the set operations result in a non-empty set. sort_name=sort_expression , {t1,…,tn} f(sort_name1,…,sort_namen) sort_name1⊗⋯⊗sort_namen , The next section begins with the keyword predicates followed by predicate declarations of the form where n≥0 . Every predicate in the program must be declared uniquely in this section before being used in a program rule. In addition to explicitly providing the domain for each parameter of a predicate, this allows for static type-checking of rules to discover misspellings and arity mismatches. predicate_name(sort_name1,…,sort_namen) , The final section begins with the keyword rules followed by the rules of the program. Each rule is of the form given in Section 3.1 for epistemic logic program rules. 6.2 Semantics For a program to be considered valid, every occurrence of a ground atom in a program rule must match its predicate declaration with respect to predicate name, arity, and parameter values within the sort domain. Rules with variables are instantiated as previously described. In short, for a valid ELPS, the net effect of the sorted signature is to restrict the grounding of its rules. The grounding of an ELPS results in a set of ground rules; hence, the semantics is the same as that presented in Section 3.2 . 6.3 Example programs To illustrate the syntax and semantics of an ELPS, we provide several example programs with their ground versions, candidate world views, modal reducts answer sets of modal reducts, and world views. E xample 5 View Large View Large E xample 6 View Large View Large E xample 7 View Large View Large 7 Algorithm for finding world views of an ELPS The algorithm proposed for solving an ELPS is the same as that described in Section 5 except that step 1 is replaced by the one given on the following page, and, as neither d_l nor rbody+(R) literals are added, step 2 need only compute the answer sets of the ASP program created in step 1. Additionally, sort atoms added in step 1 should be removed from the final results. As proofs of Theorems 1 and 2 are based on the ground program produced in steps 1 and 2 of the previous algorithm, the proofs also hold for the ground version of the program produced by step 1 of this algorithm. 8 Implementation and test results The algorithm was implemented (see [ 1 ]) using the Java programming language, working off a previous implementation of SPARC. This made coding fairly easy since the same framework for a sorted signature is shared by both ELPS and SPARC. The solver is a loosely coupled system that uses Potassco's clingo for finding the answer sets of the ASP program created in step 1 of the algorithm. The choice of clingo was appropriate due to its excellent performance and direct support for doubly default-negated literals (i.e. nested expressions of the form notnot   ℓ ). Other solvers could be used with (possibly) minor modifications made for differences in syntax/supported features. Test results showed that performance is reasonably good—even for this loosely coupled proof-of-concept solver—provided the number of ground subjective literals is small. It is noted, however, that the number of candidate world views generated and checked is exponential in the number of distinct ground subjective literals using the algorithm presented. For many of the test programs we ran, the independence of various groups of subjective literals was clear, hinting at a possible approach for improving the algorithm for certain classes of programs. Nonetheless, the algorithm employed shows that computation of world views under the semantics given is certainly acceptable for a number of ELPS programs. The following table provides empirical results for the ELPS solver, along with comparative results for ESmodels [ 23 ] with equivalent input programs. Programs named eligibleN were encodings of the scholarship eligibility example with N different students. Programs named yaleN were encodings of various Yale Shooting Problems using the epistemic conformant planner and a horizon of N . Tests were run on an Intel i7 820QM @ 1.73 GHz platform with 4 GB RAM running 64-bit Windows 7 operating system. The run time is given in seconds (s), minutes (m), or hours (h) as appropriate, and represents the best time observed. 4 A dash (–) indicates no solution was output. Program ELPS ESmodels Program ELPS ESmodels eligible1 <1 s <1 s yale1 <1 s 6 s eligible2 <1 s <1 s yale2 <1 s 1 m 50 s eligible4 <1 s <1 s yale3 2 s 35 m eligible6 <1 s <1 s yale4 5 s – eligible8 20 h 27 m – yale5 4 h 23 m – Program ELPS ESmodels Program ELPS ESmodels eligible1 <1 s <1 s yale1 <1 s 6 s eligible2 <1 s <1 s yale2 <1 s 1 m 50 s eligible4 <1 s <1 s yale3 2 s 35 m eligible6 <1 s <1 s yale4 5 s – eligible8 20 h 27 m – yale5 4 h 23 m – View Large Program ELPS ESmodels Program ELPS ESmodels eligible1 <1 s <1 s yale1 <1 s 6 s eligible2 <1 s <1 s yale2 <1 s 1 m 50 s eligible4 <1 s <1 s yale3 2 s 35 m eligible6 <1 s <1 s yale4 5 s – eligible8 20 h 27 m – yale5 4 h 23 m – Program ELPS ESmodels Program ELPS ESmodels eligible1 <1 s <1 s yale1 <1 s 6 s eligible2 <1 s <1 s yale2 <1 s 1 m 50 s eligible4 <1 s <1 s yale3 2 s 35 m eligible6 <1 s <1 s yale4 5 s – eligible8 20 h 27 m – yale5 4 h 23 m – View Large 9 Applications (conformant planning) There are many potential applications of the language of Epistemic Specifications in domains with incomplete information. These include: In this section we briefly discuss one of these possibilities, that of conformant planning. Conformant planning [ 22 ] is the problem of finding a plan (a sequence of actions) that is guaranteed to achieve a goal in spite of incomplete knowledge about the initial state. Research on the use of ASP for developing conformant planners has been done in the past (see, for instance, [ 25 ] and [ 11 ]). In what follows, we outline an alternative approach that uses the language of Epistemic Specifications. A thorough study of this approach will be presented elsewhere. conformant planning; autonomous robot control; policy management; assisting legal professionals (e.g. logical analysis of criminal evidence); and any application for which ASP is currently used but where the additional power of Epistemic Specifications might be needed due to incomplete information. By a (conformant) planning problem we mean a triple P=〈D,Σ,g〉 which consists of a system description D of an action language AL , a collection of the possible initial states Σ , and a goal g where g is a set of fluent literals. A sequence α of actions is called a solution to P if α is executable in every state of Σ and the execution of α in every such state makes the goal g true. (For more details, see [ 25 ].) For simplicity we assume that our system description D is deterministic, i.e. uncertainty is caused only by incompleteness of information about the initial state. We will be interested in looking for the solutions of the planning problem that have exactly n steps with one action occurring at each step. Constant n is often referred to as the horizon . The proposed approach consists of the following steps: D′ is obtained from D by expanding its signature by a new inertial fluent is_impossible and replacing every impossibility condition impossible a if l1,…,ln by causal law a causes is_impossible if l1,…,ln. The new collection Σ′ of initial states and the new goal are defined as follows: Σ′=def{σ′:σ′=σ∪{¬is_impossible} for every σ∈Σ} g′=defg∪{¬is_impossible} The translation τn of P′ into an ELPS consists of several steps. We use f to denote a fluent atom, l a fluent literal, body a comma-delimited list of fluent literals, and h(body,S) the comma-delimited list of literals of the form holds(f,S) or ¬holds(f,S) for each l that is a member of body where l=f or l=¬f , respectively. S ranges over natural numbers (often called steps ) from 0 to the horizon n . This completes our construction of τn(P′) . (1) A planning problem P=〈D,Σ,g〉 is translated into planning problem P′=〈D′,Σ′,g′〉 such that D′ is a system description of AL that contains no impossibility condition and α is a solution of P iff it is a solution of P′ . (2) Planning problem P′ is then translated into an ELPS τn(P′) (where n is the horizon) such that the world views of τn(P′) correspond to the solutions of P′ having length n . (1) Sorts are given by first having the keyword sorts followed by the sort definitions: #s1={0..n} . for the time steps, #s2={a1,…,ak} . where a1,…,ak is the list of all actions of the domain, and #s3={f1,…,fm} . where f1,…,fm is the list of all fluents in the domain. (2) Predicate declarations are given by having the keyword predicates followed by: holds(#s3,#s1) . occurs((#s2,#s1) . goal(#s1) . success() . (3) The keyword rules followed by the translations of the rest of the domain as given in the steps that follow. (4) Causal laws of D′ are translated into logic programming rules. (a) Each dynamic causal law of the form a causes l if body for which l=f is translated into the rule and, where l=¬f , into the rule (b) Each static causal law (also referred to as a state constraint) of the form l if body for which l=f is translated into the rule and, where l=¬f , into the rule (5) Inertia axioms and awareness axiom are also included in D′ : where F ranges over fluents. (6) Problem dependent relation goal(S) is defined by the rule goal(S)←h(g1′,…,gk′,S). where g1′,…,gk′ is the list of all elements of g′ . (7) The initial situation is defined by the collection of disjunctions of the form where each h is a literal of the form holds(f,0) or ¬holds(f,0) . (8) A collection of rules, called the epistemic conformant planning module , is added: Here each A ranges over actions. Intuitively, the first two rules form the generate part of the program. Note the fact that the first rule can be used as a generator due to the new semantics for modal operator M . (Recall Example 3 .) Used together with the previously defined rules, these two rules allow for the generation of multiple world views. For every such world view W and every step s such that 0≤s