---
# System prepended metadata

title: Presentation Discovery WebSemPilot
tags: [perso, sparql, websempilot, rdf, websemantic]

---

# 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