Skip to content

Instantly share code, notes, and snippets.

@andrewsalveson
Last active November 10, 2015 17:58
Show Gist options
  • Save andrewsalveson/cea9565efbd3b754f6f2 to your computer and use it in GitHub Desktop.
Save andrewsalveson/cea9565efbd3b754f6f2 to your computer and use it in GitHub Desktop.
Room paths

Room paths

 CREATE (n318080:Room{id : 'n318080', name:'North Hall'})
 CREATE (n318086:Room{id : 'n318086', name:'Hall'})
 CREATE (n321616:Room{id : 'n321616', name:'Commons W'})
 CREATE (n317880:Room{id : 'n317880', name:'Art'})
 CREATE (n317886:Room{id : 'n317886', name:'Art'})
 CREATE (n321622:Room{id : 'n321622', name:'Commons E'})
 CREATE (n317868:Room{id : 'n317868', name:'Classroom'})
 CREATE (n320919:Room{id : 'n320919', name:'Nurse'})
 CREATE (n321613:Room{id : 'n321613', name:'Commons N'})
 CREATE (n317913:Room{id : 'n317913', name:'Special Ed'})
 CREATE (n320917:Room{id : 'n320917', name:'Resource'})
 CREATE (n318089:Room{id : 'n318089', name:'Hall'})
 CREATE (n318092:Room{id : 'n318092', name:'Hall'})
 CREATE (n317895:Room{id : 'n317895', name:'Library'})
 CREATE (n317853:Room{id : 'n317853', name:'Classroom'})
 CREATE (n317859:Room{id : 'n317859', name:'Classroom'})
 CREATE (n317862:Room{id : 'n317862', name:'Classroom'})
 CREATE (n318508:Room{id : 'n318508', name:'XS'})
 CREATE (n318502:Room{id : 'n318502', name:'XN'})
 CREATE (n317898:Room{id : 'n317898', name:'Main Office'})
 CREATE (n317901:Room{id : 'n317901', name:'Break'})
 CREATE (n321619:Room{id : 'n321619', name:'Commons S'})
 CREATE (n318083:Room{id : 'n318083', name:'Commons'})
 CREATE (n316926:SingleFlush{id : 'n316926', name:'1'})
 CREATE (n316978:SingleFlush{id : 'n316978', name:'2'})
 CREATE (n317003:SingleFlush{id : 'n317003', name:'3'})
 CREATE (n317043:SingleFlush{id : 'n317043', name:'4'})
 CREATE (n317073:SingleFlush{id : 'n317073', name:'5'})
 CREATE (n317127:SingleFlush{id : 'n317127', name:'6'})
 CREATE (n317167:SingleFlush{id : 'n317167', name:'7'})
 CREATE (n317191:SingleFlush{id : 'n317191', name:'8'})
 CREATE (n317254:SingleFlush{id : 'n317254', name:'9'})
 CREATE (n317291:SingleFlush{id : 'n317291', name:'10'})
 CREATE (n317325:SingleFlush{id : 'n317325', name:'11'})
 CREATE (n317356:SingleFlush{id : 'n317356', name:'12'})
 CREATE (n317396:SingleFlush{id : 'n317396', name:'13'})
 CREATE (n317414:SingleFlush{id : 'n317414', name:'14'})
 CREATE (n317533:SingleFlush{id : 'n317533', name:'18'})
 CREATE (n317569:SingleFlush{id : 'n317569', name:'19'})
 CREATE (n317590:SingleFlush{id : 'n317590', name:'20'})
 CREATE (n317608:SingleFlush{id : 'n317608', name:'21'})
 CREATE (n317626:SingleFlush{id : 'n317626', name:'22'})
 CREATE (n317653:SingleFlush{id : 'n317653', name:'23'})
 CREATE (n317703:SingleFlush{id : 'n317703', name:'24'})
 CREATE (n317721:SingleFlush{id : 'n317721', name:'25'})
 CREATE (n317732:SingleFlush{id : 'n317732', name:'X4'})
 CREATE (n317764:SingleFlush{id : 'n317764', name:'X3'})
 CREATE (n317805:SingleFlush{id : 'n317805', name:'X2'})
 CREATE (n317818:SingleFlush{id : 'n317818', name:'X1'})
 CREATE (n318098:Egress{id : 'n318098', name:'X9'})
 CREATE (n318521:Egress{id : 'n318521', name:'X8'})
 CREATE (n318537:Egress{id : 'n318537', name:'X7'})
 CREATE (n318557:Egress{id : 'n318557', name:'X6'})
 CREATE (n318567:Egress{id : 'n318567', name:'X5'})
 CREATE (n319046:OPEN{id : 'n319046', name:'O6'})
 CREATE (n319059:OPEN{id : 'n319059', name:'O7'})
 CREATE (n319085:OPEN{id : 'n319085', name:'O8'})
 CREATE (n319110:OPEN{id : 'n319110', name:'O5'})
 CREATE (n319452:SingleFlush{id : 'n319452', name:'39'})
 CREATE (n319516:SingleFlush{id : 'n319516', name:'40'})
 CREATE (n319583:SingleFlush{id : 'n319583', name:'41'})
 CREATE (n319614:OPEN{id : 'n319614', name:'O4'})
 CREATE (n319636:OPEN{id : 'n319636', name:'O3'})
 CREATE (n319647:OPEN{id : 'n319647', name:'O2'})
 CREATE (n319666:OPEN{id : 'n319666', name:'O1'})
 CREATE (n320916:SingleFlush{id : 'n320916', name:'46'})
 CREATE (n321005:SingleFlush{id : 'n321005', name:'47'})
 CREATE (n321525:OPEN{id : 'n321525', name:'X10'})
 CREATE (n321542:OPEN{id : 'n321542', name:'X11'})
 CREATE (n321568:OPEN{id : 'n321568', name:'X12'})
 CREATE (n321583:OPEN{id : 'n321583', name:'X13'})
 CREATE (n321633:OPEN{id : 'n321633', name:'X14'})
 CREATE (n321665:OPEN{id : 'n321665', name:'X15'})
 CREATE (n321675:OPEN{id : 'n321675', name:'X16'})
 CREATE (n321686:OPEN{id : 'n321686', name:'X17'})
 CREATE (n317883:Room{id : 'n317883', name:'Room'})
 CREATE (n317871:Room{id : 'n317871', name:'Office'})
 CREATE (n317874:Room{id : 'n317874', name:'Office'})
 CREATE (n317877:Room{id : 'n317877', name:'Office'})
 CREATE (n317865:Room{id : 'n317865', name:'Team'})
 CREATE (n317856:Room{id : 'n317856', name:'Team'})
 CREATE (n317910:Room{id : 'n317910', name:'Special Ed'})
 CREATE (n317892:Room{id : 'n317892', name:'Mens'})
 CREATE (n317889:Room{id : 'n317889', name:'Music'})
 CREATE (n318505:Room{id : 'n318505', name:'XE'})
 CREATE (n318511:Room{id : 'n318511', name:'XW'})
 CREATE (n319485:Room{id : 'n319485', name:'Womens'})
 CREATE (n318080)-[:TO{distance:19.8550083320}]->(n316926)
 CREATE (n318080)-[:TO{distance:9.49520172835}]->(n316978)
 CREATE (n318086)-[:TO{distance:15.3582226086}]->(n317003)
 CREATE (n321616)-[:TO{distance:13.3955187297}]->(n317043)
 CREATE (n317880)-[:TO{distance:12.8173971333}]->(n317073)
 CREATE (n317886)-[:TO{distance:12.8173971333}]->(n317127)
 CREATE (n321616)-[:TO{distance:20.7362836143}]->(n317167)
 CREATE (n321622)-[:TO{distance:20.8916041926}]->(n317191)
 CREATE (n317868)-[:TO{distance:18.2912210067}]->(n317254)
 CREATE (n317868)-[:TO{distance:15.7575390621}]->(n317291)
 CREATE (n317868)-[:TO{distance:24.4999974533}]->(n317325)
 CREATE (n321616)-[:TO{distance:15.4738463880}]->(n317356)
 CREATE (n318080)-[:TO{distance:14.4984733976}]->(n317396)
 CREATE (n320919)-[:TO{distance:11.7941688502}]->(n317414)
 CREATE (n321613)-[:TO{distance:10.1692744599}]->(n317533)
 CREATE (n318080)-[:TO{distance:7.96950578949}]->(n317569)
 CREATE (n318080)-[:TO{distance:8.07258746389}]->(n317590)
 CREATE (n317913)-[:TO{distance:15.2468074396}]->(n317608)
 CREATE (n320917)-[:TO{distance:9.90508383857}]->(n317626)
 CREATE (n321622)-[:TO{distance:20.6939737253}]->(n317653)
 CREATE (n321622)-[:TO{distance:13.7307743598}]->(n317703)
 CREATE (n318089)-[:TO{distance:17.5733306639}]->(n317721)
 CREATE (n318086)-[:TO{distance:20.2910464046}]->(n317732)
 CREATE (n318089)-[:TO{distance:20.2910464046}]->(n317764)
 CREATE (n318092)-[:TO{distance:14.7844464465}]->(n317805)
 CREATE (n318080)-[:TO{distance:23.6988209892}]->(n317818)
 CREATE (n317895)-[:TO{distance:29.0357863720}]->(n318098)
 CREATE (n317853)-[:TO{distance:23.3767859528}]->(n318521)
 CREATE (n317859)-[:TO{distance:22.4337754679}]->(n318537)
 CREATE (n317862)-[:TO{distance:23.1111916956}]->(n318557)
 CREATE (n317868)-[:TO{distance:23.8822425984}]->(n318567)
 CREATE (n318508)-[:TO{distance:85.1529669347}]->(n319046)
 CREATE (n318502)-[:TO{distance:93.3386903225}]->(n319059)
 CREATE (n318502)-[:TO{distance:93.3386903225}]->(n319085)
 CREATE (n318508)-[:TO{distance:84.8274392189}]->(n319110)
 CREATE (n321622)-[:TO{distance:20.8081908304}]->(n319452)
 CREATE (n317898)-[:TO{distance:14.1603673152}]->(n319516)
 CREATE (n317901)-[:TO{distance:17.2781825072}]->(n319583)
 CREATE (n321616)-[:TO{distance:21.6206007319}]->(n319614)
 CREATE (n321616)-[:TO{distance:21.6206007319}]->(n319636)
 CREATE (n321622)-[:TO{distance:21.2756686443}]->(n319647)
 CREATE (n321622)-[:TO{distance:19.2200206574}]->(n319666)
 CREATE (n320917)-[:TO{distance:8.84388030754}]->(n320916)
 CREATE (n317898)-[:TO{distance:15.3823017223}]->(n321005)
 CREATE (n321616)-[:TO{distance:19.0058676111}]->(n321525)
 CREATE (n321616)-[:TO{distance:17.9404497246}]->(n321542)
 CREATE (n321619)-[:TO{distance:16.7683013385}]->(n321568)
 CREATE (n321622)-[:TO{distance:18.7534236848}]->(n321583)
 CREATE (n321616)-[:TO{distance:13.0382998063}]->(n321633)
 CREATE (n318083)-[:TO{distance:8.86354895062}]->(n321665)
 CREATE (n318083)-[:TO{distance:8.80695747690}]->(n321675)
 CREATE (n318083)-[:TO{distance:16.7630546142}]->(n321686)
 CREATE (n316926)-[:TO{distance:23.0548928960}]->(n317859)
 CREATE (n316978)-[:TO{distance:23.0614653580}]->(n317853)
 CREATE (n317003)-[:TO{distance:23.0280160756}]->(n317868)
 CREATE (n317043)-[:TO{distance:22.9613067193}]->(n317862)
 CREATE (n317073)-[:TO{distance:10.0168452735}]->(n317883)
 CREATE (n317127)-[:TO{distance:10.0168452735}]->(n317883)
 CREATE (n317167)-[:TO{distance:21.0657576754}]->(n317880)
 CREATE (n317191)-[:TO{distance:21.0657576754}]->(n317886)
 CREATE (n317254)-[:TO{distance:10.1796365358}]->(n317871)
 CREATE (n317291)-[:TO{distance:11.4945639326}]->(n317874)
 CREATE (n317325)-[:TO{distance:10.5415843212}]->(n317877)
 CREATE (n317356)-[:TO{distance:8.83883476483}]->(n317865)
 CREATE (n317396)-[:TO{distance:8.83883476483}]->(n317856)
 CREATE (n317414)-[:TO{distance:15.9482358966}]->(n317901)
 CREATE (n317533)-[:TO{distance:9.19651771683}]->(n317898)
 CREATE (n317569)-[:TO{distance:15.2468074396}]->(n317910)
 CREATE (n317590)-[:TO{distance:15.2468074396}]->(n317913)
 CREATE (n317608)-[:TO{distance:17.4306116946}]->(n317901)
 CREATE (n317626)-[:TO{distance:16.2176723015}]->(n317901)
 CREATE (n317653)-[:TO{distance:29.0357863720}]->(n317895)
 CREATE (n317703)-[:TO{distance:15.0502279774}]->(n317892)
 CREATE (n317721)-[:TO{distance:21.6796141288}]->(n317889)
 CREATE (n317732)-[:TO{distance:51.3688324224}]->(n318508)
 CREATE (n317764)-[:TO{distance:60.3027809347}]->(n318508)
 CREATE (n317805)-[:TO{distance:66.4207820362}]->(n318505)
 CREATE (n317818)-[:TO{distance:65.6360440442}]->(n318502)
 CREATE (n318098)-[:TO{distance:93.1988614618}]->(n318502)
 CREATE (n318521)-[:TO{distance:70.8206368770}]->(n318511)
 CREATE (n318537)-[:TO{distance:57.9367223984}]->(n318511)
 CREATE (n318557)-[:TO{distance:57.0728432393}]->(n318511)
 CREATE (n318567)-[:TO{distance:67.2306262359}]->(n318511)
 CREATE (n319046)-[:TO{distance:98.5138965926}]->(n318511)
 CREATE (n319059)-[:TO{distance:75.2749229901}]->(n318511)
 CREATE (n319085)-[:TO{distance:82.9930764912}]->(n318505)
 CREATE (n319110)-[:TO{distance:105.043144583}]->(n318505)
 CREATE (n319452)-[:TO{distance:15.2337837971}]->(n319485)
 CREATE (n319516)-[:TO{distance:9.47650280767}]->(n320917)
 CREATE (n319583)-[:TO{distance:28.7243878647}]->(n317895)
 CREATE (n319614)-[:TO{distance:23.3756406246}]->(n318080)
 CREATE (n319636)-[:TO{distance:19.9706816783}]->(n318086)
 CREATE (n319647)-[:TO{distance:19.9713771301}]->(n318089)
 CREATE (n319666)-[:TO{distance:14.4745966952}]->(n318092)
 CREATE (n320916)-[:TO{distance:12.1026102470}]->(n320919)
 CREATE (n321005)-[:TO{distance:11.7452604145}]->(n320919)
 CREATE (n321525)-[:TO{distance:16.7638702407}]->(n321613)
 CREATE (n321542)-[:TO{distance:16.7882509398}]->(n321619)
 CREATE (n321568)-[:TO{distance:17.4494181335}]->(n321622)
 CREATE (n321583)-[:TO{distance:16.7836179110}]->(n321613)
 CREATE (n321633)-[:TO{distance:16.7630546142}]->(n318083)
 CREATE (n321665)-[:TO{distance:7.87387909263}]->(n321613)
 CREATE (n321675)-[:TO{distance:8.13690406982}]->(n321619)
 CREATE (n321686)-[:TO{distance:11.8660938139}]->(n321622)
 RETURN *

Find the shortest path between two rooms

MATCH (origin:Room{ name:"Special Ed" }),(destination:Room { name:"Mens" })
MATCH p=(origin)-[r*..8]-(destination)
WITH p, reduce(dist = 0, x IN r | dist + x.distance) AS totalDistance, length(p) as len
RETURN extract(n IN nodes(p)| n.name) AS rooms, totalDistance, len
ORDER BY totalDistance
LIMIT 5

Find the path from a room to an exterior door (Egress, X in the name)

MATCH (origin:Room { name:"Nurse" }),(destination:Egress)
WHERE destination.name =~ 'X.*'
MATCH p=(origin)-[r*..8]-(destination)
WITH p, reduce(dist = 0, x IN r | dist + x.distance) AS totalDistance, length(p) AS len
RETURN extract(n IN nodes(p)| n.name) AS rooms, totalDistance, len
ORDER BY totalDistance
LIMIT 5
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment