Proposals

Available Projects

There are several possible projects on disparate topics, categorised below. Roughly, each first-level dot corresponds to a project.

MAS programming and simulation

Making programming frameworks simulable

MakeAgentSpeak(L) systems simulable through discrete event simulators:

  • Make Jason-based systems simulable over Alchemist

Designing a simulable framework for agent programming

  • Design and prototyping a simulable framework for behavioural (JADE-like) agent programming as a Kotlin DSL
  • Design and prototyping of an AgentSpeak(L) implementation as a Kotlin DSL, in TuSoW

tuProlog in Kotlin (2P-Kt)

General references

Clauses storage

  • Design and prototyping of efficient data structures for clause storaging, optimised for either retrieval and modification of clauses
    • Bechmarks for comparisons
Design and prototyping of storage layers backed by DBMS technologies

(Bechmarks should be defined for each implementation)

Support for other platforms

References

JS-Browser support
  • Complete support for 2P-Kt compilation and testing over JS Client Side, through Kotlin/JS compiler
Native support
  • Make 2P-Kt compilable and testable over Native Platforms (Win, Linux, MacOS), through Kotlin/Native compiler
Python support
  • Wrap the natively-compiled version of 2P-Kt into a Python library, armonising the API for Python developers
    • Requires native support
  • Explore, design, and prototype other solutions
.NET support
  • Wrap the natively-compiled version of 2P-Kt into a .NET library, armonising the API for .NET developers
    • Requires native support
  • Explore, design, and prototype other solutions

Design and implementation of libraries

  • Complete support for Standard library
  • Design, and prototype the Standard IO library
  • Design, and prototype a novel OO library
  • Design, and prototype a list manipulation library
  • Design, and prototype a set manipulation library
  • Design, and prototype a DFG manipulation library
  • Propose, design, and prototype your own library

Design and implementation of tools/features

  • Design, and prototype integration of 2P-Kt with the IntelliJ IDE
  • Design, and prototype integration of 2P-Kt with the Eclipse IDE
  • Design, and prototype integration of 2P-Kt with the Atom IDE
  • Design, and prototype integration of 2P-Kt with the Visual Studio Code IDE
  • Design, and prototype a novel JVM-based IDE for 2P-Kt
  • Design, and prototype a novel Web-based IDE for 2P-Kt
  • Design, and prototype an extension for the 2P-Kt solver supporting tail-recursion optimisation
  • Design, and prototype a multi-platform module for 2P-Kt supporting JSON/YAML (de)serialization
  • Design, and prototype a Web Service for accessing 2P-Kt facilities remotely
    • (may require a (de)serialization module)
Tabled Prolog
  • SLR on Tableb tesolution in Prolog
    • theoretical background
    • main approaches (+ similarities and differences)
    • main technologies (+ comparisons)
  • Design, and prototype an extension for the 2P-Kt solver supporting tabled resolution
Labelled Variables in Logic Programming (LVLP)

References

Projects

  • Extend 2P-Kt to support LVLP
Concurrent Resolution
  • SLR on concurrent resolution in Prolog
    • theoretical background
    • main approaches (+ similarities and differences)
    • main technologies (+ comparisons)
  • Design, and prototype an extension for the 2P-Kt solver some sort of concurrent resolution

Design and production of a comprehensive Orchid manual (1-2 people)

The main goal here is to produce a comprehensive Orchid manual describing 2P-Kt's architecture, design, implementation, and development/maintenance process.

Consider this as a bibliographic project focused on technologies. In the end, the student(s) will become expert with non-trivial aspects of the following technologies:

  • Gradle Build System
  • GitLab CI
  • Maven Central / Bintray publication of Maven artifacts
  • Orchid site generator
  • Kotlin Multi-platform projects and their subtleties
  • ANTLR
  • Prolog

This project is of particular interest for students willing to exploit 2P-Kt in their master theses

Logic Programming, and Automatic Reasoning

References:

Inductive Logic Programming (ILP)

  • SLR on Inductive Logic Programming
    • theoretical background
    • main approaches (+ similarities and differences)
    • main technologies (+ comparisons)
  • Design, and prototype an implementation for the resolution inversion approach
    • Consider integration in 2P-Kt
  • Design, and prototype an implementation for the "construction of relative least general generalisations" approach
    • Consider integration in 2P-Kt
  • Design, and prototype an implementation for the "inverting entailment" approach
    • Consider integration in 2P-Kt

Abductive Logic Program

  • SLR on Abduction in Logic Programming
    • theoretical background
    • main approaches (+ similarities and differences)
    • main technologies (+ comparisons)
  • Design and implementation of a 2P-Kt library for Abduction
