2 research outputs found
Extending the logical update view with transaction support
Since the database update view was standardised in the Prolog ISO standard,
the so called logical update view is available in all actively maintained
Prolog systems. While this update view provided a well defined update semantics
and allows for efficient handling of dynamic code, it does not help in
maintaining consistency of the dynamic database. With the introduction of
multiple threads and deployment of Prolog in continuously running server
applications, consistency of the dynamic database becomes important.
In this article, we propose an extension to the generation-based
implementation of the logical update view that supports transactions.
Generation-based transactions have been implemented according to this
description in the SWI-Prolog RDF store. The aim of this paper is to motivate
transactions, outline an implementation and generate discussion on the
desirable semantics and interface prior to implementation.Comment: Appeared in CICLOPS 2012. 9 Pages, 0 Figure
SICStus MT - A Multithreaded Execution Environment for SICStus Prolog
The development of intelligent software agents and other
complex applications which continuously interact with their
environments has been one of the reasons why explicit concurrency has
become a necessity in a modern Prolog system today. Such applications
need to perform several tasks which may be very different with respect
to how they are implemented in Prolog. Performing these tasks
simultaneously is very tedious without language support.
This paper describes the design, implementation and evaluation of a
prototype multithreaded execution environment for SICStus Prolog. The
threads are dynamically managed using a small and compact set of
Prolog primitives implemented in a portable way, requiring almost no
support from the underlying operating system