Graphml чем открыть онлайн

Обновлено: 06.07.2024

GRAPHML files were designed as a format for encoding graph and other data visualization paradigms. GRAPHML is a text format that uses XML standard for storing data.

GRAPHML is a standardized graph data exchange format. GRAPHML is a robust and yet simple format for defining mathematical objects (graphs, charts, object dependencies). GRAPHML files are used by many programs, for example, Gephi.

Файлы GRAPHML были разработаны как формат для кодирования графиков и других парадигм визуализации данных. GRAPHML - это текстовый формат, который использует стандарт XML для хранения данных.

GRAPHML - это стандартизированный формат обмена графическими данными. GRAPHML - это надежный и в то же время простой формат для определения математических объектов (графиков, диаграмм, объектных зависимостей). Файлы GRAPHML используются многими программами, например, Gephi.

Программа(ы), умеющие открыть файл .GRAPHML

Windows
Mac OS
Linux

Как открыть GRAPHML файлы

Если появилась ситуация, в которой Вы не можете открыть файл GRAPHML на своем компьютере - причин может быть несколько. Первой и одновременно самой важной (встречается чаще всего) является отсутствие соответствующей аппликации обслуживающей GRAPHML среди установленных на Вашем компьютере.

Самым простым способом решения этой проблемы является нахождение и скачивание соответствующей аппликации. Первая часть задания, уже выполнена, - программы для обслуживания файла GRAPHML Вы найдете ниже. Теперь достаточно скачать и установить соответствующую аппликацию.

В дальнейшей части этой страницы Вы найдете другие возможные причины, вызывающие проблемы с файлами GRAPHML.

Возможные проблемы с файлами в формате GRAPHML

Отсутствие возможности открытия и работы с файлом GRAPHML, совсем не должен значить, что мы не имеем установленного на своем компьютере соответствующего программного обеспечения. Могут выступать другие проблемы, которые также блокируют нам возможность работы с файлом Graph Markup Language Format. Ниже находится список возможных проблем.

  • Повреждение открываемого файла GRAPHML.
  • Ошибочные связи файла GRAPHML в записях реестра.
  • Случайное удаление описания расширения GRAPHML из реестра Windows
  • Некомплектная установка аппликации, обслуживающей формат GRAPHML
  • Открываемый файл GRAPHML инфицирован нежелательным, вредным программным обеспечением.
  • На компьютере слишком мало места, чтобы открыть файл GRAPHML.
  • Драйверы оборудования, используемого компьютером для открытия файла GRAPHML неактуальные.

Если Вы уверены, что все перечисленные поводы отсутствуют в Вашем случае (или были уже исключены), файл GRAPHML должен сотрудничать с Вашими программами без каких либо проблем. Если проблема с файлом GRAPHML все-таки не решена, это может значить, что в этом случае появилась другая, редкая проблема с файлом GRAPHML. В таком случае остается только помощь специалиста.

Программы, которые поддерживают GRAPHML расширение файла

Ниже вы найдете указатель программ, которые можно использовать для открытия файлов GRAPHML, разделенных на категории 3 в соответствии с поддерживаемой системной платформой. GRAPHML файлы можно встретить на всех системных платформах, включая мобильные, но нет гарантии, что каждый из них будет должным образом поддерживать такие файлы.

Программы, обслуживающие файл GRAPHML

Как открыть файл GRAPHML?

Отсутствие возможности открывать файлы с расширением GRAPHML может иметь различное происхождение. К счастью, наиболее распространенные проблемы с файлами GRAPHML могут быть решены без глубоких знаний в области ИТ, а главное, за считанные минуты. Приведенный ниже список проведет вас через процесс решения возникшей проблемы.

Шаг 1. Скачайте и установите Gephi

Install software to open GRAPHML file

Основная и наиболее частая причина, препятствующая открытию пользователями файлов GRAPHML, заключается в том, что в системе пользователя не установлена программа, которая может обрабатывать файлы GRAPHML. Этот легкий. Выберите Gephi или одну из рекомендованных программ (например, Microsoft Excel) и загрузите ее из соответствующего источника и установите в своей системе. Полный список программ, сгруппированных по операционным системам, можно найти выше. Одним из наиболее безопасных способов загрузки программного обеспечения является использование ссылок официальных дистрибьюторов. Посетите сайт Gephi и загрузите установщик.

