|
4 | 4 |
|
5 | 5 | # Copyright (C) 2013 ISI Foundation
|
6 | 6 | # written by Ciro Cattuto <[email protected]>
|
| 7 | +# and Andre' Panisson <[email protected]> |
7 | 8 | #
|
8 | 9 | # This program is free software: you can redistribute it and/or modify
|
9 | 10 | # it under the terms of the GNU General Public License as published by
|
|
35 | 36 | ret = gdb.query(q="""START run=node(%d) MATCH run-[:RUN_FRAME]->frame WHERE frame.frame_id = %d RETURN frame""" % (RUN_ID, 8084), returns=client.Node)[0]
|
36 | 37 | FRAME_ID = ret[0]._get_id()
|
37 | 38 |
|
38 |
| -ret = gdb.query(q="""START run=node(%d) MATCH run-[:RUN_TAG]->tag WHERE tag.tag = %d RETURN tag""" % (RUN_ID, 1138), returns=client.Node)[0] |
39 |
| -TAG_ID = ret[0]._get_id() |
| 39 | +ret = gdb.query(q="""START run=node(%d) MATCH run-[:RUN_ACTOR]->actor WHERE actor.actor = %d RETURN actor""" % (RUN_ID, 1138), returns=client.Node)[0] |
| 40 | +ACTOR_ID = ret[0]._get_id() |
| 41 | +ACTOR1_ID = ACTOR_ID |
| 42 | + |
| 43 | +ret = gdb.query(q="""START run=node(%d) MATCH run-[:RUN_ACTOR]->actor WHERE actor.actor = %d RETURN actor""" % (RUN_ID, 1146), returns=client.Node)[0] |
| 44 | +ACTOR2_ID = ret[0]._get_id() |
| 45 | + |
| 46 | +ret = gdb.query(q="""START run=node(%d) MATCH run-[:HAS_TIMELINE]->()-[y:NEXT_LEVEL]->()-[m:NEXT_LEVEL]->()-[d:NEXT_LEVEL]->()-[h:NEXT_LEVEL]->hour WHERE d.day = 29 and h.hour = 10 |
| 47 | +RETURN hour""" % RUN_ID, returns=client.Node)[0] |
| 48 | +HOUR_ID = ret[0]._get_id() |
40 | 49 |
|
41 |
| -TAG1_ID = TAG_ID |
42 |
| -ret = gdb.query(q="""START run=node(%d) MATCH run-[:RUN_TAG]->tag WHERE tag.tag = %d RETURN tag""" % (RUN_ID, 1146), returns=client.Node)[0] |
43 |
| -TAG2_ID = ret[0]._get_id() |
44 | 50 |
|
45 | 51 | # =========================================
|
46 | 52 |
|
|
51 | 57 | RETURN frame ORDER BY frame.timestamp
|
52 | 58 | """ % RUN_NAME
|
53 | 59 |
|
| 60 | + |
54 | 61 | QUERY2 = """
|
55 | 62 | START frame = node(%d)
|
56 |
| -MATCH frame-[:FRAME_TAG]-tag |
57 |
| -RETURN tag.name |
| 63 | +MATCH frame-[:FRAME_ACTOR]-actor |
| 64 | +RETURN actor.name |
58 | 65 | """ % FRAME_ID
|
59 | 66 |
|
| 67 | + |
60 | 68 | QUERY3 = """
|
61 |
| -START frame=node(%s) |
62 |
| -MATCH frame-[r:FRAME_EDGE]-edge |
| 69 | +START frame = node(%s) |
| 70 | +MATCH frame-[r:FRAME_INTERACTION]-interaction |
63 | 71 | WHERE r.weight > %d
|
64 |
| -RETURN edge.tag1, edge.tag2, r.weight; |
| 72 | +RETURN interaction.actor1, interaction.actor2, r.weight; |
65 | 73 | """ % (FRAME_ID, 0)
|
66 | 74 |
|
| 75 | + |
67 | 76 | QUERY4 = """
|
68 | 77 | START run = node(%d)
|
69 |
| -MATCH run-[:RUN_TAG]->tag<-[r:FRAME_TAG]-() |
70 |
| -RETURN tag.name, count(r) |
| 78 | +MATCH run-[:RUN_ACTOR]->actor<-[r:FRAME_ACTOR]-() |
| 79 | +RETURN actor.name, count(r) |
71 | 80 | """ % RUN_ID
|
72 | 81 |
|
| 82 | + |
73 | 83 | QUERY5 = """
|
74 | 84 | START run = node(%d)
|
75 |
| -MATCH run-[:RUN_TAG]->tag<-[r:FRAME_TAG]-() |
76 |
| -WITH tag.name as name, COUNT(r) as freq |
| 85 | +MATCH run-[:RUN_ACTOR]->actor<-[r:FRAME_ACTOR]-() |
| 86 | +WITH actor.name as name, COUNT(r) as freq |
77 | 87 | WHERE freq > 1000
|
78 | 88 | RETURN name, freq ORDER BY freq DESC
|
79 | 89 | """ % RUN_ID
|
80 | 90 |
|
| 91 | + |
81 | 92 | QUERY5b = """
|
82 | 93 | START run = node(%d)
|
83 |
| -MATCH run-[:RUN_TAG]-tag |
84 |
| -WITH tag |
85 |
| -MATCH ()-[r:FRAME_TAG]-tag |
86 |
| -WITH tag.name as name, COUNT(r) as freq |
| 94 | +MATCH run-[:RUN_ACTOR]-actor |
| 95 | +WITH actor |
| 96 | +MATCH ()-[r:FRAME_ACTOR]-actor |
| 97 | +WITH actor.name as name, COUNT(r) as freq |
87 | 98 | WHERE freq > 1000
|
88 | 99 | RETURN name, freq ORDER BY freq DESC;
|
89 | 100 | """ % RUN_ID
|
90 | 101 |
|
| 102 | + |
91 | 103 | QUERY6 = """
|
92 |
| -START tag = node(%d) |
93 |
| -MATCH ()-[d:NEXT_LEVEL]->()-[:NEXT_LEVEL]->()-[:TIMELINE_INSTANCE]-()-[:FRAME_TAG]-tag |
| 104 | +START actor = node(%d) |
| 105 | +MATCH ()-[d:NEXT_LEVEL]->()-[:NEXT_LEVEL]->()-[:TIMELINE_INSTANCE]-()-[:FRAME_ACTOR]-actor |
94 | 106 | RETURN DISTINCT(d.day)
|
95 |
| -""" % TAG_ID |
| 107 | +""" % ACTOR_ID |
| 108 | + |
96 | 109 |
|
97 | 110 | QUERY6b = """
|
98 |
| -START tag = node(%d) |
99 |
| -MATCH frame-[:FRAME_TAG]-tag |
| 111 | +START actor = node(%d) |
| 112 | +MATCH frame-[:FRAME_ACTOR]-actor |
100 | 113 | RETURN DISTINCT(frame.day)
|
101 |
| -""" % TAG_ID |
| 114 | +""" % ACTOR_ID |
| 115 | + |
102 | 116 |
|
103 | 117 | QUERY7 = """
|
104 |
| -START tag1 = node(%d) |
105 |
| -MATCH tag1<-[:EDGE_TAG]-()-[:EDGE_TAG]->tag2 |
106 |
| -RETURN tag2.name ORDER BY tag2.name |
107 |
| -""" % TAG_ID |
| 118 | +START actor1 = node(%d) |
| 119 | +MATCH actor1<-[:INTERACTION_ACTOR]-()-[:INTERACTION_ACTOR]->actor2 |
| 120 | +RETURN actor2.name ORDER BY actor2.name |
| 121 | +""" % ACTOR_ID |
| 122 | + |
108 | 123 |
|
109 | 124 | QUERY8 = """
|
110 |
| -START tag1 = node(%d) |
111 |
| -MATCH tag1<-[:EDGE_TAG]-edge-[:EDGE_TAG]->tag2 |
112 |
| -WITH edge, tag2 |
113 |
| -MATCH ()-[d:NEXT_LEVEL]->()-[:NEXT_LEVEL]->()-[:TIMELINE_INSTANCE]-()-[:FRAME_EDGE]-edge |
| 125 | +START actor1 = node(%d) |
| 126 | +MATCH actor1<-[:INTERACTION_ACTOR]-interaction-[:INTERACTION_ACTOR]->actor2 |
| 127 | +WITH interaction, actor2 |
| 128 | +MATCH ()-[d:NEXT_LEVEL]->()-[:NEXT_LEVEL]->()-[:TIMELINE_INSTANCE]-()-[:FRAME_INTERACTION]-interaction |
114 | 129 | WHERE d.day = 7
|
115 |
| -RETURN DISTINCT(tag2.name) |
116 |
| -""" % TAG_ID |
| 130 | +RETURN DISTINCT(actor2.name) |
| 131 | +""" % ACTOR_ID |
| 132 | + |
117 | 133 |
|
118 | 134 | QUERY9 = """
|
119 |
| -START tag1 = node(%d), tag2 = node(%d) |
120 |
| -MATCH tag1<-[:EDGE_TAG]-()-[:EDGE_TAG]->tag |
121 |
| -WITH COLLECT(tag) as neighs1, tag2 |
122 |
| -MATCH tag2<-[:EDGE_TAG]-()-[:EDGE_TAG]->tag |
123 |
| -WHERE tag IN neighs1 |
124 |
| -RETURN tag |
125 |
| -""" % (TAG1_ID, TAG2_ID) |
| 135 | +START actor1 = node(%d), actor2 = node(%d) |
| 136 | +MATCH actor1<-[:INTERACTION_ACTOR]-()-[:INTERACTION_ACTOR]->actor |
| 137 | +WITH COLLECT(actor) as neighs1, actor2 |
| 138 | +MATCH actor2<-[:INTERACTION_ACTOR]-()-[:INTERACTION_ACTOR]->actor |
| 139 | +WHERE actor IN neighs1 |
| 140 | +RETURN actor |
| 141 | +""" % (ACTOR1_ID, ACTOR2_ID) |
| 142 | + |
126 | 143 |
|
127 | 144 | QUERY9b = """
|
128 |
| -START tag1 = node(%d), tag2 = node(%d) |
129 |
| -MATCH tag1<-[:EDGE_TAG]-()-[:EDGE_TAG]->tag<-[:EDGE_TAG]-()-[:EDGE_TAG]->tag2 |
130 |
| -RETURN tag |
131 |
| -""" % (TAG1_ID, TAG2_ID) |
| 145 | +START actor1 = node(%d), actor2 = node(%d) |
| 146 | +MATCH actor1<-[:INTERACTION_ACTOR]-()-[:INTERACTION_ACTOR]->actor<-[:INTERACTION_ACTOR]-()-[:INTERACTION_ACTOR]->actor2 |
| 147 | +RETURN actor |
| 148 | +""" % (ACTOR1_ID, ACTOR2_ID) |
| 149 | + |
132 | 150 |
|
133 | 151 | QUERY10 = """
|
134 | 152 | START run = node(%d)
|
135 |
| -MATCH run-[:RUN_TAG]-tag-[r:EDGE_TAG]-() |
136 |
| -RETURN tag.name, COUNT(r) ORDER BY COUNT(r) DESC |
| 153 | +MATCH run-[:RUN_ACTOR]-actor-[r:INTERACTION_ACTOR]-() |
| 154 | +RETURN actor.name, COUNT(r) ORDER BY COUNT(r) DESC |
137 | 155 | """ % RUN_ID
|
138 | 156 |
|
139 |
| -# get the tag focused network during the day 29, hour 10 |
140 | 157 |
|
141 | 158 | 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 |
| 159 | +START actor = node(%d) |
| 160 | +MATCH neigh1<-[:INTERACTION_ACTOR]-interaction1-[:INTERACTION_ACTOR]->actor, |
| 161 | + ()-[d1:NEXT_LEVEL]->()-[h1:NEXT_LEVEL]->()-[:TIMELINE_INSTANCE]-frame-[:FRAME_INTERACTION]-interaction1 |
145 | 162 | 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 |
| 163 | +WITH DISTINCT neigh1, actor |
| 164 | +MATCH neigh2<-[:INTERACTION_ACTOR]-interaction2-[:INTERACTION_ACTOR]->actor, |
| 165 | + ()-[d2:NEXT_LEVEL]->()-[h2:NEXT_LEVEL]->()-[:TIMELINE_INSTANCE]-frame-[:FRAME_INTERACTION]-interaction2 |
149 | 166 | WHERE d2.day = 29 and h2.hour = 10
|
150 | 167 | 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 |
| 168 | +MATCH neigh1<-[:INTERACTION_ACTOR]-interaction3-[:INTERACTION_ACTOR]->neigh2, |
| 169 | + ()-[d3:NEXT_LEVEL]->()-[h3:NEXT_LEVEL]->()-[:TIMELINE_INSTANCE]-frame-[:FRAME_INTERACTION]-interaction3 |
153 | 170 | WHERE d3.day = 29 and h3.hour = 10
|
154 |
| -RETURN distinct neigh1.tag, neigh2.tag ORDER BY neigh1.tag, neigh2.tag; |
155 |
| -""" % TAG_ID |
| 171 | +RETURN DISTINCT neigh1.actor, neigh2.actor ORDER BY neigh1.actor, neigh2.actor; |
| 172 | +""" % ACTOR_ID |
156 | 173 |
|
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 | 174 |
|
165 | 175 | 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) |
| 176 | +START actor = node(%d), hour = node(%d) |
| 177 | +MATCH neigh1<-[:INTERACTION_ACTOR]-interaction1-[:INTERACTION_ACTOR]->actor, |
| 178 | + hour-[:TIMELINE_INSTANCE]->frame-[:FRAME_INTERACTION]->interaction1 |
| 179 | +WITH DISTINCT hour, neigh1, actor |
| 180 | +MATCH neigh2<-[:INTERACTION_ACTOR]-interaction2-[:INTERACTION_ACTOR]->actor, |
| 181 | + hour-[:TIMELINE_INSTANCE]->frame-[:FRAME_INTERACTION]->interaction2 |
| 182 | +WITH DISTINCT hour, neigh1, neigh2 |
| 183 | +MATCH neigh1<-[:INTERACTION_ACTOR]-interaction3-[:INTERACTION_ACTOR]->neigh2, |
| 184 | + hour-[:TIMELINE_INSTANCE]->frame-[:FRAME_INTERACTION]->interaction3 |
| 185 | +RETURN DISTINCT neigh1.actor, neigh2.actor ORDER BY neigh1.actor, neigh2.actor; |
| 186 | +""" % (ACTOR_ID, HOUR_ID) |
| 187 | + |
177 | 188 |
|
178 | 189 | QUERY11c = """
|
179 |
| -START tag = node(%d) |
180 |
| -MATCH neigh1<-[:EDGE_TAG]-edge1-[:EDGE_TAG]->tag, |
181 |
| - frame1-[:FRAME_EDGE]->edge1 |
| 190 | +START actor = node(%d) |
| 191 | +MATCH neigh1<-[:INTERACTION_ACTOR]-interaction1-[:INTERACTION_ACTOR]->actor, |
| 192 | + frame1-[:FRAME_INTERACTION]->interaction1 |
182 | 193 | 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 |
| 194 | +WITH DISTINCT neigh1, actor |
| 195 | +MATCH neigh2<-[:INTERACTION_ACTOR]-interaction2-[:INTERACTION_ACTOR]->actor, |
| 196 | + frame2-[:FRAME_INTERACTION]->interaction2 |
186 | 197 | 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 |
| 198 | +WITH DISTINCT neigh1, neigh2 |
| 199 | +MATCH neigh1<-[:INTERACTION_ACTOR]-interaction3-[:INTERACTION_ACTOR]->neigh2, |
| 200 | + frame3-[:FRAME_INTERACTION]->interaction3 |
190 | 201 | 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 |
| - |
| 202 | +RETURN DISTINCT neigh1.actor, neigh2.actor ORDER BY neigh1.actor, neigh2.actor; |
| 203 | +""" % ACTOR_ID |
195 | 204 |
|
196 | 205 |
|
197 | 206 |
|
|
202 | 211 | ('QUERY10', QUERY10),
|
203 | 212 | ('QUERY11a', QUERY11a), ('QUERY11b', QUERY11b), ('QUERY11c', QUERY11c) ]
|
204 | 213 |
|
| 214 | + |
205 | 215 | # =========================================
|
206 | 216 |
|
207 | 217 | def time_query(gdb, query, N=10):
|
|
0 commit comments