:ALL-PATHS, a path fails if any of its branches fails.
:ALL-PATHS accepts two paths. It first queries
fails, :ALL-PATHS succeeds by default.
If the first path succeeds, it then evaluates
path2 (e.g. tells or asks
as directed) under every substitution generated by the first query and succeeds iff all of the
branches succeed. If
path2 is empty, the command succeeds if the first path
(:ALL-PATHS ((child Fred ?child)) ((age ?child ?age) (:test (:lisp (> ?age 10)))) ) Are all of Fred's children are over 10 years old?
If the first path fails, :ALL-PATHS succeeds by default.
Shown below is a standard (not :ALL-PATHS) Algernon query similar to the one above. Note that it will succeed if any of Fred's children are over 10 years old.
((child Fred ?child) (age ?child ?age) (:test (:LISP (> ?age 10))) )