Re: [Neo4j] New user...
Welcome to the list :) /jake On Dec 6, 2011 1:54 PM, "Lawrence" wrote: > Just sending my email > > -- > Lawrence C. Bandeira > ___ > 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] Controlling Traversal Depth with Python Neo4j Bindings
On Sat, Dec 3, 2011 at 1:08 PM, Peter Neubauer < peter.neuba...@neotechnology.com> wrote: > Chris, > Sounds like a case for Cypher, Jake just added on support for it? > I don't think that has been released yet though. Chris: I will be adding tested and documented support for this as soon as I have time, hopefully next week. In the meantime, know that the traversal description builder stuff is an augmented version of the Java traversal description. Generally, any method available in the java traversal description API should be available in the python version. Until it's in the python documentation though, I can't guarantee it will work properly. /jake > > /peter > > Sent from my phone, please excuse typos and autocorrection. > On Dec 2, 2011 2:40 AM, "Chris Diehl" wrote: > > > Hi Jake, > > > > I have a situation where I want to start at a given node in my graph and > > traverse down a linear chain of nodes a specified # of hops. Is there a > way > > for me to specify the traversal depth using the Python bindings? > > If not, what would you suggest as the best way to achieve that goal? > > > > Cheers, Chris > > ___ > > 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 > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Cypher REST endpoint
On Fri, Dec 2, 2011 at 3:55 PM, jadell wrote: > Quick question: > > Just saw this commit from Jake: > > http://github.com/neo4j/community/commit/f011c51fcbd5f12236fc633f57dcec9fb8cade83 > > Will the old Cypher plugin endpoint be going away, or will it remain for > back-compat? Which release will have the new endpoint? > > This will be helpful info for library authors. > Damn Josh, you're quick :) We only talked briefly about how long we will be supporting the old plugin, but it will be *at least* through 1.6, and probably 1.7. The new endpoint will most likely be available as of the next milestone release. We've been told we're bad about making sure changelogs are properly updated, and we had a long talk about that today. We will be making sure that info on this, as well as deprecation plans for the old plugin, are properly included in the changelog for whatever release it becomes a part of. The new endpoint is in fact the same code as the plugin, so it should be reasonably easy to make the switch (should just be the URI change). The only caveat is that it does not currently support google table output like the plugin does. I haven't talked to Peter about if that should be included or not. /jake > Thanks, > > -- Josh > > -- > View this message in context: > http://neo4j-community-discussions.438527.n3.nabble.com/Cypher-REST-endpoint-tp3554828p3554828.html > Sent from the Neo4j Community Discussions mailing list archive at > Nabble.com. > ___ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Standalone server and transactions
On Fri, Dec 2, 2011 at 5:12 PM, Dmytrii Nagirniak wrote: > On 03/12/2011, at 2:53 AM, Jacob Hansson wrote: > > > This is similar to the approach we're looking at, except interaction > > currently looks like: > > > > POST /tx > > 200: 1 > > > > POST /tx/1/node {"name":"Steven"} > > 201 > > > > POST /tx/1/batch [blah blah] > > 200 > > > > PUT /tx/1/state "COMMITTED" > > Yeah. Right. We do need the Trn Id for each request. Missed that part. > I just wonder maybe there is a way to do it without modifying existing > API? (HTTP header is going to be harder). > The idea with this approach is that the current API would remain exactly the way it is (and each request to the old endpoints would be within a single transaction, just like today). We just add this "tx" resource to do transactional operations across multiple requests. > > Also I think I'll start to work on a new Ruby REST client ( > https://github.com/dnagir/morpheus) and it would be good to know the API > in advance if possible (or maybe how to discover it). > So none of this is decided on, the approach I posted is one direction we're experimenting in. The reason I can't give you a commitment to some particular direction is that we're still debating and testing approaches. It gets complex, because the issue is not just transactions, but thoughts about throughput and latency as well. Figuring this out is a high-priority issue, but we are currently spread too thin to put a full time developer on it. Me and Michael Hunger are working at it in our spare time, and are making some progress. Hopefully we will be able to assign a full time dev on it before the end of the year, but there are absolutely no promises. I promise though that as soon as we have a workable version to show off, we will post about it on the list to get feedback on it :) /jake > Cheers, > Dmytrii. > > ___ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Standalone server and transactions
On Fri, Dec 2, 2011 at 4:53 PM, Jacob Hansson < jacob.hans...@neotechnology.com> wrote: > > > On Fri, Dec 2, 2011 at 3:45 PM, Dmytrii Nagirniak wrote: > >> >> On 03/12/2011, at 12:50 AM, Rick Bullotta wrote: >> >> > I also agree with you that it would be nice to have transaction support >> over a remote API, but that's not a trivial thing to accomplish in a web >> scenario when there is not any "thread affinity" or even necessarily >> "server affinity" between requests that occur within a transaction. >> Knowing when to abandon a pending transaction in a scenario where the >> client(s) do not maintain a persistent connection is also quite challenging. >> >> You just meant to say that HTTP is stateless? :) >> I proposed one solution in the other thread. >> >> Basically: >> 1. you POST to /transactions?timeout=1000 to request a start of a >> transaction. >> 2. The server returns a transaction id for the client to use. >> 3. Client can PUT /transactions/1234/commit|rollback >> 4. Otherwise server rolls it back after timeout (which may default to 1 >> second and can't be longer that configured). >> >> It has additional benefit that you can combine transaction with batching: >> >> 1. GET /nodes/123 >> 2. POST /transactions/ >> 3. POST /batch - update everything in a batch, including the transaction >> itself. >> >> Thus additional request to commit/rollback the transaction is not even >> necessary as in can be batched. >> > > This is similar to the approach we're looking at, except interaction > currently looks like: > > POST /tx > 200: 1 > Sorry, this should've been 201, of course. > > POST /tx/1/node {"name":"Steven"} > 201 > > POST /tx/1/batch [blah blah] > 200 > > PUT /tx/1/state "COMMITTED" > > > /jake > > >> >> >> > One possibility might be to leverage another RPC mechanism or perhaps >> even something like Web Sockets in the not too distant future. But I think >> the goal of a language neutral binding also needs to be preserved if >> possible. >> HTTP has its advantages. It can be heavily cached by reverse-proxy for >> example :) >> >> ___ >> Neo4j mailing list >> User@lists.neo4j.org >> https://lists.neo4j.org/mailman/listinfo/user >> > > > > -- > Jacob Hansson > Phone: +46 (0) 763503395 > Twitter: @jakewins > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Standalone server and transactions
On Fri, Dec 2, 2011 at 3:45 PM, Dmytrii Nagirniak wrote: > > On 03/12/2011, at 12:50 AM, Rick Bullotta wrote: > > > I also agree with you that it would be nice to have transaction support > over a remote API, but that's not a trivial thing to accomplish in a web > scenario when there is not any "thread affinity" or even necessarily > "server affinity" between requests that occur within a transaction. > Knowing when to abandon a pending transaction in a scenario where the > client(s) do not maintain a persistent connection is also quite challenging. > > You just meant to say that HTTP is stateless? :) > I proposed one solution in the other thread. > > Basically: > 1. you POST to /transactions?timeout=1000 to request a start of a > transaction. > 2. The server returns a transaction id for the client to use. > 3. Client can PUT /transactions/1234/commit|rollback > 4. Otherwise server rolls it back after timeout (which may default to 1 > second and can't be longer that configured). > > It has additional benefit that you can combine transaction with batching: > > 1. GET /nodes/123 > 2. POST /transactions/ > 3. POST /batch - update everything in a batch, including the transaction > itself. > > Thus additional request to commit/rollback the transaction is not even > necessary as in can be batched. > This is similar to the approach we're looking at, except interaction currently looks like: POST /tx 200: 1 POST /tx/1/node {"name":"Steven"} 201 POST /tx/1/batch [blah blah] 200 PUT /tx/1/state "COMMITTED" /jake > > > > One possibility might be to leverage another RPC mechanism or perhaps > even something like Web Sockets in the not too distant future. But I think > the goal of a language neutral binding also needs to be preserved if > possible. > HTTP has its advantages. It can be heavily cached by reverse-proxy for > example :) > > ___ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] REST API - always batch?
On Thu, Dec 1, 2011 at 9:03 AM, Dmytrii Nagirniak wrote: > Thanks Peter. > > I was asking because of the request to support batching in neography: > https://github.com/maxdemarzi/neography/issues/16 > > I sounds like the "normal" API is obsolete then :) > > It encourages non-transactional operations. I think the batch-ing should > be promoted a little bit more. > > Check the availability and place the reservation if something is still > available is pretty hard to implement without it. > Not sure if batching supports conditional operations though. Does it? > > Is there anything that would be impossible/slow etc to do with batching? > I mean, there must be some drawbacks :) > There are a few reasons we aren't pushing the batch API as the primary way to work with REST. One is that it's a bit more complex to get started with, but the two primary reasons are these: 1. There are limits to how large the results can be from a batch API call. The batch API supports streaming deserialization of it's input, but output is still created as a giant string in memory. It is reasonably easy to hit the limits of how large the batch API results can be when you start batching requests. 2. We don't want it to be the primary API. We have lots of ideas for how we can improve the current REST API (add full transactional support, massively improve throughput and latency), and so we would rather go down that road. The batch API is a pragmatic solution to a big problem, but I don't think it is a good long-term path to take. /jake Cheers. > > On 01/12/2011, at 6:08 PM, Peter Neubauer wrote: > > > Dmytri, > > sounds like an interesting plan! I don't think there is anything > > directly that I can see, except a bug, > > https://github.com/neo4j/community/issues/113 with "\\" which you > > might watch our for, reported by Josh Adell. > > > > Let us know how it works out! > > > > 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 > > > > brew install neo4j && neo4j start > > heroku addons:add neo4j > > > > > > > > On Thu, Dec 1, 2011 at 5:53 AM, Dmytrii Nagirniak > wrote: > >> Hi, > >> > >> I wonder what the disadvantages would be if every request to the server > would always be a batch (even for simple GETs)? > >> > >> This would make it easier to use the API from the application. > >> > >> How bad is this idea? > >> > >> Cheers, > >> Dima > >> http://www.ApproachE.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 mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Neo4j Tutorial
If you are interested in one-on-one help, take a look at the neo4j events calendar. Joining a local meetup or a webinar could be a good route to go. Such Neo4j events are listed here: http://plancast.com/neo4j Also, take a look at the neo4j koans, a set of unit tests that walk you through how to work with the neo4j java API: https://github.com/jimwebber/neo4j-tutorial/ Cheers! /jake On Wed, Nov 30, 2011 at 3:42 PM, bigToch wrote: > Hello geeks, > > I would like if possible that somebody walks me through a complete tutorial > on Neo4j. I am a newbie of Noe4j and I have read some stuffs on the wiki > web > page but still I have not caught yet the procedure. I just need a simple > scenario and a step-by-step guide to implement the scenario. > > I know that it may sound weird but I would like to have an aid because I > will be building an app using the Neo4j. > > Thank you guys, > > -- > View this message in context: > http://neo4j-community-discussions.438527.n3.nabble.com/Neo4j-Tutorial-tp3548519p3548519.html > Sent from the Neo4j Community Discussions mailing list archive at > Nabble.com. > ___ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Batch URIs
On Tue, Nov 29, 2011 at 9:28 AM, Nigel Small wrote: > Following on from the relative URI work that Jim is looking at, I was > wondering if there was any way that the entity URIs used for RESTful batch > requests could be made more discoverable or elegantly derivable? Currently > the only way I'm aware of to calculate a relative node URI, for example, is > to hack around parts of the full URI: > > self._relative_uri = "".join(self._uri.partition("/node")[1:]) > > Basically here I'm looking for the substring "/node" within the full URI > and taking everything from that point onwards as the relative part which I > use to inject into a batch payload. This is obviously somewhat dependent on > this hardcoded part never changing and doesn't feel particularly like the > most elegant way to achieve this. > > Thoughts welcomed! > Yeah, I think you mentioned this in the discussion on that ticket as well, so this has been in my head a bit.. The thinking I had when writing the batch API was that URLs should be relative as a means of forcing requests to stay "inside" the /db/data resource. The reason for that is the transactionality of the batch API. The idea is that the "db" part of /db/data at some future point will allow pointing to other databases inside the same server (e.g. /myfirstdb/data /myotherdb/data), and the transactionality of the batch API would only apply within one database. I do agree that it is an unelegant solution tho.. Perhaps we should allow full URLs (or at least full paths), and instead throw a securityexception or something if you don't include the /db/data path. /jake > > *Nigel Small* > Phone: +44 7814 638 246 > Blog: http://nigelsmall.name/ > GTalk: ni...@nigelsmall.name > MSN: nasm...@live.co.uk > Skype: technige > Twitter: @technige <https://twitter.com/#%21/technige> > LinkedIn: http://uk.linkedin.com/in/nigelsmall > _______ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Network accessible hostname
I thought there already was an issue for this? The problem is that the REST API advertises absolute URLs, and it would be fixed if we change the API to use relative URLs. Jake On Nov 25, 2011 4:13 PM, "Peter Neubauer" wrote: > Clay, > I think that is something we need to check next week, and probably make an > issue to run the Webadmin etc with relative URLs as absolute URLs can be a > pain. Would that help for your case? > > 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 - NOSQL for the Enterprise. > http://startupbootcamp.org/- Öresund - Innovation happens HERE. > > > On Thu, Nov 24, 2011 at 9:54 PM, Clay Monkus > wrote: > > > I am a newbie with Neo4j, so any help is appreciated. > > I have tried many different configuration options regarding the server's > > complete URL for neo4j, but the application does not seem to honor those > > configuration changes. This can be seen by going to: > > > > http://my.site.com/webadmin/#/data/search/0/ > > > > which indicates that it is trying to connect to: > > > > http://j2ee.my.site.com:7474/db/data/node/0, which is local. > > > > Per a suggestion on the neo4j fora, I have made the following changes to > > the > > configuration: > > > > *** > > # REST endpoint for the data API > > # Note the / in the end is mandatory > > org.neo4j.server.webadmin.data.uri=http://my.site.com/db/data/ > > > > # REST endpoint of the administration API (used by Webadmin) > > org.neo4j.server.webadmin.management.uri=http://my.site.com/db/manage/ > > *** > > > > Allegedly, using the full URI should allow the admin panel to communicate > > with the backend. However, per the logs, the application is not picking > up > > these configuration changes after restart: > > > > *** > > *** > > 2011-11-22 08:34:07.549-0600: --- SERVER STARTUP START --- > > 2011-11-22 08:34:07.549-0600: Server configuration: > > 2011-11-22 08:34:07.551-0600: org.neo4j.server.database.location = > > data/graph.db > > 2011-11-22 08:34:07.552-0600: org.neo4j.server.webserver.port = 7474 > > 2011-11-22 08:34:07.552-0600: org.neo4j.server.webserver.address = > > 127.0.0.106 > > 2011-11-22 08:34:07.552-0600: org.neo4j.server.webadmin.rrdb.location = > > data/rrd > > 2011-11-22 08:34:07.552-0600: org.neo4j.server.db.tuning.properties = > > conf/neo4j.properties > > 2011-11-22 08:34:07.552-0600: org.neo4j.server.webadmin.management.uri = > > /db/manage/ > > 2011-11-22 08:34:07.552-0600: org.neo4j.server.webadmin.data.uri = > > /db/data/ > > 2011-11-22 08:34:07.575-0600: Mounted discovery module > > (org.neo4j.server.rest.discovery) at: / > > 2011-11-22 08:34:07.613-0600: Loaded server plugin "CypherPlugin" > > (org.neo4j.server.plugin.cypher.CypherPlugin) > > 2011-11-22 08:34:07.614-0600: GraphDatabaseService.execute_query: > execute a > > query > > 2011-11-22 08:34:07.615-0600: Loaded server plugin "GremlinPlugin" > > (org.neo4j.server.plugin.gremlin.GremlinPlugin) > > 2011-11-22 08:34:07.615-0600: GraphDatabaseService.execute_script: > execute > > a > > Gremlin script with 'g' set to the Neo4jGraph and 'results' containing > the > > results. Only results of one object type is supported. > > 2011-11-22 08:34:07.615-0600: Mounted REST API at: /db/data/ > > 2011-11-22 08:34:07.616-0600: Mounted management API at: /db/manage/ > > 2011-11-22 08:34:07.653-0600: Mounted webadmin at: /webadmin > > 2011-11-22 08:34:09.084-0600: Server started on: > http://127.0.0.106:7474/ > > 2011-11-22 08:34:09.085-0600: --- SERVER STARTUP END --- > > *** > > > > As you can see in those logs, neither the data URI nor the web management > > URI have updated to the settings that I placed in the configuration file: > > > > *** > > 2011-11-22 08:34:07.552-0600: org.neo4j.server.webadmin.management.uri = > > /db/manage/ > > 2011-11-22 08:34:07.552-0600: org.neo4j.server.webadmin.data.uri = > > /db/data/ > > *** > > > > They should show the full URL, namely, http://my.site.com/db/manage/ and > > http://my.site.com/db/data/, respectively. > > > > Do you have any suggestions regarding the configuration? > > > > Thanks, > > > > > > > > Clay Monkus > > Director of Technology > > Intelligent Buildings > > c...@intelligentbuildings.com > > 6000 Fairview Road, Tower II, Suite 1200 > > Charlotte, NC 28210 U.S.A. > > > > 704.345.4174 | Mobile > > 704.759.2700 | Main > > 704.759.2701 | Fax > > ___ > > 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
Re: [Neo4j] Neo4j Python Index Iteration
Hey Chris, I'm happy to inform you that this is already the case :) If you loop through the entire result, it automatically gets closed. /jake On Wed, Nov 23, 2011 at 8:42 PM, Chris Diehl wrote: > Hi Jake, > > As you know, with the current Neo4j Python bindings, one needs to close > the index results after doing a lookup and iterating through the results. > > hits = idx['akey']['avalue'] > for item in hits: > pass > > # Always close index results when you are > # done, to free up resources. > hits.close() > > Would it be possible to return an object that automatically closes hits > after iteration is complete? I'd love to encapsulate the index in a class > that takes care of the close for me so I don't have to worry about > inserting that somewhere later in my code. Not exactly sure how to pull > that off... > > Chris > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] "the social graph is neither" (blog post)
On Tue, Nov 22, 2011 at 10:46 AM, serge wrote: > what do you think of this post ? > > http://blog.pinboard.in/2011/11/the_social_graph_is_neither/ > His first point, that modeling the social graph accurately is impossible is of course true. It is impossible to model reality exactly like it is, because we are already using all the matter in the universe to model reality in the first place. And the "social act" aspect of declaring a relationship to someone is very true as well. I think he is correct in saying that the "we're gonna accurately model all social relationships on the planet" plan is bound to fail. Relationships on facebook and twitter and so on don't actually *model* social relationships, but rather *are* social relationships. We as users define the meaning of them, we say things like "don't know him really, but I think I'm Facebook friends with him". "Facebook friend" is not the same thing as being friends, it is a social relationship of its own, which we have collectively defined. The social graph does not accurately model the intricacies of our social life, in fact, it increases the complexity of it. > > -- > View this message in context: > http://neo4j-community-discussions.438527.n3.nabble.com/the-social-graph-is-neither-blog-post-tp3527242p3527242.html > Sent from the Neo4j Community Discussions mailing list archive at > Nabble.com. > ___ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] some questions
s the best > way > > to remove the whole graph? Of course deleting each node and its > > relationships and its index is not convenient. > > >>> > > >>> > > >>> Via Gremlin Plugin, you can call g.clear(). > > >>> > > >>> HTH, > > >>> Marko. > > >>> > > >>> http://markorodriguez.com > > >>> ___ > > >>> Neo4j mailing list > > >>> User@lists.neo4j.org > > >>> https://lists.neo4j.org/mailman/listinfo/user > > >>> > > >> > > >> > > >> > > >> -- > > >> Best wishes, > > >> > > >> Linan Wang > > >> Architect, Programmer, PhD > > >> ___ > > >> 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 > > > > > ___ > > 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 > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] [URGENT] Recommended server configurations
On Fri, Nov 18, 2011 at 7:21 PM, gustavoboby wrote: > Hi people's, > > I'm creating a social network with a larg number of expected hits and i > need > help with > the server recommended configurations: > > 1 - Operating system (Linux or Windows? What specifically?) > If you have the choice, Linux is preferable. We fully support both platforms, but generally get higher performance on Linux, and less problems. > 2 - Hardware (How much Memory necessary?) > This completely depends on how much data you intend to store. Can you provide an estimation of how big your dataset would be? Number of nodes, number of relationships per nodes, and how many properties (on both nodes and relationships), and what types of property values. > > You think the use of Neo4j REST API will cause problem? I use it to develop > my Asp.Net > applications > It depends on how you use it. Generally, you will get reasonable insert speed if the client you use supports the batch operations part of the REST API, query speed will depend on the query of course. You will get significantly better performance with the embedded database right now, but that is only available in JVM languages and Python. > I am open to suggestions!! > > I thank the help. > > -- > View this message in context: > http://neo4j-community-discussions.438527.n3.nabble.com/URGENT-Recommended-server-configurations-tp3519328p3519328.html > Sent from the Neo4j Community Discussions mailing list archive at > Nabble.com. > ___ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
[Neo4j] Lab day: Cypher queries in embedded python bindings
Hey all, Like we've mentioned before, we have lab-day fridays at Neo4j, and today I hacked some stuff together that landed directly in trunk for the embedded python bindings. As of 1 minute ago, the following operations are now possible with the embedded python API: from neo4j import GraphDatabase db = GraphDatabase("/home/jake/db") # Plain query result = db.query("START n=node(0) RETURN n") # Parameterized query result = db.query("START n=node({id}) RETURN n", id=0) # Pre-parsed query get_node_by_id = db.prepare_query("START n=node({id}) RETURN n") result = db.query(get_node_by_id, id=0) # Read the result for row in result: print row['n'] for value in result['n']: print value node = db.query(get_node_by_id, id=0)['n'].single Lemme know what you think :) This is not available on Pypi yet (will be when the first 1.6 milestone is released) but you can build it super-easily yourself, instructions are in the readme at github: https://github.com/neo4j/python-embedded Cheers, -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Python embedding: problems with shutdown and threads
I've just pushed an update to handle the attachThreadToJVM stuff automatically, I ran your test, Michael, on the DB after that, and it seems to shut down properly. You may want to double check though. You can build this now, by checking out https://github.com/neo4j/python-embedded/ and following the instructions in the readme. This will be part of the 1.5 release, which is currently a delayed, but can probably be expected within a week or two. /Jake On Thu, Nov 3, 2011 at 4:48 PM, Johan Lundberg wrote: > On 2011-11-03 11:08, Jacob Hansson wrote: > > On Thu, Nov 3, 2011 at 6:55 AM, Tim McNamara < > paperl...@timmcnamara.co.nz>wrote: > > > >> Here are a few notes of my own from using Neo4j with Python embedded. > >> I know that this isn't the right place . > >> > >> Ubuntu doesn't set $JAVA_HOME. I ended up hard coding the location of my > >> JVM. > >> > >> I seem to encounter unclean shutdowns all the time when running with > >> the iPython REPL. Is there a db.shutdown() command that I've been > >> neglecting to use? > >> > > > > Yeah, as long as you call db.shutdown(), things should be ok. See here: > > > > > http://docs.neo4j.org/chunked/snapshot/python-embedded-reference-core.html > > > > > > We should perhaps set up the db to shut itself down properly > automatically > > if it detects that python is shutting down.. We decided against that > > before, since we felt like "we don't own the application lifecycle". > WDYT? > > > > I found this snippet to work great for my modules: > def _close_db(): >try: >neo4jdb.shutdown() >except NameError: >print 'Could not shutdown Neo4j database. Is it open in \ > another process?' > > import atexit > atexit.register(_close_db) > > This looks like a good option, I'll create an issue for adding this. /Jake > > > >> > >> Tim > >> > >> > >> On 3 November 2011 17:28, Michael Rene Armida wrote: > >>> I'm having some weird problems with threading on shutdown. As I > >> previously > >>> discovered, using neo4j in a multi-threaded Python app requires > complete > >>> segregation of neo4j into a single thread. That all works fine for > >>> creating a database, however, it appears that shutting one down is a > bit > >> of > >>> a mystery. I wrote a test program to minimally illustrate the > >> difficulty: > >>> > >>> http://pastebin.com/gg204kae > >>> > >>> Threading is always easy to get wrong, so I added a simple switch to > >> remove > >>> neo4j from the picture. When I disable neo, the program starts up and > >>> shuts down cleanly. When I re-enable neo, some of the print statements > >>> never get run, and the app mysteriously exits. > >>> > >>> I am testing this by saving it into a script and running it on the > >> command > >>> line. Any time after the worker thread finishes creating the neo db, I > >> hit > >>> ctrl-c, and the two scenarios play out as above. > >>> > >>> It seems that the embedded Python API is not exactly at the forefront > of > >>> popular use, and so I understand if nobody knows what's up with this. > I > >>> just thought I should add something, for the record. I hope my script > >>> doesn't have an obvious bug. > >>> > >>> Thanks, > >>> Michael > >> > > > > I had a discussion with Tobias this morning about threading with JPype, > and > > am currently writing a fix that will allow full threading support for > > neo4j-embedded. > > > > I'll make sure to run this script as well after that fix is implemented, > to > > make sure it gets fixed as well. > > > > As far as the forefront of use goes, there is a surprising amount of pypy > > downloads of neo4j-embedded (4000 new installs in the last 30 days), so > the > > feedback you are providing here is gonna end up helping a lot of people > :) > > Thank you so much for taking the time to document the issues you are > having. > > > > /jake > > > > > >>> ___ > >>> 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 > >> > > > > > > > > > -- > Johan Lundberg > NORDUnet A/S > lundb...@nordu.net > +46730714375 > Tulegatan 11 > 113 53 Stockholm > Sweden > ___ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Python embedding: problems with shutdown and threads
On Thu, Nov 3, 2011 at 3:24 PM, Michael Rene Armida wrote: > That's awesome news. I will check it out when it's ready. > > I would suggest wrapping up the lifecycle management in a context manager. > You're already using the GraphDatabase object's __enter__ and __exit__ to > manage transactions, so you'd probably have to add a second object. > > Would you like me to add a bug somewhere? I could turn that script into a > unit test, which should make it easier to evaluate. > It's fine as it is for now, I've written a unit test that checks that threading works (which it seems to do, although there are still a few issues), and I'll add your script to that test suite as well once I get this to pass. Unless I hit any snags, should be pushed later today or tomorrow. There is no need for it now, but if you report bugs in the future, there is a bug tracker active for the project on github. Reporting bugs there is probably preferable to reporting them here, since that makes it easy to keep track of and prioritize work. https://github.com/neo4j/python-embedded /jake > > On Thu, Nov 3, 2011 at 3:08 AM, Jacob Hansson < > jacob.hans...@neotechnology.com> wrote: > > > On Thu, Nov 3, 2011 at 6:55 AM, Tim McNamara < > paperl...@timmcnamara.co.nz > > >wrote: > > > > > Here are a few notes of my own from using Neo4j with Python embedded. > > > I know that this isn't the right place . > > > > > > Ubuntu doesn't set $JAVA_HOME. I ended up hard coding the location of > my > > > JVM. > > > > > > I seem to encounter unclean shutdowns all the time when running with > > > the iPython REPL. Is there a db.shutdown() command that I've been > > > neglecting to use? > > > > > > > Yeah, as long as you call db.shutdown(), things should be ok. See here: > > > > > http://docs.neo4j.org/chunked/snapshot/python-embedded-reference-core.html > > > > > > We should perhaps set up the db to shut itself down properly > automatically > > if it detects that python is shutting down.. We decided against that > > before, since we felt like "we don't own the application lifecycle". > WDYT? > > > > > > > > > > Tim > > > > > > > > > On 3 November 2011 17:28, Michael Rene Armida wrote: > > > > I'm having some weird problems with threading on shutdown. As I > > > previously > > > > discovered, using neo4j in a multi-threaded Python app requires > > complete > > > > segregation of neo4j into a single thread. That all works fine for > > > > creating a database, however, it appears that shutting one down is a > > bit > > > of > > > > a mystery. I wrote a test program to minimally illustrate the > > > difficulty: > > > > > > > > http://pastebin.com/gg204kae > > > > > > > > Threading is always easy to get wrong, so I added a simple switch to > > > remove > > > > neo4j from the picture. When I disable neo, the program starts up > and > > > > shuts down cleanly. When I re-enable neo, some of the print > statements > > > > never get run, and the app mysteriously exits. > > > > > > > > I am testing this by saving it into a script and running it on the > > > command > > > > line. Any time after the worker thread finishes creating the neo > db, I > > > hit > > > > ctrl-c, and the two scenarios play out as above. > > > > > > > > It seems that the embedded Python API is not exactly at the forefront > > of > > > > popular use, and so I understand if nobody knows what's up with this. > > I > > > > just thought I should add something, for the record. I hope my > script > > > > doesn't have an obvious bug. > > > > > > > > Thanks, > > > > Michael > > > > > > > I had a discussion with Tobias this morning about threading with JPype, > and > > am currently writing a fix that will allow full threading support for > > neo4j-embedded. > > > > I'll make sure to run this script as well after that fix is implemented, > to > > make sure it gets fixed as well. > > > > As far as the forefront of use goes, there is a surprising amount of pypy > > downloads of neo4j-embedded (4000 new installs in the last 30 days), so > the > > feedback you are providing here is gonna end up helping a lot of people > :) > > Thank you so much for takin
Re: [Neo4j] Python embedding: problems with shutdown and threads
On Thu, Nov 3, 2011 at 6:55 AM, Tim McNamara wrote: > Here are a few notes of my own from using Neo4j with Python embedded. > I know that this isn't the right place . > > Ubuntu doesn't set $JAVA_HOME. I ended up hard coding the location of my > JVM. > > I seem to encounter unclean shutdowns all the time when running with > the iPython REPL. Is there a db.shutdown() command that I've been > neglecting to use? > Yeah, as long as you call db.shutdown(), things should be ok. See here: http://docs.neo4j.org/chunked/snapshot/python-embedded-reference-core.html We should perhaps set up the db to shut itself down properly automatically if it detects that python is shutting down.. We decided against that before, since we felt like "we don't own the application lifecycle". WDYT? > > Tim > > > On 3 November 2011 17:28, Michael Rene Armida wrote: > > I'm having some weird problems with threading on shutdown. As I > previously > > discovered, using neo4j in a multi-threaded Python app requires complete > > segregation of neo4j into a single thread. That all works fine for > > creating a database, however, it appears that shutting one down is a bit > of > > a mystery. I wrote a test program to minimally illustrate the > difficulty: > > > > http://pastebin.com/gg204kae > > > > Threading is always easy to get wrong, so I added a simple switch to > remove > > neo4j from the picture. When I disable neo, the program starts up and > > shuts down cleanly. When I re-enable neo, some of the print statements > > never get run, and the app mysteriously exits. > > > > I am testing this by saving it into a script and running it on the > command > > line. Any time after the worker thread finishes creating the neo db, I > hit > > ctrl-c, and the two scenarios play out as above. > > > > It seems that the embedded Python API is not exactly at the forefront of > > popular use, and so I understand if nobody knows what's up with this. I > > just thought I should add something, for the record. I hope my script > > doesn't have an obvious bug. > > > > Thanks, > > Michael > I had a discussion with Tobias this morning about threading with JPype, and am currently writing a fix that will allow full threading support for neo4j-embedded. I'll make sure to run this script as well after that fix is implemented, to make sure it gets fixed as well. As far as the forefront of use goes, there is a surprising amount of pypy downloads of neo4j-embedded (4000 new installs in the last 30 days), so the feedback you are providing here is gonna end up helping a lot of people :) Thank you so much for taking the time to document the issues you are having. /jake > > _______ > > 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 > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
[Neo4j] Running arbitrary code in the server
Breaking this out of the talk about deprecating REST traversals ( http://neo4j.org/forums/#nabble-td3460396). So, I'm trying to understand the arguments pro and con *POSTing arbitrary code to the server*, as well as *writing server plugins for the sake of adding domain logic inside the database*. To be clear, I'm not debating plugins that extend general server functionality, like spatial, gremlin, cypher and so on. It sounds to me like the main argument for both of these is "you use it to build SOA by deploying code into the database". I think SOA is kick-ass, but I'm not sure I understand why running your domain logic inside your database is a good way to go about building SOA systems. Is the SOA thing the main argument for supporting arbitrary code execution? if answer is True: *What are the arguments for doing SOA this way?* else: *What is the main argument for arbitrary code execution then?* The reason I want this discussion is because I'm worried that there are problems with this approach that will bite us later, and I want to know that the arguments pro are worth that pain. I also think that a lot of the arguments for arbitrary script execution are related to shortcomings in the server and in Cypher, and I don't think hacking around those shortcomings is a good solution. -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] REST traverse deprecation
On Wed, Nov 2, 2011 at 3:44 PM, Peter Neubauer < peter.neuba...@neotechnology.com> wrote: > Mmh, > this thread is just about deprecating the travers() section of the > REST API, not take away general scripting form the server. I have not > seen one single case where people have exploited the JavaScript > exposure in the return/stop evaluators to do anything like you say > Michael. > > Extensions and plugins are not going away for the time being, I am > only concerned about > http://docs.neo4j.org/chunked/snapshot/rest-api-traverse.html not > adding value to the API, and being able to be scripted in a more > concise way via the existing extensions (which I want to make examples > of). > > I haven't heard any argument for this case, so the question is whether > to document the usecases in other ways (Groovy, JavaScript or Cypher > plugins) and deprecate this section, since it doesn't add > functionality, just exposes scripting in a hacked-up way. > Good that you point this out, this thread is a bit confusing since we're talking about a lot of different things. If we can't find use cases that warrants the REST traversal API, we should deprecate it. It would be great to get the input of some of the people working on clients for the REST server before a decision is made though. I would also *really* like to continue the discussion about arbitrary script execution, because I want to understand the arguments for it. Perhaps we should break that discussion into a separate thread, to keep things concise. Imma start a new thread :) > > 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 - NOSQL for the Enterprise. > http://startupbootcamp.org/- Öresund - Innovation happens HERE. > > > > On Wed, Nov 2, 2011 at 3:11 AM, Michael Hunger > wrote: > > custom use-cases like the ones implemented by our customers with plugins > / extensions > > > > and in the case of the ruby script extensions a way I'd like to promote > to talk to the server that is > > > > 1) create you own RESTful endpoints that are focused on a protocol > speaking your domain and not nodes + rels > > 2) the protocol is use-case oriented > > 3) it only transmits the information necessary (not more). > > 4) The code of these endpoints would be transactionally executed > > > > Use-Cases with customers so far have been: > > * unique nodes with locking + index lookup > > * batch data insertion (also unique stuff see above) > > * custom traversals with complicated callbacks > > * aggregating multiple gremlin / cypher queries in the server and > returning only a partial result-set/projection of those executions > > * > > > > With the ruby script extension what we've done there is to leverage the > web/REST frameworks of the platform and allow rack-apps to expose their > REST endpoints within the neo4j-server. > > > > Thomas and I also talked about a more generic way to allow any language > supported by the javax.script extension to register endpoints with the > neo4j-server. > > > > A generic javax.scripting languages plugin would accommodate for more > ad-hoc execution mode for which writing an extension is too much ceremony. > > > > Michael > > > > > > Am 02.11.2011 um 10:54 schrieb Jacob Hansson: > > > >> On Wed, Nov 2, 2011 at 10:20 AM, Michael Hunger < > >> michael.hun...@neotechnology.com> wrote: > >> > >>> I vote not dropped, as there are lots of non-java developers out there > >>> which would want to use REST server dynamically. > >>> > >> > >> I am completely open to the notion that I am wrong here. But I want us > to > >> have answered the questions I was asking before properly, if we are > going > >> to embrace all these ways to talk to the server. > >> > >> > >> What use cases does dynamic script execution cover that cypher or > gremlin > >> do not? > >> > >> Why should those use cases not be covered by cypher or gremlin? > >> > >> > >> > >>> > >>> That was the reason why we wrote the ruby-script-extension support. > >>> > >>> Michael > >>> > >>> Am 02.11.2011 um 10:08 schrieb Jacob Hansson: > >>> > >>>> On Tue, Nov 1, 2011 at 5:37 PM, Peter Neubauer < > >>>> peter.neuba...@neotechnology.com>
Re: [Neo4j] REST traverse deprecation
On Wed, Nov 2, 2011 at 12:34 PM, Andres Taylor < andres.tay...@neotechnology.com> wrote: > On Wed, Nov 2, 2011 at 11:56 AM, Jacob Hansson < > jacob.hans...@neotechnology.com> wrote: > > > On Wed, Nov 2, 2011 at 11:11 AM, Michael Hunger < > > michael.hun...@neotechnology.com> wrote: > > > > > * custom traversals with complicated callbacks > > > > > > > This is really what my original question to Peter was about - what are > some > > traversals like this, that we currently cannot do with Cypher or Gremlin? > > Can we extend Cypher to accomodate those use cases? > > > Well, Gremlin is just Groovy+Pipes, so there's nothing you can't do in > Gremlin. > > If we're talking about Cypher, I have one for you: PageRank. PageRank > iterates over the data set a specified number of times, marking and > updating stuff on the fly, until it's happy and returns a result. It's not > hard at all to write using Gremlin, but impossible with Cypher. I can't see > a way to make that nice and easy with Cypher. > START a=node(1) MATCH p = a-[1..100]-other RETURN pageRank(a via p using weights blah saving state in property x) :) But seriously, aren't you alluding to a key distinction here - Graph Querying vs. Graph Processing? For processing, cypher is not your friend. But neither is writing jobs from scratch in your language of choice - at least not compared to writing a gremlin script. In this space (processing-style traversals), are there any use cases that are better served by arbitrary script execution than gremlin queries? And is catering to those use cases, if they exist, worth the cost in confusion, diffusion of effort and security problems? > > Andrés > ___ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Cypher: including start in result
On Wed, Nov 2, 2011 at 12:26 PM, Andres Taylor < andres.tay...@neotechnology.com> wrote: > On Wed, Nov 2, 2011 at 12:01 PM, Jacob Hansson < > jacob.hans...@neotechnology.com> wrote: > > > Is there a complex reason why this is the case, and is it going to stay > > this way? It feels a bit counter-intuitive.. > > > Cypher has no way of expressing uniqueness today. I think it should. I > think the current scheme is least surprising: it allows the foaf thing to > work without surprises: > > MATCH me-[:FRIEND]->friend<-[:FRIEND]-foaf > > This will not return yourself as a foaf. I think I would like to be able to > say: > > MATCH me-[:FRIEND]->friend<-[:FRIEND]-foaf WITH NO UNIQUENESS/NODE > UNIQUENESS/RELATIONSHIP UNIQUENESS/IDENTIFIER UNIQUENESS > Or something like that. Identifier uniqueness would be the default. It's a > difficult concept, so I want the default to be as non-surprising as > possible. > Makes sense. My two cents on this: The foaf example would have surprised me if it returned "me" the first time I ran it, but now, looking at the query, I'm actually surprised it does not. It would be cool to list some use cases, and try to determine which is the least surprising default. Also, the word "unique" could be confusing as well, since there could be lots of different nodes being referenced by the "me" identifier. Really, what you are saying is "Guarantee that any node referenced by this identifier is not referenced by any other". > > This is one of the things that keep me up at night. > Andrés > ___ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] REST traverse deprecation
On Wed, Nov 2, 2011 at 11:11 AM, Michael Hunger < michael.hun...@neotechnology.com> wrote: > custom use-cases like the ones implemented by our customers with plugins / > extensions > > and in the case of the ruby script extensions a way I'd like to promote to > talk to the server that is > > 1) create you own RESTful endpoints that are focused on a protocol > speaking your domain and not nodes + rels > Isn't running domain logic inside a database server a well known anti-pattern? My experience with companies building lots of stuff with stored procedures is that it is *really* hard to maintain, hard to scale, hard to test, hard to tweak and impossible to get an overview of. See for instance how much pain Etsy.com had getting off this type of architecture: http://arstechnica.com/business/news/2011/10/when-clever-goes-wrong-how-etsy-overcame-poor-architectural-choices.ars > 2) the protocol is use-case oriented > This also implies running domain logic in the database server. > 3) it only transmits the information necessary (not more). > This is a really good point. Wouldn't it be better though, if we pulled some use cases like this out and said "we need Cypher to be able to do this", and thus make Cypher better, rather than saying "screw it, lets just let clients use the database as an application server". What are some use cases where this occurs? Lets look at them, and see if it would be possible to make cypher or gremlin do it. > 4) The code of these endpoints would be transactionally executed > This is a bug, in my mind, of the REST API. Solving it in roundabout ways like this and the batch-operations-API is not actually solving the problem. > > Use-Cases with customers so far have been: > * unique nodes with locking + index lookup > This is an *excellent* use case. Compared to the scripting solution, wouldn't it be better if we supported upserts directly in the REST API, as a core feature? > * batch data insertion (also unique stuff see above) > This is mainly because the REST API is slow, no? If so, spending time working around the problem with arbitrary script execution is beating around the bush. We should fix the real problem here, not hack around it. > * custom traversals with complicated callbacks > This is really what my original question to Peter was about - what are some traversals like this, that we currently cannot do with Cypher or Gremlin? Can we extend Cypher to accomodate those use cases? > * aggregating multiple gremlin / cypher queries in the server and > returning only a partial result-set/projection of those executions > This also seems like a limitation of Cypher. Can you give an example of when this would be necessary, and we can talk about how that could be integrated into Cypher, if possible? > * > > With the ruby script extension what we've done there is to leverage the > web/REST frameworks of the platform and allow rack-apps to expose their > REST endpoints within the neo4j-server. > > Thomas and I also talked about a more generic way to allow any language > supported by the javax.script extension to register endpoints with the > neo4j-server. > > A generic javax.scripting languages plugin would accommodate for more > ad-hoc execution mode for which writing an extension is too much ceremony. > > Michael > > > Am 02.11.2011 um 10:54 schrieb Jacob Hansson: > > > On Wed, Nov 2, 2011 at 10:20 AM, Michael Hunger < > > michael.hun...@neotechnology.com> wrote: > > > >> I vote not dropped, as there are lots of non-java developers out there > >> which would want to use REST server dynamically. > >> > > > > I am completely open to the notion that I am wrong here. But I want us to > > have answered the questions I was asking before properly, if we are going > > to embrace all these ways to talk to the server. > > > > > > What use cases does dynamic script execution cover that cypher or gremlin > > do not? > > > > Why should those use cases not be covered by cypher or gremlin? > > > > > > > >> > >> That was the reason why we wrote the ruby-script-extension support. > >> > >> Michael > >> > >> Am 02.11.2011 um 10:08 schrieb Jacob Hansson: > >> > >>> On Tue, Nov 1, 2011 at 5:37 PM, Peter Neubauer < > >>> peter.neuba...@neotechnology.com> wrote: > >>> > >>>> Well, > >>>> I think that Cypher is not yes taking into account Uniqueness, or is > >>>> it Andres? Otherwise, most of the normal traversals are covered. > >>>> > >>>> To keep things consistent and give people a way of d
Re: [Neo4j] Cypher: including start in result
On Wed, Nov 2, 2011 at 11:18 AM, Michael Hunger < michael.hun...@neotechnology.com> wrote: > Hi, > > in the pattern matching employed by cypher nodes already bound to an > identifier won't be bound to another identifier. > I was thinking this was a bug when I saw Didis mail here, but wasn't sure so I didn't answer. Is there a complex reason why this is the case, and is it going to stay this way? It feels a bit counter-intuitive.. > > That is the reason why all nodes that already belong to principals don't > appear in n. > > In your case it might be easiest to just "return n,principals" > > Cheers > > Michael > > Am 02.11.2011 um 10:56 schrieb D. Frej: > > > Hi, > > > > I have a very simply graph: > > > > UserGroup 2 <-[:IS_MEMBER_OF]- UserGroup 1, User 3 > > UserGroup 1 <-[:IS_MEMBER_OF]- User 1, User 2 > > > > I use the following cypher to find all nodes that are below UserGroup 2 > > (I start at node User 3 and go one level up in the tree which equals > > UserGroup 2): > > > > START principals=node:nodes(NAME='User 3') > > MATCH (principals)-[:IS_MEMBER_OF]->()<-[:IS_MEMBER_OF*0..]-(n)" > > RETURN n > > > > The result does not contain User 3 even though it is a child of > > UserGroup2 and connected to it via IS_MEMBER_OF relationship. Is there > > any way to also include it in the result? > > > > Thanks, > > > > - Didi > > ___ > > 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 > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Cypher: ommitting relationship if not available
On Wed, Nov 2, 2011 at 11:01 AM, D. Frej wrote: > Hi, > > I have a very simply graph: > > UserGroup 2 <-[:IS_MEMBER_OF]- UserGroup 1, User 3 > UserGroup 1 <-[:IS_MEMBER_OF]- User 1, User 2 > > I want to find all nodes that are on the same level or on a level below > the starting point. Using > > START principals=node:nodes(NAME='User 3') > MATCH (principals)-[?:IS_MEMBER_OF]->()<-[:IS_MEMBER_OF*0..]-(n)" > RETURN n > > I first go one level up and then determine all nodes below this level. > However, it is not working if I change the start to > > START principals=node:nodes(NAME='UserGroup 2') > (because there is no IS_MEMBER_OF relationship to go up). > > Is there a way to ommit this condition if it is not available? To make > it somehow optional? > You could use an optional relationship here. See: http://docs.neo4j.org/chunked/snapshot/query-match.html#match-optional-relationship Note that this is the snapshot version of the documentation, you will want to look at the documentation for the version of neo4j you are using to make sure that this syntax is supported. > > Thanks, > > - Didi > _______ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] REST traverse deprecation
On Wed, Nov 2, 2011 at 10:20 AM, Michael Hunger < michael.hun...@neotechnology.com> wrote: > I vote not dropped, as there are lots of non-java developers out there > which would want to use REST server dynamically. > I am completely open to the notion that I am wrong here. But I want us to have answered the questions I was asking before properly, if we are going to embrace all these ways to talk to the server. What use cases does dynamic script execution cover that cypher or gremlin do not? Why should those use cases not be covered by cypher or gremlin? > > That was the reason why we wrote the ruby-script-extension support. > > Michael > > Am 02.11.2011 um 10:08 schrieb Jacob Hansson: > > > On Tue, Nov 1, 2011 at 5:37 PM, Peter Neubauer < > > peter.neuba...@neotechnology.com> wrote: > > > >> Well, > >> I think that Cypher is not yes taking into account Uniqueness, or is > >> it Andres? Otherwise, most of the normal traversals are covered. > >> > >> To keep things consistent and give people a way of doing fine grained > >> traversals, I would then suggest to document all the existing examples > >> using Cypher or Groovy code, so we can document that things are > >> working as expected and not loose functionality. > >> > > > > Sounds like a really good idea. > > > > > >> > >> The JavaScript exposure then would totally go away from the REST API > >> and possibly be factored out into a plugin like Groovy/Gremlin. Or > >> dropped. > >> > > > > I vote dropped :) > > > > > >> > >> WDYT? > >> > >> 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 - NOSQL for the Enterprise. > >> http://startupbootcamp.org/- Öresund - Innovation happens HERE. > >> > >> > >> > >> On Tue, Nov 1, 2011 at 9:31 AM, Jacob Hansson > >> wrote: > >>> On Tue, Nov 1, 2011 at 5:22 PM, Peter Neubauer < > >>> peter.neuba...@neotechnology.com> wrote: > >>> > >>>> Nope, > >>>> I mean a server side script execution (which we already are doing in > >>>> http://docs.neo4j.org/chunked/snapshot/rest-api-traverse.html) to > >>>> execute traversal API code on the server. Neo4js is a client driver. > >>>> > >>>> > >>> Remember that adding yet another way to talk to the server comes at a > >> cost > >>> of confusion and spreading engineering focus thin. > >>> > >>> I don't think we should do this unless there is a good answer to the > >>> question: > >>> > >>> *Is there anything* *that this solves that is not solved by Cypher or > >>> Gremlin, and if so, why don't we expand Cypher or Gremlin to > incorporate > >>> that use case instead? > >>> > >>> *Collecting our efforts in fewer buckets means that improvements will > >>> benefit everyone, not just the group that uses the Groovy endpoint, or > >> the > >>> Traversal API, or the JS endpoint and so on. > >>> > >>> > >>>> 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 - NOSQL for the Enterprise. > >>>> http://startupbootcamp.org/- Öresund - Innovation happens HERE. > >>>> > >>>> > >>>> > >>>> On Tue, Nov 1, 2011 at 9:19 AM, Andres Taylor > >>>> wrote: > >>>>> You, something like Neo4js <https://github.com/neo4j/neo4js>? We've > >> had > >>>>> that since forever. Or do you mean something different? > >>>>> > >>>>> Andrés > >>>>> > >>>>> On Tue, Nov 1, 2011 at 5:06 PM, Peter Neubauer < > >>>>> peter.neuba...@neotechnology.com> wrote: > >>>>> > &
Re: [Neo4j] REST traverse deprecation
On Tue, Nov 1, 2011 at 5:37 PM, Peter Neubauer < peter.neuba...@neotechnology.com> wrote: > Well, > I think that Cypher is not yes taking into account Uniqueness, or is > it Andres? Otherwise, most of the normal traversals are covered. > > To keep things consistent and give people a way of doing fine grained > traversals, I would then suggest to document all the existing examples > using Cypher or Groovy code, so we can document that things are > working as expected and not loose functionality. > Sounds like a really good idea. > > The JavaScript exposure then would totally go away from the REST API > and possibly be factored out into a plugin like Groovy/Gremlin. Or > dropped. > I vote dropped :) > > WDYT? > > 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 - NOSQL for the Enterprise. > http://startupbootcamp.org/ - Öresund - Innovation happens HERE. > > > > On Tue, Nov 1, 2011 at 9:31 AM, Jacob Hansson > wrote: > > On Tue, Nov 1, 2011 at 5:22 PM, Peter Neubauer < > > peter.neuba...@neotechnology.com> wrote: > > > >> Nope, > >> I mean a server side script execution (which we already are doing in > >> http://docs.neo4j.org/chunked/snapshot/rest-api-traverse.html) to > >> execute traversal API code on the server. Neo4js is a client driver. > >> > >> > > Remember that adding yet another way to talk to the server comes at a > cost > > of confusion and spreading engineering focus thin. > > > > I don't think we should do this unless there is a good answer to the > > question: > > > > *Is there anything* *that this solves that is not solved by Cypher or > > Gremlin, and if so, why don't we expand Cypher or Gremlin to incorporate > > that use case instead? > > > > *Collecting our efforts in fewer buckets means that improvements will > > benefit everyone, not just the group that uses the Groovy endpoint, or > the > > Traversal API, or the JS endpoint and so on. > > > > > >> 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 - NOSQL for the Enterprise. > >> http://startupbootcamp.org/- Öresund - Innovation happens HERE. > >> > >> > >> > >> On Tue, Nov 1, 2011 at 9:19 AM, Andres Taylor > >> wrote: > >> > You, something like Neo4js <https://github.com/neo4j/neo4js>? We've > had > >> > that since forever. Or do you mean something different? > >> > > >> > Andrés > >> > > >> > On Tue, Nov 1, 2011 at 5:06 PM, Peter Neubauer < > >> > peter.neuba...@neotechnology.com> wrote: > >> > > >> >> Also, > >> >> there is another possibility: We are exposing a ECMA script execution > >> >> engine via the Traverse enpoints. Instead of trying to shoehorn the > >> >> traversal API into REST calls and then anyway executing script > >> >> snippets, Why not exposing a JavaScript plugin along exactly the same > >> >> lines as the Groovy plugin, and provide examples on how to use the > >> >> same usecases via that plugin, so we cover the traversal API that > way? > >> >> > >> >> 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 - NOSQL for the Enterprise. > >> >> http://startupbootcamp.org/- Öresund - Innovation happens HERE. > >> >> > >> >> > >> >> > >> >> On Tue, Nov 1, 2011 at 9:00 AM, Jacob Hansson > >> >> wrote: > >> >> > It would be interesting to rephrase the question like this: > >> >> > > >> >> > Are there any use cases that the REST t
Re: [Neo4j] REST traverse deprecation
On Tue, Nov 1, 2011 at 5:22 PM, Peter Neubauer < peter.neuba...@neotechnology.com> wrote: > Nope, > I mean a server side script execution (which we already are doing in > http://docs.neo4j.org/chunked/snapshot/rest-api-traverse.html) to > execute traversal API code on the server. Neo4js is a client driver. > > Remember that adding yet another way to talk to the server comes at a cost of confusion and spreading engineering focus thin. I don't think we should do this unless there is a good answer to the question: *Is there anything* *that this solves that is not solved by Cypher or Gremlin, and if so, why don't we expand Cypher or Gremlin to incorporate that use case instead? *Collecting our efforts in fewer buckets means that improvements will benefit everyone, not just the group that uses the Groovy endpoint, or the Traversal API, or the JS endpoint and so on. > 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 - NOSQL for the Enterprise. > http://startupbootcamp.org/- Öresund - Innovation happens HERE. > > > > On Tue, Nov 1, 2011 at 9:19 AM, Andres Taylor > wrote: > > You, something like Neo4js <https://github.com/neo4j/neo4js>? We've had > > that since forever. Or do you mean something different? > > > > Andrés > > > > On Tue, Nov 1, 2011 at 5:06 PM, Peter Neubauer < > > peter.neuba...@neotechnology.com> wrote: > > > >> Also, > >> there is another possibility: We are exposing a ECMA script execution > >> engine via the Traverse enpoints. Instead of trying to shoehorn the > >> traversal API into REST calls and then anyway executing script > >> snippets, Why not exposing a JavaScript plugin along exactly the same > >> lines as the Groovy plugin, and provide examples on how to use the > >> same usecases via that plugin, so we cover the traversal API that way? > >> > >> 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 - NOSQL for the Enterprise. > >> http://startupbootcamp.org/- Öresund - Innovation happens HERE. > >> > >> > >> > >> On Tue, Nov 1, 2011 at 9:00 AM, Jacob Hansson > >> wrote: > >> > It would be interesting to rephrase the question like this: > >> > > >> > Are there any use cases that the REST traversal API covers, that we > >> > currently cannot replicate in Cypher or Gremlin? > >> > > >> > On Sun, Oct 30, 2011 at 2:45 PM, Peter Neubauer < > >> > peter.neuba...@neotechnology.com> wrote: > >> > > >> >> Well, > >> >> Andres has been putting the first algo into cypher and we are > thinking > >> of > >> >> exposing them there so thru can be used as path functions in an > >> expression. > >> >> However, that will be step 2. WDYT? > >> >> On Oct 29, 2011 6:47 PM, "maxdemarzi" wrote: > >> >> > >> >> > I think the traversal rest api is fine for my purposes, but if > cypher > >> is > >> >> > where we want to go long term, then we need to deprecate it in 1.6 > and > >> >> drop > >> >> > it in 1.7. > >> >> > > >> >> > This gives us some time to update our libraries and for cypher to > >> settle > >> >> > down. > >> >> > > >> >> > Are you guys thinking of getting rid of the rest built in graph > >> >> algorithms > >> >> > or are those there to stay? > >> >> > > >> >> > -- > >> >> > View this message in context: > >> >> > > >> >> > >> > http://neo4j-community-discussions.438527.n3.nabble.com/Neo4j-REST-traverse-deprecation-tp3460396p3464979.html > >> >> > Sent from the Neo4j Community Discussions mailing list archive at > >> >> > Nabble.com. > >> >> > ___ > >> >> > Neo4j mailing list > >> >> > User@lists.neo4j.org > >> >
Re: [Neo4j] Java segfault using paste and Python bindings
blank('/')) > > >>> response.body > > 'it worked' > > > > Relevant version info: > > - ubuntu 11.04 (same crash under 32- and 64-bit systems) > > - Python 2.7.1-0ubuntu5 > > - neo4j_embedded-1.5.b2 > > - jpype 0.5.4.1-3 > > - paste 1.7.5.1 > > - OpenJDK 6b22-1.10.2 (same crash under the Sun JRE) > > > > > > Thanks for your time and any clues you might have. > > > ___ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] REST traverse deprecation
It would be interesting to rephrase the question like this: Are there any use cases that the REST traversal API covers, that we currently cannot replicate in Cypher or Gremlin? On Sun, Oct 30, 2011 at 2:45 PM, Peter Neubauer < peter.neuba...@neotechnology.com> wrote: > Well, > Andres has been putting the first algo into cypher and we are thinking of > exposing them there so thru can be used as path functions in an expression. > However, that will be step 2. WDYT? > On Oct 29, 2011 6:47 PM, "maxdemarzi" wrote: > > > I think the traversal rest api is fine for my purposes, but if cypher is > > where we want to go long term, then we need to deprecate it in 1.6 and > drop > > it in 1.7. > > > > This gives us some time to update our libraries and for cypher to settle > > down. > > > > Are you guys thinking of getting rid of the rest built in graph > algorithms > > or are those there to stay? > > > > -- > > View this message in context: > > > http://neo4j-community-discussions.438527.n3.nabble.com/Neo4j-REST-traverse-deprecation-tp3460396p3464979.html > > Sent from the Neo4j Community Discussions mailing list archive at > > Nabble.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 > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Delete a graph in Neo4J REST server
On Fri, Oct 21, 2011 at 2:14 AM, andrew ton wrote: > > > Hello, > > Is there a API or a way to delete a graph in the Neo4J REST server? For > example, I can send a REST request to delete the root of the graph then all > nodes under that root are also removed. > > Thanks, > Hi Andrew, deleting the root node will only remove the root node, the rest of the graph will remain intact. The server on it's own can't delete the full database in one go, but you can use this server plugin to add that functionality: https://github.com/jexp/neo4j-clean-remote-db-addon /jake > ___ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Visualizing all nodes + relationships on WebAdmin
No, there is currently no way to do that. Once we add cypher support to the databrowser search bar, you would be able to write a cypher query that returns everything at some arbitrary depth, which in practice could be used to return the whole graph, as long as it's all connected, would that be good enough? /jake On 2011 10 18 10:52, "Pablo Pareja" wrote: > Hi, > > Can this be achieved without having to access a subset based on some > property/id/etc... and then > opening all incoming/outgoing relationships and so on? > Cheers, > > Pablo > > -- > Pablo Pareja Tobes > > My site http://about.me/pablopareja > LinkedInhttp://www.linkedin.com/in/pabloparejatobes > Twitter http://www.twitter.com/pablopareja > > Creator of Bio4j --> http://www.bio4j.com > > http://www.ohnosequences.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] Index Creation via REST API
It seems that what is happening is that there already is an index with the name you specify created, and for some reason, it has a boolean value as its type. We will have to dig into how that happened (do you think you could have passed something like type:true during your experiments?), but it may be possible to fix it without a patch, if you can delete the existing index. If you open up webadmin, there is a tab for index management. See if your index shows up there, and if it does, delete it. Then try running the curl query you describe below again. /Jake On Mon, Oct 17, 2011 at 6:35 PM, Christian Scharr < christian.sch...@hsh-berlin.com> wrote: > curl -X POST http://localhost:7474/db/data/index/node/ -H "Content-Type: > application/json" --data-binary > '{"name":"address","config":{"provider":"lucene","type":"fulltext"}}' > > Greets, > Christian Scharr > > > -Original Message- > > From: user-boun...@lists.neo4j.org [mailto:user- > > boun...@lists.neo4j.org] On Behalf Of Peter Neubauer > > Sent: Monday, October 17, 2011 6:11 PM > > To: Neo4j user discussions > > Subject: Re: [Neo4j] Index Creation via REST API > > > > This looks right. Can you create the error with a curl call so I can > > recreate it? > > > > /peter > > > > Sent from my phone. > > On Oct 17, 2011 5:58 PM, "Christian Scharr" > berlin.com> > > wrote: > > > > > Hello, > > > > > > trying to work RESTfully with Neo4j via Standalone Server (1.5.M01) > > I'm > > > about to become desperate. > > > > > > I'm sending an POST-Request to > > > http://localhost:7474/db/data/index/node/, getting status-code 500 > > with > > > the response-text "java.lang.Boolean cannot be cast to > > > java.lang.String". > > > > > > The indexes I've wanted to create are the following one: > > > > > > {"name":"address","config":{"provider":"lucene","type":"fulltext"}} > > > {"name":"user","config":{"provider":"lucene","type":"fulltext"}} > > > > > > Neo4j log contains the following line: > > > > > > "17.10.2011 16:56:10 org.mortbay.log.Slf4jLog warn > > > FATAL: /db/data/index/node/ > > > java.lang.ClassCastException: java.lang.Boolean cannot be cast to > > > java.lang.String > > >at > > > > > org.neo4j.index.impl.lucene.LuceneIndexImplementation.match(LuceneIndex > > I > > > mplementation.java:165) > > >at > > > > > org.neo4j.index.impl.lucene.LuceneIndexImplementation.configMatches(Luc > > e > > > neIndexImplementation.java:156) > > >at > > > > > org.neo4j.kernel.IndexManagerImpl.findIndexConfig(IndexManagerImpl.java > > : > > > 128) > > >at > > > > > org.neo4j.kernel.IndexManagerImpl.getOrCreateIndexConfig(IndexManagerIm > > p > > > l.java:183) > > >at > > > > > org.neo4j.kernel.IndexManagerImpl.getOrCreateNodeIndex(IndexManagerImpl > > . > > > java:272) > > >at > > > org.neo4j.kernel.IndexManagerImpl.forNodes(IndexManagerImpl.java:260) > > >at > > > > > org.neo4j.server.rest.web.DatabaseActions.createNodeIndex(DatabaseActio > > n > > > s.java:338) > > >at > > > > > org.neo4j.server.rest.web.RestfulGraphDatabase.jsonCreateNodeIndex(Rest > > f > > > ulGraphDatabase.java:589) [...]" > > > > > > Whats wrong with this requests and in case this is an known bug at > > the > > > REST server-component when will it be fixed? > > > > > > > > > Greets, > > > Christian Scharr > > > ___ > > > 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 > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Python embedded and Java batch inserter
I think this might be another case of a problem that would be a lot easier to solve if the python bindings pushed out full stack traces. It's in my backlog to fix that. I'm gonna *guess* that the problem has to do with store upgrades. Are you using the 1.5.M02 version of neo4j embedded? If so, you need to tell the database it's ok to upgrade the store, like this: from neo4j import GraphDatabase db = new GraphDatabase('somefolder', allow_store_upgrade="true") On Mon, Oct 17, 2011 at 4:19 PM, Jacopo Farina wrote: > Hi all, > I'm trying to work with Neo4j embedded with Python, but, if I try to open a > database created with the Java batch inserter (neo4j 1.4) by using > Python-embedded, I get the error described here > https://trac.neo4j.org/ticket/275 > The database works correctly when opened in Neoclipse or with neo4j > stand-alone server (by replacing the data folder), and if I create a new > database directly with Python embedded it works too. Is there a way to > solve > this problem? > > Then, how much is fast the neo4j-REST traverser compared with the Java > embedded traverser on a 3 million nodes graph? > As far as I know, we don't have any benchmarks that compare this. The speed difference should not be huge though. The server is a lot slower for reads and writes, but for traversals, the overhead of the server plays a much smaller part. Sidenote: The size of your graph should generally not affect traversal speed (unless the graph does not fit in memory), what matters is how much of the graph you traverse. In java embedded, we used to say that you get maybe 1 000 000 relationships traversed per second (although speed can be both higher and much lower, depending on what your traversal does). > > Cheers! > Jacopo Farinat > ___ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > /Jake -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] WebAdmin visualization (are rels. labels configurable?)
They can't currently, but it is actually the feature I'm currently working on, so it's coming :) On Mon, Oct 17, 2011 at 10:03 PM, Pablo Pareja wrote: > Hi! > > I just tried the WebAdmin visualization time for the first time and it > seems > pretty cool. > I have one question though, can be relationships labels be different than > the rel. name? I've been playing a bit > with the display options for nodes but didn't find anything for > relationhips. > > Cheers, > > Pablo > > -- > Pablo Pareja Tobes > > My site http://about.me/pablopareja > LinkedInhttp://www.linkedin.com/in/pabloparejatobes > Twitter http://www.twitter.com/pablopareja > > Creator of Bio4j --> http://www.bio4j.com > > http://www.ohnosequences.com > ___ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Configuring Neo4J via Python bindings
It looks like our build pipeline is clogged up right now. We're looking into it, but it might take a while.. /jake On Mon, Oct 17, 2011 at 9:56 PM, Chris Diehl wrote: > Hey Jake, > > Awesome! Thanks so much for making this happen! On my end, it doesn't look > like the docs are up yet. I'll check back... > > Thanks again, Chris > > On Mon, Oct 17, 2011 at 4:12 AM, Jacob Hansson < > jacob.hans...@neotechnology.com> wrote: > > > Hey Chris, > > > > I've just added support for passing in extra JVM args, it's available as > of > > this commit: > > > > > https://github.com/neo4j/python-embedded/commit/d41950f8c7e6c65d67f60868976e1864a496a2ea > > > > Documentation will pop up in an hour or so here: > > > http://docs.neo4j.org/chunked/snapshot/python-embedded-reference-core.html > > > > This feature will be available as of the 1.5 release, due later this > week. > > If you want to get access to it right away, you can build neo4j-embedded > > directly from source, the code is available here: > > https://github.com/neo4j/python-embedded > > > > See the readme for how to build from source. > > > > > > Thanks for bringing this up! > > Jake > > > > On Fri, Oct 14, 2011 at 7:47 PM, Chris Diehl > wrote: > > > > > Hi Michael, > > > > > > I added a print statement to my code to output how many nodes have been > > > inserted. The script zips along until it gets up around 18.6K nodes. > Then > > > the program halts when a Java exception is thrown, as shown below. > > > > > > Inserting user 18629 > > > Inserting user 18630 > > > Inserting user 18631 > > > Inserting user 18632 > > > Inserting user 18633 > > > Inserting user 18634 > > > Inserting user 18635 > > > Traceback (most recent call last): > > > File "jive_app_db_graph_construction.py", line 53, in > > >node_idx['userid'][user_node['userid']] = user_node > > > File > > > > > > > > > "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/contextlib.py", > > > line 34, in __exit__ > > >self.gen.throw(type, value, traceback) > > > File "", line 11, in transaction > > > RuntimeError: An unknown error occured while handling a Java Exception > > > > > > Strangely enough, the script returned a more explicit Out of Heap > Memory > > > error once when I reran the script. It's bizarre that the failure > output > > is > > > not consistent, given I start with a clean DB each time. Increasing the > > > amount of available heap memory seems like the reasonable place to > start. > > > If > > > you can let me know how to specify the amount of heap memory for the > JVM > > > instantiated by the bindings, that'd be great. > > > > > > I'm running on a MacBook Pro with 8 gigs of memory running OSX 10.6.8. > > > > > > Here's the contents of the messages.log file. > > > > > > 2011-10-14 10:34:17.336-0700: Creating new db @ > > /Users/chris.diehl/Graphs/ > > > JiveCommunityV5.0.ng/neostore > > > 2011-10-14 10:34:17.419-0700: Opened [/Users/chris.diehl/Graphs/ > > > JiveCommunityV5.0.ng/nioneo_logical.log.1] clean empty log, version=0, > > > lastTxId=1 > > > 2011-10-14 10:34:17.441-0700: Opened [/Users/chris.diehl/Graphs/ > > > JiveCommunityV5.0.ng/index/lucene.log.1] clean empty log, version=0, > > > lastTxId=1 > > > 2011-10-14 10:34:17.443-0700: TM new log: tm_tx_log.1 > > > 2011-10-14 10:34:17.451-0700: --- CONFIGURATION START --- > > > 2011-10-14 10:34:17.451-0700: Physical mem: 8192MB, Heap size: 123MB > > > 2011-10-14 10:34:17.452-0700: Kernel version: Neo4j - Graph Database > > Kernel > > > 1.5-SNAPSHOT (revision: 1.5.M02-4-g3d1e9d8) > > > 2011-10-14 10:34:17.453-0700: Neo4j - Graph Database Kernel > 1.5-SNAPSHOT > > > (revision: 1.5.M02-4-g3d1e9d8) > > > 2011-10-14 10:34:17.456-0700: Operating System: Mac OS X; version: > > 10.6.8; > > > arch: x86_64; cpus: 8 > > > 2011-10-14 10:34:17.456-0700: VM Name: Java HotSpot(TM) 64-Bit Server > VM > > > 2011-10-14 10:34:17.456-0700: VM Vendor: Apple Inc. > > > 2011-10-14 10:34:17.456-0700: VM Version: 20.1-b02-384 > > > 2011-10-14 10:34:17.456-0700: Boot Class Path: > > > > > > > > > /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Cla
Re: [Neo4j] Set property on node in Neo4j REST server
On Mon, Oct 17, 2011 at 8:05 AM, Jim Webber wrote: > Hi Peter, > > For the specific case of updating a single property then: > > PUT node/{node_id}/property/{property_key} > > with an entity body like: > > "some text" > > or > > 27 > > would be OK I think > > But not until the 1.6 M01 release :-) > But this is exactly what we do today, no? > > Jim > ___ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] WebAdmin visualization tool for large DB ?
That would be really interesting! I'll make a note of it and ping you when this gets up to the top of the backlog, if that's ok with you? /Jake On Mon, Oct 17, 2011 at 2:50 PM, Rick Bullotta wrote: > We're doing something similar as part of a "visual search" engine for > ThingWorx. Our UX designers might be able to provide some > recommendations/input on Neo4J DB visualization also. > > -Original Message- > From: user-boun...@lists.neo4j.org [mailto:user-boun...@lists.neo4j.org] > On Behalf Of Jacob Hansson > Sent: Monday, October 17, 2011 8:30 AM > To: Neo4j user discussions > Subject: Re: [Neo4j] WebAdmin visualization tool for large DB ? > > On Mon, Oct 17, 2011 at 12:49 PM, Rick Bullotta < > rick.bullo...@thingworx.com > > wrote: > > > I think that both Neo4J and webadmin should have the option of specifying > > "first N" relationships as a "limiter". This limit should be on a > > per-relationship basis (e.g. the first "N" of each type, rather than > simply > > the first "N" relationships). This way, you would be able to visualize > all > > of the relationship types that go in/out of the node, but not be > overwhelmed > > with one specific relationship type. Also, it would be ideal if some > visual > > cue that there were more relationships of a given type could be provided > > (e.g. a relationship line to a box labeled "...and 10,679 more" > > > > > > > > From: user-boun...@lists.neo4j.org [user-boun...@lists.neo4j.org] On > > Behalf Of Pablo Pareja [ppar...@era7.com] > > Sent: Monday, October 17, 2011 6:44 AM > > To: Neo4j user discussions > > Subject: Re: [Neo4j] WebAdmin visualization tool for large DB ? > > > > Hi Mattias, > > > > what about the hypothetical scenario where there are ~ 1.000.000 > > relationships going out from a node, > > would the visualization tool try to plot all theses relationships? > > If not, would it first fetch them all and then plot a 1.000.000 group > node? > > Or would it rather plot something like* more than 'x' relationships > coming > > out from here*? > > > > Currently, it would pull down all relationships, and render a group. Since > we've added support for paging traversals since that code was written, we > could do something like what Rick is suggesting. It would be fun to sketch > a > bit on how a UI like that could work.. > > There is quite a bit of stuff in the webadmin backlog, so this won't get > done right now, but it will eventually bubble to the top of the list :) > > > > Cheers, > > > > Pablo > > > > On Mon, Oct 17, 2011 at 12:38 PM, Mattias Persson < > > matt...@neotechnology.com > > > wrote: > > > > > Hi Pablo, > > > > > > I don't think if there are any hard limits in the webadmin visualizer, > It > > > mostly depends on your computer and browser (what with the > implementation > > > of > > > web workers and all) I'd say. > > > > > > 2011/10/13 Pablo Pareja > > > > > > > Hi, > > > > > > > > I was looking for a way to visualize and interact with small subsets > of > > > > large Neo4j databases, *(somehow* > > > > *navigating through the data in order to have a general idea of how > > > things > > > > are organized at specific parts* > > > > *of my DB)*. > > > > So before starting to create my own solution to that, I'd like to > know > > > > which > > > > are the limits/constraints of the new > > > > WebAdmin tool ?* (in terms of number of rels/nodes in the > neighborhood/ > > > > total DB)* > > > > Thanks, > > > > > > > > Pablo > > > > > > > > -- > > > > Pablo Pareja Tobes > > > > > > > > My site http://about.me/pablopareja > > > > LinkedInhttp://www.linkedin.com/in/pabloparejatobes > > > > Twitter http://www.twitter.com/pablopareja > > > > > > > > Creator of Bio4j --> http://www.bio4j.com > > > > > > > > http://www.ohnosequences.com > > > > ___ > > > > Neo4j mailing list > > > > User@lists.neo4j.org > > > > https://lists.neo4j.org/mailman/listinfo/user > > > > > > > > > > > > > > > > -- &g
Re: [Neo4j] WebAdmin visualization tool for large DB ?
On Mon, Oct 17, 2011 at 12:49 PM, Rick Bullotta wrote: > I think that both Neo4J and webadmin should have the option of specifying > "first N" relationships as a "limiter". This limit should be on a > per-relationship basis (e.g. the first "N" of each type, rather than simply > the first "N" relationships). This way, you would be able to visualize all > of the relationship types that go in/out of the node, but not be overwhelmed > with one specific relationship type. Also, it would be ideal if some visual > cue that there were more relationships of a given type could be provided > (e.g. a relationship line to a box labeled "...and 10,679 more" > > > > From: user-boun...@lists.neo4j.org [user-boun...@lists.neo4j.org] On > Behalf Of Pablo Pareja [ppar...@era7.com] > Sent: Monday, October 17, 2011 6:44 AM > To: Neo4j user discussions > Subject: Re: [Neo4j] WebAdmin visualization tool for large DB ? > > Hi Mattias, > > what about the hypothetical scenario where there are ~ 1.000.000 > relationships going out from a node, > would the visualization tool try to plot all theses relationships? > If not, would it first fetch them all and then plot a 1.000.000 group node? > Or would it rather plot something like* more than 'x' relationships coming > out from here*? > Currently, it would pull down all relationships, and render a group. Since we've added support for paging traversals since that code was written, we could do something like what Rick is suggesting. It would be fun to sketch a bit on how a UI like that could work.. There is quite a bit of stuff in the webadmin backlog, so this won't get done right now, but it will eventually bubble to the top of the list :) > Cheers, > > Pablo > > On Mon, Oct 17, 2011 at 12:38 PM, Mattias Persson < > matt...@neotechnology.com > > wrote: > > > Hi Pablo, > > > > I don't think if there are any hard limits in the webadmin visualizer, It > > mostly depends on your computer and browser (what with the implementation > > of > > web workers and all) I'd say. > > > > 2011/10/13 Pablo Pareja > > > > > Hi, > > > > > > I was looking for a way to visualize and interact with small subsets of > > > large Neo4j databases, *(somehow* > > > *navigating through the data in order to have a general idea of how > > things > > > are organized at specific parts* > > > *of my DB)*. > > > So before starting to create my own solution to that, I'd like to know > > > which > > > are the limits/constraints of the new > > > WebAdmin tool ?* (in terms of number of rels/nodes in the neighborhood/ > > > total DB)* > > > Thanks, > > > > > > Pablo > > > > > > -- > > > Pablo Pareja Tobes > > > > > > My site http://about.me/pablopareja > > > LinkedInhttp://www.linkedin.com/in/pabloparejatobes > > > Twitter http://www.twitter.com/pablopareja > > > > > > Creator of Bio4j --> http://www.bio4j.com > > > > > > http://www.ohnosequences.com > > > ___ > > > 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 > > > > > > -- > Pablo Pareja Tobes > > My site http://about.me/pablopareja > LinkedInhttp://www.linkedin.com/in/pabloparejatobes > Twitter http://www.twitter.com/pablopareja > > Creator of Bio4j --> http://www.bio4j.com > > http://www.ohnosequences.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 > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Configuring Neo4J via Python bindings
ve been working on to construct a > > > multi-relational graph in Neo4j. I am using the new Python bindings for > > > embedded Neo4j. After creating about 18K nodes, the database ground to > a > > > halt. > > > > > > In the past, when using Gremlin, I would up the heap size for the JVM > > when > > > encountering problems. I'm not sure how to tweak settings for the JVM > now > > > that I'm using the Python bindings to fire up the database. Can I do > that > > > from the GraphDatabase() call? Or do I need to look elsewhere to tweak > > the > > > JVM parameters? > > > > > > If you have any other suggestions about parameters I should change, I'm > > all > > > ears. > > > > > > Thanks! > > > > > > Chris > > > > > > -- > > > View this message in context: > > > http://neo4j-community-discussions.438527.n3.nabble.com/Configuring-Neo4J-via-Python-bindings-tp3419961p3419961.html > > > Sent from the Neo4j Community Discussions mailing list archive at > > Nabble.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 mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Deprecation Warning with Python Neo4j Bindings
Glad you're enjoying it :) The warning seems to be coming from JPype itself, we'll see if they end up pushing an update for it. If it ends up becoming a problem for supporting newer python versions, we could potentially write a patch for JPype.. /Jake On Wed, Oct 12, 2011 at 10:42 AM, Peter Neubauer < peter.neuba...@neotechnology.com> wrote: > Neo folks, > > Just wanted to pass along a deprecation warning I'm getting after > installing > the latest versions of JPype and Neo4j under Python 2.6. > > >>> from neo4j import GraphDatabase > > /Users/chris.diehl/.virtualenvs/py26-neo4j-embedded/lib/python2.6/site-packages/jpype/_pykeywords.py:18: > DeprecationWarning: the sets module is deprecated > import sets > > Stoked to use this for pushing data into Neo4j. Thanks again! > > Chris > > > > > > > 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. > _______ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Embedded neo4j in Python up to date again
Agreed. It was Tobias that came up with that solution, I quite like it as well, clean and simple. /Jake On Tue, Oct 11, 2011 at 6:00 AM, Tim McNamara wrote: > This is great news. I love that it uses context managers for transactions. > > On 7 October 2011 02:06, Jacob Hansson > wrote: > > On Thu, Oct 6, 2011 at 1:57 PM, Peter Neubauer < > > peter.neuba...@neotechnology.com> wrote: > > > >> Yes Javier, > >> that would be great! Do you think you could open an issue and provide > >> some details on how to go about it? > >> > >> 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 Wed, Oct 5, 2011 at 5:15 PM, Javier de la Rosa > >> wrote: > >> > On Wed, Oct 5, 2011 at 07:48, Jacob Hansson > >> > wrote: > >> >> there is now a first stable release of the new "neo4j-embedded" > >> >> python package available from PyPi. > >> > > >> > This news is really great! And I'm very glad to see that some methods > >> > are seemed to the neo4j-rest-client [1]. Is there any chance to find > >> > some day from neo4j import restgraphdatabase and to make both > >> > API's totally equal? > >> > > >> > Thank you very much for all the work involved. > >> > Regards! > >> > > >> > > >> > > >> > [1] https://github.com/versae/neo4j-rest-client > >> > > >> > -- > >> > Javier de la Rosa > >> > http://versae.es > >> > ___ > >> > 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 > >> > > > > Javier, > > > > it would be really awesome to combine the two, or at least make sure the > > APIs are completely compatible. > > > > I'm hesitant to bundle them together, because the REST client is pure > > python, and can keep a very small footprint. The embedded package, on the > > other hand, bundles the full Neo4j distribution, and so it's a full 10MB > > large. > > > > In most settings, this won't matter much, but it still feels unnecessary > to > > force people who just want the REST client to include the full DB > > distribution in their projects. > > > > > > Architecture-wise, perhaps we can have a common front for them, that can > > then be powered either by the embedded implementation, or by the REST > > client, and then use something like the db path to determine which one to > > use: > > > > from neo4j import GraphDatabase > > > > embeddeddb = GraphDatabase('/home/data') > > serverdb = GraphDatabase('http://localhost:7474') > > > > > > There is one major hurdle we need to get past first, we need to implement > > transaction support in the REST API that is feature-compatible with the > > embedded transaction API. When that is in place, the REST client will be > > able to behave exactly like the embedded client, and we can combine them. > > > > /Jake > > > > -- > > Jacob Hansson > > Phone: +46 (0) 763503395 > > Twitter: @jakewins > > ___ > > 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 > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Neo4j embedded
If you choose to use the server or if you choose the embedded database will have a significant impact on how those results turn out. For performing large queries, the server should not be much slower than the embedded database. It will be significantly slower (more than two orders of magnitude) on single read/write operations. Like Jim mentioned, we are looking at a new REST implementation that essentially nullifies this speed difference. It is currently at an experimental stage, but we will make sure to share details and get feedback on it from y'all as it progresses, stay tuned. /Jake On Fri, Oct 7, 2011 at 3:15 PM, Antriani Stylianou wrote: > Thanks again for the answer but my system is actually a benchmarking > system! > In other words I am trying to find out if there are performance > difference between the 2 DBs not through an application. > > On 10/7/11 1:36 PM, Jim Webber wrote: > > Hi Antriani, > > > >> Ok, but the REST API doesn't produce more network overhead (i.e. > >> HTTP...) compared to a driver implementation using sockets for access > >> for example MySQL JDBC ? > > I have no data to support this, but I'm going to make an educated guess > and say that the MySQL JDBC driver is overall faster than our REST API :-) > > > > But my point stands: measure your system, not its components. > > > > Neo4j might well have a slower network API than MySQL, but you might find > that because of the data model, you ship less data over the network, or the > queries run so much faster that network differences become negligible. > > > > Something will be your bottleneck in either the Neo4j case or the MySQL > case, but if the Neo4j case is faster despite having a slower network > interface, then you might not care. > > > > Jim > > ___ > > 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 > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Embedded neo4j in Python up to date again
On Thu, Oct 6, 2011 at 1:57 PM, Peter Neubauer < peter.neuba...@neotechnology.com> wrote: > Yes Javier, > that would be great! Do you think you could open an issue and provide > some details on how to go about it? > > 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 Wed, Oct 5, 2011 at 5:15 PM, Javier de la Rosa > wrote: > > On Wed, Oct 5, 2011 at 07:48, Jacob Hansson > > wrote: > >> there is now a first stable release of the new "neo4j-embedded" > >> python package available from PyPi. > > > > This news is really great! And I'm very glad to see that some methods > > are seemed to the neo4j-rest-client [1]. Is there any chance to find > > some day from neo4j import restgraphdatabase and to make both > > API's totally equal? > > > > Thank you very much for all the work involved. > > Regards! > > > > > > > > [1] https://github.com/versae/neo4j-rest-client > > > > -- > > Javier de la Rosa > > http://versae.es > > ___ > > 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 > Javier, it would be really awesome to combine the two, or at least make sure the APIs are completely compatible. I'm hesitant to bundle them together, because the REST client is pure python, and can keep a very small footprint. The embedded package, on the other hand, bundles the full Neo4j distribution, and so it's a full 10MB large. In most settings, this won't matter much, but it still feels unnecessary to force people who just want the REST client to include the full DB distribution in their projects. Architecture-wise, perhaps we can have a common front for them, that can then be powered either by the embedded implementation, or by the REST client, and then use something like the db path to determine which one to use: from neo4j import GraphDatabase embeddeddb = GraphDatabase('/home/data') serverdb = GraphDatabase('http://localhost:7474') There is one major hurdle we need to get past first, we need to implement transaction support in the REST API that is feature-compatible with the embedded transaction API. When that is in place, the REST client will be able to behave exactly like the embedded client, and we can combine them. /Jake -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Cypher: other Cypher functions other than node IDs
On Thu, Oct 6, 2011 at 11:17 AM, Rolf Bolt wrote: > Hi Andres, > > I used documentation from http://docs.neo4j.org/ > > Tried: > Latest milestone release (Online HTML version) > Developer snapshots (Online HTML version) > Latest stable release (Online HTML version > I could see next versions: > - 1.4.2 > - 1.4.1 > - 1.3 > - 1.2 > - stable > - milestone > - snapshot > > None of them contains other syntax than I allready tried. > Currently I am running server version 1.5 M01, but could not find the > documentation for this version. Could you give me a location? > 1.5.M01 docs is available here: http://docs.neo4j.org/chunked/1.5.M01/index.html This version of neo4j does not support the new syntax. I realize it's confusing that a 1.5.x version is missing features that are available in a 1.4.x version. The reason is that 1.4.2 was released after 1.5.M01, and we decided to include some of the new updates to Cypher in that release. So, if you want to use the new syntax, either "upgrade" from 1.5.M01 to 1.4.2 (it makes me realize how confusing this is as I am writing it out), use 1.5-SNAPSHOT, or wait for the upcoming 1.5 GA release. > > Kind regards, > > Rolf Bolt > Informatie Architect > *Caerleon* > ___ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Fastest way to load large dataset using new python embedded mode
Hey Sean, we haven't added support for the batch inserter in the python bindings yet, I can think of two things you can do: a) Use the batch inserter in java land like you say to create your db, and then just set embedded python to use that db location. b) Just use the normal API, depending on how interconnected your data is, if you do transactions of say 100 000 inserts per TX, it shouldn't take that long to insert 70M nodes. Pure insert of 1 node with one property clocks in on my machine at about 30 000 inserts per second. It might be interesting to add support for the GEOFF ( http://py2neo.org/geoff/) import/export format that the cool kids behind py2neo has developed.. Add a ticket to the github page for neo4j-embedded if you'd like to see any of that happen :) /jake On Wed, Oct 5, 2011 at 4:03 PM, Sean Davis wrote: > I have a few datasets that contain about 70M nodes. Relationships > between these sets will be sparse and will be added over time. What > is the fastest way to load these nodes into neo4j? I can work with > java (http://wiki.neo4j.org/content/Batch_Insert) if necessary, but > I'd be interested to hear if there is a way to use this API in the new > embedded python mode. > > Thanks, > Sean > ___ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
[Neo4j] Embedded neo4j in Python up to date again
Hey everybody, a few hundred of you have already noticed that we snuck out a release of Neo4j embedded for python a few weeks back, but for those of you that haven't, there is now a first stable release of the new "neo4j-embedded" python package available from PyPi. Read all about it here: http://blog.neo4j.org/2011/10/from-neo4j-import-graphdatabase.html Documentation is available in the manual: http://docs.neo4j.org/chunked/snapshot/python-embedded.html We're really sorry it took so long :( Please let us know what you think, and if you find any issues! -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Using Cypher with WrappingNeoServerBootstrapper
If you for some reason want to use the server programatically, it should be enough to add the cypher plugin Jar to your classpath, the server plugin loader should pick it up. /jake On Mon, Oct 3, 2011 at 1:00 AM, Jim Webber wrote: > Hello, > > If you're using server, then the startup scripts are the easiest way. > > In the directory where you downloaded the server just type: > > bin/neo4j start (unix, mac) > bin/neo4j.bat start (windows) > > The cypher plugin ships by default with the server. No point starting the > server programmatically when there's scripts to do this already. > > Jim > > > > On 2 Oct 2011, at 23:54, Demian Calcaprina wrote: > > > I am new with Neo4j, and I am using the rest API. I managed to use many > of > > the APIs, but I followed Cypher plugin API > > (http://docs.neo4j.org/chunked/1.4.1/cypher-plugin.html), and I get an > error > > in server: "No such ServerPlugin: CypherPlugin". > > I am starting the server like this: > > srv = new WrappingNeoServerBootstrapper( > > myDb, config); > > srv.start(); > > > > How should I enable the plugin into the server? > > > > Thanks in advance, > > > > Dem ian > > ___ > > 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 > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] REST Performance
On Sun, Oct 2, 2011 at 10:36 PM, Mattias Persson wrote: > 2011/10/2 Jacob Hansson > > > Hey Christian, > > > > we don't have any proper benchmarks for the server currently, but it is, > > unfortunately, still quite a bit slower than the core embedded database. > > > > There are a few things you can do to get a faster experience: > > > > - Use persistent HTTP connections > > - Use HTTP pipelining (this has, in my late-night-hacky tests, given > > significant performance boosts, close to twice the speed) > > > > Any code/config/hints as to how to achieve this? > Well, most modern HTTP implementations will use persistent connections if they can, but it's implementation dependent. In Java, the built in UrlConnection (or whatever the name of the class is, I don't remember. The thing you get when you do URL#getConnection) reuses TCP connections per default, on the precondition that you read the full response before sending the next request. As for pipelining, this is (supposedly) supported by Jetty, and so should work on the neo4j server (my experiments did not use Jetty to serve our API, but the principle for why it is faster still applies, and the same performance gains should be seen). So really, it's just a matter of using a HTTP client that supports pipelining, unfortunately, there are very few to choose from. Here is one for Java: http://hotpotato.biasedbit.com/ > > > > /Jake > > > > > > On Sun, Oct 2, 2011 at 6:37 AM, Christian Straight < > > protosap...@mightyelephant.com> wrote: > > > > > > > > I'm evaluating using REST-ful calls to neo4j stand-alone > servermainly > > I > > > would like to understand the performance issues better. Can anyone on > > this > > > list direct me to some neo4j benchmarks? > > > > > > many thanks, > > > Christian Straight @ > > > WildGigs > > > > > > .:. Typed with thumbs and sent from my HTC Evo > > > > > > ___ > > > Neo4j mailing list > > > User@lists.neo4j.org > > > https://lists.neo4j.org/mailman/listinfo/user > > > > > > > > > > > -- > > Jacob Hansson > > Phone: +46 (0) 763503395 > > Twitter: @jakewins > > ___ > > 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 > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] REST Performance
Hey Christian, we don't have any proper benchmarks for the server currently, but it is, unfortunately, still quite a bit slower than the core embedded database. There are a few things you can do to get a faster experience: - Use persistent HTTP connections - Use HTTP pipelining (this has, in my late-night-hacky tests, given significant performance boosts, close to twice the speed) /Jake On Sun, Oct 2, 2011 at 6:37 AM, Christian Straight < protosap...@mightyelephant.com> wrote: > > I'm evaluating using REST-ful calls to neo4j stand-alone servermainly I > would like to understand the performance issues better. Can anyone on this > list direct me to some neo4j benchmarks? > > many thanks, > Christian Straight @ > WildGigs > > .:. Typed with thumbs and sent from my HTC Evo > > ___ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] REST API Base URI
On Tue, Sep 27, 2011 at 11:29 PM, Nuo Yan wrote: > Hi Jake, > > Thanks for your reply. > > Sorry if my previous email was misleading, but I don't absolutely need > key-based authentication; that just turned out to be the what I first > thought of. I was trying to figure out what authentication methods were > supported so that I can evaluate. HTTPS + basic auth with strong passwords > do sound good to me at this moment. However, at this moment, instead of > using authentication, I turned out configured security rules on my the > neo4j > server to only take connections from my app server so I temporarily don't > have a problem in the near future. But it's good to know about the > authentication extension. > > By the way, do you have any data about the performance impact of using the > authentication extension to do basic auth + HTTPS compare to talking to > neo4j without authentication (both through REST)? If you have such data, > please let me know. That would be very helpful information. > I'm afraid not. However, as long as you make sure to reuse TCP connections (Connection:keep-alive), the overhead of https should be minimal. While the same does not apply for basic auth, it should not add a significant performance overhead compared to "normal" REST. /Jake > > Thanks, > Nuo > > > > On Tue, Sep 27, 2011 at 6:10 AM, Jacob Hansson < > jacob.hans...@neotechnology.com> wrote: > > > As far as I know, the auth plugin currently only supports HTTP BASIC > > authentication. But it would be interesting to expand it to allow other > > authentication methods, for instance by allowing pluggable authentication > > providers. > > > > So if I understand your question correctly, yes, it does support > > authentication beyond just limiting access by IP, but it does not support > > authentication using keys or certificates. > > > > Out of curiosity, what is the driver behind needing key-based > > authentication? The combination of HTTP BASIC, strong passwords and HTTPS > > seems like it would supply quite strong security, no? > > > > /Jake > > > > On Wed, Sep 21, 2011 at 9:16 PM, Nuo Yan wrote: > > > > > Limiting access to certain URIs or IPs is great, but ideally at this > > moment > > > I also need something like a key-based authentication so I can send a > > > private key in the headers from my restclient and neo4j would > > authenticate > > > and only take authenticated requests. Does the authentication extension > > > support key-based authentication? If not, what forms of authentication > > does > > > it currently support (user/password, token-based, shared-secret)? > > > > > > Thanks, > > > Nuo > > > > > > On Wed, Sep 21, 2011 at 11:24 AM, Peter Neubauer < > > > peter.neuba...@neotechnology.com> wrote: > > > > > > > Nuo, > > > > Thomas Baum has been working on an authentication extension for Neo4j > > > > Server, see https://github.com/neo4j/authentication-extension. He > > > > could help you set it up and test it - it's used in hosting scenarios > > > > and should do what you want in terms of limiting access to certain > > > > URIs if that is what you want? > > > > > > > > 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 Wed, Sep 21, 2011 at 6:14 PM, Nuo Yan wrote: > > > > > For my scenario, I currently only use the LB for request > > > authentication, > > > > so > > > > > that not everyone on the network can access the neo4j server. In my > > use > > > > > case, I think making the base uri configurable (including the > > protocol, > > > > e.g. > > > > > https://foobar.com/) is enough. > > > > > > > > > > There are a couple other approaches that may also solve my problem. > > For > > >
Re: [Neo4j] REST API Base URI
1/db/data) returns > > >> > > > >> > { > > >> > "outgoing_relationships" : " > > >> > http://neo4j/db/data/node/160/relationships/out";, > > >> > "data" : { > > >> > }, > > >> > "traverse" : "http://neo4j/db/data/node/160/traverse/{returnType} > ", > > >> > "all_typed_relationships" : " > > >> > http://neo4j/db/data/node/160/relationships/all/{-list|&|types}", > > >> > "property" : "http://neo4j/db/data/node/160/properties/{key}";, > > >> > "self" : "http://neo4j/db/data/node/160";, > > >> > "properties" : "http://neo4j/db/data/node/160/properties";, > > >> > "outgoing_typed_relationships" : " > > >> > http://neo4j/db/data/node/160/relationships/out/{-list|&|types}", > > >> > "incoming_relationships" : " > > >> http://neo4j/db/data/node/160/relationships/in > > >> > ", > > >> > "extensions" : { > > >> > }, > > >> > "create_relationship" : " > http://neo4j/db/data/node/160/relationships > > ", > > >> > "paged_traverse" : " > > >> > > > >> > > > http://neo4j/db/data/node/160/paged/traverse/{returnType}{?pageSize,leaseTime} > > >> > ", > > >> > "all_relationships" : " > > http://neo4j/db/data/node/160/relationships/all > > >> ", > > >> > "incoming_typed_relationships" : " > > >> > http://neo4j/db/data/node/160/relationships/in/{-list|&|types}" > > >> > > > >> > > > >> > Is there a config on the neo4j server that I can set to make it > either > > >> > return the lb URI "https://10.0.0.1"; as the base uri or return > > relative > > >> path > > >> > in the result? > > >> > ___ > > >> > 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 > > > ___ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] neo4j python import error
Great :) If you run into any other problems, or have ideas for improvements, please feel free to post them here on the mailing list, or to create issues with the project bug tracker: https://github.com/neo4j/python-embedded/issues /Jake On Fri, Sep 23, 2011 at 10:57 AM, bmeagle wrote: > I've sorted the DLL issues, now I can import neo4j along with my os.environ > path additions. > > On Fri, Sep 23, 2011 at 10:55 AM, Jacob Hansson-2 [via Neo4j Community > Discussions] wrote: > > > For the DLL issues, see the windows section of the installation > > instructions, here: > > > > > > > http://docs.neo4j.org/chunked/1.5-SNAPSHOT/python-embedded-installation.html > > > > Keep me posted! > > Jake > > > > On Fri, Sep 23, 2011 at 10:37 AM, bmeagle <[hidden email]< > http://user/SendEmail.jtp?type=node&node=3361314&i=0>> > > wrote: > > > > > On Thu, Sep 22, 2011 at 3:37 PM, Jacob Hansson-2 [via Neo4j Community > > > Discussions] <[hidden email]< > http://user/SendEmail.jtp?type=node&node=3361314&i=1>> > > wrote: > > > > Update on this: > > > > > > > > I just pushed this to master, you will be able to follow the build > via > > > our > > > > build control panel. When the "deploy Embedded Python" project has > run > > > > successfully, the updated version should be available on pypi for > > > download. > > > > There is currently almost 200 builds queued up, so it may take a > > while.. > > > > > > > > > > > > > > > > > http://builder.neo4j.org/project.html?projectId=project34&tab=projectOverview > > > > (just click "login as guest") > > > > > > > > Thanks for reporting this, it turned out to be a proper bug (using > ":" > > > > instead of ";" as classpath separators on windows). Let me know if > the > > > fix > > > > worked! > > > > > > > > /Jake > > > > > > I downloaded and installed the newest version, but I still got the same > > > error, classpath was still incorrect. > > > > > > print os.environ['CLASSPATH'] > > > > > > .;C:\Program > > > > > > > > > Files\Java\jre1.6.0_07\lib\ext\QTJava.zip;C:\Python27\Lib\site-packages\neo4j\javalib\ > > > > > > > > >>> import neo4j > > > > > > Traceback (most recent call last): > > > File "", line 1, in > > >import neo4j > > > File "C:\Python27\lib\site-packages\neo4j\__init__.py", line 29, in > > > > > > from neo4j.core import GraphDatabase, Direction, NotFoundException, > > BOTH, > > > ANY, INCOMING, OUTGOING > > > File "C:\Python27\lib\site-packages\neo4j\core.py", line 19, in > > > > > > from _backend import * > > > File "C:\Python27\lib\site-packages\neo4j\_backend.py", line 158, in > > > > > > raise ImportError("Cannot find Neo4j java classes, used classpath: > %s" > > % > > > classpath) > > > ImportError: Cannot find Neo4j java classes, used classpath: > .;C:\Program > > > > > > > > > > > Files\Java\jre1.6.0_07\lib\ext\QTJava.zip;C:\Python27\Lib\site-packages\neo4j\javalib\ > > > > > > > > I then updated the classpath with a modified version of your code: > > > > > > >>> libpath = 'C:\\Python27\\Lib\\site-packages\\neo4j\\javalib\\' > > > > > > >>> os.environ['CLASSPATH']=';'.join(libpath+p for p in > > > os.listdir(libpath)) > > > > > > print os.environ['CLASSPATH'] > > > > > > > > > > > > C:\Python27\Lib\site-packages\neo4j\javalib\antlr-2.7.7.jar;C:\Python27\Lib\site-packages\neo4j\javalib\asm-3.2.jar;C:\Python27\Lib\site-packages\neo4j\javalib\asm-analysis-3.2.jar;C:\Python27\Lib\site-packages\neo4j\javalib\asm-commons-3.2.jar;C:\Python27\Lib\site-packages\neo4j\javalib\asm-tree-3.2.jar;C:\Python27\Lib\site-packages\neo4j\javalib\asm-util-3.2.jar;C:\Python27\Lib\site-packages\neo4j\javalib\blueprints-core-0.9.jar;C:\Python27\Lib\site-packages\neo4j\javalib\geronimo-jta_1.1_spec-1.1.1.jar;C:\Python27\Lib\site-packages\neo4j\javalib\gremlin-1.2.jar;C:\Python27\Lib\site-packages\neo4j\javalib\groovy-1.8.1.jar;C:\Python27\Lib\site-packages\neo4j\javalib\jansi-1.5.jar;C:\Python27\Lib\site-packages\neo4j\javalib\jettison-1.3.jar;C:\Python27\Lib\
Re: [Neo4j] neo4j python import error
For the DLL issues, see the windows section of the installation instructions, here: http://docs.neo4j.org/chunked/1.5-SNAPSHOT/python-embedded-installation.html Keep me posted! Jake On Fri, Sep 23, 2011 at 10:37 AM, bmeagle wrote: > On Thu, Sep 22, 2011 at 3:37 PM, Jacob Hansson-2 [via Neo4j Community > Discussions] wrote: > > Update on this: > > > > I just pushed this to master, you will be able to follow the build via > our > > build control panel. When the "deploy Embedded Python" project has run > > successfully, the updated version should be available on pypi for > download. > > There is currently almost 200 builds queued up, so it may take a while.. > > > > > > http://builder.neo4j.org/project.html?projectId=project34&tab=projectOverview > > (just click "login as guest") > > > > Thanks for reporting this, it turned out to be a proper bug (using ":" > > instead of ";" as classpath separators on windows). Let me know if the > fix > > worked! > > > > /Jake > > I downloaded and installed the newest version, but I still got the same > error, classpath was still incorrect. > > print os.environ['CLASSPATH'] > > .;C:\Program > > Files\Java\jre1.6.0_07\lib\ext\QTJava.zip;C:\Python27\Lib\site-packages\neo4j\javalib\ > > >>> import neo4j > > Traceback (most recent call last): > File "", line 1, in >import neo4j > File "C:\Python27\lib\site-packages\neo4j\__init__.py", line 29, in > > from neo4j.core import GraphDatabase, Direction, NotFoundException, BOTH, > ANY, INCOMING, OUTGOING > File "C:\Python27\lib\site-packages\neo4j\core.py", line 19, in > from _backend import * > File "C:\Python27\lib\site-packages\neo4j\_backend.py", line 158, in > > raise ImportError("Cannot find Neo4j java classes, used classpath: %s" % > classpath) > ImportError: Cannot find Neo4j java classes, used classpath: .;C:\Program > > Files\Java\jre1.6.0_07\lib\ext\QTJava.zip;C:\Python27\Lib\site-packages\neo4j\javalib\ > > I then updated the classpath with a modified version of your code: > > >>> libpath = 'C:\\Python27\\Lib\\site-packages\\neo4j\\javalib\\' > > >>> os.environ['CLASSPATH']=';'.join(libpath+p for p in > os.listdir(libpath)) > > print os.environ['CLASSPATH'] > > > C:\Python27\Lib\site-packages\neo4j\javalib\antlr-2.7.7.jar;C:\Python27\Lib\site-packages\neo4j\javalib\asm-3.2.jar;C:\Python27\Lib\site-packages\neo4j\javalib\asm-analysis-3.2.jar;C:\Python27\Lib\site-packages\neo4j\javalib\asm-commons-3.2.jar;C:\Python27\Lib\site-packages\neo4j\javalib\asm-tree-3.2.jar;C:\Python27\Lib\site-packages\neo4j\javalib\asm-util-3.2.jar;C:\Python27\Lib\site-packages\neo4j\javalib\blueprints-core-0.9.jar;C:\Python27\Lib\site-packages\neo4j\javalib\geronimo-jta_1.1_spec-1.1.1.jar;C:\Python27\Lib\site-packages\neo4j\javalib\gremlin-1.2.jar;C:\Python27\Lib\site-packages\neo4j\javalib\groovy-1.8.1.jar;C:\Python27\Lib\site-packages\neo4j\javalib\jansi-1.5.jar;C:\Python27\Lib\site-packages\neo4j\javalib\jettison-1.3.jar;C:\Python27\Lib\site-packages\neo4j\javalib\lucene-core-3.1.0.jar;C:\Python27\Lib\site-packages\neo4j\javalib\neo4j-1.5-SNAPSHOT.jar;C:\Python27\Lib\site-packages\neo4j\javalib\neo4j-cypher-1.5-SNAPSHOT.jar;C:\Python27\Lib\site-packages\ ne > > > o4j\javalib\neo4j-graph-algo-1.5-SNAPSHOT.jar;C:\Python27\Lib\site-packages\neo4j\javalib\neo4j-graph-matching-1.5-SNAPSHOT.jar;C:\Python27\Lib\site-packages\neo4j\javalib\neo4j-jmx-1.5-SNAPSHOT.jar;C:\Python27\Lib\site-packages\neo4j\javalib\neo4j-kernel-1.5-SNAPSHOT.jar;C:\Python27\Lib\site-packages\neo4j\javalib\neo4j-lucene-index-1.5-SNAPSHOT.jar;C:\Python27\Lib\site-packages\neo4j\javalib\neo4j-udc-1.5-SNAPSHOT.jar;C:\Python27\Lib\site-packages\neo4j\javalib\pipes-0.7.jar;C:\Python27\Lib\site-packages\neo4j\javalib\scala-library-2.9.0-1.jar;C:\Python27\Lib\site-packages\neo4j\javalib\stax-api-1.0.1.jar;C:\Python27\Lib\site-packages\neo4j\javalib\__init__.py;C:\Python27\Lib\site-packages\neo4j\javalib\__init__.pyc;C:\Python27\Lib\site-packages\neo4j\javalib\__init__.pyo > > Now it complains about DLL's: > > >>> import neo4j > > Traceback (most recent call last): > File "", line 1, in >import neo4j > File "C:\Python27\lib\site-packages\neo4j\__init__.py", line 29, in > > from neo4j.core import GraphDatabase, Direction, NotFoundException, BOTH, > ANY, INCOMING, OUTGOING > File "C:\Python27\lib\site-packages\neo4j\core.py", line 19, in > from _backend import * > File "C:\Python27\lib\site-packages\neo4j\_backend.py", line 113, in > &
Re: [Neo4j] neo4j python import error
Update on this: I just pushed this to master, you will be able to follow the build via our build control panel. When the "deploy Embedded Python" project has run successfully, the updated version should be available on pypi for download. There is currently almost 200 builds queued up, so it may take a while.. http://builder.neo4j.org/project.html?projectId=project34&tab=projectOverview (just click "login as guest") Thanks for reporting this, it turned out to be a proper bug (using ":" instead of ";" as classpath separators on windows). Let me know if the fix worked! /Jake On Thu, Sep 22, 2011 at 3:20 PM, Jacob Hansson < jacob.hans...@neotechnology.com> wrote: > > > On Thu, Sep 22, 2011 at 3:16 PM, bmeagle wrote: > >> I manually added the path to the CLASSPATH windows environment variable >> via >> system settings. >> >> >>> print os.environ['CLASSPATH'] >> .;C:\Program >> >> Files\Java\jre1.6.0_07\lib\ext\QTJava.zip;C:\Python27\Lib\site-packages\neo4j\javalib\ >> >> checked it: >> >> >>> libpath = 'C:\\Python27\\Lib\\site-packages\\neo4j\\javalib\\' >> >>> print os.listdir(libpath) >> ['geronimo-jta_1.1_spec-1.1.1.jar', 'lucene-core-3.1.0.jar', >> 'neo4j-1.5-SNAPSHOT.jar', 'neo4j-cypher-1.5-SNAPSHOT.jar', >> 'neo4j-graph-algo-1.5-SNAPSHOT.jar', >> 'neo4j-graph-matching-1.5-SNAPSHOT.jar', 'neo4j-jmx-1.5-SNAPSHOT.jar', >> 'neo4j-kernel-1.5-SNAPSHOT.jar', 'neo4j-lucene-index-1.5-SNAPSHOT.jar', >> 'neo4j-udc-1.5-SNAPSHOT.jar', 'scala-library-2.9.0-1.jar', '__init__.py', >> '__init__.pyc', '__init__.pyo'] >> >> but still no joy >> >> >>> import neo4j >> >> Traceback (most recent call last): >> File "<pyshell#15>", line 1, in >> import neo4j >> File "C:\Python27\lib\site-packages\neo4j\__init__.py", line 29, in >> >>from neo4j.core import GraphDatabase, Direction, NotFoundException, >> BOTH, ANY, INCOMING, OUTGOING >> File "C:\Python27\lib\site-packages\neo4j\core.py", line 27, in >>GraphDatabase = extends(GraphDatabaseService) >> File "C:\Python27\lib\site-packages\neo4j\_backend.py", line 43, in >> extends >>return ParentClass(getattr(CLASS,'__name__','Class'),(),{}) >> File "C:\Python27\lib\site-packages\neo4j\_backend.py", line 34, in >> __new__ >>return type.__new__(Class, name, (object,), body) >> TypeError: type() argument 1 must be string, not JPackage >> >> Couldn't this be something else? >> > > Well, yeah, but I think this is it. I was able to replicate your problem on > a local xp machine (and have a fix that seems to work, running the test > suite on it right now). It should be available for download in two hours or > so, depending on how our build servers are feeling today. > > Until then, the problem with the classpath you sent above is that it just > points to the folder with the jars. The classpath needs to explicitly list > the path to each jar, separated by semicolons. The code I sent in my > previous mail should do that automatically for you, if you just give it the > correct javalib folder path. > > >> >> bmeagle >> >> -- >> View this message in context: >> http://neo4j-community-discussions.438527.n3.nabble.com/neo4j-python-import-error-tp3358482p3358708.html >> Sent from the Neo4j Community Discussions mailing list archive at >> Nabble.com. >> ___ >> Neo4j mailing list >> User@lists.neo4j.org >> https://lists.neo4j.org/mailman/listinfo/user >> > > > > -- > Jacob Hansson > Phone: +46 (0) 763503395 > Twitter: @jakewins > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] neo4j python import error
On Thu, Sep 22, 2011 at 3:16 PM, bmeagle wrote: > I manually added the path to the CLASSPATH windows environment variable via > system settings. > > >>> print os.environ['CLASSPATH'] > .;C:\Program > > Files\Java\jre1.6.0_07\lib\ext\QTJava.zip;C:\Python27\Lib\site-packages\neo4j\javalib\ > > checked it: > > >>> libpath = 'C:\\Python27\\Lib\\site-packages\\neo4j\\javalib\\' > >>> print os.listdir(libpath) > ['geronimo-jta_1.1_spec-1.1.1.jar', 'lucene-core-3.1.0.jar', > 'neo4j-1.5-SNAPSHOT.jar', 'neo4j-cypher-1.5-SNAPSHOT.jar', > 'neo4j-graph-algo-1.5-SNAPSHOT.jar', > 'neo4j-graph-matching-1.5-SNAPSHOT.jar', 'neo4j-jmx-1.5-SNAPSHOT.jar', > 'neo4j-kernel-1.5-SNAPSHOT.jar', 'neo4j-lucene-index-1.5-SNAPSHOT.jar', > 'neo4j-udc-1.5-SNAPSHOT.jar', 'scala-library-2.9.0-1.jar', '__init__.py', > '__init__.pyc', '__init__.pyo'] > > but still no joy > > >>> import neo4j > > Traceback (most recent call last): > File "<pyshell#15>", line 1, in > import neo4j > File "C:\Python27\lib\site-packages\neo4j\__init__.py", line 29, in > >from neo4j.core import GraphDatabase, Direction, NotFoundException, > BOTH, ANY, INCOMING, OUTGOING > File "C:\Python27\lib\site-packages\neo4j\core.py", line 27, in >GraphDatabase = extends(GraphDatabaseService) > File "C:\Python27\lib\site-packages\neo4j\_backend.py", line 43, in > extends >return ParentClass(getattr(CLASS,'__name__','Class'),(),{}) > File "C:\Python27\lib\site-packages\neo4j\_backend.py", line 34, in > __new__ >return type.__new__(Class, name, (object,), body) > TypeError: type() argument 1 must be string, not JPackage > > Couldn't this be something else? > Well, yeah, but I think this is it. I was able to replicate your problem on a local xp machine (and have a fix that seems to work, running the test suite on it right now). It should be available for download in two hours or so, depending on how our build servers are feeling today. Until then, the problem with the classpath you sent above is that it just points to the folder with the jars. The classpath needs to explicitly list the path to each jar, separated by semicolons. The code I sent in my previous mail should do that automatically for you, if you just give it the correct javalib folder path. > > bmeagle > > -- > View this message in context: > http://neo4j-community-discussions.438527.n3.nabble.com/neo4j-python-import-error-tp3358482p3358708.html > Sent from the Neo4j Community Discussions mailing list archive at > Nabble.com. > ___ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] neo4j python import error
No, the sys.path thing won't work, JPype doesn't pull it's java libs off of sys.path (unfortunately). Instead, it needs an explicit java classpath passed to it when it gets instantiated. Neo4j-embedded sets that classpath either on it's own (which may be broken on windows, I'm investigating that now), or using the value of the CLASSPATH environment variable. You could try setting the CLASSPATH environment var before you import neo4j: >>> import os >>> libpath = 'path/to/neo4j/javalib' >>> os.environ['CLASSPATH'] = ';'.join( [ os.path.abspath(p) for p in os.listdir(libpath)]) >>> from neo4j import GraphDatabase /Jake On Thu, Sep 22, 2011 at 2:45 PM, bmeagle wrote: > I tried adding C:\Python27\Lib\site-packages\neo4j\javalib to sys.path but > that didn't work, see below. > I am running python 2.7 on win xp I installed > neo4j-embedded-1.5.dev104.win32.exe > > > >>> import neo4j > > Traceback (most recent call last): > File "<pyshell#0>", line 1, in >import neo4j > File "C:\Python27\lib\site-packages\neo4j\__init__.py", line 29, in > >from neo4j.core import GraphDatabase, Direction, NotFoundException, > BOTH, ANY, INCOMING, OUTGOING > File "C:\Python27\lib\site-packages\neo4j\core.py", line 27, in >GraphDatabase = extends(GraphDatabaseService) > File "C:\Python27\lib\site-packages\neo4j\_backend.py", line 43, in > extends >return ParentClass(getattr(CLASS,'__name__','Class'),(),{}) > File "C:\Python27\lib\site-packages\neo4j\_backend.py", line 34, in > __new__ >return type.__new__(Class, name, (object,), body) > TypeError: type() argument 1 must be string, not JPackage > > >>> import sys > > >>> print sys.path > ['C:\\Python27\\Lib\\idlelib', > 'C:\\Python27\\lib\\site-packages\\zodb3-3.10.3-py2.7-win32.egg', > 'C:\\Python27\\lib\\site-packages\\zope.interface-3.8.0-py2.7-win32.egg', > 'C:\\Python27\\lib\\site-packages\\zope.event-3.5.1-py2.7.egg', > 'C:\\Python27\\lib\\site-packages\\zdaemon-2.0.4-py2.7.egg', > 'C:\\Python27\\lib\\site-packages\\zconfig-2.9.0-py2.7.egg', > 'C:\\Python27\\lib\\site-packages\\zc.lockfile-1.0.0-py2.7.egg', > 'C:\\Python27\\lib\\site-packages\\transaction-1.1.1-py2.7.egg', > 'C:\\WINDOWS\\system32\\python27.zip', 'C:\\Python27\\DLLs', > 'C:\\Python27\\lib', 'C:\\Python27\\lib\\plat-win', > 'C:\\Python27\\lib\\lib-tk', 'C:\\Python27', > 'C:\\Python27\\lib\\site-packages', > 'C:\\Python27\\lib\\site-packages\\PIL', > 'C:\\Python27\\lib\\site-packages\\win32', > 'C:\\Python27\\lib\\site-packages\\win32\\lib', > 'C:\\Python27\\lib\\site-packages\\Pythonwin'] > > >>> sys.path.append('C:\Python27\Lib\site-packages\neo4j\javalib') > > >>> print sys.path > ['C:\\Python27\\Lib\\idlelib', > 'C:\\Python27\\lib\\site-packages\\zodb3-3.10.3-py2.7-win32.egg', > 'C:\\Python27\\lib\\site-packages\\zope.interface-3.8.0-py2.7-win32.egg', > 'C:\\Python27\\lib\\site-packages\\zope.event-3.5.1-py2.7.egg', > 'C:\\Python27\\lib\\site-packages\\zdaemon-2.0.4-py2.7.egg', > 'C:\\Python27\\lib\\site-packages\\zconfig-2.9.0-py2.7.egg', > 'C:\\Python27\\lib\\site-packages\\zc.lockfile-1.0.0-py2.7.egg', > 'C:\\Python27\\lib\\site-packages\\transaction-1.1.1-py2.7.egg', > 'C:\\WINDOWS\\system32\\python27.zip', 'C:\\Python27\\DLLs', > 'C:\\Python27\\lib', 'C:\\Python27\\lib\\plat-win', > 'C:\\Python27\\lib\\lib-tk', 'C:\\Python27', > 'C:\\Python27\\lib\\site-packages', > 'C:\\Python27\\lib\\site-packages\\PIL', > 'C:\\Python27\\lib\\site-packages\\win32', > 'C:\\Python27\\lib\\site-packages\\win32\\lib', > 'C:\\Python27\\lib\\site-packages\\Pythonwin', > 'C:\\Python27\\Lib\\site-packages\\neo4j\\javalib'] > > >>> sys.path.append('C:\\Python27\\Lib\\site-packages\\neo4j\\javalib') > > >>> import neo4j > > Traceback (most recent call last): > File "<pyshell#8>", line 1, in >import neo4j > File "C:\Python27\lib\site-packages\neo4j\__init__.py", line 29, in > >from neo4j.core import GraphDatabase, Direction, NotFoundException, > BOTH, ANY, INCOMING, OUTGOING > File "C:\Python27\lib\site-packages\neo4j\core.py", line 27, in >GraphDatabase = extends(GraphData
Re: [Neo4j] neo4j python import error
Hmm, I think the error you are getting is the result of neo4j-embedded not finding java jars that it needs (I'll add it to the backlog to add an explicit check for that, rather than failing like this). Normally, neo4j-embedded will set its classpath itself, pointing to the java jars it comes bundled with. However, it is possible to override this, by setting the environment variable "CLASSPATH" to some value. Could you check if this is the case? If not, please let me know what platform you are running, and what version of neo4j-embedded you have installed, and I'll dig deeper into it. Oh, and I'll make a note that the environment var needs to be changed to something more specific. /Jake On Thu, Sep 22, 2011 at 1:46 PM, bmeagle wrote: > Hi all, > > Decided to give neo4j via python a try but alas: > > from neo4j import GraphDatabase > > Traceback (most recent call last): > File "<pyshell#1>", line 1, in >from neo4j import GraphDatabase > File "C:\Python27\lib\site-packages\neo4j\__init__.py", line 29, in > >from neo4j.core import GraphDatabase, Direction, NotFoundException, > BOTH, ANY, INCOMING, OUTGOING > File "C:\Python27\lib\site-packages\neo4j\core.py", line 27, in >GraphDatabase = extends(GraphDatabaseService) > File "C:\Python27\lib\site-packages\neo4j\_backend.py", line 43, in > extends >return ParentClass(getattr(CLASS,'__name__','Class'),(),{}) > File "C:\Python27\lib\site-packages\neo4j\_backend.py", line 34, in > __new__ >return type.__new__(Class, name, (object,), body) > TypeError: type() argument 1 must be string, not JPackage > > I am using winxp I installed neo4j-embedded-1.5.dev104.win32.exe and I am > using python 2.7 > > Regards > bmeagle > > -- > View this message in context: > http://neo4j-community-discussions.438527.n3.nabble.com/neo4j-python-import-error-tp3358482p3358482.html > Sent from the Neo4j Community Discussions mailing list archive at > Nabble.com. > ___ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Neo4jPHP batch insert benchmarks
On Fri, Aug 26, 2011 at 2:46 PM, jadell wrote: > Jim, > > Fair enough. For now, I'll just know not to try and make batches that big > :-) My own use case is for the transaction safety rather than trying to > create thousands of entities at once, so it doesn't effect me that much. I > just wanted to have something more concrete to tell other users who might > try. > > Thanks to all for helping me investigate! > Update on this: I did a bit of hacking on this just now, and was able to improve the memory usage quite a bit. The major culprits was jacksons deserializer (or rather, that we use their mapping serializer), and using a list of strings to store and eventually aggregate results rather than StringBuilder (which is my fault, since it's my code, and I have no clue why I did it like that). I just pushed this to master. My benchmarks look like this, showing number of inserts, each insert being a node and a property: Old: --- 1000 : 1.340s 5000 : 3.013s 1 : 4.304s 5 : 18.120s 10 : OutOfMemory 50 : OutOfMemory New: --- 1000 : 1.546s 5000 : 3.116s 1 : 3.702s 5 : 17.183s 10 : 35.427s 50 : OutOfMemory This is on a JVM with 1GB heap. The OutOfMemory that we see in the new setup is because I didn't go all the way and implement streaming output, so that would be cool to try as well. /Jake > -- Josh > > -- > View this message in context: > http://neo4j-community-discussions.438527.n3.nabble.com/Neo4jPHP-batch-insert-benchmarks-tp3282984p3286721.html > Sent from the Neo4j Community Discussions mailing list archive at > Nabble.com. > ___ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Unable to being transaction
-1.2-RC5.jar:na] > > > at > > akka.dispatch.MessageInvocation.invoke(MessageHandling.scala:25) > > > [akka-actor-1.2-RC5.jar:na] > > > at > > > > > > akka.dispatch.ExecutableMailbox$class.processMailbox(ExecutorBasedEventDrivenDispatcher.scala:216) > > > [akka-actor-1.2-RC5.jar:na] > > > at > > > > > > akka.dispatch.ExecutorBasedEventDrivenDispatcher$$anon$4.processMailbox(ExecutorBasedEventDrivenDispatcher.scala:122) > > > [akka-actor-1.2-RC5.jar:na] > > > at > > > > > > akka.dispatch.ExecutableMailbox$class.run(ExecutorBasedEventDrivenDispatcher.scala:188) > > > [akka-actor-1.2-RC5.jar:na] > > > at > > > > > > akka.dispatch.ExecutorBasedEventDrivenDispatcher$$anon$4.run(ExecutorBasedEventDrivenDispatcher.scala:122) > > > [akka-actor-1.2-RC5.jar:na] > > > at > > > > > > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) > > > [na:1.6.0_25] > > > at > > > > > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) > > > [na:1.6.0_25] > > > at java.lang.Thread.run(Thread.java:662) [na:1.6.0_25] > > > at > > akka.dispatch.MonitorableThread.run(ThreadPoolBuilder.scala:184) > > > [akka-actor-1.2-RC5.jar:na] > > > Caused by: javax.transaction.SystemException: TM has encountered some > > > problem, please perform neccesary action (tx recovery/restart) > > > at > > > org.neo4j.kernel.impl.transaction.TxManager.begin(TxManager.java:554) > > > ~[neo4j-kernel-1.4.jar:1.4] > > > at > > > > > > org.neo4j.kernel.EmbeddedGraphDbImpl.beginTx(EmbeddedGraphDbImpl.java:388) > > > ~[neo4j-kernel-1.4.jar:1.4] > > > ... 23 common frames omitted > > > > > > > > > > > > Maybe its related and maybe not, not sure. > > > > > > > > > Regards , > > > > > > Dima Gutzeit. > > > > > > > > > > > > > > > On Thu, Sep 1, 2011 at 6:20 PM, Peter Neubauer < > > > peter.neuba...@neotechnology.com> wrote: > > > > > >> Dima, > > >> got the rest of the stacktrace? > > >> > > >> 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, Sep 1, 2011 at 1:44 PM, Dima Gutzeit < > > dima.gutz...@mailvision.com > > >> >wrote: > > >> > > >> > Any idea what can cause this: > > >> > > > >> > > > >> > org.neo4j.graphdb.TransactionFailureException: Unable to begin > > >> transaction > > >> >at > > >> > > > >> > > > org.neo4j.kernel.EmbeddedGraphDbImpl.beginTx(EmbeddedGraphDbImpl.java:393) > > >> > ~[neo4j-kernel-1.4.jar:1.4] > > >> >at > > >> > > > >> > > > >> > > > org.neo4j.kernel.EmbeddedGraphDatabase.beginTx(EmbeddedGraphDatabase.java:138) > > >> > ~[neo4j-kernel-1.4.jar:1.4] > > >> > Caused by: javax.transaction.SystemException: TM has encountered > some > > >> > problem, please perform neccesary action (tx recovery/restart) > > >> >at > > >> > > org.neo4j.kernel.impl.transaction.TxManager.begin(TxManager.java:554) > > >> > ~[neo4j-kernel-1.4.jar:1.4] > > >> >at > > >> > > > >> > > > org.neo4j.kernel.EmbeddedGraphDbImpl.beginTx(EmbeddedGraphDbImpl.java:388) > > >> > ~[neo4j-kernel-1.4.jar:1.4] > > >> >... 22 common frames omitted > > >> > ___ > > >> > 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 > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Relationship[3] exist but relationship type[2] not found.
On Tue, Sep 6, 2011 at 11:55 AM, skarab77 wrote: > Hi All, > > I have get the following exception: > > Exception in thread "AWT-EventQueue-0" org.neo4j.graphdb.NotFoundException: > Relationship[1451488] exist but relationship type[2] not found. >at > org.neo4j.kernel.impl.core.NodeManager.getRelForProxy(NodeManager.java:566) >at > org.neo4j.kernel.impl.core.RelationshipProxy.getType(RelationshipProxy.java:75) > > From this post ( > http://neo4j-community-discussions.438527.n3.nabble.com/Neo-NotFoundException-Question-td717235.html) > I have learned that it can indicate that my neo4j instance is in the > inconsistency state. Is it possible to fix this issue, is it possible to add > somehow the missing relationship type? > > Best Regards, > Wojtek > What version of neo4j are you using? /jake > ___ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Webadmin with embedded neo4j on tomcat 6
There is no specific workaround for launching the server from within another web container. It looks like there is a ServletContextListener hooked up for java server faces, that triggers when neo4j servers' Jetty instance starts a webapp context, and subsequently fails. I'm assuming the JSF listener somehow leaks from the Tomcat environment, or that the context code in Jetty somehow inteferes with the current Tomcat servlet context.. It does seem like a complex problem to solve. What you can do is use neo4j-HA. You would have one HA-enabled neo4j server instance running on its own, and a HighlyAvailableGraphDatabase running inside your web app, both configured to be part of the same cluster. /Jake On Mon, Sep 5, 2011 at 6:05 PM, mpula wrote: > In standalone Java application everything is OK. So, is there a method to > run > webadmin for Java web application which uses embedded neo4j? > > -- > View this message in context: > http://neo4j-community-discussions.438527.n3.nabble.com/Webadmin-with-embedded-neo4j-on-tomcat-6-tp3310583p3311270.html > Sent from the Neo4j Community Discussions mailing list archive at > Nabble.com. > ___ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] REST batch completes with error code
> SEVERE: /db/data/batch > java.lang.OutOfMemoryError: Java heap space >at java.util.Arrays.copyOf(Arrays.java:2882) >at > > java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:100) >at > java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:390) >at java.lang.StringBuffer.append(StringBuffer.java:219) >at org.apache.commons.lang.StringUtils.join(StringUtils.java:3088) >at org.apache.commons.lang.StringUtils.join(StringUtils.java:3133) >at > > org.neo4j.server.rest.repr.BatchOperationResults.toJSON(BatchOperationResults.java:99) >at > > org.neo4j.server.rest.web.BatchOperationService.performBatchOperations(BatchOperationService.java:88) >at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >at > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) >at > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) >at java.lang.reflect.Method.invoke(Method.java:597) >at > > com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:184) >at > > com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:67) >at > > com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:276) >at > > com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:83) >at > > com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:133) >at > > com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:71) >at > > com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1171) >at > > com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1103) >at > > com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1053) >at > > com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1043) >at > > com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:406) >at > > com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:477) >at > > com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:662) >at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) >at > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) >at > org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390) >at > org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) >at > org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) >at > > org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) >at > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) > > > > -- Josh Adell > > -- > View this message in context: > http://neo4j-community-discussions.438527.n3.nabble.com/REST-batch-completes-with-error-code-tp3303247p3303247.html > Sent from the Neo4j Community Discussions mailing list archive at > Nabble.com. > ___ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Websocket Server instead of REST for Neo4J for access a DB
On Mon, Aug 29, 2011 at 4:35 PM, Thomas Fritz wrote: > Hi! > > Keep in mind. Websocket is not only for the browser! > Java: http://code.google.com/p/weberknecht/ > Python: http://pypi.python.org/pypi/websocket-client/0.4 > .net: https://github.com/sta/websocket-sharp > and JavaScript / Node: socket.io for instance > Absolutely, my point is that there are many other higher level transport protocols that would be a better fit for out-of-browser environments. The only benefit, that I can see, to using websockets is easy use from the browser (I may be wrong though, I'm not super-familiar with websocket details). Since the vast majority of use case environments are outside of the browser, it feels important to choose a transport protocol that considers those as first class citizens. Don't get me wrong, I'm a huge proponent for top-notch web support as well. That's what I meant by saying we might be able to design a binary protocol that is flexible enough to fit through many different transport protocols. /Jake > --- > Thomas FRITZ > web http://fritzthomas.com > twitter http://twitter.com/thomasf > > > > 2011/8/29 Jacob Hansson : > > In my mind websockets is not necessarily something we want to focus on > > initially for a binary protocol. It would only benefit in-browser > javascript > > access to the server, while setting back every other programming > language, > > forcing them to add extra layers there to conform to the websocket > protocol. > > > > It would be interesting to take this into consideration when designing > the > > binary protocol, however. Perhaps we can put something together that > would > > be able to use websockets as a transport protocol at a later point in > time. > > It would be cool to, once a certain level of authorization/authentication > > logic has been implemented, build high performance in-browser clients > that > > talk directly to the server.. > > > > /Jake > > > > On Mon, Aug 29, 2011 at 12:06 PM, Peter Neubauer < > > peter.neuba...@neotechnology.com> wrote: > > > >> Thomas, > >> a websocket interface would be a great addition! We haven't come around > to > >> do a proper binary protocol to Neo4j yet (pushed to Neo4j 1.6), but as > Rick > >> mentions, a websocket interface would also mean to have streaming > semantics > >> on the client. > >> > >> If you wanna prototype one with some trivial serialization that can be > >> changed later, that would rock! > >> > >> 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, Aug 29, 2011 at 12:01 PM, Thomas Fritz > wrote: > >> > >> > Hi! > >> > > >> > I hope you had some good bear friday! ;) > >> > > >> > Do you think a (web)socket interface to neo4j could be done and > >> > integrated into the core? I do not like the idea of using a high > >> > performance graph database with fast indices (like neo4j is) and than > >> > the only interface to it is a HTTP RESTful API to it. Or are my > >> > assumptions and fears wrong? > >> > > >> > kind regards > >> > > >> > > >> > > >> > --- > >> > Thomas FRITZ > >> > web http://fritzthomas.com > >> > twitter http://twitter.com/thomasf > >> > > >> > > >> > > >> > 2011/8/26 Rick Bullotta : > >> > > We're doing some similar things using XMPP pub-sub and BOSH... > >> > > > >> > > -Original Message- > >> > > From: user-boun...@lists.neo4j.org [mailto: > >> user-boun...@lists.neo4j.org] > >> > On Behalf Of Thomas Fritz > >> > > Sent: Friday, August 26, 2011 10:49 AM > >> > > To: Neo4j user discussions > >> > > Subject: Re: [Neo4j] Websocket Server instead of REST for Neo4J for > >> > access a DB > >> > > > >> > > If you like partial results take a look at this paper: > >&
Re: [Neo4j] Websocket Server instead of REST for Neo4J for access a DB
;> wrote: > > >> > > >>> Let's hope that one day soon all of these issues will be > "non-issues"! > > >>> > > >>> Having cool technology always "coming soon" reminds me of this sign: > > >>> http://www.rareirishstuff.com/media/13/a20792b12af7736b49978d_m.JPG > > >>> > > >>> -Original Message- > > >>> From: user-boun...@lists.neo4j.org [mailto: > > user-boun...@lists.neo4j.org] > > >>> On Behalf Of Thomas Fritz > > >>> Sent: Friday, August 26, 2011 10:17 AM > > >>> To: Neo4j user discussions > > >>> Subject: Re: [Neo4j] Websocket Server instead of REST for Neo4J for > > access > > >>> a DB > > >>> > > >>> Hi. > > >>> > > >>> Thanks for your fast reply. > > >>> > > >>> > > >>> > > >>> > > >>> > > >>> 2011/8/26 Rick Bullotta : > > >>> > A few potential challenges and reasons to wait on this: > > >>> > > > >>> > - the Websocket API is still in a state of change > > >>> thats true. But i think, since the latest security issues are solved > > >>> now with the latest protocol version, hopefully there are no breaking > > >>> changes anymore > > >>> > > >>> > - the existing REST API is synchronous request/response, so there's > > not a > > >>> lot of benefit to switching to websockets without a lot of rework > > >>> I think thats a real challenge. Since locking and concurrent writes > > >>> come into play - Except you would allow only one websocket connection > > >>> > > >>> > - The real benefit will be when you Javascript and other web > clients > > can > > >>> use a pure binary protocol (not possible today) > > >>> I pretty sure it is in the latest protocol definition. But i think no > > >>> Browser at this time of writing has implemented the binary parts. > > >>> > > >>> regards > > >>> > > >>> Tom > > >>> > > >>> > > > >>> > Rick > > >>> > > > >>> > -Original Message- > > >>> > From: user-boun...@lists.neo4j.org [mailto: > > user-boun...@lists.neo4j.org] > > >>> On Behalf Of Thomas Fritz > > >>> > Sent: Friday, August 26, 2011 9:52 AM > > >>> > To: Neo4j user discussions > > >>> > Subject: [Neo4j] Websocket Server instead of REST for Neo4J for > > access a > > >>> DB > > >>> > > > >>> > Hi all! > > >>> > > > >>> > Have anyone thought, or is it possible to implement a Websocket > > >>> > Endpoint in Neo4J Server so one can use this instead of the RESTful > > >>> > API. Which would be more performant and scalable than the RESTful > > HTTP > > >>> > API. It is possible to use such a Websocket through Java, Node and > > any > > >>> > other Server Side Language and even JavaScript on the client side. > > >>> > > > >>> > What do you think? > > >>> > > > >>> > Kind regards > > >>> > > > >>> > > > >>> > > > >>> > --- > > >>> > Thomas FRITZ > > >>> > web http://fritzthomas.com > > >>> > twitter http://twitter.com/thomasf > > >>> > ___ > > >>> > 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 > > >>> > > >> ___ > > >> 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 > > > ___ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Neo4jPHP batch insert benchmarks
The heap space stuff would make sense I think, because we currently deserialize and serialize in-place, keeping the whole thing in memory. Would be interesting to see if we could implement a setup that can stream the deserialization/serialization, getting rid of the memory overhead.. You said you are using out-of-the-box settings for the server, I don't remember off the top of my head what the default heap size is, but you might want to try giving it more RAM. I'm gonna guess that's where performance dies.. I'll have to look at what is proper HTTP behavior, but there should be a way we could start streaming back the response as it is being calculated, as long as we can come up with a good way of aborting if something fails.. Doing that would mean we don't have to keep a hundred thousand requests and responses in memory, which would completely change the performance situation. Big thanks for taking the time to put this together! /jake On Thu, Aug 25, 2011 at 3:52 PM, jadell wrote: > Hey Peter, > > I don't have any way of verifying on the server side, other than measuring > the time it takes for curl_exec to return a response. On the client side I > can see that PHP's json_encode/json_decode functions are taking less than > .5% of the total run time, even with a batch size of 1. During one of > my > 10 node attempts, I printed out the server response of the "500 Heap > space" error. It seemed like the last method in the stack trace was dealing > with a "Deserializer" class or method. I will try again and capture the > stack trace output to post here. > > Thanks, > > -- Josh Adell > > > > -- > View this message in context: > http://neo4j-community-discussions.438527.n3.nabble.com/Neo4jPHP-batch-insert-benchmarks-tp3282984p3283926.html > Sent from the Neo4j Community Discussions mailing list archive at > Nabble.com. > _______ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] neo4j.py install problems
Hey Eddy, sorry about the late reply, I'm on vacation, so I've been checking email rather sporadically. I'm not sure exactly what causes your problem, since we seem to have lost the nested exception at some point (presumably a java/jpype/python thing), but generally, what you are seeing is the under-the-hood database saying "I can't create a database at that location". That could be because it does not have write access to the folder you give it, or that the folder does not exist. It could also be something more complicated, but make sure that the process this app runs in has write access, and that the folder exists, first. On the subject of the new neo4j.py bindings, I am currently assigned to them, and will be working on nothing but them until we get a release of them out. I on vacation this week, and will be travelling and moving next week (I will try to get some work done though). After the dust settles, I'll push hard to get a new version out. /Jacob On Sun, Jul 24, 2011 at 4:05 AM, Eddy wrote: > Anyone? > > Also whats the current status of neo4j.py? I read somewhere it was being > updated some time ago. > > -- > View this message in context: > http://neo4j-community-discussions.438527.n3.nabble.com/neo4j-py-install-problems-tp3191386p3194919.html > Sent from the Neo4j Community Discussions mailing list archive at > Nabble.com. > ___ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] REST Batch: failed to insert empty array as a node property
On Mon, Jul 18, 2011 at 5:39 PM, Mattias Persson wrote: > 2011/7/18 Jacob Hansson > > > On Wed, Jul 6, 2011 at 7:55 AM, Igor Dovgiy wrote: > > > > > When trying to process POSTing to batch-path of something like... > > > > > > [{"id":1, > > > "method":"POST", > > > "to":"/node", > > > "body":{"user_properties":[]} > > > }] > > > > > > ...server fails with... > > > "exception" : "java.lang.RuntimeException", > > > "stacktrace" : [ > > > > > > > > > "org.neo4j.server.rest.web.BatchOperationService.performJob(BatchOperationService.java:137)", > > > > > > > > > "org.neo4j.server.rest.web.BatchOperationService.performBatchOperations(BatchOperationService.java:83)", > > > "sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)", > > > "sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)", > > > "sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)", > > > "java.lang.reflect.Method.invoke(Unknown Source)" etc. > > > > > > A bug, or have I missed something in Neo4j docs? > > > > > > > This is actually expected behaviour. The server cannot use an empty array > > to > > set a property, because it doesn't know what type of array it is (and the > > database requires typed arrays). > > > > It does uncover two issues though - one is that the error reporting in > the > > batch API does not relay the underlying errors very well at all, I'll fix > > that. > > > > The other is that I think the expected behavior here should change. Empty > > arrays shouldn't be a special case, in my opinion, and it would be easy > for > > us to just default to an empty boolean array or something. > > > You mean storing an empty boolean[] on the entity? It could possibly work > in a REST environment, but not embedded where if you added an empty int[] > you'd get back a boolean[] all of a sudden. > > Oh snap, my head was all full of REST, you are absolutely right. > > > /jake > > > > > > > ___ > > > Neo4j mailing list > > > User@lists.neo4j.org > > > https://lists.neo4j.org/mailman/listinfo/user > > > > > > > > > > > -- > > Jacob Hansson > > Phone: +46 (0) 763503395 > > Twitter: @jakewins > > ___ > > 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 > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] REST Batch: failed to insert empty array as a node property
On Wed, Jul 6, 2011 at 7:55 AM, Igor Dovgiy wrote: > When trying to process POSTing to batch-path of something like... > > [{"id":1, > "method":"POST", > "to":"/node", > "body":{"user_properties":[]} > }] > > ...server fails with... > "exception" : "java.lang.RuntimeException", > "stacktrace" : [ > > "org.neo4j.server.rest.web.BatchOperationService.performJob(BatchOperationService.java:137)", > > "org.neo4j.server.rest.web.BatchOperationService.performBatchOperations(BatchOperationService.java:83)", > "sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)", > "sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)", > "sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)", > "java.lang.reflect.Method.invoke(Unknown Source)" etc. > > A bug, or have I missed something in Neo4j docs? > This is actually expected behaviour. The server cannot use an empty array to set a property, because it doesn't know what type of array it is (and the database requires typed arrays). It does uncover two issues though - one is that the error reporting in the batch API does not relay the underlying errors very well at all, I'll fix that. The other is that I think the expected behavior here should change. Empty arrays shouldn't be a special case, in my opinion, and it would be easy for us to just default to an empty boolean array or something. /jake > ___ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Constraints on index key names?
I'm not sure if there is anything keeping you from using them, but the names 'node_auto_index' and 'relationship_auto_index' are used by the auto indexing subsystem. On Wed, Jul 13, 2011 at 8:35 AM, Mattias Persson wrote: > Yes, the neo4j integration doesn't impose any additional restrictions other > than those (if any) of Lucene. > > 2011/7/12 Rick Bullotta > > > That would conflict with lucene's query syntax, I'd think. > > > > From: user-boun...@lists.neo4j.org [user-boun...@lists.neo4j.org] On > > Behalf Of Aseem Kishore [aseem.kish...@gmail.com] > > Sent: Monday, July 11, 2011 7:41 PM > > To: Neo4j user discussions > > Subject: [Neo4j] Constraints on index key names? > > > > Is there any constraint on what an index key is allowed to be named? E.g. > > can it have a '+' in its name? > > > > 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 > > > > > > -- > 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 > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] 1.4 Console Cypher dose not work, but Cypher Plugin works fine!
On Wed, Jul 13, 2011 at 9:35 AM, Zhiguo Zhang wrote: > OK, that is my fault. I read the tiny note again, and find you are totally > right! :) > Sorry about that, it's in the pipeline to make it more obvious, but I haven't gotten around to it yet. > > On Wed, Jul 13, 2011 at 4:31 PM, Michael Hunger < > michael.hun...@neotechnology.com> wrote: > > > Mike, > > > > how do you constitute that the cypher console does not work? > > > > Please note that you have to hit return twice as this console accepts > > multiline input. > > > > Cheers > > > > Michael > > > > Am 13.07.2011 um 16:22 schrieb Zhiguo Zhang: > > > > > hi, > > > > > > maybe there is only few people use the console with the cypher > language, > > but > > > it does not work. So I install the cypher plugin for the rest api, with > > the > > > rest api, the cypher works fine. > > > > > > funy, is it not? > > > > > > MfG > > > > > > Mike > > > ___ > > > 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 > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Example of using WrappingNeoServerBootstrapper
The only dependency for that is the neo4j-server maven package. I am not sure, however, if that is a public maven artifact. If you can't find it, you'll have to build it locally for now. For a usage example, see this test: https://github.com/neo4j/community/blob/master/server/src/functionaltest/java/org/neo4j/server/WrappingNeoServerBootstrapperTest.java#L57 On Wed, Jul 13, 2011 at 9:42 AM, Michael Kilgore < mfkilg...@infoclearonline.com> wrote: > In the documentation there is a short section about using > WrappingNeoServerBootstrapper to provide server services (rest, stats etc) > to an embedded database. Is there any example code where this is being used? > Which jars files (maven dependencies) are required. > > I have an application (maven built) with an embedded database in place and > would like to expose it to the server tools. > > Thanks in advance, > > Michael Kilgore > > > > > > > > > > > > ___ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] auto indexes in REST in 1.4?
It is currently possible to configure auto indexing for the server using the neo4j.properties configuration file. Something like this should work: node_auto_indexing=true node_keys_indexable=name, age relationship_auto_indexing=true relationship_keys_indexable=strength, someotherkey Programatically setting up auto indexing via the REST API is currently not supported, because the modifying auto index settings during runtime does currently not persist across database restarts. Using the auto indexes programatically via REST would thus mean that clients would have to monitor when the server shuts down, and recreate runtime settings upon startup. Once we have programmatic auto index settings set up to where they persist across database shutdowns, these features will be added to the REST API. I am just now finishing support for querying auto indexes via REST, and it will, if it passes QA, be available in the next milestone release. It will also most likely be available in the latest SNAPSHOT release by tonight. Until such a version is available, it is possible to query auto indexes by name. Please note, however, that this is *not* an official API feature, we do not make any guarantees that this will be supported in subsequent versions. To query the node auto index, simply issue a normal index query to the node index named "node_auto_index" or, for relationships, to the relationship index named "relationship_auto_index". /Jake On Tue, Jul 12, 2011 at 3:32 PM, Matt Luongo wrote: > +1, we could use configuration through REST as well. > > -- > Matt Luongo > Co-Founder, Scholr.ly > > > > On Tue, Jul 12, 2011 at 6:45 AM, mike_t wrote: > > > Please tell me, how can I do that? I couldn´t find anything about it in > the > > api doc (http://components.neo4j.org/neo4j-server/snapshot/rest.html) > > > > -- > > View this message in context: > > > http://neo4j-user-list.438527.n3.nabble.com/Neo4j-auto-indexes-in-REST-in-1-4-tp3159205p3162053.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 > > > _______ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Get all nodes and relationships in REST
Here is an example of how such a plugin would look: http://components.neo4j.org/neo4j-server-examples/snapshot/xref/org/neo4j/examples/server/plugins/GetAll.html On Tue, Jul 12, 2011 at 3:01 PM, Jim Webber wrote: > Hey Javier, > > > And this should work even if my graph has several unconnected > componentes? > > > Oh, no it won't. Then I'd suggest writing a managed/unmanaged plugin that > calls getAllNodes() on the server side. > > Jim > ___ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Neo4j vs orient db
On Sun, Jul 10, 2011 at 7:43 AM, Aliabbas wrote: > thanks andrew ! . Can you share with us your experiment for very large > databases . Orient db also claims to be highly scalable and follows a > distributed model? How does that compare to neo4js scalability? Neo4j seems > to be more open and honest than orient db in describing its limitations? > As far as I can tell, the theoretical scalability and the distributed model does not apply if you want to use the graphy features of OrientDB. At least that's what it says on the OrientDB google code page. I do believe that there is support for master/slave replication though, similar to the Neo4j HA product. If you have the time, I'd encourage you to try both databases out, and pick whichever suits your needs. We are of course happy to answer any questions about Neo4j that you have :) Aliabbas Petiwala > Composed on mobile n97mini > > -original message- > Subject: Re: [Neo4j] Neo4j vs orient db > From: Andrew White > Date: 10/07/2011 5:49 pm > > I've seen a few studies but nothing very complete. I'm no expert by far > but the jest I got was that as of late 2010, OrientDB had really fast > load/read times but that Neo4j was *far* better at graph transversal. > > I am in the process of evaluating OrientDB from the perspective of > "dense" graphs. I get the feeling at lot of performance is going to be > dependent on the data model choosen for the particular platform. I > welcome any Neo4j expert opinions on the matter though. > > Andrew > > On 07/10/2011 06:38 AM, Peter Neubauer wrote: > > Hi there, > > no, I have not seen anything that way, at least not relevant studies. > > We have not seen any import over a couple of million records in > > OrientDB sa far. > > > > 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 Sun, Jul 10, 2011 at 8:52 AM, Aliabbas Petiwala > wrote: > >> Is there any evaluation results and code availaible comparing neo with > >> orientdb for very large graph databases? > >> > >> -- > >> Aliabbas Petiwala > >> M.Tech CSE > >> ___ > >> 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 > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] The URL for batching operations through REST
Hey, that was a miss on my part, thanks for letting us know. I just pushed a fix for this :) /Jake On Mon, Jul 11, 2011 at 9:21 AM, Javier de la Rosa wrote: > I'm just wondering why the URL "http://localhost:7474/db/data/batch"; > is not returned with the initial request on root > "http://localhost:7474/db/data"; like the rest of the URL's. > > Regards. > > -- > Javier de la Rosa > http://versae.es > ___ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Webadmin browser dependencies?
Excellent. I've got a fix for the problem with the visualization, just need to slot in the time to write and test it :) On Sun, Jun 26, 2011 at 6:48 AM, Tatham Oddie wrote: > Sorry, I should have clarified that it's just the visualization that > doesn't work. Everything else is perfect. > > -- Tatham > > > -Original Message- > From: user-boun...@lists.neo4j.org [mailto:user-boun...@lists.neo4j.org] > On Behalf Of Jacob Hansson > Sent: Saturday, 25 June 2011 3:25 AM > To: Neo4j user discussions > Subject: Re: [Neo4j] Webadmin browser dependencies? > > Is that the whole data browser, or is it just the visualization? > > In IE8, everything appears to work except two things, history support > (clicking back doesn't change the url-hash), and the visualization. > > I'm gonna get a hold of a Windows 7-copy as well so that I can test this in > IE9. > > /Jake > > On Thu, Jun 23, 2011 at 9:35 PM, Tatham Oddie wrote: > > > Everything except data browser works fine for me in IE9. > > > > -- Tatham > > > > > > -Original Message- > > From: user-boun...@lists.neo4j.org > > [mailto:user-boun...@lists.neo4j.org] > > On Behalf Of Paul Bandler > > Sent: Friday, 24 June 2011 1:03 AM > > To: Neo4j user discussions > > Cc: Neo4j user discussions > > Subject: Re: [Neo4j] Webadmin browser dependencies? > > > > Thanks but none of those browsers are allowed to be downloaded within > > my clients corporate network... > > > > Again, does anyone know what IE level works? > > > > Sent from my iPhone > > > > On 23 Jun 2011, at 13:53, Tatham Oddie wrote: > > > > > Data browser works in Chome / Firefox / Safari. > > > > > > It should give you a message to this effect on unsupported browsers. > > > > > > > > > -- Tatham > > > > > > > > > -Original Message- > > > From: user-boun...@lists.neo4j.org > > > [mailto:user-boun...@lists.neo4j.org] > > On Behalf Of Paul Bandler > > > Sent: Thursday, 23 June 2011 10:30 PM > > > To: Neo4j user discussions > > > Subject: [Neo4j] Webadmin browser dependencies? > > > > > > Unable to access the data tab using IE version 7. Tried using the > > > Eclipse > > built in browser and it momentarily switches to the data tab but then > > it disappears again. > > > > > > What are the supported browser platforms? > > > > > > Sent from my iPhone > > > ___ > > > 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 > > > > > > -- > Jacob Hansson > Phone: +46 (0) 763503395 > Twitter: @jakewins > ___ > 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 > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Webadmin browser dependencies?
Is that the whole data browser, or is it just the visualization? In IE8, everything appears to work except two things, history support (clicking back doesn't change the url-hash), and the visualization. I'm gonna get a hold of a Windows 7-copy as well so that I can test this in IE9. /Jake On Thu, Jun 23, 2011 at 9:35 PM, Tatham Oddie wrote: > Everything except data browser works fine for me in IE9. > -- Tatham > > > -Original Message- > From: user-boun...@lists.neo4j.org [mailto:user-boun...@lists.neo4j.org] > On Behalf Of Paul Bandler > Sent: Friday, 24 June 2011 1:03 AM > To: Neo4j user discussions > Cc: Neo4j user discussions > Subject: Re: [Neo4j] Webadmin browser dependencies? > > Thanks but none of those browsers are allowed to be downloaded within my > clients corporate network... > > Again, does anyone know what IE level works? > > Sent from my iPhone > > On 23 Jun 2011, at 13:53, Tatham Oddie wrote: > > > Data browser works in Chome / Firefox / Safari. > > > > It should give you a message to this effect on unsupported browsers. > > > > > > -- Tatham > > > > > > -Original Message- > > From: user-boun...@lists.neo4j.org [mailto:user-boun...@lists.neo4j.org] > On Behalf Of Paul Bandler > > Sent: Thursday, 23 June 2011 10:30 PM > > To: Neo4j user discussions > > Subject: [Neo4j] Webadmin browser dependencies? > > > > Unable to access the data tab using IE version 7. Tried using the Eclipse > built in browser and it momentarily switches to the data tab but then it > disappears again. > > > > What are the supported browser platforms? > > > > Sent from my iPhone > > ___ > > 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 > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Webadmin browser dependencies?
Hey all, Our automatic tests do currently not run inside Internet Explorer (due to issues getting the webdriver IE driver to deliver repeatable results). It is, however, our goal to ensure support for all features in IE8 and upwards (currently, data visualization should be the only feature that is not available) and testing manually in that browser is part of our release process. We may have missed testing the data browser for the version of neo4j you are using (which version are you using?), or there may be issues that show up in IE7 that do not show up in IE8. I've recently reinstalled my laptop, but I'll be installing a windows VM today to see if I can hunt this down, sorry for the inconvenience. /jake On Thu, Jun 23, 2011 at 12:34 PM, Michael Hunger < michael.hun...@neotechnology.com> wrote: > Which parts of webadmin are absolutely critical? > > What about neoclipse readonly? > > Sent from my iBrick4 > > > Am 23.06.2011 um 19:00 schrieb Rick Bullotta >: > > > Welcome to my world, Paul... > > > > Web applications that don't recognize the realities of the "enterprise > desktop" won't ultimately be able to leverage a given technology if it > doesn't fit with their corporate "standards". As painful as it may be at > times, broad-based browser support is a must-have for applications that want > to make a big push into the enterprise (behind the firewall) world. > > > > My experience, however, is that the "corporate standards" can usually be > bypassed by developers/admins but not by the general user. Exceptions tend > to be in defense, public safety/security or other highly sensitive > industries. Perhaps your client would agree to violate the "standard" for > admins? > > > > > > > > > > -Original Message- > > From: user-boun...@lists.neo4j.org [mailto:user-boun...@lists.neo4j.org] > On Behalf Of Paul Bandler > > Sent: Thursday, June 23, 2011 11:03 AM > > To: Neo4j user discussions > > Cc: Neo4j user discussions > > Subject: Re: [Neo4j] Webadmin browser dependencies? > > > > Thanks but none of those browsers are allowed to be downloaded within my > clients corporate network... > > > > Again, does anyone know what IE level works? > > > > Sent from my iPhone > > > > On 23 Jun 2011, at 13:53, Tatham Oddie wrote: > > > >> Data browser works in Chome / Firefox / Safari. > >> > >> It should give you a message to this effect on unsupported browsers. > >> > >> > >> -- Tatham > >> > >> > >> -Original Message- > >> From: user-boun...@lists.neo4j.org [mailto:user-boun...@lists.neo4j.org] > On Behalf Of Paul Bandler > >> Sent: Thursday, 23 June 2011 10:30 PM > >> To: Neo4j user discussions > >> Subject: [Neo4j] Webadmin browser dependencies? > >> > >> Unable to access the data tab using IE version 7. Tried using the > Eclipse built in browser and it momentarily switches to the data tab but > then it disappears again. > >> > >> What are the supported browser platforms? > >> > >> Sent from my iPhone > >> ___ > >> 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 > ___ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] TraversalDescription order
The order method indeed does decide what order the graph is traversed, you can either use it with the predefined traversal orders like so: td.order(CommonBranchOrdering.PREORDER_DEPTH_FIRST) or you can pass it your own branch selector implementation, see https://github.com/neo4j/community/blob/master/kernel/src/main/java/org/neo4j/kernel/PreorderDepthFirstSelector.javafor an example. An easier way to include weights would be to make the traversal only follow LIKES relationships that are over a certain weight threshold. You can also process the weights outside of the traversal entirely. For instance, you can calculate the average weight for each path returned by the traversal, sort the result by that, and only return the top results. /jake On Thu, Jun 23, 2011 at 8:30 AM, Igor Dovgiy wrote: > Hi all, > > I'm trying to implement a recommendations system app with Neo4j (1.4). > Basically, I intend to have some 'User' nodes and some 'Interest' nodes in > my graph. Then, to find users with similar interests, traverse it by > something like... > > TraversalDescription td = new Traversal.description() > .relationships(RelTypes.LIKES) > .evaluator(Evaluators.atDepth(2)); > > The real question is, though, whether I'll be able to choose what Interest > nodes to walk through first, depending on their weights (i.e., number of > users linked to them)? As I understand, the order() method is designed > right > for this case, but sadly I was unable to find examples of its usage... > > Any help will be greatly appreciated! > > -- iD > ___ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Cannot execute Cypher
On Tue, Jun 14, 2011 at 9:11 AM, Andres Taylor < andres.tay...@neotechnology.com> wrote: > Hi Pierre, > > On Tue, Jun 14, 2011 at 1:48 PM, Pierre De Wilde >wrote: > > > > >start n=(1) return n > > > > > > > Nothing is returned... > > > Could you look in the logs for any clues? They are in dir>/data/log > This will most likely reveal the source of the problem. You could also install the firebug plugin for firefox, and use it to see what the raw response from the server is. > > Andrés > ___ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Embedded with webadmin
Adriano: The fact that this code is not QA'd and isn't "officially" in the M03 release will mean that we do not guarantee the API won't change, and that there may be undiscovered problems with it. That said, if you want to use it, take a look at: https://github.com/neo4j/community/blob/master/server/src/main/java/org/neo4j/server/WrappingNeoServerBootstrapper.java Which should be available in the M03 release due later today. /Jake On Fri, May 27, 2011 at 9:55 AM, Jim Webber wrote: > If you use it in the M03 release, you're on your own :-) > > Jim > > On 27 May 2011, at 00:04, Adriano Henrique de Almeida wrote: > > > Wow... very good to know that the code exists! > > > > 2011/5/26 Jim Webber > > > >> This code exists, but isn't yet QA'd or documented. > >> > >> It will appear in the M03 release, but won't be QA'd and documented > until > >> the M04 release. > >> > >> Jim > >> > >> On 26 May 2011, at 18:51, Peter Neubauer wrote: > >> > >>> Yeah. > >>> just saw today some really cool stuff from Jacob in this direction. > Stay > >>> tuned - it's lab day tomorrow :) > >>> > >>> 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 Wed, May 25, 2011 at 9:32 AM, Craig Taverner > >> wrote: > >>> > >>>> While HA is one option, with two processes 'sharing' a database, one > >> being > >>>> the server and the other the embedded app, there is another option, > and > >>>> that > >>>> is to integrate the two apps. If your app is a web-app and also needs > to > >>>> exist in something like jetty or winstone, perhaps you could run both > >> the > >>>> server and your app together in the same process? One obvious way of > >> doing > >>>> this is to write your app as a server extension within the > neo4j-server > >>>> extensions API. I suspect there are other ways to do this where your > app > >> is > >>>> in control and simply accesses (and starts) the relevant code from > >>>> neo4j-server, but I don't know how to do that. Could be interesting to > >> find > >>>> out. > >>>> > >>>> On Tue, May 24, 2011 at 11:39 PM, Adriano Henrique de Almeida < > >>>> adrianoalmei...@gmail.com> wrote: > >>>> > >>>>> Yep, > >>>>> > >>>>> the neo4jserver is just a rest api over neo4j database, so it's still > >>>>> stored > >>>>> in at the disk. So, all you need to do, is to point your java > >> application > >>>>> to > >>>>> the neo4j db directory. > >>>>> > >>>>> Remember, that you'll be unable to start both you app and the neo4j > >>>> server > >>>>> at the same time, at the same database. For this situation, you'll > need > >>>>> Neo4j HA. > >>>>> > >>>>> Regards > >>>>> > >>>>> 2011/5/24 Chris Baranowski > >>>>> > >>>>>> Hi all, > >>>>>> > >>>>>> I searched this mailing list some but couldn't find a definitive > >>>> answer: > >>>>>> is it possible to use the web admin with an embedded neo4j database? > >>>> I'd > >>>>>> like to run embedded in my project and also be able to administrate > >>>>> online. > >>>>>> > >>>>>> Thanks! > >>>>>> Chris > >>>>>> _______ > >>>>>> Neo4j mailing list > >>>>>> User@lists.neo4j.org > >>>>>> https://lists.neo4j.org/mailman/listinfo/user > >>>>>> > >>>>> > >>>>> > >>>>> > >>>>> -- > >>>>> Adriano Almeida > >>>>> Caelum | Ensino e Inovação > >>>>> www.caelum.com.br > >>>>> ___ > >>>>> 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 > >> > > > > > > > > -- > > Adriano Almeida > > Caelum | Ensino e Inovação > > www.caelum.com.br > > ___ > > 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 > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] REST API (optimistic or transactional) concurrency?
> On Thu, May 5, 2011 at 9:26 AM, Aseem Kishore < > aseem.kish...@gmail.com > > > > > > > wrote: > > > > > Thanks Peter. Looking forward to seeing what you guys come up with! > > > > > > > > > > Dima, thanks for the tip. It would be nice to not to have to write > a > > > > custom > > > > > plugin for what's arguably a pretty fundamental need from database > > > APIs. > > > > =) > > > > > > > > > > Aseem > > > > > > > > > > On Wed, May 4, 2011 at 2:05 PM, Peter Neubauer < > > > > > peter.neuba...@neotechnology.com> wrote: > > > > > > > > > >> Guys, > > > > >> Friday is labday, so we there are tentative plans to sketch on > some > > > > >> transactional semantics in the REST API and circle back to the > list > > on > > > > >> that. Let's see how it goes! > > > > >> > > > > >> 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 Wed, May 4, 2011 at 8:59 PM, Dima Gutzeit > > > > >> wrote: > > > > >> > You should implement your own plugin/component on the standalone > > > neo4j > > > > >> > server and expose you own API that makes batch operations. > > > > >> > > > > > >> > Regards, > > > > >> > Dima Gutzeit. > > > > >> > > > > > >> > Sent from my iPhone > > > > >> > > > > > >> > On 4 במאי 2011, at 21:56, Aseem Kishore < > aseem.kish...@gmail.com> > > > > wrote: > > > > >> > > > > > >> >> Re-sending in the hopes that someone has answers to or thoughts > > on > > > > this. > > > > >> =) > > > > >> >> > > > > >> >> Aseem > > > > >> >> > > > > >> >> On Mon, May 2, 2011 at 4:16 PM, Aseem Kishore < > > > > aseem.kish...@gmail.com > > > > >> >wrote: > > > > >> >> > > > > >> >>> Hi there, > > > > >> >>> > > > > >> >>> If we're using Neo4j purely over REST, do we have any means to > > > > protect > > > > >> >>> against concurrency? The REST API appears to expose neither > > > > >> transactions nor > > > > >> >>> optimistic concurrency. > > > > >> >>> > > > > >> >>> Here's a simple example: we have nodes representing users, and > > > users > > > > >> have a > > > > >> >>> "username" property that we index. When a new user signs up > and > > > > >> requests a > > > > >> >>> particular username, we'd like to only give it to them if that > > > > username > > > > >> >>> isn't taken. > > > > >> >>> > > > > >> >>> If we simply query the index for the specified username, > reject > > it > > > > if a > > > > >> >>> node already exists for that username, otherwise accept it and > > > > create a > > > > >> new > > > > >> >>> node and index it, then this opens us up to a classic race > > > > condition. > > > > >> >>> > > > > >> >>> Having an "atomic get or create" operation (essentially a > > > > transaction) > > > > >> over > > > > >> >>> the REST API would solve this. > > > > >> >>> > > > > >> >>> Alternately, having conditional operations ("add this > > > node+username > > > > to > > > > >> the > > > > >> >>> index only if the index still has no other node for that > > > username") > > > > >> would > > > > >> >>> also this, since we would fail and try our request again, > seeing > > > now > > > > >> the > > > > >> >>> username already exists (optimistic concurrency). > > > > >> >>> > > > > >> >>> Are we missing anything? Is any of this possible today? If > not, > > it > > > > >> would be > > > > >> >>> great to see some sort of support for concurrency over the > REST > > > API > > > > in > > > > >> a > > > > >> >>> future release. =) > > > > >> >>> > > > > >> >>> 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 > > > > > > > > > ___ > > > > 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 > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Server Plugin Example to help with large queries over REST API
s from the server will be documents that include URIs > to everything you can do next". > > Point 2 also becomes very interesting around paging (think "next" and > "previous" URIs as part of the returned document). > > I can provide more details and concrete examples if this approach sounds > interesting. > > Further reading: > > http://barelyenough.org/blog/2008/05/versioning-rest-web-services/ > > > http://barelyenough.org/blog/2007/05/hypermedia-as-the-engine-of-application-state/ > > Todd > > > > > -- > > > > Message: 1 > > Date: Mon, 2 May 2011 13:45:00 +0200 > > From: Jacob Hansson > > Subject: Re: [Neo4j] Server Plugin Example to help with large queries > >over REST API > > To: Neo4j user discussions > > Message-ID: > > Content-Type: text/plain; charset=ISO-8859-1 > > > > I did a bit of poking at this last week, and noticed the same thing you > did > > - we don't expose much of the power of the lucene index through the REST > > API. > > > > The question is, how should we go about doing it (and perhaps even > "Should > > we?")? We really don't want the API to be Lucene-specific (which is why > > we're currently only allowing that one query string as input).. I suppose > > we > > could keep a generic API like we have now, but also allow index > > implementations to expose "extra" API goodies in some reasonable way.. > > > > /jake > > > > On Sun, May 1, 2011 at 4:12 PM, Todd Chaffee wrote: > > > > > Hi Michael, > > > > > > I actually appreciated the suggestion because it got me looking closer > at > > > the lucene query syntax and thinking about it's limitations. I would > > like > > > to see limits, sorting, and operators like > and <. If I remember > right > > > they are available in the lucene java api so a shame they haven't been > > > added > > > to the query syntax yet. > > > > > > Thanks, > > > Todd > > > > > > > > > > -- > > > > > > > > Message: 2 > > > > Date: Sat, 30 Apr 2011 15:09:50 +0200 > > > > From: Michael Hunger > > > > Subject: Re: [Neo4j] User Digest, Vol 49, Issue 85 > > > > To: Neo4j user discussions > > > > Message-ID: > > > > Content-Type: text/plain; charset=us-ascii > > > > > > > > Todd, > > > > > > > > Sorry, you're right, I mixed up range queries with limits. > > > > > > > > Thought that would be also be possible via the query parser syntax. > > > > > > > > It would be nice if lucene supported query limits via their parsed > > query > > > > syntax. > > > > > > > > Sorry for the confusion. > > > > > > > > Michael > > > > > > > > Am 30.04.2011 um 14:48 schrieb Todd Chaffee: > > > > > > > > > Hi Michael, > > > > > > > > > > Unless I'm misunderstanding something, what you suggested won't > help. > > > I > > > > > have only 1 key: "name". If I search on it with a query like > > > > > ?query=name:*a* it is going to return all nodes with the letter 'a' > > in > > > > the > > > > > name. The result set could be over 100,000 nodes. I want it to > > > return > > > > > just the first 4 nodes. Does that make sense? If there is a > simpler > > > way > > > > of > > > > > achieving this aside from a custom plugin I am all ears. > > > > > > > > > > When did the full lucene query API syntax become available with the > > > REST > > > > > API? Docs have only changed in the last few days but I'm guessing > > > > (hoping) > > > > > the docs were a bit behind and now reflect version 1.3 of the > server? > > > > > > > > > > Thanks, > > > > > Todd > > > > > > > > > > > > > > > > > > > >> Todd, > > > > >> > > > > >> what about the full lucene query API syntax available with the > REST > > > API > > > > >> changes ? > > > > >> > > > > >> > > > > &g
Re: [Neo4j] Creating an exe from a runnable jar file
I've used launch4j to create .exe executables for neo4j apps before. I did that using this maven plugin: http://alakai.org/reference/plugins/launch4j-plugin-usage.html Directly through eclipse, I'm not sure how to do that.. On Tue, May 3, 2011 at 5:51 PM, Mattias Persson wrote: > I have used Launch4j, http://launch4j.sourceforge.net/ successfully in > other > projects... not for neo4j though. May be worth a look. > > 2011/5/3 Abhishek AS > > > Hello, > > > > Needed urgent help on the subject matter. Created the runnable jar of my > > java project through Eclipse. Now I need to create an exe which I then > > intend to create a package using InstallJammer. But the problem being, > I'm > > not able to create the exe. been using exe4j, JSmooth, NativeJExpress and > > applications like these. But none seem to work. I have neo4j incorporated > > in > > my code. Need help on this asap. > > > > Thanks, > > Regards, > > Abhishek > > ___ > > 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 > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Server Plugin Example to help with large queries over REST API
>> Content-Type:application/json > > >>> http://localhost:7474/db/data/ext/NodeIndex/graphdb/limit_by_count-d > > >>> '{"index":"names", "key":"name", "query":"*a*", "count":4}' > > >>> > > >>> > > >>> With the interesting part being the count of 4 at the end. Only 4 > > >>> nodes are returned and it happens FAST because on the server side the > > >>> iteration stops at 4, only 4 nodes are created, and only 4 sent over > > >>> the wire. > > >>> > > >>> > > >>> More documentation and source code showing how I did this over at > > github. > > >>> Hope this helps some of you out there while we wait for the REST api > to > > >>> support paging. > > >>> > > >>> https://github.com/tchaffee/Neo4J-REST-PHP-API-client > > >>> > > >>> Todd > > >>> > > >>> -- > > >>> > > >>> MIKAMAI | Making Media Social > > >>> http://mikamai.com > > >>> +447868260229 > > >>> ___ > > >>> 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 > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Paging of REST results
I think it's important to support paging on both traversals and index queries, we've got a use-case in webadmin where we are currently unable to explore nodes with more than a few hundred relationships in the data browser, since the traversal that pulls down all related nodes can't be paged. In my humble, but usually loudly expressed, opinion, paging (as well as streaming and sorting :) ) is one of the really high priority issues. Like Todd says, it is something that we've grown used to having from other databases, and it really hinders people using the database. Given that we split sorting and paging, if we decide to implement sorting and decide to do it fairly low-level, we can implement paging the way Craig expressed doing it without persisting the iterators. The persisted iterator discussion, to me at least, never reached a good conclusion. It should be continued before we decide to do it or not, but since it is effectively an optimization, I think it can wait until we've got initial paging support in place. /jake On Wed, Apr 27, 2011 at 8:08 AM, Michael Hunger < michael.hun...@neotechnology.com> wrote: > Todd, > > thanks for providing the use-case. > > So you need paging only for index query results, not for traversals? > > What is your data volume, how many nodes and different fields do you have > indexed and is there a > index per field or a global one? > > Cheers > > Michael > > Am 26.04.2011 um 22:54 schrieb Todd Chaffee: > > > Oops, hit "send" too early. > > > > To finish up: > > > > once the user clicks for more results, they get something very similar to > > Google search results, and they can scroll through the pages. Again, > very > > easy with mysql using LIMIT. Would really love to eliminate the mysql > > implementation since it takes up a lot of memory on the server. > > > > I was a bit disappointed in the speed of the Index searching. The mysql > > fulltext searches are usually subsecond, but with Lucene I was sometimes > > seeing over 10 seconds to come back with results. Maybe because it has > to > > create so many Nodes + sending it over the wire? Any suggestions on > > improving the speed or am I stuck with mysql until paging is implemented > in > > the REST API? > > > > Thanks, > > Todd > > > > > > On Tue, Apr 26, 2011 at 9:41 PM, Todd Chaffee wrote: > > > >> Just thought I'd weigh in on the paging of REST results. It's essential > >> for my app and is unfortunately forcing me to stick with mysql for part > of > >> the app. I hope a couple of concrete examples will help. > >> > >> 1) Drop down AJAX type-ahead showing the first 4 results of searching > for a > >> someone's name. 2m names total as nodes. This is working ok with mysql > >> because I can use LIMIT so over the wire I only send back 4 results. If > the > >> user types "David" there are over 7000 nodes that match. Eliminates the > >> possibility of using the REST query api. > >> > >> A deeper concern is the Index api for Neo4j does not expose the Lucene > >> IndexSearch fields that would allow something giving an offset when > >> retrieving a document. I.e. > >> > >> Document doc = hits.doc(offset); > >> > >> If it did, I would be tempted to write my own plugin, but it seems in > this > >> case I would have to extend Index > >> > >> For the final example, once the user sees the dropdown, it's highly > >> unlikely that "their" David is in the top four results from the AJAX > >> type-ahead, so there is an option to "click for more results". That > brings > >> them to a > >> > >> -- > >> > >> MIKAMAI | Making Media Social > >> http://mikamai.com > >> +447868260229 > >> > > > > > > > > -- > > > > MIKAMAI | Making Media Social > > http://mikamai.com > > +447868260229 > > ___ > > 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 > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] REST results pagination
/mixed; boundary=OjZ8Km9J5vbsmxtcn1p48J91cJP > > --OjZ8Km9J5vbsmxtcn1p48J91cJP > Content-Type: application/json > Etag: 3pvmY35coyWPxh8mh4uBQC > Last-Modified: Wed, 10 Mar 2010 20:14:13 GMT > > {"riak":"CAP"} > --OjZ8Km9J5vbsmxtcn1p48J91cJP-- > > --JZi8W8pB0Z3nO3odw11GUB4LQCN > Content-Type: multipart/mixed; boundary=RJKFlAs9PrdBNfd74HANycvbA8C > > --RJKFlAs9PrdBNfd74HANycvbA8C > Location: /riak/test/doc2 > Content-Type: application/json > Etag: 6dQBm9oYA1mxRSH0e96l5W > Last-Modified: Wed, 10 Mar 2010 18:11:41 GMT > > {"foo":"bar"} > --RJKFlAs9PrdBNfd74HANycvbA8C-- > > --JZi8W8pB0Z3nO3odw11GUB4LQCN-- > * Connection #0 to host 127.0.0.1 left intact > * Closing connection #0 > > Riak - MapReduce: > Optional query parameters: > >* chunked – when set to true, results will be returned one at a time in > multipart/mixed format using chunked-encoding. > Important headers: > >* Content-Type – application/json when chunked is not true, > otherwise multipart/mixed with application/json parts > > Other interesting endpoints: /ping, /stats > ___ > 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 > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] REST results pagination
t once we move to automatic indexes, then it will be > possible to put external indexes (a'la lucene) and graph indexes (like the > ones I favour) behind the same API. In this case perhaps the database will > more easily be able to make the right optimized decisions, and use the > index > for providing sorted results fast and with low memory footprint where > possible, based on the existance or non-existance of the necessary indices. > Then all the developer needs to do to make things really fast is put in the > right index. For some data, that would be lucene and for others it would be > a graph index. If we get to this point, I think we will have closed a key > usability gap with relational databases. > > There are cases where you need to add this sort of meta data to your domain > > model, where the sorting logic is too complex, and you see that in > > relational dbs as well, where people create lookup tables for various > > things. There are for sure valid uses for that too, but the generic > > approach > > I believe covers the *vast* majority of the common use cases. > > > > Perhaps. But I'm not sure the two extremes are as lop-sided as you think. I > think large data users are very interested in Neo4j. > > I agree, this is important. I'd like to change "the need for pagination on > > very large result sets" to "the ability to return very large result sets > > over the wire". That opens up the debate to solutions like http > streaming, > > which do not have the problems that come with keeping state on the server > > between calls. > > > > I think there are two separate, but related, problems to solve. One is the > transfer of large result-sets over the wire for people that need that. The > other is efficiently providing the small page of results from a large > dataset. Most of our discussion has so far focused on the latter. > > For the former, I did a bit of experimenting last year and was able to > compact my JSON by several times by moving all meta-data into a header > section. This works very well for data that has a repeating structure, for > example a large number of records with similar schema. I know schema is a > nasty word in the nosql world, but it is certainly common for data to have > a > repeating pattern, especially when dealing with very large numbers. Then > you > find that something like CSV is actually an efficient format, since the > bulk > of the text is only the data. We did this in JSON by simply specifying a > meta-data element (with the headers) and then a contents section with a > long > array of values. It worked very well indeed, even though we have a > half-dozen different 'schema's in the document, it was still much more > efficient than specifying the meaning of every field as usually done in > JSON > or XML. > ___ > 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 > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] REST results pagination
r domain > > model, where the sorting logic is too complex, and you see that in > > relational dbs as well, where people create lookup tables for various > > things. There are for sure valid uses for that too, but the generic > > approach > > I believe covers the *vast* majority of the common use cases. > > > > Perhaps. But I'm not sure the two extremes are as lop-sided as you think. I > think large data users are very interested in Neo4j. > Yeah, you are right about that, and I realize the sorted approach would not work if the result gets large enough.. If we can find a good way to implement the stateful traversal result as an optimization to paged results, then I am all for it. > > > I agree, this is important. I'd like to change "the need for pagination on > > very large result sets" to "the ability to return very large result sets > > over the wire". That opens up the debate to solutions like http > streaming, > > which do not have the problems that come with keeping state on the server > > between calls. > > > > I think there are two separate, but related, problems to solve. One is the > transfer of large result-sets over the wire for people that need that. The > other is efficiently providing the small page of results from a large > dataset. Most of our discussion has so far focused on the latter. > > For the former, I did a bit of experimenting last year and was able to > compact my JSON by several times by moving all meta-data into a header > section. This works very well for data that has a repeating structure, for > example a large number of records with similar schema. I know schema is a > nasty word in the nosql world, but it is certainly common for data to have > a > repeating pattern, especially when dealing with very large numbers. Then > you > find that something like CSV is actually an efficient format, since the > bulk > of the text is only the data. We did this in JSON by simply specifying a > meta-data element (with the headers) and then a contents section with a > long > array of values. It worked very well indeed, even though we have a > half-dozen different 'schema's in the document, it was still much more > efficient than specifying the meaning of every field as usually done in > JSON > or XML. > This sounds really cool, would be a great thing to look into! > ___ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] REST results pagination
On Wed, Apr 20, 2011 at 7:42 PM, Craig Taverner wrote: > To respond to your arguments it would be worth noting a comment by Michael > DeHaan later on in this thread. He asked for 'something more or less > resembling a database cursor (see MongoDB's API).' The trick is to achieve > this without having to store a lot of state on the server, so it is robust > against server restarts or crashes. > > If we compare to the SQL situation, there are two numbers passed by the > client, the page size and the offset. The state can be re-created by the > database server entirely from this information. How this is implemented in > a > relational database I do not know, but whether the database is relational > or > a graph, certain behaviors would be expected, like robustness against > database content changes between the requests, and coping with very long > gaps between requests. In my opinion the database cursor could be achieved > by both of the following approaches: > > - Starting the traversal from the beginning, and only returning results > after passing the cursor offset position > I assume this: Traverser x = Traversal.description().traverse( someNode ); x.nodes(); x.nodes(); // Not necessarily in the same order as previous call. If that assumption is false or there is some workaround, then I agree that this is a valid approach, and a good efficient alternative when sorting is not relevant. Glancing at the code in TraverserImpl though, it really looks like the call to .nodes will re-run the traversal, and I thought that would mean the two calls can yield results in different order? - Keeping a live traverser in the server, and continuing it from the > previous position > > Personally I think the second approach is simply a performance optimization > of the first. So robustness is achieved by having both, with the second one > working when possible (no server restarts, timeout not expiring, etc.), and > falling back to the first in other cases. This achieves performance and > robustness. What we do not need to do with either case is keep an entire > result set in memory between client requests. > I understand, and completely agree. My problem with the approach is that I think its harder than it looks at first glance. > > Now when you add sorting into the picture, then you need to generate the > complete result-set in memory, sort, paginate and return only the requested > page. If the entire process has to be repeated for every page requested, > this could perform very badly for large result sets. I must believe that > relational databases do not do this (but I do not know how they paginate > sorted results, unless the sort order is maintained in an index). > This is what makes me push for the sorted approach - relational databases are doing this. I don't know how they do it, but they are, and we should be at least as good. > > To avoid keeping everything in memory, or repeatedly reloading everything > to > memory on every page request, we need sorted results to be produced on the > stream. This can be done by keeping the sort order in an index. This is > very > hard to do in a generic way, which is why I thought it best done in a > domain > specific way. > I agree the issue of what should be indexed to optimize sorting is a domain-specific problem, but I think that is how relational databases treat it as well. If you want sorting to be fast, you have to tell them to index the field you will be sorting on. The only difference contra having the user put the sorting index in the graph is that relational databases will handle the indexing for you, saving you a *ton* of work, and I think we should too. There are cases where you need to add this sort of meta data to your domain model, where the sorting logic is too complex, and you see that in relational dbs as well, where people create lookup tables for various things. There are for sure valid uses for that too, but the generic approach I believe covers the *vast* majority of the common use cases. > Finally, I think we are really looking at two, different but valid use > cases. The need for generic sorting combined with pagination, and the need > for pagination on very large result sets. The former use case can work with > re-traversing and sorting on each client request, is fully generic, but > will > perform badly on large result sets. The latter can perform adequately on > large result sets, as long as you do not need to sort (and use the database > cursor approach to avoid loading the result set into memory). > I agree, this is important. I'd like to change "the need for pagination on very large result sets" to "the ability to return very large result sets over the wire". That opens up the debate to solutions like
Re: [Neo4j] REST results pagination
On Wed, Apr 20, 2011 at 11:25 AM, Craig Taverner wrote: > I think sorting would need to be optional, since it is likely to be a > performance and memory hug on large traversals. I think one of the key > benefits of the traversal framework in the Embedded API is being able to > traverse and 'stream' a very large graph without occupying much memory. If > this can be achieved in the REST API (through pagination), that is a very > good thing. I assume the main challenge is being able to freeze a traverser > and keep it on hold between client requests for the next page. Perhaps you > have already solved that bit? > While I agree with you that the ability to effectively stream the results of a traversal is a very useful thing, I don't like the persisted traverser approach, for several reasons. I'm sorry if my tone below is a bit harsh, I don't mean it that way, I simply want to make a strong case for why I think the hard way is the right way in this case. First, the only good restful approach I can think of for doing persisted traversals would be to "create" a traversal resource (since it is an object that keeps persistent state), and get back an id to refer to it. Subsequent calls to paged results would then be to that traversal resource, updating its state and getting results back. Assuming this is the correct way to implement this, it comes with a lot of questions. Should there be a timeout for these resources, or is the user responsible for removing them from memory? What happens when the server crashes and the client can't find the traversal resources it has ids for? If we somehow solve that or find some better approach, we end up with an API where a client can get paged results, but two clients performing the same traversal on the same data may get back the same result in different order (see my comments on sorting based on expected traversal behaviour below). This means that the API is really only useful if you actually want to get the entire result back. If that was the problem we wanted to solve, a streaming solution is a much easier and faster approach than a paging solution. Second, being able to iterate over the entire result set is only half of the use cases we are looking to solve. The other half are the ones I mentioned examples of (the blog case, presenting lists of things to users and so on), and those are not solved by this. Forcing users of our database to pull out all their data over the wire and sort the whole thing, only to keep the first 10 items, for each user that lands on their frontpage, is not ok. Third, and most importantly to me, using this case to put more pressure on ourselves to implement real sorting is a really good thing. Sorting is something that *really* should be provided by us, anyone who has used a modern database expects this to be our problem to solve. We have a really good starting point for optimizing sorting algorithms, sitting as we are inside the kernel with our caches and indexes :) > > In my opinion, I would code the sorting as a characteristic of the graph > itself, in order to avoid having to sort in the server (and incur the > memory/performance hit). So that means I would use a domain-specific > solution to sorting. Of course, generic sorting is nice also, but make it > optional. > I agree sorting should be an opt-in feature. Putting meta-data like sorting order and similar things inside the graph I think is a matter of personal preference, and for sure has its place as a useful optimization. I do, however, think that the "official" approach to sorting needs to be based on concepts familiar from other databases - define your query, and define how you want the result sorted. If indexes are available the database can use them to optimize the sorting, otherwise it will suck, but at least we're doing what the user wants us to do. All lessons learned in YesSQL databases (see what I did there?) should not be unlearned :) Also, the approach of sorting via the traversal itself assumes knowledge of which order the traverser will move through the graph, and that is not necessarily something that will be the same in later releases. Tobias was talking about cache-first traversals as an addition or even a replacement to depth/breadth first ones, a major optimization we cannot do if we encourage people to sort "inside" the graph. /Jake > > On Wed, Apr 20, 2011 at 11:19 AM, Jacob Hansson >wrote: > > > On Tue, Apr 19, 2011 at 10:17 PM, Michael DeHaan > > wrote: > > > > > On Tue, Apr 19, 2011 at 10:58 AM, Jim Webber > > > wrote: > > > >>> I'd like to propose that we put this functionality into the plugin > ( > > > https://github.com/skanjila/gremlin-translation-plugin) that Peter and > I > > > are currently working on, thoughts? > > > > > &
Re: [Neo4j] REST results pagination
On Tue, Apr 19, 2011 at 10:17 PM, Michael DeHaan wrote: > On Tue, Apr 19, 2011 at 10:58 AM, Jim Webber > wrote: > >>> I'd like to propose that we put this functionality into the plugin ( > https://github.com/skanjila/gremlin-translation-plugin) that Peter and I > are currently working on, thoughts? > > > > I'm thinking that, if we do it, it should be handled through content > negotiation. That is if you ask for application/atom then you get paged > lists of results. I don't necessarily think that's a plugin, it's more > likely part of the representation logic in server itself. > > This is something I've been wondering about as I may have the need to > feed very large graphs into the system and am wondering how the REST > API will hold up compared to the native interface. > > What happens if the result of an index query (or traversal, whatever) > legitimately needs to return 100k results? > > Wouldn't that be a bit large for one request? If anything, it's a > lot of JSON to decode at once. > > Yeah, we can't do this right now, and implementing it is harder than it seems at first glance, since we first need to implement sorting of results, otherwise the paged result will be useless. Like Jim said though, this is another one of those *must be done* features. > Feeds make sense for things that are feed-like, but do atom feeds > really make sense for results of very dynamic queries that don't get > subscribed to? > Or, related question, is there a point where the result sets of > operations get so large that things start to break down? What do > people find this to generally be? > I'm sure there are some awesome content types out there that we can look at that will fit our uses, I don't feel confident to say if Atom is a good choice, I've never worked with it.. The point where this breaks down I'm gonna guess is in server-side serialization, because we currently don't stream the serialized data, but build it up in memory and ship it off when it's done. I'd say you'll run out of memory after 1 nodes or so on a small server, which I think underlines how important this is to fix. > > Maybe it's not an issue, but pointers to any problems REST API usage > has with large data sets (and solutions?) would be welcome. > Not aware of anyone bumping into these limits yet, but I'm sure we'll start hearing about it.. The only current solution I can think of is a server plugin that emulates this, but it would have to sort the result, and I'm afraid that it will be hard (probably not impossible, but hard) to implement that in a memory-efficient way that far away from the kernel. You may just end up moving the OutOfMemeoryExceptions' to the plugin instead of the serialization system. > > --Michael > ___ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] [neo4j] Exposing Webadmin
I really like the idea of not giving webadmin "special keys", if that makes sense. Keeping webadmin separate from the server apart from having its static files served from there means we have to eat our own dogfood. That said, webadmin needs to somehow figure out where to place that first GET call to retrieve the discovery document, and I can only think of a few ways to do that: * Server-generated index.html that contains the correct base URI * A GET-parameter or something else other than generating HTML that webadmin can read on the client-side * Assuming, like we do now, that the discovery doc is at "/", and prompting for it if it isn't there, persisting the result in local storage or a cookie or something. The last one sounds particularily hairy, but is the only one I can think of where we keep the clean separation.. I guess sometimes a pragmatic approach is better, so unless someone has a better alternative, I'd vote HTML generation. /Jake On Mon, Apr 18, 2011 at 10:14 PM, Jim Webber wrote: > Hey Jake, > > So would you be in favour of removing the discovery document in favour of a > server-generated index.html? Or perhaps making it richer (e.g. here's the > discovery document pertaining to this "host" header)? > > Jim > ___ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] REST API thoughts/questions/feedback
and then you get a list of nodes, a list of relationships or a list of paths back, depending on what you asked for. The indexes are currently mainly used for simple lookups and for finding starting points for traversals. See http://components.neo4j.org/neo4j-server/milestone/rest.html#Traverse > > I think most of the underlying questions/problems I have are that I'm > trying to make sure graph elements are unique for some criteria, and > this requires that I make more API calls than normal, and have to > implement this in my library and not in the server -- which could be > fragile and certaintly isn't atomic. > > I've also noticed some minor things, which were slight stumbling blocks: > > * It seems that while the application says it takes JSON, it will > actually accept things as a key/value pair form submission, and may > prefer it that way. This could be my code though and I need to debug > this further. > Yeah, some of the rest resources "speak" form submissions as well as JSON. I think some of them also return HTML if you send a properly formatted request. It was meant to allow having a HTML interface to the data. I'm not sure if the HTML interface is still a supported output format.. > * At one point in the API docs it suggests POSTing a hash as { key, > value }. In JSON, this should be { key : value }. > Could you point to where in the docs this was? I'll fix it :) > * Some API documentation online refers to the default port being > and didn't mention the "/db/..." prefix to the URLs. > Same as above :) > * While I understand "proper" REST is politically correct, I'd be > really happy with simple endpoints that always could take POSTs, or > the ability to always do a post. Makes calling code simpler. > Do you mean that in places where we do PUT to update some property, we should also allow POST? If so, I'm afraid I disagree. I've never experienced any trouble switching between HTTP verbs in client code, and I think it's a really good thing to keep a consistent model for how the API eats HTTP verbs. > * In the documentation, it was unclear whether "my_nodes" really > needed to be "my_nodes" or was some sort of namespace that I could or > should use. Is there a way to keep graphs in different namespaces? > "my_nodes" is just a name for an index, or namespace if you will. Think of the indexes as being completely separate from the neo4j database. The database stores a graph structure and is able to to complex traversals in that. The indexes (as many as you have created) live outside the database, but keep "pointers" to nodes and relationships inside the database. When you index a node, you basically tell the index that "when someone searches for this, hand me back this node". > > In all, it's actually looking pretty good, though knowing what this > object key is in advance, and having a way to avoid duplicate objects > would help tremendously. I like the idea that the URLs come back > when adding objects, in particular, as it helps make the REST APIs to > call about a particular node more self documenting. > > I'd be happy to try to explain further if any of that didn't make > sense -- particularly I'd be very interested in how to specify a "key" > for an element in advance, so I didn't have to rely on lookups each > time I need the node ID. Since the lookup can return a list, it > doesn't guarantee I can get back a specific node. > It would be interesting to hear what some of the more in-depth developers have to say about this. I can see that there is a benefit to somehow adding an indexed based key/value-style abstraction that goes beyond what we have today, but everything comes with a cost. I can see it being very confusing to newcomers if we have all these different ways to index and fetch nodes. > > Thanks! > > --Michael DeHaan > ___ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] [neo4j] Exposing Webadmin
Oops, I realized I just lied. Webadmin will not work if the *root URI of the domain it is accessed from does not return the "discovery document"* that tells it where to find management and database resources. We could work around this, for instance by making webadmins index.html be generated by the server and populated with some initialization parameters. We could include this in the discussion about webadmin stories for 1.4? /Jake On Mon, Apr 18, 2011 at 1:55 PM, Jacob Hansson wrote: > Hey jim, see inline response :) > > On 2011 4 18 12:00, "Jim Webber" wrote: > > > > Hey Jake, > > > > [with my RESTafarian hat on] > > > > > Will make the server move management stuff to that URI, and webadmin > will > > > follow suit. So for your case, you should be able to do: > > > > > > org.neo4j.server.webadmin.data.uri=/neo4jdb/db/data/ > > > org.neo4j.server.webadmin.management.uri=/neo4jdb/db/manage/ > > > > > > I still do not recommend doing this :) > > > > Why not? I thought Webadmin just cares about URIs from the discovery > document, and not so much about their actual structure (since we're trying > hard to be Web-friendly). > > > > Jim > > You are absolutely right as far as webadmin is concerned. My reason for > discouraging it is that it is (usually) a lot easier to run multiple > services on the same server using subdomains, rather than dealing with > "merging" paths through proxy configuration. > > > > > ___ > > Neo4j mailing list > > User@lists.neo4j.org > > https://lists.neo4j.org/mailman/listinfo/user > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] [neo4j] Exposing Webadmin
Hey jim, see inline response :) On 2011 4 18 12:00, "Jim Webber" wrote: > > Hey Jake, > > [with my RESTafarian hat on] > > > Will make the server move management stuff to that URI, and webadmin will > > follow suit. So for your case, you should be able to do: > > > > org.neo4j.server.webadmin.data.uri=/neo4jdb/db/data/ > > org.neo4j.server.webadmin.management.uri=/neo4jdb/db/manage/ > > > > I still do not recommend doing this :) > > Why not? I thought Webadmin just cares about URIs from the discovery document, and not so much about their actual structure (since we're trying hard to be Web-friendly). > > Jim You are absolutely right as far as webadmin is concerned. My reason for discouraging it is that it is (usually) a lot easier to run multiple services on the same server using subdomains, rather than dealing with "merging" paths through proxy configuration. > > ___ > 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] Exposing Webadmin
Looked over the configuration properties I mentioned, and it seems I was incorrect, am unable to reproduce the problems I saw before. Doing something like: org.neo4j.server.webadmin.management.uri=/asd/ Will make the server move management stuff to that URI, and webadmin will follow suit. So for your case, you should be able to do: org.neo4j.server.webadmin.data.uri=/neo4jdb/db/data/ org.neo4j.server.webadmin.management.uri=/neo4jdb/db/manage/ I still do not recommend doing this :) There are plans for features in the next release (1.4) that would mean we need to make backwards-incompatible changes to these configuration directives that will break this setup. :( /Jacob On Mon, Apr 18, 2011 at 11:24 AM, Jacob Hansson wrote: > Georg, > > Like you noticed and like Jim mentioned, the server will pick up on the > domain you are using, but the actual URI structure is "fixed". You are > supposed to be able to change the mount points for the various server > components, by setting these properties in your server config: > > org.neo4j.server.webadmin.data.uri=/db/data/ > org.neo4j.server.webadmin.management.uri=/db/manage/ > > But I just tried it out, and there seems to be some sort of problem with > it. I am investigating it, will commit a patch to fix whatever might be > wrong. > > That said, I would recommend you not to mix the URIs of multiple > applications this way. Although it is for sure possible and not necessarily > a bad idea, unless there is some special reason for doing it, it is a lot > less painful to use subdomains. That way you separate your infrastructure, > making it a breeze to do things like fanning out your applications onto > multiple servers, or adding various supporting HTTP layers and so on in the > future. > > Cheers! > Jacob > > On Thu, Apr 14, 2011 at 4:06 PM, Georg Summer wrote: > >> so in theory if I changed the proxy settings to: >> >> ProxyPass / http://:7474 >> ProxyPassReverse / http://:7474 >> >> and reverse the neo4j-server.properties to the original state should work >> out. (To answer that myself: yes it does) >> >> Any idea how I could configure these proxy settings in a nicer way so that >> I >> am still able to access the other sides on the apache? e.g. phpmyadmin >> >> On a side node: I am doing this dance because I like the Browser and it >> would be perfect for a specific part of my concept. I do not know the >> complete structure, but in theory it should be possible to rib out the >> html/java script of the browser and just dump them in >> /var/www/neo_browser? >> >> Georg >> >> On 14 April 2011 14:56, Jim Webber wrote: >> >> > Hi guys, >> > >> > > Jim, what is your RESTy expertise on this? >> > >> > Our JAX-RS plumbing will dispatch on very specific parts of the URI >> (that's >> > just the way JAX-RS works). So if ultimately you send the server >> something >> > that doesn't match, it's either going to cause a 404 or similar, or >> where we >> > think it's sensible it'll cause a redirect to webadmin. >> > >> > So the only solution is to preserve the URI structure on the way into >> the >> > Noe4j server, and (potentially) have it mapped to something else on the >> > network where your client lives. >> > >> > Jim >> > ___ >> > 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 >> > > > > -- > Jacob Hansson > Phone: +46 (0) 763503395 > Twitter: @jakewins > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] [neo4j] Exposing Webadmin
Georg, Like you noticed and like Jim mentioned, the server will pick up on the domain you are using, but the actual URI structure is "fixed". You are supposed to be able to change the mount points for the various server components, by setting these properties in your server config: org.neo4j.server.webadmin.data.uri=/db/data/ org.neo4j.server.webadmin.management.uri=/db/manage/ But I just tried it out, and there seems to be some sort of problem with it. I am investigating it, will commit a patch to fix whatever might be wrong. That said, I would recommend you not to mix the URIs of multiple applications this way. Although it is for sure possible and not necessarily a bad idea, unless there is some special reason for doing it, it is a lot less painful to use subdomains. That way you separate your infrastructure, making it a breeze to do things like fanning out your applications onto multiple servers, or adding various supporting HTTP layers and so on in the future. Cheers! Jacob On Thu, Apr 14, 2011 at 4:06 PM, Georg Summer wrote: > so in theory if I changed the proxy settings to: > > ProxyPass / http://:7474 > ProxyPassReverse / http://:7474 > > and reverse the neo4j-server.properties to the original state should work > out. (To answer that myself: yes it does) > > Any idea how I could configure these proxy settings in a nicer way so that > I > am still able to access the other sides on the apache? e.g. phpmyadmin > > On a side node: I am doing this dance because I like the Browser and it > would be perfect for a specific part of my concept. I do not know the > complete structure, but in theory it should be possible to rib out the > html/java script of the browser and just dump them in /var/www/neo_browser? > > Georg > > On 14 April 2011 14:56, Jim Webber wrote: > > > Hi guys, > > > > > Jim, what is your RESTy expertise on this? > > > > Our JAX-RS plumbing will dispatch on very specific parts of the URI > (that's > > just the way JAX-RS works). So if ultimately you send the server > something > > that doesn't match, it's either going to cause a 404 or similar, or where > we > > think it's sensible it'll cause a redirect to webadmin. > > > > So the only solution is to preserve the URI structure on the way into the > > Noe4j server, and (potentially) have it mapped to something else on the > > network where your client lives. > > > > Jim > > ___ > > 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 > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Graph visualization in the web admin tool
We opted to change from graphdracula to arbor.js though (today, actually), because the dracula lib was buggy. My initial reaction to arbor.js is very positive, although it wasn't quite as straight-forward as dracula to use. I'd recommend downloading arbor.js and tweaking their example apps to get a feel for how the lib works. It's been fairly unpainful to work this into the webadmin app, together with neo4js you can rather quickly get up to speed visualizing data from a neo4j server on the web :) /Jacob On Mon, Mar 28, 2011 at 3:50 PM, Clement Honore wrote: > Thanks for your answer Peter. > > I will take a look at dracula. > I've already check this link > http://wiki.neo4j.org/content/Visualization_options_for_graphs# (this is > the > "on this page" on my first post but I forget the link... ^^) and there is > so > many solutions that I don't know which to choose... > > 2011/3/28 Peter Neubauer > > > Clement, > > the current iteration is building on http://www.graphdracula.net/ > > which is built on top of RaphaelJS I think. There are many others, > > look at http://wiki.neo4j.org/content/Visualization_options_for_graphs# > > and pick your choice. > > > > Let us know your experiences and feel free to contribute to the webadmin! > > > > 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, Mar 28, 2011 at 1:54 PM, Clement Honore > > wrote: > > > Hi! > > > > > > Since the 1.0 M5 release, it's possible to get a visual representation > of > > > the graph within the web administration tool. > > > I've almost the same kind of representation to do in a web application > > and I > > > wonder which library did you use. Is it something referenced on this > page > > or > > > something completely written by yourselves ? > > > > > > Thanks for the tips! > > > > > > Clément. > > > ___ > > > 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 > -- Jacob Hansson Phone: +46 (0) 763503395 Twitter: @jakewins ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user