CSCE 580 Artificial Intelligence Ch.12 [P]: Individuals and Relations Datalog - PowerPoint PPT Presentation

About This Presentation
Title:

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

Description:

A second edition (by Poole and Mackworth) is under development. ... a one-to-one correspondence between the relation instances and the non-negative integers. ... – PowerPoint PPT presentation

Number of Views:40
Avg rating:3.0/5.0
Slides: 28
Provided by: MarcoVa
Learn more at: https://cse.sc.edu
Category:

less

Transcript and Presenter's Notes

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


1
CSCE 580Artificial IntelligenceCh.12 P
Individuals and RelationsDatalog
  • Fall 2009
  • Marco Valtorta
  • mgv_at_cse.sc.edu

2
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

3
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.

4
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

5
Selection
  • Selection
  • cs_course(X) lt- department(X, comp_science).
  • math_course(X) lt- department(X, math).

6
Union
  • Union multiple rules with the same head
  • cs_or_math_course(X) lt- cs_course(X).
  • cs_or_math_course(X) lt- math_course(X).
  • In the example, the cs_or_math_course relation is
    the union of the two relations defined by the
    rules above.

7
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!

8
Projection
  • When there are variables in the body of a clause
    that dont appear in the head, you say that the
    relation is projected onto the variables in the
    head, e.g.
  • in_dept(S,D) lt- 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.

9
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.

10
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

11
Selection
  • Selection
  • cs_course(X) lt- department(X, comp_science).
  • math_course(X) lt- department(X, math).

12
Union
  • Union multiple rules with the same head
  • cs_or_math_course(X) lt- cs_course(X).
  • cs_or_math_course(X) lt- math_course(X).
  • In the example, the cs_or_math_course relation is
    the union of the two relations defined by the
    rules above.

13
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!

14
Projection
  • When there are variables in the body of a clause
    that dont appear in the head, you say that the
    relation is projected onto the variables in the
    head, e.g.
  • in_dept(S,D) lt- 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.

15
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.

16
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 n1.
  • live number of steps away from the
    outside---live(outside) is the base case.

17
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

18
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.

19
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.

20
Case Study University Rules
  • univ.pl
  • DB of student records
  • DB of relations about the university
  • Rules about satisfying degree requirements.

21
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)

22
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

23
A Rule
  • satisfied_degree_requirements(St,Dept) lt-
  • covers_core_courses(St,Dept)
  • dept(Dept, Fac)
  • satisfies_faculty_req(St, Fac)
  • fulfilled_electives(St, Dept)
  • enough_units(St, Dept).

24
More Rules
  • Covers_core_courses(St, Dept) lt-
  • core_courses(dept, CC, MinPass)
  • passed_each(CC, St, MinPass)

25
More Rules
  • passed(St, C, MinPass) lt-
  • grade(St, C, Gr)
  • Gr gt MinPass.
  • A recursive rule that traverses a list.
  • passed_each(, S, M).
  • passed_each(CR, St, MinPass) lt-
  • passed(St, C, MinPass)
  • passed_each(R, St, MinPass).

26
More Rules
  • passed_one(CL, St, MinPass) lt-
  • member(C, CL)
  • passed(St, C, MinPass).

27
A KB about rooms (Fig.12.2P)
Write a Comment
User Comments (0)
About PowerShow.com