[Neo4j] REST traverse deprecation

Peter Neubauer peter.neubauer at neotechnology.com
Wed Nov 2 16:41:06 CET 2011


Yes.
This thread is about ONLY the traverse-Endpoint not scripting in general.

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 Wed, Nov 2, 2011 at 8:35 AM, Jacob Hansson
<jacob.hansson at neotechnology.com> wrote:
> On Wed, Nov 2, 2011 at 3:44 PM, Peter Neubauer <
> peter.neubauer at neotechnology.com> wrote:
>
>> Mmh,
>> this thread is just about deprecating the travers() section of the
>> REST API, not take away general scripting form the server. I have not
>> seen one single case where people have exploited the JavaScript
>> exposure in the return/stop evaluators to do anything like you say
>> Michael.
>>
>> Extensions and plugins are not going away for the time being, I am
>> only concerned about
>> http://docs.neo4j.org/chunked/snapshot/rest-api-traverse.html not
>> adding value to the API, and being able to be scripted in a more
>> concise way via the existing extensions (which I want to make examples
>> of).
>>
>> I haven't heard any argument for this case, so the question is whether
>> to document the usecases in other ways (Groovy, JavaScript or Cypher
>> plugins) and deprecate this section, since it doesn't add
>> functionality, just exposes scripting in a hacked-up way.
>>
>
> Good that you point this out, this thread is a bit confusing since we're
> talking about a lot of different things. If we can't find use cases that
> warrants the REST traversal API, we should deprecate it. It would be great
> to get the input of some of the people working on clients for the REST
> server before a decision is made though.
>
>
> I would also *really* like to continue the discussion about arbitrary
> script execution, because I want to understand the arguments for it.
> Perhaps we should break that discussion into a separate thread, to keep
> things concise.
>
> Imma start a new thread :)
>
>
>>
>> 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 Wed, Nov 2, 2011 at 3:11 AM, Michael Hunger
>> <michael.hunger at neotechnology.com> wrote:
>> > 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.hunger at 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.neubauer at 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.hansson at neotechnology.com> wrote:
>> >>>>>> On Tue, Nov 1, 2011 at 5:22 PM, Peter Neubauer <
>> >>>>>> peter.neubauer at 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.taylor at 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.neubauer at 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.hansson at 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.neubauer at 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" <maxdemarzi at 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 at lists.neo4j.org
>> >>>>>>>>>>>> https://lists.neo4j.org/mailman/listinfo/user
>> >>>>>>>>>>>>
>> >>>>>>>>>>> _______________________________________________
>> >>>>>>>>>>> Neo4j mailing list
>> >>>>>>>>>>> User at lists.neo4j.org
>> >>>>>>>>>>> https://lists.neo4j.org/mailman/listinfo/user
>> >>>>>>>>>>>
>> >>>>>>>>>>
>> >>>>>>>>>>
>> >>>>>>>>>>
>> >>>>>>>>>> --
>> >>>>>>>>>> Jacob Hansson
>> >>>>>>>>>> Phone: +46 (0) 763503395
>> >>>>>>>>>> Twitter: @jakewins
>> >>>>>>>>>> _______________________________________________
>> >>>>>>>>>> Neo4j mailing list
>> >>>>>>>>>> User at lists.neo4j.org
>> >>>>>>>>>> https://lists.neo4j.org/mailman/listinfo/user
>> >>>>>>>>>>
>> >>>>>>>>> _______________________________________________
>> >>>>>>>>> Neo4j mailing list
>> >>>>>>>>> User at lists.neo4j.org
>> >>>>>>>>> https://lists.neo4j.org/mailman/listinfo/user
>> >>>>>>>>>
>> >>>>>>>> _______________________________________________
>> >>>>>>>> Neo4j mailing list
>> >>>>>>>> User at lists.neo4j.org
>> >>>>>>>> https://lists.neo4j.org/mailman/listinfo/user
>> >>>>>>>>
>> >>>>>>> _______________________________________________
>> >>>>>>> Neo4j mailing list
>> >>>>>>> User at lists.neo4j.org
>> >>>>>>> https://lists.neo4j.org/mailman/listinfo/user
>> >>>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>> --
>> >>>>>> Jacob Hansson
>> >>>>>> Phone: +46 (0) 763503395
>> >>>>>> Twitter: @jakewins
>> >>>>>> _______________________________________________
>> >>>>>> Neo4j mailing list
>> >>>>>> User at lists.neo4j.org
>> >>>>>> https://lists.neo4j.org/mailman/listinfo/user
>> >>>>>>
>> >>>>> _______________________________________________
>> >>>>> Neo4j mailing list
>> >>>>> User at lists.neo4j.org
>> >>>>> https://lists.neo4j.org/mailman/listinfo/user
>> >>>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>> --
>> >>>> Jacob Hansson
>> >>>> Phone: +46 (0) 763503395
>> >>>> Twitter: @jakewins
>> >>>> _______________________________________________
>> >>>> Neo4j mailing list
>> >>>> User at lists.neo4j.org
>> >>>> https://lists.neo4j.org/mailman/listinfo/user
>> >>>
>> >>> _______________________________________________
>> >>> Neo4j mailing list
>> >>> User at lists.neo4j.org
>> >>> https://lists.neo4j.org/mailman/listinfo/user
>> >>>
>> >>
>> >>
>> >>
>> >> --
>> >> Jacob Hansson
>> >> Phone: +46 (0) 763503395
>> >> Twitter: @jakewins
>> >> _______________________________________________
>> >> Neo4j mailing list
>> >> User at lists.neo4j.org
>> >> https://lists.neo4j.org/mailman/listinfo/user
>> >
>> > _______________________________________________
>> > Neo4j mailing list
>> > User at lists.neo4j.org
>> > https://lists.neo4j.org/mailman/listinfo/user
>> >
>> _______________________________________________
>> Neo4j mailing list
>> User at lists.neo4j.org
>> https://lists.neo4j.org/mailman/listinfo/user
>>
>
>
>
> --
> Jacob Hansson
> Phone: +46 (0) 763503395
> Twitter: @jakewins
> _______________________________________________
> Neo4j mailing list
> User at lists.neo4j.org
> https://lists.neo4j.org/mailman/listinfo/user
>


More information about the User mailing list