(ask '( (http://...#ancestor ?person ?ancestor) ):collect '(?person ?ancestor))
returns all statements (triples) in the database where http://...#ancestor is the predicate;
from the previous example, returns both billy and pa statements.
(ask '( (http://...#ancestor http://...#billy ?ancestor) ):collect '(?ancestor))
returns only 'pa'.
(namespace '(g http://.../genealogy#)
fwrule (head '((g::ancestor ?a ?b)
(g::ancestor ?b ?c))
body '((g::ancestor ?a ?c)))
ask '(
(http://...#ancestor http://...#billy ?ancestor)
):collect '(?ancestor))
returns both 'pa' and 'grandpa'.
6 of 12 |