Skip to content

Commit e75a0cd

Browse files
committed
New queries to extract tag neighborhood information
1 parent fe5c5b6 commit e75a0cd

File tree

1 file changed

+73
-3
lines changed

1 file changed

+73
-3
lines changed

cypher_query_timing.py

+73-3
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,12 @@
9494
RETURN DISTINCT(d.day)
9595
""" % TAG_ID
9696

97+
QUERY6b = """
98+
START tag = node(%d)
99+
MATCH frame-[:FRAME_TAG]-tag
100+
RETURN DISTINCT(frame.day)
101+
""" % TAG_ID
102+
97103
QUERY7 = """
98104
START tag1 = node(%d)
99105
MATCH tag1<-[:EDGE_TAG]-()-[:EDGE_TAG]->tag2
@@ -130,10 +136,71 @@
130136
RETURN tag.name, COUNT(r) ORDER BY COUNT(r) DESC
131137
""" % RUN_ID
132138

133-
QLIST = [('QUERY1', QUERY1), ('QUERY2', QUERY2), ('QUERY3', QUERY3), \
134-
('QUERY4', QUERY4), ('QUERY5', QUERY5), ('QUERY6', QUERY6), \
139+
# get the tag focused network during the day 29, hour 10
140+
141+
QUERY11a = """
142+
START tag = node(%d)
143+
MATCH neigh1<-[:EDGE_TAG]-edge1-[:EDGE_TAG]->tag,
144+
()-[d1:NEXT_LEVEL]->()-[h1:NEXT_LEVEL]->()-[:TIMELINE_INSTANCE]-frame-[:FRAME_EDGE]-edge1
145+
WHERE d1.day = 29 and h1.hour = 10
146+
WITH distinct neigh1, tag
147+
MATCH neigh2<-[:EDGE_TAG]-edge2-[:EDGE_TAG]->tag,
148+
()-[d2:NEXT_LEVEL]->()-[h2:NEXT_LEVEL]->()-[:TIMELINE_INSTANCE]-frame-[:FRAME_EDGE]-edge2
149+
WHERE d2.day = 29 and h2.hour = 10
150+
WITH distinct neigh2, neigh1
151+
MATCH neigh1<-[:EDGE_TAG]-edge3-[:EDGE_TAG]->neigh2,
152+
()-[d3:NEXT_LEVEL]->()-[h3:NEXT_LEVEL]->()-[:TIMELINE_INSTANCE]-frame-[:FRAME_EDGE]-edge3
153+
WHERE d3.day = 29 and h3.hour = 10
154+
RETURN distinct neigh1.tag, neigh2.tag ORDER BY neigh1.tag, neigh2.tag;
155+
""" % TAG_ID
156+
157+
ret = gdb.query(q="""
158+
START run = node(%d)
159+
MATCH run-[:HAS_TIMELINE]->()-[y:NEXT_LEVEL]->()-[m:NEXT_LEVEL]->()-[d:NEXT_LEVEL]->()-[h:NEXT_LEVEL]->hour
160+
WHERE d.day = 29 and h.hour = 10
161+
RETURN hour
162+
""" % RUN_ID, returns=client.Node)[0]
163+
HOUR_ID = ret[0]._get_id()
164+
165+
QUERY11b = """
166+
START tag = node(%d), hour = node(%d)
167+
MATCH neigh1<-[:EDGE_TAG]-edge1-[:EDGE_TAG]->tag,
168+
hour-[:TIMELINE_INSTANCE]->frame-[:FRAME_EDGE]->edge1
169+
WITH distinct hour, neigh1, tag
170+
MATCH neigh2<-[:EDGE_TAG]-edge2-[:EDGE_TAG]->tag,
171+
hour-[:TIMELINE_INSTANCE]->frame-[:FRAME_EDGE]->edge2
172+
WITH distinct hour, neigh1, neigh2
173+
MATCH neigh1<-[:EDGE_TAG]-edge3-[:EDGE_TAG]->neigh2,
174+
hour-[:TIMELINE_INSTANCE]->frame-[:FRAME_EDGE]->edge3
175+
RETURN distinct neigh1.tag, neigh2.tag ORDER BY neigh1.tag, neigh2.tag;
176+
""" % (TAG_ID, HOUR_ID)
177+
178+
QUERY11c = """
179+
START tag = node(%d)
180+
MATCH neigh1<-[:EDGE_TAG]-edge1-[:EDGE_TAG]->tag,
181+
frame1-[:FRAME_EDGE]->edge1
182+
WHERE frame1.day = 29 and frame1.hour = 10
183+
WITH distinct neigh1, tag
184+
MATCH neigh2<-[:EDGE_TAG]-edge2-[:EDGE_TAG]->tag,
185+
frame2-[:FRAME_EDGE]->edge2
186+
WHERE frame2.day = 29 and frame2.hour = 10
187+
WITH distinct neigh1, neigh2
188+
MATCH neigh1<-[:EDGE_TAG]-edge3-[:EDGE_TAG]->neigh2,
189+
frame3-[:FRAME_EDGE]->edge3
190+
WHERE frame3.day = 29 and frame3.hour = 10
191+
RETURN distinct neigh1.tag, neigh2.tag ORDER BY neigh1.tag, neigh2.tag;
192+
193+
""" % TAG_ID
194+
195+
196+
197+
198+
QLIST = [
199+
('QUERY1', QUERY1), ('QUERY2', QUERY2), ('QUERY3', QUERY3), \
200+
('QUERY4', QUERY4), ('QUERY5', QUERY5), ('QUERY6', QUERY6), ('QUERY6b', QUERY6b),\
135201
('QUERY7', QUERY7), ('QUERY8', QUERY8), ('QUERY9', QUERY9), \
136-
('QUERY10', QUERY10) ]
202+
('QUERY10', QUERY10),
203+
('QUERY11a', QUERY11a), ('QUERY11b', QUERY11b), ('QUERY11c', QUERY11c) ]
137204

138205
# =========================================
139206

@@ -147,6 +214,9 @@ def time_query(gdb, query, N=10):
147214
t2 = time.time()
148215

149216
tlist.append(t2-t1)
217+
218+
# sys.stdout.write(".")
219+
# sys.stdout.flush()
150220

151221
tlist.sort()
152222

0 commit comments

Comments
 (0)