Creación de un grafo de conocimiento sobre grúas y técnicas de razonamiento semántico: extracción de relaciones entre entidades de una base de datos de fallos y aplicación práctica de la base de datos de grafos Neo4j
📌 Solución técnica para el grafo de conocimiento sobre averías en grúas aéreas
El grafo de conocimiento transforma los registros de averías, las órdenes de trabajo de mantenimiento, los datos de repuestos y los parámetros de los equipos —que se encuentran dispersos en las operaciones de mantenimiento de las grúas puente— en una red semántica estructurada. La cadena tecnológica consta de cuatro niveles: el nivel de datos (órdenes de mantenimiento/registros de averías/alarmas de sensores/sustitución de piezas de recambio/normas del sector/manuales de los equipos), el nivel de extracción de conocimiento (BiLSTM + CRF para el reconocimiento de entidades + extracción de relaciones + F1 = 91,21 TP3T), capa de almacenamiento de grafos (Neo4j Enterprise 5.x, modelo de grafo de atributos, número de nodos ≥ 500 000) y capa de aplicación (razonamiento para el diagnóstico de averías/recomendación de planes de reparación/búsqueda de averías similares/preguntas y respuestas inteligentes). El sistema ya se ha implementado en la base de conocimientos interna de Krued Heavy Industry y abarca 8 categorías de grúas puente, 243 tipos de modos de fallo y 1.580 casos de averías.
El diagnóstico de averías de las grúas puente ha dependido durante mucho tiempo de la experiencia personal de los ingenieros de mantenimiento. A lo largo de su ciclo de vida, que abarca entre 15 y 20 años desde su instalación hasta su retirada, una grúa puente genera cientos de órdenes de mantenimiento y registros de averías; sin embargo, estos datos estructurados o semiestructurados, dispersos en diferentes sistemas (ERP, CMMS, Excel), no constituyen un activo de conocimiento reutilizable. La tecnología de grafos de conocimiento (Knowledge Graph), mediante el reconocimiento de entidades (NER), la extracción de relaciones (RE) y el almacenamiento en grafos (Neo4j), transforma esta información fragmentada en una red de relaciones semánticas entre equipos, averías, causas, medidas y piezas de recambio. Este artículo, tomando como referencia la creación de la base de datos interna de averías del Grupo Krude Heavy Industry, presenta de forma exhaustiva la solución de ingeniería desde la recopilación de datos hasta la consulta y el razonamiento en grafos. Las siguientes soluciones técnicas se basan en la documentación oficial de Neo4j (Neo4j Graph Data Science Manual v5.x, 2024), el paquete de herramientas de procesamiento del lenguaje natural HanLP (versión 2.1, 2023) y la experiencia práctica de implementación del proyecto de la base de conocimientos sobre averías interna de Krude Heavy Industry (número de proyecto KL-KG-2024-001).
Grafo de conocimiento sobre averías en grúas puente: fuentes de datos y sistema de entidades
Los datos del grafo de conocimiento sobre averías de grúas aéreas proceden de cuatro dimensiones: ① Ficha técnica del equipo (modelo/capacidad en toneladas/luz/altura de elevación/clase de trabajo/número de serie/fecha de puesta en servicio); ② órdenes de trabajo por averías (hora de la avería/número de equipo/síntomas de la avería/código de avería/proceso de diagnóstico/medidas de reparación/piezas de recambio sustituidas/personal de mantenimiento/duración de la parada); ③ datos de sensores (valor eficaz de la vibración/temperatura/corriente/historial de sobrecargas); ④ Normas del sector (cláusulas relevantes para la determinación de averías en normas como GB/T 3811, TSG 51 y GB/T 14405, entre otras). Tras la extracción de relaciones entre entidades, se han definido un total de 6 tipos de entidades y 9 tipos de relaciones:
| Tipo de entidad | Nombre de la etiqueta | Ejemplo | orden de magnitud |
|---|---|---|---|
| Equipos de grúas | Grúa | QD32t-023/ LD10t-156 | 500+ |
| Síntomas de la avería | Fallo | Ganchos de elevación / Deslizamiento del carro sobre el carril / Ruidos extraños en los frenos | 243 tipos |
| Causas de la avería | Causa | Desgaste de las pastillas de freno / Corrosión por picaduras en la banda de rodadura de las ruedas / Desgaste de la superficie dentada del acoplador | 480+ |
| Medidas de reparación | Acción | Sustitución de las pastillas de freno / Ajuste de la holgura de los frenos / Sustitución del acoplador | 620+ |
| Material de repuesto | Parte | Freno YWZ5-315/23 / Rueda ZGY-600 | 1,200+ |
| Cláusulas estándar | Estándar | GB/T 3811-2008 «Interpretación de las disposiciones fundamentales de la norma de diseño de grúas: los cinco grandes sistemas de carga, estructura, mecanismos, electricidad y seguridad» 5.2.3 | 80+ |
| Tipos de relaciones | Punto de partida → Punto de llegada | Explicación |
|---|---|---|
| has_fault | Grúa → Avería | Una grúa ha sufrido una avería |
| has_symptom | Fallo → Fallo | La avería A se produce al mismo tiempo que la avería B |
| causado por | Fallo → Causa | Una avería se debe a una causa determinada |
| resuelto por | Fallo → Acción | Una avería se soluciona mediante una medida determinada |
| uses_part | Acción → Parte | Para llevar a cabo una determinada medida es necesario sustituir una pieza de recambio |
| ref_standard | Fallo → Estándar | Cláusulas estándar relativas a una avería concreta |
| similar_to | Fallo → Fallo | La avería A es similar a la avería B (similitud coseno > 0,8) |
| ubicado en | Grúa → Ubicación | La grúa está situada en un taller o sección de producción |
| occurred_at | Fallo → Hora | Hora en que se produjo la avería |
Extracción de relaciones entre entidades: implementación técnica de BiLSTM+CRF
La extracción de conocimiento es la etapa más crucial en la construcción de grafos. El sistema utiliza un modelo de etiquetado de secuencias BiLSTM+CRF (red bidireccional de memoria a corto y largo plazo + campo aleatorio condicional), con HanLP 2.1 como canal de preprocesamiento (segmentación de palabras + etiquetado de partes de habla + análisis sintáctico de dependencias), y se ha entrenado con 2.400 textos sobre averías de tranvías etiquetados manualmente. El esquema de etiquetado utiliza BIOES (Begin/Inside/Outside/End/Single), con 6 clases de entidades × BIOES = 30 etiquetas de anotación.
Almacenamiento en la base de datos de grafos Neo4j y consultas Cypher
Los tríos extraídos (entidad inicial-relación-entidad final) se almacenan en la base de datos de grafos Neo4j Enterprise 5.x. Se utiliza el modelo Labeled Property Graph (grafo de propiedades etiquetadas), en el que cada nodo tiene una etiqueta (label) y las relaciones tienen un tipo (type) y una dirección (direction). Volumen de datos: número de nodos ≥ 58 000, número de relaciones ≥ 126 000 (a fecha de junio de 2026).
Ejemplos típicos de consultas Cypher:
// Consultar todas las averías históricas de la grúa QD32t-023 y las medidas de reparación correspondientes
MATCH (c:Crane {id: 'QD32t-023'})-[r1:has_fault]->(f:Fault)
OPTIONAL MATCH (f)-[r2:resolved_by]->(a:Action)
OPTIONAL MATCH (a)-[r3:uses_part]->(p:Part)
RETURN f.name AS «Síntoma de la avería», a.name AS «Medida de reparación», p.name AS «Pieza de recambio»
ORDER BY f.severity DESC
// Inferencia de averías basada en rutas de grafos: un día se produjo un "deslizamiento del gancho de elevación" en un vagón; se recomiendan líneas de investigación y piezas de recambio
MATCH path = (f:Fault {name: 'deslizamiento del gancho de elevación'})-[*1..2]- (n)
WHERE ANY(label IN labels(n) WHERE n:Action OR n:Part OR n:Cause)
RETURN path LIMIT 30
// Búsqueda de fallos similares (basada en la similitud de Jaccard de causas y medidas comunes)
MATCH (f1:Fault {name: 'Ruido extraño en los frenos'})-[r1]-> (n)
MATCH (f2:Fault)-[r2]->(n) WHERE f2 f1
WITH f2, COUNT(DISTINCT n) AS common,
COLLECT(DISTINCT n.name) AS shared_nodes
ORDER BY common DESC LIMIT 5
RETURN f2.name, common, shared_nodes
Razonamiento semántico y preguntas y respuestas inteligentes
El valor de los grafos de conocimiento radica en el razonamiento (Reasoning). El sistema admite tres modos de razonamiento:
①Razonamiento basado en reglas——Basado en un árbol de decisión para el diagnóstico de averías predefinido (conjunto de reglas «IF-THEN», elaborado por tres ingenieros expertos en mantenimiento de grúas, que abarca 8 categorías de equipos × 243 tipos de averías × más de 480 causas, con un total de 1.520 reglas), se lleva a cabo el diagnóstico automático mediante el recorrido de grafos Cypher;
②Razonamiento por ordenación de rutas——Dado un nodo defectuoso, se ordenan las soluciones de reparación candidatas mediante un recorrido aleatorio (Personalized PageRank, con 20 iteraciones y una probabilidad de reinicio del 0,15); la precisión de las recomendaciones de las tres mejores soluciones (Top-3) es del 86,41 TP3T (conjunto de validación N = 500);
③Preguntas y respuestas semánticas——NL2Cypher basado en plantillas (conversión de lenguaje natural a consultas Cypher), compatible con 12 plantillas de preguntas (por ejemplo, ”¿Qué averías ha tenido la grúa XX en los últimos días?” → MATCH(c:Crane)…).
Comparación entre el enfoque tradicional y el enfoque basado en grafos de conocimiento
| Elementos de comparación | Enfoque tradicional (base de datos relacional + búsqueda por palabras clave) | Solución de grafos de conocimiento (Neo4j + razonamiento semántico) |
|---|---|---|
| Modelo de datos | Tabla bidimensional, relaciones de clave externa | Diagrama de atributos: nodos, relaciones y atributos |
| Búsqueda de relaciones entre averías | Unión de varias tablas (entre 3 y 5), tiempo de respuesta de entre 500 ms y 3 s | Recorrido del grafo, tiempo de respuesta < 50 ms |
| Razonamiento en varios pasos (por ejemplo: avería → causa → medidas → repuestos) | Se necesitan 4 consultas SQL + ensamblaje en la capa de aplicación | Recorrido de un grafo Cypher en una sola pasada con saltos [1..4] |
| Detección de fallos similares | La precisión es baja debido a la coincidencia de palabras clave basadas en etiquetas | Similitud de Jaccard basada en estructuras de grafos + PageRank |
| Reutilización del conocimiento | La dependencia de la experiencia personal y la rotación de personal provocan una pérdida de conocimientos | Almacenamiento permanente de grafos de conocimiento y uso compartido entre equipos |
| Puesta en marcha en frío de un nuevo equipo | Es necesario recopilar un número suficiente de registros de averías | Es posible realizar inferencias basadas en la estructura de gráficos de dispositivos similares |
| Flexibilidad en las consultas | Informes predefinidos; las consultas ad hoc requieren desarrollo | Consultas sobre la marcha con Cypher, autoservicio a través de la interfaz web |
Preguntas frecuentes
Pregunta: ¿Cuántos datos se necesitan para que un grafo de conocimiento sea útil?
Respuesta: En la fase inicial, se recomienda contar con al menos 500 registros de fallos (que incluyan síntoma, causa y medida), lo que corresponde a entre 6.000 y 8.000 entidades y entre 12.000 y 15.000 relaciones. Con esta escala, la precisión de las recomendaciones de las tres principales averías (Top-3) puede alcanzar un valor superior a 701 TP3T. Cuando los datos superan los 2.000 registros (la escala actual de este proyecto), la precisión aumenta hasta 861 TP3T. En la fase de arranque en frío, se pueden importar primero datos de averías públicos del sector y cláusulas estándar como base de conocimiento inicial.
Pregunta: ¿Cuál es la diferencia fundamental entre la base de datos de grafos Neo4j y MySQL/PostgreSQL en lo que respecta a la gestión del conocimiento sobre fallos?
Respuesta: La diferencia fundamental radica en la eficiencia de las consultas de asociación con múltiples saltos. Por ejemplo, para consultar ”las medidas de reparación de averías similares a las que sufrió un Didi en un día determinado”, MySQL necesita entre 5 y 8 operaciones JOIN (con una respuesta en segundos) y, una vez fijada la estructura de las tablas, resulta difícil ampliar nuevas dimensiones de asociación. Neo4j, gracias a la coincidencia de patrones de longitud variable `[*1..4]`, puede realizar la consulta con una sola instrucción Cypher, con una respuesta inferior a 50 ms. Además, el modelo de grafo admite de forma natural la escalabilidad horizontal: no es necesario modificar la estructura de las tablas para añadir nuevos tipos de entidades o relaciones.
Pregunta: ¿Cuántos datos etiquetados manualmente se necesitan para la extracción de relaciones entre entidades en un grafo de conocimiento?
Respuesta: En este proyecto se utilizan 2.400 registros etiquetados manualmente (28.600 entidades y 12.400 relaciones), con un coste de etiquetado de aproximadamente 12.000 ¥ (3 etiquetadores × 10 días × 400 ¥/día). Si el presupuesto para el etiquetado es limitado, también se puede adoptar el método de supervisión a distancia (Distant Supervision), utilizando las listas de piezas de repuesto (BOM) y los códigos de avería existentes para generar automáticamente datos con etiquetado débil, que luego se verificarán manualmente; de este modo, se puede reducir el volumen de etiquetado a entre 400 y 600 entradas, a costa de que el valor F1 descienda de 91,21 TP3T a aproximadamente 851 TP3T.
Pregunta: ¿Son suficientes las 12 plantillas de preguntas y respuestas semánticas de NL2Cypher?
Respuesta: Las 12 plantillas cubren aproximadamente el 85% de los casos de consulta habituales en la base de datos de averías (según las estadísticas de los registros de consultas de operaciones y mantenimiento de los últimos tres meses de Krud Heavy Industry). Las plantillas se dividen en tres categorías según su función: consultas sobre averías (avería de un equipo concreto, causa de una avería, medidas correspondientes a una causa determinada), consultas sobre piezas de recambio (piezas de recambio necesarias para una medida concreta, medidas aplicables a una pieza de recambio concreta) y consultas de análisis estadístico (las N averías más frecuentes, equipos con el ciclo de mantenimiento más largo). Las consultas en lenguaje natural que superan el alcance de las plantillas se gestionan actualmente mediante sugerencias sintácticas de Cypher y completado manual.