|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectit.unimi.dsi.webgraph.ImmutableGraph
it.unimi.dsi.webgraph.ImmutableSequentialGraph
it.unimi.dsi.webgraph.ArcListASCIIGraph
public class ArcListASCIIGraph
An ImmutableGraph
that corresponds to graphs stored in a human-readable
ASCII format were each line contains an arc.
The file format is very simple: each line contains an arc specified as two nodes
separated by whitespace (but we suggest exactly one TAB character). Sources must be in increasing
order, but targets can be in any order. The constructor
provides an additional parameter, called shift, which will be added to
all node indices. The default is 0, but for lists that number nodes starting from 1
it can be set to -1. Actually, the class ShiftedByOneArcListASCIIGraph
can be used in place
of this class for setting the shift to -1 without specifying additional parameters.
Contrarily to other classes, the load methods of this class do not always return instances of this class.
In particular, loadOnce(InputStream)
will return an instance of this class for
read-once access. The instance will not provide offline or random access, but read-once access will be backed by
the original input stream and only the successors of a single node will be loaded in core memory at any time.
The load(CharSequence)
method, on the other hand, will return an instance of
ArrayListMutableGraph
built by copying an offline instance of this class.
The loadSequential(CharSequence)
and loadOffline(CharSequence)
methods are not actually supported—they
just delegate to load(CharSequence)
.
ArcListASCIIGraph
to convert your dataA simple (albeit rather inefficient) way to import data into WebGraph is using ASCII graphs specified by arc lists. Suppose you create the following file, named example.arcs:
0 1 1 2 2 1Then, the command
java it.unimi.dsi.webgraph.BVGraph -g ArcListASCIIGraph example.arcs bvexamplewill produce a compressed graph in
BVGraph
format
with basename bvexample. Even more convenient, and extremely
more efficient, is the loadOnce(InputStream)
method, which reads from an input stream an arc-list ASCII graph and exposes it for a single traversal. It
can be used, for instance, with the main method of BVGraph
to
generate somehow an arc-list ASCII graph and store it in compressed form on the fly. The previous
example could be then rewritten as
java it.unimi.dsi.webgraph.BVGraph -1 -g ArcListASCIIGraph dummy bvexample <example.arcs
Nested Class Summary |
---|
Nested classes/interfaces inherited from class it.unimi.dsi.webgraph.ImmutableGraph |
---|
ImmutableGraph.LoadMethod |
Field Summary |
---|
Fields inherited from class it.unimi.dsi.webgraph.ImmutableGraph |
---|
GRAPHCLASS_PROPERTY_KEY, PROPERTIES_EXTENSION |
Constructor Summary | |
---|---|
ArcListASCIIGraph(InputStream is,
int shift)
Creates a read-once arc-list ASCII graph. |
Method Summary | |
---|---|
static ImmutableGraph |
load(CharSequence basename)
|
static ImmutableGraph |
load(CharSequence basename,
ProgressLogger unused)
|
static ImmutableGraph |
loadOffline(CharSequence basename)
|
static ImmutableGraph |
loadOffline(CharSequence basename,
ProgressLogger unused)
|
static ArcListASCIIGraph |
loadOnce(InputStream is)
|
static ArcListASCIIGraph |
loadOnce(InputStream is,
int shift)
|
static ImmutableGraph |
loadSequential(CharSequence basename)
|
static ImmutableGraph |
loadSequential(CharSequence basename,
ProgressLogger unused)
|
static void |
main(String[] args)
|
NodeIterator |
nodeIterator(int from)
Returns a node iterator for scanning the graph sequentially, starting from the given node. |
int |
numNodes()
Returns the number of nodes of this graph. |
static void |
store(ImmutableGraph graph,
CharSequence basename)
|
static void |
store(ImmutableGraph graph,
CharSequence basename,
int shift)
Stores an arc-list ASCII graph with a given shift. |
static void |
store(ImmutableGraph graph,
CharSequence basename,
ProgressLogger unused)
|
Methods inherited from class it.unimi.dsi.webgraph.ImmutableSequentialGraph |
---|
copy, outdegree, randomAccess, successorArray |
Methods inherited from class it.unimi.dsi.webgraph.ImmutableGraph |
---|
basename, equals, hashCode, load, loadMapped, loadMapped, nodeIterator, numArcs, outdegrees, store, store, successors, toString |
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public ArcListASCIIGraph(InputStream is, int shift) throws NumberFormatException, IOException
nodeIterator(int)
.
is
- an input stream containing an arc-list ASCII graph.
NumberFormatException
IOException
Method Detail |
---|
public int numNodes()
ImmutableGraph
Albeit this method is not optional, it is allowed that this method throws
an UnsupportedOperationException
if this graph has never been entirely
traversed using a node iterator
. This apparently bizarre
behaviour is necessary to support implementations as ArcListASCIIGraph
, which
do not know the actual number of nodes until a traversal has been completed.
numNodes
in class ImmutableGraph
public NodeIterator nodeIterator(int from)
ImmutableGraph
This implementation just calls the random-access methods (ImmutableGraph.successors(int)
and
ImmutableGraph.outdegree(int)
). More specific implementations may choose to maintain some extra state
to make the enumeration more efficient.
nodeIterator
in class ImmutableSequentialGraph
from
- the node from which the iterator will iterate.
NodeIterator
for accessing nodes and successors sequentially.public static ImmutableGraph loadSequential(CharSequence basename) throws IOException
IOException
public static ImmutableGraph loadSequential(CharSequence basename, ProgressLogger unused) throws IOException
IOException
public static ImmutableGraph loadOffline(CharSequence basename) throws IOException
IOException
public static ImmutableGraph loadOffline(CharSequence basename, ProgressLogger unused) throws IOException
IOException
public static ArcListASCIIGraph loadOnce(InputStream is) throws IOException
IOException
public static ArcListASCIIGraph loadOnce(InputStream is, int shift) throws IOException
IOException
public static ImmutableGraph load(CharSequence basename) throws IOException
IOException
public static ImmutableGraph load(CharSequence basename, ProgressLogger unused) throws IOException
IOException
public static void store(ImmutableGraph graph, CharSequence basename, ProgressLogger unused) throws IOException
IOException
public static void store(ImmutableGraph graph, CharSequence basename) throws IOException
IOException
public static void store(ImmutableGraph graph, CharSequence basename, int shift) throws IOException
graph
- a graph to be stored.basename
- the name of the output file.shift
- a shift that will be added to each node; note that is the opposite of the shift that will
have to be used to load the generated file.
IOException
public static void main(String[] args) throws IllegalArgumentException, SecurityException, IllegalAccessException, InvocationTargetException, NoSuchMethodException, IOException, JSAPException
IllegalArgumentException
SecurityException
IllegalAccessException
InvocationTargetException
NoSuchMethodException
IOException
JSAPException
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |