Program use recursion in Prolog to show ancestor-descendant relations
Source: Learn prolog now!, 2001, (course available on-line)
Program source code: descendant.pl
child(martha,charlotte). child(charlotte,caroline). child(caroline,laura). child(laura,rose). descend(X,Y):-child(X,Y). descend(X,Y):-child(X,Z), descend(Z,Y).