Refactoring is a technique to restructure code in a disciplined way originating from the OO-community. It aims at improving software readability, maintainability and extensibility.
In this paper we apply the ideas of refactoring to Prolog programs. We start by presenting a catalogue of refactorings. Then we discuss ViPReSS,
our refactoring browser, and our experience with applying ViPReSS to a large Prolog legacy system.