O que é o formato de ficheiro GRAPHML?
Um arquivo .graphml armazena dados de grafos - redes de nós e arestas - em um formato padronizado baseado em .xml desenvolvido por um consórcio acadêmico (Universidade de Konstanz, TU Wien, Brown University) e publicado pela primeira vez em 2001. É amplamente utilizado em ciência de redes, análise de redes sociais, bioinformática e bancos de dados de grafos.
A estrutura é direta: um elemento raiz <graphml> (namespace http://graphml.graphdrawing.org/graphml) contém declarações <key> opcionais que definem um esquema de atributos tipados, seguidas por um ou mais elementos <graph>. Cada <graph> contém elementos <node> e <edge>; ambos podem carregar filhos <data key="..."> para anexar valores de atributos. Estruturas de grafos direcionados, não direcionados, mistos, hipergrafos e hierárquicos aninhados são todos suportados.
O GraphML é um formato de intercâmbio de dados, não uma ferramenta de diagrama visual. Ele codifica apenas a topologia e os atributos do grafo; coordenadas visuais e estilização podem ser adicionadas opcionalmente via atributos de extensão (por exemplo, os atributos y:Geometry usados pelo editor yEd). A variante .graphmlz é um arquivo .graphml compactado com gzip.
Como o .graphml é um XML não compactado, qualquer editor de texto pode inspecioná-lo. Para análise e visualização, as ferramentas mais comuns são o Gephi (análise de rede de código aberto) e o yEd Graph Editor. A biblioteca networkx do Python, JGraphT do Java e igraph do R leem e escrevem .graphml nativamente. Um formato relacionado é o .gexf, usado nativamente pelo Gephi.
Segurança e proteção
RISCO: LOWUm arquivo .graphml contém dados XML simples e não pode executar código. Abri-lo é seguro. Arquivos de grafos muito grandes (centenas de MB) podem consumir RAM significativa no Gephi ou yEd (vários GB para grandes redes sociais) - limite a memória da JVM se abrir arquivos grandes. Não são possíveis scripts ou macros no formato GraphML.
Detalhes do formato
em resumoProgramas que abrem arquivos GRAPHML
Detalhes técnicos
especificação profunda| Codificação de arquivo | Texto XML simples, UTF-8 |
| Elemento raiz | <graphml> com namespace XML http://graphml.graphdrawing.org/graphml |
| Elemento de nó | <node id="..."> - o ID deve ser único dentro do documento |
| Elemento de aresta | <edge source="..." target="..."> - direcionada ou não direcionada conforme o atributo <graph edgedefault="..."> pai |
| Esquema de atributos | Declarações <key> definem atributos tipados (string, int, double, boolean, long, float) com escopo para nó, aresta ou grafo |
| Valores de atributos | Elementos filhos <data key="..."> anexam valores de atributos declarados a nós ou arestas individuais |
| Tipos de grafos suportados | Grafos direcionados, não direcionados, mistos, hipergrafos e grafos aninhados/hierárquicos |
| Variante compactada | .graphmlz - um arquivo .graphml compactado com gzip; a extensão padrão para grafos GraphML compactados |
| Assinatura binária | Nenhuma - começa com a declaração opcional <?xml seguida por <graphml |
| Tamanho típico do arquivo | 1 KB (pequenos grafos de teste) a mais de 500 MB (grandes redes sociais ou biológicas) |
| Tipo MIME | application/xml (informalmente também application/graphml+xml) |
| Layout visual | Não codificado na especificação base; a extensão yEd adiciona atributos y:Geometry e y:NodeLabel para dados de layout opcionais |
| Localização do esquema XML | http://graphml.graphdrawing.org/xmlns/1.1/graphml.xsd |
| Lançado | 2001 (initial GraphML specification published) |
| Versão mais recente | GraphML 1.1 (spec stable; no significant changes since ~2007) |
| Padrão aberto | Sim · livre de royalties |
| Especificação | graphml.graphdrawing.org |
Conversões de GRAPHML
Perguntas e Respostas da Comunidade
perguntado por usuáriosAinda não há perguntas - seja o primeiro a perguntar sobre arquivos GRAPHML.