OWLOOP: Interfaces for Mapping OWL Axioms into OOP Hierarchies
Abstract
The paper tackles the issue of mapping logic axioms formalised in the Ontology Web Language (OWL) within the Object-Oriented Programming (OOP) paradigm. The issues of mapping OWL axioms hierarchies and OOP objects hierarchies are due to OWL-based reasoning algorithms, which might change an OWL hierarchy at runtime; instead, OOP hierarchies are usually defined as static structures. Although programming paradigms based on reflection allow changing the OOP hierarchies at runtime and mapping OWL axioms dynamically, there are no currently available mechanisms that do not limit the reasoning algorithms. Thus, the factory-based paradigm is typically used since it decouples the OWL and OOP hierarchies. However, the factory inhibits OOP polymorphism and introduces a paradigm shift with respect to widely accepted OOP paradigms. We present the OWLOOP API, which exploits the factory to not limit reasoning algorithms, and it provides novel OOP interfaces concerning the axioms in an ontology. OWLOOP is designed to limit the paradigm shift required for using ontologies while improving, through OOP-like polymorphism, the modularity of software architectures that exploit logic reasoning. The paper details our OWL to OOP mapping mechanism, and it shows the benefits and limitations of OWLOOP through examples concerning a robot in a smart environment.
- Publication:
-
arXiv e-prints
- Pub Date:
- April 2024
- DOI:
- 10.48550/arXiv.2404.09305
- arXiv:
- arXiv:2404.09305
- Bibcode:
- 2024arXiv240409305B
- Keywords:
-
- Computer Science - Artificial Intelligence;
- Computer Science - Logic in Computer Science;
- Computer Science - Robotics;
- Computer Science - Software Engineering;
- 68T27 (Primary) 68T30;
- 68N19;
- 68T40 (Secondary);
- D.2.11;
- D.1.5;
- D.1.6;
- E.2;
- I.2.4
- E-Print:
- This manuscript details the implementation of the OWLOOP API. A simplified (and "citable") presentation of our API has been published in the SoftwareX Elsevier journal with the title "OWLOOP: A modular API to describe OWL axioms in OOP objects hierarchies" ( https://doi.org/10.1016/j.softx.2021.100952). The OWLOOP API repository is available at https://github.com/buoncubi/owloop