Thanks Peter, we'll look into Gremlin. =)

But I'll push back a bit and say it would still ask for a feature like this
to be a first-class feature of the REST API. If my app is e.g. in Python,
it's not super API-friendly for me to have to write Java-ish code to achieve
what I want.

I'd get it if what I was asking for was an uncommon edge case request. But
for quite a while, this has been the one biggest pain point of Neo4j for us:
how to return a meaningful subset of traverse results instead of all
results. Having a paged traverser doesn't help at all if you can neither
specify the order nor know what the default ordering is based on (I asked a
while back and was told it's unspecified). (And again, by "order" here I
mean beyond just "breadth first".)

I'm all for simple, minimalistic and elegant APIs. I'm also all for being
scenario-driven, and solving problems rather than building arbitrary
features. So perhaps one solution here would be to introduce a new built-in
"best first" order that's just like Djikstra's shortest-path API: you just
specify a "cost" property (or function) for nodes and/or relationships. This
would definitely solve our problem, and, I suspect, most people's problems
in this regard. It wouldn't be a bulky feature that doesn't fit in (it would
compliment Djikstra's very nicely), and it wouldn't require writing a
complex Gremlin script to achieve this (I would think) common requirement.

I'll get off the soapbox now. ;) Thanks for your consideration!

Aseem

On Thu, Aug 25, 2011 at 9:01 AM, Peter Neubauer <
peter.neuba...@neotechnology.com> wrote:

> See the other mail for a pointer :)
>
> 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               - Your high performance graph database.
> http://startupbootcamp.org/    - Ă–resund - Innovation happens HERE.
> http://www.thoughtmade.com - Scandinavia's coolest Bring-a-Thing party.
>
>
> On Thu, Aug 25, 2011 at 1:00 AM, Matt Luongo <m...@scholr.ly> wrote:
>
> > +1, we could really use that. Client-side sorting sucks.
> >
> > --
> > Matt Luongo
> > Co-Founder, Scholr.ly
> >
> >
> >
> > On Wed, Aug 24, 2011 at 4:43 PM, Aseem Kishore <aseem.kish...@gmail.com
> > >wrote:
> >
> > > I've just spent a bunch of time reading into how one can control the
> > > ordering of a traverse beyond simple "breadth first" or "depth first".
> > More
> > > precisely, even when breadth first, how one can control *which*
> neighbors
> > > are traversed first.
> > >
> > > (It matters less in which order they're traversed vs. which order
> they're
> > > returned if you're returning all results, since you can just sort on
> the
> > > client. But it matters a lot if you want to use the paged traverser,
> > since
> > > you're then only returning the first results.)
> > >
> > > I've learned that this is doable from Java by writing your own
> > > BranchSelector implementation:
> > >
> > > http://components.neo4j.org/neo4j/1.4.1/apidocs/
> > >
> > > I've found the built-in implementations, e.g. the pre-order
> breadth-first
> > > and depth-first:
> > >
> > >
> > >
> >
> https://github.com/neo4j/community/blob/master/kernel/src/main/java/org/neo4j/kernel/PreorderBreadthFirstSelector.java
> > >
> > >
> > >
> >
> https://github.com/neo4j/community/blob/master/kernel/src/main/java/org/neo4j/kernel/PreorderDepthFirstSelector.java
> > >
> > > To achieve a custom "best first", Igor Dovgiy for example shared that
> he
> > > modeled his implementation of the breadth-first selector, except just
> > using
> > > a PriorityQueue instead of a regular Queue.
> > >
> > > My question is: is there any way to specify this sort of thing over the
> > > REST
> > > API instead of having to write a plugin? If not, does that sound like a
> > > reasonable feature request?
> > >
> > > I really just want something simple: nodes ordered by some "timestamp"
> > > property. It's killing us that we can't do this today. We might just
> have
> > > to
> > > look into writing this as a plugin...
> > >
> > > Thanks!
> > >
> > > Aseem
> > > _______________________________________________
> > > 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