In this dialog, I load some rules from rules.txt that tell the agent how to answer certain questions about who married whom, who is someone's father or grandfather, and who a couple had (gave birth to). The familytree.yaml graph contains basic relations depicted in familytree.png. The program does not understand the "who is X's son" question yet. The idea is, to teach the agent how to answer these types of questions, you tell it to ask itself "who did X marry?", "who did X and that person have?", and "is the person they had male?" If so, then you've found the answer to "who is X's son?". The next step is to glue the three questions together with Ruby code and add it to rules.txt (or familytreerules.txt). Then proceed to make rules for other relations... --- sh-3.2# ruby logicbot.rb Hello I have loaded /Users/bob/logicagent/logicagent-api.yaml. > logicbot: load rules from rules.txt Okay, rules.txt read; 5 rules. > load graph from familytree.yaml familytree.yaml loaded. > who married penelope? christopher married penelope. > who did christopher and penelope have? christopher and penelope had arthur, victoria. > are arthur and victoria siblings? Yes, arthur and victoria are siblings. > who is arthur's father? christopher > who is colin's grandfather? andrew > who is James's son? I don't know what James's son is. > who did James marry? victoria married James. > who did Victoria and James have? Victoria and James had colin, charlotte. > is Colin male? Yes, Colin is male. > Colin is James's son. Okay, Colin is James's son. > who is James's son? James's son is colin >