custom use-cases like the ones implemented by our customers with plugins / extensions
and in the case of the ruby script extensions a way I'd like to promote to talk to the server that is 1) create you own RESTful endpoints that are focused on a protocol speaking your domain and not nodes + rels 2) the protocol is use-case oriented 3) it only transmits the information necessary (not more). 4) The code of these endpoints would be transactionally executed Use-Cases with customers so far have been: * unique nodes with locking + index lookup * batch data insertion (also unique stuff see above) * custom traversals with complicated callbacks * aggregating multiple gremlin / cypher queries in the server and returning only a partial result-set/projection of those executions * .... With the ruby script extension what we've done there is to leverage the web/REST frameworks of the platform and allow rack-apps to expose their REST endpoints within the neo4j-server. Thomas and I also talked about a more generic way to allow any language supported by the javax.script extension to register endpoints with the neo4j-server. A generic javax.scripting languages plugin would accommodate for more ad-hoc execution mode for which writing an extension is too much ceremony. Michael Am 02.11.2011 um 10:54 schrieb Jacob Hansson: > On Wed, Nov 2, 2011 at 10:20 AM, Michael Hunger < > michael.hun...@neotechnology.com> wrote: > >> I vote not dropped, as there are lots of non-java developers out there >> which would want to use REST server dynamically. >> > > I am completely open to the notion that I am wrong here. But I want us to > have answered the questions I was asking before properly, if we are going > to embrace all these ways to talk to the server. > > > What use cases does dynamic script execution cover that cypher or gremlin > do not? > > Why should those use cases not be covered by cypher or gremlin? > > > >> >> That was the reason why we wrote the ruby-script-extension support. >> >> Michael >> >> Am 02.11.2011 um 10:08 schrieb Jacob Hansson: >> >>> On Tue, Nov 1, 2011 at 5:37 PM, Peter Neubauer < >>> peter.neuba...@neotechnology.com> wrote: >>> >>>> Well, >>>> I think that Cypher is not yes taking into account Uniqueness, or is >>>> it Andres? Otherwise, most of the normal traversals are covered. >>>> >>>> To keep things consistent and give people a way of doing fine grained >>>> traversals, I would then suggest to document all the existing examples >>>> using Cypher or Groovy code, so we can document that things are >>>> working as expected and not loose functionality. >>>> >>> >>> Sounds like a really good idea. >>> >>> >>>> >>>> The JavaScript exposure then would totally go away from the REST API >>>> and possibly be factored out into a plugin like Groovy/Gremlin. Or >>>> dropped. >>>> >>> >>> I vote dropped :) >>> >>> >>>> >>>> WDYT? >>>> >>>> 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 1, 2011 at 9:31 AM, Jacob Hansson >>>> <jacob.hans...@neotechnology.com> wrote: >>>>> On Tue, Nov 1, 2011 at 5:22 PM, Peter Neubauer < >>>>> peter.neuba...@neotechnology.com> wrote: >>>>> >>>>>> Nope, >>>>>> I mean a server side script execution (which we already are doing in >>>>>> http://docs.neo4j.org/chunked/snapshot/rest-api-traverse.html) to >>>>>> execute traversal API code on the server. Neo4js is a client driver. >>>>>> >>>>>> >>>>> Remember that adding yet another way to talk to the server comes at a >>>> cost >>>>> of confusion and spreading engineering focus thin. >>>>> >>>>> I don't think we should do this unless there is a good answer to the >>>>> question: >>>>> >>>>> *Is there anything* *that this solves that is not solved by Cypher or >>>>> Gremlin, and if so, why don't we expand Cypher or Gremlin to >> incorporate >>>>> that use case instead? >>>>> >>>>> *Collecting our efforts in fewer buckets means that improvements will >>>>> benefit everyone, not just the group that uses the Groovy endpoint, or >>>> the >>>>> Traversal API, or the JS endpoint and so on. >>>>> >>>>> >>>>>> 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 1, 2011 at 9:19 AM, Andres Taylor >>>>>> <andres.tay...@neotechnology.com> wrote: >>>>>>> You, something like Neo4js <https://github.com/neo4j/neo4js>? We've >>>> had >>>>>>> that since forever. Or do you mean something different? >>>>>>> >>>>>>> Andrés >>>>>>> >>>>>>> On Tue, Nov 1, 2011 at 5:06 PM, Peter Neubauer < >>>>>>> peter.neuba...@neotechnology.com> wrote: >>>>>>> >>>>>>>> Also, >>>>>>>> there is another possibility: We are exposing a ECMA script >> execution >>>>>>>> engine via the Traverse enpoints. Instead of trying to shoehorn the >>>>>>>> traversal API into REST calls and then anyway executing script >>>>>>>> snippets, Why not exposing a JavaScript plugin along exactly the >> same >>>>>>>> lines as the Groovy plugin, and provide examples on how to use the >>>>>>>> same usecases via that plugin, so we cover the traversal API that >>>> way? >>>>>>>> >>>>>>>> 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 1, 2011 at 9:00 AM, Jacob Hansson >>>>>>>> <jacob.hans...@neotechnology.com> wrote: >>>>>>>>> It would be interesting to rephrase the question like this: >>>>>>>>> >>>>>>>>> Are there any use cases that the REST traversal API covers, that we >>>>>>>>> currently cannot replicate in Cypher or Gremlin? >>>>>>>>> >>>>>>>>> On Sun, Oct 30, 2011 at 2:45 PM, Peter Neubauer < >>>>>>>>> peter.neuba...@neotechnology.com> wrote: >>>>>>>>> >>>>>>>>>> Well, >>>>>>>>>> Andres has been putting the first algo into cypher and we are >>>>>> thinking >>>>>>>> of >>>>>>>>>> exposing them there so thru can be used as path functions in an >>>>>>>> expression. >>>>>>>>>> However, that will be step 2. WDYT? >>>>>>>>>> On Oct 29, 2011 6:47 PM, "maxdemarzi" <maxdema...@gmail.com> >>>> wrote: >>>>>>>>>> >>>>>>>>>>> I think the traversal rest api is fine for my purposes, but if >>>>>> cypher >>>>>>>> is >>>>>>>>>>> where we want to go long term, then we need to deprecate it in >>>> 1.6 >>>>>> and >>>>>>>>>> drop >>>>>>>>>>> it in 1.7. >>>>>>>>>>> >>>>>>>>>>> This gives us some time to update our libraries and for cypher >>>> to >>>>>>>> settle >>>>>>>>>>> down. >>>>>>>>>>> >>>>>>>>>>> Are you guys thinking of getting rid of the rest built in graph >>>>>>>>>> algorithms >>>>>>>>>>> or are those there to stay? >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> View this message in context: >>>>>>>>>>> >>>>>>>>>> >>>>>>>> >>>>>> >>>> >> http://neo4j-community-discussions.438527.n3.nabble.com/Neo4j-REST-traverse-deprecation-tp3460396p3464979.html >>>>>>>>>>> Sent from the Neo4j Community Discussions mailing list archive >>>> at >>>>>>>>>>> Nabble.com. >>>>>>>>>>> _______________________________________________ >>>>>>>>>>> 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 >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Jacob Hansson >>>>>>>>> Phone: +46 (0) 763503395 >>>>>>>>> Twitter: @jakewins >>>>>>>>> _______________________________________________ >>>>>>>>> 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 >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Jacob Hansson >>>>> Phone: +46 (0) 763503395 >>>>> Twitter: @jakewins >>>>> _______________________________________________ >>>>> 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 >>>> >>> >>> >>> >>> -- >>> Jacob Hansson >>> Phone: +46 (0) 763503395 >>> Twitter: @jakewins >>> _______________________________________________ >>> 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 >> > > > > -- > Jacob Hansson > Phone: +46 (0) 763503395 > Twitter: @jakewins > _______________________________________________ > 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