next up previous
Next: Discovery Up: Explanation Based Learning (EBL) Previous: Explanation Based Learning (EBL)

EBL example

Goal: To get to Brecon -- a picturesque welsh market town famous for its mountains (beacons) and its Jazz festival.

The training data is:

   near(Cardiff, Brecon),
   airport(Cardiff)

The Domain Knowledge is:

    near(x,y) tex2html_wrap_inline7782 holds(loc(x),s) tex2html_wrap_inline7156 holds(loc(y), result(drive(x,y),s))

   airport(z) tex2html_wrap_inline7156 loc(z), result(fly(z),s)))

In this case operational criterion is: We must express concept definition in pure description language syntax.

Our goal can expressed as follows:

holds(loc(Brecon),s) -- find some situation s for this holds.

We can prove this holds with s defined by:

       result(drive(Cardiff,Brecon), 
                  result(fly(Cardiff), s')))

We can fly to Cardiff and then drive to Brecon.

If we analyse the proof (say with an ATMS). We can learn a few general rules from it.

Since Brecon appears in query and binding we could abstract it to give:

  holds(loc(x),drive(Cardiff,x), 
            result(fly(Cardiff), s')))

but this not quite right - we cannot get everywhere by flying to Cardiff.

Since Brecon appears in the database when we abstract things we must explicitly record the use of the fact:

near(Cardiff,x) tex2html_wrap_inline7156 holds(loc(x),drive(Cardiff,x), result(fly(Cardiff), s')))

This states if x is near Cardiff we can get to it by flying to Cardiff and then driving. We have learnt this general rule.

We could also abstract out Cardiff instead of Brecon to get:

near(Brecon,x) tex2html_wrap_inline7782 airport(x) tex2html_wrap_inline7156 holds(loc(Brecon), result(drive(x,Brecon),
result(fly(x),s')))

This states we can get top Brecon by flying to another nearby airport and driving from there.

We could add airport(Swansea) and get an alternative means of travel plan.

Finally we could actually abstract out both Brecon and Cardiff to get a general plan:

near(x,y) tex2html_wrap_inline7782 airport(y) tex2html_wrap_inline7156 holds(loc(y), result(drive(x,y),result(fly(x),s')))



dave@cs.cf.ac.uk