Tutorials
- Michael A Covington, University of Georgia: Developing Prolog Coding
Standards
Development in any programming language is much easier and more reliable
if one adopts a consistent coding style to make the programs easily
understandable by humans as well as machines. Based on joint work with
R. Bagnara, R. A. O'Keefe, J. Wielemaker, and S. Price, this tutorial
will survey the style decisions that a Prolog programmer needs to make,
with examples and specific recommendations.
- Francesca Toni, Imperial College London: Argumentation and Logic
Programming
Computational argumentation relies on the use of arguments and attacks
between them to determine the acceptability of sentences, supported by
arguments, proportionally to their capability to defend themselves
against attacks. Computational argumentation typically provides
justifications (for sentences) in terms of dialectical trees of
arguments, which can be understood as debates. Argumentation systems
support the automatic construction of these debates from suitably
engineered knowledge bases. Computational argumentation is widely
applied within settings ranging from legal reasoning, medical
decision-making and service-oriented architectures to multi-agent
systems.
Various approaches to computational argumentation have been proposed in
the literature.
In this tutorial, I will overview the two (related) approaches of
abstract argumentation and assumption-based argumentation, and
illustrate how both have their origins in logic programming. Indeed,
these two approaches stemmed, starting in the early 90s, from attempts
to reconcile various alternative semantics for logic programming and put
logic programming (and some of its extensions, e.g. abductive logic
programming) within the broader context of non-monotonic reasoning. I
will also review some recent argumentation systems which use answer set
programming at their core. Finally, I will discuss possible further
cross-fertilisations between computational argumentation and logic
programming.