Multi-threading Inside Prolog for Knowledge-Based Enterprise Applications
نویسندگان
چکیده
A knowledge-based system is suitable for realizing advanced functions that require domain-specific expert knowledge in enterprisemission-critical information systems (enterprise applications). This paper describes a newly implemented multi-threaded Prolog system that evolves single-threaded Inside Prolog. It is intended as a means to apply a knowledge-based system written in Prolog to an enterprise application. It realizes a high degree of parallelism on an SMP system by minimizing mutual exclusion for scalability essential in enterprise use. Also briefly introduced is the knowledge processing server which is a framework for operating a knowledge-based system written in Prolog with an enterprise application. Experimental results indicated that on an SMP system the multi-threaded Prolog could achieve a high degree of parallelism while the server could obtain scalability. The application of the server to clinical decision support in a hospital information system also demonstrated that the multi-threaded Prolog and the server were sufficiently robust for use in an enterprise application.
منابع مشابه
Coordination and Concurrency in Multi-engine Prolog
We discuss the impact of the separation of logic engines (independent logic processing units) and multi-threading on the design of coordination mechanisms for a Prolog based agent infrastructure. We advocate a combination of coroutining constructs with focus on expressiveness and a simplified, multi-threading API that ensures optimal use available parallelism. In this context, native multi-thre...
متن کاملJavaLog: a framework-based integration of Java and Prolog for agent-oriented programming
Intelligent agent development has imposed new challenges on the necessary language support. Object-oriented languages have been proposed as an appropriate tool, although logic-oriented languages are more adequate for managing mental attitudes. Multi-paradigm languages supporting encapsulation of actions, hiding of private knowledge and 9exible manipulation of knowledge are, certainly, a good al...
متن کاملHigh-Level Multi-Threading in hProlog
A new high-level interface to multi-threading in Prolog, implemented in hProlog, is described. Modern CPUs often contain multiple cores and through high-level multi-threading a programmer can leverage this power without having to worry about low-level details. Two common types of high-level explicit parallelism are discussed: independent and-parallelism and competitive or-parallelism. A new typ...
متن کاملTowards multi-threaded local tabling using a common table space
Multi-threading is currently supported by several well-known Prolog systems providing a highly portable solution for applications that can benefit from concurrency. When multithreading is combined with tabling, we can exploit the power of higher procedural control and declarative semantics. However, despite the availability of both threads and tabling in some Prolog systems, the implementation ...
متن کاملDISPO: Distributed Multi-Threaded Execution of Prolog Programs
DISPO is a Distributed Prolog Virtual Machine for interpreting and executing Prolog programs through distribution and multi-threading. It is a distributed version of a standard Prolog interpreter designed for exploiting OR-parallelism and pipe-lined AND parallelism. Some distinctive features of DISPO is that it speeds up the execution of Prolog programs and generates all possible solutions for ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2005