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

Reply via email to