Re: [Neo4j] Number of nodes/relationships visited in query?

2011-04-11 Thread Stephan Hagemann
Hi Tobias,

yes!

Since computation isn't performed until actually requested (when the
 iterator is iterated over), and since the Iterable could give a different
 result when you iterate over it subsequent times (due to the graph being
 modified), the Iterator object is the only object where I could see that
 such information could be added usefully. This does mean that you cannot
 use
 the java foreach loop with such an Iterable AND get the visited count, but
 would have to resort to using the hasNext() and next() methods. We could
 quite easily add some convenience methods for making that easier though,
 something like:

 CountIteratorPath pathIter = shortestPath.findAllPaths( start, end
 ).iterator();
 for ( Path path : IterUtil.loop( pathIter ) ) {
doSomethingWith(path);
 }
 // after the loop is done, number of nodes visited so far is the total
 number of visited nodes.
 int visitedNodes = pathIter.numberOfNodesVisitedSoFar();


This is exactly what I thought I would like to do! It would be fine for
numberOfNodesVisitedSoFar to hold the number for the nodes from the last run
of the iterator. I agree that it would be helpful to output it through the
REST API that way you could compare the efficiency and load of queries (I
will send you another email about exactly that in a bit...).


 WDYT? If this is useful we could add this kind of statistics to all types
 of
 traversals. Exposing that through the REST interface would be even simpler,
 the implementation would simply do the equivalent of the iteration above
 then add the statistics to the result. For paginated results (when those
 are
 added) we could have the statistics reflect the number of nodes visited for
 creating that page of data, for algorithms that find the easiest
 solutions
 first, you could use those statistics to stop a search when the number of
 nodes visited to collect a page grows too big.


I agree. Again, I believe, this would be genuinely helpful in a lot of
situations.

cu
Stephan
___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


[Neo4j] Smarter expander needed?

2011-04-11 Thread Stephan Hagemann
Hi all,

the reason I asked the question about counting the number of visited nodes
earlier is that we are running into performance issues when working with
different expanders.

Our graph contains *user* and *company* nodes. There are a lot more users
than companies. Users are connected through *contact* relationships, users
are connected to companies as *employees*, companies aren't connected to
each other directly. For paths among users we only want to traverse contact
edges. For paths from users to companies we traverse user edges and one
employee edge at the end (to get to a company).

We are using Neo's shortest path algorithm to find connections between users
and companies. The path requirements from above can be formalized into these
*expanders*:

MapRelationshipType, Direction userToCompanyRelations = new
HashMapRelationshipType, Direction();
userToCompanyRelations.put(Relationship.contact, Direction.BOTH);
userToCompanyRelations.put(Relationship.employee, Direction.OUTGOING);
USER_TO_COMPANY = new DirectedExpander(userToCompanyRelations);

MapRelationshipType, Direction userToUserRelations = new
HashMapRelationshipType, Direction();
userToUserRelations.put(Relationship.contact, Direction.BOTH);
USER_TO_USER = new DirectedExpander(userToUserRelations);

For the *query* we essentially do

GraphAlgoFactory.shortestPath(expander, 5).findAllPaths(fromNode,
toNode);

As you can see from the attached screenshot: we are doing it wrong. The path
from a user to a company is almost 14 times slower than the path to another
user! And it gets worse when more types of edges are added. The result for
the user-company path is acceptably slow.

What's going on?
If I could output the number of visited nodes for a query, I could tell you
exactly... Here is my intuition: the expanders only specify which edges can
be traversed. In the user-user path query this is ok: all the fully expanded
paths lead from one user to another user (so could technically be the path
we're looking for). In the user-company case most fully expanded paths will
lead from user to user also, for the query they will thus be unusable! We
could do better in the latter case if we had the possibility of specifying
in the expander that (a) there should be no attempt to expand after having
just passed over an employee edge (since now we are at a company and can't
find any more potential results on this path) and (b) there should be no
attempt to expand along a contact edge in step five (because that will only
lead to a user).

Did I just miss how I can put this information into the ShortestPath
algorithm or do I have to go one level deeper and implement a specific
ShortestPath algorithm for each of these queries? Does anyone else face this
problem? Anyone seeing similar kinds of queries?

Thanks
Stephan
attachment: Screen shot 2011-04-11 at 15.41.57.png___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


[Neo4j] Path finding

2011-04-11 Thread John Doran
Ive set up a graph to represent a transport network. A bus stop may be
connected to others with a walk relationship. All nodes have relationships
with dist and time. The purpose of it is to plan people's routes.

I'm using aStar, and have tried using dijkstra but they both return similar
results. I'm using distance as the cost evaluator.

My l problem is yes the shortest path being returned is the quickest but it
may mean jumping onto 5 separate buses(perhaps I should add a time
penalty when changing off your current route). Another option may be an
analysis of the actual transfer patterns returned from the shortest path
query. Use the one with the least amount of transfers.

My question is could I provide some kind o heuristic to encourage staying on
a route as far as it can go?

Peter mentioned Hop-path to me when discussing.
___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] Smarter expander needed?