Шаг 2. Обновите Gephi до последней версии

Update software that support file extension GRAPHML

Если проблемы с открытием файлов GRAPHML по-прежнему возникают даже после установки Gephi, возможно, у вас устаревшая версия программного обеспечения. Проверьте веб-сайт разработчика, доступна ли более новая версия Gephi. Разработчики программного обеспечения могут реализовать поддержку более современных форматов файлов в обновленных версиях своих продуктов. Причиной того, что Gephi не может обрабатывать файлы с GRAPHML, может быть то, что программное обеспечение устарело. Самая последняя версия Gephi обратно совместима и может работать с форматами файлов, поддерживаемыми более старыми версиями программного обеспечения.

Шаг 3. Свяжите файлы GraphML Format с Gephi

После установки Gephi (самой последней версии) убедитесь, что он установлен в качестве приложения по умолчанию для открытия GRAPHML файлов. Следующий шаг не должен создавать проблем. Процедура проста и в значительной степени не зависит от системы

Associate software with GRAPHML file on Windows

Процедура изменения программы по умолчанию в Windows

  • Щелкните правой кнопкой мыши на файле GRAPHML и выберите « Открыть с помощью опцией».
  • Выберите Выбрать другое приложение → Еще приложения
  • Наконец, выберите Найти другое приложение на этом. , укажите папку, в которой установлен Gephi, установите флажок Всегда использовать это приложение для открытия GRAPHML файлы свой выбор, нажав кнопку ОК

Процедура изменения программы по умолчанию в Mac OS

Шаг 4. Проверьте GRAPHML на наличие ошибок

Если вы выполнили инструкции из предыдущих шагов, но проблема все еще не решена, вам следует проверить файл GRAPHML, о котором идет речь. Проблемы с открытием файла могут возникнуть по разным причинам.

Check GRAPHML file for viruses

1. Убедитесь, что GRAPHML не заражен компьютерным вирусом

Если файл заражен, вредоносная программа, находящаяся в файле GRAPHML, препятствует попыткам открыть его. Сканируйте файл GRAPHML и ваш компьютер на наличие вредоносных программ или вирусов. GRAPHML файл инфицирован вредоносным ПО? Следуйте инструкциям антивирусного программного обеспечения.

2. Убедитесь, что структура файла GRAPHML не повреждена

Если вы получили проблемный файл GRAPHML от третьего лица, попросите его предоставить вам еще одну копию. В процессе копирования файла могут возникнуть ошибки, делающие файл неполным или поврежденным. Это может быть источником проблем с файлом. Если файл GRAPHML был загружен из Интернета только частично, попробуйте загрузить его заново.

3. Проверьте, есть ли у пользователя, вошедшего в систему, права администратора.

Иногда для доступа к файлам пользователю необходимы права администратора. Выйдите из своей текущей учетной записи и войдите в учетную запись с достаточными правами доступа. Затем откройте файл GraphML Format.

4. Проверьте, может ли ваша система обрабатывать Gephi

Если в системе недостаточно ресурсов для открытия файлов GRAPHML, попробуйте закрыть все запущенные в данный момент приложения и повторите попытку.

5. Убедитесь, что ваша операционная система и драйверы обновлены

Последние версии программ и драйверов могут помочь вам решить проблемы с файлами GraphML Format и обеспечить безопасность вашего устройства и операционной системы. Возможно, файлы GRAPHML работают правильно с обновленным программным обеспечением, которое устраняет некоторые системные ошибки.

Аннотация

Данный документ является ненормативным документом, и представляет собой учебник для начинающих. Его цель - облегчение знакомства с языком GraphML, и помощь в понимании того, как создавать GraphML-документы. Этот учебник описывает особенности языка через примеры, которые дополнены ссылками на нормативные тексты.

Оглавление

