Conocimiento

Semantics: conecta el negocio con tus productos de datos

Un esquema te dice cómo se almacenan los datos. Una capa semántica te dice qué significan. En esta página verás qué es una capa semántica, cómo la modela la funcionalidad Semantics de Entropy Data y cómo la ontología resultante se conecta con los productos de datos y los Data Contracts.

Vista de diagrama de Semantics con conceptos y relaciones representados como un grafo interactivo
Vista de diagrama de un namespace de Semantics con la ontología de medios EBU Core Plus importada en Entropy Data.

El problema

La mayoría de las plataformas de datos te dicen bien qué tabla, qué columna y qué tipo. Mucho peor te dicen qué significa todo eso. Y las preguntas que frenan a los equipos suelen ser justo las del segundo tipo:

  • Tres equipos tienen una columna customer_id. ¿Se refieren a los mismos clientes? ¿Incluyen las compras sin registro?
  • Finanzas y Producto informan del Gross Merchandise Value y las cifras no cuadran. ¿Qué fórmula es la buena?
  • Una analista recién incorporada necesita datos de seguimiento de envíos. Buscar «shipment» en una docena de esquemas devuelve cuarenta columnas. ¿Cuáles son las canónicas?

Son problemas de semántica, no de esquema, y se agravan a medida que crecen el número de productos de datos, de equipos y de herramientas de IA.

Qué es una capa semántica

Una capa semántica es una definición de tu dominio con nombre propio y gobernada, independiente de cualquier tabla o sistema concreto. Se construye con dos elementos principales:

  • Conceptos: las cosas de tu negocio, es decir, entidades, propiedades y métricas.
  • Relaciones: cómo se conectan esos conceptos entre sí y con los campos de un Data Contract.

Conceptos

Cada concepto tiene un ID estable, un nombre legible, una descripción y un IRI para poder referenciarlo desde herramientas externas. Por ejemplo, el concepto Editorial Object de EBU Core Plus tiene este IRI:

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

Los conceptos viven en namespaces (el predeterminado es main) y son de cuatro tipos:

  • Entity (entidad): los sustantivos de tu dominio. Cliente, Pedido, Artículo, Envío.
  • Shared Property (propiedad compartida): un atributo reutilizable con un tipo primitivo que se asocia a una o varias entidades. Email del cliente, SKU, ID de pedido. Se define una vez y se referencia desde varios sitios.
  • Metric (métrica): una magnitud medible con su unidad, una dirección de «mejor cuando» y una fórmula opcional. Gross Merchandise Value, tasa de conversión, tiempo de preparación del pedido.
  • Group (grupo): un contenedor para organizar los conceptos por dominio o área temática. Ventas, Logística, Catálogo, Controlling.

Los conceptos llevan los metadatos de los que dependen la gobernanza y las herramientas de IA: tipo de dato, clasificación (por ejemplo PII, sensible, restringido), marcas de obligatorio y único, ejemplos, enumeraciones, expresiones regulares, anotaciones en varios idiomas y etiquetas.

Vista de lista de Semantics en Entropy Data con los conceptos organizados por grupo
Vista de lista de un namespace de Semantics, agrupada por área temática.
Detalle de un concepto semántico con propiedades, anotaciones y relaciones entrantes y salientes
La página de un concepto con su esquema, clasificación, ejemplos, anotaciones y relaciones.

Conceptos en YAML

La ontología completa se puede editar como YAML, algo muy práctico para cambios masivos, revisiones de código y mantener la ontología en Git. Cada concepto tiene además su propio editor YAML individual. Este es un extracto de la ontología de retail de la demo:

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

Merece la pena fijarse en dos detalles. Las entradas ref incorporan propiedades compartidas (Order ID y Customer ID), definidas una sola vez y reutilizadas en varias entidades. La anotación owl:equivalentClass alinea el concepto con una ontología externa (schema.org en este caso), de modo que el modelo interno sigue siendo interoperable con estándares como GoodRelations o FIBO.

Métricas con fórmula

Una métrica registra su unidad, la dirección en la que mejora y cómo se calcula. Así, Finanzas, Producto y las herramientas de IA parten de una única definición.

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)"

Relaciones

Los conceptos se conectan entre sí mediante relaciones dirigidas y tipadas. Los tipos habituales son hasProperty, isA, memberOf, measures, derived_from y 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 página de cada concepto muestra las aristas entrantes y salientes, así que puedes recorrer la ontología en ambos sentidos. La vista de diagrama que abre esta página representa ese mismo namespace como un grafo interactivo, con desplazamiento, zoom y acceso directo desde cualquier nodo a su página de concepto.

Traducciones en varios idiomas

