My research interests currently revolve around aspects related to Artificial Intelligence, especially in all aspects of the formalisation of common-sense reasoning. These include belief revision, abduction, argumentation theory, machine learning, probabilistic reasoning and non-monotonic reasoning in general.
I work both with the theoretical aspects AI, e.g., foundations of AI, translations between logical systems, belief revision in non-classical logics, merging of argumentation systems, as well as with the application of AI in computer science, including optmisation techniques for requirements engineering, implementation of non-monotonic reasoning systems, BDI systems, concept classification, computation of semantics of argumentation systems, and the like.
The main areas of research interest are summarised below:
- Knowledge representation
- Numerical methods of reasoning
- Agent systems
- BDI reasoning
- Optimisation, searching, etc
Formalisation of the common-sense reasoning
- Non-monotonic reasoning
- Belief revision
- Database updates
- Argumentation theory
- Voting problems and preference aggregation
- COMMA, 2016 - Programme Committee member
- KR, 2016 - Programme Committee member
- ECAI, 2016 - Programme Committee member
- IJCAI, 2017 - Programme Committee member, 2015 - Senior Programme Committee member
- AAAI, 2016 - Programme Committee member
- TAFA, 2017, 2015 - Programme Committee member
Recent PC membership
I have taught several modules at BSc and MSc level including:
- Elementary Logic with Applications (2012-2017)
- Artificial Intelligence (2002 and 2009-2016)
- Computer Science Logic (2008)
- Distributed Systems (2006 and 2007)
- Internet Systems (2005 and 2006)
- Conceptual Analysis (2003 and 2004)
- Database Systems (1999 to 2002)
- Computational Logic (2001)
- Data Structures and their Implementation in C++ (1999 and 2000)
I am currently on sabbatical leave until 1/9/2018
Revision, Acceptability and Context: Theoretic and Algorithmic Aspects  Springer, 2010.
Elementary Logic with Applications: A Procedural Perspective for Computer Scientists  College Publications, 2016.
Although my research is mostly theoretical I have always had a keen interest in the most practical implementation aspects. Computing, and consequently technology, is both my passion and my natural element. This has been the case throughout my life.
I started programming when I was very young (at around 15yo) in the days when a personal computer consisted of a TV attached to an 8-bit "computer" and programs were saved to cassete tapes. You could actually hear the phone ring and the modem tick when you wanted to connect to a remote server. In those days very little support was available to a programmer. BASIC was the most common language keen teenagers like me would use with their computers, but some things we had to do in assembler, a very rudimentary form of machine language. Then PCs came along, programming languages improved (we had Turbo Pascal, then Delphi), and commercial opportunities to make a living out of programming started to become more widespread beyond the realm of mainframes and dumb terminals. That's when a few of us at the University of Fortaleza, myself included, started opening companies and writing software professionally. I remember the first POS system I wrote, where I even had to implement a rudimentary locking mechanism myself to avoid the lost update problem, common in database systems. No database servers were available at the consumer level and only big organisations could afford them, but smaller businesses were seeing the potential for automating some core activities, such as sales, stock control, and reporting, and a few others needed the flexibility and speed that a computer could offer, for instance when calculating the forces applied to a structure supporting a roof. These were the types of problems that spurred my curiosity as a teenager. But if we could solve those problems with a computer, could a machine actually think, or at least behave as if it could?
I quickly realised that I needed to study more, so I applied for a MSc in Artificial Intelligence at COPPE, in the Federal University of Rio de Janeiro, some 3000km away from the city I lived in. The masters then led me to a PhD in Artificial Intelligence, this time even farther away at Imperial College London, 9000km away from Rio.
My first job after my PhD was as Research Assistant in a project involving the development of data-driven algorithms for artificial intelligence. In retrospect, that project was very ahead of its time in 1998.
I am currently Senior Lecturer at King's College London and have taught thousands of students in most of the core computing disciplines: database systems, distributed systems, C++ programming, computational logic, internet systems, artificial language, classical logic, and the like.
I have had a wide variety of administrative duties including publications and publicity, MSc admissions, and more recently I have been chairing the Computing Committee, initially for the Department of Informatics and in the last few years for the whole Faculty of Natural and Mathematical Sciences. Throughout this period, we have seen good progress and exciting new things hapenning at King's, including the inception of HPC facilities such as ADA and Rosalind.
In recent years, my research has veered towards the more practical aspects of common-sense reasoning, particularly in the area of argumentation theory. From dialogues to semantics, including devising numerical methods for argumentation systems and investigating all aspects related to their implementation.
Last year I submitted the prototype of a numerical solver to the first International Competition on Computational Models of Argumentation called GRIS based on theoretical research I had done on numerical argumentation. The prototype showed potential and I have since been working towards implementing a more robust solver called EqArgSolver. The significance of an argumentation solver such as EqArgSolver is that, unlike in reduction-based solvers, it operates on the argumentation graph directly. This puts it in a more robust position to tackle future argumentation problems that may not be possible to solve using reduction-based solvers.
EqArgSolver is not yet ready for general release, but following recent theoretical work, I have implemented a faster core component to replace GRIS' and the development version has already shown up to 12x increase in performance in comparison to GRIS. I have presented these developments in the recent SAFA workshop co-located with COMMA 16. Before EqArgSolver is ready for the next ICCMA, a new key algorithm needs to be developed and shown to be correct before its subsequent implementation. This is currently under way.
EqArgSolver is an argumentation solver that can be used to compute solutions to enumeration and decision problems in the grounded, complete, preferred and stable semantics.
EqArgSolver supersedes GRIS, which was submitted to the 1st International Competition on Computational Models of Argumentation.
EqArgSolver provide a more comprehensive range of semantics, has a smaller memory footprint, and it is up to 12x faster than GRIS. EqArgSolver will be available for general release in Spring 2017. Please check this page for further announcements.
More details about EqArgSolver can be found here.
- EPSRC grant number EP/E034446/1, Connections between belief revision, belief merging and voting, 2006
- EPSRC grant number GR/R44706/01, Belief Contraction and Anti-Formulae. Logical Modelling of Deletion, 2002-2005
Things I like to do
Office hours (until Summer 2017)
- Thursdays 2pm-3pm, Strand Building, S1.19
Contact detailsDr. Odinaldo Rodrigues
King's College London
Department of Informatics
London, WC2R 2LS, UK
Tel.: +44 20 7848 2087
Fax: +44 20 7848 2851
Office: Bush House (N)7.08