csce 580 artificial intelligence ch.12 [p]: individuals and relations datalog

27
UNIVERSITY OF SOUTH CAROLINA Department of Computer Science and Engineering CSCE 580 Artificial Intelligence Ch.12 [P]: Individuals and Relations Datalog Fall 2009 Marco Valtorta [email protected]

Upload: ceri

Post on 24-Jan-2016

38 views

Category:

Documents


1 download

DESCRIPTION

CSCE 580 Artificial Intelligence Ch.12 [P]: Individuals and Relations Datalog. Fall 2009 Marco Valtorta [email protected]. Acknowledgment. The slides are based on [AIMA] and other sources, including other fine textbooks - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: CSCE 580 Artificial Intelligence Ch.12 [P]: Individuals and Relations Datalog

UNIVERSITY OF SOUTH CAROLINAUNIVERSITY OF SOUTH CAROLINADepartment of Computer Science and

Engineering

Department of Computer Science and Engineering

CSCE 580Artificial Intelligence

Ch.12 [P]: Individuals and Relations

DatalogFall 2009

Marco [email protected]

Page 2: CSCE 580 Artificial Intelligence Ch.12 [P]: Individuals and Relations Datalog

UNIVERSITY OF SOUTH CAROLINAUNIVERSITY OF SOUTH CAROLINADepartment of Computer Science and

Engineering

Department of Computer Science and Engineering

Acknowledgment• The slides are based on [AIMA] and other

sources, including other fine textbooks• David Poole, Alan Mackworth, and Randy Goebel.

Computational Intelligence: A Logical Approach. Oxford, 1998– A second edition (by Poole and Mackworth) is

under development. Dr. Poole allowed us to use a draft of it in this course

• Ivan Bratko. Prolog Programming for Artificial Intelligence, Third Edition. Addison-Wesley, 2001– The fourth edition is under development

• George F. Luger. Artificial Intelligence: Structures and Strategies for Complex Problem Solving, Sixth Edition. Addison-Welsey, 2009

Page 3: CSCE 580 Artificial Intelligence Ch.12 [P]: Individuals and Relations Datalog

UNIVERSITY OF SOUTH CAROLINAUNIVERSITY OF SOUTH CAROLINADepartment of Computer Science and

Engineering

Department of Computer Science and Engineering

Databases and Recursion

• Datalog is a subset of Prolog that can be used to define relational algebra

• Datalog is more powerful than relational algebra:– It has variables– It allows recursive definitions of relations– Therefore, e.g., datalog allows the definition

of the transitive closure of a relation.• Datalog has no function symbols: it is a

subset of definite clause logic.

Page 4: CSCE 580 Artificial Intelligence Ch.12 [P]: Individuals and Relations Datalog

UNIVERSITY OF SOUTH CAROLINAUNIVERSITY OF SOUTH CAROLINADepartment of Computer Science and

Engineering

Department of Computer Science and Engineering

Relational DB Operations

• A relational db is a kb of ground facts• datalog rules can define relational algebra

database operations• The examples refer to the database in

course.pl

Page 5: CSCE 580 Artificial Intelligence Ch.12 [P]: Individuals and Relations Datalog

UNIVERSITY OF SOUTH CAROLINAUNIVERSITY OF SOUTH CAROLINADepartment of Computer Science and

Engineering

Department of Computer Science and Engineering

Selection

• Selection:– cs_course(X) <- department(X,

comp_science).– math_course(X) <- department(X, math).

Page 6: CSCE 580 Artificial Intelligence Ch.12 [P]: Individuals and Relations Datalog

UNIVERSITY OF SOUTH CAROLINAUNIVERSITY OF SOUTH CAROLINADepartment of Computer Science and

Engineering

Department of Computer Science and Engineering

Union

• Union: multiple rules with the same head– cs_or_math_course(X) <- cs_course(X).– cs_or_math_course(X) <- math_course(X).

• In the example, the cs_or_math_course relation is the union of the two relations defined by the rules above.

Page 7: CSCE 580 Artificial Intelligence Ch.12 [P]: Individuals and Relations Datalog

UNIVERSITY OF SOUTH CAROLINAUNIVERSITY OF SOUTH CAROLINADepartment of Computer Science and

Engineering

Department of Computer Science and Engineering

Join

• Join: the join is on the shared variables, e.g.:– ?enrolled(S,C) & department(C,D). – One must find instances of the relations

such that the values assigned to the same variables unify• in a DB, unification simply means that the same

variables have the same value!

Page 8: CSCE 580 Artificial Intelligence Ch.12 [P]: Individuals and Relations Datalog

UNIVERSITY OF SOUTH CAROLINAUNIVERSITY OF SOUTH CAROLINADepartment of Computer Science and

Engineering

Department of Computer Science and Engineering

Projection

• When there are variables in the body of a clause that don’t appear in the head, you say that the relation is projected onto the variables in the head, e.g.:– in_dept(S,D) <- enrolled(S,C) &

