Integraal: intégration de données et stratégies de raisonnement.

Integraal

Contributeurs: Carole Beaugeois, Riadh Guemache, Mélanie König et Clément Sipieter

Family:researchtransferAudience:partnerscommunityEvolution:ltsDuration:4 yearsContribution:instigatordevel

InteGraal est un outil Java destiné au raisonnement sur des données hétérogènes et fédérées. Il met en œuvre des algorithmes et des techniques situés à l'intersection de la représentation des connaissances et du raisonnement d'un côté, et de la gestion de données de l'autre. InteGraal a été conçu de manière modulaire afin de faciliter la réutilisation et l'extension logicielle. Il permet d'expérimenter aisément de nouveaux scénarios et techniques, notamment en combinant différents algorithmes.

Références
  1. Baget, J.-F., Bisquert, P., Leclère, M., Mugnier, M.-L., Pérution-Kihli, G., Tornil, F. et Ulliana, F. (2023). InteGraal: a Tool for Data-Integration and Reasoning on Heterogeneous and Federated Sources. 39ème Conférence sur la Gestion de Données - Principes, Technologies et Applications (BDA'23)
DLGPE: a new grammar for Integraal.

DLGPE

Family:researchAudience:communitycommunityEvolution:ltsDuration:2 yearsContribution:leader

DLGPE est une extension du langage DLGP servant à la représentation textuelle des objets manipulés par Integraal. Cette extension a pour ambition de permettre la création de nouveaux objets, rendus nécessaires par les perspectives de recherche de l'équipe Boreal. DLGPE est écrit en Java, utilise principalement le parser ANTLR4 (mais aussi Nanoparse pour les IRIRefs), et est fourni avec un éditeur assurant la coloration syntaxique et la visualisation des erreurs, en communiquant avec le parser via LSP. Une ADT Inria, dont je suis porteur, commence en janvier 2026 pour étendre et fiabiliser cette librairie logicielle.

Références
  1. Baget, J.-F., Bisquert, P., Leclère, M., Mugnier, M.-L., Pérution-Kihli, G., Tornil, F. et Ulliana, F. (2023). InteGraal: a Tool for Data-Integration and Reasoning on Heterogeneous and Federated Sources. 39ème Conférence sur la Gestion de Données - Principes, Technologies et Applications (BDA'23)
  2. Baget, J.-F., Gutierrez, A., Leclère, M., Mugnier, M.-L., Rocher, S. et Sipieter, C. (2017). DLGP: An extended Datalog Syntax for Existential Rules and Datalog±. Document de travail GraphIK
Py4Graal2: a Python interface to Integraal.

Py4Graal2

Family:researchtransferAudience:communityuniverseEvolution:ltsDuration:0.2 yearsContribution:leader

Py4Graal est une librairie Python dont l'ambition est de permettre d'accéder à l'ensemble des raisonnements possibles dans Integraal, via une communication py4J avec un serveur Java Integraal. Elle permet pour l'instant la création de faits, de règles, de contraintes et des requêtes en utilisant la syntaxe DLGP, et de raisonner avec ces objets en déléguant le traitement intensif à un moteur Java haute performance.

Références
  1. Baget, J.-F., Bisquert, P., Leclère, M., Mugnier, M.-L., Pérution-Kihli, G., Tornil, F. et Ulliana, F. (2023). InteGraal: a Tool for Data-Integration and Reasoning on Heterogeneous and Federated Sources. 39ème Conférence sur la Gestion de Données - Principes, Technologies et Applications (BDA'23)
  2. Baget, J.-F., Gutierrez, A., Leclère, M., Mugnier, M.-L., Rocher, S. et Sipieter, C. (2017). DLGP: An extended Datalog Syntax for Existential Rules and Datalog±. Document de travail GraphIK
Structure d'une URL ou d'une IRIRef.

IRIRefs

Family:utilityAudience:universeEvolution:ltsDuration:0.4 yearsContribution:leader

Comme dans les langages du Web Sémantique, les IRIRefs sont utilisées pour encoder tous les identificateurs dans le langage DLGP, format textuel pour tous les objets de Graal/Integraal. N’ayant pu trouver aucune librairie logicielle implémentant exactement les spécifications du RFC3987, je me suis finalement orienté vers ma propre implémentation. La première version (2023) était écrite en Python, la version actuelle (2025) est en Java et utilise Nanoparse pour le parsing.

Références
  1. Dürst, M. J. et Suignard, M. (2005). RFC 3987: Internationalized Resource Identifiers (IRIs). Internet Engineering Task Force (IETF), RFC - Proposed Standard
  2. Berners-Lee, T., Fielding, R. T. et Masinter, L. M. (2005). RFC 3986: Uniform Resource Identifier (URI). Internet Engineering Task Force (IETF), RFC - Standard
Exemple d'AST (Abstract Syntax Tree) généré par Nanoparse.

Nanoparse

Family:utilityAudience:teamEvolution:basicDuration:0.4 yearsContribution:leader

Nanoparse est un outil de parsing léger et rapide pour des grammaires simples nécessitant peu de backtrack. Son originalité réside dans le fait qu'il ne nécessite pas de tokenisation préalable. Initialement (2023) écrit en Python, il a été réécrit (2024) en Java afin de servir de « sous-parser » dans le parser DLGPE, écrit, lui, en ANTLR4. Même si, dans son cadre d'utilisation restreint, il peut s'agir d'un outil utile et efficace, le manque de syntaxe déclarative pour définir les grammaires limite son utilisation à un public averti. La version la plus récente est développée comme un module de DLGPE.

Temps d'insertion de données en pyTimeDB.

pyTimeDB

Family:researchAudience:partnersEvolution:nofutureDuration:0.4 yearsContribution:leader

J'ai développé PyTimeDB (2019) en Python au cours du projet ICODA comme un démonstrateur d'une base de connaissances permettant d'insérer et de requêter efficacement des données temporelles, qu'elles soient qualitatives (Algèbre de Allen) ou quantitatives. Il s'agit à ma connaissance du seul mécanisme de raisonnement implémentant intégralement les spécifications de OWL-Time. Une refonte de ce logiciel (et éventuellement une réécriture en Java) serait nécessaire afin de pouvoir accéder à ses services comme des mappings depuis le logiciel Integraal.

Références
  1. Baget, J.-F. et Laborie, S. (2007). Bi-Intervals for Backtracking on Temporal Constraint Networks. Proceedings of the 14th International Symposium on Temporal Representation and Reasoning (TIME'07)
  2. Cox, S. et Little, C. (2022). Time Ontology in OWL. W3C Candidate Recommandation Draft 15
Graal

Graal

Contributeurs: Riadh Guemache, Alain Gutierrez et Mélanie König

Family:researchtransferAudience:partnerscommunityEvolution:nofutureDuration:10 yearsContribution:instigator

Graal est un ensemble d'outils Java dédié à l'interrogation de bases de connaissances dans le cadre des règles existentielles, également appelées Datalog+/-. Il s’agit d'une bibliothèque open source publiée sous licence CeCILL v2.1 (compatible GPL). Graal a été conçu de manière modulaire afin de faciliter la réutilisation et l'extension logicielle. Il vise à simplifier l'expérimentation de nouveaux scénarios et techniques, notamment en combinant différents algorithmes.

Références
  1. Baget, J.-F., Leclère, M., Mugnier, M.-L., Rocher, S. et Sipieter, C. (2015). Graal: A Toolkit for Query Answering with Existential Rules. Web Rule Symposium (RuleML'15) , pp. 328-344
  2. Baget, J.-F., Leclère, M., Mugnier, M.-L. et Salvat, E. (2011). On rules with existential variables: Walking the decidability line. Artificial Intelligence , vol. 175(9-10), pp. 1620-1654
DLGP: a grammar for Graal.

DLGP

Family:researchAudience:communityEvolution:basicDuration:10 yearsContribution:instigator

Le format DLGP encode des règles existentielles (ainsi que d'autres constructions pouvant être vues comme des cas particuliers de règles existentielles : faits, contraintes négatives et requêtes conjonctives). La notion logique de base est celle d'atome, constitué d'un prédicat (ou nom de relation) et d'arguments appelés termes. Les termes peuvent être des variables, des constantes, des littéraux ou des termes fonctionnels. Les prédicats peuvent avoir n'importe quelle arité supérieure ou égale à un.

Références
  1. Baget, J.-F., Gutierrez, A., Leclère, M., Mugnier, M.-L., Rocher, S. et Sipieter, C. (2017). DLGP: An extended Datalog Syntax for Existential Rules and Datalog±. Document de travail GraphIK
Some decidable classes recognized by KIABORA.

Kiabora

Family:researchAudience:communityEvolution:basicDuration:3 yearsContribution:instigator

Le module RuleSetAnalyzer fournit des méthodes et des structures permettant de vérifier des propriétés de décidabilité d'un ensemble de règles existentielles. Kiabora est un outil autonome basé sur ce module, qui expose ses fonctionnalités.

Références
  1. Leclère, M., Mugnier, M.-L. et Rocher, S. (2013). KIABORA: An Analyzer of Existential Rule Bases. Proceedings of the 7th International Conference on Web Reasoning and Rule Systems (RR'13)
  2. Baget, J.-F., Garreau, F., Mugnier, M.-L. et Rocher, S. (2014). Extending Acyclicity Notions for Existential Rules. 21st European Conference on Artificial Intelligence (ECAI'14) , pp. 39-44
Py4Graal: a Python interface to Graal.

Py4Graal

Family:researchtransferAudience:communityuniverseEvolution:nofutureDuration:0.2 yearsContribution:leader

Py4Graal est une librairie Python dont l'ambition est de permettre d'accéder à l'ensemble des raisonnements possibles dans Graal, via une communication py4J avec un serveur Java Integraal. Elle permet pour l'instant la création de faits, de règles, de contraintes et des requêtes en utilisant la syntaxe DLGP, et de raisonner avec ces objets en déléguant le traitement intensif à un moteur Java haute performance.

Références
  1. Baget, J.-F., Leclère, M., Mugnier, M.-L., Rocher, S. et Sipieter, C. (2015). Graal: A Toolkit for Query Answering with Existential Rules. Web Rule Symposium (RuleML'15) , pp. 328-344
  2. Baget, J.-F., Gutierrez, A., Leclère, M., Mugnier, M.-L., Rocher, S. et Sipieter, C. (2017). DLGP: An extended Datalog Syntax for Existential Rules and Datalog±. Document de travail GraphIK