Aplicación de la Metodología SOA propuesta
6.3. Resultados obtenidos
6.3.2. Resultados por Disciplina, actividad y entregable
It is commonly accepted that the non-stratification of the default not is the fundamental ingredient which allows for the possibility of existence of several models for a program, as we have seen in subsections 6.3.1 and 6.3.2. The non-stratified DNLs (i.e., in a loop — Definition 2.6) of a program can thus be seen as non-deterministically assumable choices. The rules in the program, as well as the particular semantics we wish to assign them, is what constrains which sets of those choices we take as acceptable.
Usually, both the Closed World Assumption (CWA) imposed on default negation not and the ← in rules of Logic Programs reflect some intended ordering in the truth-value assignment to literals. E.g., in a program with just the rule a ← not b we first assign the truth-value false to b because it has no rules (that is what the CWA does), and then, as a consequence of b’s assumed truth-value, we are forced, by virtue of the rule a ← not b, to conclude a’s truth-value must be true; hence, the only intended model is {a}. This is afforded by the syntactic asymmetry of the rule, reflected in the one-way direction of the ←, coupled with the intended semantics of CWA applied to default negation.
If we were to re-write the rule a ← not b in classical logic form we would get a ⇐ ¬b, which, as we know, is equivalent to a ∨ ¬¬b, i.e., a ∨ b. And a ∨ b can be (classically) satisfied by any of the models {a}, {b}, and {a, b}. Clearly, the last of these is not minimal considering the first two alternative models; these are thus the only candidate models. But non-monotonic logic, the formalism used in Normal Logic Programs, is not the same as classical logic, in part precisely because default negation is not the same as classical negation (nor is the ← the same as ⇐). In NLPs we adopt the CWA principle, a fair guideline underlying the rationale of a reasonable semantics for NLPs, which states we always should assume as false atoms with no rules. This principle rejects {b} as a model of program a ← not b.
When rules form loops, the syntactic asymmetry disappears and, as far as the loop alone is concerned, the truth value of the negative literals in the loop are equally as- sumable choices, and that is why they become undefined in the Well-Founded Model of the program. If we had the program P = {a ← not b , b ← not a}, there would be no specific order in which to proceed in the truth-value assignment to literals, as far as a and b are concerned — we could legitimately start by assuming a true and propagate the consequences of that assumption to constraint b’s truth-value to false, or vice-versa. In this case P would have two alternative models: {a} and {b}. If we were to re-write this program in classical logic form we would get P = {a ⇐ ¬b , b ⇐ ¬a}, which we know
would be equivalent to P = {a ∨ ¬¬b , b ∨ ¬¬a}, i.e., P = {a ∨ b , b ∨ a}, or simply P = {a ∨ b}. We already know that a ∨ b has two minimal models: {a} and {b}. It is no
coincidence that both the original program with a loop P = {a ← not b , b ← not a}
and its classical logic representation P = {a ∨ b} have exactly the same minimal models: {a} and {b}. The syntactic symmetry of the loop thus induces a semantic symmetry on the truth values of the literals involved, whether positive or negative.
However, the unidirectional way of the ←s of all the loop’s rules must still be respected as soon as the atom of one given DNL is assumedtrue. Intuitively, assuming true the atom of one DNL of the loop should have the practical effect of “cutting” one of the loop’s arcs thereby rendering the set of rules an asymmetric chain and, consequently, constraining the truth values of the remaining literals (including the DNLs) in the (former) loop. The semantic symmetry of the loop comes from the initial freedom in choosing any one DNL to “break” the loop. However, loops may also depend on other literals with which they form no loop. Those asymmetric dependencies should have the same semantics as the single a ← not b rule case described previously. Of course, because of symmetry, it does not matter whether an atom or its default literal is chosen as true in order to break the loop. However, because heads of rules are atoms only, choosing a DNL true may lead to inconsistency, as in a ← not a, so pragmatically it is better to concentrate on choosing atoms true. But the symmetry lets us see the parallel with the view of DNLs as adoptable assumptions, or as abducibles, whose overall minimality must be required and tested.
So, on the one side, asymmetric dependencies should have the semantics of a single
a ← not b rule; and on the other, the symmetric dependencies (ofany loop over negation,
whether an odd or even one) should subscribe to the semantic symmetry principle of assuming true the atom of any one of the loop’s DNLs and extracting the consequences. Intuitively, a good semantics should cater for both the symmetric and asymmetric de- pendencies as described. Asymmetry in favor of DNLs is desirable in the absence of (remaining) rules for their atoms, and symmetry desirable otherwise.
As seen above, ICs are commonly used as a simple and declarative way of imposing the truthfulness (or falsehood, for that matter) of chosen conjunctions of literals. The
75
correct way of writing ICs is, as recalled in Definition 3.2, by means of rules with ⊥ for head. A “good” semantics should allow this kind of IC and no other. I.e., no other kind of “non-⊥” rule, or combination of such rules, should be diverted to function as IC lest it undermine the declarativity of the knowledge representing rules with a “non-⊥” head, and their use for KR; e.g. loops like a ← not a must solely be usable as means to engender solutions, not as a means to prune them. E.g., a program with the single rule a ← not a should have the model {a}.