UNPKG

1.66 kBMarkdownView Raw
1iper
2====
3
4Hypergraphs for Node.js
5
6[![Build Status](https://travis-ci.org/fibo/iper.png)](https://travis-ci.org/fibo/iper.png?branch=master)
7
8What is an hypergraph?
9
10An hypergraph is a graph which rank can be greater than two.
11
12Check 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
23See [examples with 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 // that is, depending on id assignment, something similar to
61 //
62 // nodes:{
63 // 1: 'foo',
64 // 2: ['bar'],
65 // 3: {quz:'quuz'}
66 // },
67 // edges: {
68 // 4: [1, 2],
69 // 5: [1, 2, 3]
70 // }
71