[Neo4j] graph-matching from web application
Hi David, thanks a lot for your answers! They were very helpful. I'm not sure I understand your setup. Could you describe a, b and c in more detail? What do you mean by a subgraph in this case? What makes it a subgraph, i.e. what is the greater graph? My setup is similar to someone looking for a chemical molecule. My database would hold the structure of 200 million molecules and the user wants get information on every molecule that contains a certain structure. He can construct this structure using a html form and then we search in neo4j for all matching molecules (i.e. all that contain a CH2-CH=O or whatever people can think of). Neo4j returns the IDs of these molecules and then we use our existing Perl/PHP Scripts to retrieve more information from the relational database, visualize, and so on. Well, this depends on how you roll it. If you have a separate database, then you will have to access it via e.g. REST or using the remote graph db API. But you can also have it embedded in your application, running in the webapp. But you might not be using a Java webapp? Right, I'm not using a Java webapp. So my solution will probably be to implement a simple multi-threaded server in Java (for instance like the one at the end of this page: http://download.oracle.com/docs/cd/E17409_01/javase/tutorial/networking/sockets/clientServer.html) and then query that server from CGI-scripts on the webserver running the web application. I don't understand what you mean. Please clarify. For example, you can't attach properties to the graph. Only to nodes and relationships. That was exactly what I meant. I wanted to store the ID only once per molecule and not on every node. But to answer your questions: I think you always need to do matching starting from a node. You can match subgraphs with properties using the addPropertyConstraint method on PatternNode and PatternRelationship. You can match relationships too using the PatternRelationship class. Thanks a lot, I thought it would be like that from reading the documentation, but I wasn't sure. What I wanted to do is sort of abstract matching, i.e. I wanted to retrieve a structure like N--rel1--N--rel2--N anywhere in the database without knowing anything about the nodes and only knowing the relationship types. I have found a way of doing something like that by changing my database design. It will not be very efficient, but it should work. Thanks again for your help, I think I know what to do now. Best regards, Jonathan -- Neu: GMX De-Mail - Einfach wie E-Mail, sicher wie ein Brief! Jetzt De-Mail-Adresse reservieren: http://portal.gmx.net/de/go/demail ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] graph-matching from web application
It seems a query optimizer would be of use in this case. If you are looking for A-Rel1-B-Rel2-C, it would be helpful to know what the frequency of A, B, C, (and possibly Rel1, and Rel2 if relationships are indexed in the future) and start your traversal with whichever set of nodes is least common. This is an interesting problem. If you could represent a molecule canonically in text (so that a given molecule would always be represented in text the exact same way), then it would seem a text search would be the way to go (eliminating the need for the graph altogether). -Paul -Original Message- From: user-boun...@lists.neo4j.org [mailto:user-boun...@lists.neo4j.org] On Behalf Of Jonathan Marten Sent: Wednesday, July 21, 2010 4:45 AM To: user@lists.neo4j.org Subject: [Neo4j] graph-matching from web application Hi David, thanks a lot for your answers! They were very helpful. I'm not sure I understand your setup. Could you describe a, b and c in more detail? What do you mean by a subgraph in this case? What makes it a subgraph, i.e. what is the greater graph? My setup is similar to someone looking for a chemical molecule. My database would hold the structure of 200 million molecules and the user wants get information on every molecule that contains a certain structure. He can construct this structure using a html form and then we search in neo4j for all matching molecules (i.e. all that contain a CH2-CH=O or whatever people can think of). Neo4j returns the IDs of these molecules and then we use our existing Perl/PHP Scripts to retrieve more information from the relational database, visualize, and so on. Well, this depends on how you roll it. If you have a separate database, then you will have to access it via e.g. REST or using the remote graph db API. But you can also have it embedded in your application, running in the webapp. But you might not be using a Java webapp? Right, I'm not using a Java webapp. So my solution will probably be to implement a simple multi-threaded server in Java (for instance like the one at the end of this page: http://download.oracle.com/docs/cd/E17409_01/javase/tutorial/networking/sockets/clientServer.html) and then query that server from CGI-scripts on the webserver running the web application. I don't understand what you mean. Please clarify. For example, you can't attach properties to the graph. Only to nodes and relationships. That was exactly what I meant. I wanted to store the ID only once per molecule and not on every node. But to answer your questions: I think you always need to do matching starting from a node. You can match subgraphs with properties using the addPropertyConstraint method on PatternNode and PatternRelationship. You can match relationships too using the PatternRelationship class. Thanks a lot, I thought it would be like that from reading the documentation, but I wasn't sure. What I wanted to do is sort of abstract matching, i.e. I wanted to retrieve a structure like N--rel1--N--rel2--N anywhere in the database without knowing anything about the nodes and only knowing the relationship types. I have found a way of doing something like that by changing my database design. It will not be very efficient, but it should work. Thanks again for your help, I think I know what to do now. Best regards, Jonathan -- Neu: GMX De-Mail - Einfach wie E-Mail, sicher wie ein Brief! Jetzt De-Mail-Adresse reservieren: http://portal.gmx.net/de/go/demail ___ 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] Batch inserter shutdown taking forever
Hi, I'm using a BatchInserter and a LuceneIndexBatchInserter to insert 5m nodes and 5m relationships into a graph in one go. The insertion seems to work, but shutting down takes forever - it's been 2 hours now. At first, the JVM gave me garbage collection exception, so I've set the heap to 2gb. 'top' tells me that the application is still running: PID USER PR NI VIRT RES SHR S %CPU %MEMTIME+ COMMAND 9994 tim17 0 2620m 2.3g 238m S 99.5 39.1 115:48.84 java but checking the filesystem by running 'ls -l' a few times doesn't indicate that files are being updated. Is this normal? Is there a way to improve performance? I'm loading all my data in one go to ease creating the db - it's simpler to create it from scratch each time instead of updating an existing database - so ideally I don't want to break this job down into multiple smaller jobs (actually, this would be OK if performance was good, but I ran into problems inserting data and retrieving existing nodes). Thanks, Tim ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
[Neo4j] Neo4j Multiple Nodes Issue
Hi, We are facing kind of a situation in our application using neo4j graph and we want to have your advice regarding this issue. We use graph in a way that we create a node and with every node we set a property i-e UID =value(numeric) and then we create the relationships between those nodes. According to our use case requirement there needs to be only one node in the whole graph space should exist having a UID value. That is UID should become the unique identifier for a node in the graph space. Our graph service is configured using the spring framework and all transaction handling is being managed by the spring itself. Now we are facing the problem where multiple nodes get created having the same UID because of multiple transactions running the same time and one transaction effect is not visible to other until one is committed. What we do is that we look for a node in the graph with a specific UID and if it is not there we create one. So in that case there is probability where multiple nodes could be created having the same UID if multiple transactions running same time and trying to lookup create same UID. Here I want to inquire that do we have in neo4j some kind of unique constraint be applied on a specific property that prevent multiple nodes get created having the same UID. Second, Let say if I am creating 1000 nodes and their relationships in one transaction and now I want to know that what is the performance cost if I create each node and its relationship in one separate transaction. Thanks-Maaz ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Neo4j Multiple Nodes Issue
The node id indirectly achieves this, but node id's can be recycled when nodes are deleted. Also, depending on node id may or may not work in future versions of Neo that might support sharding or distributed storage. Sounds to me like you have a more simple issue in that your UID generator isn't coded properly. It should be designed as thread safe so that you couldn't get the same UID in the first place. -Original Message- From: user-boun...@lists.neo4j.org [mailto:user-boun...@lists.neo4j.org] On Behalf Of Maaz Bin Tariq Sent: Wednesday, July 21, 2010 9:39 AM To: user@lists.neo4j.org Subject: [Neo4j] Neo4j Multiple Nodes Issue Hi, We are facing kind of a situation in our application using neo4j graph and we want to have your advice regarding this issue. We use graph in a way that we create a node and with every node we set a property i-e UID =value(numeric) and then we create the relationships between those nodes. According to our use case requirement there needs to be only one node in the whole graph space should exist having a UID value. That is UID should become the unique identifier for a node in the graph space. Our graph service is configured using the spring framework and all transaction handling is being managed by the spring itself. Now we are facing the problem where multiple nodes get created having the same UID because of multiple transactions running the same time and one transaction effect is not visible to other until one is committed. What we do is that we look for a node in the graph with a specific UID and if it is not there we create one. So in that case there is probability where multiple nodes could be created having the same UID if multiple transactions running same time and trying to lookup create same UID. Here I want to inquire that do we have in neo4j some kind of unique constraint be applied on a specific property that prevent multiple nodes get created having the same UID. Second, Let say if I am creating 1000 nodes and their relationships in one transaction and now I want to know that what is the performance cost if I create each node and its relationship in one separate transaction. Thanks-Maaz ___ 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] Neo4j Multiple Nodes Issue
Hi, One can use the built in locking in the kernel to synchronize and make code thread safe. Here is an example of this: https://svn.neo4j.org/examples/apoc-examples/trunk/src/main/java/org/neo4j/examples/socnet/PersonFactory.java The createPerson method guards against creation of multiple persons with the same name by creating a relationship from the reference node. After the relationship has been created (in the transaction but not yet committed) the write lock for the reference node has been acquired making sure any other running transaction has to wait for the lock to be released. Finally the index is checked to make sure some other transaction did not create the person while the current transaction was waiting for the write lock. Even simpler is to just remove a non existing property from a node or relationship. That will grab a lock on the specific node or relationship (that will be held until the transaction commits or is rolledback). Regards, Johan On Wed, Jul 21, 2010 at 4:07 PM, Rick Bullotta rick.bullo...@burningskysoftware.com wrote: The node id indirectly achieves this, but node id's can be recycled when nodes are deleted. Also, depending on node id may or may not work in future versions of Neo that might support sharding or distributed storage. Sounds to me like you have a more simple issue in that your UID generator isn't coded properly. It should be designed as thread safe so that you couldn't get the same UID in the first place. -Original Message- From: user-boun...@lists.neo4j.org [mailto:user-boun...@lists.neo4j.org] On Behalf Of Maaz Bin Tariq Sent: Wednesday, July 21, 2010 9:39 AM To: user@lists.neo4j.org Subject: [Neo4j] Neo4j Multiple Nodes Issue Hi, We are facing kind of a situation in our application using neo4j graph and we want to have your advice regarding this issue. We use graph in a way that we create a node and with every node we set a property i-e UID =value(numeric) and then we create the relationships between those nodes. According to our use case requirement there needs to be only one node in the whole graph space should exist having a UID value. That is UID should become the unique identifier for a node in the graph space. Our graph service is configured using the spring framework and all transaction handling is being managed by the spring itself. Now we are facing the problem where multiple nodes get created having the same UID because of multiple transactions running the same time and one transaction effect is not visible to other until one is committed. What we do is that we look for a node in the graph with a specific UID and if it is not there we create one. So in that case there is probability where multiple nodes could be created having the same UID if multiple transactions running same time and trying to lookup create same UID. Here I want to inquire that do we have in neo4j some kind of unique constraint be applied on a specific property that prevent multiple nodes get created having the same UID. Second, Let say if I am creating 1000 nodes and their relationships in one transaction and now I want to know that what is the performance cost if I create each node and its relationship in one separate transaction. Thanks-Maaz ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Neo4j Multiple Nodes Issue
Thanks Johan Svensson and Rick Bullotta. Yes Bullotta, you are are right the node creation is the problem , our code is something similar to following code. we donot want to synchronized the method as it cost some performance. Any suggestion to improve it. Also how costly neoIndexService.getSingleNode() method is if we call it twice/thrice and the node was not created. Will it search the whole graph? Svensson, In our case the problem is creating of duplicate reference nodes that is even not handle in the sample code. --- private IndexService neoIndexService; private GraphDatabaseService neoService; private Node getOrCreateUserNodeByUserId(final Long id) { Node node = neoIndexService.getSingleNode(UID, id); if (node == null) { node = neoService.createNode(); node.setProperty(UID, id); neoIndexService.index(node, UID, id); } return node; } --- private Node getOrCreateUserNodeByUserId(final Long id) { Node node = neoIndexService.getSingleNode(UID, id); if (node == null) { node = neoService.createNode(); node.setProperty(UID, id); neoIndexService.index(node, UID, id); } return node; } -- how costly the following solution private Node getOrCreateUserNodeByUserId(final Long id) { Node node = neoIndexService.getSingleNode(UID, id); if (node == null) { node = createUserNode(id); } return node; } private synchronized Node createUserNode(final Long id){ Node node = neoIndexService.getSingleNode(UID, id); if (node == null) { node = neoService.createNode(); node.setProperty(UID, id); neoIndexService.index(node, UID, id); } return node; } Thanks -Maaz --- On Wed, 7/21/10, Johan Svensson jo...@neotechnology.com wrote: From: Johan Svensson jo...@neotechnology.com Subject: Re: [Neo4j] Neo4j Multiple Nodes Issue To: Neo4j user discussions user@lists.neo4j.org Date: Wednesday, July 21, 2010, 7:38 PM Hi, One can use the built in locking in the kernel to synchronize and make code thread safe. Here is an example of this: https://svn.neo4j.org/examples/apoc-examples/trunk/src/main/java/org/neo4j/examples/socnet/PersonFactory.java The createPerson method guards against creation of multiple persons with the same name by creating a relationship from the reference node. After the relationship has been created (in the transaction but not yet committed) the write lock for the reference node has been acquired making sure any other running transaction has to wait for the lock to be released. Finally the index is checked to make sure some other transaction did not create the person while the current transaction was waiting for the write lock. Even simpler is to just remove a non existing property from a node or relationship. That will grab a lock on the specific node or relationship (that will be held until the transaction commits or is rolledback). Regards, Johan On Wed, Jul 21, 2010 at 4:07 PM, Rick Bullotta rick.bullo...@burningskysoftware.com wrote: The node id indirectly achieves this, but node id's can be recycled when nodes are deleted. Also, depending on node id may or may not work in future versions of Neo that might support sharding or distributed storage. Sounds to me like you have a more simple issue in that your UID generator isn't coded properly. It should be designed as thread safe so that you couldn't get the same UID in the first place. -Original Message- From: user-boun...@lists.neo4j.org [mailto:user-boun...@lists.neo4j.org] On Behalf Of Maaz Bin Tariq Sent: Wednesday, July 21, 2010 9:39 AM To: user@lists.neo4j.org Subject: [Neo4j] Neo4j Multiple Nodes Issue Hi, We are facing kind of a situation in our application using neo4j graph and we want to have your advice regarding this issue. We use graph in a way that we create a node and with every node we set a property i-e UID =value(numeric) and then we create the relationships between those nodes. According to our use case requirement there needs to be only one node in the whole graph space should exist having a UID value. That is UID should become the unique identifier for a node in the graph space. Our graph service is configured using the spring framework and all transaction handling is being managed by the spring itself. Now we are facing the problem where multiple nodes get created having the same UID because of multiple transactions running the same time and one transaction effect is not visible to other until one is committed. What we do is that we look for a node in the graph with a specific UID
[Neo4j] TransportDublin Route Planner Github Project
Hi , I have a github repositry setup @ http://github.com/paddydub/TransportDublin I'm working on a site: transportdublin.ie which is a Dublin Public Transport Route Planner which is built using Neo4j , Google Maps API v3, Spring 3.0 MVC-AJAX, with JQuery for directions panel layout and AJAX and Javascript parsed JSON to display the polyline and markers. I have uploaded some screenshots: Route Planner Screenshot http://img838.imageshack.us/img838/8676/websitescreenshot.jpg Neo4j representation of a Bus Route http://img204.imageshack.us/img204/9110/neoclipsebustimetablesc.png SQL format used to populate the graph http://img835.imageshack.us/img835/6426/sqldiagram.png http://img231.imageshack.us/img231/5421/sqlstops.png http://img375.imageshack.us/img375/7087/sqlstoptimes.png http://img62.imageshack.us/img62/6079/sqltimetable.png I'd like to write a bit about the differences in neo4j and sql and why neo4j it is a perfect solution for route planning systems, do you think a wiki would be the best option to display the pics? I will be uploading the code today and tomorrow, just making some last minute changes and writing some documentation. Cheers Paddy ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Neo4j Multiple Nodes Issue
Hi Maaz, Rick is on the right track with the UID generation. You need to make more than the ID generation thread safe though. Your first code snippet is obviously not thread safe. The second one uses double checked locking, and should be ok. You can also simply synchronize around the whole first snippet, or try Johan's suggested locking strategy. I'd recommend you to stay away from Neo4j's node IDs in this case, due to the reasons Rick stated. Now, regarding performance, there are a lot of factors here. Will your code serve requests? Over HTTP? If so, does the locking here really matter? I.e. is it washed out by the orders of magnitude greater network I/O times? If you're really concerned about performance, then you *will* want to do some kind of profiling. Point is, does the locking here matter in relation to other delays? Knowing where you should put your time optimizing is key. As to the performance of neoIndexService.getSingleNode(), I'm afraid I currently don't know. Maybe some of the other guys can help you out with this. Regarding your question about batching operations together in a single transaction versus doing them in different transactions, you can easily try it by writing a test. But just thinking about it, each mutating transaction has to hit disk, so it might cost you some I/O seeking doing different transactions, so I would count on it taking longer. How much longer, I can't say. And someone please correct me if I'm wrong here! David On Wednesday, July 21, 2010, Maaz Bin Tariq maaz.ta...@yahoo.com wrote: Thanks Johan Svensson and Rick Bullotta. Yes Bullotta, you are are right the node creation is the problem , our code is something similar to following code. we donot want to synchronized the method as it cost some performance. Any suggestion to improve it. Also how costly neoIndexService.getSingleNode() method is if we call it twice/thrice and the node was not created. Will it search the whole graph? Svensson, In our case the problem is creating of duplicate reference nodes that is even not handle in the sample code. --- private IndexService neoIndexService; private GraphDatabaseService neoService; private Node getOrCreateUserNodeByUserId(final Long id) { Node node = neoIndexService.getSingleNode(UID, id); if (node == null) { node = neoService.createNode(); node.setProperty(UID, id); neoIndexService.index(node, UID, id); } return node; } --- private Node getOrCreateUserNodeByUserId(final Long id) { Node node = neoIndexService.getSingleNode(UID, id); if (node == null) { node = neoService.createNode(); node.setProperty(UID, id); neoIndexService.index(node, UID, id); } return node; } -- how costly the following solution private Node getOrCreateUserNodeByUserId(final Long id) { Node node = neoIndexService.getSingleNode(UID, id); if (node == null) { node = createUserNode(id); } return node; } private synchronized Node createUserNode(final Long id){ Node node = neoIndexService.getSingleNode(UID, id); if (node == null) { node = neoService.createNode(); node.setProperty(UID, id); neoIndexService.index(node, UID, id); } return node; } Thanks -Maaz --- On Wed, 7/21/10, Johan Svensson jo...@neotechnology.com wrote: From: Johan Svensson jo...@neotechnology.com Subject: Re: [Neo4j] Neo4j Multiple Nodes Issue To: Neo4j user discussions user@lists.neo4j.org Date: Wednesday, July 21, 2010, 7:38 PM Hi, One can use the built in locking in the kernel to synchronize and make code thread safe. Here is an example of this: https://svn.neo4j.org/examples/apoc-examples/trunk/src/main/java/org/neo4j/examples/socnet/PersonFactory.java The createPerson method guards against creation of multiple persons with the same name by creating a relationship from the reference node. After the relationship has been created (in the transaction but not yet committed) the write lock for the reference node has been acquired making sure any other running transaction has to wait for the lock to be released. Finally the index is checked to make sure some other transaction did not create the person while the current transaction was waiting for the write lock. Even simpler is to just remove a non existing property from a node or relationship. That will grab a lock on the specific node or relationship (that will be held until the transaction commits or is rolledback). Regards, Johan On Wed, Jul 21, 2010 at 4:07 PM, Rick Bullotta
Re: [Neo4j] feature request for the GUI
Hi. I'm a core developer of Cytoscape and playing with Neo4j as a backend for Cytoscape. Currently, this is my personal project, but we are interested in Neo4j to provide users building their own network databases locally from Cytoscape. In the next version (2.8), Cytoscape can support most of the features supported by open source graph visualization packages have, such as custom node graphics layers. Some example are available here: http://tumblr.keiono.net/ Also, the future version (3.x series) wil be completely modularized by OSGi, and backend graph implementation is independent from graph API. So I'm planning to implement it with Neo4j. In any case, if you are interested in support for Neo4j in Cytoscape, please send us feature requests. Thanks, Kei Cytoscape Core Developer UC, San Diego Department of Medicine 2010/7/20 Wouter De Borger w.debor...@gmail.com: Hi, I've been using neo4j for some time now and evaluated various GUI solutions. (cytoscape, graphviz / xdot, gephi, plantUML) My conclusion is that the neo4j eclipse gui is often the best solution for complex structured graphs. However, I have a few suggestions for improvement. (In order of importance) - open and close buttons: add buttons to make eclipse close the database - save configuration: the configuration of which edge types to follow should be saved, preferably in the database directory, where I can find and adapt it - reload button: first close,then open; so that if the database directory is deleted and replaced, the new database is opened instead of the old one - export function: save as image, SVG or dot file Does anyone else have suggestions for the gui? Wouter PS: I would implement the suggestions myself, but I'm not very experienced with eclipse development ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user -- Keiichiro Ono http://www.keiono.net/ ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] feature request for the GUI
Hi! On 07/21/2010 07:10 AM, Arijit Mukherjee wrote: I don't know if this is the actual functionality or not - I just wanted to find out if there's a way to display the graph like what I said - without the links to the subreference node, only the discrete clusters... There's two ways you can reach a node directly: 1. enter the ID of a node in the Neo4j search dialog - the first result will be the node with that ID, if it exists 2. use the Neo4j search dialog to search for some property value. note that this is implemented in a very simple and slow way. The search integration really needs some work, for example it lacks Lucene support. /anders Cheers Arijit On 21 July 2010 01:10, Rob Challenrobchal...@point-of-care.co.uk wrote: Sticking with the original thread topic of requirements for neoclipse. I find that if I accidentally open a view of a graph with more than about 500 nodes to layout then the whole lot takes a very long time to come back. Is there a way to either speed it up, or let the user interrupt the process if there are a lot of nodes to draw. I usually do it by accident by increasing the traversal depth too much or enabling the wrong relationshiptype. All the best, Rob. On Tue, Jul 20, 2010 at 1:23 PM, Martin Skurlabuja...@gmail.com wrote: Peter, about editing support = this is true. I firstly focused on core abilities like importing and exporting including filtering abilities. The fact is that another student is working on Data Laboratory, so the place where it will be possible to change data. We are also thinking about setting values and this must be solved, but we have to recognize how Neo4j behaves, because the actual values are not stored in memory, but are delegating at demand so you just cannot set the value directly, because it is node/relationship id in fact. There is very simple delegating mechanism behind that. about performance = this is the thing which will be solved at the end. In fact last week I rewrite the importing and exporting, because results does not return unconnected nodes. I test it with graph about 3000 nodes and 8000 edges and it works quite performant. On the other side export after the rewrite is brutal slow, I will have to figure out why. Performance optimizations will be done at the end, because there will be maybe some features that will cause to rewrite some core parts as previous week. If you tried the filtering abilities too, this can also cause the performance problem, because previous week it was just doing the parsing for every node which is now cachced. about surf nodes = sorry I don't get the point. Surf nodes are all nodes except leafs? If you would like to do that, this is currently not possible, but can be simply added as option to API and GUI. Same with start node, currently there is no way how to express the fact we would like to include it or not. I just forget about the option. And this will be added as checkbox in gui and in API too. In the case of any other questions, advices, requests, just write... //Martin Skurla 2010/7/20 Peter Neubauerpeter.neuba...@neotechnology.com: Martin, On Tue, Jul 20, 2010 at 1:06 PM, Martin Skurla I am a GSoC (Google Summer of Code) student working on adding support for Neo4j in Gephi. I appreciate you to look at Gephi as a very nice visualization tool. This week I will also finish the article summarizing what have I done and what is needed to do. In fact Gephi has much more visualization abilities that Neoclipse. I will also write some quiz/questionnaire about some possible features which may be implemented but I am not sure if they will be useful for Neo4j users. So if you can reply to the article, or fill in the quiz/questionnaire it will be very helpful for me. Great Martin. I tried out your branch last week - worked partly for a small graph. Good work! It seems there is some editing support still missing, but I will be happy to test and provide more if you can provide more background on how to use Neo4j and Gephi in a good way. In fact the project now supports importing Neo4j database and exporting, importing with many options how to filter the imput. All the traversal work is done in trunk version of Neo4j, so the new traversal is used. Great. Would be awesome if you could maybe provide a short video tutorial on useing Neo4j in Gephi, and post your weekly progress to this list? Also, hav you tried to open big graphs with Gephi? I recently tried to open the Neo4j db generated by the test of http://github.com/neo4j/neo4j-spatial (run mvn clean test), but things slowed down to a trickle. Not sure if what the limit is for Gephi, and how to open/surf nodes with a depth-1 environment in scope in Gephi ... Cheers, /peter ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___
Re: [Neo4j] feature request for the GUI
Hi! On 07/21/2010 10:33 PM, Keiichiro Ono wrote: In the next version (2.8), Cytoscape can support most of the features supported by open source graph visualization packages have, such as custom node graphics layers. Some example are available here: http://tumblr.keiono.net/ This is really cool! Actually the visualization plugin (Zest) used by Neoclipse is the weakest point of it. It's way too limited. In any case, if you are interested in support for Neo4j in Cytoscape, please send us feature requests. This could be of some interest: http://wiki.neo4j.org/content/Google_Summer_of_Code_for_Neo4j_Visualization Does Cytoscape support multiple relationships/edges between two nodes? IIRC Gehpi doesn't do that, which is a problem when visualizing Neo4j graphs. /anders Thanks, Kei Cytoscape Core Developer UC, San Diego Department of Medicine 2010/7/20 Wouter De Borgerw.debor...@gmail.com: Hi, I've been using neo4j for some time now and evaluated various GUI solutions. (cytoscape, graphviz / xdot, gephi, plantUML) My conclusion is that the neo4j eclipse gui is often the best solution for complex structured graphs. However, I have a few suggestions for improvement. (In order of importance) - open and close buttons: add buttons to make eclipse close the database - save configuration: the configuration of which edge types to follow should be saved, preferably in the database directory, where I can find and adapt it - reload button: first close,then open; so that if the database directory is deleted and replaced, the new database is opened instead of the old one - export function: save as image, SVG or dot file Does anyone else have suggestions for the gui? Wouter PS: I would implement the suggestions myself, but I'm not very experienced with eclipse development ___ 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] TransportDublin Route Planner Github Project
Hi Paddy! Some interesting stuff you're working on there! I'd like to write a bit about the differences in neo4j and sql and why neo4j it is a perfect solution for route planning systems, do you think a wiki would be the best option to display the pics? I think the Github wiki of the project good be a good place to put the article. Images can be added to the source repo (just remember to use the raw version of the images as img src) or can be uploaded as downloads of the project. When your writings are in place, it should of course be linked from the Neo4j wiki. WDYT? /anders I will be uploading the code today and tomorrow, just making some last minute changes and writing some documentation. Cheers Paddy ___ 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] feature request for the GUI
Hi Anders. This could be of some interest: http://wiki.neo4j.org/content/Google_Summer_of_Code_for_Neo4j_Visualization We have been participating in Google Summer of Code as a mentoring organization for past five years and looks this is a great project for next year. Does Cytoscape support multiple relationships/edges between two nodes? IIRC Gehpi doesn't do that, which is a problem when visualizing Neo4j graphs. Yes, edges are treated as different relationships if edge attributes are different. (see the orange edges below) http://cytoscape.wodaklab.org/wiki/SampleWebServiceClients?action=AttachFiledo=gettarget=intactImportSample.png Kei /anders Thanks, Kei Cytoscape Core Developer UC, San Diego Department of Medicine 2010/7/20 Wouter De Borgerw.debor...@gmail.com: Hi, I've been using neo4j for some time now and evaluated various GUI solutions. (cytoscape, graphviz / xdot, gephi, plantUML) My conclusion is that the neo4j eclipse gui is often the best solution for complex structured graphs. However, I have a few suggestions for improvement. (In order of importance) - open and close buttons: add buttons to make eclipse close the database - save configuration: the configuration of which edge types to follow should be saved, preferably in the database directory, where I can find and adapt it - reload button: first close,then open; so that if the database directory is deleted and replaced, the new database is opened instead of the old one - export function: save as image, SVG or dot file Does anyone else have suggestions for the gui? Wouter PS: I would implement the suggestions myself, but I'm not very experienced with eclipse development ___ 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 -- Keiichiro Ono http://www.keiono.net/ ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] how to self define node?
How can I self define a new node? eg. define a new node with my own id, can the node's ID be a string?Have anyone successful deploy neo4j with thrift? ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] how to self define node?
fyi, i using neo4j REST standalone server -- View this message in context: http://neo4j-user-list.438527.n3.nabble.com/Re-Neo4j-how-to-self-define-node-tp986140p986170.html Sent from the Neo4J User List mailing list archive at Nabble.com. ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user