annotate README.txt @ 57:2c4437762884

STUB: README.txt
author Jeff Hammel <k0scist@gmail.com>
date Sat, 24 May 2014 15:28:16 -0700
parents 1f59a073df6c
children c4f551305a23
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
cfcfa093e4b4 initial commit
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
1 WSGraph
cfcfa093e4b4 initial commit
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
2 ===========
cfcfa093e4b4 initial commit
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
3
cfcfa093e4b4 initial commit
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
4 WSGI graph server
cfcfa093e4b4 initial commit
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
5
40
Jeff Hammel <jhammel@mozilla.com>
parents: 0
diff changeset
6
41
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
7 Directed Graphs
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
8 ===============
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
9
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
10 Storage
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
11 -------
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
12
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
13 A directed graph may be expressed as JSON::
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
14
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
15 {'nodes': {'node1': {'metadata1': value, ...},
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
16 'node2': {'metadata1': value, ...}}.
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
17 'edges': {'node1': {'node2': {'metadata': value}, ...},
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
18 ...},
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
19 'graphmetadata': value,
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
20 ...}
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
21
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
22 In languages like python, which can hash (key, value) pairs, the edges
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
23 may be more conveniently hashed::
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
24
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
25 edges[('foo', 'bar')] = {'metadata': value}
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
26
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
27 A directed graph may be stored in a RDB::
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
28
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
29 Table: *nodes*
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
30
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
31 +----+---------+---------+---+
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
32 |node|metadata1|metadata2|...|
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
33 +====+=========+=========+===+
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
34 |foo |value |value | |
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
35 +----+---------+---------+---+
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
36 |bar |value |value | |
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
37 +----+---------+---------+---+
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
38
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
39 Table: *edges*
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
40
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
41 +-----+-----+---------+---------+---+
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
42 |node1|node2|metadata1|metadata2|...|
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
43 +=====+=====+=========+=========+===+
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
44 |foo |bar |value |value | |
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
45 +-----+-----+---------+---------+---+
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
46
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
47 Note that the nodes table has unique keys, but the edges table has
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
48 rows identified only by the ordered set of two keys: node1 and node2.
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
49
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
50 Previous formats use a node and value hash of a string: the nodes have
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
51 a given name. While this is convenient for human identification, a
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
52 more efficient hashing mechanism may be achieved by an algorithm.
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
53 Since a edge is a unique hash of two nodes, the nodes may be numbered
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
54 with an appropriate algorithm giving a unique hash per edge.
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
55
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
56
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
57 Higher Dimensionality
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
58 ---------------------
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
59
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
60 * faces
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
61 * ...
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
62
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
63
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
64 Links
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
65 -----
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
66
46
2d57cda87036 start noting useful graph DBs
Jeff Hammel <jhammel@mozilla.com>
parents: 45
diff changeset
67 Javascript:
50
Jeff Hammel <jhammel@mozilla.com>
parents: 49
diff changeset
68 * http://www.jgraph.com/mxgraph.html
Jeff Hammel <jhammel@mozilla.com>
parents: 49
diff changeset
69 Interactive JavaScript HTML 5 Diagramming Library;
Jeff Hammel <jhammel@mozilla.com>
parents: 49
diff changeset
70 demo at https://www.draw.io/
41
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
71 * http://www.graphdracula.net/
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
72 * http://thejit.org/
52
21f8060547c1 add d3 links
Jeff Hammel <jhammel@mozilla.com>
parents: 50
diff changeset
73 * d3: http://d3js.org/
21f8060547c1 add d3 links
Jeff Hammel <jhammel@mozilla.com>
parents: 50
diff changeset
74 * http://maxdemarzi.com/2012/02/13/visualizing-a-network-with-cypher/
21f8060547c1 add d3 links
Jeff Hammel <jhammel@mozilla.com>
parents: 50
diff changeset
75 * https://github.com/ignacioola/insights
21f8060547c1 add d3 links
Jeff Hammel <jhammel@mozilla.com>
parents: 50
diff changeset
76 * http://blog.nextgenetics.net/?e=7
21f8060547c1 add d3 links
Jeff Hammel <jhammel@mozilla.com>
parents: 50
diff changeset
77
57
2c4437762884 STUB: README.txt
Jeff Hammel <k0scist@gmail.com>
parents: 56
diff changeset
78 Python:
2c4437762884 STUB: README.txt
Jeff Hammel <k0scist@gmail.com>
parents: 56
diff changeset
79 * http://graph-tool.skewed.de/ :
2c4437762884 STUB: README.txt
Jeff Hammel <k0scist@gmail.com>
parents: 56
diff changeset
80 Graph-tool is an efficient Python module for manipulation and
2c4437762884 STUB: README.txt
Jeff Hammel <k0scist@gmail.com>
parents: 56
diff changeset
81 statistical analysis of graphs (a.k.a. networks).
2c4437762884 STUB: README.txt
Jeff Hammel <k0scist@gmail.com>
parents: 56
diff changeset
82 * http://igraph.org/python
41
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
83
46
2d57cda87036 start noting useful graph DBs
Jeff Hammel <jhammel@mozilla.com>
parents: 45
diff changeset
84 Graph DBs:
56
Jeff Hammel <jhammel@mozilla.com>
parents: 55
diff changeset
85 * https://pypi.python.org/pypi/ajgu : Graph database with several
Jeff Hammel <jhammel@mozilla.com>
parents: 55
diff changeset
86 backends architecture in mind
Jeff Hammel <jhammel@mozilla.com>
parents: 55
diff changeset
87 * https://bitbucket.org/lcrees/graphalchemy : graphalchemy is a
Jeff Hammel <jhammel@mozilla.com>
parents: 55
diff changeset
88 generic object to graph mapper for graph databases.
46
2d57cda87036 start noting useful graph DBs
Jeff Hammel <jhammel@mozilla.com>
parents: 45
diff changeset
89
57
2c4437762884 STUB: README.txt
Jeff Hammel <k0scist@gmail.com>
parents: 56
diff changeset
90 Applications:
2c4437762884 STUB: README.txt
Jeff Hammel <k0scist@gmail.com>
parents: 56
diff changeset
91 * http://www.freebsd.org/cgi/man.cgi?query=netgraph&sektion=4 :
2c4437762884 STUB: README.txt
Jeff Hammel <k0scist@gmail.com>
parents: 56
diff changeset
92 netgraph -- graph based kernel networking subsystem
46
2d57cda87036 start noting useful graph DBs
Jeff Hammel <jhammel@mozilla.com>
parents: 45
diff changeset
93
41
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
94 Ideas
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
95 -----
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
96
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
97 I work at automation and testing at Mozilla, but have been known to
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
98 don multiple hats, and, not surprisingly, I think a lot about how the
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
99 web works. So I just read Stuart's blog post and couldn't help but
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
100 feel that it plays somewhat in to my idea of mine.
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
101
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
102 Background....
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
103
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
104 The web is a directed graph (
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
105 http://en.wikipedia.org/wiki/Directed_graph ). The nodes of the
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
106 directed graphs are web pages and the edges of the directed graphs are
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
107 produced when you clicked on a link. This gives a unique opportunity
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
108 to provide maps of the web. There are a few components in this
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
109 visualization.
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
110
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
111 A site map. This is a map that sits on a server. When a visitor
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
112 clicks on a link, a new edge is added by reading HTTP REFERER. A toy
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
113 example, no longer "live", is at http://k0s.org/map.svg . This gives
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
114 both the webmaster and visitors to see how the site is traveled: the
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
115 well worn routes as well as the dusty trails. Note that the map
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
116 itself is an element on the map :) In addition, the map could be
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
117 embedded as a navigation aid on any page that desires it. Obviously a
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
118 lot more could be done here than is shown in the toy example: nodes
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
119 could be collapsed into metanodes until expanded (that is
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
120 /pictures/mission/capp.jpg and /pictures/mission/cowboy.jpg might just
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
121 be /pictures/mission for the sake of easy navigation unless a user
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
122 clicked in for closer detail), etc. The algorithm is really simple:
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
123 - for each request (in middleware) read the path info and the HTTP
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
124 referer
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
125 - if this edge doesn't exist create it
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
126 - if it does, add one to its count (and whatever other metadata you
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
127 want....you have the whole request)
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
128 - additionally, you need a handler to display this data
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
129 Some sites do this though I rarely see it presented this way and even
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
130 more rarely to the user.
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
131 In addition, you can make the system federated. For instance, lets
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
132 say foo.org and bar.org both have maps (presumedly noted as <link
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
133 rel="" type=""> in their <HEAD>s). If there is traffic from foo to
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
134 bar you can stitch these maps together at the points where they meet.
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
135 You have a federated map of the web!
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
136
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
137 The map of one's journey. So the above is from the site's point of
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
138 view. What about the user's point of view? It would be easy to make
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
139 an addon that recorded your own map of how you traversed the web. You
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
140 click on a link in any tab and, again, an edge is created (and
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
141 populated with whatever metadata you want). You can see how you use
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
142 the web as well as share your travels with friends. This could also
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
143 link up with site maps when they are available.
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
144
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
145 Just some things I've been thinking of in the last two years. I'm
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
146 happy to go into more detail or flush them out if there is interest.
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
147
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
148 https://groups.google.com/forum/?hl=en#!topic/mozilla-labs-pancake/TbRFpxvic6M
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
149 http://play.fxhome.mozillalabs.com:4322/lattice/oyiptong@mozilla.com/graph/vis.html
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
150
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
151
42
Jeff Hammel <jhammel@mozilla.com>
parents: 41
diff changeset
152 = Graph exchange formats =
41
194ea1428156 from http://k0s.org/portfolio/directed-graph.txt
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
153
42
Jeff Hammel <jhammel@mozilla.com>
parents: 41
diff changeset
154 [Planned] WSGraph should be able to import and export any of the
Jeff Hammel <jhammel@mozilla.com>
parents: 41
diff changeset
155 standard graph formats
40
Jeff Hammel <jhammel@mozilla.com>
parents: 0
diff changeset
156
42
Jeff Hammel <jhammel@mozilla.com>
parents: 41
diff changeset
157 * JSGN (native)
40
Jeff Hammel <jhammel@mozilla.com>
parents: 0
diff changeset
158 * http://en.wikipedia.org/wiki/Graph_Modelling_Language
Jeff Hammel <jhammel@mozilla.com>
parents: 0
diff changeset
159 * http://en.wikipedia.org/wiki/GraphML
Jeff Hammel <jhammel@mozilla.com>
parents: 0
diff changeset
160 * http://en.wikipedia.org/wiki/Trivial_Graph_Format
Jeff Hammel <jhammel@mozilla.com>
parents: 0
diff changeset
161 * http://www.gupro.de/GXL/ , http://en.wikipedia.org/wiki/GXL
Jeff Hammel <jhammel@mozilla.com>
parents: 0
diff changeset
162 * http://en.wikipedia.org/wiki/Dot_language (Graphviz)
Jeff Hammel <jhammel@mozilla.com>
parents: 0
diff changeset
163
Jeff Hammel <jhammel@mozilla.com>
parents: 0
diff changeset
164
42
Jeff Hammel <jhammel@mozilla.com>
parents: 41
diff changeset
165 = Resources =
Jeff Hammel <jhammel@mozilla.com>
parents: 41
diff changeset
166
40
Jeff Hammel <jhammel@mozilla.com>
parents: 0
diff changeset
167 Python packages related to graphs:
Jeff Hammel <jhammel@mozilla.com>
parents: 0
diff changeset
168
Jeff Hammel <jhammel@mozilla.com>
parents: 0
diff changeset
169 * graph-tool: http://en.wikipedia.org/wiki/Graph-tool ,
43
6e6da56f0d68 last notes!
Jeff Hammel <jhammel@mozilla.com>
parents: 42
diff changeset
170 https://pypi.python.org/pypi/graph-tool ,
6e6da56f0d68 last notes!
Jeff Hammel <jhammel@mozilla.com>
parents: 42
diff changeset
171 http://projects.skewed.de/graph-tool/
40
Jeff Hammel <jhammel@mozilla.com>
parents: 0
diff changeset
172
54
a10582739c9c http://igraph.sourceforge.net/
Jeff Hammel <jhammel@mozilla.com>
parents: 53
diff changeset
173 * http://igraph.sourceforge.net/
a10582739c9c http://igraph.sourceforge.net/
Jeff Hammel <jhammel@mozilla.com>
parents: 53
diff changeset
174
55
bf63d9db42bc http://networkx.github.io/
Jeff Hammel <jhammel@mozilla.com>
parents: 54
diff changeset
175 * http://networkx.github.io/
bf63d9db42bc http://networkx.github.io/
Jeff Hammel <jhammel@mozilla.com>
parents: 54
diff changeset
176
44
6b1d76a8cac6 JS stuff...
Jeff Hammel <jhammel@mozilla.com>
parents: 43
diff changeset
177 Javascript:
6b1d76a8cac6 JS stuff...
Jeff Hammel <jhammel@mozilla.com>
parents: 43
diff changeset
178
53
6b7ded698bde more links
Jeff Hammel <jhammel@mozilla.com>
parents: 52
diff changeset
179 * http://sigmajs.org/
6b7ded698bde more links
Jeff Hammel <jhammel@mozilla.com>
parents: 52
diff changeset
180 * graphdracula
44
6b1d76a8cac6 JS stuff...
Jeff Hammel <jhammel@mozilla.com>
parents: 43
diff changeset
181 * http://arborjs.org/
6b1d76a8cac6 JS stuff...
Jeff Hammel <jhammel@mozilla.com>
parents: 43
diff changeset
182
40
Jeff Hammel <jhammel@mozilla.com>
parents: 0
diff changeset
183
48
Jeff Hammel <jhammel@mozilla.com>
parents: 47
diff changeset
184 Other external libraries and tools:
40
Jeff Hammel <jhammel@mozilla.com>
parents: 0
diff changeset
185
48
Jeff Hammel <jhammel@mozilla.com>
parents: 47
diff changeset
186 * Graphviz: the old, the venerable, and still the king
40
Jeff Hammel <jhammel@mozilla.com>
parents: 0
diff changeset
187 * tulip: http://tulip.labri.fr/TulipDrupal/
42
Jeff Hammel <jhammel@mozilla.com>
parents: 41
diff changeset
188 * GUESS: http://graphexploration.cond.org/
Jeff Hammel <jhammel@mozilla.com>
parents: 41
diff changeset
189 * Java Universal Network/Graph Framework : http://jung.sourceforge.net/
43
6e6da56f0d68 last notes!
Jeff Hammel <jhammel@mozilla.com>
parents: 42
diff changeset
190 * graphthing http://graph.seul.org/
6e6da56f0d68 last notes!
Jeff Hammel <jhammel@mozilla.com>
parents: 42
diff changeset
191 * igraph http://igraph.sourceforge.net/
47
b2be302dd2fb http://blockdiag.com/en/index.html
Jeff Hammel <jhammel@mozilla.com>
parents: 46
diff changeset
192 * blockdiag: imple diagram images generator; http://blockdiag.com/
49
Jeff Hammel <jhammel@mozilla.com>
parents: 48
diff changeset
193 * graphthing: http://graph.seul.org/
53
6b7ded698bde more links
Jeff Hammel <jhammel@mozilla.com>
parents: 52
diff changeset
194 * gephi: http://gephi.org/ ; the open source graph visualizer
40
Jeff Hammel <jhammel@mozilla.com>
parents: 0
diff changeset
195
48
Jeff Hammel <jhammel@mozilla.com>
parents: 47
diff changeset
196 Let's not forget
Jeff Hammel <jhammel@mozilla.com>
parents: 47
diff changeset
197 * ganv: Ganv is an interactive Gtk canvas widget for graph-based
Jeff Hammel <jhammel@mozilla.com>
parents: 47
diff changeset
198 interfaces;
Jeff Hammel <jhammel@mozilla.com>
parents: 47
diff changeset
199 http://dev.drobilla.net/browser/trunk/ganv (though see also
Jeff Hammel <jhammel@mozilla.com>
parents: 47
diff changeset
200 http://packages.ubuntu.com/source/quantal/libs/ganv and
Jeff Hammel <jhammel@mozilla.com>
parents: 47
diff changeset
201 http://harryhaaren.blogspot.com/2012/12/getting-to-grips-with-flowcanvas.html
49
Jeff Hammel <jhammel@mozilla.com>
parents: 48
diff changeset
202 )
48
Jeff Hammel <jhammel@mozilla.com>
parents: 47
diff changeset
203
Jeff Hammel <jhammel@mozilla.com>
parents: 47
diff changeset
204
42
Jeff Hammel <jhammel@mozilla.com>
parents: 41
diff changeset
205 See also http://k0s.org/links/?q=graph
40
Jeff Hammel <jhammel@mozilla.com>
parents: 0
diff changeset
206
43
6e6da56f0d68 last notes!
Jeff Hammel <jhammel@mozilla.com>
parents: 42
diff changeset
207 (And what is
6e6da56f0d68 last notes!
Jeff Hammel <jhammel@mozilla.com>
parents: 42
diff changeset
208 https://github.com/tinkerpop/blueprints/wiki/GraphML-Reader-and-Writer-Library ?)
40
Jeff Hammel <jhammel@mozilla.com>
parents: 0
diff changeset
209
Jeff Hammel <jhammel@mozilla.com>
parents: 0
diff changeset
210 Parallel Efforts
Jeff Hammel <jhammel@mozilla.com>
parents: 0
diff changeset
211 ----------------
Jeff Hammel <jhammel@mozilla.com>
parents: 0
diff changeset
212
Jeff Hammel <jhammel@mozilla.com>
parents: 0
diff changeset
213 * http://k0s.org/hg/IntentMadeManifest/
Jeff Hammel <jhammel@mozilla.com>
parents: 0
diff changeset
214
Jeff Hammel <jhammel@mozilla.com>
parents: 0
diff changeset
215
45
149997b4c818 idea: embedded graphml
Jeff Hammel <jhammel@mozilla.com>
parents: 44
diff changeset
216 TODO
149997b4c818 idea: embedded graphml
Jeff Hammel <jhammel@mozilla.com>
parents: 44
diff changeset
217 ----
149997b4c818 idea: embedded graphml
Jeff Hammel <jhammel@mozilla.com>
parents: 44
diff changeset
218
149997b4c818 idea: embedded graphml
Jeff Hammel <jhammel@mozilla.com>
parents: 44
diff changeset
219 * a tool to take graphml embedded in a webpage (or other suitable
149997b4c818 idea: embedded graphml
Jeff Hammel <jhammel@mozilla.com>
parents: 44
diff changeset
220 format) and generate a graph in the chosen form (e.g. <img
149997b4c818 idea: embedded graphml
Jeff Hammel <jhammel@mozilla.com>
parents: 44
diff changeset
221 src="_generated_graph.png"/> or whatevr we can hammer into HTML
40
Jeff Hammel <jhammel@mozilla.com>
parents: 0
diff changeset
222
0
cfcfa093e4b4 initial commit
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
223 ----
cfcfa093e4b4 initial commit
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
224
cfcfa093e4b4 initial commit
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
225 Jeff Hammel
cfcfa093e4b4 initial commit
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
226
cfcfa093e4b4 initial commit
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
227 http://k0s.org/hg/WSGraph
cfcfa093e4b4 initial commit
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
228