Did you know? SWI-Prolog provides general DCG primitivesSearch Documentation:
SWI-Prolog owl logoTitle for pldoc(object(section(2,'2.12',swi('/doc/Manual/hooks.html'))))