2,349 research outputs found
An Improved Continuation Call-Based Implementation of Tabling
Tabled evaluation has been proved an effective method to improve several aspects of goal-oriented query evaluation, including termination and complexity. Several “native” implementations of tabled evaluation have been developed which offer good performance, but many of them require significant changes to the underlying Prolog implementation, including the compiler and the abstract machine. Approaches based on program transformation, which tend to minimize changes to both the Prolog compiler and the abstract machine, have also been proposed, but they often result in lower efficiency. We explore some techniques aimed at combining the best of these worlds, i.e., developing an extensible implementation which requires minimal modifications to the compiler and the abstract machine, and with reasonably good performance. Our preliminary experiments indicate promising results
Mode-Directed Tabling and Applications in the YapTab System
Tabling is an implementation technique that solves some limitations of Prolog\u27s operational semantics in dealing with recursion and redundant sub-computations. Tabling works by memorizing generated answers and then by reusing them on similar calls that appear during the resolution process. In a traditional tabling system, all the arguments of a tabled subgoal call are considered when storing answers into the table space. Traditional tabling systems are thus very good for problems that require finding all answers. Mode-directed tabling is an extension to the tabling technique that supports the definition of selective criteria for specifying how answers are inserted into the table space. Implementations of mode-directed tabling are already available in systems like ALS-Prolog, B-Prolog and XSB. In this paper, we propose a more general approach to the declaration and use of mode-directed tabling, implemented on top of the YapTab tabling system, and we show applications of our approach to problems involving Justification, Preferences and Answer Subsumption
On Combining Linear-Based Strategies for Tabled Evaluation of Logic Programs
Tabled evaluation is a recognized and powerful technique that overcomes some
limitations of traditional Prolog systems in dealing with recursion and
redundant sub-computations. We can distinguish two main categories of tabling
mechanisms: suspension-based tabling and linear tabling. While suspension-based
mechanisms are considered to obtain better results in general, they have more
memory space requirements and are more complex and harder to implement than
linear tabling mechanisms. Arguably, the SLDT and DRA strategies are the two
most successful extensions to standard linear tabled evaluation. In this work,
we propose a new strategy, named DRS, and we present a framework, on top of the
Yap system, that supports the combination of all these three strategies. Our
implementation shares the underlying execution environment and most of the data
structures used to implement tabling in Yap. We thus argue that all these
common features allows us to make a first and fair comparison between these
different linear tabling strategies and, therefore, better understand the
advantages and weaknesses of each, when used solely or combined with the
others.Comment: 16 pages, 9 figures, International Conference on Logic Programming
(ICLP 2011
Inference with Constrained Hidden Markov Models in PRISM
A Hidden Markov Model (HMM) is a common statistical model which is widely
used for analysis of biological sequence data and other sequential phenomena.
In the present paper we show how HMMs can be extended with side-constraints and
present constraint solving techniques for efficient inference. Defining HMMs
with side-constraints in Constraint Logic Programming have advantages in terms
of more compact expression and pruning opportunities during inference.
We present a PRISM-based framework for extending HMMs with side-constraints
and show how well-known constraints such as cardinality and all different are
integrated. We experimentally validate our approach on the biologically
motivated problem of global pairwise alignment
On Extending a Linear Tabling Framework to Support Batched Scheduling
Tabled evaluation is a recognized and powerful technique that overcomes some limitations of traditional Prolog systems in dealing with recursion and redundant sub-computations. During tabled execution, several decisions have to be made. These are determined by the scheduling strategy. Whereas a strategy can achieve very good performance for certain applications, for others it might add overheads and even lead to unacceptable inefficiency. The two most successful tabling scheduling strategies are local scheduling and batched scheduling. In previous work, we have developed a framework, on top of the Yap system, that supports the combination of different linear tabling strategies for local scheduling. In this work, we propose the extension of our framework, to support batched scheduling. In particular, we are interested in the two most successful linear tabling strategies, the DRA and DRE strategies. To the best of our knowledge, no single tabling Prolog system supports both strategies simultaneously for batched scheduling
Call subsumption mechanisms for tabled logic programs
Estágio realizado na ... e orientado pelo Eng.ºDocumento confidencial. Não pode ser disponibilizado para consultaTese de mestrado integrado. Engenharia Informática e Computação. Faculdade de Engenharia. Universidade do Porto. 201
- …