2011-04-11 Thread Peter Neubauer
Mmh,
you might be right in that the ShortestPath is not taking that much
context info into account. In that case, I guess you should hack it to
be even smarter about how to expand things. Right now, if you look at
https://github.com/neo4j/graphdb/blob/master/graph-algo/src/main/java/org/neo4j/graphalgo/impl/path/ShortestPath.java#L267,
the relationship expander is only getting a node as the context to
decide what relationships to return.

This probably could be changed to include a path as the context, or
you fork ShortestPath and make it smarter for your case, or implement
your own RelationshipExpander that is a bit smarter?

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 Mon, Apr 11, 2011 at 4:14 PM, Stephan Hagemann
stephan.hagem...@googlemail.com wrote:
 Hi all,

 the reason I asked the question about counting the number of visited nodes
 earlier is that we are running into performance issues when working with
 different expanders.

 Our graph contains *user* and *company* nodes. There are a lot more users
 than companies. Users are connected through *contact* relationships, users
 are connected to companies as *employees*, companies aren't connected to
 each other directly. For paths among users we only want to traverse contact
 edges. For paths from users to companies we traverse user edges and one
 employee edge at the end (to get to a company).

 We are using Neo's shortest path algorithm to find connections between users
 and companies. The path requirements from above can be formalized into these
 *expanders*:

    MapRelationshipType, Direction userToCompanyRelations = new
 HashMapRelationshipType, Direction();
    userToCompanyRelations.put(Relationship.contact, Direction.BOTH);
    userToCompanyRelations.put(Relationship.employee, Direction.OUTGOING);
    USER_TO_COMPANY = new DirectedExpander(userToCompanyRelations);

    MapRelationshipType, Direction userToUserRelations = new
 HashMapRelationshipType, Direction();
    userToUserRelations.put(Relationship.contact, Direction.BOTH);
    USER_TO_USER = new DirectedExpander(userToUserRelations);

 For the *query* we essentially do

    GraphAlgoFactory.shortestPath(expander, 5).findAllPaths(fromNode,
 toNode);

 As you can see from the attached screenshot: we are doing it wrong. The path
 from a user to a company is almost 14 times slower than the path to another
 user! And it gets worse when more types of edges are added. The result for
 the user-company path is acceptably slow.

 What's going on?
 If I could output the number of visited nodes for a query, I could tell you
 exactly... Here is my intuition: the expanders only specify which edges can
 be traversed. In the user-user path query this is ok: all the fully expanded
 paths lead from one user to another user (so could technically be the path
 we're looking for). In the user-company case most fully expanded paths will
 lead from user to user also, for the query they will thus be unusable! We
 could do better in the latter case if we had the possibility of specifying
 in the expander that (a) there should be no attempt to expand after having
 just passed over an employee edge (since now we are at a company and can't
 find any more potential results on this path) and (b) there should be no
 attempt to expand along a contact edge in step five (because that will only
 lead to a user).

 Did I just miss how I can put this information into the ShortestPath
 algorithm or do I have to go one level deeper and implement a specific
 ShortestPath algorithm for each of these queries? Does anyone else face this
 problem? Anyone seeing similar kinds of queries?

 Thanks
 Stephan

 ___
 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


Re: [Neo4j] Smarter expander needed?

2011-04-11 Thread Mattias Persson
2011/4/11 Peter Neubauer peter.neuba...@neotechnology.com:
 Mmh,
 you might be right in that the ShortestPath is not taking that much
 context info into account. In that case, I guess you should hack it to
 be even smarter about how to expand things. Right now, if you look at
 https://github.com/neo4j/graphdb/blob/master/graph-algo/src/main/java/org/neo4j/graphalgo/impl/path/ShortestPath.java#L267,
 the relationship expander is only getting a node as the context to
 decide what relationships to return.

 This probably could be changed to include a path as the context, or
 you fork ShortestPath and make it smarter for your case, or implement
 your own RelationshipExpander that is a bit smarter?

Yes, I think two things would need to be done here (as you also noticed Peter):

1) Have RelationshipExpander have its expand method accept a Path
instead of a Node.
2) Implement your own RelationshipExpander which can make smart
decisions based on those Paths it gets as input.

Having everything centered around Paths instead of Nodes/Relationships
is good for just about everything, and I think all aspects of
traversal will be geared towards that in a near future.

To solve your problem now you might need a way to differentiate your
user/company nodes so that you can immediately tell if a Node is a
user or company, like a property or single relationship to a reference
node or similar. If there is then you can still implement your own
RelationshipExpander and have that look at each node and make decision
based on that. If not then you might need to roll your own
implementation, based on f.ex. ShortestPath.

Any other suggestions, anyone?


 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 Mon, Apr 11, 2011 at 4:14 PM, Stephan Hagemann
 stephan.hagem...@googlemail.com wrote:
 Hi all,

 the reason I asked the question about counting the number of visited nodes
 earlier is that we are running into performance issues when working with
 different expanders.

 Our graph contains *user* and *company* nodes. There are a lot more users
 than companies. Users are connected through *contact* relationships, users
 are connected to companies as *employees*, companies aren't connected to
 each other directly. For paths among users we only want to traverse contact
 edges. For paths from users to companies we traverse user edges and one
 employee edge at the end (to get to a company).

 We are using Neo's shortest path algorithm to find connections between users
 and companies. The path requirements from above can be formalized into these
 *expanders*:

    MapRelationshipType, Direction userToCompanyRelations = new
 HashMapRelationshipType, Direction();
    userToCompanyRelations.put(Relationship.contact, Direction.BOTH);
    userToCompanyRelations.put(Relationship.employee, Direction.OUTGOING);
    USER_TO_COMPANY = new DirectedExpander(userToCompanyRelations);

    MapRelationshipType, Direction userToUserRelations = new
 HashMapRelationshipType, Direction();
    userToUserRelations.put(Relationship.contact, Direction.BOTH);
    USER_TO_USER = new DirectedExpander(userToUserRelations);

 For the *query* we essentially do

    GraphAlgoFactory.shortestPath(expander, 5).findAllPaths(fromNode,
 toNode);

 As you can see from the attached screenshot: we are doing it wrong. The path
 from a user to a company is almost 14 times slower than the path to another
 user! And it gets worse when more types of edges are added. The result for
 the user-company path is acceptably slow.

 What's going on?
 If I could output the number of visited nodes for a query, I could tell you
 exactly... Here is my intuition: the expanders only specify which edges can
 be traversed. In the user-user path query this is ok: all the fully expanded
 paths lead from one user to another user (so could technically be the path
 we're looking for). In the user-company case most fully expanded paths will
 lead from user to user also, for the query they will thus be unusable! We
 could do better in the latter case if we had the possibility of specifying
 in the expander that (a) there should be no attempt to expand after having
 just passed over an employee edge (since now we are at a company and can't
 find any more potential results on this path) and (b) there should be no
 attempt to expand along a contact edge in step five (because that will only
 lead to a user).

 Did I just miss how I can put this information into the ShortestPath
 algorithm or do I have to go one level deeper and implement a specific
 ShortestPath algorithm for each of these queries? Does anyone else face this
 

Re: [Neo4j] Smarter expander needed?

2011-04-11 Thread Stephan Hagemann
Thanks for your ideas, Peter and Mattias!

We will work on them and hopefully have some results we can post back here
soon.


On Mon, Apr 11, 2011 at 21:18, Mattias Persson matt...@neotechnology.comwrote:

 2011/4/11 Peter Neubauer peter.neuba...@neotechnology.com:
  Mmh,
  you might be right in that the ShortestPath is not taking that much
  context info into account. In that case, I guess you should hack it to
  be even smarter about how to expand things. Right now, if you look at
 
 https://github.com/neo4j/graphdb/blob/master/graph-algo/src/main/java/org/neo4j/graphalgo/impl/path/ShortestPath.java#L267
 ,
  the relationship expander is only getting a node as the context to
  decide what relationships to return.
 
  This probably could be changed to include a path as the context, or
  you fork ShortestPath and make it smarter for your case, or implement
  your own RelationshipExpander that is a bit smarter?

 Yes, I think two things would need to be done here (as you also noticed
 Peter):

 1) Have RelationshipExpander have its expand method accept a Path
 instead of a Node.
 2) Implement your own RelationshipExpander which can make smart
 decisions based on those Paths it gets as input.

 Having everything centered around Paths instead of Nodes/Relationships
 is good for just about everything, and I think all aspects of
 traversal will be geared towards that in a near future.

 To solve your problem now you might need a way to differentiate your
 user/company nodes so that you can immediately tell if a Node is a
 user or company, like a property or single relationship to a reference
 node or similar. If there is then you can still implement your own
 RelationshipExpander and have that look at each node and make decision
 based on that. If not then you might need to roll your own
 implementation, based on f.ex. ShortestPath.

 Any other suggestions, anyone?

 
  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 Mon, Apr 11, 2011 at 4:14 PM, Stephan Hagemann
  stephan.hagem...@googlemail.com wrote:
  Hi all,
 
  the reason I asked the question about counting the number of visited
 nodes
  earlier is that we are running into performance issues when working with
  different expanders.
 
  Our graph contains *user* and *company* nodes. There are a lot more
 users
  than companies. Users are connected through *contact* relationships,
 users
  are connected to companies as *employees*, companies aren't connected to
  each other directly. For paths among users we only want to traverse
 contact
  edges. For paths from users to companies we traverse user edges and one
  employee edge at the end (to get to a company).
 
  We are using Neo's shortest path algorithm to find connections between
 users
  and companies. The path requirements from above can be formalized into
 these
  *expanders*:
 
 MapRelationshipType, Direction userToCompanyRelations = new
  HashMapRelationshipType, Direction();
 userToCompanyRelations.put(Relationship.contact, Direction.BOTH);
 userToCompanyRelations.put(Relationship.employee,
 Direction.OUTGOING);
 USER_TO_COMPANY = new DirectedExpander(userToCompanyRelations);
 
 MapRelationshipType, Direction userToUserRelations = new
  HashMapRelationshipType, Direction();
 userToUserRelations.put(Relationship.contact, Direction.BOTH);
 USER_TO_USER = new DirectedExpander(userToUserRelations);
 
  For the *query* we essentially do
 
 GraphAlgoFactory.shortestPath(expander, 5).findAllPaths(fromNode,
  toNode);
 
  As you can see from the attached screenshot: we are doing it wrong. The
 path
  from a user to a company is almost 14 times slower than the path to
 another
  user! And it gets worse when more types of edges are added. The result
 for
  the user-company path is acceptably slow.
 
  What's going on?
  If I could output the number of visited nodes for a query, I could tell
 you
  exactly... Here is my intuition: the expanders only specify which edges
 can
  be traversed. In the user-user path query this is ok: all the fully
 expanded
  paths lead from one user to another user (so could technically be the
 path
  we're looking for). In the user-company case most fully expanded paths
 will
  lead from user to user also, for the query they will thus be unusable!
 We
  could do better in the latter case if we had the possibility of
 specifying
  in the expander that (a) there should be no attempt to expand after
 having
  just passed over an employee edge (since now we are at a company and
 can't
  find any more potential results on this path) and (b) there should be 

[Neo4j] about remove node

2011-04-11 Thread Jose Angel Inda Herrera
hello list,
i need to know how to remove one node specific in my graph
thanks
___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] Path finding

2011-04-11 Thread Paddy
Hi John,
One option could be to model the graph with 2 identical spatial layers and
add walking relationships between the layers.
Similar to the attached pic, its from http://bit.ly/hJN2BB and then only one
walking relationship could be traversed.

Cheers
Paddy

On Mon, Apr 11, 2011 at 7:50 AM, John Doran john.do...@hotmail.com wrote:

 Ive set up a graph to represent a transport network. A bus stop may be
 connected to others with a walk relationship. All nodes have relationships
 with dist and time. The purpose of it is to plan people's routes.

 I'm using aStar, and have tried using dijkstra but they both return similar
 results. I'm using distance as the cost evaluator.

 My l problem is yes the shortest path being returned is the quickest but it
 may mean jumping onto 5 separate buses(perhaps I should add a time
 penalty when changing off your current route). Another option may be an
 analysis of the actual transfer patterns returned from the shortest path
 query. Use the one with the least amount of transfers.

 My question is could I provide some kind o heuristic to encourage staying
 on
 a route as far as it can go?

 Peter mentioned Hop-path to me when discussing.
 ___
 Neo4j mailing list
 User@lists.neo4j.org
 https://lists.neo4j.org/mailman/listinfo/user

attachment: screenshot.png___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] User Digest, Vol 49, Issue 25

2011-04-11 Thread John Doran
Reply to 6. Re:  Path finding (Paddy)
Thanks for the suggestion Paddy, but I'm unsure it would meet the way I'm
trying to model the network. My graph at the moment isn't actually a spatial
layer(although it does contain spatial data:-) any stop within 500
meters(not on the same route(either direction) or transport method) of
another has a walk relationship with time and distance properties. So
therefore my results for shortest path are bringing me a bit all over the
place(if only there was an algorithm for the shortest direct path:-)). Do
you mean have two layers with no walk connections then only connect between
the two layers(maybe based on distance between stop).
Regards, John.
___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] Path finding

2011-04-11 Thread Mattias Persson
Hi Paddy,

how would that help in decision-making of which route is the
shortest when also taking into considering the amount of transfers?

2011/4/11 Paddy paddyf...@gmail.com:
 Hi John,
 One option could be to model the graph with 2 identical spatial layers and
 add walking relationships between the layers.
 Similar to the attached pic, its from http://bit.ly/hJN2BB and then only one
 walking relationship could be traversed.

 Cheers
 Paddy

 On Mon, Apr 11, 2011 at 7:50 AM, John Doran john.do...@hotmail.com wrote:

 Ive set up a graph to represent a transport network. A bus stop may be
 connected to others with a walk relationship. All nodes have relationships
 with dist and time. The purpose of it is to plan people's routes.

 I'm using aStar, and have tried using dijkstra but they both return similar
 results. I'm using distance as the cost evaluator.

 My l problem is yes the shortest path being returned is the quickest but it
 may mean jumping onto 5 separate buses(perhaps I should add a time
 penalty when changing off your current route). Another option may be an
 analysis of the actual transfer patterns returned from the shortest path
 query. Use the one with the least amount of transfers.

 My question is could I provide some kind o heuristic to encourage staying
 on
 a route as far as it can go?

 Peter mentioned Hop-path to me when discussing.
 ___
 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


Re: [Neo4j] about remove node

2011-04-11 Thread Mattias Persson
Your question is very generic. The quality/correctness of answers you
will get correlates to the amount of information/context you can
supply. Michaels answer is very generic too, although maybe the
correct one for your use case :)

2011/4/11 Jose Angel Inda Herrera jai...@estudiantes.uci.cu:
 hello list,
 i need to know how to remove one node specific in my graph
 thanks
 ___
 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


Re: [Neo4j] about remove node

2011-04-11 Thread Jose Angel Inda Herrera
thanks michaels for your answer,
Mattias i have a query, if I do EmbeddedGraphDbImpl G1 = G2;, means that if I 
delete information of the graph G1 is also deleted in G2, and if this is the 
best way to create a temporary graph
- Mensaje original -
De: Mattias Persson matt...@neotechnology.com
Para: Neo4j user discussions user@lists.neo4j.org
Enviados: Lunes, 11 de Abril 2011 17:50:02 (GMT-0500) Auto-Detected
Asunto: Re: [Neo4j] about remove node

Your question is very generic. The quality/correctness of answers you
will get correlates to the amount of information/context you can
supply. Michaels answer is very generic too, although maybe the
correct one for your use case :)

2011/4/11 Jose Angel Inda Herrera jai...@estudiantes.uci.cu:
 hello list,
 i need to know how to remove one node specific in my graph
 thanks
 ___
 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


Re: [Neo4j] Path finding

2011-04-11 Thread Paddy
Hi,
I think it can be helpful for controlling the amount of transfers to take,
When I have two layers with walking connections between the layers
every path which reaches the second layer will contain only one transfer.
But the drawback is that you also have to search for end nodes on both
layers.
Previously I used one layer with an evaluator which counted how many
transfer relationships were in a path
and pruned the path if it contained more than one transfer relationship.
But maybe a better approach would be to store a counter of the amount
transfer relationships contained in a path?

Cheers
Paddy

On Mon, Apr 11, 2011 at 2:45 PM, Mattias Persson
matt...@neotechnology.comwrote:

 Hi Paddy,

 how would that help in decision-making of which route is the
 shortest when also taking into considering the amount of transfers?

 2011/4/11 Paddy paddyf...@gmail.com:
  Hi John,
  One option could be to model the graph with 2 identical spatial layers
 and
  add walking relationships between the layers.
  Similar to the attached pic, its from http://bit.ly/hJN2BB and then only
 one
  walking relationship could be traversed.
 
  Cheers
  Paddy
 
  On Mon, Apr 11, 2011 at 7:50 AM, John Doran john.do...@hotmail.com
 wrote:
 
  Ive set up a graph to represent a transport network. A bus stop may be
  connected to others with a walk relationship. All nodes have
 relationships
  with dist and time. The purpose of it is to plan people's routes.
 
  I'm using aStar, and have tried using dijkstra but they both return
 similar
  results. I'm using distance as the cost evaluator.
 
  My l problem is yes the shortest path being returned is the quickest but
 it
  may mean jumping onto 5 separate buses(perhaps I should add a time
  penalty when changing off your current route). Another option may be an
  analysis of the actual transfer patterns returned from the shortest path
  query. Use the one with the least amount of transfers.
 
  My question is could I provide some kind o heuristic to encourage
 staying
  on
  a route as far as it can go?
 
  Peter mentioned Hop-path to me when discussing.
  ___
  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


[Neo4j] How to get both nodes and relationship in one traverse?

2011-04-11 Thread Brendan
Hi,

I had setup one traversal description but it seems to me that each time of 
traverse can only get one of three outcome, nodes, relationships, or paths.  
How to get more than one result traverse?  Now, I sent two requests to get both 
nodes and relationships.  But there is a chance that between the requests there 
are some changes in the database.

Regards,

Brendan

Sent from my iPad
___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


[Neo4j] Neo4J Server on Windows 64-bit

2011-04-11 Thread Kevin Dieter
Hi,

I have limited Java knowledge, so hopefully this question makes sense.

I am deploying Neo4J on a Windows 64-bit server.  I have successfully
deployed it by downloading a trial license for the Windows 64-bit version of
the Tanuki Wrapper.  Everything is set up and working fine.

My question is since I only have a trial license of the wrapper (good for 30
days), will the neo4J server continue to run after the wrapper license
expires?
What if I need to stop and restart and/or upgrade neo4J after the 30 days?
 Will I need a new trial license?
Or, should I just purchase a wrapper license and not have to worry about it?

Thanks,

Kevin
___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] Neo4J Server on Windows 64-bit

2011-04-11 Thread Peter Neubauer
Kevin,
in the upcoming 1.3 Neo4j release, we changed the Tanuki wrapper to
http://yajsw.sourceforge.net/, which means there are no licensing
issues. I would love for you to test it on Windows 64 - bit once it is
out (or even before) and report back on how it works. Let me know, can
send you a packaging ASAP.

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 Tue, Apr 12, 2011 at 4:29 AM, Kevin Dieter kevin.die...@megree.com wrote:
 Hi,

 I have limited Java knowledge, so hopefully this question makes sense.

 I am deploying Neo4J on a Windows 64-bit server.  I have successfully
 deployed it by downloading a trial license for the Windows 64-bit version of
 the Tanuki Wrapper.  Everything is set up and working fine.

 My question is since I only have a trial license of the wrapper (good for 30
 days), will the neo4J server continue to run after the wrapper license
 expires?
 What if I need to stop and restart and/or upgrade neo4J after the 30 days?
  Will I need a new trial license?
 Or, should I just purchase a wrapper license and not have to worry about it?

 Thanks,

 Kevin
 ___
 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


Re: [Neo4j] How to get both nodes and relationship in one traverse?

2011-04-11 Thread Matěj Plch
You can traverse only relatioships and call getStartNode() getEndNode()...

Dne 12.4.2011 03:37, Brendan napsal(a):
 Hi,

 I had setup one traversal description but it seems to me that each time of 
 traverse can only get one of three outcome, nodes, relationships, or paths.  
 How to get more than one result traverse?  Now, I sent two requests to get 
 both nodes and relationships.  But there is a chance that between the 
 requests there are some changes in the database.

 Regards,

 Brendan

 Sent from my iPad
 ___
 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