Class SimpleGraphMLEdgeListImporter

  • All Implemented Interfaces:
    EventDrivenImporter<java.lang.Integer,​Triple<java.lang.Integer,​java.lang.Integer,​java.lang.Double>>

    public class SimpleGraphMLEdgeListImporter
    extends BaseEventDrivenImporter<java.lang.Integer,​Triple<java.lang.Integer,​java.lang.Integer,​java.lang.Double>>
    implements EventDrivenImporter<java.lang.Integer,​Triple<java.lang.Integer,​java.lang.Integer,​java.lang.Double>>
    Imports a GraphML file as an edge list. Vertices are numbered from $0$ to $n-1$ in the order they are first encountered in the input file.

    This is a simple implementation with supports only a limited set of features of the GraphML specification. For a more rigorous parser use GraphMLImporter. This version is oriented towards parsing speed. Default attribute values are completely ignored.

    For a description of the format see http://en.wikipedia.org/wiki/ GraphML or the GraphML Primer.

    Below is small example of a graph in GraphML format.

     
     <?xml version="1.0" encoding="UTF-8"?>
     <graphml xmlns="http://graphml.graphdrawing.org/xmlns"  
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns 
         http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd">
       <key id="d0" for="node" attr.name="color" attr.type="string" />
       <key id="d1" for="edge" attr.name="weight" attr.type="double"/>
       <graph id="G" edgedefault="undirected">
         <node id="n0">
           <data key="d0">green</data>
         </node>
         <node id="n1">
           <data key="d0">black</data>
         </node>     
         <node id="n2">
           <data key="d0">blue</data>
         </node>
         <node id="n3">
           <data key="d0">red</data>
         </node>
         <node id="n4">
           <data key="d0">white</data>
         </node>
         <node id="n5">
           <data key="d0">turquoise</data>
         </node>
         <edge id="e0" source="n0" target="n2">
           <data key="d1">1.0</data>
         </edge>
         <edge id="e1" source="n0" target="n1">
           <data key="d1">1.0</data>
         </edge>
         <edge id="e2" source="n1" target="n3">
           <data key="d1">2.0</data>
         </edge>
         <edge id="e3" source="n3" target="n2"/>
         <edge id="e4" source="n2" target="n4"/>
         <edge id="e5" source="n3" target="n5"/>
         <edge id="e6" source="n5" target="n4">
           <data key="d1">1.1</data>
         </edge>
       </graph>
     </graphml>
     
     

    The importer by default validates the input using the 1.0 GraphML Schema. The user can (not recommended) disable the validation by calling setSchemaValidation(boolean).

    Author:
    Dimitrios Michail
    • Constructor Detail

      • SimpleGraphMLEdgeListImporter

        public SimpleGraphMLEdgeListImporter()
        Constructs a new importer.
    • Method Detail

      • getEdgeWeightAttributeName

        public java.lang.String getEdgeWeightAttributeName()
        Get the attribute name for edge weights
        Returns:
        the attribute name
      • setEdgeWeightAttributeName

        public void setEdgeWeightAttributeName​(java.lang.String edgeWeightAttributeName)
        Set the attribute name to use for edge weights.
        Parameters:
        edgeWeightAttributeName - the attribute name
      • isSchemaValidation

        public boolean isSchemaValidation()
        Whether the importer validates the input
        Returns:
        true if the importer validates the input
      • setSchemaValidation

        public void setSchemaValidation​(boolean schemaValidation)
        Set whether the importer should validate the input
        Parameters:
        schemaValidation - value for schema validation
      • importInput

        public void importInput​(java.io.Reader input)
                         throws ImportException
        Description copied from interface: EventDrivenImporter
        Import a graph
        Specified by:
        importInput in interface EventDrivenImporter<java.lang.Integer,​Triple<java.lang.Integer,​java.lang.Integer,​java.lang.Double>>
        Parameters:
        input - the input reader
        Throws:
        ImportException - in case any error occurs, such as I/O or parse error