1 Введение 2 Основные понятия 2.1 Простой граф 2.2 Заголовок 2.3 Топология графа 2.3.1 Объявление графа 2.3.2 Объявление узла 2.3.3 Объявление ребра 2.4 GraphML-атрибуты 2.4.1 Пример GraphML-атрибутов 2.4.2 Объявление GraphML-атрибутов 2.4.4 Определение значений GraphML-атрибутов 2.5 Информация для парсера 3 Дополнительные понятия I: вложенные графы, гиперребра и порты 3.1 Вложенные графы 3.2 Гиперребра 3.3 Порты 4 Дополнительные понятия II: расширение GraphML 4.1 Добавление XML-атрибутов в GraphML-элементы 4.2 Добавление комплексных типов

1 Введение

Данный документ представляет собой учебник для начинающих, и должен использоваться совместно с формальным описанием языка, содержащегося в GraphML-спецификации. Документ предназначен для разработчиков программного обеспечения, предназначенного для работы с GraphML-файлами. Текст документа предполагает, что Вы знакомы с XML 1.0 и XML-Namespaces . При чтении некоторых разделов требуются элементарные знания языка XML-схем. Каждый раздел учебника содержит новые особенности языка, и описывает их на конкретных примерах.

Раздел 2 раскрывает базовые понятия GraphML. Он описывает порядок объявления простого графа путем определения его узлов и ребер, а также метод включения в граф простых данных пользователя.

Раздел 3 описывает дополнительные возможности языка, связанные с вложенными графами, гиперребрами и портами.

Раздел 4 описывает механизм расширения языка в целях включения комплексных данных, специфичных для конкретных приложений.

Учебник - это ненормативный документ, что означает, что он не обеспечивает точную спецификацию языка GraphML. Примеры и другой пояснительный материал предназначены для того, чтобы помочь понять основные принципы GraphML, но они не всегда могут обеспечить ответы на конкретные вопросы. В таких случаях, вам необходимо обратиться к спецификации GraphML. Для этого в тексте содержится много ссылок на соответствующие разделы спецификации.

2 Основные понятия

Назначение GraphML-документа - определение графа. Для начала рассмотрим граф показанный на приведенном ниже рисунке. Он содержит 11 узлов и 12 ребер.

Image of example graph

2.1 Простой граф

Простой граф описан в файле simple.graphml :

GraphML-документ состоит из элемента graphml и ряда подэлементов: graph, node, edge. В конце раздела рассмотрим перечисленные элементы подробнее , и покажем, как они определяют граф.

2.2 Заголовок

Рассмотрим фрагмент , общий для всех GraphML-документов, основанный на элементе graphml .

Заголовок со ссылкой на XML-схему

Первая строка документа это инструкция обработки, которая определяет что документ является подмножеством стандарта XML 1.0, и что документ выполнен в кодировке UTF-8. Конечно, для GraphML-документов могут быть выбраны и другие кодировки.

Ссылка на XML-схему не обязательна, но она обеспечивает механизм для синтаксической проверки документа и поэтому строго рекомендуется.

2.3 Топология графа

Граф обозначается с помощью элемента graph . Элементы расположенные внутри элемента graph обеспечивают объявление узлов и ребер. Узел объявляется с помощью элемента node , а ребро с помощью элемента edge .

В GraphML не установлен порядок появления элементов node и edge . Поэтому следующий пример является синтаксически правильным GraphML-фрагментом:

2.3.1 Объявление графа

Граф в GraphML - смешанный, другими словами он может содержать направленные и ненаправленные ребра одновременно. Если при объявлении ребра его направленность не определена, то применяется направленность заданная по умолчанию. Направленность ребер, присваиваемая по умолчанию, задается XML-атрибутом edgedefault элемента graph . Этот XML-атрибут может принимать одно из двух значений: directed и undirected . Значение по умолчанию должно быть задано обязательно.

Дополнительно, с помощью атрибута id , графу может быть присвоен идентификатор. Идентификатор присваивают тогда, когда на данный граф требуется организовать ссылку.

2.3.2 Объявление узла

Уз е л в графе объявляется с помощью элемента node . Каждый узел имеет уникальный (в пределах данного документа) идентификатор. Идентификатор узла задается с помощью XML-атрибута id .

