51 research outputs found
Customisable Handling of Java References in Prolog Programs
Integration techniques for combining programs written in distinct language
paradigms facilitate the implementation of specialised modules in the best
language for their task. In the case of Java-Prolog integration, a known
problem is the proper representation of references to Java objects on the
Prolog side. To solve it adequately, multiple dimensions should be considered,
including reference representation, opacity of the representation, identity
preservation, reference life span, and scope of the inter-language conversion
policies. This paper presents an approach that addresses all these dimensions,
generalising and building on existing representation patterns of foreign
references in Prolog, and taking inspiration from similar inter-language
representation techniques found in other domains. Our approach maximises
portability by making few assumptions about the Prolog engine interacting with
Java (e.g., embedded or executed as an external process). We validate our work
by extending JPC, an open-source integration library, with features supporting
our approach. Our JPC library is currently compatible with three different open
source Prolog engines (SWI, YAP} and XSB) by means of drivers. To appear in
Theory and Practice of Logic Programming (TPLP).Comment: 10 pages, 2 figure
Coordination and Concurrency in Multi-Engine Prolog
Abstract. 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-threading is made available to the application programmer as a set of high-level primitives with a declarative flavor while cooperative constructs provide efficient and predictable coordination mechanisms. As illustrations of our techniques, a parallel fold operation as well as cooperative implementations of Linda blackboards and publish/subscribe are described
Logic-based Technologies for Multi-agent Systems: A Systematic Literature Review
Precisely when the success of artificial intelligence (AI) sub-symbolic techniques makes them be identified with the whole AI by many non-computerscientists and non-technical media, symbolic approaches are getting more and more attention as those that could make AI amenable to human understanding. Given the recurring cycles in the AI history, we expect that a revamp of technologies often tagged as “classical AI” – in particular, logic-based ones will take place in the next few years.
On the other hand, agents and multi-agent systems (MAS) have been at the core of the design of intelligent systems since their very beginning, and their long-term connection with logic-based technologies, which characterised their early days, might open new ways to engineer explainable intelligent systems. This is why understanding the current status of logic-based technologies for MAS is nowadays of paramount importance.
Accordingly, this paper aims at providing a comprehensive view of those technologies by making them the subject of a systematic literature review (SLR). The resulting technologies are discussed and evaluated from two different perspectives: the MAS and the logic-based ones
Language Interoperability and Logic Programming Languages
We discuss P#, our implementation of a tool which allows interoperation between a concurrent superset of the Prolog programming language and C#. This enables Prolog to be used as a native implementation language for Microsoft's .NET platform. P# compiles a linear logic extension of Prolog to C# source code. We can thus create C# objects from Prolog and use C#'s graphical, networking and other libraries. P# was developed from a modified port of the Prolog to Java translator, Prolog Cafe. We add language constructs on the Prolog side which allow concurrent Prolog code to be written. We add a primitive predicate which evaluates a Prolog structure on a newly forked thread. Communication between threads is based on the unification of variables contained in such a structure. It is also possible for threads to communicate through a globally accessible table. All of the new features are available to the programmer through new built-in Prolog predicates. We present three case studies. The first is an application which allows several users to modify a database. The users are able to disconnect from the database and to modify their own copies of the data before reconnecting. On reconnecting, conflicts must be resolved. The second is an object-oriented assistant, which allows the user to query the contents of a C# namespace or Java package. The third is a tool which allows a user to interact with a graphical display of the inheritance tree. Finally, we optimize P#'s runtime speed by translating some Prolog predicates into more idiomatic C# code than is produced by a naive port of Prolog Cafe. This is achieved by observing that semi-deterministic predicates (being those which always either fail or succeed with exactly one solution) that only call other semi-deterministic predicates enjoy relatively simple control flow. We make use of the fact that Prolog programs often contain predicates which operate as functions, and that such predicates are usually semi-deterministic
Revisão Bibliográfica e Modelo Conceitual de Execução de Agentes BDI para Análise de Complexidade Computacional no Paradigma de Agentes
Analisar um algoritmo envolve pensar quais e quanto dos recursos computacionais serão necessários para a sua execução (ex: a quantidade de tempo (CPU) e espaço (memória)), os quais variam de acordo com o tamanho e dados da entrada. Com a introdução de arquiteturas de hardware, como arquiteturas multi-core, e o advento de redes e sistemas distribuídos, avaliar a eficiência de aplicações baseadas no paradigma de agentes torna-se ainda mais importante.
Estabelecer métricas de eficiência em agentes é um tema de crescente preocupação uma vez que o uso de agentes vem tornando-se cada vez mais comum, porém, frequentemente, as métricas que são utilizadas para avaliar um agente são baseadas em características temporais (ex: tempo de execução) ou em relação à troca de mensagens. Além de não serem suficientes para avaliar a complexidade computacional de um programa de agente, elas dependem da plataforma de execução e da infraestrutura de hardware onde o agente é executado e avaliado. Também não é possível estimar o tempo de execução sem que o sistema seja efetivamente executado, o que pode ser problemático quando pensa-se na realização de experimentos.
O objetivo desta pesquisa é realizar um estudo e propor um modelo e técnica para cálculo da complexidade computacional de um programa de agente, considerando sempre as características e conceitos inerentes ao paradigma de agentes
Extensión del modelo Linda para representar la dinámica de conocimiento en sistemas multi-agente
Este trabajo es un primer acercamiento al estudio de las relaciones existentes entre el modelo Linda y la Teoría de Cambio de Creencias. Se mostrarán las similitudes existentes entre ambos formalismos y cómo extender el modelo Linda utilizando resultados y técnicas del área de Teoría de Cambio de Creencias.
En tal sentido, se establecen convenciones para representar conocimiento en el espacio de tuplas de Linda, y se formulan extensiones a las primitivas provistas por el lenguaje para modelar la dinámica de conocimiento de los agentes en un sistema multi-agente.VI Workshop de Agentes y Sistemas Inteligentes (WASI)Red de Universidades con Carreras en Informática (RedUNCI
Extensión del modelo Linda para representar la dinámica de conocimiento en sistemas multi-agente
Este trabajo es un primer acercamiento al estudio de las relaciones existentes entre el modelo Linda y la Teoría de Cambio de Creencias. Se mostrarán las similitudes existentes entre ambos formalismos y cómo extender el modelo Linda utilizando resultados y técnicas del área de Teoría de Cambio de Creencias.
En tal sentido, se establecen convenciones para representar conocimiento en el espacio de tuplas de Linda, y se formulan extensiones a las primitivas provistas por el lenguaje para modelar la dinámica de conocimiento de los agentes en un sistema multi-agente.VI Workshop de Agentes y Sistemas Inteligentes (WASI)Red de Universidades con Carreras en Informática (RedUNCI
Recommended from our members
Semantic Document Engineering with WordNet and PageRank
This article discusses semantic document engineering with WordNet and PageRank
- …