Suppose we use the following KB (where x, y, z are variables and r1, r2, r3, goal are constants) to determine whether a particular robot can score.
Suppose we use the following KB (where x, y, z are variables and r1, r2, r3, goal are constants) to determine whether a particular robot can score.
(a) Open(x) ∧ HasBall(x) → CanScore(x)
(b) Open(x) ∧ CanAssist(y, x) ∧ HasBall(y) → CanScore(x)
(c) PathClear(x,y) → CanAsist(x,y)
(d) PathClear(x,z) ∧ CanAssist(z,y) → CanAssist(x,y)
(e) PathClear(x,goal) → Open(x)
(f) PathClear(y,x) → PathClear(x,y)
(g) HasBall(r3)
(h) PathClear(r1,goal)
(i) PathClear(r2,r1)
(j) PathClear(r3,r2)
(k) PathClear(r3,goal)
Intuitively, CanScore(x) means x can score on goal. CanAssist(x, y) means there exists some series of passes that can get the ball from x to y. Open(x) means x can shoot on goal directly. And P athClear(x, y) means the path between x and y is clear.
-
Provide a SLD-derivation for the query CanScore(x) in which the answer provided is r1.
-
Provide a SLD-derivation for the query CanScore(x) in which the answer provided is r3.
-
How many “distinct” derivations (i.e., involving different pass sequences) are there for the fact CanScore(r3)?
Step by step
Solved in 2 steps