Default Reasoning
Default Reasoning
Default Reasoning
Default Reasoning
About Caring
f ather(john, sam).
mother(mary, sam).
parent(X, Y ) : − f ather(X, Y ).
parent(X, Y ) : − mother(X, Y ).
cares(X, Y ) : −parent(X, Y ).
p(X) ← c(X),
not d(X),
not ¬p(X).
d is the default’s name (given by the program
designer). d(X) says that default d is not ap-
plicable to X; not ¬p(X) is read as ’p(X) MAY
be true’.
cares(X, Y ) ← parent(X, Y ),
not d1(X, Y ),
not ¬cares(X, Y ).
Let us now compare ’strict’ caring rule (r1)
used in the beginning with the new rule (d1).
Let F be a family knowledge base including
the definition of parents, P1 = F ∪ (r1) and P2 =
F ∪ (d1). You can check that both programs
entail cares(john, sam).
Uncaring John
d(S) ← student(S),
not ¬in(S, cs).
d(S) ← student(S),
not ¬in(S, math).
? af raid(mary, math) No
? af raid(pat, math) No
d(X) ← c0(X).
Incompleteness in Databases
Professor Course
mike pascal
john c
staff lisp
Incompleteness in Databases
The positive information from the table can be
represented by a collection of facts:
Incompleteness in Databases
Now consider a different type of incomplete-
ness in database tables.
Professor Course
mike pascal
john c
{mike,john} prolog
staff lisp