Grafos

Formato de fichero GraphML

A partir de la versión 1.2.0, Grafos cuenta con la posibilidad de exportar e importar los datos del grafo, al formato de fichero estándar GraphML. Este formato se encuentra especificado en XML Schema. Siga leyendo para comprender más sobre las posibilidades y uso de esta función.

El proyecto de GraphML fue iniciado en el comité “Graph Drawing Steering Committee” previo al “Graph Drawing 2000” de Williamsburg. Un taller sobre formatos de archivos se mantuvo en las vísperas del simposio, y se acordó formar un grupo que definiera un nuevo formato de grafo basado en XML para que fuera estándar en la comunidad de dibujo de grafos y otras comunidades relacionadas. La propuesta de la capa de estructura fue presentada en el siguiente simposio “Graph Drawing Symposium” de Viena. El principal predecesor de GraphML es GML, éste fue el resultado de una iniciativa que comenzó en el “Graph Drawing 1995” en Passau y finalizó en el “Graph Drawing 1996” de Berkeley. GML es todavía uno de los principales formato de grafos soportado por muchos sistemas de dibujo.  GraphML es también muy similar al formato anterior GraphXML (1999), aunque GraphML presenta mayor difusión y actividad en la actualidad.

El objetivo final de diseño se resume en la siguiente frase: “El formato de intercambio de grafos debe poder representar grafos arbitrarios con información adicional arbitraria, incluyendo información de layout y visualización. La información adicional debe poder ser guardada en un formato apropiado para la aplicación especifica, pero no debe complicar o interferir con la representación de datos para otras aplicaciones...”

 

Especificación general de GraphML

GraphML es un formato comprensible y fácil de usar para especificar grafos. Consta de un núcleo de lenguaje capaz de describir las propiedades estructurales de un grafo, y un mecanismo flexible de extensiones para agregar información específica para cada aplicación. Las extensiones pueden ser libremente combinadas o ignoradas sin afectar a los datos del grafo en sí mismo. La información de despliegue o dibujo es incluida como extensión, por tanto se encuentran separados los datos del grafo de lo que son otras informaciones pertinentes a cada aplicación. Este es un requerimiento esencial, considerando la omnipresencia del modelo de grafos en un número muy importante de disciplinas, y siendo impensado la existencia de un formato general único monolítico.

Parece ser un estándar motivado por el dibujo de grafos, por tanto es parecido en cierto sentido a los objetivos de SVG, aunque utilizar éste último en algoritmos donde no son útiles ninguna de las propiedades de dibujo es algo complicado. La diferencia esta en que GraphML permite fácilmente agregar nuevos atributos, y la estructura de muy simple interpretación no incluye obligatoriamente las propiedades de despliegue, por tanto es una ventaja: ya que este estándar permite especificar un grafo con únicamente las propiedades útiles para los algoritmos y posteriormente especificar la visualización con alguna herramienta disponible.

Ejemplo: Una vez que haya construido el grafo, vaya al menú Archivo, y desde allí a la función Guardar como...
Seleccione el formato (.graphml), así como la trayectoria y nombre del fichero de destino. Grafos creará entonces un fichero de estructura XML que podrá ser utilizado en otros programas que soporten este formato, o visualizado e interpretado fácilmente a través de programas destinados a la lectura y tratamiento de XML. No toda la información guardada en este fichero será soportada por otros programas (y viceversa), aunque sí la estructura básica de arcos y nodos:

ejemplo.graphml - grafo de ejemplo en versión GraphML

  

Fuente: A. Rodríguez

más información

- GraphXML
- GraphML
- XGMML (eXtensible Graph Markup and Modeling Language)
- GXL (Graph eXchange Language)
- XLG (XML Schema for Lattices and Graphs)
- GML (Graph Modelling Language)
- RDF (Resource Description Framework)
- GRXL (Graph Rewriting eXchange Language), Creado y usado en Grrr (Graph Rewriting Programming Language)
- SGF (Structured Graph Format)
- SVG (Scalable Vector Graphics)

Creative Commons License Alejandro Rodríguez Villalobos