Connaissances

Sémantique : relier le métier aux produits de données

Un schéma indique comment les données sont stockées. Une couche sémantique indique ce qu'elles signifient. Cette page explique ce qu'est une couche sémantique, comment la fonctionnalité Semantics d'Entropy Data la modélise, et comment l'ontologie obtenue se relie aux produits de données et aux Data Contracts.

Vue diagramme de Semantics avec les concepts et les relations affichés sous forme de graphe interactif
Vue diagramme d'un espace de noms Semantics, avec l'ontologie média EBU Core Plus importée dans Entropy Data.

Le problème

La plupart des plateformes de données savent très bien vous dire quelle table, quelle colonne et quel type. Elles savent beaucoup moins bien vous dire ce que tout cela veut dire. Or les questions qui ralentissent les équipes sont justement de ce second ordre :

  • Trois équipes disposent d'une colonne customer_id. Désignent-elles les mêmes clients ? Les commandes passées sans compte sont-elles incluses ?
  • La finance et le produit publient tous deux un Gross Merchandise Value. Les chiffres diffèrent. Quelle formule fait foi ?
  • Un nouvel analyste a besoin des données de suivi d'expédition. Chercher « shipment » dans une douzaine de schémas remonte quarante colonnes. Lesquelles sont canoniques ?

Ce sont des problèmes de sémantique, pas de schéma, et ils passent mal à l'échelle à mesure que le nombre de produits de données, d'équipes et d'outils d'IA augmente.

Ce qu'est une couche sémantique

Une couche sémantique est une définition nommée et gouvernée de votre domaine, indépendante de toute table ou de tout système particulier. Elle repose sur deux éléments principaux :

  • Les concepts : les objets de votre activité, à savoir les entités, les propriétés et les métriques.
  • Les relations : la façon dont ces concepts se relient entre eux et aux champs des Data Contracts.

Les concepts

Chaque concept possède un identifiant stable, un nom lisible, une description et un IRI qui permet d'y faire référence depuis des outils externes. Le concept Editorial Object d'EBU Core Plus, par exemple, porte l'IRI suivant :

http://www.ebu.ch/metadata/ontologies/ebucoreplus#EditorialObject

Les concepts vivent dans des espaces de noms (main par défaut) et se déclinent en quatre types :

  • Entity : les noms communs de votre domaine. Customer, Order, Article, Shipment.
  • Shared Property : un attribut réutilisable, de type primitif, rattaché à une ou plusieurs entités. Customer Email, SKU, Order ID. Défini une seule fois, référencé à plusieurs endroits.
  • Metric : une grandeur mesurable dotée d'une unité, d'un sens d'amélioration et, éventuellement, d'une formule. Gross Merchandise Value, Conversion Rate, Order Fulfillment Time.
  • Group : un conteneur pour organiser les concepts par domaine ou par sujet. Sales, Fulfillment, Catalog, Controlling.

Les concepts portent les métadonnées dont dépendent la gouvernance et l'outillage IA : type de données, classification (par exemple PII, sensible, restreint), indicateurs « requis » et « unique », exemples, énumérations, expressions régulières, annotations multilingues et tags.

Vue liste de Semantics dans Entropy Data, avec les concepts organisés par groupe
Vue liste d'un espace de noms Semantics, regroupée par sujet.
Détail d'un concept sémantique avec ses propriétés, ses annotations et ses relations entrantes et sortantes
La page d'un concept, avec son schéma, sa classification, ses exemples, ses annotations et ses relations.

Les concepts en YAML

L'ontologie complète s'édite en YAML, ce qui est pratique pour les modifications en masse, la revue de code et le versionnement dans Git. Chaque concept dispose également de son propre éditeur YAML. Voici un extrait de l'ontologie retail de démonstration :

concepts:
  - id: order
    name: Order
    kind: entity
    group: Sales
    description: A confirmed purchase placed by a customer in the online shop.
    properties:
      - ref: Order ID
      - ref: Customer ID
      - name: placed_at
        kind: property
        data_type: timestamp
      - name: order_status
        kind: property
        data_type: string
        enum: [pending, confirmed, shipped, delivered, cancelled, returned]
      - name: total_amount
        kind: property
        data_type: number
      - name: currency
        kind: property
        data_type: string
        pattern: ^[A-Z]{3}$
        examples: [EUR, USD]
    annotations:
      - name: owl:equivalentClass
        value: http://schema.org/Order

