Story 4: I live in Waterloo

Story: I live in Waterloo
Question: Where do I live?
Answer: Waterloo

Note: We'll cheat for the time being by using an overly simplied transformation.

Required knowledge about the world

Waterloo is_a city
"Waterloo" -> Waterloo (noun)

Transformation 1

I live in {city} -> speaker.residence.city = $1

Transformation 2

Where do I live -> speaker.residence.location

But we don't know the value of speaker.residence.location, so we're stuck. This highlights the need to be able to derive facts from other related facts. What we need is a rule that says: "If I know a person's city of residence, then I can derive in a more abstract sense where they live".