Session 20 - Wednesday, October 3rd


Consider

  1. hoosier(Schafer)
  2. "x hoosier(x) -> likes (x,Basketball)
  3. "x,y  childOf(x,y) AND likes (y, Basketball) -> likes (x,Basketball)
  4. "y  likes(y,Basketball) -> likes(y,March)
  5. daughterOf(Margaret,Schafer)
  6. "x,y daughterOf( x, y )-> childOf( x, y )
  7. hoosier(Wallingford)
  8. hoosier(Letterman)
  9. daughterOf(Sarah,Wallingford)

Universal Instantiation (UI) states that we can infer any sentence obtained by substituting a ground term for the variable

 

  1. likes( Schafer, Basketball ) [mp 1,S1]

  2. childOf( Margaret, Schafer ) [mp 5,S4]

  3. likes( Margaret, Basketball ) [mp 8,7,S2]

  4. likes( Margaret, March ) [mp 9,S4]

What is the problem with UI?  Well, if there are too many ground terms, you end up with too much information...

The fact is, with the 7 ground terms we have above (Schafer, Margaret, Wallingford, Sarah, Letterman, March, Basketball), 2 unary universal rules, and 2 binary universal rules, we end up with

    2x7 + 2x72 = 112 derived rules

An Exercise in Using Logic to Reason Using Forward Chaining

The forward chaining of this is fairly straightforward and is not reproduced here.

An Exercise in Using Logic to Reason Using Backward Chaining

Conclude

likes(Margaret,March)

In 4, bind "y=Margaret"

This is valid if we can prove that likes(Margaret,Basketball) is true.

We could arrive at this by either showing

We are unable to use any rule/fact to show the first part.

 We can arrive at childOf(Margaret,z) if we can show DaugherOf(Margaret,z) (rule #7).

We can arrive at likes(z,Basketball) if we can show hoosier(z) (rule #2)

Rule #1 allows us to bind (z=Schafer).

Rule #5 allows us to bind (z=Schafer).

Thus, we can conclude likes(Schafer,Basketball) and childOf(Margaret,Schafer).

Thus, we can conclude likes(Margaret,Basketball).

Thus, we can conclude likes(Margaret,March).