Deux détails méritent l'attention. Les entrées ref rappellent des propriétés partagées (Order ID et Customer ID), définies une fois puis réutilisées d'une entité à l'autre. L'annotation owl:equivalentClass aligne le concept sur une ontologie externe (schema.org ici), ce qui garde le modèle interne interopérable avec des standards comme GoodRelations ou FIBO.

Des métriques avec formules

Une métrique consigne son unité, le sens dans lequel elle s'améliore et son mode de calcul. La finance, le produit et les outils d'IA disposent ainsi d'une définition unique sur laquelle s'accorder.

concepts:
  - id: gmv
    name: Gross Merchandise Value
    kind: metric
    group: Controlling
    description: Total value of all placed orders before refunds, returns, and discounts.
    unit: EUR
    better_when: higher
    formula: "SUM(order.total_amount)"

  - id: average_order_value
    name: Average Order Value
    kind: metric
    group: Sales
    unit: EUR
    better_when: higher
    formula: "SUM(order.total_amount) / COUNT(DISTINCT order.id)"

Les relations

Les concepts se relient entre eux par des relations orientées et typées. Les types les plus courants sont hasProperty, isA, memberOf, measures, derived_from et relatedTo.

relationships:
  - id: gmv_measures_order_total
    type: measures
    relates:
      - concept: gmv
      - concept: order.total_amount
    verbalizes: "{Gross Merchandise Value} measures {Order.total_amount}"

  - id: aov_derived_from_gmv
    type: derived_from
    relates:
      - concept: average_order_value
      - concept: gmv
    verbalizes: "{Average Order Value} derived from {Gross Merchandise Value}"

La page de chaque concept affiche ses arêtes entrantes et sortantes, ce qui permet de parcourir l'ontologie dans les deux sens. La vue diagramme présentée en haut de cette page restitue le même espace de noms sous forme de graphe interactif, avec déplacement, zoom et accès direct à la page de n'importe quel concept d'un simple clic sur son nœud.

Des traductions en plusieurs langues

Chaque concept, propriété et relation peut porter la traduction de son nom et de sa description dans autant de langues que nécessaire. Les traductions sont stockées comme des entrées annotation marquées par un attribut lang, exposées via le point d'accès SPARQL et affichées dans l'interface selon la langue choisie par l'utilisateur. Une même ontologie peut ainsi servir des analystes anglophones, des product managers francophones et des auditeurs germanophones à partir d'une source unique.

concepts:
  - id: customer
    name: Customer
    kind: entity
    description: A natural person who places orders in the online shop.
    annotations:
      - name: name
        value: Kunde
        lang: de
      - name: name
        value: Client
        lang: fr
      - name: description
        value: Eine natürliche Person, die Bestellungen im Online-Shop aufgibt.
        lang: de
      - name: description
        value: Une personne physique qui passe des commandes dans la boutique en ligne.
        lang: fr

Les ontologies sectorielles livrées avec Entropy Data sont traduites d'emblée. EBU Core Plus, par exemple, fournit libellés et descriptions en anglais, en allemand et en français pour chaque classe et chaque propriété.

Relier les produits de données et les Data Contracts

Une couche sémantique n'a d'utilité que si les données qui l'implémentent pointent vers elle. Entropy Data s'appuie sur le mécanisme authoritativeDefinitions de l'Open Data Contract Standard pour relier les concepts aux données qui les concrétisent, à trois niveaux :

  1. Sur un produit de données (ODPS), pour le représenter dans son ensemble.
  2. Sur un Data Contract ou sur l'un de ses objets de schéma.
  3. Sur un champ précis à l'intérieur d'un schéma de contrat.
Sélecteur Find Definition dans le Data Contract Editor
Le sélecteur Find Definition dans le Data Contract Editor.

Le même lien peut s'écrire directement en YAML ODCS. Extrait d'un contrat de démonstration sur les expéditions :

