> > If your versions are not consistent then this may be the reason why you're > traversals in Gremlin REPL are working, but not in Gremlin Plugin (for > example). > > This was indeed the case for me, I compared the Gremlin version 1.3 locally to 1.1 in the webconsole. Thanks for pointing this out.
Cheers, Jeroen > HTH, > Marko. > > http://markorodriguez.com > > On Nov 8, 2011, at 8:52 AM, Peter Neubauer wrote: > > > Hi all (and Romiko), > > it might be that this issue, as Romikos, is confusion about the use of > > the {}. In Gremlin 1.3, you have to explicitly use filter{} in order > > to do this, see https://github.com/neo4j/gremlin-plugin/issues/3 for > > an example. > > > > I have locally comitted a documentation example for this, but I am > > waiting for the release to finish before pushing it. Could you try > > this? > > > > Cheers, > > > > /peter neubauer > > > > GTalk: neubauer.peter > > Skype peter.neubauer > > Phone +46 704 106975 > > LinkedIn http://www.linkedin.com/in/neubauer > > Twitter http://twitter.com/peterneubauer > > > > http://www.neo4j.org - NOSQL for the Enterprise. > > http://startupbootcamp.org/ - Öresund - Innovation happens HERE. > > > > > > > > On Tue, Nov 8, 2011 at 11:43 AM, Peter Neubauer > > <peter.neuba...@neotechnology.com> wrote: > >> Yup, > >> I have at least Tathams issue to start with. Will report back and see > if it > >> solves this one too. Feel free to add this example to the issue on the > >> Gremlin plugin. > >> > >> On Nov 8, 2011 12:32 PM, "Michael Hunger" < > michael.hun...@neotechnology.com> > >> wrote: > >>> > >>> There are some weird things going on. Probably have to do with > >>> javax.script.ScriptEngine.eval() > >>> > >>> We should investigate this thoroughly. > >>> > >>> Perhaps Peter and Marko can spend some cycles on it. > >>> > >>> Michael > >>> > >>> 1) behaviour native gremlin vs > >>> 2) Neo4j web console vs. > >>> 3) REST-calls > >>> > >>> Am 08.11.2011 um 12:02 schrieb Jeroen van Dijk: > >>> > >>>> HI Michael, > >>>> > >>>> Thanks for this solution. The webconsole now gives me the right > results > >>>> also for recommendation query. There is however still something weird > >>>> when > >>>> I use this recommendation query in the gremlin console: > >>>> > >>>> gremlin> node = g.v(14260); m = [:].withDefault{0.0}; a_total = > >>>> node.inE().count(); node.in().out('owns').sideEffect{union = a_total > + > >>>> it.inE().count()}.groupCount(m) { it : it += (1.0/(union)) } >> -1; > >>>> m.sort{a,b -> b.value <=> a.value}[0..9] > >>>> No signature of method: > >>>> com.tinkerpop.blueprints.pgm.impls.neo4j.Neo4jVertex.plus() is > >>>> applicable > >>>> for argument types: (java.math.BigDecimal) values: [0.0303030303] > >>>> Possible solutions: values(), keys(), use([Ljava.lang.Object;), > >>>> values(java.lang.Object), is(java.lang.Object), > >>>> split(groovy.lang.Closure) > >>>> > >>>> The weird thing is that exact same query does work in the webconsole.. > >>>> > >>>> Consider my issue solved though. Thanks a lot. > >>>> > >>>> Jeroen > >>>> > >>>> On Mon, Nov 7, 2011 at 1:25 PM, Michael Hunger < > >>>> michael.hun...@neotechnology.com> wrote: > >>>> > >>>>> Jeroen, > >>>>> > >>>>> could you try to use the alternative syntax: > >>>>> > >>>>> ... groupCount(m) { it : it += 0.1 } ... > >>>>> > >>>>> It seems to be a problem with evaluation of the string in the > >>>>> javax.ScriptEngine for Groovy > >>>>> > >>>>> Here is the output from my web-console: > >>>>> • gremlin> m = [:];g.v(33).bothE().label.groupCount(m) { it }{ > it > >>>>> += 0.1 } >> -1;m > >>>>> • ==> follows=11 > >>>>> • ==> owns=48 > >>>>> • gremlin> m = [:];g.v(33).bothE().label.groupCount(m) { it : > it > >>>>> += > >>>>> 0.1 } >> -1;m > >>>>> • ==> follows=1.1 > >>>>> • ==> owns=4.8 > >>>>> > >>>>> Michael > >>>>> > >>>>> Am 07.11.2011 um 12:55 schrieb Jeroen van Dijk: > >>>>> > >>>>>> Ok i think I found an example that is independent of my data > (adapted > >>>>> from > >>>>>> http://docs.neo4j.org/chunked/snapshot/gremlin-plugin.html) > >>>>>> > >>>>>> Locally: > >>>>>> gremlin> m = [:];g.v(33).bothE().label.groupCount(m) >> -1;m > >>>>>> > >>>>>> ==>follows=11 > >>>>>> ==>owns=48 > >>>>>> gremlin> m = [:];g.v(33).bothE().label.groupCount(m) { it }{ it += > 0.1 > >>>>>> } > >>>>>>> > >>>>>> -1;m > >>>>>> ==>follows=1.1 > >>>>>> ==>owns=4.8 > >>>>>> > >>>>>> REST/webadmin console: > >>>>>> gremlin> m = [:];g.v(33).bothE().label.groupCount(m) { it }{ it += > 0.1 > >>>>>> } > >>>>>>> > >>>>>> -1;m > >>>>>> ==> follows=11 > >>>>>> ==> owns=48 > >>>>>> gremlin> m = [:];g.v(33).bothE().label.groupCount(m) { it }{ it += > 10 > >>>>>> } > >>>>>>> > >>>>>> -1;m > >>>>>> ==> follows=11 > >>>>>> ==> owns=48 > >>>>>> gremlin> > >>>>>> > >>>>>> It seems like the closure block is not evaluated (to me as a > >>>>>> Groovy/Gremlin/Neo4j noob) > >>>>>> > >>>>>> Michael, I will send you a link to my database in private. > >>>>>> > >>>>>> Thanks, > >>>>>> Jeroen > >>>>>> > >>>>>> > >>>>>> > >>>>>> On Mon, Nov 7, 2011 at 12:41 PM, Michael Hunger < > >>>>>> michael.hun...@neotechnology.com> wrote: > >>>>>> > >>>>>>> Jeroen, > >>>>>>> > >>>>>>> that would indeed help a lot. > >>>>>>> I'll find it. > >>>>>>> > >>>>>>> Michael > >>>>>>> > >>>>>>> Am 07.11.2011 um 12:34 schrieb Jeroen van Dijk: > >>>>>>> > >>>>>>>> Hi Michael, > >>>>>>>> > >>>>>>>> I would like to provide a better example, but my Groovy is quite > >>>>>>>> poor > >>>>> so > >>>>>>> it > >>>>>>>> I'll take me some time. However I think the problem isn't in the > >>>>>>>> JSON > >>>>>>>> conversion. Because that would mean the results I get would be the > >>>>> same, > >>>>>>>> but with a different score right? The thing is that I get > different > >>>>>>>> Vertices back through the REST interface than I do locally. To me > >>>>>>>> that > >>>>>>>> means things already fail during the Gremlin evaluation. > >>>>>>>> > >>>>>>>> I will try to come up with a more isolated example. If it helps I > >>>>>>>> could > >>>>>>>> give you access to my dataset on Heroku (or through a Zip file). > >>>>>>>> > >>>>>>>> thanks, > >>>>>>>> Jeroen > >>>>>>>> > >>>>>>>> On Mon, Nov 7, 2011 at 11:34 AM, Michael Hunger < > >>>>>>>> michael.hun...@neotechnology.com> wrote: > >>>>>>>> > >>>>>>>>> Jeroen, > >>>>>>>>> > >>>>>>>>> can you narrow it down to a simpler operation, like just a > >>>>>>>>> division? > >>>>>>>>> > >>>>>>>>> Perhaps in the conversion from the division result (be it Float, > >>>>> Double, > >>>>>>>>> BigDecimal) to > >>>>>>>>> JSON something goes awry. > >>>>>>>>> > >>>>>>>>> In the GremlinPlugin the code for that is: > >>>>>>>>> > >>>>>>>>> } else if (result instanceof Double || result instanceof Float) { > >>>>>>>>> return ValueRepresentation.number(((Number) > >>>>>>>>> result).doubleValue()); > >>>>>>>>> } > >>>>>>>>> > >>>>>>>>> I'm not sure what datatype groovy creates as result of your > >>>>>>>>> operation, > >>>>>>>>> perhaps you can determine that as well. > >>>>>>>>> > >>>>>>>>> If we have a simple gremlin / groovy calculation that yields the > >>>>>>>>> wrong > >>>>>>>>> results, we can easily inspect and fix the plugin. > >>>>>>>>> > >>>>>>>>> Thanks a lot > >>>>>>>>> > >>>>>>>>> Michael > >>>>>>>>> > >>>>>>>>> Am 07.11.2011 um 11:12 schrieb Jeroen van Dijk: > >>>>>>>>> > >>>>>>>>>> Hi all, > >>>>>>>>>> > >>>>>>>>>> I'm using Gremlin to perform a recommendation query. Locally in > >>>>>>>>>> the > >>>>>>>>> gremlin > >>>>>>>>>> shell I get amazingly useful results. However when I use the > >>>>>>>>>> webadmin > >>>>>>>>>> gremlin console I get different results, both locally and in the > >>>>> Heroku > >>>>>>>>>> addon environment. I get the same wrong results when I use the > >>>>>>>>>> rest > >>>>>>>>>> interface, so I assume something is incorrect in the Gremlin > REST > >>>>>>>>>> interface. In all these cases the data is the same or on the > same > >>>>>>>>> database. > >>>>>>>>>> > >>>>>>>>>> The gremlin query is below (it is own of my first so probably > not > >>>>>>>>>> the > >>>>>>>>> most > >>>>>>>>>> efficient). It returns the top 10 list of most similar items > >>>>> according > >>>>>>> to > >>>>>>>>>> the Jaccard similarity index (= (Intersection(A, B) / Union(A, > B) > >>>>>>>>>> ): > >>>>>>>>>> > >>>>>>>>>> node = g.v(14260); m = [:].withDefault{0.0}; a_total = > >>>>>>>>> node.inE().count(); > >>>>>>>>>> node.in().out('owns').sideEffect{union = a_total + > >>>>>>>>>> it.inE().count()}.groupCount(m) { it }{ it += (1/(union)) } >> > -1; > >>>>>>>>>> m.sort{a,b -> b.value <=> a.value}[0..9] > >>>>>>>>>> > >>>>>>>>>> When I do the following locally everything is fine: > >>>>>>>>>> > >>>>>>>>>> gremlin> g = new > >>>>>>>>>> > >>>>>>> > >>>>> > >>>>> > Neo4jGraph('/usr/local/Cellar/neo4j/community-1.4/libexec/data/graph.db') > >>>>>>>>>> ==>neo4jgraph[EmbeddedGraphDatabase > >>>>>>>>>> [/usr/local/Cellar/neo4j/community-1.4/libexec/data/graph.db]] > >>>>>>>>>> gremlin> node = g.v(14260); m = [:].withDefault{0.0}; a_total = > >>>>>>>>>> node.inE().count(); node.in().out('owns').sideEffect{union = > >>>>> a_total + > >>>>>>>>>> it.inE().count()}.groupCount(m) { it }{ it += (1/(union)) } >> > -1; > >>>>>>>>>> m.sort{a,b -> b.value <=> a.value}[0..9] > >>>>>>>>>> ==>v[14260]=0.5000000013 > >>>>>>>>>> ==>v[12974]=0.1014492752 > >>>>>>>>>> ==>v[12349]=0.0952380952 > >>>>>>>>>> ==>v[12082]=0.0833333332 > >>>>>>>>>> ==>v[15434]=0.0810810810 > >>>>>>>>>> ==>v[11237]=0.0810810810 > >>>>>>>>>> ==>v[17672]=0.0769230768 > >>>>>>>>>> ==>v[18338]=0.0769230768 > >>>>>>>>>> ==>v[12852]=0.0769230768 > >>>>>>>>>> ==>v[11969]=0.075 > >>>>>>>>>> gremlin> > >>>>>>>>>> > >>>>>>>>>> However when I repeat this using the webadmin console interface > I > >>>>>>>>>> get > >>>>>>> the > >>>>>>>>>> following results: > >>>>>>>>>> > >>>>>>>>>> gremlin> node = g.v(14260); m = [:].withDefault{0.0}; a_total = > >>>>>>>>>> node.inE().count(); node.in().out('owns').sideEffect{union = > >>>>> a_total + > >>>>>>>>>> it.inE().count()}.groupCount(m) { it }{ it += (1/(union)) } >> > -1; > >>>>>>>>>> m.sort{a,b -> b.value <=> a.value}[0..9] > >>>>>>>>>> ==> v[14260]=31.0 > >>>>>>>>>> ==> v[9204]=30.0 > >>>>>>>>>> ==> v[8958]=29.0 > >>>>>>>>>> ==> v[15763]=22.0 > >>>>>>>>>> ==> v[13906]=22.0 > >>>>>>>>>> ==> v[18477]=21.0 > >>>>>>>>>> ==> v[9081]=20.0 > >>>>>>>>>> ==> v[9019]=19.0 > >>>>>>>>>> ==> v[9074]=18.0 > >>>>>>>>>> ==> v[9066]=18.0 > >>>>>>>>>> > >>>>>>>>>> The values of a Jaccard Index should never be above 1 so > something > >>>>>>>>>> is > >>>>>>>>>> clearly wrong. Any ideas? > >>>>>>>>>> > >>>>>>>>>> Thanks, > >>>>>>>>>> Jeroen > >>>>>>>>>> _______________________________________________ > >>>>>>>>>> Neo4j mailing list > >>>>>>>>>> User@lists.neo4j.org > >>>>>>>>>> https://lists.neo4j.org/mailman/listinfo/user > >>>>>>>>> > >>>>>>>>> _______________________________________________ > >>>>>>>>> Neo4j mailing list > >>>>>>>>> User@lists.neo4j.org > >>>>>>>>> https://lists.neo4j.org/mailman/listinfo/user > >>>>>>>>> > >>>>>>>> _______________________________________________ > >>>>>>>> Neo4j mailing list > >>>>>>>> User@lists.neo4j.org > >>>>>>>> https://lists.neo4j.org/mailman/listinfo/user > >>>>>>> > >>>>>>> _______________________________________________ > >>>>>>> Neo4j mailing list > >>>>>>> User@lists.neo4j.org > >>>>>>> https://lists.neo4j.org/mailman/listinfo/user > >>>>>>> > >>>>>> _______________________________________________ > >>>>>> Neo4j mailing list > >>>>>> User@lists.neo4j.org > >>>>>> https://lists.neo4j.org/mailman/listinfo/user > >>>>> > >>>>> _______________________________________________ > >>>>> Neo4j mailing list > >>>>> User@lists.neo4j.org > >>>>> https://lists.neo4j.org/mailman/listinfo/user > >>>>> > >>>> _______________________________________________ > >>>> Neo4j mailing list > >>>> User@lists.neo4j.org > >>>> https://lists.neo4j.org/mailman/listinfo/user > >>> > >> > > _______________________________________________ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > _______________________________________________ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user