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…
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