Internet Graphs (IGraphs)

Citation Author(s):
Caio
Dadauto
IC - Unicamp
Nelson
Saldanha da Fonseca
IC - Unicamp
Ricardo
Silva Torres
Wageningen University
Submitted by:
Caio Dadauto
Last updated:
Mon, 12/04/2023 - 21:22
DOI:
10.21227/cnw0-ea27
Data Format:
Research Article Link:
License:
0
0 ratings - Please login to submit your rating.

Abstract 

The Internet Graphs (IGraphs) dataset is a substantial collection of real intra-AS (Autonomous System) graphs sourced from the Internet Topology Data Kit (ITDK) project. Comprising a total of 90,326 graphs, each ranging from 12 to 250 nodes, this dataset provides a diverse and extensive resource for the exploration and analysis of network structures within autonomous systems. The graphs in the IGraphs dataset are stored in the gt format, a binary representation specifically designed for graph-tool Graph instances. The IGraphs dataset not only contributes to the existing body of knowledge in network science but also serves as a valuable benchmark for the development and evaluation of algorithms related to graph analysis, network modeling, and routing strategies within autonomous systems.

 

Instructions: 

The graphs can be esealy used through graph-tool Python library. All 90,326 graphs are in the gt format, which is a simple binary format designed to store graph-tool Graph instances in a compact and fast manner.

To use the dataset follow these instructions:

    1. Install Graph-Tool:

Ensure that you have the graph-tool library installed. You can install it using the following command:


            conda create --name gt -c conda-forge graph-tool
            conda activate gt
        
    1. Download the Dataset:

Download the dataset containing the 90,326 graphs in the gt format.

    1. Load the Graphs in Python:

The graphs can be easily loaded using the graph-tool library. For instance, in a Python script or Jupyter Notebook, use the following code to load the graphs into memory:


            import os
            from graph_tool.all import *

            # Replace 'path_to_dataset' with the actual path to the dataset file.
            dataset_path = 'path_to_dataset'

            # Load the graphs from the dataset
            graphs = []
            for graph_path in os.listdir(dataset_path):
                graphs.append(load_graph(graph_path))
        
    1. Accessing Graph Properties:

Once the graphs are loaded, you can access various properties and manipulate the graphs using graph-tool functions. For example, you can access the number of vertices and edges in a graph:


            for graph in graphs:
                num_vertices = graph.num_vertices()
                num_edges = graph.num_edges()
                print(f"Graph with {num_vertices} vertices and {num_edges} edges.")
        
    1. Analyze and Visualize:

Use the graph-tool library functions to analyze and visualize the graphs as per your requirements. You can compute graph properties, perform graph algorithms, and visualize the graphs using the available tools in the library.

Data Descriptor Article DOI: