Hi guys,
thanks!

I've pulled the latest java-astar-routing and looking at it now.
Have changed to SNAPSHOT 0.6 too.

Has the AStar algorithm been changed to use the Traversal framework now?
If so, is there any way I can use the old AStar version?

The last one required neo4j-apoc 1.1-SNAPSHOT & neo4j-graph-algo
0.5-SNAPSHOT, but no longer works with these.
Is there any combination of neo4j-graph-algo and neo4j-apoc that will work
with the old version of AStar?

My problem is this...
We are in the final stages of evaluation for our thesis and have been asked
if we can run a bunch of extra experiments.
We use AStar on the GIS dataset experiments.
We do NOT want to use the Traversal framework at all as the way we log
"traffic" is by "listening" to the Add, Remove, Delete, Get, etc methods of
GraphDatabaseService.
The Traversal framework goes around these as far as I know, so we would lose
our ability to monitor.

Any suggestions would be great!

Thanks,
Alex


On Wed, Jun 23, 2010 at 3:52 PM, Mattias Persson
<matt...@neotechnology.com>wrote:

> Also, the latest graph-algo is 0.6-SNAPSHOT... so use that instead
>
> 2010/6/23 Anders Nawroth <and...@neotechnology.com>
>
> > Hi!
> >
> > See:
> > http://www.mail-archive.com/user@lists.neo4j.org/msg04044.html
> >
> > /anders
> >
> > On 06/23/2010 03:44 PM, Alex Averbuch wrote:
> > > Hi Tobias,
> > > It seems as though the new changes have broken the AStar code I'm
> using.
> > >
> > > I use:
> > > neo4j-apoc 1.1-SNAPSHOT
> > > neo4j-graph-algo 0.5-SNAPSHOT
> > >
> > > AStar uses DefaultExpander and can no longer find it.
> > >
> > > Here's an example of the code that worked until now.
> > >
> > > DefaultExpander relExpander = new DefaultExpander();
> > > relExpander.add(GISRelationshipTypes.BICYCLE_WAY, Direction.BOTH);
> > > AStar sp = new AStar(graphDb, relExpander, costEval, estimateEval);
> > > Path path = sp.findSinglePath(startNode, endNode);
> > >
> > > The problem seems to be that AStar wants a RelationshipExpander but now
> I
> > > can only create an Expansion<Relationship>.
> > >
> > > Do you have any suggestions as to how to make this work again?
> > >
> > > Regards,
> > > Alex
> > >
> > >
> > > On Wed, Jun 23, 2010 at 11:14 AM, Tobias Ivarsson<
> > > tobias.ivars...@neotechnology.com>  wrote:
> > >
> > >> Hi Neo4j enthusiasts!
> > >>
> > >> Yesterday I committed an API that Mattias and I have been working on
> for
> > a
> > >> few days. It comes in the form of two new interfaces Expander and
> > Expansion
> > >> (in the org.neo4j.graphdb package), and four new methods in the Node
> > >> interface (method names starting with "expand").
> > >>
> > >> The two main problems this API solves are:
> > >> 1. Adds a clean way for getting related nodes from a source node.
> > >> 2. Adds a type safe way for declaratively specifying any combination
> of
> > >> RelationshipTypes and Directions to expand.
> > >>
> > >> This replaces what was actually an anti-pattern, but something we saw
> > >> people
> > >> doing a lot: using a depth-one traversal to get the nodes related to a
> > >> node,
> > >> without needing to bother with the Relationship interface. Example:
> > >>
> > >> // The most convenient way to write it in the past:
> > >> Node source = ...
> > >> Traverser traverser = source.traverse(
> > >>     Traverser.Order.DEPTH_FIRST,
> > >>     new StopAtDepth( 1 ),
> > >>     ReturnableEvaluator.ALL_BUT_START_NODE,
> > >>     TYPE_ONE, Direction.INCOMING,
> > >>     TYPE_TWO, Direction.OUTGOING);
> > >> for (Node related : traverser) {
> > >>     doSomethingWith( related );
> > >> }
> > >>
> > >> // The previously recommended (and bloated) way of doing it:
> > >> Node source = ...
> > >> for (Relationship rel : source.getRelationships( TYPE_ONE, TYPE_TWO ))
> {
> > >>     Node related;
> > >>     if (rel.isType(TYPE_ONE)) {
> > >>         related = rel.getStartNode();
> > >>         if (related.equals(source)) continue; // we only want INCOMING
> > >> TYPE_ONE
> > >>     } else if (rel.isType(TYPE_TWO)) {
> > >>         related = rel.getEndNode();
> > >>         if (related.equals(source)) continue; // we only want OUTGOING
> > >> TYPE_TWO
> > >>     } else {
> > >>         continue; // should never happen, but makes javac know that
> > related
> > >> is != null
> > >>     }
> > >>     doSomethingWith( related );
> > >> }
> > >>
> > >> // With the new API:
> > >> Node source = ...
> > >> for (Node related : source.expand( TYPE_ONE, Direction.INCOMING )
> > >>                           .add( TYPE_TWO, Direction.OUTGOING
> ).nodes())
> > {
> > >>     doSomethingWith( related );
> > >> }
> > >>
> > >> The return type of the Node.expand(...)-methods are the new Expansion
> > type,
> > >> it defaults to expanding to Relationship, but the
> > Expansion.nodes()-method
> > >> makes it expand to Node. It also contains the add()-methods seen above
> > for
> > >> specifying RelationshipTypes to include in the expansion. The spelling
> > of
> > >> this method isn't perfectly decided yet, we are choosing between
> "add",
> > >> "and" and "include", we want something that reads nicely in the code,
> > but
> > >> doesn't conflict with keywords in other JVM-languages ("and" is a
> > keyword
> > >> in
> > >> Python, and I think "include" means something special in Ruby). There
> is
> > >> also an Expansion.exlude(RelationshipType)-method for use together
> with
> > the
> > >> Node.expandAll().
> > >>
> > >> The Expansion is backed by the newly added companion interface
> Expander.
> > >> This is an extension of RelationshipExpander that adds builder
> > >> capabilities.
> > >> It turns the functionality of the DefultExpander implementation class
> > (now
> > >> removed) into an interface in the API. RelationshipExpander is still
> > around
> > >> as a single method interface, which is useful for when you want to
> > >> implement
> > >> your own expansion logic.
> > >>
> > >> This API is added to trunk so that we can get feedback from everyone
> who
> > >> use
> > >> the snapshot builds of Neo4j, if the response to this API isn't
> > positive,
> > >> it
> > >> will probably be removed before the release of 1.1, so please submit
> > >> comments in this thread on what you think about this API.
> > >>
> > >> Happy Hacking,
> > >> --
> > >> Tobias Ivarsson<tobias.ivars...@neotechnology.com>
> > >> Hacker, Neo Technology
> > >> www.neotechnology.com
> > >> Cellphone: +46 706 534857
> > >> _______________________________________________
> > >> 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
> >
>
>
>
> --
> Mattias Persson, [matt...@neotechnology.com]
> Hacker, Neo Technology
> www.neotechnology.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

Reply via email to