← Back to list

GraphQL et le Méta-Modèle Sémantique du SMT

GraphQL est un langage de requête pour vos API et un runtime pour exécuter ces requêtes en utilisant un type de système que vous définissez…

imadmala · 2024-02-27 22:02 · 0 claps · 3.7 min read
#sparql #graphql #semanticweb #ontology #shacl
Open on Medium ↗
Wiki topics: PHI · Philosophy

GraphQL et le Méta-Modèle Sémantique du SMT

GraphQL est un langage de requête pour vos API et un runtime pour exécuter ces requêtes en utilisant un type de système que vous définissez pour vos données.

GraphQL n’est pas lié à une base de données ou à un moteur de stockage spécifique mais est plutôt conçu comme une couche intermédiaire entre le client et les sources de données existantes, permettant de requêter et de manipuler les données de manière plus efficace et flexible. Dans le domaine des technologies de l’information, GraphQL se distingue comme une méthode pour la définition et l’exécution d’APIs, permettant une interaction précise et efficace avec les données.

Un des avantages les plus notables de GraphQL est sa capacité à permettre aux clients de spécifier précisément les données requises du serveur, éliminant ainsi le sur-envoi et le sous-envoi d’informations. Cette spécificité réduit le volume de données transmises sur le réseau, optimisant les performances et l’efficacité des applications. De plus, grâce à ses capacités introspectives, GraphQL permet aux utilisateurs de découvrir les schémas disponibles et les propriétés associées à chaque type, rendant les points de terminaison auto-documentés. Cette caractéristique supprime le besoin de maintenir une documentation séparée pour chaque service spécifique, simplifiant l’exploration et l’utilisation des APIs.

L’environnement GraphQL soutient non seulement la lecture de données mais aussi leur mise à jour, offrant une plateforme complète pour les opérations CRUD (Créer, Lire, Mettre à jour, Supprimer).

Dans le contexte de TopBraid EDG (Enterprise Data Governance) utilisé pour gérer les terminologies du SMT (Serveur Multi Terminologies) en backend, GraphQL permet d’interroger des collections d’actifs les ontologies intégrées en exploitant le méta-modèle sémantique basé sur les formes SHACL pour définir comment les données RDF (Resource Description Framework) sont exposées en tant qu’objets JSON à travers les requêtes GraphQL.

Méta-modèle du SMT

Le métamodèle du SMT est conçu pour décrire des concepts en leur attribuant un ensemble de propriétés bien définies telles que label, code (via skos:notation), synonymes (via skos:altLabel), éventuellement un statut (via adms:status), et d'autres métadonnées pertinentes.

Ce modèle permet une structuration cohérente des termes dans une ontologie, facilitant ainsi leur recherche, leur gestion et leur intégration. Par exemple, le modèle SHACL associé à un concept SMT peut inclure des contraintes sur les propriétés rdfs:label pour le nom, skos:notation pour le code unique, skos:altLabel pour les synonymes, et adms:status pour le statut du concept, assurant ainsi que chaque concept est défini de manière exhaustive et conforme aux attentes du métamodèle.

Par exemple, la contrainte SHACL sur le “code” des concepts du SMT spécifie que chaque concept doit avoir un code unique (skos:notation), qui est obligatoire (minCount 1) et ne peut être attribué qu’une seule fois (maxCount 1), soulignant l’importance de l’unicité et de la présence obligatoire de cet attribut dans la définition d’un concept.

sh:property [
      a sh:PropertyShape ;
      sh:path skos:notation ;
      sh:datatype xsd:string ;
      sh:maxCount 1 ;
      sh:minCount 1 ;
      sh:name "code" ;
    ] ;

Exemples d’Interrogation de la Classification “ATC” via GraphQL

Dans la suite de cet article, nous présentons des exemples pratiques d’utilisation de GraphQL pour interroger la classification ATC via l’endpoint GraphQL du SMT, exclusivement accessible aux administrateurs. Ces illustrations mettront en lumière comment effectuer des requêtes explorer les données médicales dans un contexte spécialisé de terminologie médicale

Le concept avec le code “[L04AA34](http://data.esante.gouv.fr/whocc/atc/L04AA34)"

Pour récupérer un concept spécifique par son code, en supposant que skos:notation est utilisé pour le code :

Requête GraphQL pour récupérer un concept spécifique par son code

Le concept avec le code [R03CK](http://data.esante.gouv.fr/whocc/atc/R03CK)

Cette requête serait identique à la précédente, en changeant simplement le code recherché et les éléments retournés

Requête GraphQL pour récupérer un concept spécifique par son code ainsi que plusieurs propriétés.

Modifier la Propriété Statut

Pour modifier le statut d’un concept (par exemple, changer le statut du code R03CK en "inactive"), on va effectuer une mutation GraphQL.

En conclusion, l’utilisation de GraphQL pour interroger les ontologies, offre une flexibilité et une efficacité remarquables. Contrairement à SPARQL, qui peut nécessiter des requêtes plus complexes et plus verbeuses pour extraire des données spécifiques. De plus, la capacité de GraphQL à explorer et à documenter les schémas de manière introspective facilite grandement la découverte et l’utilisation des données disponibles.

Bien que SPARQL reste puissant pour des requêtes analytiques complexes et la navigation dans des graphes de connaissances, GraphQL se distingue par son approche plus directe et son adaptabilité aux besoins spécifiques des utilisateurs.


메타데이터
post_id
bceb1d93137a
slug
graphql-et-le-méta-modèle-sémantique-du-smt-bceb1d93137a
url
https://medium.com/@tay.me/graphql-et-le-m%C3%A9ta-mod%C3%A8le-s%C3%A9mantique-du-smt-bceb1d93137a
canonical_url
https://medium.com/@tay.me/graphql-et-le-m%C3%A9ta-mod%C3%A8le-s%C3%A9mantique-du-smt-bceb1d93137a
author_url
https://medium.com/@tay.me
status
ok
fetched_at
2026-06-28 04:42:08