2.3.3 Объявление ребра

Ребро в графе объявляется с помощью элемента edge . Каждое ребро имеет две конечные точки, задаваемые с помощью XML-атрибутов source и target . Значения атрибутов source и target должны содержать идентификаторы узлов, определенных в том же документе что и ребро.

Ребра с одной конечной точкой, называемые петлями, циклами, или замкнутыми ребрами, определяются с помощью одинаковых значений, заданных в атрибутах source и target .

Дополнительный XML-атрибут directed определяет направленность ребра, заданную в явном виде. Значение true задает направленное ребро, а false - ненаправленное. Если направленность в явном виде не задана, то применяется направленность заданная по умолчанию при объявлении графа.

Дополнительно, с помощью XML-атрибута id , может быть задан идентификатор ребра. XML-атрибут id задается когда необходимо организовать ссылку на данное ребро.

2.4 GraphML-атрибуты

В предыдущем разделе мы обсудили порядок описания топологии графа на языке GraphML. Поскольку для различных приложений может потребоваться различная информация о топологии графа, необходимо иметь механизм для включения такой информации в описание графа.

С помощью механизма расширения, который называется GraphML-атрибуты для элементов графа может быть задана дополнительная информация простого типа. Простой тип подразумевает, что данные ограничены скалярными величинами. Например, числами и строками.

Если в элементы графа вам необходимо добавить структурированные данные, то вы должны использовать механизм расширения GraphM L под названием ключ/данные (data/key). Более подробно этот механизм рассмотрен в разделе 4. GraphML-атрибуты специализированное расширение механизма ключ/данные (data/key).

GraphML-атрибуты не следует путать с XML-атрибутами, это разные понятия.

2.4.1 Пример GraphML-атрибутов

В качестве примера в данном разделе рассматривается граф с раскрашенными узлами и оцифрованными ребрами.

Граф с раскрашенными узлами и оцифрованными ребрами.

Image of colored example graph

Мы будем использовать GraphML-атрибуты для хранения данных в узлах и ребрах. Результат показан в файле attributes.graphml:

2.4.2 Объявление GraphML-атрибутов

GraphML-атрибут объявляется с помощью элемента key который задает идентификатор, имя, тип, и домен атрибута.

Идентификатор задается XML-атрибутом id и используется для ссылки на данный GraphML-атрибут внутри документа.

Имя GraphML-атрибута определяется с помощью XML-атрибута attr.name и должно быть уникальным среди всех объявленных в документе GraphML-атрибутах. Имя нужно для того, чтобы приложения могли идентифицировать данный атрибут. Обратите внимание, что имя GraphML-атрибута не используется для ссылок внутри документа, для этого используется идентификатор.

Тип GraphML-атрибута может быть boolean , int , long , float , double , или string . Эти типы определены в соответствии с аналогичными типами в языке Java(TM) .

Домен GraphML-атрибута определяет перечень элементов в которых GraphML-атрибут может быть объявлен. Возможные значения: graph , node , edge , и all .

Для GraphML-атрибутов можно определить значение по умолчанию. Содержимое элемента default определяет текстовое значение по умолчанию.

2.4.3 Определение значений GraphML-атрибутов

Значение GraphML-атрибута в элементе графа задается с помощью элемента data вложенного в данный элемент. Элемент data имеет XML-атрибут key , который ссылается на идентификатор GraphML-атрибута. Значение GraphML-атрибута задается текстовым содержимым элемента data . Это значение должно иметь тип, объявленный в соответствующем элементе key .

Могут быть такие GraphML-атрибуты, которые определены, но не объявлены с помощью элемента data . Если значение по умолчанию определено для данного GraphML-атрибута, то тогда это значение применяется к соответствующему (входящему в домен GraphML-атрибута) элементу графа. В вышеприведенном примере значение не определено для узла с идентификатором n1 и GraphML-атрибута с именем color . Однако по для данного GraphML-атрибута определено значение по умолчанию yellow , которое будет присвоено данному узлу. Если значение по умолчанию не задано, как для GraphML-атрибута weight в вышеприведенном примере, то значение GraphML-атрибута для элемента графа не определено. В вышеприведенном примере не определено значение GraphML-атрибута, задающего вес ребра с идентификатором e3 .

