class Human(object): pass class FHuman(object): pass class MHuman(object): pass class Action(object): pass class Loves(Action): actor=Human object=Human class Believes(Action): actor=Human object=Action class John(Human): pass class Mary(Human): pass p = DMAP() p.associate(John,["John"]) p.associate(Mary,["Mary"]) p.associate(Loves,[("actor",), "loves",("object",)]) p.associate(Believes,[("actor",),'believes','that',("object",)]) p.parse(string.split('Mary believes that John believes that John loves Mary'))