Ok,
then let's shelf this until further notice, and revise it when we have
done some more extensive work on the server and fast protocol stack.

Thanks for all input, good that you speak up!

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:53 AM, Michael Hunger
<michael.hun...@neotechnology.com> wrote:
> As I said it is still used in the rest-graphdb-client which comes as a 
> drop-in-replacement for the core-api.
>
> This functionality would go missing then.
>
> Same goes for lot of stuff that for instance neography does with the REST 
> server to offer a quite fluent way of traversing the graph.
>
> See here: https://github.com/maxdemarzi/neography -> Readme
>
> n1.outgoing(:friends).incoming(:enemies)                  # Get nodes related 
> by one of multiple relationships
> n1.outgoing(:friends).depth(2)                                       # Get 
> nodes related by friends and friends of friends
> n1.outgoing(:friends).depth(:all)                                    # Get 
> nodes related by friends until the end of the graph
> n1.outgoing(:friends).depth(2).include_start_node   # Get n1 and nodes 
> related by friends and friends of friends
>
> n1.outgoing(:friends).prune("position.endNode().getProperty('name') == 
> 'Tom';")
> n1.outgoing(:friends).filter("position.length() == 2;")
>
> We use this functionality also in our hosting provider to navigate the graph 
> of servers, providers, users, databases and servers.
>
> If it goes away we have to rewrite parts of the hosting provider in something 
> else.
>
> Cheers
>
> Michael
>
> Am 02.11.2011 um 16:41 schrieb Peter Neubauer:
>
>> 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.hans...@neotechnology.com> wrote:
>>> On Wed, Nov 2, 2011 at 3:44 PM, Peter Neubauer <
>>> peter.neuba...@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.hun...@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.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
>>>>>
>>>> _______________________________________________
>>>> 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

Reply via email to