Short description about VNA format can be found on Gephi website.
VnaExporter is available in Pharo 3 configuration browser.
You can also load it executing is a workspace:
Gofer it smalltalkhubUser: 'Pharo' project: 'MetaRepoForPharo30'; configurationOf: 'VnaExporter'; loadStable.
How to use
First create a new instance of exporter:
exporter := VnaExporter new.
To add nodes use:
exporter addNode: anObject. exporter addNodes: aCollection. exporter model: aCollection "overrides whole nodes set"
To add edges use:
exporter addEdge: aPair. exporter addEdges: aCollectionOfPairs. exporter edges: aCollectionOfPairs "overrides whole edges set"
There are also shortcuts for edges:
exporter connectAll "intializes all possible edges". exporter connectAllNoLoops "intializes all possible edges except loops". exporter connectAllUndirected "for any 2 nodes only one edge is initialised between them". exporter connectAllUndirectedNoLoops "Same as previous but without loops"
###Data and properties
To define different properties we use blocks. They will be evaluated for each node to obtain required data.
Remember to initialise the
idBlock, the default value is
#yourself. Remember that specification says that ID has to be unique.
exporter idBlock: aBlock "block accepts 1 value"
To set a node data values use:
exporter nodeData: #dataName computeAs: aBlock
you can also remove them with:
exporter removeNodeData: #dataName
Each node property has the dedicated getter and setter. If there is no block set (i.e. value is set to
nil) that property won't be exported (blocks accepts 1 value).
exporter xBlock: aBlock. exporter yBlock: aBlock. exporter sizeBlock: aBlock. ...
Edges data has a similar API as node data, but block have to accept 2 values.
exporter tieData: #dataName computeAs: aBlock. exporter removeTieData: #dataName
To generate VNA from the exporter either print it on a stream or generate a string:
exporter printOn: aStream. exporter printString