57 research outputs found
A simple approach to distributed objects in prolog
We present the design of a distributed object system for Prolog, based on adding remote execution and distribution capabilities to a previously existing object system. Remote execution brings RPC into a Prolog system, and its semantics is easy to express in terms of well-known Prolog builtins. The final distributed object design features state mobility and user-transparent network behavior. We sketch an implementation which provides distributed garbage collection and some degree of tolerance to network failures. We provide a preliminary study of the overhead of the communication mechanism for some test cases
Coordinated constraint relaxation using a distributed agent protocol
The interactions among agents in a multi-agent system for coordinating a distributed,
problem solving task can be complex, as the distinct sub-problems of the individual
agents are interdependent. A distributed protocol provides the necessary framework for
specifying these interactions. In a model of interactions where the agents' social norms
are expressed as the message passing behaviours associated with roles, the dependencies
among agents can be specified as constraints. The constraints are associated with roles to
be adopted by agents as dictated by the protocol. These constraints are commonly
handled using a conventional constraint solving system that only allows two satisfactory
states to be achieved - completely satisfied or failed. Agent interactions then become
brittle as the occurrence of an over-constrained state can cause the interaction between
agents to break prematurely, even though the interacting agents could, in principle, reach
an agreement. Assuming that the agents are capable of relaxing their individual
constraints to reach a common goal, the main issue addressed by this thesis is how the
agents could communicate and coordinate the constraint relaxation process. The
interaction mechanism for this is obtained by reinterpreting a technique borrowed from
the constraint satisfaction field, deployed and computed at the protocol level.The foundations of this work are the Lightweight Coordination Calculus (LCC) and
the distributed partial Constraint Satisfaction Problem (CSP). LCC is a distributed
interaction protocol language, based on process calculus, for specifying and executing
agents' social norms in a multi-agent system. Distributed partial CSP is an extension of
partial CSP, a means for managing the relaxation of distributed, over-constrained, CSPs.
The research presented in this thesis concerns how distributed partial CSP technique,
used to address over-constrained problems in the constraint satisfaction field, could be
adopted and integrated within the LCC to obtain a more flexible means for constraint
handling during agent interactions. The approach is evaluated against a set of overconstrained Multi-agent Agreement Problems (MAPs) with different levels of hardness.
Not only does this thesis explore a flexible and novel approach for handling constraints
during the interactions of heterogeneous and autonomous agents participating in a
problem solving task, but it is also grounded in a practical implementation
The ciao prolog system
Ciao is a public domain, next generation multi-paradigm programming environment with a unique set of features: Ciao offers a complete Prolog system, supporting ISO-Prolog, but its novel modular design allows both restricting and extending the language. As a result, it allows working with
fully declarative subsets of Prolog and also to extend these subsets (or ISO-Prolog) both syntactically and semantically. Most importantly, these restrictions and extensions can be activated separately on each program module so that several extensions can coexist in the same application for different modules. Ciao also supports (through such extensions) programming with functions, higher-order (with predicate abstractions), constraints, and objects, as well as feature terms (records), persistence, several control rules (breadth-first search, iterative deepening, ...), concurrency (threads/engines), a good base for distributed execution (agents), and parallel execution. Libraries also support WWW programming, sockets, external interfaces (C, Java, TclTk, relational databases, etc.), etc. Ciao offers support for programming in the large with a robust module/object system, module-based separate/incremental compilation (automatically -no need for makefiles), an assertion language for declaring (optional) program properties (including types and modes, but also determinacy, non-failure, cost, etc.), automatic static inference and static/dynamic checking of such assertions, etc. Ciao also offers support for programming in the small producing small executables (including only those builtins used by the program) and support for writing scripts in Prolog. The Ciao programming environment includes a classical top-level and a rich emacs interface with an embeddable source-level debugger and a number of execution visualization tools. The Ciao compiler (which can be run outside the top level shell) generates several forms of architecture-independent and stand-alone executables, which run with speed, efficiency and executable size which are very competive with other commercial and academic Prolog/CLP systems. Library modules can be compiled into compact bytecode or C source files, and linked statically, dynamically, or autoloaded. The novel modular design of Ciao enables, in addition to modular program development,
effective global program analysis and static debugging and optimization via source to source program transformation. These tasks are performed by the Ciao preprocessor ( ciaopp,
distributed separately). The Ciao programming environment also includes lpdoc, an automatic documentation generator
for LP/CLP programs. It processes Prolog files adorned with (Ciao) assertions and machine-readable comments and generates manuals in many formats including postscript, pdf, texinfo, info, HTML, man, etc. , as well as on-line help, ascii README files, entries for indices of manuals (info, WWW, ...), and maintains WWW distribution sites
A techniques-based framework for domain-specific synthesis of simulation models
The formal specification community has produced many languages but few structured
design methods. Those which exist tend to be abstract, providing little guidance in
tackling problems in particular domains. One way of devising domain -specific design
methods is by reconstructing an example in the domain using the target method; then
generalising the design structures to cover a class of designs in the domain and finally
building an environment in which these structures may more easily be re- applied to new
problems. We demonstrate this approach using animal population dynamics models
as the domain and Prolog techniques as the target method.We have identified domain -specific techniques which use a parameterisation method
from techniques editing but which contain information specific to the population dynamics domain; we define a problem description language which uses concepts from
population dynamics; an interface which allows these concepts to be supplied; and
provide an automated system which bridges between population dynamics problem
description and the domain -specific techniques needed for model generation.TeMS - Techniques -based Model Synthesiser, is the system constructed as the main
instrument of our research. Because it is an embodiment of our views on the issues
addressed, we submitted TeMS to user evaluation by ecological modelling experts,
which produced material for a broad discussion of the system itself, its approach to
modelling and its potential uses on the ecological modelling scenario
Programmiersprachen und Rechenkonzepte
Die GI-Fachgruppe 2.1.4 "Programmiersprachen und Rechenkonzepte" veranstaltete vom 3. bis 5. Mai 2004 im Physikzentrum Bad Honnef ihren jährlichen Workshop. Dieser Bericht enthält eine Zusammenstellung der Beiträge. Das Treffen diente wie in jedem Jahr gegenseitigem Kennenlernen, der Vertiefung gegenseitiger Kontakte, der Vorstellung neuer Arbeiten und Ergebnisse und vor allem der intensiven Diskussion. Ein breites Spektrum von Beiträgen, von theoretischen Grundlagen über Programmentwicklung, Sprachdesign, Softwaretechnik und Objektorientierung bis hin zur überraschend langen Geschichte der Rechenautomaten seit der Antike bildete ein interessantes und abwechlungsreiches Programm. Unter anderem waren imperative, funktionale und funktional-logische Sprachen, Software/Hardware-Codesign, Semantik, Web-Programmierung und Softwaretechnik, generative Programmierung, Aspekte und formale Testunterstützung Thema. Interessante Beiträge zu diesen und weiteren Themen gaben Anlaß zu Erfahrungsaustausch und Fachgesprächen auch mit den Teilnehmern des zeitgleich im Physikzentrum Bad Honnef stattfindenden Workshops "Reengineering". Allen Teilnehmern möchte ich dafür danken, daß sie mit ihren Vorträgen und konstruktiven Diskussionsbeiträgen zum Gelingen des Workshops beigetragen haben. Dank für die Vielfalt und Qualität der Beiträge gebührt den Autoren. Ein Wort des Dankes gebührt ebenso den Mitarbeitern und der Leitung des Physikzentrums Bad Honnef für die gewohnte angenehme und anregende Atmosphäre und umfassende Betreuung
Logic-Based Specification Languages for Intelligent Software Agents
The research field of Agent-Oriented Software Engineering (AOSE) aims to find
abstractions, languages, methodologies and toolkits for modeling, verifying,
validating and prototyping complex applications conceptualized as Multiagent
Systems (MASs). A very lively research sub-field studies how formal methods can
be used for AOSE. This paper presents a detailed survey of six logic-based
executable agent specification languages that have been chosen for their
potential to be integrated in our ARPEGGIO project, an open framework for
specifying and prototyping a MAS. The six languages are ConGoLog, Agent-0, the
IMPACT agent programming language, DyLog, Concurrent METATEM and Ehhf. For each
executable language, the logic foundations are described and an example of use
is shown. A comparison of the six languages and a survey of similar approaches
complete the paper, together with considerations of the advantages of using
logic-based languages in MAS modeling and prototyping.Comment: 67 pages, 1 table, 1 figure. Accepted for publication by the Journal
"Theory and Practice of Logic Programming", volume 4, Maurice Bruynooghe
Editor-in-Chie
- …