{"id":36377,"date":"2026-08-18T11:19:42","date_gmt":"2026-08-18T09:19:42","guid":{"rendered":"https:\/\/www.codemotion.com\/magazine\/?p=36377"},"modified":"2026-08-18T11:25:16","modified_gmt":"2026-08-18T09:25:16","slug":"graph-engineering-la-siguiente-habilidad-del-ingeniero","status":"publish","type":"post","link":"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/graph-engineering-la-siguiente-habilidad-del-ingeniero\/","title":{"rendered":"Graph Engineering: la siguiente habilidad del ingeniero"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Durante los \u00faltimos a\u00f1os, la IA ha evolucionado desde la predicci\u00f3n de palabras y la b\u00fasqueda de similitudes hacia sistemas capaces de trabajar con conocimiento cada vez m\u00e1s complejo. En este contexto, <strong>Graph Engineering para IA<\/strong> plantea una pregunta fundamental: \u00bfqu\u00e9 pasa cuando un modelo necesita razonar sobre relaciones, conectar evidencias y comprender c\u00f3mo diferentes entidades est\u00e1n vinculadas?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aqu\u00ed entra el <strong>Graph Engineering<\/strong>: una disciplina orientada a dise\u00f1ar, construir y mantener estructuras de conocimiento que permiten a los sistemas de IA no solo recuperar informaci\u00f3n, sino tambi\u00e9n conectar evidencias, recorrer relaciones, razonar sobre m\u00faltiples saltos y explicar de d\u00f3nde proviene una respuesta.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El objetivo no es reemplazar el RAG tradicional, sino llevarlo un paso m\u00e1s all\u00e1: combinar recuperaci\u00f3n sem\u00e1ntica, Knowledge Graphs y razonamiento estructurado para construir sistemas de IA m\u00e1s contextuales, trazables y capaces de trabajar con la complejidad del conocimiento real.<\/p>\n\n\n\n<h2 id=\"h-de-datos-aislados-conocimiento-conectado\" class=\"wp-block-heading\"><strong>De datos aislados \u2192 conocimiento conectado<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">No estamos hablando simplemente de aprender <em>Neo4j<\/em>, sino de <strong><em>aprender a dise\u00f1ar las relaciones que permiten que una IA encuentre, conecte, cuestione y explique la evidencia<\/em>. <\/strong>Porque durante mucho tiempo construimos sistemas de datos pensando principalmente en el dato aislado al dato conectado.&nbsp; Porque una tabla puede decir: <\/p>\n\n\n\n<p align=\"center\">\n  \ud83d\udc64 <strong>Cliente<\/strong>\n  &nbsp;\u2192&nbsp;\n  \ud83c\udfe2 <strong>Empresa<\/strong>\n  &nbsp;\u2192&nbsp;\n  \ud83d\udce6 <strong>Producto<\/strong>\n<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pero un <a href=\"https:\/\/www.aibuilderclub.com\/blog\/graph-engineering-guide-2026\" data-type=\"link\" data-id=\"https:\/\/www.aibuilderclub.com\/blog\/graph-engineering-guide-2026\">grafo<\/a> puede expresar algo mucho m\u00e1s cercano a la realidad:<\/p>\n\n\n\n<div align=\"center\">\n\n<p>\n  \ud83d\udc64 <strong>Cliente<\/strong>\n  <br>\n  <code>\u2193 trabaja_en \u2193<\/code>\n  <br>\n  \ud83c\udfe2 <strong>Empresa<\/strong>\n<\/p>\n\n<p>\n  \ud83c\udfe2 <strong>Empresa<\/strong>\n  <br>\n  <code>\u2193 utiliza \u2193<\/code>\n  <br>\n  \ud83d\udce6 <strong>Producto<\/strong>\n<\/p>\n\n<p>\n  \ud83d\udce6 <strong>Producto<\/strong>\n  <br>\n  <code>\u2193 depende_de \u2193<\/code>\n  <br>\n  \u2699\ufe0f <strong>Servicio<\/strong>\n<\/p>\n\n<p>\n  \u2699\ufe0f <strong>Servicio<\/strong>\n  <br>\n  <code>\u2193 fue_afectado_por \u2193<\/code>\n  <br>\n  \ud83d\udea8 <strong>Incidente<\/strong>\n<\/p>\n\n<p>\n  \ud83d\udea8 <strong>Incidente<\/strong>\n  <br>\n  <code>\u2193 ocurri\u00f3_en \u2193<\/code>\n  <br>\n  \ud83d\udcc5 <strong>Fecha<\/strong>\n<\/p>\n\n<p>\n  \ud83d\udcc5 <strong>Fecha<\/strong>\n  <br>\n  <code>\u2193 pertenece_a \u2193<\/code>\n  <br>\n  \ud83d\uddd3\ufe0f <strong>Periodo<\/strong>\n<\/p>\n\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Y de repente ya no estamos solamente almacenando datos, estamos almacenando <strong>contexto; <\/strong>porque<strong> <\/strong>los nodos representan entidades o conceptos y las aristas representan relaciones sem\u00e1nticas entre ellos y eso cambia la naturaleza de las preguntas que podemos hacer. No solamente: <strong><em>\u201c\u00bfqu\u00e9 documento contiene esta palabra?\u201d<\/em> <\/strong>sino <strong><em>\u201c\u00bfqu\u00e9 entidades est\u00e1n relacionadas con este problema y qu\u00e9 cadena de evidencia conecta unas con otras?\u201d<\/em><\/strong><\/p>\n\n\n\n<h2 id=\"h-rag-tradicional-cuando-la-similitud-semantica-no-es-suficiente\" class=\"wp-block-heading\"><strong>RAG tradicional: cuando la similitud sem\u00e1ntica no es suficiente<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Actualmente, el est\u00e1ndar de la industria para dar contexto a los LLMs es el <strong>RAG<\/strong> tradicional, basado en bases de datos vectoriales. Funciona incre\u00edble para buscar similitudes sem\u00e1nticas, pero tiene un punto ciego masivo: <strong><em>el razonamiento multi-salto (multi-hop reasoning).<\/em><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si le preguntas a un LLM vectorial <em>\u201c\u00bfC\u00f3mo impacta la escasez de litio en las pol\u00edticas de energ\u00eda renovable en Europa?\u201d<\/em>, buscar\u00e1 fragmentos de texto similares, pero la realidad no es plana; es una red.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El RAG funciona extraordinariamente bien cuando necesitamos recuperar fragmentos relevantes de informaci\u00f3n. Pero hay problemas donde la similitud sem\u00e1ntica no es suficiente, cuando la respuesta requiere: m\u00faltiples saltos de relaciones, contexto global, dependencias, jerarqu\u00edas, entidades compartidas entre documentos, trazabilidad, contradicciones, evoluci\u00f3n temporal; buscar solamente los <em>chunks<\/em> m\u00e1s parecidos puede quedarse corto.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El <strong><em>Graph Engineering para IA<\/em><\/strong> (mediante <em>Knowledge Graphs<\/em> y <em>Graph Neural Networks<\/em>) no almacena fragmentos aislados, almacena <strong><em>entidades y sus relaciones<\/em><\/strong>. No fuerza una respuesta basada en proximidad de palabras; cuantifica la distancia real entre nodos de informaci\u00f3n, permiti\u00e9ndonos explorar la topolog\u00eda de la evidencia.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a class=\" alt=&quot;Pipeline de Graph Engineering para IA desde documentos hasta razonamiento GraphRAG&quot;\" href=\"https:\/\/gemini.google.com\/4ec81cee-14b8-4d47-a376-ebbb4e34513d\" target=\"_blank\" rel=\" noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"436\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/08\/1hG3cAPj53YofBZWJUrSw6A.png\" alt=\"\" class=\"wp-image-36394\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/08\/1hG3cAPj53YofBZWJUrSw6A.png 800w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/08\/1hG3cAPj53YofBZWJUrSw6A-300x164.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/08\/1hG3cAPj53YofBZWJUrSw6A-768x419.png 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/a><\/figure>\n<\/div>\n\n\n<h3 id=\"h-que-es-graph-engineering-para-ia\" class=\"wp-block-heading\"><strong>\u00bfQu\u00e9 es Graph Engineering para IA?<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Es el conjunto de t\u00e9cnicas, patrones y herramientas para dise\u00f1ar, construir y mantener grafos (<em><a href=\"https:\/\/www.codemotion.com\/magazine\/ai-ml\/data-graph-machine-learning\/\" data-type=\"link\" data-id=\"https:\/\/www.codemotion.com\/magazine\/ai-ml\/data-graph-machine-learning\/\">estructuras de nodos y aristas<\/a><\/em>) que alimentan pipelines de IA: desde recuperaci\u00f3n de contexto y razonamiento hasta enriquecimiento de datos y explicabilidad.<\/p>\n\n\n\n<h4 id=\"h-por-que-importa-hoy\" class=\"wp-block-heading\"><strong><em>Por qu\u00e9 importa hoy<\/em><\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Los LLMs y sistemas de RAG dependen cada vez m\u00e1s de se\u00f1ales relacionales (conexiones entre entidades, temporalidad, causalidad).<\/li>\n\n\n\n<li>Los grafos permiten <strong><em>consulta sem\u00e1ntica<\/em><\/strong><em>, <\/em><strong><em>fusi\u00f3n de fuentes heterog\u00e9neas<\/em><\/strong><em>, <\/em><strong><em>explicabilidad<\/em><\/strong><em> y <\/em><strong><em>razonamiento estructurado<\/em><\/strong><em>.<\/em><\/li>\n\n\n\n<li>Cuantificar en tareas de recuperaci\u00f3n de contexto, usar un grafo bien dise\u00f1ado puede aumentar la precisi\u00f3n de recuperaci\u00f3n y la coherencia de respuestas en un rango medible <em>(ejemplo: mejoras del 10\u201340% en m\u00e9tricas de recuperaci\u00f3n seg\u00fan configuraci\u00f3n y dominio)<\/em>.&nbsp;<\/li>\n\n\n\n<li>Porque obliga a pensar en algo que muchas arquitecturas de IA todav\u00eda esconden: <strong><em>la estructura del conocimiento.<\/em> <\/strong>No basta con tener:<\/li>\n<\/ul>\n\n\n\n<div align=\"center\">\n\n<table>\n<tbody><tr>\n<td align=\"center\">\n\n\ud83d\udcc4\n<strong>Documents<\/strong>\n\n<\/td>\n<td align=\"center\">\u2192<\/td>\n<td align=\"center\">\n\n\ud83e\uddec\n<strong>Embeddings<\/strong>\n\n<\/td>\n<td align=\"center\">\u2192<\/td>\n<td align=\"center\">\n\n\ud83d\uddc4\ufe0f\n<strong>Vector Database<\/strong>\n\n<\/td>\n<td align=\"center\">\u2192<\/td>\n<td align=\"center\">\n\n\ud83e\udd16\n<strong>LLM<\/strong>\n\n<\/td>\n<\/tr>\n<\/tbody><\/table>\n\n<p><strong>RAG Pipeline \u00b7 From Knowledge to Answers<\/strong><\/p>\n\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">En determinados problemas necesitamos empezar a pensar en:<\/p>\n\n\n\n<div align=\"center\">\n\n<h4><strong>\ud83e\udde0 Knowledge \u2192 Graph \u2192 Reasoning<\/strong><\/h4>\n\n<div>\n  \ud83d\udcc4<br>\n  <strong>DOCUMENTS<\/strong><br>\n  <sub>Raw knowledge<\/sub>\n<\/div>\n\n<div>\u2b07\ufe0f<\/div>\n\n<div>\n  \ud83d\udd0e<br>\n  <strong>ENTITY EXTRACTION<\/strong><br>\n  <sub>Discover entities<\/sub>\n<\/div>\n\n<div>\u2b07\ufe0f<\/div>\n\n<div>\n  \ud83e\udde9<br>\n  <strong>ENTITY RESOLUTION<\/strong><br>\n  <sub>Identify &amp; unify entities<\/sub>\n<\/div>\n\n<div>\u2b07\ufe0f<\/div>\n\n<div>\n  \ud83d\udd17<br>\n  <strong>RELATIONSHIPS<\/strong><br>\n  <sub>Connect entities<\/sub>\n<\/div>\n\n<div>\u2b07\ufe0f<\/div>\n\n<div>\n  \ud83d\udcd0<br>\n  <strong>ONTOLOGY \/ SCHEMA<\/strong><br>\n  <sub>Define meaning &amp; structure<\/sub>\n<\/div>\n\n<div>\u2b07\ufe0f<\/div>\n\n<div>\n  \ud83d\udd78\ufe0f<br>\n  <strong>KNOWLEDGE GRAPH<\/strong><br>\n  <sub>Build connected knowledge<\/sub>\n<\/div>\n\n<div>\u2b07\ufe0f<\/div>\n\n<div>\n  \ud83e\udded<br>\n  <strong>GRAPH TRAVERSAL<\/strong><br>\n  <sub>Navigate relationships<\/sub>\n<\/div>\n\n<div>\u2b07\ufe0f<\/div>\n\n<div>\n  \ud83c\udfaf<br>\n  <strong>RETRIEVAL<\/strong><br>\n  <sub>Find relevant knowledge<\/sub>\n<\/div>\n\n<div>\u2b07\ufe0f<\/div>\n\n<div>\n  \ud83e\udde0<br>\n  <strong>REASONING<\/strong><br>\n  <sub>Connect &amp; infer<\/sub>\n<\/div>\n\n<div>\u2b07\ufe0f<\/div>\n\n<div>\n  \ud83d\udd10<br>\n  <strong>PROVENANCE<\/strong><br>\n  <sub>Trace the source<\/sub>\n<\/div>\n\n<div>\u2b07\ufe0f<\/div>\n\n<div>\n  \ud83e\udd16<br>\n  <strong>LLM RESPONSE<\/strong><br>\n  <sub>Grounded answer<\/sub>\n<\/div>\n\n<br>\n\n<h5><strong>\n\ud83d\udcc4 Raw Data \u2192 \ud83d\udd78\ufe0f Structured Knowledge \u2192 \ud83e\udde0 Reasoning \u2192 \ud83e\udd16 Grounded Intelligence\n<\/strong><\/h5><br>\n\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Y esto introduce nuevas preguntas de ingenier\u00eda, eso ya no es simplemente <em>prompt engineering<\/em>, eso es <strong><em>engineering del conocimiento y de la evidencia.<\/em><\/strong><\/p>\n\n\n\n<h3 id=\"h-principios-de-graph-engineering\" class=\"wp-block-heading\"><strong>Principios de Graph Engineering<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Modela intenciones, no solo entidades:<\/strong> nodos = entidades, conceptos, documentos, fragmentos; aristas = relaciones sem\u00e1nticas, temporales, de citaci\u00f3n, de confianza.<\/li>\n\n\n\n<li><strong>Normaliza y versiona el grafo:<\/strong> los<strong> <\/strong>cambios en esquemas deben ser trazables.<\/li>\n\n\n\n<li><strong>Dise\u00f1a para consultas h\u00edbridas:<\/strong> soporta b\u00fasquedas por similitud (<em>embeddings<\/em>) y por topolog\u00eda (caminos, vecinos).<\/li>\n\n\n\n<li><strong>M\u00e9tricas y A\/B testing:<\/strong> mide impacto en downstream (<em>recall@k, MRR, F1<\/em>, coherencia humana).<\/li>\n\n\n\n<li><strong>Explicabilidad nativa:<\/strong> mantener metadatos en aristas (peso, fuente, confianza, timestamp).<\/li>\n<\/ul>\n\n\n\n<h3 id=\"h-arquitectura-tipica-y-componentes\" class=\"wp-block-heading\"><strong>Arquitectura t\u00edpica y componentes<\/strong><\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Ingesta<\/strong>: ETL que extrae entidades y relaciones desde texto, bases, APIs.<\/li>\n\n\n\n<li><strong>Enriquecimiento<\/strong>: embeddings, desambiguaci\u00f3n, linking.<\/li>\n\n\n\n<li><strong>Almacenamiento<\/strong>: base de grafos (<em>Neo4j, JanusGraph, TigerGraph<\/em>) o \u00edndices h\u00edbridos (<em>Milvus + RedisGraph<\/em>).<\/li>\n\n\n\n<li><strong>Consulta<\/strong>: motores de consulta por patr\u00f3n (<em>Cypher, Gremlin<\/em>) y por similitud (<em>ANN<\/em>).<\/li>\n\n\n\n<li><strong>Orquestaci\u00f3n<\/strong>: pipelines reproducibles (<em>Airflow, Dagster<\/em>).<\/li>\n\n\n\n<li><strong>Evaluaci\u00f3n<\/strong>: tests autom\u00e1ticos y dashboards.<\/li>\n<\/ol>\n\n\n\n<h3 id=\"h-vector-rag-vs-nbsp-graphrag\" class=\"wp-block-heading\"><strong>Vector RAG vs.&nbsp;GraphRAG<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Para entender por qu\u00e9 esto es un <em>game changer<\/em>, veamos los datos crudos. As\u00ed es como cambia la arquitectura de nuestras soluciones:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"298\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/08\/1p2o_TKhoZ_iuq39fkhLu3g.png\" alt=\"\" class=\"wp-image-36393\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/08\/1p2o_TKhoZ_iuq39fkhLu3g.png 800w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/08\/1p2o_TKhoZ_iuq39fkhLu3g-300x112.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/08\/1p2o_TKhoZ_iuq39fkhLu3g-768x286.png 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure>\n<\/div>\n\n\n<h3 id=\"h-experimento-rag-simple-vs-rag-nbsp-graph\" class=\"wp-block-heading\"><strong>Experimento: RAG simple vs RAG +&nbsp;Graph<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ejemplo de un sistema de generaci\u00f3n aumentada por recuperaci\u00f3n (RAG) avanzado que combina dos enfoques:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Recuperaci\u00f3n sem\u00e1ntica:<\/strong> uso de embeddings y <em>FAISS<\/em> para encontrar informaci\u00f3n similar por significado.<\/li>\n\n\n\n<li><strong>Grafo de conocimiento:<\/strong> uso de <em>NetworkX<\/em> para conectar conceptos relacionados y expandir la b\u00fasqueda m\u00e1s all\u00e1 de la similitud textual.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">A continuaci\u00f3n, c\u00f3digo m\u00ednimo y funcional <em>(Python)<\/em> que puedes ejecutar localmente, que usa datos de ejemplo y librer\u00edas comunes.<\/p>\n\n\n\n<h4 id=\"h-preparacion-dependencias\" class=\"wp-block-heading\"><strong><em>Preparaci\u00f3n: dependencias<\/em><\/strong><\/h4>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">!pip install sentence-transformers faiss-cpu networkx numpy scikit-learn<\/code><\/span><\/pre>\n\n\n<h4 id=\"h-dataset-de-ejemplo\" class=\"wp-block-heading\"><strong><em>Dataset de ejemplo<\/em><\/strong><\/h4>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-comment\"># data.py<\/span>\ndocuments = &#91;\n    {<span class=\"hljs-string\">\"id\"<\/span>:<span class=\"hljs-string\">\"d1\"<\/span>,<span class=\"hljs-string\">\"text\"<\/span>:<span class=\"hljs-string\">\"Graph databases store nodes and edges and are great for relationships.\"<\/span>},\n    {<span class=\"hljs-string\">\"id\"<\/span>:<span class=\"hljs-string\">\"d2\"<\/span>,<span class=\"hljs-string\">\"text\"<\/span>:<span class=\"hljs-string\">\"Embeddings map text to vectors for semantic search.\"<\/span>},\n    {<span class=\"hljs-string\">\"id\"<\/span>:<span class=\"hljs-string\">\"d3\"<\/span>,<span class=\"hljs-string\">\"text\"<\/span>:<span class=\"hljs-string\">\"RAG systems combine retrieval and generation to ground LLM outputs.\"<\/span>},\n    {<span class=\"hljs-string\">\"id\"<\/span>:<span class=\"hljs-string\">\"d4\"<\/span>,<span class=\"hljs-string\">\"text\"<\/span>:<span class=\"hljs-string\">\"Neo4j is a popular property graph database used in production.\"<\/span>},\n    {<span class=\"hljs-string\">\"id\"<\/span>:<span class=\"hljs-string\">\"d5\"<\/span>,<span class=\"hljs-string\">\"text\"<\/span>:<span class=\"hljs-string\">\"Causal relations help reasoning about events and their effects.\"<\/span>},\n]<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h4 id=\"h-construir-embeddings-y-vector-store-faiss\" class=\"wp-block-heading\"><strong><em>Construir embeddings y vector store (FAISS)<\/em><\/strong><\/h4>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-comment\"># vector_store.py<\/span>\nfrom sentence_transformers import SentenceTransformer\nimport numpy <span class=\"hljs-keyword\">as<\/span> np\nimport faiss\n\nmodel = SentenceTransformer(<span class=\"hljs-string\">'all-MiniLM-L6-v2'<\/span>)\ntexts = &#91;d&#91;<span class=\"hljs-string\">'text'<\/span>] <span class=\"hljs-keyword\">for<\/span> d in documents]\nids = &#91;d&#91;<span class=\"hljs-string\">'id'<\/span>] <span class=\"hljs-keyword\">for<\/span> d in documents]\nembs = model.encode(texts, convert_to_numpy=<span class=\"hljs-keyword\">True<\/span>)\n\nd = embs.shape&#91;<span class=\"hljs-number\">1<\/span>]\nindex = faiss.IndexFlatIP(d)\nfaiss.normalize_L2(embs)\nindex.add(embs)\n\ndef query_vector(q, k=<span class=\"hljs-number\">3<\/span>):\n    v = model.encode(&#91;q], convert_to_numpy=<span class=\"hljs-keyword\">True<\/span>)\n    faiss.normalize_L2(v)\n    D, I = index.search(v, k)\n    <span class=\"hljs-keyword\">return<\/span> &#91;ids&#91;i] <span class=\"hljs-keyword\">for<\/span> i in I&#91;<span class=\"hljs-number\">0<\/span>]], D&#91;<span class=\"hljs-number\">0<\/span>]<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h4 id=\"h-construir-grafo-simple-con-networkx-relaciones-sinteticas\" class=\"wp-block-heading\"><strong><em>Construir grafo simple con NetworkX (relaciones sint\u00e9ticas)<\/em><\/strong><\/h4>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-comment\"># graph_store.py<\/span>\nimport networkx <span class=\"hljs-keyword\">as<\/span> nx\n\nG = nx.DiGraph()\n<span class=\"hljs-keyword\">for<\/span> d in documents:\n    G.add_node(d&#91;<span class=\"hljs-string\">'id'<\/span>], text=d&#91;<span class=\"hljs-string\">'text'<\/span>], source=<span class=\"hljs-string\">'synthetic'<\/span>)\n\n<span class=\"hljs-comment\"># A\u00f1adimos aristas sem\u00e1nticas\/causales manuales para el ejemplo<\/span>\nG.add_edge(<span class=\"hljs-string\">'d1'<\/span>,<span class=\"hljs-string\">'d4'<\/span>, relation=<span class=\"hljs-string\">'example_of'<\/span>, weight=<span class=\"hljs-number\">0.9<\/span>)\nG.add_edge(<span class=\"hljs-string\">'d3'<\/span>,<span class=\"hljs-string\">'d2'<\/span>, relation=<span class=\"hljs-string\">'uses'<\/span>, weight=<span class=\"hljs-number\">0.8<\/span>)\nG.add_edge(<span class=\"hljs-string\">'d5'<\/span>,<span class=\"hljs-string\">'d3'<\/span>, relation=<span class=\"hljs-string\">'informs'<\/span>, weight=<span class=\"hljs-number\">0.7<\/span>)\n\ndef neighbors(node, k=<span class=\"hljs-number\">3<\/span>):\n    <span class=\"hljs-comment\"># devuelve vecinos ordenados por peso<\/span>\n    nbrs = sorted(G&#91;node].items(), key=lambda x: -x&#91;<span class=\"hljs-number\">1<\/span>].get(<span class=\"hljs-string\">'weight'<\/span>,<span class=\"hljs-number\">0<\/span>))\n    <span class=\"hljs-keyword\">return<\/span> &#91;n <span class=\"hljs-keyword\">for<\/span> n,_ in nbrs]&#91;:k]<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h4 id=\"h-estrategia-de-fusion-combinar-vecinos-del-grafo-con-vecinos-semanticos\" class=\"wp-block-heading\"><strong><em>Estrategia de fusi\u00f3n: combinar vecinos del grafo con vecinos sem\u00e1nticos<\/em><\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Implementamos la l\u00f3gica principal de recuperaci\u00f3n:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>retrieve_rag<\/code>: solo utiliza b\u00fasqueda sem\u00e1ntica.<\/li>\n\n\n\n<li><code>retrieve_rag_graph<\/code>: combina la b\u00fasqueda sem\u00e1ntica con el grafo, a\u00f1adiendo vecinos relacionados para enriquecer el contexto recuperado.<\/li>\n<\/ul>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-comment\"># fusion.py<\/span>\n\ndoc_map = {d&#91;<span class=\"hljs-string\">'id'<\/span>]: d <span class=\"hljs-keyword\">for<\/span> d in documents}\n\ndef retrieve_rag(query, k=<span class=\"hljs-number\">3<\/span>):\n    ids, scores = query_vector(query, k=k)\n    <span class=\"hljs-keyword\">return<\/span> ids\n\ndef retrieve_rag_graph(query, k=<span class=\"hljs-number\">3<\/span>, graph_k=<span class=\"hljs-number\">2<\/span>):\n    <span class=\"hljs-comment\"># Recuperaci\u00f3n sem\u00e1ntica<\/span>\n    ids, scores = query_vector(query, k=k)\n    <span class=\"hljs-comment\"># Expandir con vecinos del grafo<\/span>\n    expanded = &#91;]\n    <span class=\"hljs-keyword\">for<\/span> id_ in ids:\n        expanded.append(id_)\n        <span class=\"hljs-keyword\">for<\/span> n in neighbors(id_, k=graph_k):\n            expanded.append(n)\n    <span class=\"hljs-comment\"># Mantener orden y unicidad<\/span>\n    seen = set()\n    <span class=\"hljs-keyword\">final<\/span> = &#91;]\n    <span class=\"hljs-keyword\">for<\/span> x in expanded:\n        <span class=\"hljs-keyword\">if<\/span> x not in seen:\n            seen.add(x)\n            <span class=\"hljs-keyword\">final<\/span>.append(x)\n    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-keyword\">final<\/span>&#91;:k+graph_k]\n\n<span class=\"hljs-comment\"># Ejemplo de uso<\/span>\nq = <span class=\"hljs-string\">\"\u00bfC\u00f3mo se almacenan las relaciones en bases de datos?\"<\/span>\n<span class=\"hljs-keyword\">print<\/span>(<span class=\"hljs-string\">\"RAG:\"<\/span>, retrieve_rag(q))\n<span class=\"hljs-keyword\">print<\/span>(<span class=\"hljs-string\">\"RAG+Graph:\"<\/span>, retrieve_rag_graph(q))<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h4 id=\"h-explicabilidad-y-evidencia\" class=\"wp-block-heading\"><strong><em>Explicabilidad y Evidencia<\/em><\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Utilizamos algoritmos de caminos m\u00ednimos de <em>networkx<\/em> para explicar por qu\u00e9 ciertos documentos est\u00e1n relacionados, mostrando la ruta que conecta un concepto con otro en el grafo.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-comment\"># evidencia.py<\/span>\nimport networkx <span class=\"hljs-keyword\">as<\/span> nx\n\ndef explain_path(source_ids, target_id):\n    explanations = &#91;]\n    <span class=\"hljs-keyword\">for<\/span> s in source_ids:\n        <span class=\"hljs-keyword\">if<\/span> nx.has_path(G, s, target_id):\n            path = nx.shortest_path(G, s, target_id)\n            explanations.append(path)\n    <span class=\"hljs-keyword\">return<\/span> explanations\n\n<span class=\"hljs-comment\"># Si la respuesta usa d4 como evidencia, mostramos caminos desde d1<\/span>\n<span class=\"hljs-keyword\">print<\/span>(explain_path(&#91;<span class=\"hljs-string\">'d1'<\/span>,<span class=\"hljs-string\">'d3'<\/span>], <span class=\"hljs-string\">'d4'<\/span>))<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h4 id=\"h-visualizacion-del-grafo\" class=\"wp-block-heading\"><strong><em>Visualizaci\u00f3n del Grafo<\/em><\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Generamos un gr\u00e1fico interactivo (usando <code>matplotlib<\/code>) que muestra los nodos, sus relaciones y un extracto del texto de cada documento para inspeccionar visualmente la estructura del conocimiento.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">import matplotlib.pyplot <span class=\"hljs-keyword\">as<\/span> plt\nimport networkx <span class=\"hljs-keyword\">as<\/span> nx\n\nplt.figure(figsize=(<span class=\"hljs-number\">12<\/span>, <span class=\"hljs-number\">10<\/span>))\npos = nx.spring_layout(G, k=<span class=\"hljs-number\">1.5<\/span>)  <span class=\"hljs-comment\"># Ajustamos k para separar m\u00e1s los nodos<\/span>\n\n<span class=\"hljs-comment\"># Dibujar nodos y aristas<\/span>\nnx.draw_networkx_nodes(G, pos, node_color=<span class=\"hljs-string\">'lightblue'<\/span>, node_size=<span class=\"hljs-number\">3500<\/span>)\nnx.draw_networkx_edges(G, pos, edge_color=<span class=\"hljs-string\">'gray'<\/span>, width=<span class=\"hljs-number\">1.5<\/span>, alpha=<span class=\"hljs-number\">0.5<\/span>)\n\n<span class=\"hljs-comment\"># Crear etiquetas que combinen ID y Texto (recortado para legibilidad)<\/span>\nlabels = {node: f<span class=\"hljs-string\">\"{node}\\n{G.nodes&#91;node]&#91;'text']&#91;:30]}...\"<\/span> <span class=\"hljs-keyword\">for<\/span> node in G.nodes()}\nnx.draw_networkx_labels(G, pos, labels=labels, font_size=<span class=\"hljs-number\">9<\/span>, font_weight=<span class=\"hljs-string\">'bold'<\/span>)\n\n<span class=\"hljs-comment\"># A\u00f1adir etiquetas a las aristas<\/span>\nedge_labels = nx.get_edge_attributes(G, <span class=\"hljs-string\">'relation'<\/span>)\nnx.draw_networkx_edge_labels(G, pos, edge_labels=edge_labels, font_color=<span class=\"hljs-string\">'red'<\/span>)\n\nplt.title(<span class=\"hljs-string\">'Grafo de Documentos con Contenido Textual'<\/span>)\nplt.axis(<span class=\"hljs-string\">'off'<\/span>)\nplt.show()<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"474\" height=\"402\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/08\/1oYawLkCbtCPQ7KIXpG0wKw.png\" alt=\"\" class=\"wp-image-36392\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/08\/1oYawLkCbtCPQ7KIXpG0wKw.png 474w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/08\/1oYawLkCbtCPQ7KIXpG0wKw-300x254.png 300w\" sizes=\"auto, (max-width: 474px) 100vw, 474px\" \/><\/figure>\n<\/div>\n\n\n<h4 id=\"h-experimento-reproducible-rag-vs-rag-graph\" class=\"wp-block-heading\"><strong><em>Experimento Reproducible: RAG vs. RAG + Graph<\/em><\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">En esta secci\u00f3n evaluamos cuantitativamente si la inclusi\u00f3n del grafo mejora la recuperaci\u00f3n de informaci\u00f3n.<\/p>\n\n\n\n<h5 id=\"h-metricas-utilizadas\" class=\"wp-block-heading\"><strong><em>M\u00e9tricas utilizadas:<\/em><\/strong><\/h5>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Recall@K: <\/strong>\u00bfest\u00e1 el documento relevante entre los K primeros resultados?<\/li>\n\n\n\n<li><strong>MRR:<\/strong> eval\u00faa qu\u00e9 tan arriba en la lista aparece el primer documento relevante.<\/li>\n<\/ul>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">import pandas <span class=\"hljs-keyword\">as<\/span> pd\n\n<span class=\"hljs-comment\"># 1. Definir Ground Truth (Pregunta -&gt; IDs relevantes esperados)<\/span>\nevaluation_set = &#91;\n    {<span class=\"hljs-string\">\"query\"<\/span>: <span class=\"hljs-string\">\"\u00bfQu\u00e9 es Neo4j?\"<\/span>, <span class=\"hljs-string\">\"expected\"<\/span>: &#91;<span class=\"hljs-string\">\"d4\"<\/span>, <span class=\"hljs-string\">\"d1\"<\/span>]},\n    {<span class=\"hljs-string\">\"query\"<\/span>: <span class=\"hljs-string\">\"\u00bfC\u00f3mo funcionan los sistemas RAG?\"<\/span>, <span class=\"hljs-string\">\"expected\"<\/span>: &#91;<span class=\"hljs-string\">\"d3\"<\/span>, <span class=\"hljs-string\">\"d2\"<\/span>]},\n    {<span class=\"hljs-string\">\"query\"<\/span>: <span class=\"hljs-string\">\"Bases de datos y relaciones\"<\/span>, <span class=\"hljs-string\">\"expected\"<\/span>: &#91;<span class=\"hljs-string\">\"d1\"<\/span>, <span class=\"hljs-string\">\"d4\"<\/span>]},\n    {<span class=\"hljs-string\">\"query\"<\/span>: <span class=\"hljs-string\">\"Razonamiento sobre eventos\"<\/span>, <span class=\"hljs-string\">\"expected\"<\/span>: &#91;<span class=\"hljs-string\">\"d5\"<\/span>, <span class=\"hljs-string\">\"d3\"<\/span>]}\n]\n\ndef calculate_metrics(retrieved_ids, expected_ids, k=<span class=\"hljs-number\">5<\/span>):\n    <span class=\"hljs-comment\"># Recall@K<\/span>\n    hits = len(set(retrieved_ids&#91;:k]) &amp; set(expected_ids))\n    recall = hits \/ len(expected_ids) <span class=\"hljs-keyword\">if<\/span> len(expected_ids) &gt; <span class=\"hljs-number\">0<\/span> <span class=\"hljs-keyword\">else<\/span> <span class=\"hljs-number\">0<\/span>\n    \n    <span class=\"hljs-comment\"># MRR<\/span>\n    mrr = <span class=\"hljs-number\">0<\/span>\n    <span class=\"hljs-keyword\">for<\/span> rank, res_id in enumerate(retrieved_ids, <span class=\"hljs-number\">1<\/span>):\n        <span class=\"hljs-keyword\">if<\/span> res_id in expected_ids:\n            mrr = <span class=\"hljs-number\">1<\/span> \/ rank\n            <span class=\"hljs-keyword\">break<\/span>\n    <span class=\"hljs-keyword\">return<\/span> recall, mrr\n\nresults = &#91;]\n\n<span class=\"hljs-keyword\">for<\/span> test in evaluation_set:\n    q = test&#91;<span class=\"hljs-string\">\"query\"<\/span>]\n    target = test&#91;<span class=\"hljs-string\">\"expected\"<\/span>]\n    \n    <span class=\"hljs-comment\"># Ejecutar ambos m\u00e9todos<\/span>\n    ids_rag = retrieve_rag(q, k=<span class=\"hljs-number\">4<\/span>)\n    ids_hybrid = retrieve_rag_graph(q, k=<span class=\"hljs-number\">2<\/span>, graph_k=<span class=\"hljs-number\">2<\/span>) <span class=\"hljs-comment\"># k=2 sem\u00e1nticos + 2 grafo<\/span>\n    \n    <span class=\"hljs-comment\"># Calcular m\u00e9tricas<\/span>\n    rec_rag, mrr_rag = calculate_metrics(ids_rag, target)\n    rec_hyb, mrr_hyb = calculate_metrics(ids_hybrid, target)\n    \n    results.append({\n        <span class=\"hljs-string\">\"Consulta\"<\/span>: q,\n        <span class=\"hljs-string\">\"Recall Baseline\"<\/span>: rec_rag,\n        <span class=\"hljs-string\">\"MRR Baseline\"<\/span>: mrr_rag,\n        <span class=\"hljs-string\">\"Recall +Graph\"<\/span>: rec_hyb,\n        <span class=\"hljs-string\">\"MRR +Graph\"<\/span>: mrr_hyb\n    })\n\n<span class=\"hljs-comment\"># Mostrar resultados<\/span>\ndf_results = pd.DataFrame(results)\ndisplay(df_results)\n\n<span class=\"hljs-keyword\">print<\/span>(f<span class=\"hljs-string\">\"\\nPromedio Recall Baseline: {df_results&#91;'Recall Baseline'].mean():.2f}\"<\/span>)\n<span class=\"hljs-keyword\">print<\/span>(f<span class=\"hljs-string\">\"Promedio Recall +Graph: {df_results&#91;'Recall +Graph'].mean():.2f}\"<\/span>)<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h4 id=\"h-ejemplo-avanzado-usar-caminos-de-evidencia-para-explicar-una-respuesta\" class=\"wp-block-heading\"><strong><em>Ejemplo avanzado: usar caminos de evidencia para explicar una respuesta<\/em><\/strong><\/h4>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-comment\"># evidencia.py<\/span>\nimport networkx <span class=\"hljs-keyword\">as<\/span> nx\n\ndef explain_path(source_ids, target_id):\n    explanations = &#91;]\n    <span class=\"hljs-keyword\">for<\/span> s in source_ids:\n        <span class=\"hljs-comment\"># nx.has_path y G ya est\u00e1n disponibles globalmente<\/span>\n        <span class=\"hljs-keyword\">if<\/span> nx.has_path(G, s, target_id):\n            path = nx.shortest_path(G, s, target_id)\n            explanations.append(path)\n    <span class=\"hljs-keyword\">return<\/span> explanations\n\n<span class=\"hljs-comment\"># Si la respuesta usa d4 como evidencia, mostramos caminos desde d1 y d3<\/span>\n<span class=\"hljs-keyword\">print<\/span>(explain_path(&#91;<span class=\"hljs-string\">'d1'<\/span>,<span class=\"hljs-string\">'d3'<\/span>], <span class=\"hljs-string\">'d4'<\/span>))<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\"><strong>Uso pr\u00e1ctico:<\/strong> cuando el LLM cita un documento, adjunta la ruta de evidencia <em>(nodos y relaciones)<\/em> para que el usuario verifique la cadena de razonamiento.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ver el experimento completo en GitHub: <\/strong><a href=\"https:\/\/github.com\/Orliluq\/graph_engineering.git\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/github.com\/Orliluq\/graph_engineering.git<\/a><\/p>\n\n\n\n<h3 id=\"h-buenas-practicas\" class=\"wp-block-heading\"><strong>Buenas pr\u00e1cticas<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>H\u00edbrido vector+grafo:<\/strong> no reemplaces embeddings; comb\u00ednalos. El <a href=\"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/graphrag-como-lograr-razonamiento-multisalto-y-trazabilidad-en-ia\/\" data-type=\"link\" data-id=\"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/graphrag-como-lograr-razonamiento-multisalto-y-trazabilidad-en-ia\/\">grafo<\/a> aporta estructura y trazabilidad.<\/li>\n\n\n\n<li><strong>Peso y confianza:<\/strong> asigna pesos a aristas y usa esos pesos en la fusi\u00f3n (ejemplo: pondera scores de embeddings con centralidad o confianza de arista).<\/li>\n\n\n\n<li><strong>Actualizaci\u00f3n incremental:<\/strong> que soporta inserciones y borrados sin reconstruir todo el \u00edndice.<\/li>\n\n\n\n<li><strong>Pruebas A\/B y m\u00e9tricas:<\/strong> instrumenta cada cambio y mide impacto en KPIs reales (tiempo de respuesta, tasa de correcci\u00f3n, satisfacci\u00f3n).<\/li>\n\n\n\n<li><strong>Privacidad y gobernanza:<\/strong> registra or\u00edgenes y permisos en metadatos de nodos\/aristas.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Graph Engineering para IA <\/em>no es una panacea ni un reemplazo autom\u00e1tico de t\u00e9cnicas vectoriales; es una <strong><em><a href=\"https:\/\/graphable.ai\/jobs\/graph-engineer\/\" data-type=\"link\" data-id=\"https:\/\/graphable.ai\/jobs\/graph-engineer\/\">herramienta complementaria<\/a><\/em><\/strong> que aporta estructura, trazabilidad y nuevas se\u00f1ales. La \u00fanica forma responsable de decidir su adopci\u00f3n es <strong><em>medir<\/em><\/strong>: ejecutar experimentos controlados, cuantificar mejoras y analizar el coste operativo.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a class=\"alt=&quot;Knowledge Graph para razonamiento multisalto en sistemas de IA&quot;\" href=\"https:\/\/gemini.google.com\/16c9aaaf-bc99-4de4-a2dc-fbabcce2912c\" target=\"_blank\" rel=\" noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"436\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/08\/1O77mdCSX5k76NNn5fbAycA.png\" alt=\"\" class=\"wp-image-36395\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/08\/1O77mdCSX5k76NNn5fbAycA.png 800w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/08\/1O77mdCSX5k76NNn5fbAycA-300x164.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/08\/1O77mdCSX5k76NNn5fbAycA-768x419.png 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Durante los \u00faltimos a\u00f1os, la IA ha evolucionado desde la predicci\u00f3n de palabras y la b\u00fasqueda de similitudes hacia sistemas capaces de trabajar con conocimiento cada vez m\u00e1s complejo. En este contexto, Graph Engineering para IA plantea una pregunta fundamental: \u00bfqu\u00e9 pasa cuando un modelo necesita razonar sobre relaciones, conectar evidencias y comprender c\u00f3mo diferentes&#8230; <a class=\"more-link\" href=\"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/graph-engineering-la-siguiente-habilidad-del-ingeniero\/\">Read more<\/a><\/p>\n","protected":false},"author":313,"featured_media":36396,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[10610,10598],"tags":[12919,14080],"collections":[12988,12990],"class_list":["post-36377","post","type-post","status-publish","format-standard","has-post-thumbnail","category-aprendizaje-automatico","category-inteligencia-artificial","tag-artificial-intelligence-es","tag-graph-engineer-es","collections-ia-es","collections-machine-learning-es","entry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.9 (Yoast SEO v28.1) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Graph Engineering para IA: Knowledge Graphs y GraphRAG<\/title>\n<meta name=\"description\" content=\"Descubre c\u00f3mo Graph Engineering para IA conecta datos, Knowledge Graphs y GraphRAG para mejorar el razonamiento y la trazabilidad.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/graph-engineering-la-siguiente-habilidad-del-ingeniero\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Graph Engineering: la siguiente habilidad del ingeniero\" \/>\n<meta property=\"og:description\" content=\"Descubre c\u00f3mo Graph Engineering para IA conecta datos, Knowledge Graphs y GraphRAG para mejorar el razonamiento y la trazabilidad.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/graph-engineering-la-siguiente-habilidad-del-ingeniero\/\" \/>\n<meta property=\"og:site_name\" content=\"Codemotion Magazine\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Codemotion.Italy\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-18T09:19:42+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-18T09:25:16+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/08\/17BfC-oOwhp7Ken9tH6ZKeQ.png\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"436\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Orli Dun\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:site\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Orli Dun\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/es\\\/inteligencia-artificial\\\/graph-engineering-la-siguiente-habilidad-del-ingeniero\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/es\\\/inteligencia-artificial\\\/graph-engineering-la-siguiente-habilidad-del-ingeniero\\\/\"},\"author\":{\"name\":\"Orli Dun\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#\\\/schema\\\/person\\\/37ca255c359cc54110ac89eb4fa7db42\"},\"headline\":\"Graph Engineering: la siguiente habilidad del ingeniero\",\"datePublished\":\"2026-08-18T09:19:42+00:00\",\"dateModified\":\"2026-08-18T09:25:16+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/es\\\/inteligencia-artificial\\\/graph-engineering-la-siguiente-habilidad-del-ingeniero\\\/\"},\"wordCount\":1392,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/es\\\/inteligencia-artificial\\\/graph-engineering-la-siguiente-habilidad-del-ingeniero\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/17BfC-oOwhp7Ken9tH6ZKeQ.png\",\"keywords\":[\"Artificial Intelligence\",\"Graph engineer\"],\"articleSection\":[\"Aprendizaje autom\u00e1tico\",\"Inteligencia Artificial\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/es\\\/inteligencia-artificial\\\/graph-engineering-la-siguiente-habilidad-del-ingeniero\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/es\\\/inteligencia-artificial\\\/graph-engineering-la-siguiente-habilidad-del-ingeniero\\\/\",\"url\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/es\\\/inteligencia-artificial\\\/graph-engineering-la-siguiente-habilidad-del-ingeniero\\\/\",\"name\":\"Graph Engineering para IA: Knowledge Graphs y GraphRAG\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/es\\\/inteligencia-artificial\\\/graph-engineering-la-siguiente-habilidad-del-ingeniero\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/es\\\/inteligencia-artificial\\\/graph-engineering-la-siguiente-habilidad-del-ingeniero\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/17BfC-oOwhp7Ken9tH6ZKeQ.png\",\"datePublished\":\"2026-08-18T09:19:42+00:00\",\"dateModified\":\"2026-08-18T09:25:16+00:00\",\"description\":\"Descubre c\u00f3mo Graph Engineering para IA conecta datos, Knowledge Graphs y GraphRAG para mejorar el razonamiento y la trazabilidad.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/es\\\/inteligencia-artificial\\\/graph-engineering-la-siguiente-habilidad-del-ingeniero\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/es\\\/inteligencia-artificial\\\/graph-engineering-la-siguiente-habilidad-del-ingeniero\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/es\\\/inteligencia-artificial\\\/graph-engineering-la-siguiente-habilidad-del-ingeniero\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/17BfC-oOwhp7Ken9tH6ZKeQ.png\",\"contentUrl\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/17BfC-oOwhp7Ken9tH6ZKeQ.png\",\"width\":800,\"height\":436},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/es\\\/inteligencia-artificial\\\/graph-engineering-la-siguiente-habilidad-del-ingeniero\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Inteligencia Artificial\",\"item\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/es\\\/inteligencia-artificial\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Graph Engineering: la siguiente habilidad del ingeniero\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#website\",\"url\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/\",\"name\":\"Codemotion Magazine\",\"description\":\"We code the future. Together\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#organization\",\"name\":\"Codemotion\",\"url\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2019\\\/11\\\/codemotionlogo.png\",\"contentUrl\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2019\\\/11\\\/codemotionlogo.png\",\"width\":225,\"height\":225,\"caption\":\"Codemotion\"},\"image\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/Codemotion.Italy\\\/\",\"https:\\\/\\\/x.com\\\/CodemotionIT\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#\\\/schema\\\/person\\\/37ca255c359cc54110ac89eb4fa7db42\",\"name\":\"Orli Dun\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/alura-profile-100x100.png\",\"url\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/alura-profile-100x100.png\",\"contentUrl\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/alura-profile-100x100.png\",\"caption\":\"Orli Dun\"},\"description\":\"From finance to the digital revolution! Systems Engineer | Cloud &amp; AI | Tech Creator | Community Community Leader #foramillionfriends\",\"sameAs\":[\"https:\\\/\\\/orlidun.vercel.app\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/orlibetdungonzalez\"],\"url\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/author\\\/orli-dun\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Graph Engineering para IA: Knowledge Graphs y GraphRAG","description":"Descubre c\u00f3mo Graph Engineering para IA conecta datos, Knowledge Graphs y GraphRAG para mejorar el razonamiento y la trazabilidad.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/graph-engineering-la-siguiente-habilidad-del-ingeniero\/","og_locale":"en_US","og_type":"article","og_title":"Graph Engineering: la siguiente habilidad del ingeniero","og_description":"Descubre c\u00f3mo Graph Engineering para IA conecta datos, Knowledge Graphs y GraphRAG para mejorar el razonamiento y la trazabilidad.","og_url":"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/graph-engineering-la-siguiente-habilidad-del-ingeniero\/","og_site_name":"Codemotion Magazine","article_publisher":"https:\/\/www.facebook.com\/Codemotion.Italy\/","article_published_time":"2026-08-18T09:19:42+00:00","article_modified_time":"2026-08-18T09:25:16+00:00","og_image":[{"width":800,"height":436,"url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/08\/17BfC-oOwhp7Ken9tH6ZKeQ.png","type":"image\/png"}],"author":"Orli Dun","twitter_card":"summary_large_image","twitter_creator":"@CodemotionIT","twitter_site":"@CodemotionIT","twitter_misc":{"Written by":"Orli Dun","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/graph-engineering-la-siguiente-habilidad-del-ingeniero\/#article","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/graph-engineering-la-siguiente-habilidad-del-ingeniero\/"},"author":{"name":"Orli Dun","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/37ca255c359cc54110ac89eb4fa7db42"},"headline":"Graph Engineering: la siguiente habilidad del ingeniero","datePublished":"2026-08-18T09:19:42+00:00","dateModified":"2026-08-18T09:25:16+00:00","mainEntityOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/graph-engineering-la-siguiente-habilidad-del-ingeniero\/"},"wordCount":1392,"commentCount":0,"publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/graph-engineering-la-siguiente-habilidad-del-ingeniero\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/08\/17BfC-oOwhp7Ken9tH6ZKeQ.png","keywords":["Artificial Intelligence","Graph engineer"],"articleSection":["Aprendizaje autom\u00e1tico","Inteligencia Artificial"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/graph-engineering-la-siguiente-habilidad-del-ingeniero\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/graph-engineering-la-siguiente-habilidad-del-ingeniero\/","url":"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/graph-engineering-la-siguiente-habilidad-del-ingeniero\/","name":"Graph Engineering para IA: Knowledge Graphs y GraphRAG","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/graph-engineering-la-siguiente-habilidad-del-ingeniero\/#primaryimage"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/graph-engineering-la-siguiente-habilidad-del-ingeniero\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/08\/17BfC-oOwhp7Ken9tH6ZKeQ.png","datePublished":"2026-08-18T09:19:42+00:00","dateModified":"2026-08-18T09:25:16+00:00","description":"Descubre c\u00f3mo Graph Engineering para IA conecta datos, Knowledge Graphs y GraphRAG para mejorar el razonamiento y la trazabilidad.","breadcrumb":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/graph-engineering-la-siguiente-habilidad-del-ingeniero\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/graph-engineering-la-siguiente-habilidad-del-ingeniero\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/graph-engineering-la-siguiente-habilidad-del-ingeniero\/#primaryimage","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/08\/17BfC-oOwhp7Ken9tH6ZKeQ.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/08\/17BfC-oOwhp7Ken9tH6ZKeQ.png","width":800,"height":436},{"@type":"BreadcrumbList","@id":"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/graph-engineering-la-siguiente-habilidad-del-ingeniero\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.codemotion.com\/magazine\/"},{"@type":"ListItem","position":2,"name":"Inteligencia Artificial","item":"https:\/\/www.codemotion.com\/magazine\/es\/inteligencia-artificial\/"},{"@type":"ListItem","position":3,"name":"Graph Engineering: la siguiente habilidad del ingeniero"}]},{"@type":"WebSite","@id":"https:\/\/www.codemotion.com\/magazine\/#website","url":"https:\/\/www.codemotion.com\/magazine\/","name":"Codemotion Magazine","description":"We code the future. Together","publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.codemotion.com\/magazine\/#organization","name":"Codemotion","url":"https:\/\/www.codemotion.com\/magazine\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","width":225,"height":225,"caption":"Codemotion"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Codemotion.Italy\/","https:\/\/x.com\/CodemotionIT"]},{"@type":"Person","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/37ca255c359cc54110ac89eb4fa7db42","name":"Orli Dun","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/04\/alura-profile-100x100.png","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/04\/alura-profile-100x100.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/04\/alura-profile-100x100.png","caption":"Orli Dun"},"description":"From finance to the digital revolution! Systems Engineer | Cloud &amp; AI | Tech Creator | Community Community Leader #foramillionfriends","sameAs":["https:\/\/orlidun.vercel.app\/","https:\/\/www.linkedin.com\/in\/orlibetdungonzalez"],"url":"https:\/\/www.codemotion.com\/magazine\/author\/orli-dun\/"}]}},"featured_image_src":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/08\/17BfC-oOwhp7Ken9tH6ZKeQ-600x400.png","featured_image_src_square":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/08\/17BfC-oOwhp7Ken9tH6ZKeQ-600x436.png","author_info":{"display_name":"Orli Dun","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/orli-dun\/"},"uagb_featured_image_src":{"full":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/08\/17BfC-oOwhp7Ken9tH6ZKeQ.png",800,436,false],"thumbnail":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/08\/17BfC-oOwhp7Ken9tH6ZKeQ-150x150.png",150,150,true],"medium":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/08\/17BfC-oOwhp7Ken9tH6ZKeQ-300x164.png",300,164,true],"medium_large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/08\/17BfC-oOwhp7Ken9tH6ZKeQ-768x419.png",768,419,true],"large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/08\/17BfC-oOwhp7Ken9tH6ZKeQ.png",800,436,false],"1536x1536":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/08\/17BfC-oOwhp7Ken9tH6ZKeQ.png",800,436,false],"2048x2048":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/08\/17BfC-oOwhp7Ken9tH6ZKeQ.png",800,436,false],"small-home-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/08\/17BfC-oOwhp7Ken9tH6ZKeQ-100x100.png",100,100,true],"sidebar-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/08\/17BfC-oOwhp7Ken9tH6ZKeQ-180x128.png",180,128,true],"genesis-singular-images":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/08\/17BfC-oOwhp7Ken9tH6ZKeQ.png",800,436,false],"archive-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/08\/17BfC-oOwhp7Ken9tH6ZKeQ-400x225.png",400,225,true],"gb-block-post-grid-landscape":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/08\/17BfC-oOwhp7Ken9tH6ZKeQ-600x400.png",600,400,true],"gb-block-post-grid-square":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2026\/08\/17BfC-oOwhp7Ken9tH6ZKeQ-600x436.png",600,436,true]},"uagb_author_info":{"display_name":"Orli Dun","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/orli-dun\/"},"uagb_comment_info":0,"uagb_excerpt":"Durante los \u00faltimos a\u00f1os, la IA ha evolucionado desde la predicci\u00f3n de palabras y la b\u00fasqueda de similitudes hacia sistemas capaces de trabajar con conocimiento cada vez m\u00e1s complejo. En este contexto, Graph Engineering para IA plantea una pregunta fundamental: \u00bfqu\u00e9 pasa cuando un modelo necesita razonar sobre relaciones, conectar evidencias y comprender c\u00f3mo diferentes&#8230;&hellip;","lang":"es","_links":{"self":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/36377","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/users\/313"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/comments?post=36377"}],"version-history":[{"count":2,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/36377\/revisions"}],"predecessor-version":[{"id":36400,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/36377\/revisions\/36400"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media\/36396"}],"wp:attachment":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media?parent=36377"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/categories?post=36377"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/tags?post=36377"},{"taxonomy":"collections","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/collections?post=36377"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}