The basics of GXL and the XIG-transformation
As it is mentioned in the introduction before, GXL is not only an XML-based exchange format for graphs, but also stores its data in a graph (more accurate: the data model is a typed, attributed, directed graph).
It has been designed to build a new exchange standard for graph-based tools (preferably software reengineering tools like e.g. code extractors (parsers), analyzers, and visualizers), respectively make an interoperability between these tools possible. Because of its construction, GXL can, on the one hand be useful for representing structure of data, using graph-schemata, and on the other hand, it can be utilized for storing graphs, as instances of these schemata.
For the support of more complex designs, GXL is able to handle complicated structures, like hypergraphs and hierarchical graphs, and can be extended to support other types of graphs (how this is realized, it will be explain in gxl/gxl-graphs - for schemata constructs, please see gxl/gxl-schemata).

The picture above shows the way GXL works together with the exchanging tools.
A very interesting feature of GXL is the "self-representibility" of the language constructs. As you can see in the next graph, the GXL Meta Schema is defined by the UML Meta Model and defines itself a graph class for representing schema graphs. But as every other GXL Schema, the GXL meta schema is represented by a GXL Graph (an instance of an GXL schema) which matches the demands of this graph class, what means, that the GXL meta schema is an instance of itself. In this way, there is a parallelism between the GXL constructs - GXL schema and GXL graph - and the UML constructs, which define these - the UML class diagram and the UML object diagram, as there are instance-relations on both sides.
As there should now be an overview of GXL (more details will follow), it is time to explain the exact task of XIG. Described in the introduction before, XIG transforms XMI-based UML class diagrams or UML object diagrams to GXL-based graph schemata or graphs. But it is not clear at the moment, why XIG has to do this.
The question should be answered in a few words: there is no graphical editor for GXL itself at the moment, but because the GXL Meta Schema is nothing else than a sublanguage of UML class diagrams, it is the best way to use a UML case tool (like ArgoUML(tm) or Rational Rose(tm)) to create these class (object) diagrams as a graphical notation for the definition of GXL graph schemata (GXL graphs). There is only one problem with these case tools: they don't understand GXL (yet), but they can export their data in the XMI format. XIGs task is now, to build the missing link between the case tools, which exported XMI code and the people, who have the demand for GXL code (this is shown below).

For more detailed information about GXL, please follow the link below.
|
the GXL homepage |