Jump to content

GXL: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
No edit summary
Jeronim (talk | contribs)
har har
Line 1: Line 1:
'''GXL (Graph eXchange Language)''' or GRANT EXTRA LARGE DISCOS is designed to be a standard exchange format for graphs. GXL is an [[XML]] sublanguage and the syntax is given by a XML DTD (Document Type Definition). This exchange format offers an adaptable and flexible means to support interoperability between graph-based tools.
'''GXL (Graph eXchange Language)''' is designed to be a standard exchange format for graphs. GXL is an [[XML]] sublanguage and the syntax is given by a XML DTD (Document Type Definition). This exchange format offers an adaptable and flexible means to support interoperability between graph-based tools.


In particular, GXL was developed to enable interoperability between software reengineering tools and components, such as code extractors (parsers), analyzers and visualizers. GXL allows software reengineers to combine single-purpose tools especially for parsing, source code extraction, architecture recovery, data flow analysis, pointer analysis, program slicing, query techniques, source code visualization, object recovery, restructuring, refactoring, remodularization etc. into a single powerful reengineering workbench.
In particular, GXL was developed to enable interoperability between software reengineering tools and components, such as code extractors (parsers), analyzers and visualizers. GXL allows software reengineers to combine single-purpose tools especially for parsing, source code extraction, architecture recovery, data flow analysis, pointer analysis, program slicing, query techniques, source code visualization, object recovery, restructuring, refactoring, remodularization etc. into a single powerful reengineering workbench.

Revision as of 15:54, 26 June 2006

GXL (Graph eXchange Language) is designed to be a standard exchange format for graphs. GXL is an XML sublanguage and the syntax is given by a XML DTD (Document Type Definition). This exchange format offers an adaptable and flexible means to support interoperability between graph-based tools.

In particular, GXL was developed to enable interoperability between software reengineering tools and components, such as code extractors (parsers), analyzers and visualizers. GXL allows software reengineers to combine single-purpose tools especially for parsing, source code extraction, architecture recovery, data flow analysis, pointer analysis, program slicing, query techniques, source code visualization, object recovery, restructuring, refactoring, remodularization etc. into a single powerful reengineering workbench.

There are two innovative features in GXL that make it well-suited to an exchange format for software data. One, the conceptual data model is a typed, attributed, directed graph. This is not to say that all software data ought to be manipulated as graphs, but rather that they can be exchanged as graphs. Two, it can be used to represent instance data as well as schemas for describing the structure of the data. Moreover, the schema can be explicitly stated along with instance data. The structure of graphs exchanged by GXL streams is given by a schema represented as a UML class diagram.

Since GXL is a general graph exchange format, it can also be used to interchange any graph-based data, including models between CASE tools, data between graph transformation systems (cf. GTXL), or graph visualization tools. GXL includes support for hypergraphs and hierarchical graphs, and can be extended to support other types of graphs.

GXL originated in the merger of GRAph eXchange format, GraX (University of Koblenz, DE) for exchanging typed, attributed, ordered, directed graphs (TGraphs), Tuple Attribute Language, TA (University of Waterloo, CA), and the graph format of the PROGRES graph rewriting system (University Bw München, DE). Furthermore, GXL includes ideas from exchange formats from reverse engineering, including Relation Partition Algebra, RPA (Philips Research Eindhoven, NL) and Rigi Standard Format, RSF (University of Victoria, CA). The development of GXL was also influenced by various formats used in graph drawing (e.g. daVinci, GML, Graphlet, GraphXML) and current discussions on exchange formats for graph transformation systems.

Presentations and Discussions of former GXL versions

At ICSE 2000 Workshop on Standard Exchange Formats (WoSEF) GXL was accepted as working draft for an exchange format by numerous research groups working in the domain of software reengineering and graph transformation.

During the APPLIGRAPH Subgroup Meeting on Exchange Formats for Graph Transformation an overview of GXL was given [Schürr, 2000] and participants decided to use GXL to represent graphs within their exchange format for graph transformation systems (GTXL).

CASCON 2000 included two half-day workshops on GXL. In the morning, 'Software Data Interchange with GXL: Introduction and Tutorial' gave a primer on the syntax and concepts in the format, while the afternoon workshop, 'Software Data Interchange with GXL: Implementation Issues' discussed the development of converters and standard schemas.

At WCRE 2000 Working Conference on Reverse Engineering, GXL was presented in a tutorial [Holt et al., 2000] and during the workshop on exchange formats [Holt/Winter, 2000]. Central results were a simpler representation of ordering information, the usage of UML class diagrams to present graph schemata and the representation of UML class diagrams by GXL graphs.

The Dagstuhl Seminar on Interoperability of Reengineering Tools ratified GXL 1.0 as standard interchange format for exchanging reengineering related data. Numerous groups from industry and research committed to using GXL, to import and export GXL documents to their tools, and to write various GXL tools.

GXL Partners

During various conferences and workshops the following groups from industry and academics committed to refining GXL to be the standard graph exchange format, write GXL filters and tools or use GXL as exchange format in their tools: