Skip to content

Commit c17bfcd

Browse files
author
Mark Needham
committed
updated shortest path
1 parent 4d34ff5 commit c17bfcd

10 files changed

+203
-177
lines changed

generate_notebook.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,22 @@ def find_tag(file, tag):
1010
with urlopen(file) as pagerank_file:
1111
for line in pagerank_file.readlines():
1212
line = line.decode("utf-8")
13+
1314
if line.startswith("// tag::"):
1415
groups = re.match("// tag::(.*)\[\]", line)
1516
tag_name = groups[1]
17+
1618
if tag_name == tag:
1719
found_tag = True
1820
continue
21+
1922
if line.startswith("// end::"):
2023
groups = re.match("// end::(.*)\[\]", line)
2124
tag_name = groups[1]
2225
if tag_name == tag:
2326
found_tag = False
2427
continue
28+
2529
if found_tag:
2630
inner_text += "{0}".format(line)
2731
return inner_text.strip()
@@ -82,6 +86,7 @@ def find_tag(file, tag):
8286
"""
8387

8488
streaming_query_content = find_tag(cypher_file, stream_graph_tag)
89+
8590
run_algorithm = '''\
8691
streaming_query = """\
8792

generate_notebooks.sh

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,11 @@ python generate_notebook.py \
3333
"https://github.com/neo4j-contrib/neo4j-graph-algorithms/raw/3.2/doc/asciidoc/scripts/connected-components.cypher" \
3434
"weighted-stream-sample-graph"
3535

36+
python generate_notebook.py \
37+
"Strongly Connected Components" \
38+
"https://github.com/neo4j-contrib/neo4j-graph-algorithms/raw/3.2/doc/asciidoc/strongly-connected-components.adoc" \
39+
"https://github.com/neo4j-contrib/neo4j-graph-algorithms/raw/3.2/doc/asciidoc/scripts/strongly-connected-components.cypher"
40+
3641
python generate_notebook.py \
3742
"Louvain" \
3843
"https://github.com/neo4j-contrib/neo4j-graph-algorithms/raw/3.2/doc/asciidoc/louvain.adoc" \
@@ -86,3 +91,6 @@ jupyter nbconvert --execute --inplace notebooks/AllPairsShortestPath.ipynb
8691

8792
python empty.py
8893
jupyter nbconvert --execute --inplace notebooks/TriangleCounting.ipynb
94+
95+
python empty.py
96+
jupyter nbconvert --execute --inplace notebooks/StronglyConnectedComponents.ipynb

notebooks/AllPairsShortestPath.ipynb

