# Discovery : une bibliothèque logicielle pour rendre accessible l'utilisation des graphes de connaissances RDF dans le développement d'applications Web ## Contexte : Les données RDF et leur exploitation ### Évolution dans le contexte de la bioinformatique - Utilisation croissante : Adoption des données RDF pour représenter et interconnecter des informations biologiques complexes. - Interopérabilité : Facilitation de l'intégration et de l'analyse des données issues de diverses sources bioinformatiques. ### Accessibilité à travers le web - Fichiers RDF : Disponibilité des données sous forme de fichiers (Turtle/JSON-LD/RDF-XML) téléchargeables pour une manipulation et une intégration faciles. - Points de terminaison SPARQL : Accès en temps réel aux données RDF via des endpoints SPARQL pour effectuer des requêtes complexes et dynamiques. ### Outils disponibles pour les utilisateurs finaux - Navigateurs RDF : Outils permettant la visualisation et la navigation des graphes de connaissances RDF. - Clients SPARQL : Interfaces utilisateur pour écrire et exécuter des requêtes SPARQL. ## L'approche traditionnelle pour la gestion des données persistentes dans les systèmes d'information ### Implementation avec une base de données relationnelle - Choix d'une base de données : Sélection d'un SGBDR (Système de Gestion de Base de Données Relationnelle) adapté aux besoins de l'application. - Peuplement de la base de données - Modélisation et création des tables : Conception du schéma de base de données et mise en place des tables. - Insertion des données : Ajout des données initiales via scripts SQL, outils d'importation, ou autres moyens. ### Utilisation d'un ORM et d'une couche logicielle applicative - ORM (Object-Relational Mapping) : Utilisation d'un ORM pour mapper les objets de l'application aux tables de la base de données. - Couche logicielle applicative : Développement d'une couche applicative pour interagir avec la base de données via l'ORM, gérer la logique métier et les transactions. ## Problématiques pour le développement applicatif ### Graphes de connaissances dans les BDD - Transfert du KG dans la BDD - Gestion des mises à jours entre le KG et la BDD => problème potentiel de coherence - Multiplicité des SI/BDD (couches applicatives + intégration) à maintenir ### Connaissance des langages RDF et SPARQL - Multiplicité des sources d'intérrogration avec differents degrée de fonctionnalité - fichier ftp / sparql endpoint - format json-ld/turtle/rdf-xml,... - pas très bien intégrés dans la communauté des développeurs ## Objectifs de l'API Discovery - Ecourager l'utilisation et la réutilisation de KG sans les SI - Faciliter le développement des composants logiciels et des IHM pour l'exploitation des graphes de données RDF - page statique - client/serveur - gestion transparente des sources de données RDF ## Fonctionnalités de l'API Discovery - Programmation/construction de requêtes avec des objets immuables - Interrogation de plusieurs contenus RDF (point de terminaison SPARQL, fichier RDF, contenu RDF) - Requête fédérée - Gestion "paresseuse" par page des résultats - Abonnement aux événements de statut des requêtes SPARQL - Conversion en chaîne de caractères des requêtes et des configurations pour faciliter le transport via HTTP - Décoration des noeuds de construction avec des metadonnées ## Ressource - https://github.com/p2m2/tp-discovery-websempilot