Blending BDI agents with object-oriented and functional programming with JaKtA

Springer Nature Computer Science

The popularity of multi-paradigm languages is on the rise, enabling developers to select the most appropriate paradigm for each task. While object-oriented (OOP) and functional programming (FP) are commonly combined, other paradigms can also be hybridized. This paper introduces JaKtA, an internal Domain-Specific Language (DSL) designed to support the definition of BDI agents in Kotlin. Our work represents an initial exploration into blending Agent-Oriented Programming (AOP) with other prevalent paradigms, emphasizing the potential benefits of using internal DSLs. We demonstrate, through JaKtA, how this approach facilitates the creation of compact and expressive Belief-Desire-Intention (BDI) agents that seamlessly integrate with the host language, its libraries, and tooling.

keywordsBDI, AgentSpeak(L), DSL, Kotlin, JaKtA
origin event
funding project
wrenchFAIR-PE01-SP08 — Future AI Research – Partenariato Esteso sull'Intelligenza Artificiale – Spoke 8 “Pervasive AI” (01/01/2023–31/12/2025)
works as
superseding publication for
page_white_acrobatJaKtA: BDI Agent-Oriented Programming in Pure Kotlin (paper in proceedings, 2023) — Martina Baiardi, Samuele Burattini, Giovanni Ciatto, Danilo Pianini