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 CRACS

2008

LogCHEM: Interactive Discriminative Mining of Chemical Structure

Authors
Costa, VS; Fonseca, NA; Camacho, R;

Publication
2008 IEEE INTERNATIONAL CONFERENCE ON BIOINFORMATICS AND BIOMEDICINE, PROCEEDINGS

Abstract
One of the most well known successes of Inductive Logic Programming (ILP) is on Structure-Activity Relationship (SAR) problems. In such problems, ILP has proved several times to be capable of constructing expert comprehensible models that hell) to explain the activity of chemical compounds based on their structure and properties. However, despite its successes on SAR problems, ILP has severe scalability problems that prevent its application oil larger datasets. In this paper we present LogCHEM, an ILP based tool for discriminative interactive mining of chemical fragments. LogCHEM tackles ILP's scalability issues in the context of SAR applications. We show that LogCHEM benefits from the flexibility of ILP both by its ability to quickly extend the original mining model, and by its ability, to interface with external tools. Furthermore, We demonstrate that LogCHEM can be used to mine effectively large chemoinformatics datasets, namely, several datasets from EPA's DSSTox database and on a dataset based on the DTP AIDS anti-viral screen.

2008

Transactional WaveCache: Towards Speculative and Out-of-Order DataFlow Execution of Memory Operations

Authors
Marzulo, LAJ; Franca, FMG; Costa, VS;

Publication
20th International Symposium on Computer Architecture and High Performance Computing, Proceedings

Abstract
The WaveScalar is the first DataFlow Architecture that can efficiently provide the sequential memory semantics required by imperative languages. This work presents a speculative memory disambiguation mechanism for this architecture, the Transaction WaveCache. Our mechanism maintains the execution order of memory operations within blocks of code, called Waves, but adds the ability to speculatively execute, our-of-order operations front different waves. This mechanism is inspired by progress in supporting Transactional Memories. Waves are considered as atomic regions and executed as nested transactions. Wave that have finished the execution of all their memory operations are committed, as soon as the previous waves are also committed. If a hazard is detected in a speculative Wave, all the following Waves (children) are aborted and re-executed. We evaluated the Transactional WaveCache oil a set of benchmarks from Spec 2000, Mediabench and Mibench (telecomm). Speedups ranging from 1.31 to 2.24 (related to the original WaveScalar) where observed when the benchmark doesn't perform lots of emulated function calls or access memory very often. Low speedups of 1.1 to slowdowns of 0.96 were observed when the opposite happens or when the memory concurrency was high.

2008

Induction as a search procedure

Authors
Konstantopoulos, S; Camacho, R; Fonseca, NA; Costa, VS;

Publication
Artificial Intelligence for Advanced Problem Solving Techniques

Abstract
This chapter introduces inductive logic programming (ILP) from the perspective of search algorithms in computer science. It first briefly considers the version spaces approach to induction, and then focuses on inductive logic programming: from its formal definition and main techniques and strategies, to priors used to restrict the search space and optimized sequential, parallel, and stochastic algorithms. The authors hope that this presentation of the theory and applications of inductive logic programming will help the reader understand the theoretical underpinnings of ILP, and also provide a helpful overview of the State-of-the-Art in the domain. © 2008, IGI Global.

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.

2008

Towards Typed Prolog

Authors
Schrijvers, T; Costa, VS; Wielemaker, J; Demoen, B;

Publication
LOGIC PROGRAMMING, PROCEEDINGS

Abstract
Prolog is traditionally not statically typed. Since the benefits of static typing are huge it was decided to grow a. portable type system inside two widely used open source Prolog systems: SWI-Prolog and Yap. This requires close cooperation and agreement, between the two systems. The type system is Hindley-Milner. The main characteristics of the introduction of types in SWI and Yap are that, typing is not mandatory, that typed and untyped code call be mixed, and that the type checker call insert dynamic type checks at the boundaries between typed and untyped code. The basic decisions and the current status of Hie Typed Prolog project are described. as well as the remaining tasks and problems to be solved.

2008

The Life of a Logic Programming System

Authors
Costa, VS;

Publication
LOGIC PROGRAMMING, PROCEEDINGS

Abstract
Logic Programming and the Prolog language have a major role in Computing. Prolog, and its derived languages, have been widely used in a impressive variety of application domains. Thus, a bit of the history of Logic Programming reflects in the history of systems such as Dec-10 Prolog [32], M-Prolog [15], C-Prolog [19], Quintus Prolog [20], SICStus Prolog [6], BIM-Prolog [17], ECLiPSe [1], BinProlog [30], SWI-Prolog [34], CIAO [14], and B-Prolog [35], to mention but a few. I briefly present the evolution of one such system, YAP, and present a personal perspective on the challenges ahead for YAP (and for Logic Programming). © 2008 Springer Berlin Heidelberg.

  • 160
  • 192