250 likes | 399 Views
DR-Prolog : A System for Defeasible Reasoning with Rules and Ontologies on the Semantic Web. CS566 – Διαχειριση Γνώσης στο Διαδίκτυο Άνοιξη 20 10. Defeasible Logic: Basic Characteristics. Defeasible logics are rule-based, without disjunction
E N D
DR-Prolog: A System for Defeasible Reasoning with Rules and Ontologies on the Semantic Web CS566 – Διαχειριση Γνώσης στο Διαδίκτυο Άνοιξη 2010
Defeasible Logic: Basic Characteristics • Defeasible logics are rule-based, without disjunction • Classical negation is used in the heads and bodies of rules. • Rules may support conflicting conclusions • The logics are skeptical in the sense that conflicting rules do not fire. Thus consistency is preserved. • Priorities on rules may be used to resolve some conflicts among rules • They have linear computational complexity.
Defeasible Logic – Syntax (1/2) A defeasible theory D is a triple (F,R,>), where F is a finite set of facts, R a finite set of rules, and > a superiority relation on R. There are two kinds of rules (fuller versions of defeasible logics include also defeaters): strict rules, defeasible rules • Strict rules: Ap Whenever the premises are indisputable then so is the conclusion. • penguin(X) bird(X) • Defeasible rules: Ap They can be defeated by contrary evidence. • bird(X) fly(X)
Defeasible Logic – Syntax (2/2) • Superiority relations A superiority relation on R is an acyclic relation > on R. When r1 > r2, then r1 is called superior to r2, and r2 inferior to r1. This expresses that r1 may override r2. • Example: r: bird(X) flies(X) r’: penguin(X) ¬flies(X) r’ > r
DR-Prolog Features DR-Prolog is a rule system for the Web that: • reasons both with classical and non-monotonic rules • handles priorities between rules • reasons with RDF data and RDFS/OWL ontologies • translates rule theories into Prolog using the well-founded semantics • complies with the Semantic Web standards (e.g. RuleML) • has low computational complexity
Translation of Defeasible Theories (1/3) • The translation of a defeasible theory D into a logic program P(D) has a certain goal: to show that p is defeasibly provable in D p is included in the Well-Founded Model of P(D) • The translation is based on the use of a metaprogram which simulates the proof theory of defeasible logic
Translation of Defeasible Theories (2/3) For a defeasible theory D = (F,R,>), where F is the set of the facts, R is the set of the rules, and > is the set of the superiority relations in the theory, we add facts according to the following guidelines: • fact(p)for each pF • strict(ri , p,[q1 ,…,qn])for each rule ri: q1,…,qn pR • defeasible(ri ,p,[q1 ,…,qn]) for each rule ri: q1,…,qn pR • sup(r,s) for each pair of rules such that r>s
Prolog Metaprogram (1/3) • Class of rules in a defeasible theory supportive_rule(Name,Head,Body):- strict(Name,Head,Body). supportive_rule(Name,Head,Body):- defeasible(Name,Head,Body). • Definite provability definitely(X):- fact(X). definitely(X):- strict(R,X,[Y1 ,Y2 ,…,Yn]), definitely(Y1), definitely(Y2), …, definitely(Yn).
Prolog Metaprogram (2/3) • Defeasible provability defeasibly(X):- definitely(X). defeasibly(X):- supportive_rule(R, X, [Y1 ,Y2 ,…,Yn]), defeasibly(Y1), defeasibly(Y2), …, defeasibly(Yn), sk_not(overruled(R,X)), sk_not(definitely(¬X)).
Prolog Metaprogram (3/3) • Overruled(R,X) overruled(R,X):- supportive_rule(S, ¬X, [Y1 ,Y2 ,…,Yn]), defeasibly(Y1), defeasibly(Y2), …, defeasibly(Yn), sk_not(defeated(S, ¬X)). • Defeated(S,X) defeated(S,X):- supportive_rule(T, ¬X, [Y1 ,Y2 ,…,Yn]), defeasibly(Y1), defeasibly(Y2), …, defeasibly(Yn), sup(T, S).
An Application Scenario • Adam visits a Web Travel Agency and states his requirements for the trip he plans to make. • Adam wants • to depart from Athens and considers that the hotel at the place of vacation must offer breakfast. • either the existence of a swimming pool at the hotel to relax all the day, or a car equipped with A/C, to make daily excursions at the island. • if there is no parking area at the hotel, the car is useless • if the tickets for the transportation to the island are not included in the travel package, the customer is not willing to accept it
Adam’s Requirements in DL r1: from(X,athens), includesResort(X,Y), breakfast(Y,true), swimmingPool(Y,true) => accept(X). r2: from(X,athens), includesResort(X,Y), breakfast(Y,true),includesService(X,Z),hasVehicle(S,W),vehicleAC(W,true) => accept(X). r3: includesResort(X,Y),parking(Y,false) => ~accept(X). r4: ~includesTransportation(X,Z) => ~accept(X). r1 > r3. r4 > r1. r4 > r2. r3 > r2.
Adam’s Requirements in Prolog defeasible(r1,accept(X),[from(X,athens),includesResort(X,Y),breakfast(Y,true),swimmingPool(Y,true)]). defeasible(r2,accept(X),[from(X,athens),includesResort(X,Y),breakfast(Y,true),includesService(X,Z),hasVehicle(Z,W),vehicleAC(W,true)]). defeasible(r3,~(accept(X)),[includesResort(X,Y),parking(Y,false)]). defeasible(r4,~(accept(X)),[~(includesTransportation(X,Y))]). sup(r1,r3). sup(r4,r1). sup(r4,r2). sup(r3,r2).
Knowledge Base (facts) in Prolog fact(from(‘IT1’,athens)). fact(to(‘IT1’,crete)). fact(includesResort(‘IT1’,’CretaMareRoyal’). fact(breakfast(‘CretaMareRoyal’,true). fact(swimmingPool(‘CretaMareRoyal’,true). fact(includesTransportation(‘IT1’,’Aegean’). fact(from(‘IT2’,athens)). fact(to(‘IT2’,crete)). fact(includesResort(‘IT2’,’Atlantis’). fact(breakfast(‘Atlantis’,true). fact(swimmingPool(‘Atlantis’,false). fact(includesTransportation(‘IT2’,’Aegean’). …
Queries ?- defeasibly(accept(‘IT2’)). no ?- defeasibly(accept(X)). X=IT1; no
DR-Prolog Web Environment Visit: http://www.csd.uoc.gr/~bikakis/DR-Prolog