1 / 40

G raph E x change L anguage

G raph E x change L anguage. Andreas Winter. joint work with: Ric Holt Andy Schürr Susan Sim. Contents. Motivation and Idea Definition of GXL Exchanging graphs with GXL Exchanging schemas with GXL Conclusion. GXL Objective. standard exchange language

colt-reid
Download Presentation

G raph E x change L anguage

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Graph Exchange Language Andreas Winter joint work with:Ric HoltAndy SchürrSusan Sim

  2. Contents • Motivation and Idea • Definition of GXL • Exchanging graphs with GXL • Exchanging schemas with GXL • Conclusion

  3. GXL Objective standard exchange language • for interchanging data between reengineering tools mathematical model • typed, attributed, directed graphs notation • eXtensible Markup Language (XML) • Unified Modeling Language (UML) application to other areas in software engineering • graph transformation • graph drawing

  4. History

  5. GXL Partners Bell Canada (Datrix Group), Canada IBM Centre for Advanced Studies, Canada Mahindra British Telecom, India Nokia Research Center (Software Technology Laboratory), Finland Philips Research (Software Architecture Group), The Netherlands RWTH Aachen (Department of Computer Science III), Germany TU Berlin (Theoretical CS/Formal Specification Group), Berlin University of Berne (Software Composition Group), Switzerland University Bw München (Institute for Software Technology), Germany University of Koblenz (IST, GUPRO), Germany University of Oregon (Department of Computer Science), U.S.A. University of Paderborn (AG Softwaretechnik), Germany University of Stuttgart (BAUHAUS Group), Germany University of Victoria (RIGI Group), Canada Universities of Waterloo and Toronto (SWAG), Canada

  6. <gxl> <graph> <node id = "P" > <attr name = "File"> <string> main.c </string> </attr> </node> <node id = "Q" > <attr name = "File"> <string> test.c </string> </attr> </node> <node id = "V" > <attr name = "Line"> <int> 225 </int> </attr> </node> <node id = "W" > <attr name = "Line"> <int> 316 </int> </attr> </node> <edge id = "r1" from = "P" to = "V"> <attr name = "Line"> <int> 127 </int> </attr> </edge> <edge id = "r2" from = "Q" to = "W"> <attr name = "Line"> <int> 27 </int> </attr> </edge> <edge id = "c" from = "P" to = "Q"> <attr name = "Line"> <int> 316 </int></attr> </edge> </graph> </gxl> GXL Example

  7. Dimensions of Reengineering Data Programming Languages • single Languages (Ada, C, C++, Cobol, Java) • multi-language systems Level of Abstraction • AST-level • Architectural level Relational Aspects • Dataflow, Controlflow, ... • Includes, Calls, Uses, ...

  8. Definition of GXL Requirements for Exchange Formats • independent from • specific reengineering dimensions • specific reengineering applications • specific reengineering tools • concrete enough to be interpreted by different reengineering tools GXL Approach • exchanging instance data and schema data GXL First Directive Everything is a typed, attributed, directed graph

  9. UML object diagrams GXL Documents Graph DataPart Data Graph DataPart <<instanceOf>> Schema <<instanceOf>> SchemaPart DataPart Graph MetaSchema SchemaPart SchemaPart UML class diagrams <<isInstanceOf>> M2 M1 M0 GXL Idea

  10. Definition of GXL • simple and compact representation of directed and undirected graphs • suitable for a broad spectrum of graph models, • including support for hypergraphs and • support for hierarchical graphs • support for representation of complex attribute values • extensibility of graph elements and attribute types • uniform representation for graphs and graph schemas

  11. GXL Graph Model

  12. GXL Document Type Definition automatic generation of GXL DTD • follows MOF/XMI standard • entity types and attributes are not distinguished • blows up the number of XML elements (GXL 0.7.2: 136/74 elements) manual definition of GXL DTD • manual work to do • distinction between entity types and attributes reflects design decisions • small and simple DTD (23 elements)

  13. <!ENTITY % *-extension "" > <!ELEMENTgxl (%gxl-extension; graph*) > <!ATTLISTgxl xmlns:xlink CDATA #FIXED "www.w3.org/1999/xlink"> <!ELEMENTtype EMPTY> <!ATTLIST type xlink:type (simple) #FIXED "simple" xlink:href CDATA #REQUIRED> <!ELEMENTgraph (%graph-extension; type? , attr* , ( node | edge | rel )*) > <!ATTLISTgraph id ID #REQUIRED role NMTOKEN #IMPLIED edgeids ( true | false ) "false" hypergraph ( true | false ) "false" orientation ( directed | undirected ) "directed"> <!ELEMENTnode (%node-extension; type? , attr*, graph*) > <!ATTLISTnode id ID #REQUIRED> <!ELEMENTedge (%edge-extension; type?, attr*, graph*) > <!ATTLIST edge id ID #IMPLIED from IDREF #REQUIRED to IDREF #REQUIRED fromorder CDATA #IMPLIED toorder CDATA #IMPLIED orientation ( directed | undirected ) #IMPLIED> GXL Document Type Definition (0.99) <!ELEMENTrel (%rel-extension; type? , attr*, graph*, link* ) > <!ATTLISTrel id ID #IMPLIED orientation ( directed | undirected ) #IMPLIED> <!ELEMENTlink (%link-extension; attr*) > <!ATTLISTlink ref IDREF #REQUIRED role NMTOKEN #IMPLIED direction ( in | out | none ) #IMPLIED startorder CDATA #IMPLIED endorder CDATA #IMPLIED > <!ELEMENTattr (type?, attr*, (%val;)) > <!ATTLIST attr id IDREF #IMPLIED name NMTOKEN #REQUIRED kind NMTOKEN #IMPLIED > <!ENTITY % val " %value-extension; locator | bool |int | float | string | seq | set | bag |tup "> <!ELEMENTlocator EMPTY > <!ATTLIST locator xlink:type (simple) #FIXED "simple" xlink:href CDATA #IMPLIED > <!ELEMENTbool |int | float | string (#PCDATA) > <!ELEMENTseq | set | bag | tup (%val;)* >

  14. Exchanging Graphs with GXL • Attributed, typed, directed Graphs • Undirected Graphs • Ordered Graphs • Hypergraphs • Hierarchical Graphs

  15. <?xml version="1.0"?> <!DOCTYPE gxl SYSTEM "gxl.dtd"> <gxl><graph> <node id = "p"> </node> <node id = "v"> </node> <edge from = "p" to = "v"> </edge><graph></gxl> graph typed attributed p : Proc <type xlink:href = "schema.gxl#Proc"/> <attr name = "file"><string>main.c</string></attr> file = "main.c" <type xlink:href = "schema.gxl#Var"/> refers <attr name = "line"><int>27</int></attr> v : Var <type xlink:href = "schema.gxl#refers"/> line = 27 Typed, Attributed, Directed Graphs e : id = "e"

  16. p : Proc file = "main.c" <edge id = "e" from = "p" to = "v"> <type xlink:href = "schema.gxl#refers"/> <attr name = "line"><int>42</int> </attr> </edge> e : refers line = 42 v : Var line = 27 Attributed Edges

  17. p : Proc file = "main.c" <graphorientation = "undirected">... <edge id = "e" from = "p" to = "v"></edge>... </graph> v : Var line = 27 Undirected Graphs edges are always noted as directedbut can be interpreted as undirected e :

  18. Nodes and Edges (DTD) <!ELEMENTnode (%node-extension; type? , attr*, graph*) > <!ATTLISTnode id ID #REQUIRED > <!ELEMENTedge (%edge-extension; type? , attr*, graph*)> <!ATTLISTedge id ID #IMPLIED from IDREF #REQUIRED to IDREF #REQUIRED fromorder CDATA #IMPLIED toorder CDATA #IMPLIED orientation (directed|undirected ) #IMPLIED>

  19. p : Prog <node id = "p"><type xlink:href = "schema.gxl#prog"/> <attr name = "authors"> <set><string>Ric</string><string>Andy</string><string>Susan</string><string>Andreas</string></set> </attr> </node> authors = { Ric, Andy, Susan, Andreas } Attribute Types GXL supports • set, • sequence, • bag, • tuple of • bool, • int, • float, • string, • references (URI), • complex values

  20. g : e : <node id = "u" /> <node id = "v" /> <node id = "w" /> <edge id = "e" from = "v" to = "u"/> <edge id = "f" from = "w" to = v"/> <edge id = "g" from = "v" to = "v"/> u : v : f : w : Ordering of Incidences {4} fromorder = "1" {1} {3} {2} toorder = "2" toorder = "3" fromorder = "4"

  21. v : V theV theSecondU <rel id = "r" orientation = "directed"> <link ref = "u" role = "theFirstU" direction = "out" endorder = "2" /> <link ref = "u" role = "theSecondU" direction = "out" endorder = "1" /> <link ref = "v" role = "theV" direction = "in" /> <link ref = "w" role = "theW" direction = "none"/> </rel> {1} u : U r : {2} theFirstU theW w : W Hypergraphs and n-ary Relations directed

  22. g : GraphT e : <node id = "t"><type xlink:href = "schema.gxl#T" /> </node> <node id = "u"/> <edge id = "f" from = "t" to = "u"/> v : w : f : u : Support for Hierarchical Graphs t : T <graph id = "g"> <type xlink:href = "schema.gxl#GraphT"/> <node id = "v"/> <node id = "w"/> <edge id = "e" from = "v" to = "w"/> </graph>

  23. <!ENTITY % gxl-extension "FOO ," > <!ELEMENT FOO (#PCDATA)> <!ENTITY % basegxl SYSTEM "gxl.dtd"> %basegxl; GXL Extension by redefining entities by including GXL DTD (external entities) • GXL offers extending • GXL documents • graphs • nodes • edges • hyperedges (rel) • links • values

  24. Summary: Exchanging Graphs • Attributed, typed, directed Graphs • Undirected Graphs • Ordered Graphs • Hypergraphs • Hierarchical Graphs

  25. Exchanging Schemas with GXL • Graph Schema Definition with UML Class Diagrams • attributed, typed, directed graphs • hypergraphs • hierarchical graphs • GXL Representation of class diagrams • GXL Metaschema

  26. UML class diagram UML object diagram p : Proc Proc file="main.c" file : string e : refers refers line = 42 line : int Var v : Var line = 27 line : int Graph Schema - Graphs

  27. node class node attribute Proc ordering file : string edge class {ordered} direction refers multiplicity line : int edgeattributes 0 .. * attributetype Var attributename line : int Graph Schema - Notation

  28. UML class diagram v : V V theV theSecondU 0..1 theSecondU {1} {ordered} u : U theV r : 1 {2} U r 1 theFirstU theW theW {ordered} theFirstU w : W 1..* W Graph Schema - Hypergraphs UML object diagram

  29. <<graph>> GraphT t : T E g : GraphT v : V w : W Stereotype e : E f : F T V W U u : U Graph Schema - Hierarchical Graphs UML object diagram UML class diagram F

  30. UML class diagram E t : T g : GraphT v : V w : W <<graph>> Stereotype e : E Composition GraphT f : F U V W T F u : U Graph Schema - Hierarchical Graphs UML object diagram

  31. Generalization Aggregation Graph Schema - Higher Constructs

  32. Summary: Exchanging Schemas • Graph Schema Definition with UML Class Diagrams • attributed, typed, directed graphs • hypergraphs • hierarchical graphs • GXL Representation of class diagrams • GXL Metaschema

  33. Representing Schemas • Schemas (graph classes) are represented as graphs as well • Schemas are exchanged as GXL documents suiting a metaschema for graph classes • only one common and simple DTD for exchanging • graphs matching different graph schemas • graph classes matching a metaschema

  34. UML class diagram schema graph :Nodeclass : Attribute : String has Domain has Attribute name="Proc" name="file" Proc file:string comesFrom refers : EdgeClass has Attribute line : int name="refers" : Integer : Attribute has Domain goesTo Var name="line" line : int : NodeClass has Attribute name="Var" GXL Schema Representation

  35. GXL Metaschema (Extract)

  36. GXL Metaschema - Graph (Extract)

  37. <?xml version="1.0"?> <!DOCTYPE gxl SYSTEM "gxl.dtd"> <gxl> <graph id = "gxl"> <type xlink:href = "gxl.gxl#gxl"/> <node id = "NodeClass"> <type xlink:href = "gxl.gxl#NodeClass"/> <attr name = "name"><string>NodeClass</string> </attr> <attr name = "isAbstract"><bool>false</bool> </attr> </node> ... <node id = "GraphClassElement"> <type xlink:href = "gxl.gxl#NodeClass"/> <attr name = "name"><string> GraphClassElement </string> </attr> <attr name = "isAbstract"><bool>true</bool> </attr> </node> ... <edgefrom ="NodeClass"to ="GraphClassElement"> <type xlink:href = "gxl.gxl#isA"/> </edge> GXL Metaschema - GXL Document

  38. Concepts in GXL Class Diagrams • Definition of NodeClasses, EdgeClasses, and RelationClasses. • Definition of(structured) Attributes. • Definition of Orientation, Multiplicities, Roles, and Ordering. • Definition of Graph Hierarchy. • Definition of Graphclasses. • Definition of Generalization and Aggregation.

  39. GXL Metaschema (Graph Part)

  40. Conclusion GXL offers a language for describing graphs • directed and undirected, typed, attributed graphs • hypergraphs and hierarchical graphs a language for defining graph classes a language for exchanging graphs • instance graphs • schema graphs more information • http://www.gupro.de/GXL

More Related