\nop{ The introduction of object oriented technology in the practice of software engineering has been of significant influence on the software life cycle. } \nop{ Traditionally, the software life cycle is subdivided in an analysis phase in which the requirements for a system are laid down, a design phase in which a conceptual architecture for a system meeting the requirements put forward in the analysis phase is proposed, an implementation phase in which the conceptual structure resulting from the design phase is embodied in actual software and an operational phase that includes installing and maintenance of the system. The transition from one phase to the next usually involves a significant effort of translating the results into the formalism appropriate to that phase. } The use of object oriented techniques in the design and implementation phases of software development projects has resulted in a shift of emphasis in favor of the design phase since the effort of implementing a system in an object oriented programming language on the basis of an object oriented design may be regarded as a process of refining the decisions laid down in the design. The use of object oriented techniques has thus effectively reduced the gap between the concept-oriented world of design and the technology-oriented world of implementation. C.f.  [WWW90] and  [Meyer88]. This development may be taken a step further by proposing a logic-based object oriented language that allows to employ an abstract specification of an object oriented system as a prototype.\ftn{ In this context I may remark that, independent of the introduction of object oriented technology, the need for prototyping has arisen in software engineering practice to accommodate the difficulty of eliciting the proper requirements in the analysis phase. It is generally acknowledged that prototyping is well supported by object oriented programming languages. } We will introduce a distributed logic programming language DLP that allows to specify an object oriented system in a highly abstract way. The language proposed extends logic programming with features specifically geared towards the specification of object oriented systems and thus corrects what has been commonly felt to be one of the major drawbacks of logic programming: the lack of support for specifying large systems in a structured way. In addition to object oriented features, the language DLP supports parallelism, by allowing objects to have activity of their own. For many problem areas, concurrency or parallelism is a very natural phenomenon. Parallism and distribution fit in well with the object oriented paradigm since the actual (possibly concurrent) behavior or location of an object may remain hidden for the clients of an object. An important application of DLP lies in the area of distributed knowledge based systems. We feel that the object oriented modeling approach may support a proper distribution of the various reasoning tasks that are involved, by taking the natural activity of the actors in a domain as the guideline in developing an intelligent system.