
Salvador Abreu- PhD
- Professor (Full) at Universidade de Évora
Salvador Abreu
- PhD
- Professor (Full) at Universidade de Évora
About
121
Publications
11,816
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
750
Citations
Introduction
Current institution
Additional affiliations
May 1995 - present
Publications
Publications (121)
Active Logic Documents (ALD) are web pages which incorporate embedded Prolog engines that run locally within the browser. ALD offers both a very easy way to add click-to-run capabilities to any kind of teaching materials, independently of the tool used to generate them, as well as a tool-set for generating web-based materials with embedded examples...
Teaching materials for programming languages, and Prolog in particular, classically include textbooks, slides, notes, and exercise sheets, together with some Prolog programming environment. However, modern web technology offers many opportunities for embedding interactive components within such teaching materials. We report on our experiences in de...
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 ke...
(Under consideration for publication in Theory and Practice of Logic Programming)
Both logic programming in general, and Prolog in particular, have a long and fascinating history, inter-mingled 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...
Critical infrastructures must be able to mitigate, at runtime, suspected ongoing cyberattacks that have eluded preventive security measures. To tackle this issue, we first propose an autonomic computing architecture for a Cyber-Security Incident Response Team Intelligent Decision Support System (CSIRT-IDSS) with a precise set of technologies for ea...
The Quadratic Assignment Problem (QAP) is one of the most challenging combinatorial optimization problems with many real-life applications. Currently, the best solvers are based on hybrid and parallel metaheuristics, which are actually highly complex and parametric methods. Finding the best set of tuning parameters for such methods is a tedious and...
This book constitutes revised selected papers from the 22nd International Conference on Applications of Declarative Programming and Knowledge Management, INAP 2019, the 33rd Workshop on Logic Programming, WLP 2019, and the 27th Workshop on Functional and (Constraint) Logic Programming, WFLP 2019.
The 15 full papers and 1 short paper presented in t...
Local Search meta-heuristics have been proven a viable approach to solve difficult optimization problems. Their performance depends strongly on the search space landscape, as defined by a cost function and the selected neighborhood operators. In this paper we present a logic programming based framework, named Noodle, designed to generate bespoke Lo...
Local Search meta-heuristics have been proven a viable approach to solve difficult optimization problems. Their performance depends strongly on the search space landscape, as defined by a cost function and the selected neighborhood operators. In this paper we present a logic programming based framework, named Noodle, designed to generate bespoke Lo...
This volume constitutes the pre-proceedings of the DECLARE 2019 conference, held on September 9 to 13, 2019 at the University of Technology Cottbus - Senftenberg (Germany). Declarative programming is an advanced paradigm for the modeling and solving of complex problems. This method has attracted increased attention over the last decades, e.g., in t...
We present a versatile architecture for AI-powered self-adaptive self-certifiable critical systems. It aims at supporting semi-automated low-cost re-certification for self-adaptive systems after each adaptation of their behavior to a persistent change in their operational environment throughout their lifecycle.
Neighborhood operators play a crucial role in defining effective Local Search solvers, allowing one to limit the explored search space and prune the fitness landscape. Still, there is no accepted formal representation of such operators: they are usually modeled as algorithms in procedural language, lacking in compositionality and readability. In th...
Definite Clause Grammars (DCGs) are a convenient way to specify possibly non-context-free grammars for natural and formal languages. They can be used to progressively build a parse tree as grammar rules are applied by providing an extra argument in the DCG rule’s head. In the simplest way, this is a structure that contains the name of the used nont...
As with Amazon’s Echo and its conversational agent Alexa, smart voice-controlled devices become ever more present in daily life, and many different applications can be integrated into this platform. In this paper, we present a framework that eases the development of skills in Prolog. As Prolog has a long history in natural language processing, we m...
Recently, we developed the Parallel Heterogeneous Architecture Constraint Toolkit (PHACT), which is a multi-threaded constraint solver capable of using all the available devices which are compatible with OpenCL, in order to speed up the constraint satisfaction process. In this article, we introduce an evolution of PHACT which includes the ability t...
We propose PHYSH (Parallel HYbridization for Simple Heuristics), a framework to ease the design and implementation of hybrid metaheuristics via cooperative parallelism. With this framework, the user only needs encode each of the desired metaheuristics and may rely on PHYSH for parallelization, cooperation and hybridization. PHYSH supports the combi...
Many real-life applications can be formulated as Combinatorial Optimization Problems, the solution of which is often challenging due to their intrinsic difficulty. At present, the most effective methods to address the hardest problems entail the hybridization of metaheuristics and cooperative parallelism. Recently, a framework called CPLS has been...
Local search metaheuristics are a recognized means of solving hard combinatorial problems. Over the last couple of decades, significant advances have been made in terms of the formalization, applicability and performance of these methods. Key to the performance aspect is the increased availability of parallel hardware, which turns out to be largely...
Declarative if–then rules have proven very useful in many applications of expert systems. They can be managed in deductive databases and evaluated using the well-known forward-chaining approach. For domain-experts, however, the syntax of rules becomes complicated quickly, and already many different knowledge representation formalisms exist. Expert...
This book constitutes revised selected papers from the 21st International Conference on Applications of Declarative Programming and Knowledge Management, INAP 2017, the 31st Workshop on Logic Programming, WLP 2017, and the 25th Workshop on Functional and (Constraint) Logic Programming, WFLP 2017. The 12 full papers presented in this volume were car...
For representing knowledge in intelligent systems in a declarative and natural way, two major approaches have been used in the past: (1) domain-specific languages (DSLs), and (2) controlled natural languages (CNLs). Early DSLs were defined by technical and abstract syntaxes, e.g., for EBNF and regular expressions. More recently, there is a trend in...
The Quadratic Assignment Problem is at the core of several real-life applications. Finding an optimal assignment is computationally very difficult, for many useful instances. The best results are obtained with hybrid heuristics, which result in complex solvers. We propose an alternate solution where hybridization is obtain by means of parallelism a...
In this paper, we use declarative and domain–specific languages for representing expert knowledge in the field of change management in organisational psychology. Expert rules obtained in practical case studies are represented as declarative rules in a deductive database. The expert rules are annotated by information describing their provenance and...
Several real-life applications can be stated in terms of the Quadratic Assignment Problem. Finding an optimal assignment is computationally very difficult, for many useful instances. We address this problem using a local search technique, based on Extremal Optimization and present experimental evidence that this approach is competitive. Moreover, c...
FM development requires a solid bioinformatics analysis pipeline in order to
minimize the need for human curation of data, variant calling and for predicting
candidate functional polymorphisms. Here we describe the development of
novel tools which reduce the need for human curation of data and improve the
accuracy of variant detection. There are se...
Hospitals/Residents with Ties (HRT) forms a class of problems with many applications, some of which are of considerable size. Solving these problems has been shown to be NP-hard. In previous work, we developed a local search algorithm which displays very high performance in solving Stable Matching with Ties and Incomplete lists (SMTI) problems. In...
In this work, we present a 3D web-based interactive tool for numerical modeling and simulation approach to breast reduction surgery simulation, to assist surgeons in planning all aspects related to breast reduction surgery before the actual procedure takes place, thereby avoiding unnecessary risks. In particular, it allows the mod-eling of the init...
Stable matching problems have several practical applications. If preference lists are truncated and contain ties, finding a stable matching with maximal size is computationally difficult. We address this problem using a local search technique, based on Adaptive Search and present experimental evidence that this approach is much more efficient than...
Constraint satisfaction and combinatorial optimization problems, even when modeled with efficient metaheurisics such as local search remain computationally very intensive. Solvers stand to benefit significantly from execution on parallel systems, which are increasingly available. The architectural diversity and complexity of the latter means that t...
This paper describes three significant extensions for the Finite Domain solver of GNU Prolog. First, the solver now supports negative integers. Second, the solver detects and prevents integer overflows from occurring. Third, the internal representation of sparse domains has been redesigned to overcome its current limitations. The preliminary perfor...
In this paper we address the problem of parallelizing local search. We propose a general framework where different local search en-gines cooperate (through communication) in the quest for a solution. Several parameters allow the user to instantiate and customize the frame-work, like the degree of intensification and diversification. We imple-mented...
Constraint-Based Local Search (CBLS) consist in using Local Search methods [4] for solving Constraint Satisfaction Problems (CSP). In order to further improve the performance of Local Search, one possible option is to take advantage of the increasing availability of parallel computational resources. Parallel implementation of local search meta-heur...
We present the parallel implementation of a constraint-based Local Search algorithm and investigate its performance on several hardware platforms with several hundreds or thousands of cores. We chose as the basis for these experiments the Adaptive Search method, an efficient sequential Local Search method for Constraint Satisfaction Problems (CSP)....
Recent developments in computer architecture progress towards connected systems with a large core count, which expose more parallelism to applications, creating a hierarchical setup at the node and cluster levels. Declarative approaches such as those based on constraints are attractive to parallel programming because they concentrate on the logic o...
In this study, we started to investigate how the Partitioned Global Address Space (PGAS) programming language X10 would suit the implementation of a Constraint-Based Local Search solver. We wanted to code in this language because we expect to gain from its ease of use and independence from specific parallel architectures. We present the im-plementa...
In this study, we have investigated the adequacy of the PGAS parallel
language X10 to implement a Constraint-Based Local Search solver. We decided to
code in this language to benefit from the ease of use and architectural
independence from parallel resources which it offers. We present the
implementation strategy, in search of different sources of...
Purpose—finding ways of improving learning in a formal higher education context. Design/methodology/approach—in the proposed model we will consider extending traditional content management systems, giving learners the possibility to add new materials and to rate them, and a hybrid strategy that combines technical recommendations with some profile-b...
NeMODe is a declarative system for computer network intrusion detection, providing a declarative domain specific language for describing network intrusion signatures which can span several network packets, by stating constraints over network packets, describing relations between several packets in a declarative and expressive way. It provides sever...
Declarative techniques such as Constraint Programming are very useful in modeling complex requirements. They have the added benefit of being executable specifications and, when properly tuned, high-performance ones. In this paper we argue that Information Systems ought to include constraint-based techniques in their design and implementation. We su...
Local search is a successful approach for solving combinatorial optimization
and constraint satisfaction problems. With the progressing move toward multi
and many-core systems, GPUs and the quest for Exascale systems, parallelism has
become mainstream as the number of cores continues to increase. New programming
models are required and need to be b...
Constraint Programming is one approach to declarative programming where a problem is modeled as a set of variables with a domain and a set of relations (constraints) between them. Constraint-based Local Search builds on the idea of using constraints to describe and control local search. Problems are modeled using constraints and heuristics for whic...
This book constitutes revised selected papers of the 19th International Conference on Applications of Declarative Programming and Knowledge Management, INAP 2011, and the 25th Workshop on Logic Programming, WLP 2011, held in Vienna, Austria, in September 2011. The 19 papers presented in this volume were carefully reviewed and selected from 27 paper...
We present a parallel implementation of a constraint-based local search algorithm and investigate its performance results for hard combinatorial optimization problems on two different platforms up to several hundreds of cores. On a variety of classical CSPs bench- marks, speedups are very good for a few tens of cores, and good up to a hundred cores...
The Costas Array Problem is a highly combina- torial problem linked to radar applications. We present in this paper its detailed modeling and solving by Adaptive Search, a constraint-based local search method. Experiments have been done on both sequential and parallel hardware up to several hundreds of cores. Performance evaluation of the sequentia...
We investigated the use of the Cell Broadband Engine (Cell/BE) for constraint-based local search and combinatorial optimization applications. We presented a parallel version of a constraint-based local search algorithm that was chosen because it fits very well the Cell/BE architecture because it requires neither shared memory nor communication amon...
The Costas Array Problem is a highly combinatorial problem linked to radar applications. We present in this paper its detailed mod-eling and solving by Adaptive Search, a constraint-based local search method. Experiments have been done on both sequential and parallel hardware up to several hundreds of cores. Performance evaluation of the sequential...
These are the revised versions of the papers presented at CICLOPS 2011, a
workshop colocated with ICLP 2011.
The boundary between the trusted inside and the untrusted outside blurs when a company adopts cloud computing. The organization's applications-and data-are no longer onsite, fundamentally changing the definition of a malicious insider.
The recent developments in computer architectures progress towards systems with large core count (Manycore) which expose more
parallelism to applications. Some applications named irregular and unbalanced applications demand a dynamic and asynchronous
load balance implementation to utilize the full performance a Manycore system. For example, the rec...
We present a parallel implementation of a constraint-based local search algorithm and investigate its performance results
on hardware with several hundreds of processors. We choose as basic constraint solving algorithm for these experiments the
”adaptive search” method, an efficient sequential local search method for Constraint Satisfaction Problem...
We present a parallel implementation of a constraint-based local search algorithm and investigate its performance results on hardware with several hundreds of processors.
In this work we present NeMODe a declarative system for Computer Network Intrusion detection which provides a declarative
Domain Specific Language for describing computer network intrusion signatures that could spread across several network packets,
which allows to state constraints over network packets, describing relations between several packets...
In this work we demonstrate how to model and perform the detection of Distributed Network attacks using NeMODe, a declarative system for Computer Network Intrusion Detection which provides a declarative Domain Specific Language for describing computer network intrusion signatures which span several network packets by stating constraints over networ...
With the increased availability of affordable parallel and dis-tributed hardware, programming models for these architectures has be-come the focus of significant attention. Constraint programming, which can be seen as the encoding of processes as a Constraint Satisfaction Problem, because of its data-driven and control-insensitive approach is a pri...
This book constitutes the thoroughly refereed post-conference proceedings of the 18th International Conference on Applications of Declarative Programming and Knowledge Management, INAP 2009, held in Évora, Portugal, in November 2009. The 12 revised full papers presented together with 2 invited talks were carefully reviewed and selected during two r...
GNU Prolog is a general-purpose implementation of the Prolog language, which distinguishes itself from most other systems by being, above all else, a native-code compiler which produces standalone executables which don't rely on any byte-code emulator or meta-interpreter. Other aspects which stand out include the explicit organization of the Prolog...
With the dissemination of affordable parallel and distributed hardware, parallel and distributed constraint solving has lately been the focus of some attention. To effectually apply the power of distributed computational systems, there must be an effective sharing of the work involved in the search for a solution to a Constraint Satisfaction Proble...
Logic programming provides a very high-level view of programming, which comes at the cost of some execution efficiency. Improving performance of logic programs is thus one of the holy grails of Prolog system implementations and a wide range of approaches have historically been taken towards this goal. Designing computational models that both exploi...
We investigate the use of the Cell Broadband Engine (Cell/BE) for Combinatorial Optimization applications. We present a parallel
version of a constraint-based Local Search algorithm which was chosen because it fits very well the Cell/BE architecture since
it requires neither shared memory nor communication between processors. The performance study...
Intrusion Detection Systems (IDS) are increasingly important in computer networks, allowing the early diagnosis and detection of anomalous situations, which could otherwise put network performance at risk or even compromise the security or integrity of user data. In this work we present NeMODe, a domain specific language for network intrusion detec...
In this paper we propose to extend the logical framework ISCO (Information System COnstruction language) with an expressive
means of representing and implicitly using temporal information. Moreover, we also provide a compilation scheme that targets
a logic language with modularity and temporal reasoning.
Network Monitoring and Intrusion Detection Systems plays an important role in today’s computer networks health, allowing the
diagnosis and detection of anomalous situations on the network that could damage the performance and put the security of users
data in risk if not detected or diagnosed in time to take any necessary measures.
In this paper w...
We explore the use of the Cell Broadband Engine (Cell/BE for short) for combinatorial optimization applications: we present a parallel version of a constraint-based local search algorithm that has been implemented on a multiprocessor BladeCenter machine with twin Cell/BE processors (total of 16 SPUs per blade). This algorithm was chosen because it...
We explore the use of the Cell Broadband Engine (Cell/BE for short) for combinatorial optimization applications: we present a parallel version of a constraint-based local search algorithm that has been implemented on a multiprocessor BladeCenter machine with twin Cell/BE processors (total of 16 SPUs per blade). This algorithm was chosen because it...
Standardization for Prolog came during the 1990's, initially and deliberately leaving out one aspect which is essential for real world application development: the modularity mechanism. This situation has in the meantime been remedied in the current ISO proposal for modules in Prolog. In this article we build on our previous work on Contextual Logi...
The system presented in this paper uses Contextual Logic Programming as a computational hub for representing and reasoning over knowledge modeled by web ontologies, integrating the approach with similar mechanisms which we already developed. As a result of its Logic Programming heritage, the system may also recursively interrogate other ontologies...
Albeit temporal reasoning and modularity are very prolific fields of research in logic programming (LP), we find few examples of their integration. In this paper we propose the addition of temporal annotations to a modular extension of LP. Moreover, we also provide a sketch for a compiler, allowing this way for the development of applications based...
The system presented in this paper aims at using Contextual Logic Programming as a computational hub for knowledge modeled by web ontologies and enable querying that representation. The components required to behave as a SPARQL query engine are explained and examples of semantic integration of different sources are shown.
We describe a system in which Contextual Logic Program- ming is used as a mediator for knowledge modeled by ontologies. Our system provides the components required to behave as a SPARQL query engine and, as a result of its Logic Programming heritage, it may also recursively interrogate other ontologies or data repositories, providing a semantic int...
Albeit temporal reasoning and modularity are very prolic elds of research in Logic Programming (LP) we nd few examples of their integration. Moreover, in those examples, time and modularity are considered orthogonal to each other. In this paper we propose the addi- tion of temporal annotations to a modular extension of LP such that the usage of a m...
In this paper we propose the combination of modularity and temporal reasoning using logic programming as common ground. More- over, we consider that the usage of a given module is inuenced by tem- poral constraints, i.e. modularity and temporal reasoning are strongly connected. Besides illustrative examples, we also present the operational semantic...
Contextual Logic Programming was proposed by Monteiro and Porto [4] as a means of bringing modularity to the Prolog language. It was improved upon as a practical extension in a high performance Prolog system by Abreu and Diaz [1], providing a program structuring mechanism as well as fulfilling some of Prolog’s shortcomings when used for programming...
The importance of temporal representation and reasoning is well known not only in the database community but also in the artificial intelligence one. Contextual Logic Programming [António Porto and Luís Monteiro. Contextual logic programming. In Giorgio Levi and Maurizio Martelli, editors, Proceedings 6th Intl. Conference on Logic Programming, Lisb...
This article merges two approaches: one dealing with persis- tence for logic programs, as provided by a relational database back-end and another which addresses the issues of logic program structuring, by way of the parametric context. We claim that these two can be eectively combined to obtain a language which oers significant gains in expres- siv...
In this article we claim that Contextual Constraint Logic Pro-gramming (CCxLP for short) is a powerful paradigm in which to design and implement Organizational Information Systems, particularly when integrated with the ISCO/ISTO mediator framework. We briefly introduce the language and its under-lying paradigm, assessing it from the angle of its an...
There has been an increased interest in temporal reasoning from areas such as database systems and AI. In this paper we propose a temporal reasoning framework that bridges the paradigms of Con- straint Logic Programming (CLP) and Contextual Logic Programming (CxLP). CLP is used to build a rather simple, yet powerful temporal algebra with points, in...
The current proposals for the inclusion of modules in the ISO Prolog standard are not very consensual. Since a program-structuring feature is required for a production programming language, several alternatives have been explored over the years.
In this article we recall and expand on the concepts of Contextual Logic Programming, a powerful and sim...
Spurred by the development of Universidade de vora's Integrated Information System (SIIUE) and on the authors' present research interests came the idea of a Natural Language Analysis System, which would provide a simple interface for getting access to existent information.
The importance of temporal representation and reasoning is well known to the database community. Examples of such significance are the languages TSQL2 and its follow up, SQL/Temporal. Contextual Logic Programming (CxLP) is a powerful and simple mecha- nism which addresses the general issue of modularity in Logic Program- ming. In this paper we prop...
We present a logic programming based dialogue system that enables the access in natural language to the heterogeneous external relational databases of the Évora University. The proposed system has the capability of inferring user attitudes and uses ISCO in order to view the University relational databases as a part of a declarative/deductive object...
A logic programming based dialogue system with the capability of inferring user attitudes and accessing heterogeneous external
relational databases while doing syntactic and semantic sentence parsing is presented.
The system was built using a logic programming language - Prolog -, a development tool - ISCO [2] - and a language for representing act...
Evora's Integrated Information System (SIIUE) aims at representing the entire universe of concepts useful for the management and day-to-day operation of the Organization, as seen from the point of view of several di#erent classes of users. It relies on ISCO, a logic programming language geared towards the development and maintenance of organization...
In this article we describe the mechanisms offered by the ISCO [2, 1] language for defining and implementing access control and homologation, within the scope of a large-scale information system. ISCO is a Logic-based system which integrates multiple heterogenous information sources such as classical relational databases or LDAP directories.
Spurred by the development of Universidade de Évora's Integrated Information System (SIIUE) and on the authors' present research interests came the idea of a Natural Language Analysis System, which would provide a simple interface for getting access to existent information. This information is stored mainly in multiple object-relational databases....
This article introduces AJACS (Another Java Constraint Programming System), a toolkit for Concurrent Constraint programming implemented in the Java language. It comes as a successor to our previous work in implementing Constraint Programming idioms in Java, GC [5], in that it represents an attempt to deal with some of GC's inadequacies in terms of...
Universidade de Évoras Integrated Information System (SIIUE) aims at representing the entire universe of concepts useful for the man-agement and day-to-day operation of the Organization. It relies on a first-order logic Description Language to define the schema, represent data and computed relations. This representation is used to generate an obje...
This paper discusses some basic ideas about the implementation of GC, a constraint propagation system, with three different implementations of finite variables domains. As it has been our wish to develop a system that uses the OO approach, it is implemented in Java, although other application frameworks are also available for C++.The constraint pro...