properties:
  - name: shipment_id
    businessName: Shipment ID
    logicalType: string
    primaryKey: true
    authoritativeDefinitions:
      - type: "semantics"
        url: "https://demo.entropy-data.com/my-organization/semantics/main/shipment_id"
  - name: order_id
    authoritativeDefinitions:
      - type: "semantics"
        url: "https://demo.entropy-data.com/my-organization/semantics/main/order_id"

Le marqueur type: "semantics" indique à Entropy Data que l'URL pointe vers un concept sémantique, et le lien apparaît alors comme une référence cliquable sur la page du contrat. Sur la page du concept, Entropy Data liste à son tour tous les produits de données et Data Contracts qui le référencent : une question comme « quels jeux de données contiennent des adresses e-mail de clients ? » trouve ainsi une réponse immédiate.

À quoi sert Semantics

Une recherche par le sens

Les consommateurs cherchent Shipment et trouvent tous les produits de données qui implémentent ce concept, quel que soit le nom des colonnes sous-jacentes.

Des définitions cohérentes d'une équipe à l'autre

Une seule définition de Customer Email est référencée par plusieurs Data Contracts. Il suffit de passer sa classification à « sensible » pour que toutes les références soient mises à jour.

Une source de vérité unique pour les métriques

Le GMV, le taux de conversion et les marges sur coûts variables disposent de définitions canoniques assorties de formules, ce qui supprime l'ambiguïté qui s'accumule habituellement dans les tableurs.

Du contexte pour les agents IA

Les LLM ignorent ce que votre entreprise entend par Active Customer ou Contribution Margin 2. Lorsque des agents accèdent aux données via notre serveur MCP, Semantics leur fournit ce contexte : ils font les jointures sur les bonnes clés et s'appuient sur les bonnes définitions de métriques.

Démarrer avec une ontologie sectorielle

Nul besoin de modéliser votre domaine en partant de zéro. Entropy Data est livré avec des ontologies prêtes à importer pour plusieurs secteurs. Ouvrez Studio, allez dans Semantics et utilisez Add → Import Industry Standard :

  • GoodRelations (e-commerce)
  • FIBO (finance)
  • EBU Core Plus (médias)
  • CGMES (énergie)
  • IDMP (pharmacie)
  • EPCIS (chaîne d'approvisionnement)
  • IATA ONE Record (fret aérien)
  • TM Forum SID (télécoms)

Vous pouvez aussi téléverser vos propres fichiers RDF/OWL (Turtle, OWL, RDF/XML, N-Triples, N3, JSON-LD), ou interroger l'ontologie par programmation via le point d'accès SPARQL exposé sur /api/semantics/sparql.

Standards ouverts : OSI

Entropy Data s'engage en faveur des standards ouverts pour la couche sémantique et a rejoint l'initiative Open Semantic Interchange (OSI). OSI est un effort open source, indépendant de tout éditeur, visant à normaliser l'échange de modèles sémantiques entre plateformes de BI, agents IA et outils d'analyse, afin qu'une même définition d'entité ou de métrique reste cohérente dans tout votre écosystème. Nous prendrons en charge nativement le futur standard OSI Ontology dans Semantics, aux côtés de l'Open Data Contract Standard et de l'Open Data Product Standard de Bitol pour les Data Contracts et les produits de données.

La place de Semantics dans Entropy Data

  • Marketplace s'appuie sur les concepts sémantiques pour la recherche.
  • Studio est l'espace où les experts métier et les Data Product Owners entretiennent les concepts et les relient aux contrats.
  • Governance réutilise les classifications sémantiques (PII, sensible, etc.) dans des politiques transverses.
  • Le serveur MCP s'appuie sur Semantics pour ancrer les appels d'outils des LLM dans votre vocabulaire métier.

Pour commencer

Semantics est disponible derrière un feature flag :

  • Entropy Data Cloud : écrivez-nous pour l'activer sur votre organisation.
  • Auto-hébergé : définissez APPLICATION_SEMANTICS_ENABLED=true, puis redémarrez l'application.

Pour essayer Semantics sans rien installer, ouvrez la démo et rendez-vous dans Studio → Semantics. La démo embarque les principaux standards sectoriels : allez dans Studio → Semantics → Add → Import Ontology pour explorer les standards fournis ou téléverser votre propre ontologie.