Abduction and integrity constraints

Abductive logic programs have three components ⟨P, A, IC⟩ where: P is a logic program of exactly the same form as in logic programming, A is a set of predicate names, called the abducible predicates, IC is a set of first-order classical formulae. Normally, the logic program P does not contain any clauses whose head (or conclusion) refers to an abducible predicate. Also in practice, the integrity constraints in IC are often restricted to the form of denials, i.e. clauses of the form: false :- A1, ..., An, not B1, ..., not Bm. Such a constraint means that it is not possible for all A1, ..., An to be true and at the same time all of B1,...,Bm to be false. The domain-specific knowledge can be represented as integrity constraints.

  • Design and implementation of a 2P-Kt library for Abduction

Answer Set Programming

  • SLR on Answer Set Programming in Logic Programming
    • theoretical background
    • main approaches (+ similarities and differences)
    • main technologies (+ comparisons)
  • TODO

Constraint Logic Programming

  • SLR on Constraint Logic Programming
    • theoretical background
    • main approaches (+ similarities and differences)
    • main technologies (+ comparisons)
  • TODO
Constraint Handling Rules
  • SLR on Constraint Handling Rules
    • theoretical background
    • main approaches (+ similarities and differences)
    • main technologies (+ comparisons)
  • TODO

Defeasible Reasoning

  • SLR on Defeasible Resoning
    • theoretical background
    • main approaches (+ similarities and differences)
    • main technologies (+ comparisons)
  • TODO
Argumentation
  • SLR on argumentation algorithms
    • theoretical background
    • main approaches (+ similarities and differences)
    • main technologies (+ comparisons)
  • Design, and prototype an argumentation algorithm of choice
  • Migration of the Arg-2P meta-solver from 2P-Java to 2P-Kotlin
    • involves the creations of tests
  • Arg-2P from meta-solver to solver in 2P-Kt

(Arg-2P è un meta-interprete che poggia su 2P e data una teoria costruisce grafo di argomentazione e labelling associato)

  • Arg-2P implement other argumentation semantics (other than the grounded one)
  • SLR on Modularity in Argumentation
    • theoretical background
    • main approaches (+ similarities and differences)
    • main technologies (+ comparisons)
  • Design, and prototype a technological reification for the "Modularity in Argumentation" theory

  • SLR on dialogical argumentation protocols
    • theoretical background
    • main approaches (+ similarities and differences)
    • main technologies (+ comparisons)
  • Design, and prototype an argumentation protocol of choice in Jason

Coordination

Referecens:

Parallel and Distributed Algorithrms in TuSoW

Projects:

References:

Tuple centres in TuSoW

Uniform primitives in TuSoW

Probability and Uncertainty

  • Design, and prototype a JVM-based framework for filtering problems
    • may support either (Extended) Kalman Filters or Particle Filters, or both
  • Design, and prototype a JVM-based framework simulating systems based on distributed particle filtering
    • possibly based on Alchemist

Machine Learning and Software Engineering

References:

AutoML

  • SLR on the state of the art in AutoML
    • theoretical background
    • main approaches (+ similarities and differences)
    • main technologies (+ comparisons)

PMML, PFA

  • SLR on the state of the art of predictive model interchange formats
    • theoretical background
    • main approaches (+ similarities and differences)
    • main technologies (+ comparisons)

Explainable AI

Symbolic knowledge extraction

Activities

  • SLR on the symbolic knowledge extraction techniques
    • theoretical background
    • main approaches (+ similarities and differences)
    • main technologies (+ comparisons)
  • Design, prototype, and assess a Symbolic knowledge extraction algorithms from the literature 
  • Explore the exploitation of abductive reasoning for explaining ML-trained predictors by reproducing the study in [Ignatiev2018]

References

[Ignatiev2018] Alexey Ignatiev, Nina Narodytska, Joao Marques-Silva. "Abduction-Based Explanations for Machine Learning Models"

Symbolic knowledge injection

  • SLR on the symbolic knowledge injection techniques
    • theoretical background
    • main approaches (+ similarities and differences)
    • main technologies (+ comparisons)
  • Design, prototype, and assess a Symbolic knowledge injection approach from the literature 

Neural symbolic computation

  • TODO

Planning

  • SLR on the state of the art of Planning
    • theoretical background
    • main approaches (+ similarities and differences)
    • main technologies (+ comparisons)
  • Design, and prototype a planning library leveraging on some approach of choice from the literature 

Blockchain and Logic Contracts

  • TODO