Using Definite Knowledge
70 likes | 98 Vues
Use Poole et al.'s definitive knowledge notes for structuring university rules in a database with recursive logic rules. Explore satisfying degree requirements, core courses, and elective fulfillment. Build upon the examples of representing regulatory knowledge to ensure students meet necessary criteria for graduation.
Using Definite Knowledge
E N D
Presentation Transcript
Using Definite Knowledge Notes for Ch.3 of Poole et al. CSCE 580 Marco Valtorta
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).
More Rules • passed_one(CL, St, MinPass) <- member(C, CL) & passed(St, C, MinPass).