Text this: Techniques in Prolog programming