This is a family tree in racket using datalog + S-expressions
To run that script, make sure that you have racket installed, and then, run:
$ racket genealogy.rkt
And then, you'll see the result in prolog's notation. If you want to modify, modify in portuguese (soon I'll change), and for each person you'll add, add it to homem(X) also.