My research interests are mainly in areas of Artificial
Intelligence. During my PhD and in the
following years I have been working on intelligent autonomous
agents reasoning and coordination, logic and argumentation-based
dialogue and negotiation, specification and verification of agent
interaction. In particular, I have been working on runtime
monitoring and exception handling in interaction protocols,
developing modeling frameworks to specify agent interaction using
declarative tools such as backward and forward rules, the event
calculus, and social commitments.
I did my best to promote Computational Logic and MAS research
through the activities of the Italian Association for Logic
Programming (GULP), with my involvement in the steering committees
of the DALT and CLIMA workshops series, and by organizing the ISCL
and DALT Spring Schools.
In these last years, I have been interested in the emerging field
of computational social sciences, where I believe that a great deal
of progress made in logical reasoning frameworks, especially
argumentation-based, and multi-agent systems, can find promising
application and have a positive impact on the society. I also
believe that computer science research, such as that discussed at
AAMAS, COMMA, IJCAI conferences and the like, can learn a great deal from other disciplines such as social and cognitive sciences and
philosophy.
Among most recent interests, argumentation mining where I've been working with Marco Lippi, is concerned with the detection of argument from text in various genres and from speech. We have developed the first online argumentation mining system, available as a prototype on the MARGOT home page.
I am always open to collaborations. If you are interested in these
topics and want to share ideas, feel free to drop me a line. I also
encourage you to try out the software described in some of my
publications:
- The ALIAS architecture for distributed abductive reasoning,
whereby agents can share hypotheses and reach conclusions in a
collaborative fashion, using partial knowledge;
- The SCIFF framework , for interaction protocol specification
and verification. The SCIFF language is very simple and yet
powerful: you can use it to specify the way you wish a system to
behave, and then you can use the SCIFF proof-procedure to monitor
at runtime whether the system does follow your specifications. You
can express knowledge bases. SCIFF can be used in contexts such as
multi-agent interaction and normative systems. SCIFF has been a
joint endeavour between the AI group at the University of Bologna,
and colleagues at the University of Ferrara (see below).
- CLIMB, a specialization of SCIFF, somehow tailored to web
service choreographies and business protocol specifications. CLIMB
drew inspiration from work by Pesic and van der Aalst on Delare and
ConDec. CLIMB's conceptual framework and implementation were mainly
due to Marco Montali, currently in Bolzano;
- jREC, a Java runtime monitor for open systems specified using
REC, a reactive version of the Event Calculus, particularly apt to
tracking fluents online. jREC has been implemented by Marco
Montali;
- ComMon, a runtime monitor for multi-agent commitments. The
commitment specification language, REC, allows you to specify
properties that refer to a knowledge base, and reason with metric
time, i.e., "real" deadlines (not just "next" or "until" and the
like). That is why you should check it out if you want to develop
practical applications (i.e., for diagnosing exceptions in
multi-agent contracts) and you wouldn't mind doing that based on
solid theoretical background. jREC has been implemented by Marco
Montali;
- NetArg, a NetLogo model for agent based social simulations, in
particular for studying opinion dynamics [check out this video].
NetArg agents are empowered with abstract argumentation frameworks
and are meant to strike a good compromise between more basic, very
common representation of opinions (e.g., an array of real values)
and more complicated, but less popular BDI-like representations of
cognitive agents. With NetArg we want to model not only the
dynamics of opinions in social network, but also the reasons behind
opinions, expressed as arguments. NetArg was mainly implemented by
Simone Gabbriellini;
- TwitterArg, a NetLogo model for analyzing microdebates, i.e.,
streams of Tweets about a certain topic, tagged so as to mark
opinions and relations between opinions. Arguments are built
bottom-up around opinions, by grouping together Tweets about the
same opinion. TwittterArg uses ConArg, a CP-based Java reasoner
developed by Stefano Bistarelli and Francesco Santini, to compute
the semantics of abstract argumentation frameworks in an efficient
way. Arguments may have different weights, based on the number of
Tweets or re-Tweets. NetArg was mainly implemented by Simone
Gabbriellini.