Thank you, Marko. Pipes++ looks interesting. I have to do more tests but I hope to find a way to acomplish my goal.
On Mon, Jul 25, 2011 at 10:40, Marko Rodriguez <okramma...@gmail.com> wrote: > Hi, > >>> Does that help you? Can you map that motif over to your problem? >> >> Thank you, I hope so. Maybe the best way is to get all the properties >> map in each vertex in order to be able to operate with those values in >> the next vertex. Is that possible? > > In that case do: > > gremlin> g.V.sideEffect{x = it.map()}.out.sideEffect{println x} > [name:marko, age:29] > ==>v[2] > [name:marko, age:29] > ==>v[3] > [name:marko, age:29] > ==>v[4] > [name:peter, age:35] > ==>v[3] > [name:josh, age:32] > ==>v[5] > [name:josh, age:32] > ==>v[3] > > In short, every vertex out of V is passed into sideEffect{}. The current > vertex's properties are saved to x as a HashMap. Then the outgoing related > vertices of that vertex are retrieved. There is a sideEffect again where you > can access your map in x from previous. > > Perhaps I'm misunderstanding your use case... Finally, you might want to > consider "aggregate" as a way to get all before processing the next step. > Check this: > > gremlin> x = [] > gremlin> g.V.aggregate(x).out.sideEffect{println x*.map()} > [[name:lop, lang:java], [name:vadas, age:27], [name:marko, age:29], > [name:peter, age:35], [name:ripple, lang:java], [name:josh, age:32]] > ==>v[2] > [[name:lop, lang:java], [name:vadas, age:27], [name:marko, age:29], > [name:peter, age:35], [name:ripple, lang:java], [name:josh, age:32]] > ==>v[3] > [[name:lop, lang:java], [name:vadas, age:27], [name:marko, age:29], > [name:peter, age:35], [name:ripple, lang:java], [name:josh, age:32]] > ==>v[4] > [[name:lop, lang:java], [name:vadas, age:27], [name:marko, age:29], > [name:peter, age:35], [name:ripple, lang:java], [name:josh, age:32]] > ==>v[3] > [[name:lop, lang:java], [name:vadas, age:27], [name:marko, age:29], > [name:peter, age:35], [name:ripple, lang:java], [name:josh, age:32]] > ==>v[5] > [[name:lop, lang:java], [name:vadas, age:27], [name:marko, age:29], > [name:peter, age:35], [name:ripple, lang:java], [name:josh, age:32]] > ==>v[3] > > In this way, x has ALL the maps of all the vertices coming out of V. x is an > ArrayList<HashMap>(). You can then do some sideEffect work on that > aggregation later in the path expression... Does that help? > >> My use case is a little particular. I'm writing a mini language to >> support ITL [1], which can work over Kripke structures [2] stored in a >> graph. So what I'm doing is a lexer and a grammar to translate ITL >> into Gremlin queries. > > Ah. You might wish to translate it directly to Pipes perhaps? In one week > (August 1st -- next round of TinkerPop releases), Pipes++ is coming out which > will make it very easy for anyone to emulate Gremlin behavior in any language > of their choosing. > > http://groups.google.com/group/gremlin-users/browse_thread/thread/a1a7092762d22e37 > Just a thought... > > See ya, > Marko. > > http://markorodriguez.com > _______________________________________________ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > -- Javier de la Rosa http://versae.es _______________________________________________ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user