DFS can supply compatible bindings for forward chaining
Until no rule produces an assertion or the animal is identifiedFor each ruleTry to support each of the rule’s antecedents by matching it to known assertionsIf all the rule’s antecedents are supported, assert the consequent unless there is an identical assertion alreadyRepeat for all matching and instantiation alternatives
Until no rule produces a new assertionFor each ruleFor each set of possible variable bindings determined by matching the antecedents to working memoryInstantiate the consequentDetermine whether the instantiated consequent is already asserted. If it is not, assert it
If?x is-a horse?x is-a-parent-of ?y?y is fastThen?x is valuable
If ?x is-a horse?x can be bound toComet, Prancer, Thunder, Dasher?x is-a-parent-of ?y…?y is fast…
Start matching hypothesis againstExisting assertionsRule consequentsComet is valuable?
Backward chaining code
Until all hypothesis have been tried and none have been supported or until the animal has been identifiedFor each hypothesisFor each rule whose consequent matches the current hypothesisTry to support each of the rule’s antecedents by matching it to assertions in WM or by backward chaining through another rule, creating new hypotheses. Be sure to check all matching and instantiating alternativesIf all the rule’s antecedents are supported, announce success and conclude that the hypothesis is true
Rules and Cognition
Simplicity of rule based systems enables you to build extremely useful applicationsRBS can explain their reasoningHow did you establish swifty was a cheetah? By using rule six and by knowing that swifty is a mammal, has pointed teeth, has claws, and has forward pointing eyes.How…? : Report the assertions connected to the rule’s antecedents. The rule that established the assertion.
Rules and Cognition
RBS can explain their reasoningWhy did you show that swifty is a mammal? Because I wanted to use rule 6 to show that the animal is a carnivoreWhy..? Report the assertions to the then sides of all rules that used the assertion referenced in the question.
Two key heuristicsWork with specific situationsAsk about situation pairs that look identical but are handled differently
RBS behave like idiot savants
They do certain tasks wellButThey do not reason at multiple levelsThey do not understand the reasoning behind their rulesThey do not know how or when to break their own rulesThey do not look at problems from different perspectives
SOAR models human problem solving - MAYBE
Uses an automatic preference analyzer instead of a fixed conflict resolution strategy
RBS vs C/Java/Lisp
In principle there is nothing to prevent building a more human like system using rules, because rules can be used as a sort of programming languageHowever, compared to other programming languages rules have little to offer