Knowledge Graph
Un grafo de conocimiento almacena hechos como tripletas entidad-relación-entidad para que los sistemas de IA puedan consultarlos, conectarlos y razonar sobre ellos. RDF, GraphRAG y código.
Un grafo de conocimiento es una representación estructurada de hechos en la que los nodos son entidades, como personas, lugares, productos o conceptos, y las aristas etiquetadas representan las relaciones entre ellas. Cada hecho es una terna de sujeto, predicado y objeto, como (Marie Curie, nació en, Varsovia), y un esquema o una ontología define qué tipos de entidades y relaciones se permiten. Como las relaciones se almacenan de forma explícita, un sistema puede responder preguntas siguiendo rutas por el grafo, combinar hechos de distintas fuentes sobre una misma entidad e inferir hechos que nunca se han expresado directamente. El Knowledge Graph de Google, lanzado en 2012, proporciona los paneles informativos junto a los resultados de búsqueda, y Wikidata, el grafo de conocimiento libre mantenido por voluntarios de Wikimedia, contiene más de 100 millones de elementos.
Entidades, relaciones y ternas#
- Entidades (nodos): Elementos con identidad, tipificados según la ontología, como una persona, una ciudad o un compuesto químico.
- Relaciones (aristas): Enlaces dirigidos y etiquetados, como «nació en» o «capital de». La etiqueta aporta significado, por lo que (Varsovia, capital de, Polonia) y (Polonia, capital de, Varsovia) son afirmaciones distintas.
- Atributos: Valores literales asociados a una entidad, como la fecha de nacimiento o la población.
- Ontología: El esquema de clases, tipos de relaciones y reglas; por ejemplo, que toda capital es una ciudad, lo que permite a un motor de razonamiento deducir hechos nuevos a partir de los existentes.
Predominan dos modelos de datos. El Marco de Descripción de Recursos (RDF) del W3C identifica cada entidad y relación con un URI web y almacena ternas puras que se consultan con SPARQL, lo que resulta adecuado para datos abiertos y enlazados como Wikidata. Los grafos de propiedades, utilizados por bases de datos de grafos como Neo4j, permiten que los nodos y las aristas tengan propiedades de clave y valor y se consultan con lenguajes como Cypher o GQL, que ISO publicó como norma en abril de 2024.
En este pequeño grafo, la pregunta «¿en qué país nació Marie Curie?» corresponde a una ruta de dos saltos desde Marie Curie, pasando por Varsovia hasta Polonia, y las aristas «ganó» compartidas conectan a ambas Curie con su premio conjunto de 1903.
Creación y consulta de un grafo de conocimiento#
Los grafos se rellenan a partir de bases de datos seleccionadas, de textos mediante el reconocimiento de entidades con nombre (NER) y la extracción de relaciones, tareas que realizan cada vez más los modelos de lenguaje grandes (LLM), y de imágenes. A continuación, la resolución de entidades fusiona distintas menciones de un mismo elemento, como «M. Curie» y «Marie Skłodowska-Curie», en un único nodo. Más allá de las consultas explícitas, las incrustaciones de grafos de conocimiento, como TransE, representan cada entidad y relación mediante un vector y puntúan una terna candidata según lo cerca que el sujeto más la relación llega al objeto, lo que permite predecir enlaces ausentes; las redes neuronales de grafos aprenden directamente de la estructura del grafo.
La visión artificial aporta entidades y relaciones a partir de imágenes. La salida de un detector YOLO26 se convierte en ternas (imagen, contiene, clase), y al combinarlas con hechos de contexto se responden preguntas que el detector por sí solo no puede contestar, como qué tipos de vehículos aparecen en una imagen:
import networkx as nx
from ultralytics import YOLO
# Detect objects in an image
model = YOLO("yolo26n.pt")
results = model("https://ultralytics.com/images/bus.jpg")
result = results[0]
# Each detected class becomes an entity node linked to the image
graph = nx.DiGraph()
for class_id in result.boxes.cls.int().tolist():
graph.add_edge("bus.jpg", result.names[class_id], relation="contains")
# Background knowledge as (subject, relation, object) triples
for subject, relation, obj in [("bus", "is_a", "vehicle"), ("car", "is_a", "vehicle"), ("person", "is_a", "human")]:
graph.add_edge(subject, obj, relation=relation)
# Two-hop query: which detected entities are vehicles?
vehicles = [node for node in graph.successors("bus.jpg") if graph.has_edge(node, "vehicle")]
print(f"Vehicles in bus.jpg: {vehicles}")Grafos de conocimiento y modelos de lenguaje grandes#
Los LLM almacenan el conocimiento de forma implícita en sus pesos, lo que dificulta inspeccionar o actualizar sus hechos y los hace propensos a las alucinaciones. Los grafos de conocimiento almacenan los hechos de forma explícita, con fuentes que se pueden citar y modificaciones que surten efecto de inmediato. GraphRAG combina ambos enfoques: amplía la generación aumentada por recuperación (RAG) recuperando entidades conectadas y rutas de relaciones, o resúmenes de comunidades del grafo, en lugar de fragmentos de texto aislados, lo que ayuda a responder preguntas de varios saltos, como qué proveedores de una pieza retrasada abastecen también a otra planta. Los LLM también traducen preguntas en lenguaje natural a consultas SPARQL o Cypher sobre grafos existentes.
Aplicaciones en el mundo real#
- Búsqueda y asistentes: Los paneles de entidades, las respuestas directas y los asistentes de voz consultan grandes grafos seleccionados para obtener datos sobre personas, lugares y organizaciones.
- Descubrimiento de fármacos: Los grafos biomédicos conectan genes, proteínas, compuestos, enfermedades y efectos secundarios; la predicción de enlaces propone posibles dianas farmacológicas o nuevos usos para fármacos aprobados.
- Detección de fraude: Las cuentas que comparten dispositivos, direcciones o tarjetas de pago forman redes conectadas que destacan al recorrer el grafo, aunque cada cuenta parezca normal por separado.
- Comprensión de escenas: Los grafos de escenas describen una imagen mediante objetos y sus relaciones, como (persona, monta, caballo). El conjunto de datos Visual Genome anota más de 100 000 imágenes de este modo para entrenar modelos que responden preguntas sobre escenas.
Grafos de conocimiento frente a almacenes de datos relacionados#
- Bases de datos relacionales: Almacenan registros en tablas conectadas mediante claves externas, lo que resulta adecuado para transacciones con un esquema fijo. Las preguntas de varios saltos, como «amigos de amigos que compraron este producto», necesitan una unión por cada salto, mientras que un grafo recorre directamente las aristas almacenadas.
- Bases de datos vectoriales: Recuperan elementos por similitud de incrustaciones y encuentran contenido relacionado sin enlaces explícitos. Un grafo de conocimiento registra exactamente cómo se relacionan dos entidades, y los sistemas híbridos utilizan ambos enfoques.
- Ontologías: Una ontología es el esquema de tipos y reglas, y un grafo de conocimiento es ese esquema poblado con hechos de instancias, como los millones de personas, lugares y obras individuales de Wikidata.










