1 / 16

Answer Extraction

Answer Extraction. To use resolution to answer questions, for example a query of the form  X C(X), we must keep track of the substitutions made during the refutation process by using an answer literal :

hei
Download Presentation

Answer Extraction

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Answer Extraction To use resolution to answer questions, for example a query of the form X C(X), we must keep track of the substitutions made during the refutation process by using an answer literal: • we add a literal Ans(X,...., Z) to each clause coming from the negation of the query, and perform resolution until only an answer literal is left; the variables X,...,Z are all of those variables that occur in the clause form of the negation of the query. The terms substituted during the proof for the variables in the Ans literal will then be instances of the existentially quantified variables in the query.

  2. Resolution System To answer if KB |= Q: • Convert S = KB U { Q} into S’ = CNF(S) (or INF(S)) convert each formula of S into clauses • Iteratively apply resolution to the clauses in S’ and add the results to S’ either until there are no more resolvents that can be added or until the empty clause is produced.

  3. Refinement Strategies • The procedure described above is inefficient because some resolutions need not be performed at all (are irrelevant). • Refinement strategies disallows certain kinds of resolutions to take place. • Linear resolution with initial set of support

  4. Important Theorems • Let S be a set of wffs and S’ the set of clauses obtained by converting S to CNF (to INF). • In Propositional Logic S and S’ are equivalent; but in FOL they are not equivalent in general • But in both logics we have: S is unsatisfiable iff S’ is unsatisfiable. • Therefore, KB |= Q iff S = KB U { Q}is unsat iff S’ is unsat

  5. Important Theorems Then we can use resolution to check if S’ |- False(empty clause) and if it is use soundness to infer that S’ is unsat, then S is unsat then KB entails Q; else use completeness to infer that S’ is satisfiable, then S is sat then KB does not entail Q.

  6. SLD Resolution • Language: Horn clauses in INF • S - Selection Function - selects the atom in the goal clause to resolve • L- Linear Resolution • D - Definite Clauses The set of clauses S’ (a set of quasi-definite clauses): a set of definite clauses (representing KB), together with one goal clause (representing  Q).

  7. SLD Resolution • Standard selection function (PROLOG): leftmost atom • Let C1 be a goal clause and C2 a definite clause; if there is an atom P1 in C1 and an atom P in the head of C2 such that P1 and P have a mgu , then these two clauses have the following resolvent: P1  ...  Pn1 S1  ...  Sn3 P --------------------------------------------------------- (S1  ...  Sn3  P2...  Pn1)  Remember that the order of atoms is important! resolvent - play DO: body of definite clause then body of the objective clause

  8. PROLOG and AI www.cs.wisc.edu/~fischer/cs538.s00/prolog/prolog.html Computational Intelligence: a logical approach D. Poole, A. Mackworth, R. Goebel Oxford University Press , 1988 Appendix (477-490) - Intro to Prolog

  9. PROLOG • Cut Used to prune part of the search-space and to restrict backtracking. When called, it succeeds immediately; when it is retried (backtracked to), it fails the procedure in which it appears The cut effectively tells Prolog to freeze all the decisions made so far in this predicate. That is, if required to backtrack, it will automatically fail without trying other alternatives.

  10. PROLOG Here is the first test case. It has no cut and will be used for comparison purposes. data(one). data(two). data(three). cut_test_a(X) :- data(X). cut_test_a('last clause').

  11. PROLOG This is the control case, which exhibits the normal behavior. ?- cut_test_a(X), write(X), nl, fail. one two three last clause no

  12. PROLOG Next, we put a cut at the end of the first clause. cut_test_b(X) :- data(X), !. cut_test_b('last clause'). Note that it stops backtracking through both the data/1 subgoal (left), and the cut_test_b parent (above). ?- cut_test_b(X), write(X), nl, fail. one no

  13. PROLOG Next we put a cut in the middle of two subgoals. cut_test_c(X,Y) :- data(X), !, data(Y). cut_test_c('last clause'). Note that the cut inhibits backtracking in the parent cut_test_c and in the goals to the left of (before) the cut (first data/1).

  14. PROLOG The second data/1 to the right of (after) the cut is still free to backtrack. ?- cut_test_c(X,Y), write(X-Y), nl, fail. one - one one - two one - three no alternatives.

  15. SLDNF Resolution • Negation in PROLOG: Negation as (finite) Failure Not P if an SLDNF tree starting from P  finitely fails.

  16. PROLOG Negation as Failure in Prolog (written as “\+”): not(G) :- G, ! Fail. not(G).

More Related