department(C,D).• In the example, the relation in_dept is the

projection of the join of the enrolled and department relations.

Page 9: CSCE 580 Artificial Intelligence Ch.12 [P]: Individuals and Relations Datalog

UNIVERSITY OF SOUTH CAROLINAUNIVERSITY OF SOUTH CAROLINADepartment of Computer Science and

Engineering

Department of Computer Science and Engineering

Databases and Recursion

• Datalog can be used to define relational algebra• Datalog is more powerful than relational algebra:

– It has variables– It allows recursive definitions of relations– Therefore, e.g., datalog allows the definition of

the transitive closure of a relation.• Datalog has no function symbols: it is a subset of

definite clause logic.

Page 10: CSCE 580 Artificial Intelligence Ch.12 [P]: Individuals and Relations Datalog

UNIVERSITY OF SOUTH CAROLINAUNIVERSITY OF SOUTH CAROLINADepartment of Computer Science and

Engineering

Department of Computer Science and Engineering

Relational DB Operations

• A relational db is a kb of ground facts• datalog rules can define relational algebra

database operations• The examples refer to the database in

course.pl

Page 11: CSCE 580 Artificial Intelligence Ch.12 [P]: Individuals and Relations Datalog

UNIVERSITY OF SOUTH CAROLINAUNIVERSITY OF SOUTH CAROLINADepartment of Computer Science and

Engineering

Department of Computer Science and Engineering

Selection

• Selection:– cs_course(X) <- department(X,

comp_science).– math_course(X) <- department(X, math).

Page 12: CSCE 580 Artificial Intelligence Ch.12 [P]: Individuals and Relations Datalog

UNIVERSITY OF SOUTH CAROLINAUNIVERSITY OF SOUTH CAROLINADepartment of Computer Science and

Engineering

Department of Computer Science and Engineering

Union

• Union: multiple rules with the same head– cs_or_math_course(X) <- cs_course(X).– cs_or_math_course(X) <- math_course(X).

• In the example, the cs_or_math_course relation is the union of the two relations defined by the rules above.

Page 13: CSCE 580 Artificial Intelligence Ch.12 [P]: Individuals and Relations Datalog

UNIVERSITY OF SOUTH CAROLINAUNIVERSITY OF SOUTH CAROLINADepartment of Computer Science and

Engineering

Department of Computer Science and Engineering

Join

• Join: the join is on the shared variables, e.g.:– ?enrolled(S,C) & department(C,D). – One must find instances of the relations

such that the values assigned to the same variables unify• in a DB, unification simply means that the same

variables have the same value!

Page 14: CSCE 580 Artificial Intelligence Ch.12 [P]: Individuals and Relations Datalog

UNIVERSITY OF SOUTH CAROLINAUNIVERSITY OF SOUTH CAROLINADepartment of Computer Science and

Engineering

Department of Computer Science and Engineering

Projection

• When there are variables in the body of a clause that don’t appear in the head, you say that the relation is projected onto the variables in the head, e.g.:– in_dept(S,D) <- enrolled(S,C) &

department(C,D).• In the example, the relation in_dept is the

projection of the join of the enrolled and department relations.

Page 15: CSCE 580 Artificial Intelligence Ch.12 [P]: Individuals and Relations Datalog

UNIVERSITY OF SOUTH CAROLINAUNIVERSITY OF SOUTH CAROLINADepartment of Computer Science and

Engineering

Department of Computer Science and Engineering

Recursion

• Define a predicate in terms of simpler instances of itself– Simpler means: easier to prove

• Examples:– west in west.pl– live in elect.pl

• “Recursion is a way to view mathematical induction top-down.”

Page 16: CSCE 580 Artificial Intelligence Ch.12 [P]: Individuals and Relations Datalog

UNIVERSITY OF SOUTH CAROLINAUNIVERSITY OF SOUTH CAROLINADepartment of Computer Science and

Engineering

Department of Computer Science and Engineering

Well-founded Ordering

• Each relation is defined in terms of instances that are lower in a well-founded ordering, a one-to-one correspondence between the relation instances and the non-negative integers.

• Examples:– west: induction on the number of doors to the

west---imm_west is the base case, with n=1.– live: number of steps away from the outside---

live(outside) is the base case.

Page 17: CSCE 580 Artificial Intelligence Ch.12 [P]: Individuals and Relations Datalog

UNIVERSITY OF SOUTH CAROLINAUNIVERSITY OF SOUTH CAROLINADepartment of Computer Science and

Engineering

Department of Computer Science and Engineering

Verification of Logic Programs

• Verifiability of logic programs is the prime motivation behind using semantics!

• If g is false in the intended interpretation and g is proved from the KB,– Find the clause used to prove g– If some atom in the body of the clause is

false in the intended interpretation, then debug it

– Else return the clause as the buggy clause instance

Page 18: CSCE 580 Artificial Intelligence Ch.12 [P]: Individuals and Relations Datalog

