Hey,

To expand on Peter's point. I suspect people are mixing versions of Gremlin. 
Gremlin is generally (not usually) backwards compatible from version to 
version. If you are using Gremlin REPL, GremlinPlugin, and Gremlin from Neo4j 
WebAdmin, its good to make sure you have the same version of Gremlin in 
instances. Here is how you check:

        GremlinTokens.VERSION 
                (for old skool Gremlin)
        Gremlin.version()       
                (for new skool Gremlin)

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).

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

Reply via email to