Lines changed: 86 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -116,158 +116,158 @@
116116
" <thead>\n",
117117
" <tr style=\"text-align: right;\">\n",
118118
" <th></th>\n",
119-
" <th>sourceNodeId</th>\n",
120-
" <th>targetNodeId</th>\n",
119+
" <th>source</th>\n",
120+
" <th>target</th>\n",
121121
" <th>distance</th>\n",
122122
" </tr>\n",
123123
" </thead>\n",
124124
" <tbody>\n",
125125
" <tr>\n",
126126
" <th>0</th>\n",
127-
" <td>96</td>\n",
128-
" <td>96</td>\n",
127+
" <td>F</td>\n",
128+
" <td>F</td>\n",
129129
" <td>0.0</td>\n",
130130
" </tr>\n",
131131
" <tr>\n",
132132
" <th>1</th>\n",
133-
" <td>97</td>\n",
134-
" <td>97</td>\n",
135-
" <td>0.0</td>\n",
133+
" <td>B</td>\n",
134+
" <td>F</td>\n",
135+
" <td>90.0</td>\n",
136136
" </tr>\n",
137137
" <tr>\n",
138138
" <th>2</th>\n",
139-
" <td>97</td>\n",
140-
" <td>196</td>\n",
141-
" <td>40.0</td>\n",
139+
" <td>B</td>\n",
140+
" <td>B</td>\n",
141+
" <td>0.0</td>\n",
142142
" </tr>\n",
143143
" <tr>\n",
144144
" <th>3</th>\n",
145-
" <td>97</td>\n",
146-
" <td>197</td>\n",
147-
" <td>70.0</td>\n",
145+
" <td>B</td>\n",
146+
" <td>D</td>\n",
147+
" <td>40.0</td>\n",
148148
" </tr>\n",
149149
" <tr>\n",
150150
" <th>4</th>\n",
151-
" <td>97</td>\n",
152-
" <td>198</td>\n",
153-
" <td>110.0</td>\n",
151+
" <td>B</td>\n",
152+
" <td>E</td>\n",
153+
" <td>70.0</td>\n",
154154
" </tr>\n",
155155
" <tr>\n",
156156
" <th>5</th>\n",
157-
" <td>96</td>\n",
158-
" <td>97</td>\n",
157+
" <td>D</td>\n",
158+
" <td>F</td>\n",
159159
" <td>50.0</td>\n",
160160
" </tr>\n",
161161
" <tr>\n",
162162
" <th>6</th>\n",
163-
" <td>96</td>\n",
164-
" <td>195</td>\n",
165-
" <td>50.0</td>\n",
163+
" <td>D</td>\n",
164+
" <td>D</td>\n",
165+
" <td>0.0</td>\n",
166166
" </tr>\n",
167167
" <tr>\n",
168168
" <th>7</th>\n",
169-
" <td>96</td>\n",
170-
" <td>196</td>\n",
171-
" <td>50.0</td>\n",
169+
" <td>D</td>\n",
170+
" <td>E</td>\n",
171+
" <td>30.0</td>\n",
172172
" </tr>\n",
173173
" <tr>\n",
174174
" <th>8</th>\n",
175-
" <td>96</td>\n",
176-
" <td>197</td>\n",
177-
" <td>80.0</td>\n",
175+
" <td>A</td>\n",
176+
" <td>F</td>\n",
177+
" <td>140.0</td>\n",
178178
" </tr>\n",
179179
" <tr>\n",
180180
" <th>9</th>\n",
181-
" <td>96</td>\n",
182-
" <td>198</td>\n",
183-
" <td>120.0</td>\n",
181+
" <td>A</td>\n",
182+
" <td>A</td>\n",
183+
" <td>0.0</td>\n",
184184
" </tr>\n",
185185
" <tr>\n",
186186
" <th>10</th>\n",
187-
" <td>195</td>\n",
188-
" <td>195</td>\n",
189-
" <td>0.0</td>\n",
187+
" <td>A</td>\n",
188+
" <td>B</td>\n",
189+
" <td>50.0</td>\n",
190190
" </tr>\n",
191191
" <tr>\n",
192192
" <th>11</th>\n",
193-
" <td>195</td>\n",
194-
" <td>196</td>\n",
195-
" <td>40.0</td>\n",
193+
" <td>A</td>\n",
194+
" <td>C</td>\n",
195+
" <td>50.0</td>\n",
196196
" </tr>\n",
197197
" <tr>\n",
198198
" <th>12</th>\n",
199-
" <td>196</td>\n",
200-
" <td>196</td>\n",
201-
" <td>0.0</td>\n",
199+
" <td>A</td>\n",
200+
" <td>D</td>\n",
201+
" <td>90.0</td>\n",
202202
" </tr>\n",
203203
" <tr>\n",
204204
" <th>13</th>\n",
205-
" <td>195</td>\n",
206-
" <td>197</td>\n",
207-
" <td>70.0</td>\n",
205+
" <td>A</td>\n",
206+
" <td>E</td>\n",
207+
" <td>120.0</td>\n",
208208
" </tr>\n",
209209
" <tr>\n",
210210
" <th>14</th>\n",
211-
" <td>196</td>\n",
212-
" <td>197</td>\n",
213-
" <td>30.0</td>\n",
211+
" <td>E</td>\n",
212+
" <td>F</td>\n",
213+
" <td>20.0</td>\n",
214214
" </tr>\n",
215215
" <tr>\n",
216216
" <th>15</th>\n",
217-
" <td>195</td>\n",
218-
" <td>198</td>\n",
219-
" <td>110.0</td>\n",
217+
" <td>E</td>\n",
218+
" <td>E</td>\n",
219+
" <td>0.0</td>\n",
220220
" </tr>\n",
221221
" <tr>\n",
222222
" <th>16</th>\n",
223-
" <td>196</td>\n",
224-
" <td>198</td>\n",
225-
" <td>70.0</td>\n",
223+
" <td>C</td>\n",
224+
" <td>F</td>\n",
225+
" <td>90.0</td>\n",
226226
" </tr>\n",
227227
" <tr>\n",
228228
" <th>17</th>\n",
229-
" <td>198</td>\n",
230-
" <td>198</td>\n",
229+
" <td>C</td>\n",
230+
" <td>C</td>\n",
231231
" <td>0.0</td>\n",
232232
" </tr>\n",
233233
" <tr>\n",
234234
" <th>18</th>\n",
235-
" <td>197</td>\n",
236-
" <td>197</td>\n",
237-
" <td>0.0</td>\n",
235+
" <td>C</td>\n",
236+
" <td>D</td>\n",
237+
" <td>40.0</td>\n",
238238
" </tr>\n",
239239
" <tr>\n",
240240
" <th>19</th>\n",
241-
" <td>197</td>\n",
242-
" <td>198</td>\n",
243-
" <td>40.0</td>\n",
241+
" <td>C</td>\n",
242+
" <td>E</td>\n",
243+
" <td>70.0</td>\n",
244244
" </tr>\n",
245245
" </tbody>\n",
246246
"</table>\n",
247247
"</div>"
248248
],
249249
"text/plain": [
250-
" sourceNodeId targetNodeId distance\n",
251-
"0 96 96 0.0\n",
252-
"1 97 97 0.0\n",
253-
"2 97 196 40.0\n",
254-
"3 97 197 70.0\n",
255-
"4 97 198 110.0\n",
256-
"5 96 97 50.0\n",
257-
"6 96 195 50.0\n",
258-
"7 96 196 50.0\n",
259-
"8 96 197 80.0\n",
260-
"9 96 198 120.0\n",
261-
"10 195 195 0.0\n",
262-
"11 195 196 40.0\n",
263-
"12 196 196 0.0\n",
264-
"13 195 197 70.0\n",
265-
"14 196 197 30.0\n",
266-
"15 195 198 110.0\n",
267-
"16 196 198 70.0\n",
268-
"17 198 198 0.0\n",
269-
"18 197 197 0.0\n",
270-
"19 197 198 40.0"
250+
" source target distance\n",
251+
"0 F F 0.0\n",
252+
"1 B F 90.0\n",
253+
"2 B B 0.0\n",
254+
"3 B D 40.0\n",
255+
"4 B E 70.0\n",
256+
"5 D F 50.0\n",
257+
"6 D D 0.0\n",
258+
"7 D E 30.0\n",
259+
"8 A F 140.0\n",
260+
"9 A A 0.0\n",
261+
"10 A B 50.0\n",
262+
"11 A C 50.0\n",
263+
"12 A D 90.0\n",
264+
"13 A E 120.0\n",
265+
"14 E F 20.0\n",
266+
"15 E E 0.0\n",
267+
"16 C F 90.0\n",
268+
"17 C C 0.0\n",
269+
"18 C D 40.0\n",
270+
"19 C E 70.0"
271271
]
272272
},
273273
"execution_count": 4,
@@ -281,7 +281,12 @@
281281
"YIELD sourceNodeId, targetNodeId, distance\n",
282282
"WITH sourceNodeId, targetNodeId, distance \n",
283283
"WHERE algo.isFinite(distance) = true\n",
284-
"RETURN sourceNodeId, targetNodeId, distance LIMIT 20\n",
284+
"\n",
285+
"MATCH (source:Loc) WHERE id(source) = sourceNodeId\n",
286+
"MATCH (target:Loc) WHERE id(target) = targetNodeId\n",
287+
"\n",
288+
"RETURN source.name AS source, target.name AS target, distance\n",
289+
"LIMIT 20\n",
285290
"\"\"\"\n",
286291
"\n",
287292
"with driver.session() as session:\n",

