PROTOS-L is a language based on logic programming that integrates a variety of concepts for programming large knowledge based systems like a powerful type concept, a module concept, high-level access to external relational databases, and finite domain constraints. The type concept covers user defined sorts, subsort relationships supporting multiple inheritance and parameterized sorts in the form of polymorphism. In addition to relations, also user-defined functions are available. The module concept is similar to that of Modula-2 and allows to hide implementation details from the user of a module. Database access and modification is fully embedded in the programming language PROTOS-L and can be programmed transparent to the user of a program or a program part. Besides simple links to external relations, non-recursive as well as recursive function free deduction rules can be defined. PROTOS-L also provides an easy way to work with windows via an object-oriented interface to the OSF/Motif system. These features as well as file handling, term manipulation etc. are embedded type-safe into PROTOS-L.The implementation of PROTOS-L is based on the PROTOS Abstract Machine, an extension of the Warren Abstract Machine (WAM). In particular, it supports the required polymorphic order- sorted unification. It communicates with a database inference engine realizing a deductive database component, with a window manager realizing the interface to OSF/Motif, and also with the finite domain constraint solver.