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

Reply via email to