Loading in 2 Seconds...

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

Loading in 2 Seconds...

- By
**ceri** - Follow User

- 132 Views
- Uploaded on

Download Presentation
## PowerPoint Slideshow about ' CSCE 580 Artificial Intelligence Ch.12 [P]: Individuals and Relations Datalog' - ceri

**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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript

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

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.

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

Selection

- Selection:
- cs_course(X) <- department(X, comp_science).
- math_course(X) <- department(X, math).

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.

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!

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.

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.

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

Selection

- Selection:
- cs_course(X) <- department(X, comp_science).
- math_course(X) <- department(X, math).

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.

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!

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.

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

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.

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

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.

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.

Case Study: University Rules

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

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)

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

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

More Rules

- Covers_core_courses(St, Dept) <-

core_courses(dept, CC, MinPass) &

passed_each(CC, St, MinPass)

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

Download Presentation

Connecting to Server..