2p-Kt: A Kotlin-based, Multi-Platform Framework for Symbolic AI


Enrico Siboni

Today complex software systems are typically built as aggregates of hetero- geneous components, where symbolic AI may effectively help facing key issues such as intelligence of components and management of interaction. However, most solutions for symbolic manipulation are currently either proof of concept imple- mentations or full-fledged monolithic runtimes, mostly targeting a single platform or a specific problem. Among the many, two decades ago, the tuProlog engine proposed a flexible and modular architecture on top of a portable platform – namely, the JVM – which should have overcome the aforementioned problems. Sadly, the technology of the time forced some design choices which are nowadays limiting its development and its porting on other platforms – critical for modern AI –, such as JavaScript (JS) or iOS. For such reasons in this thesis we propose (the design and development of) 2p-kt, an object-oriented, modular engine for symbolic manipulation written in pure Kotlin – thus supporting compilation on several platforms, there including JVM, and JS –, coming with a natural support for Prolog-like SLD resolution but virtually open to other resolution strategies. 2p-kt design is conceived to maximise components deployability, lightweightness, reusability and configurability, while minimising their mutability, and keeping its architecture open to the injection of new Prolog libraries or resolution strategies.

(keywords) Prolog; tuProlog; Logic programming; Kotlin; Multi-platform; JVM; JavaScript; 2p-kt; Symbolic manipulation; Modular

Thesis

— thesis student

supervision

— supervisors

Andrea Omicini

— co-supervisors

Giovanni Ciatto

sort

— cycle

second-cycle thesis

— status

completed thesis

— language

wgb.gif

dates

— degree date

12/12/2019

files

PDF

Partita IVA: 01131710376 — Copyright © 2008–2023 APICe@DISI – PRIVACY