← Últimos artigos
💻 computer science

PathFinder: A unified approach for handling paths in graph query languages

Este artigo apresenta o PathFinder, uma abordagem unificada e altamente eficiente para o processamento de consultas de caminho em linguagens de grafos modernas que aproveita a representação compacta de caminhos e a execução em pipeline para alcançar um desempenho estável e superar os motores de grafos existentes em uma ordem de magnitude.

Autores originais: Benjamín Farías, Wim Martens, Carlos Rojas, Domagoj Vrgoč

Publicado 2026-07-15
📖 7 min de leitura🧠 Leitura aprofundada

Autores originais: Benjamín Farías, Wim Martens, Carlos Rojas, Domagoj Vrgoč

Artigo original sob licença CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta é uma explicação gerada por IA do artigo abaixo. Não foi escrita nem endossada pelos autores. Para precisão técnica, consulte o artigo original. Ler aviso legal completo

Imagine que você está explorando uma cidade mágica e massiva chamada Graph City. Nesta cidade, cada pessoa é um edifício (um nó), e cada relacionamento entre elas é uma estrada (uma aresta) com uma placa específica, como "segue", "mora" ou "trabalha".

Por anos, os guias turísticos da cidade (os antigos mecanismos de banco de dados) tinham uma regra estranha: se você perguntasse, "Mostre-me todas as formas de chegar de Joe à Torre Eiffel pegando apenas estradas de 'segue'", o guia apenas apontaria e diria, "Ok, você consegue chegar lá!" e parava. Eles davam o destino, mas não mostravam o mapa da jornada.

Este é um problema para detetives. Se você estiver tentando resolver um mistério (como detectar lavagem de dinheiro ou rastrear um boato), você não quer apenas saber quem está conectado; você precisa ver o caminho inteiro que eles percorreram. Eles foram direto para lá? Eles deram uma volta de três vezes? Pegaram um atalho?

Apresentamos o PathFinder, um novo guia turístico superinteligente construído por Benjamín, Wim, Carlos e Domagoj. Este artigo apresenta o PathFinder, o primeiro guia que não apenas pode dizer quem está conectado, mas também pode lhe entregar o mapa exato de cada rota possível, não importa o quão complicadas sejam as regras.

A Magia do "Grafo Produto"

Como o PathFinder faz isso sem se perder em um labirinto? Imagine que você tem um mapa regular da cidade e também tem uma pequena lista de verificação mágica (um autômato) que diz: "Você deve pegar uma estrada de 'segue', depois outra estrada de 'segue' e depois uma estrada de 'trabalha'".

O PathFinder não apenas caminha pela cidade; ele constrói uma cidade sombra (chamada de Grafo Produto) onde cada edifício é uma combinação de um edifício da cidade real e um passo na lista de verificação.

  • Se você está em "Joe" e completou zero passos, você está em (Joe, Passo 0).
  • Se você pega uma estrada de "segue" para "Paul", você se move para (Paul, Passo 1).

Ao caminhar por esta cidade sombra, o PathFinder consegue ver instantaneamente quais rotas correspondem à sua lista de verificação. É como ter um GPS que só ilumina as estradas pelas quais você tem permissão para dirigir, ignorando o resto.

As 27 Maneiras de Caminhar

O artigo explica que existem 27 regras diferentes (chamadas de "modos") para como você pode caminhar pela Graph City. O PathFinder é o primeiro mecanismo que consegue lidar com todas as 27. Aqui estão alguns dos sabores:

  • WALK (CAMINHADA): Você pode ir a qualquer lugar, mesmo que caminhe em círculos ou visite a mesma casa duas vezes. (Este é o mais fácil, mas pode levar a loops infinitos!).
  • TRAIL (TRILHA): Você pode visitar a mesma casa duas vezes, mas não pode caminhar pela mesma estrada duas vezes.
  • SIMPLE (SIMPLES): Você não pode visitar a mesma casa duas vezes (a menos que comece e termine no mesmo lugar). Esta é a regra mais difícil de seguir porque o número de caminhos possíveis pode explodir.
  • ANY SHORTEST (QUALQUER CURTO): Apenas me dê uma das rotas mais rápidas.
  • ALL SHORTEST (TODOS OS CURTOS): Dê-me todas as rotas que são as mais rápidas.
  • SHORTEST k GROUPS (GRUPOS DE k CURTOS): Dê-me as rotas mais rápidas, depois o segundo grupo de rotas mais rápidas, e assim por diante, até kk grupos.

