Введение
GXL (Graph eXchange Language) разработан как стандартный формат обмена графами. GXL является подмножеством расширяемого языка разметки (XML), а его синтаксис определяется определением типа документа XML (DTD). Этот формат обмена предоставляет адаптивный и гибкий способ обеспечения совместимости между инструментами, работающими с графами.
GXL (Graph eXchange Language) is designed to be a standard exchange format for graphs. GXL is an extensible markup language (XML) sublanguage and the syntax is given by an XML document type definition (DTD). This exchange format offers an adaptable and flexible means to support interoperability between graph based tools.
Обзор
В частности, GXL был разработан для обеспечения взаимодействия между инструментами и компонентами реинжиниринга программного обеспечения, такими как извлекатели кода (парсеры), анализаторы и визуализаторы. GXL позволяет специалистам по реинжинирингу программного обеспечения объединять инструменты узкой специализации, особенно для парсинга, извлечения исходного кода, восстановления архитектуры, анализа потока данных, анализа указателей, секционирования программ, реализации запросов, визуализации исходного кода, восстановления объектов, реструктуризации, рефакторинга, ремодуляризации и т.д., в единую мощную среду реинжиниринга. GXL обладает двумя инновационными особенностями, которые делают его подходящим форматом для обмена программными данными. Концептуальная модель данных представляет собой типизированный, атрибутированный, ориентированный граф. Это не означает, что все программные данные должны обрабатываться как графы, а скорее, что их можно обменивать в виде графов. Он может использоваться для представления как данных экземпляров, так и схем, описывающих структуру данных. Более того, схема может быть явно указана вместе с данными экземпляров. Структура графов, обмениваемых потоками GXL, определяется схемой, представленной в виде диаграммы классов Unified Modeling Language (UML). Поскольку GXL является универсальным форматом обмена графами, он также может использоваться для обмена любыми данными, основанными на графах, включая модели между инструментами автоматизированного проектирования программного обеспечения (CASE), данными между системами преобразования графов или инструментами визуализации графов. GXL поддерживает гиперграфы и иерархические графы и может быть расширен для поддержки других типов графов. GXL возник в результате объединения формата обмена графами (GraX: Университет Кобленца, Германия) для обмена типизированными, атрибутированными, упорядоченными, ориентированными графами (TGraphs), языка атрибутов кортежей (TA: Университет Ватерлоо, Канада) и формата графов системы переписывания графов PROGRES (Университет Бундесвера Мюнхена, Германия). Кроме того, GXL включает идеи из форматов обмена, используемых при обратной разработке, включая алгебру разделения отношений (RPA: Philips Research Eindhoven, Нидерланды) и стандартный формат Rigi (RSF: Университет Виктории, Канада). Разработка GXL также была подвержена влиянию различных форматов, используемых в построении графов (например, daVinci, Graph Modeling Language (GML), Graphlet, GraphXML) и текущим обсуждениям форматов обмена для систем преобразования графов.
Презентации предыдущих версий GXL
На семинаре по стандартным форматам обмена (WoSEF) Международной конференции по разработке программного обеспечения (ICSE 2000) 2000 года формат GXL был принят в качестве рабочего проекта для формата обмена данными многочисленными исследовательскими группами, работающими в области реинжиниринга программного обеспечения и преобразования графов. В ходе заседания подгруппы APPLIGRAPH по форматам обмена для преобразования графов был представлен обзор GXL [Schürr, 2000], и участники решили использовать GXL для представления графов в своем формате обмена для систем преобразования графов (GTXL). Конференция IBM Centers for Advanced Studies 2000 (CASCON 2000) включала два полудневных семинара, посвященных GXL. Утром семинар «Обмен программными данными с использованием GXL: введение и учебное пособие» представил обзор синтаксиса и концепций формата, а во второй половине дня семинар «Обмен программными данными с использованием GXL: вопросы реализации» был посвящен разработке конвертеров и стандартных схем. На Седьмой рабочей конференции по обратной разработке (WCRE 2000) GXL был представлен в виде учебного пособия [Holt et al., 2000] и в рамках семинара по форматам обмена [Holt/Winter, 2000]. Ключевыми результатами стали более простое представление информации об упорядочивании, использование диаграмм классов UML для представления схем графов и представление диаграмм классов UML с помощью графов GXL. Семинар Dagstuhl по интероперабельности инструментов реинжиниринга утвердил GXL 1.0 в качестве стандартного формата обмена для обмена данными, связанными с реинжинирингом. Многочисленные группы из промышленности и научных кругов взяли на себя обязательство использовать GXL, импортировать и экспортировать документы GXL в свои инструменты и разрабатывать различные инструменты для GXL.