Quick Start
Input Formats
User Manual
Theoretical Overview
Forums and Lists
Change History
Papers & Citations
Source Code
Data Sources

Features Overview

Working with "Continous" (real-valued,"streaming") time data

Networks in SoNIA are not limited to the standard notion of a set of relations among a set of entities at a given point in time. Instead, consider the entities (or nodes and individuals) as a stream of events. Every event has a real-valued time coordinate indicating when it occurs. If the event is not instantaneous, it also has an ending coordinate to indicate its duration. A node-event, for example, can describe a company which comes into existence on Jan 1, 1990 and then dissolves on June 1, 1996. Alternatively, a node event might describe a single observation of a node, such as an individual in a friendship survey wave done in 1995.

Node-events can describe more than just the presence of a node in the data. They can also indicate changes in the node's attributes (or in our case, the iconic representation of the attributes: color, shape, size, labeling, etc). In a sense, an event can be thought of as piece of information (existence, an attribute, sometimes coordinates) describing an entity (the node) at a position in time. Arc-events function in much the same way, except that they are tied to two entities, the sending and receiving nodes. In this framework multiple ties, multiplex ties, or ties overlapping in time are completely permitted.

There are several advantages to this structure. One is efficient storage and computation because it is essentially a list-based approach, which helps for storing large, sparse networks. It also provides some conceptual clarity for expressing nodes' changing attributes, and changing network sizes. But the main advantage is that data can be easily transformed into more traditional matrices or arc-lists for calculations or visualization in a way that is both flexible and encourages careful consideration of the theoretical structure backing the data and its time mode (i.e., discrete vs. continuous)

Browse and navigate network time data

SoNIA is designed to make it easy to select the range of continous time data to work with, slice and bin it into networks, and move easily through the networks

Animation Between Layouts

SoNIA allows the user to apply layout algorithms to each "slice" or time point in the network independently.  Ideally, this means that the node positions in each layout are indicative of the relations between them.  However, it would be difficult to visually understand a "movie" of these layouts because nodes and arcs change position drastically between frames.  SoNIA tries to aid the eye in following the changing relations by allowing the user to display a series of frames "between" the slice time points in which the coordinates are interpolated between the starting and ending positions.  The result is a much smoother "animation" of structural change. 

Export QuickTime movies

Stress & Stability Reporting

Network data is generally quite "high dimensional", meaning that it is difficult or impossible to create a two-dimensional representation in which all the distance relations among the nodes hold true.  That being the case, it seems important to give the user a sense of "how bad" a particular representation is at conveying the network relations.  We've included a version of Kruskal's stress, a measure of the distortion between the distances as represented on the screen, and as expressed in the all-pairs-shortest-path geodesic matrix.  Also displayed is a "Shepard's Plot" which shows the matrix and (re-scaled) screen distances plotted against each other for a more detailed qualitative examination of distortion. 

Feedback on Layout Convergance

SoNIA provides feedback on the convergance of the layout algorithms to help in making assesments of the quality of a layout.

Dealing with Messy Networks

We've designed SoNIA with the folowing conditions in mind (that's not to say we have particularly good solutions!):

  1. Networks which change size over time (nodes enter or leave the network)
  2. Relations (ties) which are added or deleted (this is what is usually meant by "change" in a network)
  3. Relations which change in strength over time
  4. Multiple simultaneous or "multiplex" relations between nodes
  5. Self relations (loops)
  6. Negitive relations
  7. Node or relation attributes which change over time (color, size,transparency, etc)
  8. Networks which are not fully connected (contain multiple components or isolates)
  9. Asymmetric relations
  10. Real-valued relations


SoNIA has been coded in Java. This means that SoNIA is theoretically cross-platform compatible and will run on any machine in which Java 1.3.1 or later is installed.

Much of the numerics (random number generation, matrix operations) are based on the Colt scientific computing java library developed at CERN, available at (http://hoschek.home.cern.ch/hoschek/colt/).

SoNIA currently uses the QTJava QuickTime libraries from Apple Computer (http://developer.apple.com/quicktime/qtjava/) to export and save movies. The package and the player are also free, but only available for Macs and Windows machines.

Read more about current layout techniques..