Grafo de Conhecimento de Ponte Rolante e Raciocínio Semântico
Solução Técnica para o Grafo de Conhecimento de Falhas em Pontes Rolantes
O grafo de conhecimento transforma registos de falhas, ordens de manutenção, dados de peças de reposição e parâmetros de equipamento, dispersos nas operações de manutenção de pontes rolantes, numa rede semântica estruturada. A cadeia técnica compreende quatro camadas: camada de dados (ordens de manutenção/registos de falhas/alarmes de sensores/substituição de peças/normas do setor/manuais de equipamento), camada de extração de conhecimento (reconhecimento de entidades BiLSTM+CRF + extração de relações, F1=91.2%), camada de armazenamento em grafo (Neo4j Enterprise 5.x, modelo de grafo de propriedades, ≥500 mil nós) e camada de aplicação (raciocínio para diagnóstico de falhas/recomendação de planos de manutenção/pesquisa de falhas semelhantes/assistente inteligente). O sistema está implementado na base de conhecimento interna da Kelude, cobrindo 8 tipos de equipamentos de ponte rolante, 243 modos de falha e 1.580 casos de falha.
O diagnóstico de falhas em pontes rolantes tem dependido, durante muito tempo, da experiência individual dos engenheiros de manutenção. Ao longo do ciclo de vida de uma ponte rolante, de 15 a 20 anos entre a instalação e o desmantelamento, são geradas centenas de ordens de manutenção e registos de falhas — no entanto, estes dados estruturados ou semiestruturados, dispersos por diferentes sistemas (ERP, CMMS, Excel), não constituem um ativo de conhecimento reutilizável. A tecnologia de Grafo de Conhecimento, através do reconhecimento de entidades (NER), extração de relações (RE) e armazenamento em grafo (Neo4j), converte esta informação fragmentada numa rede de associações semânticas entre equipamento-falha-causa-medida-peça de reposição. Este artigo, baseado na construção da base de conhecimento de falhas interna do Grupo Kelude, apresenta integralmente a implementação de engenharia, desde a aquisição de dados até à consulta e raciocínio sobre o grafo. A solução técnica a seguir referenciada baseia-se na documentação oficial do Neo4j (Neo4j Graph Data Science Manual v5.x, 2024), no kit de ferramentas de processamento de linguagem natural HanLP (versão 2.1, 2023) e na experiência de implementação real do projeto da base de conhecimento de falhas da Kelude (código do projeto KL-KG-2024-001).
Fontes de Dados e Entidades no Grafo de Conhecimento de Falhas
Os dados para o grafo de conhecimento de falhas de pontes rolantes provêm de quatro dimensões: ①Registo do equipamento (modelo/capacidade de carga/vão/altura de elevação/classe de funcionamento/número de série/data de entrada em operação); ②Ordens de falha (data da falha/número do equipamento/sintoma da falha/código de falha/processo de diagnóstico/medidas de reparação/peças de reposição substituídas/técnico de manutenção/tempo de paragem); ③Dados de sensores (valor eficaz de vibração/temperatura/corrente/histórico de ocorrências de sobrecarga); ④Normas do setor (cláusulas de julgamento de falhas relevantes nas normas ISO 4301 / TSG 51 — Regulamento Técnico de Segurança de Equipamentos Especiais / FEM 1.001). Após a extração de relações entre entidades, são definidos 6 tipos de entidades e 9 tipos de relações:
| Tipo de Entidade | Nome do Rótulo | Exemplo | Ordem de Grandeza |
|---|---|---|---|
| ponte rolante Equipamento | Crane | QD32t-023/ LD10t-156 | 500+ |
| Sintoma de Falha | Fault | Escorregamento da carga na elevação/Mordida do trilho da ponte rolante/Ruído anormal do freio | 243Tipo |
| Causa da Falha | Cause | Desgaste da lona de freio/Pit Corrosion na superfície de rolamento/Acoplamento Superfície do Dente Desgaste | 480+ |
| Manutenção Medida | Action | Substituição Lona de freio/ajuste Folga de freio/Substituição Acoplamento | 620+ |
| Peça de reposição Material | Part | YWZ5-315/23Freio/Roda ZGY-600 | 1,200+ |
| Cláusula da norma | Standard | norma ISO 4301 / FEM 1.001《guindaste Projeto Especificação Interpretação das Cláusulas Principais: Carga/Estrutura/Mecanismo/Elétrica/Cinco Grandes Sistemas de Segurança》 5.2.3 | 80+ |
| Tipo de Relação | Origem e Destino | Descrição |
|---|---|---|
| has_fault | Crane Fault | Uma Determinada Unidadeponte rolante Ocorreu uma Falha |
| has_symptom | Fault | Ocorreu uma Falha AFalha Acompanhante BOcorrência Simultânea |
| caused_by | Fault Cause | Falha Causada por Determinado Motivo |
| resolved_by | Fault Action | Falha Resolvida por Determinada Medida |
| uses_part | Action Part | Medida que Exige Substituição de Determinado Componente Peça de reposição |
| ref_standard | Fault Standard | Relacionado à Falha Cláusula da norma |
| similar_to | Fault | Ocorreu uma Falha ARelacionado à Falha BSimilar(Similaridade de Cosseno>0.8) |
| located_in | Crane Location | ponte rolante Localizado em Oficina/Seção de Trabalho |
| occurred_at | Fault Time | Momento da Ocorrência da Falha |
Extração de Relações Semânticas — Implementação com BiLSTM+CRF
A extração de conhecimento é a etapa mais crítica na construção do grafo. O sistema utiliza o modelo de sequência BiLSTM+CRF (rede de memória de longo prazo bidirecional + campo aleatório condicional), com o HanLP 2.1 como pipeline de pré-processamento (segmentação, etiquetagem morfossintática e análise de dependências), treinado em 2.400 textos de falhas de pontes rolantes anotados manualmente. O esquema de anotação adota o formato BIOES (Begin/Inside/Outside/End/Single), com 6 tipos de entidades × BIOES = 30 etiquetas de anotação.
Armazenamento em Grafo Neo4j e Consultas Cypher
Os tripletos extraídos (entidade-cabeça – relação – entidade-cauda) são armazenados na base de dados de grafos Neo4j Enterprise 5.x. O modelo adotado é o Labeled Property Graph, com um rótulo (label) por nó, e relações com tipo (type) e direção (direction). Dimensão dos dados: ≥58.000 nós e ≥126.000 relações (até junho de 2026).
Exemplo típico de consulta Cypher:
// ConsultaQD32t-023Todos os históricos de falhas da ponte rolante e as medidas de manutenção correspondentes 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 sintoma de falha, a.name AS Todos os históricos de falhas da ponte rolante e as medidas de manutenção correspondentes, p.name AS Substituição de peças de reposição ORDER BY f.severity DESC// Raciocínio de falhas baseado em caminho de grafo:Uma ponte rolante apresenta"Escorregamento da carga na elevação",Direções de diagnóstico recomendadas e peças de reposição MATCH path = (f:Fault {name: 'Escorregamento da carga na elevação'})-[*1..2]-(n) WHERE ANY(label IN labels(n) WHERE n:Action OR n:Part OR n:Cause) RETURN path LIMIT 30// Busca de falhas similares(Baseado em causas comuns+das medidasJaccardSimilaridade) MATCH (f1:Fault {name: 'Ruído anormal do freio'})-[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_nodesRaciocínio Semântico e Perguntas & Respostas Inteligentes
O valor do grafo de conhecimento reside no raciocínio (Reasoning). O sistema suporta três modos de raciocínio:
①Raciocínio por regras — baseado numa árvore de decisão de Diagnóstico de Falhas predefinida (conjunto de regras IF-THEN, elaborado por 3 engenheiros seniores de Manutenção de pontes rolantes, cobrindo 8 tipos de equipamento × 243 falhas × 480+ causas, com um total de 1.520 regras), implementado através de travessia de grafo Cypher para diagnóstico automático;
②Raciocínio por ordenação de caminhos — dado um nó de falha, através de random walk (Personalized PageRank, 20 iterações, probabilidade de reinício 0,15), as soluções de manutenção candidatas são ordenadas, com uma precisão de 86,4% no Top-3 (conjunto de validação N=500);
③Perguntas & Respostas semânticas — conversão NL2Cypher baseada em modelos (transformação de consultas em linguagem natural para Cypher), suportando 12 modelos de perguntas (ex.: ”Que falhas ocorreram na ponte rolante XX” MATCH(c:Crane)…).
Solução Tradicional vs. Grafo de Conhecimento: Comparação
| Item de Comparação | Solução Tradicional(Banco de Dados Relacional+Busca por Palavras-chave) | Solução de Grafo de Conhecimento(Neo4j+Raciocínio Semântico) |
|---|---|---|
| Modelo de Dados | Tabela Bidimensional, Associação por Chave Estrangeira | Grafo de Propriedades, Nó-Relação-Propriedade |
| Consulta de Associação de Falhas | Múltiplas Tabelas JOIN(3~5Tabelas), Tempo de resposta500ms~3s | Varredura de Grafo, Tempo de resposta<50ms |
| Raciocínio Multi-saltos(Por Exemplo: Causa e Medida da Falha Peça de reposição) | Necessário4Vez(es)SQLConsulta de Associação de Falhas+Montagem na Camada de Aplicação | Única Vez Cypher Varredura de Grafo[1..4]Salto |
| Descoberta de Falhas Similares | Correspondência Baseada em Rótulos e Palavras-chave, Baixa Precisão | Baseado em Estrutura de Grafo Jaccard Similaridade de Cosseno+Page Rank |
| Reutilização de Conhecimento | Dependência de Experiência Pessoal, Perda de Conhecimento Devido à Rotatividade de Pessoal | Armazenamento Persistente do Grafo de Conhecimento, Compartilhamento em Equipe |
| Inicialização a Frio de Novos Equipamentos | Necessidade de Acumular Registros de Falhas Suficientes | Raciocínio por Transferência Baseado na Estrutura de Grafo de Equipamentos Similares |
| Flexibilidade de Consulta | Relatórios Pré-definidos, Consultas Temporárias Exigem Desenvolvimento | Cypher Consulta Ad Hoc, Web Autoatendimento na Interface |
Perguntas Frequentes
P: Quantos dados são necessários no grafo de conhecimento para obter resultados práticos?
R: Na fase inicial, recomendamos pelo menos 500 registos de falhas (incluindo sintoma + causa + medida), correspondendo a cerca de 6.000 a 8.000 entidades e 12.000 a 15.000 relações. Com esta dimensão, a taxa de precisão das 3 principais recomendações de falhas pode ultrapassar os 70%. Quando os dados crescem para mais de 2.000 registos (a dimensão atual deste projeto), a precisão aumenta para 86%. Na fase de arranque a frio, podem ser importados dados públicos de falhas do setor e cláusulas normativas como base de conhecimento inicial.
P: Qual é a diferença fundamental entre o Neo4j e o MySQL/PostgreSQL na gestão do conhecimento de falhas?
R: A diferença essencial está na eficiência das consultas de relações multi-salto. Por exemplo, para consultar "as medidas de manutenção para falhas semelhantes às que ocorreram numa determinada ponte rolante", o MySQL exige 5 a 8 junções (JOIN), com resposta ao nível dos segundos, e a estrutura fixa das tabelas dificulta a expansão de novas dimensões relacionais. Com o Neo4j, através da correspondência de padrões de comprimento variável `[*1..4]`, uma única instrução Cypher resolve a consulta, com resposta inferior a 50 ms. Além disso, o modelo de grafo suporta naturalmente a expansão horizontal — adicionar novos tipos de entidades ou relações não requer alterações na estrutura das tabelas.
P: Quantos dados de anotação manual são necessários para a extração de entidades e relações no grafo de conhecimento?
R: Este projeto utiliza 2.400 registos anotados manualmente (28.600 entidades e 12.400 relações), com um custo de anotação de cerca de 1.536 € (3 anotadores × 10 dias × 51 €/dia). Se o orçamento para anotação for limitado, pode também ser utilizado o método de Supervisão Distante, que gera automaticamente dados de anotação fraca a partir das tabelas BOM de peças de reposição e dos códigos de falha existentes, seguido de validação manual — isto permite reduzir a quantidade de anotação para 400 a 600 registos, com a contrapartida de o valor F1 descer de 91,2% para cerca de 85%.
P: Os 12 modelos de consulta semântica NL2Cypher são suficientes?
R: Os 12 modelos cobrem cerca de 85% dos cenários de consulta diária da base de conhecimento de falhas (com base nas estatísticas de registos de manutenção internos da Kelude durante 3 meses). Os modelos dividem-se em 3 categorias funcionais: consulta de falhas (falha de um equipamento, causa de uma falha, medidas correspondentes a uma causa), consulta de peças de reposição (peças usadas numa medida, medidas aplicáveis a uma peça) e análise estatística (TOP N de frequência de falhas, equipamentos com ciclo de manutenção mais longo). Para consultas em linguagem natural fora do âmbito dos modelos, o sistema recorre atualmente a sugestões de sintaxe Cypher com preenchimento manual.