Sweet,
Experiments are running fine again.

Thanks for the quick help!
Alex

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

> It works with graph-algo 0.6-SNAPSHOT and there's an AStar.java (which is
> the "old" version) and one ExperimentalAStar.java which uses the new
> traversal framework.
>
> 2010/6/23 Alex Averbuch <alex.averb...@gmail.com>
>
> > 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
> >
>
>
>
> --
> 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