2.5 Информация для парсера

Для оптимизации синтаксического разбора документа с помощью парсера используются специальные метаданные, которые могут быть добавлены к некоторым GraphML-элементам с помощью XML-атрибутов. Все XML-атрибуты, задающие метаданные имеют префикс parse . Имеется два вида метаданных: информация о количестве элементов и информация о способе кодирования данных.

Во первых рассмотрим информацию о количестве элементов. Для элемента graph определены следующие XML-атрибуты: XML-атрибут parse.nodes задает количество узлов в графе, XML-атрибут parse.edges - количество ребер. XML-атрибут parse.maxindegree определяет максимальное количество входящих в вершину ребер, а XML-атрибут parse.maxoutdegree - максимальное количество исходящих из вершины ребер. Для элемента node XML-атрибут parse.indegree определяет максимальное количество входящих ребер для данной вершины, а XML-атрибут parse.outdegree - максимальное количество исходящих ребер для данной вершины.

Во вторых рассмотрим информацию, связанную с кодированием. Для элемента graph определены следующие XML-атрибуты: если XML-атрибут parse.nodeids имеет значение canonical , все узлы имеют идентификатор вида nX , где X обозначает количество элементов node предшествующих данному элементу. Второе значение XML-атрибута - free . Аналогично этому, XML-атрибут parse.edgeids задает вид идентификатора для узлов. Отличие состоит только в том, что идентификатор имеет вид eX . XML-атрибут parse.order определяет порядок в котором узлы и ребра располагаются в документе. При значении равном nodesfirst все элементы node располагаются раньше элементов edge . При значении равном adjacencylist , объявление узла предшествует объявлению его смежных вершин. Для значения free порядок следования не устанавливается.

Следующий пример иллюстрирует использование информации для парсера:

3. Дополнительные понятия I: вложенные графы, гиперребра и порты

Для некоторых приложений модель графа, описанная в предыдущем разделе слишком ограничена и не моделирует адекватно данные прикладной программы.

В данном разделе мы рассмотрим расширенную модель, которая позволяет описать вложенную иерархию графов, гиперребра и порты.

3.1 Вложенные графы

GraphML поддерживает вложенные графы, т.е., графы в которых узлы иерархически упорядочены. Иерархия выражается через структуру GraphML-документа. Узел в GraphML-документе может иметь элемент graph , который содержит узлы иерархически вложенные в данный узел. Ниже приводится пример вложенного графа и соответствующий ему GraphML-документ. Обратите внимание, что на рисунке графа иерархия выражена с помощью оболочки, т.е., узел а находится в иерархии ниже узла b если графическое представление узла a расположено внутри графического представления узла b .

Image of a nested graph.

В файле nested.graphml содержится соответствующий GraphML-документ:

Ребра соединяющие два узла, находящиеся во вложенном графе, должны быть объявлены в графе, который является предком обоих узлов в иерархии. Обратите внимание, что в нашем примере именно так и сделано. Объявление ребра между узлом n6::n1 и узлом n4::n0:: n0 в графе n6::n0 было бы неправильно, а объявление их в графе G - правильно. Хорошая практика состоит в том, чтобы размещать объявление ребра в наиболее общем предке или на самом верхнем уровне иерархии.

Для приложений, которые не поддерживают вложенность графов, рекомендуется игнорировать узлы, которые не принадлежат графу верхнего уровня, и игнорировать ребра у которых обе конечные точки не принадлежат графу верхнего уровня.

3.2 Гиперребра

Гиперребра это смысловое объединение ребер которое не не только связывает две конечные точки, но и выражает зависимость между произвольным числом конечных точек (например, описание кратчайшего пути - примечание переводчика). Гиперребра объявляются с помощью элемента hyperedge . Каждой конечной точке входящей в данное гиперребро соответствует элемент endpoint . Элемент endpoint должен иметь XML-атрибут node , который содержит идентификатор узла в документе. Следующий пример содержит гиперребра и два ребра. Гиперребра изображены в виде дуг, а ребра в виде прямых линий. Заметим, что ребра задаются с помощью элемента edge или с помощью элемента hyperedge содержащего два элемента endpoint .

