[ https://issues.apache.org/jira/browse/TINKERPOP-1234?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15215969#comment-15215969 ]
Daniel Kuppitz commented on TINKERPOP-1234: ------------------------------------------- Looks very good. IntelliJ's debugger was making fun of me, but switching to {{System.out.println}} debugging solved all problems. Good stuff. Question: Do we want {{CollaborativeFilterVertexProgram}} be part of TinkerPop? Here's how it looks: {code} final Graph graph = TinkerFactory.createModern(); graph.vertices(1).next().addEdge("created", graph.vertices(5).next()); final GraphTraversalSource g = graph.traversal().withComputer(); g.V().as("a").out("created").in("created").where(neq("a")). program(CollaborativeFilterVertexProgram.build().from("a").limit(10).property("cf").create(graph)). dedup().valueMap().forEachRemaining(System.out::println); {code} Result: {noformat} {cf=[{4=2, 6=1}], name=[marko], age=[29]} {cf=[{1=1, 4=1}], name=[peter], age=[35]} {cf=[{1=2, 6=1}], name=[josh], age=[32]} {noformat} The {{cf}} property contains a map of the 10 highest weighted co-workers of each person (map key is the id of the other person, map value is the count / weight): * marko's co-workers: josh (id: 4, weight: 2), peter (id: 6, weight: 1) * peter's co-workers: marko (id: 1, weight: 1), josh (id: 4, weight: 1) * josh's co-workers: marko (id: 1, weight: 2), peter (id: 6, weight: 1) > program() step that takes arbitrary vertex programs > --------------------------------------------------- > > Key: TINKERPOP-1234 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1234 > Project: TinkerPop > Issue Type: Improvement > Components: process > Affects Versions: 3.2.0-incubating > Reporter: Daniel Kuppitz > Assignee: Marko A. Rodriguez > > In 3.2 VertexPrograms like {{PageRankVertexProgram}} will have a dedicated > step that allows to do things like {{g.V().out().out().pageRank()}}. Would be > nice to have a general step {{program()}}, so that we can do the same thing > with any {{VertexProgam}}, e.g. > {code} > // pre-calculate "users who bought this, also bought" and create uwbt-edges > for the top 100 results per vertex > g.V().as("a").in("bought").out("bought").where(neq("a")).as("b").select("a","b"). > > program(CollaborativeFilterVertexProgram.build().source("a").target("b").limit(100).edgeLabel("uwbt").weightProperty("weight").create()) > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)