1 | iper
|
2 | ====
|
3 |
|
4 | Hypergraphs for Node.js
|
5 |
|
6 | [![Build Status](https://travis-ci.org/fibo/iper.png)](https://travis-ci.org/fibo/iper)
|
7 |
|
8 | What is an hypergraph?
|
9 |
|
10 | An hypergraph is a graph which rank can be greater than two.
|
11 |
|
12 | Check the following Wikipedia pages:
|
13 |
|
14 | * [Hypergraph](https://en.wikipedia.org/wiki/Hypergraph)
|
15 | * [Graph theory](https://en.wikipedia.org/wiki/Graph_theory)
|
16 |
|
17 | # Installation
|
18 |
|
19 | npm install iper
|
20 |
|
21 | # Documentation
|
22 |
|
23 | See [annotated sources](http://fibo.github.io/iper).
|
24 |
|
25 | # Quick start
|
26 |
|
27 | var iper = require('iper');
|
28 |
|
29 | var IperGraph = iper.IperGraph;
|
30 | var IperEdge = iper.IperEdge;
|
31 |
|
32 | var graph = new IperGraph();
|
33 |
|
34 | var fooNodeId = graph.createNode('foo');
|
35 | var barNodeId = graph.createNode(['bar']);
|
36 | var quzNodeId = graph.createNode({quz:'quuz'});
|
37 |
|
38 | var edgeId = graph.createEdge([fooNodeId, barNodeId]);
|
39 |
|
40 | var edge = graph.getEdge(edgeId);
|
41 |
|
42 | var tripleEdgeId = graph.createEdge([fooNodeId, barNodeId, quzNodeId]);
|
43 |
|
44 | var tripleEdge = graph.getEdge(tripleEdgeId);
|
45 |
|
46 | console.log(graph.data)
|
47 |
|
48 | // graph data should be something like
|
49 | //
|
50 | // nodes:{
|
51 | // fooNodeId: 'foo',
|
52 | // barNodeId: ['bar'],
|
53 | // quzNodeId: {quz:'quuz'}
|
54 | // },
|
55 | // edges: {
|
56 | // edgeId: [fooNodeId, barNodeId],
|
57 | // tripleEdgeId: [fooNodeId, barNodeId, quzNodeId]
|
58 | // }
|
59 | //
|
60 |
|