Enhancing Symbolic AI Ecosystems with Probabilistic Logic Programming: a Kotlin Multi-Platform Case Study

   page       attach   

As Artificial Intelligence (AI) progressively conquers the software industry at a fast pace, the demand for more transparent and pervasive technologies increases accordingly. In this scenario, novel approaches to Logic Programming (LP) and symbolic AI have the potential to satisfy the requirements of modern software environments. However, traditional logic-based approaches often fail to match present-day planning and learning workflows, which natively deal with uncertainty. Accordingly, Probabilistic Logic Programming (PLP) is emerging as a modern research field that investigates the combination of LP with the probability theory. Although research efforts at the state of the art demonstrate encouraging results, they are usually either developed as proofs of concept, or, bound to specific platforms, often having inconvenient constraints. In this dissertation, we introduce an elastic and platform-agnostic approach to PLP aimed to surpass the usability and portability limitations of current proposals. We design our solution as an extension of the 2PKt symbolic AI ecosystem, thus endorsing the mission of the project and inheriting its multi-platform and multi-paradigm nature. Additionally, our proposal comprehends
an object-oriented and pure-Kotlin library for manipulating Binary Decision Diagrams (BDDs), which are notoriously relevant in the context of probabilistic computation. As a Kotlin multi-platform architecture, our BDD module aims to surpass the usability constraints of existing packages, which typically rely on low level C/C++ bindings for performance reasons. Overall, our project explores novel directions towards more usable, portable, and accessible PLP technologies, which we expect to grow in popularity both in the research community and in the software industry over the next few years.