Cookies Policy
The website need some cookies and similar means to function. If you permit us, we will use those means to collect data on your visits for aggregated statistics to improve our service. Find out More
Accept Reject
  • Menu
Publications

Publications by Vítor Santos Costa

2003

From simulation to practice: Cache performance study of a prolog system

Authors
Lopes, R; Castro, LF; Costa, VS;

Publication
ACM SIGPLAN NOTICES

Abstract
Progress in Prolog applications requires ever better performance and scalability from Prolog implementation technology. Most modern Prolog systems are emulator-based. Best performance thus requires both good emulator design and good memory performance. Indeed, Prolog applications can often spend hundreds of megabytes of data, but there is little work on understanding and quantifying the interactions between Prolog programs and the memory architecture of modern computers. In a previous study of Prolog systems we have shown through simulation that Prolog applications usually, but not always, have good locality, both for deterministic and non-deterministic applications. We also showed that performance may strongly depend on garbage collection and on database operations. Our analysis left two questions unanswered: how well do our simulated results holds on actual hardware, and how much did our results depend on a specific configuration? In this work we use several simulation parameters and profiling counters to improve understanding of Prolog applications. We believe that our analysis is of interest to any system implementor who wants to understand his or her own system's memory performance.

2012

Demand-driven clustering in relational domains for predicting adverse drug events

Authors
Davis, J; Costa, VS; Peissig, P; Caldwell, M; Berg, E; Page, D;

Publication
Proceedings of the 29th International Conference on Machine Learning, ICML 2012

Abstract
Learning from electronic medical records (EMR) is challenging due to their relational nature and the uncertain dependence between a patient's past and future health status. Statistical relational learning is a natural fit for analyzing EMRs but is less adept at handling their inherent latent structure, such as connections between related medications or diseases. One way to capture the latent structure is via a relational clustering of objects. We propose a novel approach that, instead of pre-clustering the objects, performs a demand-driven clustering during learning. We evaluate our algorithm on three real-world tasks where the goal is to use EMRs to predict whether a patient will have an adverse reaction to a medication. We find that our approach is more accurate than performing no clustering, pre-clustering, and using expert-constructed medical heterarchies. Copyright 2012 by the author(s)/owner(s).

2012

Introduction to the technical communications of the 28th international conference on logic programming special issue

Authors
Dovier, A; Costa, VS;

Publication
Leibniz International Proceedings in Informatics, LIPIcs

Abstract
We are proud to introduce this special issue of LIPIcs - Leibniz International Proceedings in Informatics, dedicated to the technical communications accepted for the 28th International Conference on Logic Programming (ICLP). © Agostino Dovier and Vítor Santos Costa.

2003

CLP(BN): Constraint Logic Programming for Probabilistic Knowledge

Authors
Costa, VS; Page, D; Qazi, M; Cussens, J;

Publication
UAI '03, Proceedings of the 19th Conference in Uncertainty in Artificial Intelligence, Acapulco, Mexico, August 7-10 2003

Abstract

2006

The design of the YAP compiler: An optimizing compiler for logic programming languages

Authors
Da Silva, AF; Costa, VS;

Publication
Journal of Universal Computer Science

Abstract
Several techniques for implementing Prolog in a efficient manner have been devised since the original interpreter, many of them aimed at achieving more speed. There are two main approaches to efficient Prolog implementation: (1) compilers to bytecode and then interpreting it (emulators) or (2) compilers to native code. Emulators have smaller load/compilation time and are a good solution for their simplicity when speed is not a priority. Compilers are more complex than emulators, and the difference is much more acute if some form of code analysis is performed as part of the compilation, which impacts development time. Generation of low level code promises faster programs at the expense of using more resources during the compilation phase. In our work besides using an mixed execution mode, we design an optimizing compiler that using type feedback profiling, dynamic compilation and dynamic deoptimization for improving the performance of logic programming languages. © J.UCS.

2008

CLP(BN): Constraint logic programming for probabilistic knowledge

Authors
Santos Costa, V; Page, D; Cussens, J;

Publication
Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)

Abstract
In Datalog, missing values are represented by Skolem constants. More generally, in logic programming missing values, or existentially quantified variables, are represented by terms built from Skolem functors. The CLP( ) language represents the joint probability distribution over missing values in a database or logic program by using constraints to represent Skolem functions. Algorithms from inductive logic programming (ILP) can be used with only minor modification to learn CLP( ) programs. An implementation of CLP( ) is publicly available as part of YAP Prolog at http://www.ncc.up.pt/~vsc/Yap . © 2008 Springer-Verlag Berlin Heidelberg.

  • 16
  • 34