# LiRoT: un raisonneur incrémental léger pour le Web des Objets

Alexandre Bento, Lionel Médini, Kamal Singh, Frédérique Laforest

► To cite this version:

Alexandre Bento, Lionel Médini, Kamal Singh, Frédérique Laforest. LiRoT : un raisonneur incrémental léger pour le Web des Objets. Journée thématique Internet des Objets et Intelligence Artificielle (IoT & IA) Plate-Forme Intelligence Artificielle (PFIA'22), Jun 2022, Saint-Étienne, France. hal-05528130

HAL Id: hal-05528130

https://hal.science/hal-05528130v1

Submitted on 26 Feb 2026

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons CC BY 4.0 - Attribution - International License
# LiRoT : un raisonneur incrémental léger pour le Web des Objets

Alexandre Bento<fnref n="1" />, Lionel Médini<fnref n="1" />, Kamal Singh<fnref n="2" />, Frédérique Laforest<fnref n="1" />

¹ Univ Lyon, CNRS, INSA Lyon, UCBL, LIRIS, UMR5205, F-69621 Villeurbanne, France

² Univ Lyon, CNRS, UJM, LaHC, UMR 5516, F-42100, Saint Etienne, France

L'Internet des Objets (IoT) a pour but de connecter le monde physique à Internet à l'aide d'outils tels que des capteurs et des actionneurs. Le Web des Objets (WoT) répond à cette demande en utilisant des standards du Web. Le Web Sémantique des Objets (SWoT) utilise des graphes de connaissances (KG) et des outils de raisonnement pour apporter plus d'expressivité au WoT.

Le projet CoSWoT<fnref n="1" /> reprend les enjeux du WoT en ciblant des applications telles le contrôle automatique dans les bâtiments, ou la gestion de l'irrigation dans une exploitation agricole<fnref n="2" />. Ces scénarios imposent des contraintes fortes sur les capacités, l'autonomie et la connectivité des objets (capteurs, actionneurs) utilisés pour mettre en œuvre les comportements attendus. En particulier, les plateformes utilisées ne disposent que de très peu de capacités de calcul (processeurs mono-cœur d'une fréquence d'environ 100 MHz et environ 100 KB de RAM).

Les raisonneurs traditionnels sont conçus pour traiter de gros volumes de données, sur des plateformes avec des capacités de calcul conséquentes (type PC ou serveurs), ce qui ne correspond pas aux besoins soulevés dans CoSWoT, d'où l'intérêt de développer de nouvelles solutions moins gourmandes en ressources et optimisées pour traiter de petits volumes de données (de l'ordre de quelques centaines ou milliers de faits dans un graphe de connaissances). Nous avons donc défini et implémenté LiRoT, un raisonneur incrémental et léger en mémoire conçu pour traiter des volumes de données adaptés aux scénarios du WoT, et qui peut être embarqué sur des plateformes avec peu de puissance de calcul, type Arduino ou ESP32. Les résultats de LiRoT ont été publiés à la conférence ESWC 2022[1], et le code source est disponible en ligne<fnref n="3" />.

LiRoT est basé sur l'algorithme RETE[3]. Nous l'avons implémenté en C afin d'avoir un contrôle fin sur la gestion de la mémoire et lui avons apporté plusieurs optimisations afin de réduire son empreinte mémoire. Ces optimisations incluent l'indexation de termes et la fusion de structures de données au sein de l'algorithme de raisonnement.<fnref n="4" />

Nous avons comparé LiRoT à d'autres raisonneurs incrémentaux couramment utilisés : RDFox[4] et Apache Jena[2]. Nos expérimentations montrent que LiRoT est au moins aussi performant que ses concurrents pour des petits jeux de données (quelques centaines ou milliers de faits), avec des ensembles de règles simples (sous-ensembles de RDFS), ce qui correspond aux cas d'usage visés dans CoSWoT. Son empreinte mémoire est de 46% à 98% plus faible suivant la taille du jeu de données (plus le jeu de données est petit, plus l'écart est grand). LiRoT répond donc bien aux besoins du projet CoSWoT. Cependant, LiRoT ne passe pas aussi bien à l'échelle, et n'est donc pas pertinent pour des jeux de données plus gros (de l'ordre de 10k faits ou plus). RDFox et Apache Jena ne pouvant pas fonctionner sur des architectures ESP32, ces comparaisons ont été faites sur PC.

LiRoT étant plus léger, nous proposons également une version Arduino de LiRoT, et l'avons testée sur Arduino Due<fnref n="5" /> et ESP32⁶. Sur ces plateformes, LiRoT peut gérer des jeux de données de plusieurs centaines de faits.

À l'avenir, nous pensons implémenter d'autres ensembles de règles plus expressifs (notamment OWL 2 RL). Dans CoSWoT, il est également prévu de distribuer les tâches de raisonnement au sein d'un réseau incluant divers types de nœuds avec des capacités variées. L'objectif est de profiter au mieux des capacités de calcul de chaque nœud, en fonction des lieux d'émission et d'utilisation des données. LiRoT pourra alors être déployé dans une architecture Edge ou Fog.

## Références

[1] Alexandre BENTO et al. "Do Arduinos dream of efficient reasoners?" In: *European Semantic Web Conference*. 2022.

[2] Jeremy J CARROLL et al. "Jena: implementing the semantic web recommendations". In: *Proceedings of the 13th international World Wide Web conference on Alternate track papers & posters*. 2004, p. 74-83.

[3] Charles L FORGY. "Rete: A fast algorithm for the many pattern/many object pattern match problem". In: *Readings in Artificial Intelligence and Databases*. Elsevier, 1989, p. 547-559.

[4] Yavor NENOV et al. "RDFox: A highly-scalable RDF store". In: *International Semantic Web Conference*. Springer. 2015, p. 3-20.

<footnote n="1">1. https://coswot.gitlab.io/</footnote>

<footnote n="2">2. https://www.w3.org/TR/wot-usecases/#Agricultural-irrigation</footnote>

<footnote n="3">3. https://gitlab.com/coswot/lirot</footnote>

<footnote n="4">4. Plus de détails dans l'article[1].</footnote>

<footnote n="5">5. https://www.arduino.cc/en/Main/arduinoBoardDue</footnote>

<footnote n="6">6. https://www.adafruit.com/product/3405</footnote>