In this paper we describe REVISE, an extended logic programming system for revising knowledge bases. REVISE is based on logic programming with explicit negation, plus a two-valued assumption revision to face contradiction , encompasses the notion of preference levels. Its reliance on logic programming allows efficient computation and declarativity, whilst its use of explicit negation, revision and preference levels enablesmodeling of a variety of problems including default reasoning, belief revision and modelbased reasoning. It has been implemented as a Prolog