Os autores mostram que, embora algumas dessas regras (como encontrar um caminho "Simples") sejam teoricamente muito difíceis — tão difíceis que os computadores geralmente desistem de mapas enormes — o PathFinder lida com elas surpreendentemente bem no mundo real.

O Problema do "Loop Infinito"

Um grande problema em Graph City é que, se houver um loop (como Joe segue Paul, e Paul segue Joe), você poderia caminhar por esse loop para sempre. Se você pedir "todas as caminhadas", a resposta será infinita!

Para resolver isso, os padrões GQL e SQL/PGQ (os livros de regras para essas linguagens) permitem que você escolha um modo como "Simple" ou "Trail" para interromper os loops infinitos. O Pathante respeita essas regras perfeitamente. Ele sabe exatamente quando parar de explorar um caminho para não ficar preso em um círculo sem fim, enquanto ainda encontra todos os caminhos válidos que você solicitou.

O Teste de Velocidade: PathFinder vs. Os Outros

Os autores não apenas construíram o PathFinder; eles o colocaram à prova contra os grandes nomes da indústria: Neo4j, Nebula, Kuzu, Jena, Blazegraph e Virtuoso.

Eles realizaram testes em três cenários diferentes:

  1. Pokec: Uma rede social de médio porte com 1,6 milhão de pessoas e 30 milhões de conexões.
  2. Wikidata: Um grafo de conhecimento gigantesco do mundo real com 364 milhões de nós e 1,257 bilhão de arestas.
  3. Diamond: Um grafo matematicamente construído e complexo, projetado para ter um número exponencial de caminhos (especificamente, 2n2^n caminhos).

Os Resultados:

  • Velocidade: O PathFinder foi de 10 a 100 vezes mais rápido que os outros mecanismos em quase todos os testes.
  • Estabilidade: Enquanto outros mecanismos começavam a travar ou sofrer timeout (desistir) quando os caminhos ficavam mais longos ou complexos, o PathFinder continuava trabalhando sem parar.
  • A Surpresa da "Intratabilidade": Para os modos "Simple" e "Trail", a teoria diz que o computador deveria levar uma eternidade para encontrar a resposta. Mas nos testes do mundo real (como no Wikidata), o PathFinder encontrou 100.000 caminhos rapidamente. Os autores sugerem que isso ocorre porque os dados do mundo real geralmente não possuem a "tempestade perfeita" de conexões que faz a matemática explodir.

O Que o PathFinder NÃO Faz (Ainda)

É importante saber o que este artigo não afirma:

  • Não diz que o PathFinder é mágico. Se você pedir por cada um dos caminhos em um grafo com loops, a resposta ainda é infinita, e nenhum computador pode imprimir isso. O PathFinder apenas para em um limite que você define (como 100.000 resultados).
  • Não afirma ter resolvido o problema do "Caminho Simples" para todos os grafos possíveis. O artigo admite que, nos piores cenários teóricos, encontrar um caminho simples ainda é NP-completo (uma forma elegante de dizer "computacionalmente muito difícil"). O PathFinder apenas funciona melhor do que os outros nos grafos que realmente usamos na vida real.
  • Não afirma ter corrigido o modo "Simple" para RDF (um tipo específico de formato de dados) ainda. Os autores dizem que não implementaram o modo "Trail" para RDF porque não está claro como definir uma "trilha" quando as arestas não possuem nomes únicos.

A Conclusão

O PathFinder é um novo mecanismo que atua como um guia turístico superpoderoso. Ele pode receber um conjunto complexo de regras (como "Encontre todos os caminhos de Joe até ENS Paris que sigam o padrão 'segue' e depois 'trabalha'") e retornar os mapas reais dessas jornadas.

Os autores mediram isso em dados reais e descobriram que o PathFinder é significativamente mais rápido e estável do que os atuais bancos de dados de grafos de alto nível. Eles até mostraram que o PathFinder pode ser adicionado a sistemas existentes (como motores SPARQL) para dar a eles esse novo superpoder. Embora a matemática diga que algumas dessas tarefas deveriam ser impossíveis de realizar rapidamente, no mundo real e bagunçado, o PathFinder prova que isso pode ser feito com uma velocidade notável.

Afogado em artigos na sua área?

Receba digests diários dos artigos mais recentes que correspondam às suas palavras-chave de pesquisa — com resumos técnicos, no seu idioma.

Experimentar Digest →