Cookies
O website necessita de alguns cookies e outros recursos semelhantes para funcionar. Caso o permita, o INESC TEC irá utilizar cookies para recolher dados sobre as suas visitas, contribuindo, assim, para estatísticas agregadas que permitem melhorar o nosso serviço. Ver mais
Aceitar Rejeitar
  • Menu
Publicações

Publicações por CRACS

2022

On the correctness of a lock-free compression-based elastic mechanism for a hash trie design

Autores
Areias, M; Rocha, R;

Publicação
COMPUTING

Abstract
A key aspect of any hash map design is the problem of dynamically resizing it in order to deal with hash collisions. Compression in tree-based hash maps is the ability of reducing the depth of the internal hash levels that support the hash map. In this context, elasticity refers to the ability of automatically resizing the internal data structures that support the hash map operations in order to meet varying workloads, thus optimizing the overall memory consumption of the hash map. This work extends a previous lock-free hash trie map design to support elastic hashing, i.e., expand saturated hash levels and compress unused hash levels, such that, at each point in time, the number of levels in a path is adjusted, as closely as possible, to the set of keys that is stored in the data structure. To materialize our design, we introduce a new compress operation for hash levels, which requires redesigning the existing search, insert, remove and expand operations in order to maintain the lock-freedom property of the data structure. Experimental results show that elasticity effectively improves the search operation and, in doing so, our design becomes very competitive when compared to other state-of-the-art designs implemented in Java.

2022

Parallel Logic Programming: A Sequel

Autores
Dovier, A; Formisano, A; Gupta, G; Hermenegildo, MV; Pontelli, E; Rocha, R;

Publicação
THEORY AND PRACTICE OF LOGIC PROGRAMMING

Abstract
Multi-core and highly connected architectures have become ubiquitous, and this has brought renewed interest in language-based approaches to the exploitation of parallelism. Since its inception, logic programming has been recognized as a programming paradigm with great potential for automated exploitation of parallelism. The comprehensive survey of the first twenty years of research in parallel logic programming, published in 2001, has served since as a fundamental reference to researchers and developers. The contents are quite valid today, but at the same time the field has continued evolving at a fast pace in the years that have followed. Many of these achievements and ongoing research have been driven by the rapid pace of technological innovation, that has led to advances such as very large clusters, the wide diffusion of multi-core processors, the game-changing role of general-purpose graphic processing units, and the ubiquitous adoption of cloud computing. This has been paralleled by significant advances within logic programming, such as tabling, more powerful static analysis and verification, the rapid growth of Answer Set Programming, and in general, more mature implementations and systems. This survey provides a review of the research in parallel logic programming covering the period since 2001, thus providing a natural continuation of the previous survey. In order to keep the survey self-contained, it restricts its attention to parallelization of the major logic programming languages (Prolog, Datalog, Answer Set Programming) and with an emphasis on automated parallelization and preservation of the sequential observable semantics of such languages. The goal of the survey is to serve not only as a reference for researchers and developers of logic programming systems but also as engaging reading for anyone interested in logic and as a useful source for researchers in parallel systems outside logic programming.

2022

Online Learning of Logic Based Neural Network Structures

Autores
Guimaraes, V; Costa, VS;

Publicação
INDUCTIVE LOGIC PROGRAMMING (ILP 2021)

Abstract
In this paper, we present two online structure learning algorithms for NeuralLog, NeuralLog+OSLR and NeuralLog+OMIL. NeuralLog is a system that compiles first-order logic programs into neural networks. Both learning algorithms are based on Online Structure Learner by Revision (OSLR). NeuralLog+OSLR is a port of OSLR to use NeuralLog as inference engine; while NeuralLog+OMIL uses the underlying mechanism from OSLR, but with a revision operator based on Meta-Interpretive Learning. We compared both systems with OSLR and RDN-Boost on link prediction in three different datasets: Cora, UMLS and UWCSE. Our experiments showed that NeuralLog+OMIL outperforms both the compared systems on three of the four target relations from the Cora dataset and in the UMLS dataset, while both NeuralLog+OSLR and NeuralLog+OMIL outperform OSLR and RDNBoost on the UWCSE, assuming a good initial theory is provided.

2022

Impact of the glycaemic sampling method in diabetes data mining

Autores
Machado, D; Costa, VS; Brandao, P;

Publicação
2022 27TH IEEE SYMPOSIUM ON COMPUTERS AND COMMUNICATIONS (IEEE ISCC 2022)

Abstract
Finger-pricking is the traditional procedure for glycaemia monitoring. It is an invasive method where the person with diabetes is required to prick their finger. In recent years, continuous-glucose monitoring (CGM), a new and more convenient method of glycaemia monitoring, has become prevalent. CGM provides continuous access to glycaemic values without the need of finger-pricking. Data mining can be used to understand glycaemic values, and to ideally warn users of abnormal situations. CGM provides significantly more data than finger-pricking. Thus, the amount and value of CGM data ultimately questions the role of finger-pricking for glycaemic studies. In this work we use the OhioT1DM data set in order to study the importance of finger-prick-based data. We use Random Forest as a classification method, a robust method that tends to obtain quality results. Our results indicate that, although more demanding and scarcer, finger-prick-based glycaemic values have a significant role on diabetes management and on data mining.

2022

Typed SLD-Resolution: Dynamic Typing for Logic Programming

Autores
Barbosa, J; Florido, M; Costa, VS;

Publicação
LOGIC-BASED PROGRAM SYNTHESIS AND TRANSFORMATION (LOPSTR 2022)

Abstract
The semantic foundations for logic programming are usually separated into two different approaches. The operational semantics, which uses SLD-resolution, the proof method that computes answers in logic programming, and the declarative semantics, which sees logic programs as formulas and its semantics as models. Here, we define a new operational semantics called TSLD-resolution, which stands for Typed SLD-resolution, where we include a value wrong, that corresponds to the detection of a type error at run-time. For this we define a new typed unification algorithm. Finally we prove the correctness of TSLD-resolution with respect to a typed declarative semantics.

2022

Fifty Years of Prolog and Beyond

Autores
Korner, P; Leuschel, M; Barbosa, J; Costa, VS; Dahl, V; Hermenegildo, MV; Morales, JF; Wielemaker, J; Diaz, D; Abreu, S; Ciatto, G;

Publicação
THEORY AND PRACTICE OF LOGIC PROGRAMMING

Abstract
Both logic programming in general and Prolog in particular have a long and fascinating history, intermingled with that of many disciplines they inherited from or catalyzed. A large body of research has been gathered over the last 50 years, supported by many Prolog implementations. Many implementations are still actively developed, while new ones keep appearing. Often, the features added by different systems were motivated by the interdisciplinary needs of programmers and implementors, yielding systems that, while sharing the classic core language, in particular, the main aspects of the ISO-Prolog standard, also depart from each other in other aspects. This obviously poses challenges for code portability. The field has also inspired many related, but quite different languages that have created their own communities. This article aims at integrating and applying the main lessons learned in the process of evolution of Prolog. It is structured into three major parts. First, we overview the evolution of Prolog systems and the community approximately up to the ISO standard, considering both the main historic developments and the motivations behind several Prolog implementations, as well as other logic programming languages influenced by Prolog. Then, we discuss the Prolog implementations that are most active after the appearance of the standard: their visions, goals, commonalities, and incompatibilities. Finally, we perform a SWOT analysis in order to better identify the potential of Prolog and propose future directions along with which Prolog might continue to add useful features, interfaces, libraries, and tools, while at the same time improving compatibility between implementations.

  • 23
  • 202