UNIVERSITY OF SOUTH CAROLINAUNIVERSITY OF SOUTH CAROLINADepartment of Computer Science and

Engineering

Department of Computer Science and Engineering

Verifiability II

• Also need to show that all cases are covered: if an instance of a predicate is true in the intended interpretation, then one of the clauses is applicable to prove the predicate.

• Also need to show termination---this is in general impossible, due to semidicidability results, but it is possible in many practical situations.

Page 19: CSCE 580 Artificial Intelligence Ch.12 [P]: Individuals and Relations Datalog

UNIVERSITY OF SOUTH CAROLINAUNIVERSITY OF SOUTH CAROLINADepartment of Computer Science and

Engineering

Department of Computer Science and Engineering

Limitations

• No notion of complete knowledge!– Cannot conclude that something is

false.– Cannot conclude something from lack

of knowledge. Example:• The relation empty_course(X) with the

obvious intended interpretation cannot be defined from enrolled(S,C) relation.

• The Closed World Assumption (CWA) allows reasoning from lack of knowledge.

Page 20: CSCE 580 Artificial Intelligence Ch.12 [P]: Individuals and Relations Datalog

UNIVERSITY OF SOUTH CAROLINAUNIVERSITY OF SOUTH CAROLINADepartment of Computer Science and

Engineering

Department of Computer Science and Engineering

Case Study: University Rules

• univ.pl• DB of student records• DB of relations about the university• Rules about satisfying degree

requirements.

Page 21: CSCE 580 Artificial Intelligence Ch.12 [P]: Individuals and Relations Datalog

UNIVERSITY OF SOUTH CAROLINAUNIVERSITY OF SOUTH CAROLINADepartment of Computer Science and

Engineering

Department of Computer Science and Engineering

Case Study: University Rules

• This is an example of representing regulatory knowledge.– (Another great example: Sergot, M.J. et

al., “The British Nationality Act as a Logic Program.” CACM, 29, 5 (may 1986), 370-386.)

• DB of relations about the university (univ.pl)• Rules about satisfying degree requirements

(univ.pl)• Lists are used (lists.pl)

Page 22: CSCE 580 Artificial Intelligence Ch.12 [P]: Individuals and Relations Datalog

UNIVERSITY OF SOUTH CAROLINAUNIVERSITY OF SOUTH CAROLINADepartment of Computer Science and

Engineering

Department of Computer Science and Engineering

Some facts

• grade(St, Course, Mark)• dept(Dept,Fac)

– We would say College, not Faculty• course(Course, Dept, Level)• core_courses(Dept,CC, MinPass)

– CC is a list

Page 23: CSCE 580 Artificial Intelligence Ch.12 [P]: Individuals and Relations Datalog

UNIVERSITY OF SOUTH CAROLINAUNIVERSITY OF SOUTH CAROLINADepartment of Computer Science and

Engineering

Department of Computer Science and Engineering

A Rule

• satisfied_degree_requirements(St,Dept) <- covers_core_courses(St,Dept) & dept(Dept, Fac) & satisfies_faculty_req(St, Fac) & fulfilled_electives(St, Dept) & enough_units(St, Dept).

Page 24: CSCE 580 Artificial Intelligence Ch.12 [P]: Individuals and Relations Datalog

UNIVERSITY OF SOUTH CAROLINAUNIVERSITY OF SOUTH CAROLINADepartment of Computer Science and

Engineering

Department of Computer Science and Engineering

More Rules

• Covers_core_courses(St, Dept) <- core_courses(dept, CC, MinPass) & passed_each(CC, St, MinPass)

Page 25: CSCE 580 Artificial Intelligence Ch.12 [P]: Individuals and Relations Datalog

UNIVERSITY OF SOUTH CAROLINAUNIVERSITY OF SOUTH CAROLINADepartment of Computer Science and

Engineering

Department of Computer Science and Engineering

More Rules

• passed(St, C, MinPass) <- grade(St, C, Gr) & Gr >= MinPass.

• A recursive rule that traverses a list.• passed_each([], S, M).• passed_each([C|R], St, MinPass) <-

passed(St, C, MinPass) & passed_each(R, St, MinPass).

Page 26: CSCE 580 Artificial Intelligence Ch.12 [P]: Individuals and Relations Datalog

UNIVERSITY OF SOUTH CAROLINAUNIVERSITY OF SOUTH CAROLINADepartment of Computer Science and

Engineering

Department of Computer Science and Engineering

More Rules

• passed_one(CL, St, MinPass) <-member(C, CL) &passed(St, C, MinPass).

Page 27: CSCE 580 Artificial Intelligence Ch.12 [P]: Individuals and Relations Datalog

UNIVERSITY OF SOUTH CAROLINAUNIVERSITY OF SOUTH CAROLINADepartment of Computer Science and

Engineering

Department of Computer Science and Engineering

A KB about rooms (Fig.12.2[P])