Cada concepto, propiedad y relación puede llevar traducciones de su nombre y su descripción en tantos idiomas como quieras. Las traducciones se guardan como entradas annotation etiquetadas con lang, se exponen a través del endpoint SPARQL y se muestran en la interfaz según el idioma preferido del usuario. Una sola ontología puede servir, desde la misma fuente, a analistas en inglés, product managers en francés y auditores en alemán.

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

Las ontologías sectoriales que incluye Entropy Data vienen ya traducidas. EBU Core Plus, por ejemplo, trae etiquetas y descripciones en inglés, alemán y francés para cada clase y propiedad.

Enlazar productos de datos y Data Contracts

Una capa semántica solo sirve de algo si los datos que la implementan apuntan de vuelta a ella. Entropy Data usa el mecanismo authoritativeDefinitions del Open Data Contract Standard para conectar los conceptos con los datos que los implementan en tres niveles:

  1. En un producto de datos (ODPS), representando el producto de datos en su conjunto.
  2. En un Data Contract o en uno de sus objetos de esquema.
  3. En un campo concreto dentro del esquema de un contrato.
Selector Find Definition en el Data Contract Editor
El selector Find Definition en el Data Contract Editor.

Ese mismo enlace se puede escribir directamente en el YAML de ODCS. Extraído de un contrato de envíos de la demo:

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"

El marcador type: "semantics" le indica a Entropy Data que la URL resuelve a un concepto semántico, y el enlace se muestra como una referencia navegable en la página del contrato. En la página del concepto, Entropy Data lista todos los productos de datos y Data Contracts que lo referencian, así que preguntas como «¿qué conjuntos de datos contienen direcciones de email de clientes?» se responden de inmediato.

Para qué sirve Semantics

Descubrimiento por significado

Los consumidores buscan Envío y encuentran todos los productos de datos que implementan ese concepto, sin importar cómo se llamen las columnas subyacentes.

Definiciones coherentes entre equipos

Una única definición de Email del cliente referenciada desde varios Data Contracts. Si cambias su clasificación a sensible, la actualización llega a todas las referencias.

Una única fuente de verdad para las métricas

El GMV, la tasa de conversión y los márgenes de contribución tienen definiciones canónicas con fórmula, lo que elimina la ambigüedad que se acumula en las hojas de cálculo.

Contexto para los agentes de IA

Los LLM no saben qué entiende tu negocio por Cliente activo o Margen de contribución 2. Cuando los agentes acceden a los datos a través de nuestro servidor MCP, Semantics les aporta ese contexto: hacen el join por las claves correctas y usan las definiciones de métrica correctas.

Empieza con una ontología sectorial

No hace falta que modeles tu dominio desde cero. Entropy Data incluye ontologías listas para importar de varios sectores. Abre Studio, entra en Semantics y usa Add → Import Industry Standard:

  • GoodRelations (comercio electrónico)
  • FIBO (finanzas)
  • EBU Core Plus (medios)
  • CGMES (energía)
  • IDMP (farmacéutica)
  • EPCIS (cadena de suministro)
  • IATA ONE Record (carga aérea)
  • TM Forum SID (telecomunicaciones)

También puedes subir tus propios archivos RDF/OWL (Turtle, OWL, RDF/XML, N-Triples, N3, JSON-LD) o consultar la ontología mediante programación desde el endpoint SPARQL en /api/semantics/sparql.

Estándares abiertos: OSI

Entropy Data apuesta por los estándares abiertos para la capa semántica y se ha unido a la iniciativa Open Semantic Interchange (OSI). OSI es un proyecto open source e independiente de fabricantes que estandariza cómo se intercambian los modelos semánticos entre plataformas de BI, agentes de IA y herramientas de analítica, de forma que una misma definición de entidad o de métrica se mantenga coherente en todo tu ecosistema. Daremos soporte nativo al futuro estándar OSI Ontology dentro de Semantics, junto al que ya ofrecemos para el Open Data Contract Standard y el Open Data Product Standard de Bitol en el lado de los Data Contracts y los productos de datos.

Cómo encaja Semantics en el resto de Entropy Data

  • Marketplace usa los conceptos semánticos para el descubrimiento.
  • Studio es donde los expertos de negocio y los Data Product Owners curan los conceptos y los enlazan con los contratos.
  • Governance reutiliza las clasificaciones semánticas (PII, sensible, etcétera) en políticas transversales.
  • El servidor MCP usa Semantics para anclar las llamadas de herramientas de los LLM a tu vocabulario de negocio.

Primeros pasos

Semantics está disponible detrás de un feature flag:

  • Entropy Data Cloud: escríbenos y lo activamos para tu organización.
  • Self-hosted: pon APPLICATION_SEMANTICS_ENABLED=true y reinicia la aplicación.

Para probar Semantics sin instalar nada, abre la demo y entra en Studio → Semantics. La demo trae los principales estándares sectoriales: ve a Studio → Semantics → Add → Import Ontology para explorarlos o para subir tu propia ontología.