Applying coupled resolution engines to knowledge bases

A software architecture has been developed that couples a concurrent logic programming or CLP engine with a multi-threaded Prolog engine. Concurrency among mutually invoking Prolog and CLP computations is sustained partly through and-parallel execution of CLP computations on the CLP engine, partly by executing multiple Prolog processes and a CLP engine under Unix on a multi-processor or a uni-processor. Communication among the multiple computations is realised by message passing, enabling the architecture to be multi-processed with a low degree of contention for shared memory. The coupled architecture supports multi-user knowledge based systems without compromising on the expressive power and performance of Prolog and CLP languages, and without diminishing the capacity for multi-processing at a task apposite grain of parallelism.