C. Beierle, S. Böttcher, and G. Meyer. Report of the Logic Programming Language PROTOS-L (revised version). Working Paper No 4, IBM Germany, Scientific Center, Inst. for Logics and Linguistics, Heidelberg, Juli 1994.
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, and also with a window manager realizing the interface to OSF/Motif. This report describes the language PROTOS-L and its usage in the PROTOS-L prototype system in its current state of development. It is a working document in the sense that parts of it will be revised or extended, and that PROTOS-L is still being developed further. Thus, all comments and suggestions are greatly appreciated.
Available: PS, DVI, BibTeX