The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Graph::GML - Perl extension for reading GML files and creating a Graph object

SYNOPSIS

  use Graph::GML;
  my $Obj = new Graph::GML(file=>"file.gml");

DESCRIPTION

The Graph Modelling Language (see http://en.wikipedia.org/wiki/Graph_Modelling_Language> ) is an ASCII file format for describing graphs. It is quite extensive, not only defining the graph itself but including tags for graphics. This perl module is concerned with reading in a GML file and then creating a Graph module for use in operations on the graph. It does not handle the graphics section as defined in the standard.

An example GML file is:

        Creator "Leigh Metcalf December 30, 2011"
        graph [
                directed 0
                comment "Hi there!"
                node [
                        id 1
                        label "Chocolate"
                        value 3
                ]
                node [
                        id 2
                        label "Chip"
                        value 0
                ]
                node [
                        id 3
                        label "Peanut butter"
                        value 2
                ]
                node [
                        id 4
                        label "Nutella"
                        value 2
                ]
                edge [
                        source 1
                        target 2
                        value 3
                ]
                edge [
                        source 3
                        target 4
                        value 0
                ]
                edge [
                        source 2
                        target 3
                        value 1
                ]
        ]

Note that in creating the Graph perl module, the vertices are labeled not with the id given in the node section, but with the label. If a label is not given, it defaults to the id. The value given in the node section is used as the vertex weight and the value given in the edge section is the edge weight. I have not found the directed keyword in the GML specification, however, since it seems to be used I support it and created the graph accordingly.

One caveat. This perl module works by reading in the entire GML file and operating on the given text at this time. If the GML file is 'large', this could cause a problem.

EXPORT

None by default.

SEE ALSO

All of the GML files found at http://www-personal.umich.edu/~mejn/netdata/ were used to test this perl module. It is a very good source of network data.

AUTHOR

Leigh Metcalf, <leigh@fprime.net>

COPYRIGHT AND LICENSE

Copyright (C) 2011 by Leigh Metcalf

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.12.3 or, at your option, any later version of Perl 5 you may have available.