Что такое формат файла GRAPHML?
Файл .graphml хранит данные графа - сети узлов и ребер - в стандартизированном формате на основе .xml, разработанном академическим консорциумом (Университет Констанца, Венский технический университет, Университет Брауна) и впервые опубликованном в 2001 году. Он широко используется в сетевых науках, анализе социальных сетей, биоинформатике и графовых базах данных.
Структура проста: корневой элемент <graphml> (пространство имен http://graphml.graphdrawing.org/graphml) содержит необязательные объявления <key>, определяющие типизированную схему атрибутов, за которыми следуют один или несколько элементов <graph>. Каждый <graph> содержит элементы <node> и <edge>; оба могут иметь дочерние элементы <data key="..."> для прикрепления значений атрибутов. Поддерживаются ориентированные, неориентированные, смешанные, гиперграфы и вложенные иерархические структуры графов.
GraphML - это формат обмена данными, а не инструмент визуального построения диаграмм. Он кодирует только топологию и атрибуты графа; визуальные координаты и стили могут быть дополнительно добавлены через атрибуты расширения (например, атрибуты y:Geometry, используемые редактором yEd). Вариант .graphmlz представляет собой файл .graphml, сжатый с помощью gzip.
Поскольку .graphml - это несжатый XML, его можно просмотреть в любом текстовом редакторе. Для анализа и визуализации наиболее распространенными инструментами являются Gephi (анализ сетей с открытым исходным кодом) и yEd Graph Editor. Библиотеки networkx для Python, JGraphT для Java и igraph для R поддерживают чтение и запись .graphml нативном уровне. Родственным форматом является .gexf, используемый Gephi.
Безопасность и защита
РИСК: LOWФайл .graphml представляет собой обычные данные XML и не может исполнять код. Его открытие безопасно. Очень большие файлы графов (сотни МБ) могут потреблять значительный объем оперативной памяти в Gephi или yEd (несколько ГБ для крупных социальных сетей) - ограничьте память JVM при открытии больших файлов. В формате GraphML невозможны скрипты или макросы.
Детали формата
в двух словахПрограммы, открывающие файлы GRAPHML
Технические подробности
глубокая спецификация| Кодировка файла | Обычный текст XML, UTF-8 |
| Корневой элемент | <graphml> с пространством имен XML http://graphml.graphdrawing.org/graphml |
| Элемент узла | <node id="..."> - ID должен быть уникальным в пределах документа |
| Элемент ребра | <edge source="..." target="..."> - ориентированное или неориентированное согласно атрибуту родителя <graph edgedefault="..."> |
| Схема атрибутов | Объявления <key> определяют типизированные атрибуты (string, int, double, boolean, long, float), относящиеся к узлу, ребру или графу |
| Значения атрибутов | Дочерние элементы <data key="..."> прикрепляют объявленные значения атрибутов к отдельным узлам или ребрам |
| Поддерживаемые типы графов | Ориентированные, неориентированные, смешанные, гиперграфы и вложенные/иерархические графы |
| Сжатый вариант | .graphmlz - файл .graphml, сжатый gzip; стандартное расширение для сжатых графов GraphML |
| Бинарная сигнатура | Отсутствует - начинается с необязательной декларации <?xml, затем <graphml |
| Типичный размер файла | от 1 КБ (небольшие тестовые графы) до 500 МБ+ (крупные социальные или биологические сети) |
| MIME-тип | application/xml (неофициально также application/graphml+xml) |
| Визуальная компоновка | Не закодирована в базовой спецификации; расширение yEd добавляет атрибуты y:Geometry и y:NodeLabel для опциональных данных макета |
| Расположение схемы XML | http://graphml.graphdrawing.org/xmlns/1.1/graphml.xsd |
| Выпущен | 2001 (initial GraphML specification published) |
| Последняя версия | GraphML 1.1 (spec stable; no significant changes since ~2007) |
| Открыть стандартное | Да · без роялти |
| Спецификация | graphml.graphdrawing.org |
Конвертации GRAPHML
Вопросы и ответы сообщества
спрошено пользователямиВопросов пока нет - станьте первым, кто спросит о файлах GRAPHML.