An Overview of the GXL Graph Exchange Language

GXL (Graph eXchange Language) is designed to be a standard exchange format for graph-based tools. GXL is defined as an XML sublanguage, which offers support for exchanging instance graphs together with their appropriate schema information in a uniform format. Formally, GXL is based on typed, attributed, ordered directed graphs which are extended by concepts to support representing hypergraphs and hierarchical graphs. Using this general graph model, GXL offers a versatile support for exchanging nearly all kinds of graphs. This report intends to give a short overview of the main features of GXL. 1 Motivation and Background A great variety of software tools relies on graphs as internal data representation. A standardized language for exchanging those graphs offers a first step in improving interoperabilitybetween these tools. For instance, various graph based tool components used in software reengineering like extractors (e. g. scanner, parser), abstractors (e. g. query tools, structure recognition tools, slicing tools etc.), and visualizer (e. g. graph and diagram visualizer, code browser) can be composed to build a powerful reengineering workbench using on a common graph interchange format. [20] gives an overview on existing combinations of tool components used in various reengineering projects. The development of GXL (Graph eXchange Language) aims at supporting data interoperability between reengineering tools. GXL was ratified as standard exchange format in software reengineering at the Dagstuhl Seminar "Interoperability of Reengineering Tools" in January 2001 [3]. Since GXL was developed as a general format for describing graph structures, it is applicable in further areas of tool interoperability. Hence, GXL also defines the graph part in the exchange format GTXL (Graph Transformation eXchange Language) [15], [33]. Activities in the graph drawing community also deal with the development of an exchange format for graph layout [10]. There is evidence of combining the structure part of GXL with the graph layout part and the modularization part of GraphML [14] to form a general and comprehensive graph exchange format. GXL originated in a merger of GRAph eXchange format (GraX) [5], Tuple Attribute Language (TA) [19], and the graph format of thePROGRESgraph rewriting system [31]. The graph models used here were supplemented by additional concepts to handle hierarchical graphs and hypergraphs. Furthermore, GXL includes ideas from common exchange formats used in reverse engineering, including Relation Partition Algebra (RPA) [26] and Rigi Standard Format (RSF)[37]. The development of GXL was also influenced by various formats used in graph drawing e. g. daVinci [23], GML/Graphlet [13], XGMML (eXtensible Graph Markup and Modeling Language) [38], and GraphXML[18]. Thus, GXL covers most of the important graph formats. GXL can be viewed as a generalization of these formats. Exchanging graphs with GXL deals with both, instance graphs and their correspondingraph schemas . Firstly, GXL offers a versatile support for exchanging all kinds of graphs based on typed, attributed, directed, ordered graphs includinghypergraphsandhierarchical graphs. Secondly, GXL offers means for exchanging graph schemas representing the graph structure i. e. the definition of node and edge types, their attribute schemas and their incidence structure. Both, instance graphs and graph schemas, are exchanged by XML documents (Extended Markup Language) [34]. This paper introduces into the basic concepts of GXL version 1.0 for exchanging instance graphs (cf. section 2) and graph schemas (cf. section 3). The language definition of GXL is given by its XML document type definition (DTD). Section 4 summarizes the current usage of GXL. More information on GXL can be found at [20] and [36]. Up to date information including tutorials and further GXL documents are collected at h tp://www.gupro.