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
Interest
Topics
Details

Details

  • Name

    Vítor Santos Costa
  • Role

    Senior Researcher
  • Since

    01st January 2009
006
Publications

2025

Regular Typed Unification

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

Publication
ELECTRONIC PROCEEDINGS IN THEORETICAL COMPUTER SCIENCE

Abstract
Here we define a new unification algorithm for terms interpreted in semantic domains denoted by a subclass of regular types here called deterministic regular types. This reflects our intention not to handle the semantic universe as a homogeneous collection of values, but instead, to partition it in a way that is similar to data types in programming languages. We first define the new unification algorithm which is based on constraint generation and constraint solving, and then prove its main properties: termination, soundness, and completeness with respect to the semantics. Finally, we discuss how to apply this algorithm to a dynamically typed version of Prolog.

2025

On Bridging Prolog and Python to Enhance an Inductive Logic Programming System

Authors
Santos Costa, VMdM; Areias, M;

Publication
Practical Aspects of Declarative Languages - 27th International Symposium, PADL 2025, Denver, CO, USA, January 20-21, 2025, Proceedings

Abstract
Prolog is a programming language that provides a high-level approach to software development. Python is a versatile programming language that has a vast range of libraries including support for data analysis and machine learning tasks. We present a Prolog-Python interface that aims at exploiting Prolog deduction capabilities and Python’s extensive libraries. Our novel interface was built using a divide and conquer methodology. In a first step, we implemented a set of C++ classes that can be matched to Python classes; next, we used an interface generator to export the relevant classes. Finally, we use C code to actually convert between the two realms. In order to demonstrate the usefulness of the interface, we enhance an Inductive Logic Programming System with a visualization capabilities and show how to interface with a standard classifier. © The Author(s), under exclusive license to Springer Nature Switzerland AG 2025.

2024

Yet Another Lock-Free Atom Table Design for Scalable Symbol Management in Prolog

Authors
Moreno, P; Areias, M; Rocha, R; Costa, VS;

Publication
INTERNATIONAL JOURNAL OF PARALLEL PROGRAMMING

Abstract
Prolog systems rely on an atom table for symbol management, which is usually implemented as a dynamically resizeable hash table. This is ideal for single threaded execution, but can become a bottleneck in a multi-threaded scenario. In this work, we replace the original atom table implementation in the YAP Prolog system with a lock-free hash-based data structure, named Lock-free Hash Tries (LFHT), in order to provide efficient and scalable symbol management. Being lock-free, the new implementation also provides better guarantees, namely, immunity to priority inversion, to deadlocks and to livelocks. Performance results show that the new lock-free LFHT implementation has better results in single threaded execution and much better scalability than the original lock based dynamically resizing hash table.

2024

Program Synthesis using Inductive Logic Programming for the Abstraction and Reasoning Corpus

Authors
Rocha, FM; Dutra, I; Costa, VS;

Publication
CoRR

Abstract
The Abstraction and Reasoning Corpus (ARC) is a general artificial intelligence benchmark that is currently unsolvable by any Machine Learning method. It demands strong generalization and reasoning capabilities, which are known to be weaknesses of Neural Network-based systems. In this work, we propose a Program synthesis system to solve ARC, Induce Logic Programs for Abstract Reasoning (ILPAR), which casts an ARC problem as a sequence of Inductive Logic Programming (ILP) problems. We have implemented a simple Domain Specific Language (DSL) that corresponds to a small set of object-centric abstractions relevant to ARC. This is Background Knowledge used by ILP to create abstract Logic Programs that provide reasoning capabilities to our system. When solving each ARC task, ILPAR can generalize from a few training examples: pairs of Input-Output grids. The Logic Programs are able to generate objects present in the Output grid and the combination of these can transform an Input grid into an Output grid. We randomly chose some tasks from ARC that do not require more than the small number of primitives we implemented in our DSL and showed that providing only this to ILPAR, it can solve tasks that require each different reasoning. © The Author(s), under exclusive license to Springer Nature Switzerland AG 2025.

2024

The Impact of Feature Selection on Balancing, Based on Diabetes Data

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

Publication
BIOMEDICAL ENGINEERING SYSTEMS AND TECHNOLOGIES, BIOSTEC 2023

Abstract
Diabetes management data is composed of diverse factors and glycaemia indicators. Glycaemia predictive models tend to focus solely on glycaemia values. A comprehensive understanding of diabetes management requires the consideration of several aspects of diabetes management, beyond glycaemia. However, the inclusion of every aspect of diabetes management can create an overly high-dimensional data set. Excessive feature spaces increase computational complexity and may introduce over-fitting. Additionally, the inclusion of inconsequential features introduces noise that hinders a model's performance. Feature importance is a process that evaluates a feature's value, and can be used to identify optimal feature sub-sets. Depending on the context, multiple methods can be used. The drop feature method, in the literature, is considered to be the best approach to evaluate individual feature importance. To reach an optimal set, the best approach is branch and bound, albeit its heavy computational cost. This overhead can be addressed through a trade-off between the feature set's optimisation level and the process' computational feasibility. The improvement of the feature space has implications on the effectiveness of data balancing approaches. Whilst, in this study, the observed impact was not substantial, it warrants the need to reconsider the balancing approach given a superior feature space.

Supervised
thesis

2023

Towards Early detection of faults and failures in complex systems

Author
Christopher David Harrison

Institution
UP-FCUP

2023

Advising Diabetes’ self-management supported by user data in a mobile platform

Author
Diogo Roberto de Melo e Diogo Machado

Institution
UP-FCUP

2023

Overcoming the current limitations of Reinforcement Learning towards Artificial General Intelligence

Author
Filipe Emanuel dos Santos Marinho da Rocha

Institution
UP-FCUP

2023

Type Assignment in Logic Programming

Author
João Luis Alves Barbosa

Institution
UP-FCUP

2023

Towards Early detection of faults and failures in complex systems

Author
Christopher David Harrison

Institution
UP-FCUP