Yes,
I agree. Basically, with Cypher for declarative and optimizable
queries, and Gremlin/Groovy for the power user or fine-tuned
traversals, the REST API could possibly be very minimalistic. Just my
2c.

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

brew install neo4j && neo4j start
heroku addons:add neo4j



On Fri, Dec 9, 2011 at 11:03 AM, James Thornton
<james.thorn...@gmail.com> wrote:
>
>
>
>
>
> On Thursday, December 8, 2011 2:48:59 AM UTC-6, Dmytrii Nagirniak wrote:
>>
>>
>> Unfortunately I couldn't see a lot of value in the REST API either.
>> The core operations that are taken for granted with native bindings
>> (traversals using poor Ruby constructs) would require to execute HTTP
>> request (that's what SELECT N+1 in SQL world is).
>> Or otherwise I would have to wrap all the logic in the traversal queries.
>> It would significantly overcomplicate the system with HTTP handling logic.
>
>
> Hi Dmytrii -
>
> Neo4j Server has a built-in Gremlin scripting engine that enables REST
> clients execute transactions in a single HTTP request.
>
> Gremlin is a domain-specific language for graphs written in Groovy. If you
> were using a relational database, you would use its domain-specific
> languages, which is SQL. Same idea.
>
> For the last few weeks, I have been working on Bulbs 0.3, which is a Python
> REST client for Neo4j Server, and I has a library of Gremlin templates in a
> YAML file. The Python methods do named variable substitution on the Gremlin
> templates and then execute them via the Neo4j Server Gremlin extension.
>
> Here's an example:
>
> gremlin.yaml
> https://gist.github.com/1450859
>
> element.py
> https://gist.github.com/1450871
>
> You can see the create_indexed_vertex Gremlin script has JSON args. Python
> lists and dicts are converted to JSON, and then on the server side, the
> Gremlin script converts them into Groovy maps and lists.
>
> Marko is working on adding the JSONSlurper library import to Gremlin so you
> won't have to do the import each time
> (https://github.com/tinkerpop/gremlin/issues/259).
>
>
>> So I decided to write another REST library
>> (http:://github.com/dnagir/morpheus),
>> but then gave up realising that you just cannot have a proper abstraction
>> over HTTP.
>> (I'll probably kill off that repo).
>
> Groovy is pretty simple. Consider reviving Morpheus and using Gremlin for
> scripting -- you'll get all the power of native Ruby and Neo4j without the
> Java.
>
> When Bulbs 0.3 is released, I'll post the full gremlin.yaml, and you should
> be able to use it in Ruby without any mods since it's just YAML.
>
> - James
>
>
>
>
>
>
>
>>
>> Also there are no decent HTTP restful clients. The only one is neography -
>> that works pretty well, but doesn't give me any abstraction similar to
>> neo4j.rb.
>> There is also neology. I declare it dead, I couldn't even run tests
>> because a dependent gem was removed from the author's own github repository.
>> So I even had no way to fix any issues there.
>>
>> Last one - architect4r - good idea behind. But the abstractions are leaky.
>> You can't make system more or less performant without resorting to HTTP.
>> I also did minor contribution to it (accepted PR). But since then the
>> author never replied to my tweets, neither he replied to emails.
>> Maybe he's just sick or something else, but that's what we have.
>> And there were failing specs all over the place.
>>
>> So I decided to write another REST library
>> (http:://github.com/dnagir/morpheus), but then gave up realising that you
>> just cannot have a proper abstraction over HTTP.
>> (I'll probably kill off that repo).
>>
>>
>> So all in all, to summarise: I am giving up on neo4j because it forces me
>> into Java world to leverage its full power.
>> I could have agreed on that if I would be a Java dev. But there is nothing
>> in this world that can convince me to choose Java instead of Ruby (maybe
>> other langs in the future).
>>
>> But what DO have to mention is the dedication of people around neo4j.
>> Everybody tried their best to help.
>> And that feels like everybody within Neo Technologies has common vision
>> and is really passionate and keen to help.
>> I can't remember any other company that would be so dedicated.
>>
>> I would really love to use neo4j, but unfortunately I can't do that until
>> it will be available as native binding for C Ruby.
>>
>> And as a lost note, I want to say THANKS to the neo4j community for the
>> great and amazing support you all guys give.
>>
>> Cheers,
>> Dmytrii
>> http://www.ApproachE.com
>>
>>
>> _______________________________________________
>> NOTICE: THIS MAILING LIST IS BEING SWITCHED TO GOOGLE GROUPS, please
>> register and consider posting at
>> https://groups.google.com/forum/#!forum/neo4j
>>
>> Neo4j mailing list
>> us...@lists.neo4j.org
>> https://lists.neo4j.org/mailman/listinfo/user
_______________________________________________
NOTICE: THIS MAILING LIST IS BEING SWITCHED TO GOOGLE GROUPS, please register 
and consider posting at https://groups.google.com/forum/#!forum/neo4j

Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to