140 likes | 312 Views
Default Logic. Proposed by Ray Reiter (1980) go_Work → use_car Does not admit exceptions! Default rules go_Work : use_car use_car. More examples. anniversary(X) friend(X) : give_gift(X) give_gift(X) friend(X,Y) friend(Y,Z) : friend (X,Z) friend(X,Z) accused(X) : innocent(X)
E N D
Default Logic • Proposed by Ray Reiter (1980) go_Work → use_car • Does not admit exceptions! • Default rules go_Work : use_car use_car
More examples anniversary(X) friend(X) : give_gift(X) give_gift(X) friend(X,Y) friend(Y,Z) : friend (X,Z) friend(X,Z) accused(X) : innocent(X) innocent(X)
Default Logic Syntaxe • A theory is a pair (W,D), where: • W is a set of 1st order formulas • D is a set of default rules of the form: j : Y1, … ,Yn g • j (pre-requisites), Yi (justifications) and g (conclusion) are 1st order formulas
The issue of semantics • If j is true (where?) and all Yi are consistent (with what?) then g becomes true (becomes? Wasn’t it before?) • Conclusions must: • be a closed set • contain W • apply the rules of D maximally, without becoming unsupported
Default extensions • G(S) is the smallest set such that: • W G(S) • Th(G(S)) = G(S) • A:Bi/C D, A G(S) and Bi S → C G(S) • E is an extension of (W,D) iff E = G(E)
Quasi-inductive definition • E is an extension iff E = i Ei where: • E0 = W • Ei+1 = Th(Ei) U {C: A:Bj/C D, A Ei, Bj E}
Some properties • (W,D) has an inconsistent extension iff W is inconsistent • If an inconsistent extension exists, it is unique • If W Just Conc is inconsistent , then there is only a single extension • If E is an extension of (W,D), then it is also an extension of (W E’,D) for any E’ E
Operational semantics • The computation of an extension can be reduced to finding a rule application order (without repetitions). • P = (d1,d2,...) and P[k] is the initial segment of P with k elements • In(P) = Th(W {conc(d) | dP}) • The conclusions after rules in P are applied • Out(P) = {Y | Y just(d) and dP } • The formulas which may not become true, after application of rules in P
Operational semantics (cont’d) • d is applicable in P iff pre(d) In(P) and Y In(P) • P is a process iff dkP, dk is applicable in P[k-1] • A process P is: • successful iff In(P) ∩ Out(P) = {}. • Otherwise it is failed. • closed iff d D applicable in P→dP • Theorem: E is an extension iff there exists P, successful and closed, such that In(P) = E
Computing extensions (Antoniou page 39) extension(W,D,E) :- process(D,[],W,[],_,E,_). process(D,Pcur,InCur,OutCur,P,In,Out) :- getNewDefault(default(A,B,C),D,Pcur), prove(InCur,[A]), not prove(InCur,[~B]), process(D,[default(A,B,C)|Pcur],[C|InCur],[~B|OutCur],P,In,Out). process(D,P,In,Out,P,In,Out) :- closed(D,P,In), successful(In,Out). closed(D,P,In) :- not (getNewDefault(default(A,B,C),D,P), prove(In,[A]), not prove(In,[~B]) ). successful(In,Out) :- not ( member(B,Out), member(B,In) ). getNewDefault(Def,D,P) :- member(Def,D), not member(Def,P).
Normal theories • Every rule has its justification identical to its conclusion • Normal theories always have extensions • If D grows, then the extensions grow (semi-monotonicity) • They are not good for everything: • John is a recent graduate • Normally recent graduates are adult • Normally adults, not recently graduated, have a job (this cannot be coded with a normal rule!)
Problems • No guarantee of extension existence • Deficiencies in reasoning by cases • D = {italian:wine/wine french:wine/wine} • W ={italian v french} • No guarantee of consistency among justifications. • D = {:usable(X), broken(X)/usable(X)} • W ={broken(right) v broken(left)} • Non cummulativity • D = {:p/p, pvq:p/p} • derives p v q, but after adding p v q no longer does so