NAME

SNA::Network - A toolkit for Social Network Analysis

VERSION

Version 0.07

SYNOPSIS

Quick summary of what the module does.

use SNA::Network;

my $net = SNA::Network->new();
$net->create_node_at_index(index => 0, name => 'A');
$net->create_node_at_index(index => 1, name => 'B');
$net->create_edge(source_index => 0, target_index => 1, weight => 1);
...

DESCRIPTION

SNA::Network is a bundle of modules for network algorithms, specifically designed for the needs of Social Network Analysis (SNA), but can be used for any other graph algorithms of course.

It represents a standard directed and weighted network, which can also be used as an undirected and/or unweighted network of course. It is freely extensible by using own hash entries.

Data structures have been designed for SNA-typical sparse network operations, and consist of Node and Edge objects, linked via references to each other.

Functionality is implemented in sub-modules in the SNA::Network namespace, and all methods are imported into Network.pm. So you can read the documentation in the sub-modules and call the methods from your SNA::Network instance.

Methods are called with named parameter style, e.g.

$net->method( param1 => value1, param2 => value2, ...);

Only in cases, where methods have only one parameter, this one is passed by value.

This module was implemented mainly because I had massive problems understanding the internal structures of Perl's Graph module. Despite it uses lots of arrays instead of hashes for attributes and bit setting for properties, it was terribly slow for my purposes. It has much more features and plugins though.

METHODS

new

Creates a new empty network. There are no parameters. After creation, use methods to add nodes and edges, or load a network from a file.

create_node_at_index

Creates a node at the given index. Pass node attributes as additional named parameters, index is mandatory. Returns the created SNA::Network::Node object.

create_edge

Creates a new edge between nodes with the given source_index and target_index. A weight is optional, it defaults to 1. Pass any additional attributes as key/value pairs. Returns the created SNA::Network::Edge object.

nodes

Returns the array of SNA::Network::Node objects belonging to this network.

node_at_index

Returns the SNA::Network::Node object at the given index.

edges

Returns the array of SNA::Network::Edge objects belonging to this network.

delete_nodes

Delete the passed node objects. These have to be sorted by index! All related edges get deleted as well. Indexes get restored after this operation.

delete_edges

Delete the passed edge objects.