notebooks/BetweennessCentrality.ipynb

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -125,32 +125,32 @@
125125
" <tbody>\n",
126126
" <tr>\n",
127127
" <th>0</th>\n",
128-
" <td>187</td>\n",
128+
" <td>83</td>\n",
129129
" <td>4.0</td>\n",
130130
" </tr>\n",
131131
" <tr>\n",
132132
" <th>1</th>\n",
133-
" <td>110</td>\n",
133+
" <td>85</td>\n",
134134
" <td>2.0</td>\n",
135135
" </tr>\n",
136136
" <tr>\n",
137137
" <th>2</th>\n",
138-
" <td>111</td>\n",
138+
" <td>84</td>\n",
139139
" <td>0.0</td>\n",
140140
" </tr>\n",
141141
" <tr>\n",
142142
" <th>3</th>\n",
143-
" <td>112</td>\n",
143+
" <td>86</td>\n",
144144
" <td>0.0</td>\n",
145145
" </tr>\n",
146146
" <tr>\n",
147147
" <th>4</th>\n",
148-
" <td>113</td>\n",
148+
" <td>203</td>\n",
149149
" <td>0.0</td>\n",
150150
" </tr>\n",
151151
" <tr>\n",
152152
" <th>5</th>\n",
153-
" <td>188</td>\n",
153+
" <td>204</td>\n",
154154
" <td>0.0</td>\n",
155155
" </tr>\n",
156156
" </tbody>\n",
@@ -159,12 +159,12 @@
159159
],
160160
"text/plain": [
161161
" nodeId centrality\n",
162-
"0 187 4.0\n",
163-
"1 110 2.0\n",
164-
"2 111 0.0\n",
165-
"3 112 0.0\n",
166-
"4 113 0.0\n",
167-
"5 188 0.0"
162+
"0 83 4.0\n",
163+
"1 85 2.0\n",
164+
"2 84 0.0\n",
165+
"3 86 0.0\n",
166+
"4 203 0.0\n",
167+
"5 204 0.0"
168168
]
169169
},
170170
"execution_count": 4,

0 commit comments

Comments
 (0)