Created
July 24, 2015 16:44
-
-
Save dkuppitz/79e0b009f0c9ae87db5a to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
graph = TinkerGraph.open() | |
graph.createIndex("name", Vertex.class) | |
g = graph.traversal() | |
// Query 1 | |
person1 = graph.addVertex(label, 'person', 'name', 'Michael Sherman') | |
person2 = graph.addVertex(label, 'person', 'name', 'Zoltan Varju') | |
person3 = graph.addVertex(label, 'person', 'name', 'Peter Neubauer') | |
person4 = graph.addVertex(label, 'person', 'name', 'Grace Andrews') | |
person5 = graph.addVertex(label, 'person', 'name', 'Michael Hunger') | |
person6 = graph.addVertex(label, 'person', 'name', 'Toby Craig') | |
person7 = graph.addVertex(label, 'person', 'name', 'Huston Hedinger') | |
person8 = graph.addVertex(label, 'person', 'name', 'Nigel Small') | |
person9 = graph.addVertex(label, 'person', 'name', 'Wes Freeman') | |
person10 = graph.addVertex(label, 'person', 'name', 'Luanne Misquitta') | |
person11 = graph.addVertex(label, 'person', 'name', 'shiv swami') | |
person12 = graph.addVertex(label, 'person', 'name', 'Pernilla Lindh') | |
person13 = graph.addVertex(label, 'person', 'name', 'Max De Marzi') | |
person14 = graph.addVertex(label, 'person', 'name', 'Chris Leishman') | |
person15 = graph.addVertex(label, 'person', 'name', 'Kenny Bastani') | |
movie1 = graph.addVertex(label, 'movie', 'name', 'Titanic') | |
movie2 = graph.addVertex(label, 'movie', 'name', 'Forrest Gump') | |
movie3 = graph.addVertex(label, 'movie', 'name', 'Mean Girls') | |
movie4 = graph.addVertex(label, 'movie', 'name', 'The Bourne Trilogy') | |
movie5 = graph.addVertex(label, 'movie', 'name', 'Jurassic Park') | |
movie6 = graph.addVertex(label, 'movie', 'name', 'The 40 Year Old Virgin') | |
movie7 = graph.addVertex(label, 'movie', 'name', 'Thank You for Smoking') | |
movie8 = graph.addVertex(label, 'movie', 'name', 'Happy Gilmore') | |
movie9 = graph.addVertex(label, 'movie', 'name', 'Knocked Up') | |
movie10 = graph.addVertex(label, 'movie', 'name', 'A Beautiful Mind') | |
movie11 = graph.addVertex(label, 'movie', 'name', 'Bridesmaids') | |
movie12 = graph.addVertex(label, 'movie', 'name', 'The Dark Knight Trilogy') | |
movie13 = graph.addVertex(label, 'movie', 'name', 'Charlie\'s Angels') | |
movie14 = graph.addVertex(label, 'movie', 'name', 'Avatar') | |
movie15 = graph.addVertex(label, 'movie', 'name', 'Children of Men') | |
movie16 = graph.addVertex(label, 'movie', 'name', 'Gladiator') | |
movie17 = graph.addVertex(label, 'movie', 'name', 'Shutter Island') | |
movie18 = graph.addVertex(label, 'movie', 'name', 'Forgetting Sarah Marshall') | |
movie19 = graph.addVertex(label, 'movie', 'name', 'Inception') | |
movie20 = graph.addVertex(label, 'movie', 'name', 'The Social Network') | |
movie21 = graph.addVertex(label, 'movie', 'name', 'Marley and Me') | |
movie22 = graph.addVertex(label, 'movie', 'name', 'Taken') | |
movie23 = graph.addVertex(label, 'movie', 'name', 'Pan\'s Labyrinth') | |
movie24 = graph.addVertex(label, 'movie', 'name', 'Inglourious Basterds') | |
movie25 = graph.addVertex(label, 'movie', 'name', 'The Ocean\'s Trilogy') | |
movie26 = graph.addVertex(label, 'movie', 'name', 'The Notebook') | |
movie27 = graph.addVertex(label, 'movie', 'name', 'The Devil Wears Prada') | |
movie28 = graph.addVertex(label, 'movie', 'name', 'The Truman Show') | |
movie29 = graph.addVertex(label, 'movie', 'name', 'WALL-E') | |
movie30 = graph.addVertex(label, 'movie', 'name', 'Paranormal Activity') | |
person1.addEdge('rated', movie1, 'rating', 4) | |
person1.addEdge('rated', movie2, 'rating', 3) | |
person1.addEdge('rated', movie3, 'rating', 8) | |
person1.addEdge('rated', movie5, 'rating', 8) | |
person1.addEdge('rated', movie6, 'rating', 6) | |
person1.addEdge('rated', movie8, 'rating', 6) | |
person1.addEdge('rated', movie9, 'rating', 4) | |
person1.addEdge('rated', movie12, 'rating', 7) | |
person1.addEdge('rated', movie14, 'rating', 5) | |
person1.addEdge('rated', movie16, 'rating', 2) | |
person1.addEdge('rated', movie20, 'rating', 9) | |
person1.addEdge('rated', movie27, 'rating', 4) | |
person1.addEdge('rated', movie28, 'rating', 9) | |
person1.addEdge('rated', movie29, 'rating', 10) | |
person2.addEdge('rated', movie1, 'rating', 3) | |
person2.addEdge('rated', movie2, 'rating', 8) | |
person2.addEdge('rated', movie5, 'rating', 7) | |
person2.addEdge('rated', movie6, 'rating', 5) | |
person2.addEdge('rated', movie7, 'rating', 8) | |
person2.addEdge('rated', movie9, 'rating', 6) | |
person2.addEdge('rated', movie10, 'rating', 8) | |
person2.addEdge('rated', movie13, 'rating', 7) | |
person2.addEdge('rated', movie16, 'rating', 5) | |
person2.addEdge('rated', movie24, 'rating', 9) | |
person2.addEdge('rated', movie25, 'rating', 9) | |
person2.addEdge('rated', movie27, 'rating', 7) | |
person2.addEdge('rated', movie28, 'rating', 2) | |
person3.addEdge('rated', movie1, 'rating', 8) | |
person3.addEdge('rated', movie2, 'rating', 10) | |
person3.addEdge('rated', movie3, 'rating', 7) | |
person3.addEdge('rated', movie4, 'rating', 9) | |
person3.addEdge('rated', movie5, 'rating', 8) | |
person3.addEdge('rated', movie6, 'rating', 5) | |
person3.addEdge('rated', movie7, 'rating', 8) | |
person3.addEdge('rated', movie8, 'rating', 7) | |
person3.addEdge('rated', movie9, 'rating', 7) | |
person3.addEdge('rated', movie10, 'rating', 9) | |
person3.addEdge('rated', movie11, 'rating', 5) | |
person3.addEdge('rated', movie12, 'rating', 7) | |
person3.addEdge('rated', movie13, 'rating', 3) | |
person3.addEdge('rated', movie14, 'rating', 10) | |
person3.addEdge('rated', movie15, 'rating', 7) | |
person3.addEdge('rated', movie16, 'rating', 9) | |
person3.addEdge('rated', movie17, 'rating', 7) | |
person3.addEdge('rated', movie18, 'rating', 5) | |
person3.addEdge('rated', movie19, 'rating', 8) | |
person3.addEdge('rated', movie20, 'rating', 3) | |
person3.addEdge('rated', movie21, 'rating', 4) | |
person3.addEdge('rated', movie22, 'rating', 6) | |
person3.addEdge('rated', movie23, 'rating', 9) | |
person3.addEdge('rated', movie24, 'rating', 8) | |
person3.addEdge('rated', movie25, 'rating', 7) | |
person3.addEdge('rated', movie26, 'rating', 5) | |
person3.addEdge('rated', movie27, 'rating', 2) | |
person3.addEdge('rated', movie28, 'rating', 4) | |
person3.addEdge('rated', movie29, 'rating', 8) | |
person3.addEdge('rated', movie30, 'rating', 5) | |
person4.addEdge('rated', movie1, 'rating', 8) | |
person4.addEdge('rated', movie2, 'rating', 9) | |
person4.addEdge('rated', movie3, 'rating', 7) | |
person4.addEdge('rated', movie4, 'rating', 9) | |
person4.addEdge('rated', movie5, 'rating', 8) | |
person4.addEdge('rated', movie6, 'rating', 6) | |
person4.addEdge('rated', movie8, 'rating', 7) | |
person4.addEdge('rated', movie9, 'rating', 6) | |
person4.addEdge('rated', movie10, 'rating', 8) | |
person4.addEdge('rated', movie11, 'rating', 8) | |
person4.addEdge('rated', movie12, 'rating', 9) | |
person4.addEdge('rated', movie13, 'rating', 7) | |
person4.addEdge('rated', movie14, 'rating', 7) | |
person4.addEdge('rated', movie15, 'rating', 10) | |
person4.addEdge('rated', movie16, 'rating', 9) | |
person4.addEdge('rated', movie17, 'rating', 9) | |
person4.addEdge('rated', movie18, 'rating', 5) | |
person4.addEdge('rated', movie19, 'rating', 10) | |
person4.addEdge('rated', movie20, 'rating', 7) | |
person4.addEdge('rated', movie21, 'rating', 7) | |
person4.addEdge('rated', movie26, 'rating', 6) | |
person4.addEdge('rated', movie27, 'rating', 9) | |
person4.addEdge('rated', movie28, 'rating', 7) | |
person5.addEdge('rated', movie2, 'rating', 10) | |
person5.addEdge('rated', movie5, 'rating', 8) | |
person5.addEdge('rated', movie12, 'rating', 6) | |
person5.addEdge('rated', movie13, 'rating', 10) | |
person5.addEdge('rated', movie14, 'rating', 6) | |
person5.addEdge('rated', movie16, 'rating', 4) | |
person5.addEdge('rated', movie19, 'rating', 8) | |
person5.addEdge('rated', movie20, 'rating', 5) | |
person5.addEdge('rated', movie25, 'rating', 7) | |
person6.addEdge('rated', movie1, 'rating', 7) | |
person6.addEdge('rated', movie2, 'rating', 8) | |
person6.addEdge('rated', movie4, 'rating', 7) | |
person6.addEdge('rated', movie5, 'rating', 8) | |
person6.addEdge('rated', movie16, 'rating', 9) | |
person6.addEdge('rated', movie23, 'rating', 10) | |
person6.addEdge('rated', movie24, 'rating', 8) | |
person6.addEdge('rated', movie25, 'rating', 6) | |
person6.addEdge('rated', movie28, 'rating', 8) | |
person6.addEdge('rated', movie29, 'rating', 8) | |
person6.addEdge('rated', movie30, 'rating', 9) | |
person7.addEdge('rated', movie1, 'rating', 8) | |
person7.addEdge('rated', movie2, 'rating', 9) | |
person7.addEdge('rated', movie3, 'rating', 4) | |
person7.addEdge('rated', movie4, 'rating', 9) | |
person7.addEdge('rated', movie5, 'rating', 9) | |
person7.addEdge('rated', movie6, 'rating', 9) | |
person7.addEdge('rated', movie7, 'rating', 9) | |
person7.addEdge('rated', movie8, 'rating', 7) | |
person7.addEdge('rated', movie9, 'rating', 7) | |
person7.addEdge('rated', movie10, 'rating', 8) | |
person7.addEdge('rated', movie11, 'rating', 9) | |
person7.addEdge('rated', movie12, 'rating', 9) | |
person7.addEdge('rated', movie13, 'rating', 5) | |
person7.addEdge('rated', movie14, 'rating', 9) | |
person7.addEdge('rated', movie15, 'rating', 6) | |
person7.addEdge('rated', movie16, 'rating', 8) | |
person7.addEdge('rated', movie18, 'rating', 8) | |
person7.addEdge('rated', movie19, 'rating', 7) | |
person7.addEdge('rated', movie20, 'rating', 7) | |
person7.addEdge('rated', movie22, 'rating', 9) | |
person7.addEdge('rated', movie25, 'rating', 8) | |
person7.addEdge('rated', movie26, 'rating', 9) | |
person7.addEdge('rated', movie28, 'rating', 6) | |
person7.addEdge('rated', movie29, 'rating', 9) | |
person8.addEdge('rated', movie1, 'rating', 5) | |
person8.addEdge('rated', movie2, 'rating', 9) | |
person8.addEdge('rated', movie4, 'rating', 10) | |
person8.addEdge('rated', movie5, 'rating', 8) | |
person8.addEdge('rated', movie12, 'rating', 10) | |
person8.addEdge('rated', movie13, 'rating', 9) | |
person8.addEdge('rated', movie14, 'rating', 7) | |
person8.addEdge('rated', movie19, 'rating', 6) | |
person8.addEdge('rated', movie22, 'rating', 10) | |
person8.addEdge('rated', movie24, 'rating', 10) | |
person8.addEdge('rated', movie25, 'rating', 9) | |
person9.addEdge('rated', movie1, 'rating', 8) | |
person9.addEdge('rated', movie2, 'rating', 8) | |
person9.addEdge('rated', movie4, 'rating', 9) | |
person9.addEdge('rated', movie5, 'rating', 9) | |
person9.addEdge('rated', movie6, 'rating', 9) | |
person9.addEdge('rated', movie9, 'rating', 8) | |
person9.addEdge('rated', movie10, 'rating', 8) | |
person9.addEdge('rated', movie13, 'rating', 7) | |
person9.addEdge('rated', movie14, 'rating', 9) | |
person9.addEdge('rated', movie19, 'rating', 7) | |
person9.addEdge('rated', movie20, 'rating', 8) | |
person9.addEdge('rated', movie21, 'rating', 8) | |
person9.addEdge('rated', movie22, 'rating', 8) | |
person9.addEdge('rated', movie23, 'rating', 7) | |
person9.addEdge('rated', movie25, 'rating', 7) | |
person9.addEdge('rated', movie27, 'rating', 7) | |
person9.addEdge('rated', movie29, 'rating', 9) | |
person10.addEdge('rated', movie1, 'rating', 3) | |
person10.addEdge('rated', movie2, 'rating', 5) | |
person10.addEdge('rated', movie3, 'rating', 5) | |
person10.addEdge('rated', movie4, 'rating', 8) | |
person10.addEdge('rated', movie5, 'rating', 7) | |
person10.addEdge('rated', movie9, 'rating', 3) | |
person10.addEdge('rated', movie10, 'rating', 9) | |
person10.addEdge('rated', movie11, 'rating', 5) | |
person10.addEdge('rated', movie12, 'rating', 7) | |
person10.addEdge('rated', movie13, 'rating', 9) | |
person10.addEdge('rated', movie14, 'rating', 10) | |
person10.addEdge('rated', movie16, 'rating', 8) | |
person10.addEdge('rated', movie20, 'rating', 8) | |
person10.addEdge('rated', movie24, 'rating', 9) | |
person10.addEdge('rated', movie25, 'rating', 9) | |
person10.addEdge('rated', movie26, 'rating', 5) | |
person10.addEdge('rated', movie27, 'rating', 9) | |
person10.addEdge('rated', movie29, 'rating', 9) | |
person11.addEdge('rated', movie1, 'rating', 10) | |
person11.addEdge('rated', movie2, 'rating', 10) | |
person11.addEdge('rated', movie3, 'rating', 5) | |
person11.addEdge('rated', movie4, 'rating', 7) | |
person11.addEdge('rated', movie5, 'rating', 9) | |
person11.addEdge('rated', movie6, 'rating', 5) | |
person11.addEdge('rated', movie7, 'rating', 5) | |
person11.addEdge('rated', movie8, 'rating', 6) | |
person11.addEdge('rated', movie9, 'rating', 7) | |
person11.addEdge('rated', movie10, 'rating', 10) | |
person11.addEdge('rated', movie11, 'rating', 7) | |
person11.addEdge('rated', movie12, 'rating', 9) | |
person11.addEdge('rated', movie13, 'rating', 8) | |
person11.addEdge('rated', movie14, 'rating', 10) | |
person11.addEdge('rated', movie15, 'rating', 7) | |
person11.addEdge('rated', movie16, 'rating', 7) | |
person11.addEdge('rated', movie17, 'rating', 7) | |
person11.addEdge('rated', movie18, 'rating', 7) | |
person11.addEdge('rated', movie19, 'rating', 6) | |
person11.addEdge('rated', movie20, 'rating', 9) | |
person11.addEdge('rated', movie21, 'rating', 7) | |
person11.addEdge('rated', movie22, 'rating', 8) | |
person11.addEdge('rated', movie23, 'rating', 7) | |
person11.addEdge('rated', movie24, 'rating', 8) | |
person11.addEdge('rated', movie25, 'rating', 7) | |
person11.addEdge('rated', movie26, 'rating', 8) | |
person11.addEdge('rated', movie27, 'rating', 7) | |
person11.addEdge('rated', movie28, 'rating', 9) | |
person11.addEdge('rated', movie29, 'rating', 9) | |
person11.addEdge('rated', movie30, 'rating', 7) | |
person12.addEdge('rated', movie1, 'rating', 5) | |
person12.addEdge('rated', movie2, 'rating', 10) | |
person12.addEdge('rated', movie3, 'rating', 8) | |
person12.addEdge('rated', movie4, 'rating', 5) | |
person12.addEdge('rated', movie5, 'rating', 10) | |
person12.addEdge('rated', movie6, 'rating', 4) | |
person12.addEdge('rated', movie7, 'rating', 10) | |
person12.addEdge('rated', movie8, 'rating', 5) | |
person12.addEdge('rated', movie9, 'rating', 5) | |
person12.addEdge('rated', movie10, 'rating', 10) | |
person12.addEdge('rated', movie11, 'rating', 5) | |
person12.addEdge('rated', movie12, 'rating', 10) | |
person12.addEdge('rated', movie13, 'rating', 5) | |
person12.addEdge('rated', movie14, 'rating', 10) | |
person12.addEdge('rated', movie15, 'rating', 9) | |
person12.addEdge('rated', movie16, 'rating', 10) | |
person12.addEdge('rated', movie17, 'rating', 7) | |
person12.addEdge('rated', movie18, 'rating', 5) | |
person12.addEdge('rated', movie19, 'rating', 5) | |
person12.addEdge('rated', movie20, 'rating', 7) | |
person12.addEdge('rated', movie21, 'rating', 10) | |
person12.addEdge('rated', movie22, 'rating', 7) | |
person12.addEdge('rated', movie23, 'rating', 10) | |
person12.addEdge('rated', movie24, 'rating', 8) | |
person12.addEdge('rated', movie25, 'rating', 8) | |
person12.addEdge('rated', movie26, 'rating', 10) | |
person12.addEdge('rated', movie27, 'rating', 5) | |
person12.addEdge('rated', movie28, 'rating', 9) | |
person12.addEdge('rated', movie29, 'rating', 7) | |
person12.addEdge('rated', movie30, 'rating', 3) | |
person13.addEdge('rated', movie1, 'rating', 7) | |
person13.addEdge('rated', movie2, 'rating', 10) | |
person13.addEdge('rated', movie3, 'rating', 7) | |
person13.addEdge('rated', movie4, 'rating', 8) | |
person13.addEdge('rated', movie5, 'rating', 9) | |
person13.addEdge('rated', movie6, 'rating', 4) | |
person13.addEdge('rated', movie7, 'rating', 6) | |
person13.addEdge('rated', movie8, 'rating', 3) | |
person13.addEdge('rated', movie9, 'rating', 7) | |
person13.addEdge('rated', movie10, 'rating', 9) | |
person13.addEdge('rated', movie11, 'rating', 4) | |
person13.addEdge('rated', movie12, 'rating', 7) | |
person13.addEdge('rated', movie13, 'rating', 6) | |
person13.addEdge('rated', movie14, 'rating', 6) | |
person13.addEdge('rated', movie15, 'rating', 9) | |
person13.addEdge('rated', movie16, 'rating', 9) | |
person13.addEdge('rated', movie17, 'rating', 8) | |
person13.addEdge('rated', movie18, 'rating', 7) | |
person13.addEdge('rated', movie19, 'rating', 8) | |
person13.addEdge('rated', movie20, 'rating', 5) | |
person13.addEdge('rated', movie21, 'rating', 4) | |
person13.addEdge('rated', movie22, 'rating', 4) | |
person13.addEdge('rated', movie23, 'rating', 10) | |
person13.addEdge('rated', movie24, 'rating', 7) | |
person13.addEdge('rated', movie25, 'rating', 10) | |
person13.addEdge('rated', movie26, 'rating', 8) | |
person13.addEdge('rated', movie27, 'rating', 8) | |
person13.addEdge('rated', movie28, 'rating', 10) | |
person13.addEdge('rated', movie29, 'rating', 10) | |
person13.addEdge('rated', movie30, 'rating', 9) | |
person14.addEdge('rated', movie1, 'rating', 5) | |
person14.addEdge('rated', movie2, 'rating', 8) | |
person14.addEdge('rated', movie4, 'rating', 8) | |
person14.addEdge('rated', movie5, 'rating', 2) | |
person14.addEdge('rated', movie7, 'rating', 10) | |
person14.addEdge('rated', movie9, 'rating', 9) | |
person14.addEdge('rated', movie10, 'rating', 9) | |
person14.addEdge('rated', movie13, 'rating', 8) | |
person14.addEdge('rated', movie14, 'rating', 7) | |
person14.addEdge('rated', movie15, 'rating', 9) | |
person14.addEdge('rated', movie16, 'rating', 8) | |
person14.addEdge('rated', movie19, 'rating', 9) | |
person14.addEdge('rated', movie20, 'rating', 6) | |
person14.addEdge('rated', movie22, 'rating', 7) | |
person14.addEdge('rated', movie24, 'rating', 9) | |
person14.addEdge('rated', movie25, 'rating', 7) | |
person14.addEdge('rated', movie27, 'rating', 5) | |
person14.addEdge('rated', movie28, 'rating', 6) | |
person14.addEdge('rated', movie29, 'rating', 7) | |
person15.addEdge('rated', movie1, 'rating', 8) | |
person15.addEdge('rated', movie2, 'rating', 10) | |
person15.addEdge('rated', movie3, 'rating', 4) | |
person15.addEdge('rated', movie4, 'rating', 5) | |
person15.addEdge('rated', movie5, 'rating', 6) | |
person15.addEdge('rated', movie6, 'rating', 7) | |
person15.addEdge('rated', movie7, 'rating', 8) | |
person15.addEdge('rated', movie8, 'rating', 8) | |
person15.addEdge('rated', movie9, 'rating', 6) | |
person15.addEdge('rated', movie10, 'rating', 10) | |
person15.addEdge('rated', movie11, 'rating', 10) | |
person15.addEdge('rated', movie12, 'rating', 9) | |
person15.addEdge('rated', movie13, 'rating', 4) | |
person15.addEdge('rated', movie14, 'rating', 10) | |
person15.addEdge('rated', movie15, 'rating', 5) | |
person15.addEdge('rated', movie16, 'rating', 9) | |
person15.addEdge('rated', movie17, 'rating', 5) | |
person15.addEdge('rated', movie18, 'rating', 10) | |
person15.addEdge('rated', movie19, 'rating', 8) | |
person15.addEdge('rated', movie20, 'rating', 8) | |
person15.addEdge('rated', movie21, 'rating', 5) | |
person15.addEdge('rated', movie22, 'rating', 6) | |
person15.addEdge('rated', movie23, 'rating', 5) | |
person15.addEdge('rated', movie24, 'rating', 8) | |
person15.addEdge('rated', movie25, 'rating', 7) | |
person15.addEdge('rated', movie26, 'rating', 9) | |
person15.addEdge('rated', movie27, 'rating', 10) | |
person15.addEdge('rated', movie28, 'rating', 10) | |
person15.addEdge('rated', movie29, 'rating', 9) | |
person15.addEdge('rated', movie30, 'rating', 8) | |
// Query 2 | |
g.V().has(label, 'person').has('name', 'Michael Sherman'). | |
outE('rated').as('r1').inV().as('m'). | |
inE('rated').as('r2').outV().has('name', 'Michael Hunger'). | |
select('m', 'r1', 'r2').by('name').by('rating').by('rating') | |
// Query 3 | |
g.V().match( | |
__.as("p1").outE("rated").as("r1"), | |
__.as("r1").inV().as("m"), | |
__.as("m").inE("rated").as("r2"), | |
__.as("r2").outV().as("p2") | |
).where("p1", neq("p2")). | |
group().by(select("p1","p2")). | |
by(select("r1","r2").by("rating")).unfold().as("kv"). | |
mapKeys().addOutE("p1", "similarity", "p2").as("e"). | |
sideEffect { | |
def r = it.path().get("kv").getValue() | |
def xyDotProduct = r.collect {it.r1*it.r2}.sum() | |
def xLength = Math.sqrt(r.collect {it.r1*it.r1}.sum()) | |
def yLength = Math.sqrt(r.collect {it.r2*it.r2}.sum()) | |
def similarity = xyDotProduct / (xLength * yLength) | |
it.get().property("similarity", similarity) | |
}.iterate() | |
// Query 4 | |
g.V().has(label, 'person').has('name', 'Michael Sherman'). | |
outE('similarity').as('s').inV().has('name', 'Michael Hunger'). | |
select('s').by('similarity') | |
// Query 5 | |
// pointless; just used for visualizations | |
// Query 6 | |
g.V().hasLabel("person").has("name", "Grace Andrews"). | |
outE("similarity").order().by("similarity", decr).limit(5).as("s").inV().as("p2"). | |
select("p2","s").by("name").by("similarity") | |
// Query 7 | |
g.V().has("name", "Zoltan Varju").match( | |
__.as("a").outE("similarity").as("s"), | |
__.as("s").inV().as("b"), | |
__.as("b").outE("rated").as("r"), | |
__.as("r").inV().as("m"), | |
__.not(__.as("a").out("rated").as("m"))).select("m","s","r").by("name").by("similarity").by("rating"). | |
group().by(select("m")).by(select("s","r")).by(unfold().order().by(select("s"), decr).limit(3).select("r").mean()). | |
order(local).by(valueDecr).by(keyIncr).next() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment