SWEEP: A SWI-Prolog mode for GNU-Emacs based on semantic analysis by Prolog1
Good editing support for Prolog is hard due to the lack of keywords, types and homoiconicity (code is data). This was the motivation for the built-in PceEmacs clone that is written in Prolog and allows for direct interaction with the editor buffer from Prolog: reading, writing and controlling syntax highlighting.
Eshel Yaron wrote sweep which embeds SWI-Prolog as a module in GNU-Emacs, providing similar possibilities. The required foreign extension module is part of the binary distributions for SWI-Prolog in recent development releases and will be part of SWI-Prolog 9.x that will be released soon.
The mode is under active development. In its current state it is already much better than any previous Emacs mode for Prolog. It still lacks a few features wrt. PceEmacs, but it also comes with a lot of goodies compared to PceEmacs.