¿Qué es el formato de archivo GRAPHML?
Un archivo .graphml almacena datos de grafos -redes de nodos y aristas- en un formato estandarizado basado en .xml desarrollado por un consorcio académico (Universidad de Constanza, TU Wien, Universidad de Brown) y publicado por primera vez en 2001. Se utiliza ampliamente en la ciencia de redes, el análisis de redes sociales, la bioinformática y las bases de datos de grafos.
La estructura es sencilla: un elemento raíz <graphml> (espacio de nombres http://graphml.graphdrawing.org/graphml) contiene declaraciones opcionales <key> que definen un esquema de atributos tipados, seguidas de uno o más elementos <graph>. Cada <graph> contiene elementos <node> y <edge>; ambos pueden llevar hijos <data key="..."> para adjuntar valores de atributos. Se admiten estructuras de grafos dirigidos, no dirigidos, mixtos, hipergrafos y grafos jerárquicos anidados.
GraphML es un formato de intercambio de datos, no una herramienta de diagramación visual. Codifica únicamente la topología y los atributos del grafo; las coordenadas visuales y el estilo pueden añadirse opcionalmente mediante atributos de extensión (por ejemplo, los atributos y:Geometry utilizados por el editor yEd). La variante .graphmlz es un archivo .graphml comprimido con gzip.
Debido a que .graphml es XML sin comprimir, cualquier editor de texto puede inspeccionarlo. Para el análisis y la visualización, las herramientas más comunes son Gephi (análisis de redes de código abierto) y yEd Graph Editor. La librería networkx de Python, JGraphT de Java e igraph de R leen y escriben .graphml de forma nativa. Un formato relacionado es .gexf, utilizado de forma nativa por Gephi.
Seguridad y protección
RIESGO: LOWUn archivo .graphml contiene datos XML planos y no puede ejecutar código. Abrirlo es seguro. Los archivos de grafos muy grandes (cientos de MB) pueden consumir una cantidad significativa de RAM en Gephi o yEd (varios GB para redes sociales grandes); limite la memoria de la JVM si abre archivos grandes. No es posible incluir scripts ni macros en el formato GraphML.
Detalles del formato
en pocas palabrasProgramas que abren archivos GRAPHML
Detalles técnicos
especificación profunda| Codificación de archivo | Texto XML plano, UTF-8 |
| Elemento raíz | <graphml> con espacio de nombres XML http://graphml.graphdrawing.org/graphml |
| Elemento de nodo | <node id="..."> - El ID debe ser único dentro del documento |
| Elemento de arista | <edge source="..." target="..."> - dirigida o no dirigida según el atributo <graph edgedefault="..."> del padre |
| Esquema de atributos | Las declaraciones <key> definen atributos tipados (string, int, double, boolean, long, float) con alcance al nodo, arista o grafo |
| Valores de atributos | Los elementos hijos <data key="..."> adjuntan valores de atributos declarados a nodos o aristas individuales |
| Tipos de grafos soportados | Grafos dirigidos, no dirigidos, mixtos, hipergrafos y grafos jerárquicos/anidados |
| Variante comprimida | .graphmlz - un archivo .graphml comprimido con gzip; la extensión estándar para grafos GraphML comprimidos |
| Firma binaria | Ninguna - comienza con una declaración <?xml opcional seguida de <graphml |
| Tamaño de archivo típico | 1 KB (grafos de prueba pequeños) hasta más de 500 MB (grandes redes sociales o biológicas) |
| Tipo MIME | application/xml (informalmente también application/graphml+xml) |
| Diseño visual | No codificado en la especificación base; la extensión yEd añade atributos y:Geometry e y:NodeLabel para datos de diseño opcionales |
| Ubicación del esquema XML | http://graphml.graphdrawing.org/xmlns/1.1/graphml.xsd |
| Lanzado | 2001 (initial GraphML specification published) |
| Última versión | GraphML 1.1 (spec stable; no significant changes since ~2007) |
| Estándar abierto | Sí · libre de regalías |
| Especificación | graphml.graphdrawing.org |
Conversiones de GRAPHML
Preguntas y respuestas de la comunidad
preguntado por usuariosAún no hay preguntas; sea el primero en preguntar sobre los archivos GRAPHML.