Граф с гиперребрами.

Image of a graph with hyperedges

Файл hyper.graphml содержит соответствующий GraphML-документ:

Как и ребра, гиперребра и конечные точки могут иметь XML-атрибут id , который является уникальным идентификатором для соответствующих элементов.

3.3 Порты

Узлы могут содержать различные логические точки подключения ребер и гиперребер. Такие точки подключения называются портами.

Порты узла объявляются с помощью элементов port, которые являются дочерними по отношению к соответствующему элементу node . Обратите внимание, что порты могут быть вложенными, т.е., они могут содержать внутри себя другие элементы port . Каждый элемент port должен иметь XML-атрибут name , который идентифицирует этот порт. Элемент edge имеет необязательные XML-атрибуты sourceport и targetport которые задают для ребра исходящий и входящий порты узла, соответственно. Аналогично элемент endpoint имеет необязательный XML-атрибут port .

Документ port.graphml - пример документа с портами:

4. Дополнительные понятия II: расширение GraphML

Язык GraphML может быть легко расширен. В GraphML легко описывать топологию графа с помощью элементов имеющих простые атрибуты. Для хранения комплексных данных GraphML может быть расширен. В данном разделе мы рассмотрим различные возможности расширения GraphML.

Расширения GraphML должны быть заданы в XML-схеме. Схема, в которой определены расширения, может быть порождена из схемы GraphML-документа с помощью стандартного механизма похожего на механизм, применяемый в XHTML.

4.1 Добавление XML-атрибутов в GraphML-элементы

В большинстве случаев, дополнительная информация может (и должна) быть связана с GraphML-элементами с помощью GraphML-атрибутов, что гарантируется совместимостью GraphML-парсеров. Однако, в ряде случаев более удобно использовать XML-атрибуты. Предположим у вас имеется парсер, который умеет обрабатывать XLink-атрибут href и корректно интерпретировать его как URL. Предположим вы хотите хранить в GraphML граф, узлы которого представляют собой WWW-страницы. Для ассоциации узла со страницей его модель должна позволять вам в теге node присваивать атрибуту xlink:href URL-ссылку на соответсвующую страницу:

Для добавления XML-атрибутов в GraphML-элементы используется механизм расширение GraphML. Это расширение должно быть определено в XML-схеме. В документе graphml+xlink.xsd показан атрибут href добавленный к элементу node :

Кроме node.extra.attrib , имеются соответствующие группы атрибутов для всех основных GraphML-элементов.

В документе attributes.ext.graphml приведен пример документа который соответствует схеме graphml+xlink.xsd.

4.2 Добавление комплексных типов

Структурированное содержимое может быть добавлено с помощью элемента data . Например, пользователь может хранить для узлов их изображения в формате SVG .

Для добавления структурированных данных в GraphML-элементы используется механизм расширения GraphML. Это расширение должно быть задано с помощью XML-схемы. Документ graphml+svg.xsd демонстрирует как элементы SVG могут быть добавлены в содержимое data :

Вышеприведенная схема похожа на схему в примере с добавлением атрибутов. Во первых присутсвуют объявления именного пространтсва. Во вторых, импортировано именное пространство SVG. Наконец расширен комплексный тип data-extension.type , который является базовым для описания содержимого элемента data , путем добавления элемента svg из именного пространства SVG.

В файле svg.graphml приведен документ, соответствующий схеме graphml+svg.xsd:

Заметим, что узел с идентификатором n1 допускает графическое изображение по умолчанию, заданное элементом key с идентификатором k0 . Вышеприведенный пример также демонстрирует использование именных пространств XML: задано два различных элемента desc - один в именном пространстве GraphML, а второй в именном пространстве SVG . Возможный конфликт, связанный с одинаковыми именами элементов в различных XML-языках, разрешен с помощью использования различных именных пространств.

Читайте также: