2010
Autores
Raimundo, J; Rocha, R;
Publicação
PRACTICAL ASPECTS OF DECLARATIVE LANGUAGES, PROCEEDINGS
Abstract
A critical component in the implementation of an efficient tabling system is the design of the data structures and algorithms to access and manipulate tabled data. Arguably, the most successful data structure for tabling is tries, which is regarded as a very compact and efficient; data structure for term representation. Despite these good properties, we found that, for list terms, we can design even more compact and efficient representations. We thus propose a, new representation of list terms for tries that avoids the recursive nature of the WAM representation of list terms in which tries are based. Our experimental results using the YapTab tabling system show a significant reduction in the memory usage for the trie data structures and considerable gains in the running time for storing and loading list terms.
2009
Autores
Areias, M; Rocha, R;
Publicação
PROGRESS IN ARTIFICIAL INTELLIGENCE, PROCEEDINGS
Abstract
The execution model on which most tabling engines are based allocates a choice point whenever a new tabled subgoal is called. This happens even when the call is deterministic. however, sortie of the information from the choice point; is never used when evaluating deterministic tabled calls with batched scheduling. Moreover, when a deterministic answer is found for a. deterministic tabled call, the call can be completed early and the corresponding choice point can be removed. Thus, if applying batched scheduling to a long deterministic computation the system may end up consuming memory and evaluating calls unnecessarily. In this paper, we propose a solution that, tries to reduce this memory and execution overhead to a minimum. Our experimental results show that;, for deterministic tabled calls and tabled answers with batched scheduling, it; is possible not. only to reduce the memory usage overhead, but also the running time of tire execution.
2009
Autores
Costa, J; Raimundo, J; Rocha, R;
Publicação
LOGIC PROGRAMMING
Abstract
A critical component in the implementation of an efficient tabling system is the design of the data structures and algorithms to access and manipulate tabled data. Arguably, the most successful data structure for tabling is tries. However, when used in applications that pose many queries and/or have a large number of answers, tabling call build arbitrarily many and/or very large tables, quickly filling Lip memory. In this paper, we propose a new design for the table space organization where all terms in tabled subgoal calls and tabled answers are represented only once in a common global trie instead of being spread over several different trie data structures. Our initial experiments using the YapTab tabling system show significant reductions oil memory usage without compromising running time.
2009
Autores
Costa, P; Rocha, R; Ferreira, M;
Publicação
APPLICATIONS OF DECLARATIVE PROGRAMMING AND KNOWLEDGE MANAGEMENT
Abstract
Resolution strategies based on tabling are considered to be particularly effective in Logic Programming. Unfortunately, when faced with applications that compute large and/or many answers, memory exhaustion is a potential problem. In such cases, table deletion is the most common approach to recover space. In this work, we propose a different approach, storing tables into a relational database. Subsequent calls to stored tables import answers from the database, rather than performing a complete re-computation. To validate this approach, we have extended the YapTab tabling system, providing engine support for exporting and importing tables to and from the MySQL RDBMS. Three different relational models for data storage and two recordset retrieval strategies are compared.
2009
Autores
Costa, J; Rocha, R;
Publicação
PRACTICAL ASPECTS OF DECLARATIVE LANGUAGES
Abstract
Tabling is all implementation technique that overcomes some limitations of traditional Prolog systems in dealing with redundant sub-computations and recursion. The performance of tabled evaluation largely depends on the implementation of the table space. Arguably, the most successful data structure for tabling is tries. However, while tries are efficient for variant based tabled evaluation, they are limited ill their ability to recognize and represent repeated answers for different calls. In this paper, we propose a new design for the table space where tabled subgoal calls and/or answers are stored only once in a common global trie instead of being spread over several different tries. Our preliminary experiments using the YapTab tabling system show very promising reductions on memory usage.
2008
Autores
Costa, J; Rocha, R;
Publicação
LOGIC PROGRAMMING, PROCEEDINGS
Abstract
Arguably. the most successful data, structure for tabling is tries. However, while tries are very efficient for variant based tabled evaluation, they are limited in their ability to recognize and represent, repeated terms in different tabled calls or/and answers. lit this paper, we propose a new design for the table space where tabled terms are stored in a common global trie instead of being spread over several different tries.
The access to the final selection minute is only available to applicants.
Please check the confirmation e-mail of your application to obtain the access code.