Re: [Neo4j] Cypher-Pickle?
IMHO, the differential key of Cypher regarding to SQL, is the way in which Cypher builds the joins. I mean, the clause PATTERN or WHERE written like lucy-[:ACTS_IN]-movie-[:ACTS_IN]-co_actor is pretty powerful. The rest of the details are unimportant, in the sense they already have an equivalence in SQL. So, I think to use SQL-like queries could attract more people interested in Neo4j. And at the same time, this people will discover the versatility of the Cypher JOINs. Regards. On Sat, Nov 5, 2011 at 10:33, Nigel Small ni...@nigelsmall.name wrote: newbies may find it helpful to start with something they already know. One problem with this is that it could invoke a tendency to try to map relational concepts onto a graph db. The two types of database are fundamentally different at the lowest level and if one starts off by thinking where do I put my 'tables'? they are only heading down the wrong path. I mentioned a while back that I felt designing a graph database is more akin to OO design that to relational design. Maybe we should stop using the word database?? :-P * * *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/#!/technige LinkedIn: http://uk.linkedin.com/in/nigelsmall On 5 November 2011 14:03, Axel Morgner a...@morgner.de wrote: People already familiar with graphs seem to love the original Cypher syntax while newbies may find it helpful to start with something they already know. What about letting both coexist peacefully? Axel Am 05.11.2011 14:29, schrieb Andres Taylor: On Nov 5, 2011 1:51 PM, Jim Webberj...@neotechnology.com wrote: I really don't want Cypher to pander to SQL. Cypher is about graph matching and should be awesome at it PQL isn't any different in this aspect. Mattias' ascii-art is still the way to describe your pattern. Cypher is already very like SQL in many ways - PQL is a way to acknowledge these similarities and turn them into a selling point instead. Andrés ___ 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 -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Error adding item to idexes using Neo4jrestclient python
Hi, vistorve, The index framework was refactorized in the last versions of Neo4j. Could you say what versions are you using of Neo4j and neo4jrestclient? Regards. On Mon, Oct 31, 2011 at 10:58, vistorve ayuskaus...@compete.com wrote: Hi, I can create nodes and indexes and traverse fine but when I try to add an item to an index i get the following error: Traceback (most recent call last): File stdin, line 1, in module File /usr/local/lib/python2.6/dist-packages/neo4jrestclient/client.py, line 1030, in __setitem__ , data %s % (request_url, url_ref)) neo4jrestclient.request.StatusException: Error [405]: Method Not Allowed. Specified method is invalid for this server.. Error requesting index with POST http://localhost:7474/db/data/index/node/seg_nodes/name/x , data http://localhost:7474/db/data/node/6 Any help you could provide would be great. Thanks, Alex -- View this message in context: http://neo4j-community-discussions.438527.n3.nabble.com/Error-adding-item-to-idexes-using-Neo4jrestclient-python-tp3468029p3468029.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 -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Error adding item to idexes using Neo4jrestclient python
Thank you, Alex. Let me do some tests and release a new version. On Mon, Oct 31, 2011 at 11:56, vistorve ayuskaus...@compete.com wrote: neo4jrestclient 1.4.5 neo4j server I tried both latest snapshot (1.5-38-g831a83d-dirty) and the current milestone 1.5.M02 -Alex -- View this message in context: http://neo4j-community-discussions.438527.n3.nabble.com/Error-adding-item-to-idexes-using-Neo4jrestclient-python-tp3468029p3468154.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 -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Error adding item to idexes using Neo4jrestclient python
You are welcome, Peter :-) Released neo4jrestclient 1.5.0 [1] with support for Neo4j 1.5.M02 (or that's what i hope). Any errors, please, feel free to report. Regards! [1] http://pypi.python.org/pypi/neo4jrestclient/1.5.0 On Mon, Oct 31, 2011 at 13:11, Peter Neubauer peter.neuba...@neotechnology.com wrote: Javier, great community support, thanks man! 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 Mon, Oct 31, 2011 at 9:18 AM, Javier de la Rosa ver...@gmail.com wrote: Thank you, Alex. Let me do some tests and release a new version. On Mon, Oct 31, 2011 at 11:56, vistorve ayuskaus...@compete.com wrote: neo4jrestclient 1.4.5 neo4j server I tried both latest snapshot (1.5-38-g831a83d-dirty) and the current milestone 1.5.M02 -Alex -- View this message in context: http://neo4j-community-discussions.438527.n3.nabble.com/Error-adding-item-to-idexes-using-Neo4jrestclient-python-tp3468029p3468154.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 -- 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 de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Run test and development DBs at same time
On Sat, Oct 8, 2011 at 16:30, Michael Hunger michael.hun...@neotechnology.com wrote: You can use a import org.neo4j.test.ImpermanentGraphDatabase; Do you know if it could be possible to use this from the REST server? -- Javier de la Rosa http://versae.es ___ 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 09:06, Jacob Hansson jacob.hans...@neotechnology.com wrote: 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. You're right about the size issue. But using the Python packages dependencies you can add neo4j-rest-client as a required and wrap the object GraphDatabasem actually it should have exactly the same API. When the user does the next from neo4j import GraphDatabase embeddeddb = GraphDatabase('/home/data') serverdb = GraphDatabase('http://localhost:7474') It could raise an error on the GraphDatabase('http://localhost:7474') just in case of neo4j-rest-client not found, or show a message to the user. 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. There's a partial implementation of transaction through the batch operation the REST server. You can create, edit and delete, but you can't edit, by example, properties of a node just created in the transaction. In the other hand, perfect, Peter, I will open an issue to inspect the current API of the embedded Python API in order to make neo4j-rest-client fully compatible. Regards! -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
[Neo4j] GremlinPlugin in REST
Hi, all, Today I have downloaded the last version of Neo4j, thus, 1.5.M01. I run some of my tests and some of them falied, what related to Gremlin plugin. If I run using Neo4j 1.4.1 I get the next: $ curl http://localhost:7474/db/data/ext/GremlinPlugin/graphdb/execute_script; { extends : graphdb, description : execute a Gremlin script with 'g' set to the Neo4jGraph and 'results' containing the results. Only results of one object type is supported., name : execute_script, parameters : [ { description : The Gremlin script, optional : false, name : script, type : string }, { description : JSON Map of additional parameters for script variables, optional : true, name : params, type : string } ] } But when I use the Neo4j 1.5.M01: $ curl http://localhost:7474/db/data/ext/GremlinPlugin/graphdb/execute_script; html head meta http-equiv=Content-Type content=text/html; charset=ISO-8859-1/ titleError 500 INTERNAL_SERVER_ERROR/title /head bodyh2HTTP ERROR 500/h2 pProblem accessing /db/data/ext/GremlinPlugin/graphdb/execute_script. Reason: preINTERNAL_SERVER_ERROR/pre/ph3Caused by:/h3prejava.lang.NullPointerException at org.neo4j.server.rest.repr.ExtensionPointRepresentation$ParameterRepresentation.serialize(ExtensionPointRepresentation.java:110) [...] at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) /pre hr /ismallPowered by Jetty:///small/ibr/ br/ [...] br/ /body /html Is that normal? is there something that I'm doing wrong? Thanks. -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] GremlinPlugin in REST
Thank you for the very quick response and fix. I'll try the new snapshot. Regards! On Tue, Sep 13, 2011 at 16:39, Peter Neubauer peter.neuba...@neotechnology.com wrote: Wohow, this is actually a bug introduced when we added Maps as parameter types. I added a test for it in the gremlin-plugin, and fixed it in server, https://github.com/neo4j/community/commit/ed42542e191de9966e1b5ada80bf8a6684bd6d1d As snapshots get out, you should be able to run it normally in Neo4j Server 1.5-SNAPSHOT. Thanks for reporting it - it surfaces only when you do a GET on the Gremlin plugin URL! Cheers, /peter neubauer GTalk: neubauer.peter Skype peter.neubauer Phone +46 704 106975 LinkedIn http://www.linkedin.com/in/neubauer Twitter http://twitter.com/peterneubauer http://www.neo4j.org - Your high performance graph database. http://startupbootcamp.org/ - Öresund - Innovation happens HERE. http://www.thoughtmade.com - Scandinavia's coolest Bring-a-Thing party. On Tue, Sep 13, 2011 at 10:11 PM, Javier de la Rosa ver...@gmail.com wrote: Hi, all, Today I have downloaded the last version of Neo4j, thus, 1.5.M01. I run some of my tests and some of them falied, what related to Gremlin plugin. If I run using Neo4j 1.4.1 I get the next: $ curl http://localhost:7474/db/data/ext/GremlinPlugin/graphdb/execute_script; { extends : graphdb, description : execute a Gremlin script with 'g' set to the Neo4jGraph and 'results' containing the results. Only results of one object type is supported., name : execute_script, parameters : [ { description : The Gremlin script, optional : false, name : script, type : string }, { description : JSON Map of additional parameters for script variables, optional : true, name : params, type : string } ] } But when I use the Neo4j 1.5.M01: $ curl http://localhost:7474/db/data/ext/GremlinPlugin/graphdb/execute_script; html head meta http-equiv=Content-Type content=text/html; charset=ISO-8859-1/ titleError 500 INTERNAL_SERVER_ERROR/title /head bodyh2HTTP ERROR 500/h2 pProblem accessing /db/data/ext/GremlinPlugin/graphdb/execute_script. Reason: pre INTERNAL_SERVER_ERROR/pre/ph3Caused by:/h3prejava.lang.NullPointerException at org.neo4j.server.rest.repr.ExtensionPointRepresentation$ParameterRepresentation.serialize(ExtensionPointRepresentation.java:110) [...] at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) /pre hr /ismallPowered by Jetty:///small/ibr/ br/ [...] br/ /body /html Is that normal? is there something that I'm doing wrong? Thanks. -- 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 de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
[Neo4j] Set reference node through REST API
Hi all, As far I know, the REST API always returns a reference node. But in case of I delete it, there's no option to set it again through REST API. I read in this list that you could do this in Java like next: graph.delete(); newRoot = neo4j.createNode(); neo4j.setReferenceNode(newRoot); But I don't know the way to do this using the REST API. Even if I don't delete it anything, I would have to be able to set the reference node to a node of my preference. I know that was discussed previously, but is the reference node really needed? Regards. -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Comparing properties among different nodes in Gremlin
Really thank you, Marko, you're being very helpful for me. but I think that is not exactly what I looking for, or maybe I'm not understanding your solution at all. On Tue, Jul 26, 2011 at 12:07, Marko Rodriguez okramma...@gmail.com wrote: This will give you the actual paths with, of course, the last element in the path being the vertex with name 'josh' (v[4]). I would like to get the actual paths with the property 'name'='josh' in some of the vertices, not only in the last one. Please, take a look on this graph [1], it's a tree. It represents differents states with different values of the variables 'I' and 'J', showed off in that order. The reference nodes is only taken into account like a way to set the initial states. I have also two temporal queries that would be translated into something like: 1. Get all the paths with states with I=3 from the second state up to the end of the path, with J=4 exactly in the fourth state, and with al least one state with I=1 anywhere the path. This should return v1, v2, v3, v4 2. Get all the paths with states with I=3 from the second state up to the end of the path, and not J=1 in the third state. This should return nothing. Just for your curiosity, I'm trying to find an algorithm to translate the original ITL queries to Gremlin scripts. In ITL, the queries above would be something like: 1. next(always(I=3)) and next(next(J=4)) and sometimes(I=1) 2. next(always(I=3)) and not(next(J=1)) The operators next, always and sometimes have the semantics expected: in the next state XXX holds, always XXX holds, and sometimes XXX holds. Besides we have the operator len(n) that check if the returned path has exactly n states. Thanks. Regards! [1] http://box.jisko.net/i/5cbd3d31.png -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] update node properties via rest?
On Wed, Jul 27, 2011 at 14:57, Boris Kizelshteyn bo...@popcha.com wrote: It does not infact update, it overwrites. Feature or bug? I asked me the same question and I decided it was a feature... -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
[Neo4j] Comparing properties among different nodes in Gremlin
Hi all, I have the need to do something like this: gremlin g.v(0).out.inV{it.getProperty(J) == last_it.getProperty(J) + 10}.out... I mean, I need to compare the value of a node property with the value in the last node property, and repeat the process on every node to check growth rates. But I don't if this is possible without using variables external to the query. Thank you in advance. Regards. -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Comparing properties among different nodes in Gremlin
On Mon, Jul 25, 2011 at 09:50, Peter Neubauer peter.neuba...@neotechnology.com wrote: why can't you use an external variable? Because the query is auto-generated by a wrapper over another language, so I'm trying to maintain the process as simple as possible. -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Comparing properties among different nodes in Gremlin
On Mon, Jul 25, 2011 at 10:20, Marko Rodriguez okramma...@gmail.com wrote: Does that help you? Can you map that motif over to your problem? Thank you, I hope so. Maybe the best way is to get all the properties map in each vertex in order to be able to operate with those values in the next vertex. Is that possible? My use case is a little particular. I'm writing a mini language to support ITL [1], which can work over Kripke structures [2] stored in a graph. So what I'm doing is a lexer and a grammar to translate ITL into Gremlin queries. [1] http://www.cse.dmu.ac.uk/STRL/ITL/ [2] http://en.wikipedia.org/wiki/Kripke_structure -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Comparing properties among different nodes in Gremlin
Thank you, Marko. Pipes++ looks interesting. I have to do more tests but I hope to find a way to acomplish my goal. On Mon, Jul 25, 2011 at 10:40, Marko Rodriguez okramma...@gmail.com wrote: Hi, Does that help you? Can you map that motif over to your problem? Thank you, I hope so. Maybe the best way is to get all the properties map in each vertex in order to be able to operate with those values in the next vertex. Is that possible? In that case do: gremlin g.V.sideEffect{x = it.map()}.out.sideEffect{println x} [name:marko, age:29] ==v[2] [name:marko, age:29] ==v[3] [name:marko, age:29] ==v[4] [name:peter, age:35] ==v[3] [name:josh, age:32] ==v[5] [name:josh, age:32] ==v[3] In short, every vertex out of V is passed into sideEffect{}. The current vertex's properties are saved to x as a HashMap. Then the outgoing related vertices of that vertex are retrieved. There is a sideEffect again where you can access your map in x from previous. Perhaps I'm misunderstanding your use case... Finally, you might want to consider aggregate as a way to get all before processing the next step. Check this: gremlin x = [] gremlin g.V.aggregate(x).out.sideEffect{println x*.map()} [[name:lop, lang:java], [name:vadas, age:27], [name:marko, age:29], [name:peter, age:35], [name:ripple, lang:java], [name:josh, age:32]] ==v[2] [[name:lop, lang:java], [name:vadas, age:27], [name:marko, age:29], [name:peter, age:35], [name:ripple, lang:java], [name:josh, age:32]] ==v[3] [[name:lop, lang:java], [name:vadas, age:27], [name:marko, age:29], [name:peter, age:35], [name:ripple, lang:java], [name:josh, age:32]] ==v[4] [[name:lop, lang:java], [name:vadas, age:27], [name:marko, age:29], [name:peter, age:35], [name:ripple, lang:java], [name:josh, age:32]] ==v[3] [[name:lop, lang:java], [name:vadas, age:27], [name:marko, age:29], [name:peter, age:35], [name:ripple, lang:java], [name:josh, age:32]] ==v[5] [[name:lop, lang:java], [name:vadas, age:27], [name:marko, age:29], [name:peter, age:35], [name:ripple, lang:java], [name:josh, age:32]] ==v[3] In this way, x has ALL the maps of all the vertices coming out of V. x is an ArrayListHashMap(). You can then do some sideEffect work on that aggregation later in the path expression... Does that help? My use case is a little particular. I'm writing a mini language to support ITL [1], which can work over Kripke structures [2] stored in a graph. So what I'm doing is a lexer and a grammar to translate ITL into Gremlin queries. Ah. You might wish to translate it directly to Pipes perhaps? In one week (August 1st -- next round of TinkerPop releases), Pipes++ is coming out which will make it very easy for anyone to emulate Gremlin behavior in any language of their choosing. http://groups.google.com/group/gremlin-users/browse_thread/thread/a1a7092762d22e37 Just a thought... See ya, Marko. http://markorodriguez.com ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Comparing properties among different nodes in Gremlin
On Mon, Jul 25, 2011 at 17:53, Marko Rodriguez okramma...@gmail.com wrote: Thus, if you say, Marko, tell me how to get all X, where Y, and this, but then ensure that, etc. etc., I will provide you the respective Gremlin expression. In this way, hopefully, you can then take that and map it to your particular problem domain. Thank you again, Marko. Let's try with a query that I'm not able to build in Gremlin. Looking at the property graph, I need the final vertices of all the paths of length 3, with at least one property name equals to josh in some vertex except the first one. Regards. -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Propertiy keys with slashes and spaces in REST server
On Wed, Jul 20, 2011 at 22:06, Michael Hunger michael.hun...@neotechnology.com wrote: what is the concrete error that happens if you send over that space + slash encoded property? Returned by HTTP console on Neo4j server (but the behaviour is the same in my Python client): - Regular property key: http PUT http://localhost:7373/db/sylva/node/3537/properties/pröp€rtŷ un\u00ed\u00a9od e/v\u00e4l\u00fa\u00ea == 204 No Content - Property key with spaces invalidate the URL: http PUT http://localhost:7373/db/sylva/node/3537/properties/pr öp€rtŷ un\u00ed\u00a9od e/v\u00e4l\u00fa\u00ea == Invalid JSON data. I can fix this URL encoding the key and decoding in the client. - Property key with slahs crash the URL: http PUT http://localhost:7373/db/sylva/node/3537/properties/pr/öp€rtŷ un\u00ed\u00a9od e/v\u00e4l\u00fa\u00ea == 404 Not Found I can fix this with safe URL encoding. - Propery key with slash and spaces: http PUT http://localhost:7373/db/sylva/node/3537/properties/pr ö/p€rtŷ un\u00ed\u00a9od e/v\u00e4l\u00fa\u00ea == Invalid JSON data. I'm not able to fix this becaus If a use safe URL encoding, the spaces are converted into + characters in the server, and that's not the key i want to store. Sorry for the difficulty to reproduce the bug. Regards. -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Propertiy keys with slashes and spaces in REST server
I'm so sorry. The problem was a default value in a Python library for URL encoding. Thank you. On Thu, Jul 21, 2011 at 17:41, Michael Hunger michael.hun...@neotechnology.com wrote: Javier, I quickly tried it with curl, escaping the space to %20 and the forward slash to %2F worked just fine. Please note, that in your examples the forward slash was never escaped: my example is a/b c for both key and value. ADD: curl -i -H Content-Type:application/json -X POST -d 'http://localhost:7474/db/data/node/0;'son 'http://localhost:7474/db/data/index/node/my_nodes/a%2Fb%20c/a%2Fb%20c' GET: curl -i -H Accept:application/json 'http://localhost:7474/db/data/index/node/my_nodes/a%2Fb%20c/a%2Fb%20c' DELETE: curl -i -X DELETE 'http://localhost:7474/db/data/index/node/my_nodes/a%2Fb%20c/a%2Fb%20c/0' Cheers Michael Am 21.07.2011 um 16:32 schrieb Javier de la Rosa: On Wed, Jul 20, 2011 at 22:06, Michael Hunger michael.hun...@neotechnology.com wrote: what is the concrete error that happens if you send over that space + slash encoded property? Returned by HTTP console on Neo4j server (but the behaviour is the same in my Python client): - Regular property key: http PUT http://localhost:7373/db/sylva/node/3537/properties/pröp€rtŷ un\u00ed\u00a9od e/v\u00e4l\u00fa\u00ea == 204 No Content - Property key with spaces invalidate the URL: http PUT http://localhost:7373/db/sylva/node/3537/properties/pr öp€rtŷ un\u00ed\u00a9od e/v\u00e4l\u00fa\u00ea == Invalid JSON data. I can fix this URL encoding the key and decoding in the client. - Property key with slahs crash the URL: http PUT http://localhost:7373/db/sylva/node/3537/properties/pr/öp€rtŷ un\u00ed\u00a9od e/v\u00e4l\u00fa\u00ea == 404 Not Found I can fix this with safe URL encoding. - Propery key with slash and spaces: http PUT http://localhost:7373/db/sylva/node/3537/properties/pr ö/p€rtŷ un\u00ed\u00a9od e/v\u00e4l\u00fa\u00ea == Invalid JSON data. I'm not able to fix this becaus If a use safe URL encoding, the spaces are converted into + characters in the server, and that's not the key i want to store. Sorry for the difficulty to reproduce the bug. Regards. -- 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 de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
[Neo4j] Propertiy keys with slashes and spaces in REST server
Hi all, I'm trying to implement full support for unicode in my neo4j Python REST client, but I'm finding some dificulties: - I send a property key such as p r öp€rtŷ, and I'm able to get everything working using a URL encoding, that converts that string into 'p%20r%20%C3%83%C2%B6p%C3%A2%C2%82%C2%ACrt%C3%85%C2%B7' and all I have to do is decode at reception. - I send a property key such as pr/öp€rtŷ, I can use safe URL encoding to avoid crash with the slash: pr/%C3%83%C2%B6p%C3%A2%C2%82%C2%ACrt%C3%85%C2%B7, after that I can decode it in the client. - But if I have a property key with both slash and spaces, such as p r/ öp€rtŷ, there's no way to get this working properly. Any ideas? Thanks. -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Propertiy keys with slashes and spaces in REST server
Hi, Peter On Wed, Jul 20, 2011 at 18:32, Peter Neubauer peter.neuba...@neotechnology.com wrote: Javier, do you have the curl command for this? We can just add a test case and fix it. Thanks! The server works great, but the problem is, in practice, it's not possible to set property keys with spaces and slashes. What kind of encoding should I use to avoid problems with the slash and, in the same time, perseve the spaces? Thanks! 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, Jul 20, 2011 at 10:28 PM, Javier de la Rosa ver...@gmail.com wrote: Hi all, I'm trying to implement full support for unicode in my neo4j Python REST client, but I'm finding some dificulties: - I send a property key such as p r öp€rtŷ, and I'm able to get everything working using a URL encoding, that converts that string into 'p%20r%20%C3%83%C2%B6p%C3%A2%C2%82%C2%ACrt%C3%85%C2%B7' and all I have to do is decode at reception. - I send a property key such as pr/öp€rtŷ, I can use safe URL encoding to avoid crash with the slash: pr/%C3%83%C2%B6p%C3%A2%C2%82%C2%ACrt%C3%85%C2%B7, after that I can decode it in the client. - But if I have a property key with both slash and spaces, such as p r/ öp€rtŷ, there's no way to get this working properly. Any ideas? Thanks. -- 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 de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Bulbflow: a Python framework for Neo4j
On Sat, Jul 16, 2011 at 15:40, espeed ja...@jamesthornton.com wrote: Hey guys - I just released Bulbflow, a new Python framework for graph databases. It supports Neo4j and Gremlin through Rexster, and it's online at http://bulbflow.com . That's really cool! It seems like we were doing same similar things: python-rexster [1]. Regards. [1] http://pypi.python.org/pypi/python-rexster/ -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
[Neo4j] Get all nodes and relationships in REST
Hi all, I know that I could do this using indices, but it's not for me the most natural way to do it. I'm just wondering if there're another way to return all the relationships and all the nodes in the database using the same mechanism for paginating the results that traversals does. Best regards. -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Get all nodes and relationships in REST
On Tue, Jul 12, 2011 at 14:44, Jim Webber j...@neotechnology.com wrote: I think the simplest thing is to write a traverser that reaches every node on the graph through every relationship. And this should work even if my graph has several unconnected componentes? Thank you. -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Get all nodes and relationships in REST
On Tue, Jul 12, 2011 at 16:11, Jacob Hansson ja...@voltvoodoo.com wrote: http://components.neo4j.org/neo4j-server-examples/snapshot/xref/org/neo4j/examples/server/plugins/GetAll.html Thank you both. Does someone knows if this (getAllNodes and getAllRelationships in REST API) will be in the core of Neo4j some day? Regards. -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] auto indexes in REST in 1.4?
On Tue, Jul 12, 2011 at 16:32, Matt Luongo m...@scholr.ly wrote: +1, we could use configuration through REST as well. +1, It would be bery useful. -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Get all nodes and relationships in REST
On Tue, Jul 12, 2011 at 17:27, Jim Webber j...@neotechnology.com wrote: I think Javier was asking about how he'd go about writing getAllNodes and getAllRelationships as a plugin/unmanaged extension in REST. Sorry, I was asking about exactly that Aseem Kishore said. I would like to see these methods in the core of the Neo4j REST server, without need of using plugin and or extensions. Regards. -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
[Neo4j] The URL for batching operations through REST
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
Re: [Neo4j] clean database / unit tests
On Fri, Jul 8, 2011 at 10:37, Jim Webber j...@neotechnology.com wrote: I believe it'll be packaged by default with our next release (but totally disabled!). Good news! -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Thanks Marko, Jive Friends
On Thu, Jun 23, 2011 at 12:25, Andreas Kollegger andreas.kolleg...@neotechnology.com wrote: If anyone is interested in having a mini- or full bootcamp in your area, let me know and I'll see what we can arrange with Marko. Here in the CulturePlex Lab we are really interested in a mini-camp. We are at The University of Western Ontario, London (Canada). Just 2 hours of Detroit. Best regards. -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] [ANN] Neo4j 1.4.M02 Kiruna Stol - Chugging Along
On Fri, May 13, 2011 at 17:03, Andreas Kollegger andreas.kolleg...@neotechnology.com wrote: Additions to the REST API: The REST API so far has been left wanting regarding the available index operations. This milestone exposes all the Neo4j specific index operations users of the embedded version enjoy, enabling deletion of indexes, complete Lucene queries and setting of default keys for indexing operations. GET /index/node/my_nodes?query=the_key:the_* AND the_other_key:[1 TO 100] This is really awesome. I will write the support for this into Neo4j Python REST Client as soon as possible. Thank you for listen our requests. Congratulations for the great job. Append-only logical log Then there’s the new default implementation for how things are written to the logical logs. Instead of a memory mapped file there’s the append-only file backed by a buffer. This will reduce the bottleneck that is the logical log, mostly apparent in small transactions. We’ve measured a throughput improvement of up to 20 times. Whereas this is an improvement which will benefit any setup it will make its most exquisite appearance in the server and when working with the REST API. We would love to hear about your experiences with the new milestone. Since performance improvements are difficult to quantify given the multitude of use cases, your feedback will be even more useful than usual. Read more in the official blog announcement via DZone, and vote us up if you like it: http://www.dzone.com/links/neo4j_14m02_enhanced_indexability.html Cheers, Andreas ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Neo4j 1.4 M01 - headed to Kiruna Stol
Really great news! Congratulations. On Fri, Apr 29, 2011 at 11:15, Chris Gioran chris.gio...@neotechnology.com wrote: Hi fellow graphistas. Keeping up with our schedule, two weeks after our 1.3 GA release we present to you the first milestone towards Neo4j 1.4 “Kiruna Stol”. This iteration does not introduce any major features. Instead it takes care of some annoyances in the existing codebase, incorporating your feedback to iron out issues with ops and user interaction. So if you are comfortable with 1.3, you should be right at home with this milestone, only happier! This release also paves the way for the cool new features we are considering for Kiruna Stol. Many improvements are in our sights, including paging and streaming of REST results, investigation of a query language, revisiting the API and introduce self referencing relationships and more. This won’t stop usability and performance improvements from coming though. So, go ahead and download our latest release and read more about it at http://blog.neo4j.org/2011/04/neo4j-14-m01-announcing-kiruna-stol.html and keep those suggestions coming. ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Is the Java API the Only Way to Create Subreference Nodes?
On Mon, Apr 25, 2011 at 09:29, James Thornton ja...@jamesthornton.com wrote: Is the Java API the only way to create subreference nodes? I'm using the Python REST client (https://github.com/versae/neo4j-rest-client). But it does not appear that subreference-node creation is exposed via REST, and the normal Python API doesn't work for 1.3 AFAIK. Hi, James, I think the subreference nodes are, actually, regular nodes connected to the reference node. As the reference node is the first node in the database and it exists by default, it has the number 0 as id. So, using de Python REST client you can access to it in the next way: gdb = GraphDatabase('http://localhost:7474/db/data') reference_node = gdb.nodes.get(0) reference_node Neo4j Node: http://localhost:7474/db/data/node/0 Besides, you can use the not documented (sorry, my fault) attribute of the GraphDatabase object: gdb.reference_node Neo4j Node: http://localhost:7474/db/data/node/0 And you can build your subreference nodes on top of it. I think in the next release of the neo4j-rest-client I will add a gdb.nodes.reference as a convenient shorcut to access to the reference node. Regards. Thanks. - James ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user -- Javier de la Rosa http://versae.es ___ 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 11:19 AM, Jacob Hansson ja...@voltvoodoo.com wrote: On Tue, Apr 19, 2011 at 10:17 PM, Michael DeHaan michael.deh...@gmail.comwrote: On Tue, Apr 19, 2011 at 10:58 AM, Jim Webber j...@neotechnology.com 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 ___ 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 -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] REST results pagination
Here is my motivation for this petition. In my ideal world, everything in Neo4j REST server that returns a list, should be something like RequestList or QuerySet, and supports pagination and even filtering with lookups, so I could do things like the next (sorry for the Python syntax, I'm always thinking of the Python rest client): gdb.nodes.all()[2:5] # Perform the query to server to get the nodes between the 2nd and 5th position, we assume Neo always returns ordered results in the same way. gdb.nodes.filter(name__contains=neo)[:10] # Returns only nodes with a property called name which contains neo, and returns only the first 10. This is important for the integration of the Neo4j Python Rest Client in Django, because I'm currently developing an application with lazy and user-defined schemas on top of Django and Neo4j. The listing of nodes and relationships is a requirement for me, so the pagination is a must in my aplication. Performing this in the application layer instead of Neo4j server side, wastes a lot of time sending information via REST. On Wed, Apr 20, 2011 at 03:43, Michael Hunger michael.hun...@neotechnology.com wrote: But wouldn't that really custom operation not more easily and much faster done as a server plugin? Otherwise all the data would have to be serialized to json and deserialized again and no streaming possible. From a server extension you could even stream and gzip that data with ease. Cheers Michael Am 20.04.2011 um 08:41 schrieb Tim McNamara: Data export, e.g. dumping everything as CSV, DOT or RDF? On 20 April 2011 18:33, Michael Hunger michael.hun...@neotechnology.comwrote: Hi Javier, what would you need that for? I'm interested in the usecase. Cheers Michael Am 20.04.2011 um 06:17 schrieb Javier de la Rosa: On Tue, Apr 19, 2011 at 10:25, Jim Webber j...@neotechnology.com wrote: I've just checked and that's in our list of stuff we really should do because it annoys us that it's not there. No promises, but we do intend to work through at least some of that list for the 1.4 releases. If this finally is developed, it will possible to request for all nodes and all relationships in some URL? Jim ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user -- 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 ___ 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 de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] REST results pagination
On Tue, Apr 19, 2011 at 10:32, Saikat Kanjilal sxk1...@hotmail.com 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? +1 From: j...@neotechnology.com I've just checked and that's in our list of stuff we really should do because it annoys us that it's not there. No promises, but we do intend to work through at least some of that list for the 1.4 releases. It will be great to see the feature in the 1.4 :-) -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] REST results pagination
On Tue, Apr 19, 2011 at 10:25, Jim Webber j...@neotechnology.com wrote: I've just checked and that's in our list of stuff we really should do because it annoys us that it's not there. No promises, but we do intend to work through at least some of that list for the 1.4 releases. If this finally is developed, it will possible to request for all nodes and all relationships in some URL? Jim ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Palo Alto release party!
Free beers? I need to live in California :) Have fun! On Fri, Apr 15, 2011 at 22:33, Emil Eifrem e...@neotechnology.com wrote: It's the release party for Neo4j 1.3! http://blog.neo4j.org/2011/04/neo4j-13-abisko-lampa-released.html It's going to be a small informal event, with free beer and lots of graph discussions! :) At last Dave and meself from the Neo4j gang will be there. Show up! It'll be tons of fun. Cheers, -EE On Fri, Apr 15, 2011 at 17:23, Stephen Young st...@electricmint.com wrote: Hey David I'm a neo4J list lurker and I'm currently in SF. What's this event about? Cheers Steve On 15 April 2011 15:45, David Montag david.mon...@neotechnology.com wrote: Hi graphsters, If you are in the SF bay area, don't think you'll go unnoticed! We're expecting to see you at the Palo Alto release party next Monday (4/18). Beers are on us! I'll be the guy with the tan Neo4j shirt. The venue is Nola (www.nolas.com) at 535 Ramona St. Hoping to see you there! David -- David Montag david.mon...@neotechnology.com Neo Technology, www.neotechnology.com Cell: 650.556.4411 Skype: ddmontag ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user -- Stephen Young CEO @ factnexus.com Architect @ wik.me Founding member @ knowledgerights.org ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user -- Emil Eifrém, CEO [e...@neotechnology.com] Neo Technology, www.neotechnology.com Cell: +46 733 462 271 | US: 206 403 8808 http://blogs.neotechnology.com/emil http://twitter.com/emileifrem ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] REST indexes questions
Thank you, Peter. It's gonna be exciting the future version 1.4 :-) On Thu, Apr 14, 2011 at 16:33, Peter Neubauer peter.neuba...@neotechnology.com wrote: Javier, great work with the Python bindings! I can't answer for all of the questions, but trying inline. I think the core guys might have some more insights here. On Wed, Apr 13, 2011 at 9:46 PM, Javier de la Rosa ver...@gmail.com wrote: Hi all, at first congratulations for the new GA release of Neo4j. Really great job. I'm now developing the support for indexes and I have changed a bit the compatibility with neo4j.py due to currently it doesn't work with nodes indexes neither relationships indexes. But I have some related questions: 1. How can I remove an index? Removing an index is a good catch, I don't think there is a method for completely removing an Index right now. We should add that for 1.4 since this is really a bug in the API unless I am missing something here. 2. Would it be possible, when I get the info of a node, also provide the indexes in which the node has been indexed? Not really, as Indicies are independent XA resources from the kernel. You can loop through the existing indexes and check if the node is in there, but I imagine that is a costly operation. Mattias, is there any easy way to do this? If yes, we could add it as an extension or directly into the Node-representation I think. 3. What it happens if I remove a node that it's already indexed? Is it removed from the index too? Same here. If you don't include a node-removal from the index in the same transaction, the index is going to be stale. All of the above behaviors are target for an auto-index feature that would help you with this - also for 1.4 planned. 4. What's the real difference between the query exact method and the advanced query? I mean, using only the advanced query, are you able to query in exact mode? It is referring to the exposure of the get vs. query interface of the Index API, see http://components.neo4j.org/neo4j/1.3/apidocs/org/neo4j/graphdb/index/Index.html . Thanks so much for the feedback! This is very valuable input for the next cycles. Keep it coming Javier! /peter -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] REST indexes questions
Thank you very much for the aclarations, Michael. Regards! On Thu, Apr 14, 2011 at 18:55, Michael Hunger michael.hun...@neotechnology.com wrote: 1. Removing an index is not exposed, possible to add with a server plugin/extension. 2. One can easily store the index-names as node properties with the indexing operation - that's also something that could be automated via an server plugin. 3. Same goes for auto removal, btw. it is also necessary for relationships, so perhaps an operation removing a node and its relationships (and all of those from their indexes) would be sensible. 4. Query exact is looking for the exact match, Advanced Query takes also lucene query strings and partial matches like (Matr*), for advanced-query fulltext matches the values must have been indexed on a fulltext index. It should be a matter of a few hours of coding to provide a server plugin that does the above. Cheers Michael Am 13.04.2011 um 21:46 schrieb Javier de la Rosa: Hi all, at first congratulations for the new GA release of Neo4j. Really great job. I'm now developing the support for indexes and I have changed a bit the compatibility with neo4j.py due to currently it doesn't work with nodes indexes neither relationships indexes. But I have some related questions: 1. How can I remove an index? 2. Would it be possible, when I get the info of a node, also provide the indexes in which the node has been indexed? 3. What it happens if I remove a node that it's already indexed? Is it removed from the index too? 4. What's the real difference between the query exact method and the advanced query? I mean, using only the advanced query, are you able to query in exact mode? -- 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 de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
[Neo4j] REST indexes questions
Hi all, at first congratulations for the new GA release of Neo4j. Really great job. I'm now developing the support for indexes and I have changed a bit the compatibility with neo4j.py due to currently it doesn't work with nodes indexes neither relationships indexes. But I have some related questions: 1. How can I remove an index? 2. Would it be possible, when I get the info of a node, also provide the indexes in which the node has been indexed? 3. What it happens if I remove a node that it's already indexed? Is it removed from the index too? 4. What's the real difference between the query exact method and the advanced query? I mean, using only the advanced query, are you able to query in exact mode? -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Data type returned by extensions in REST
On Thu, Mar 24, 2011 at 04:58, Michael Hunger michael.hun...@neotechnology.com wrote: unfortunately it is not clear what you're asking for. Sorry about that. The only thing I want in the REST component is a way to identify the data type of the value returned by an extension. Is it the discoverable part of the REST API which describes parameters and return values? I think the parameter description is generated from the server plugin method parameter names, types and annotation values. Exactly, but there's no annotations for describing the data type returned. I would like to have this information in order to create the suitable object in Python, not only a dictionary containing the values. This is handled by the ExtensionPointRepresentation in the server. I just looked and it doesn't contain information about the result. We will discuss that internally and probably add this information. By now you are limited to documenting that in the description part. OK, I see. Are you planning to add this feature in some moment in the near future? Best regards. Cheers Michael Am 22.03.2011 um 23:29 schrieb Javier de la Rosa: Hi all, I'm ending the support for extensions in the neo4j-rest-interface [1] and it will be soon available for installing through easy_install and pip, the Python Package Index, and probably with a new name, I don't know yet. But I have just find a little problem, the data type returned is not revealed in any of params in REST interface. By example, in the ShortestPath.shortestPath extension the dictionary of properties received by the client is: {u'description': u'Find the shortest path between two nodes.', u'extends': u'node', u'name': u'shortestPath', u'parameters': [{u'description': u'The node to find the shortest path to.', u'name': u'target', u'optional': False, u'type': u'node'}, {u'description': u'The relationship types to follow when searching for the shortest path(s). Order is insignificant, if omitted all types are followed.', u'name': u'types', u'optional': True, u'type': u'strings'}, {u'description': u'The maximum path length to search for, default value (if omitted) is 4.', u'name': u'depth', u'optional': True, u'type': u'integer'}]} That's enough to clean and send the parameters to the extension using the REST interface, but doesn't for creating the returned objects automatically. Adding a new returns in the properties returned should work, but maybe setting some conventions about the types returned and sent would be a good idea. Actually the type strings is really a list of strings, a bit confusing. Until now, the only way to discover the type of returned objects was to inspect the self attribute of the first element, but that doesn't work in all the cases. Regards! -- 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 de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
[Neo4j] Data type returned by extensions in REST
Hi all, I'm ending the support for extensions in the neo4j-rest-interface [1] and it will be soon available for installing through easy_install and pip, the Python Package Index, and probably with a new name, I don't know yet. But I have just find a little problem, the data type returned is not revealed in any of params in REST interface. By example, in the ShortestPath.shortestPath extension the dictionary of properties received by the client is: {u'description': u'Find the shortest path between two nodes.', u'extends': u'node', u'name': u'shortestPath', u'parameters': [{u'description': u'The node to find the shortest path to.', u'name': u'target', u'optional': False, u'type': u'node'}, {u'description': u'The relationship types to follow when searching for the shortest path(s). Order is insignificant, if omitted all types are followed.', u'name': u'types', u'optional': True, u'type': u'strings'}, {u'description': u'The maximum path length to search for, default value (if omitted) is 4.', u'name': u'depth', u'optional': True, u'type': u'integer'}]} That's enough to clean and send the parameters to the extension using the REST interface, but doesn't for creating the returned objects automatically. Adding a new returns in the properties returned should work, but maybe setting some conventions about the types returned and sent would be a good idea. Actually the type strings is really a list of strings, a bit confusing. Until now, the only way to discover the type of returned objects was to inspect the self attribute of the first element, but that doesn't work in all the cases. Regards! -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Neo4j and Microsoft Azure
On Mon, Feb 14, 2011 at 17:15, Peter Neubauer peter.neuba...@neotechnology.com wrote: Hi all Graphytes, there has been a lot of interest in Neo4j fro the Microsoft side of things, so Magnus Mårtensson and me did write-up o how to get a first version of a Neo4j Server hosted on Microsoft Azure. Enjoy, and as always feel free to feedback to the community! http://blog.neo4j.org/2011/02/announcing-neo4j-on-windows-azure.html Great post indeed. But recently I read about Microsoft Trinity [1], what are your opinions about that? Will it be a competitor for Neo4j? Do you think it would be a good idea to support hyperedges in a native way in the future Neo4j releases? Best regards. [1] http://research.microsoft.com/en-us/projects/trinity/default.aspx -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Announcing Neo4j 1.3 “Abisko Lampa” M04
On Fri, Mar 11, 2011 at 09:02, Chris Gioran chris.gio...@neotechnology.com wrote: the REST interface for Indexing operations. As always, extended Really great news for REST clients! Now it's our time to implement it. Thank you. -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Published Clean-DB REST-Server Extension
Really useful! Thank you. On Wed, Mar 2, 2011 at 11:54, Michael Hunger michael.hun...@neotechnology.com wrote: Hey guys, whoever of you used the server from a remote client and wanted to use it in functional tests had the issue with restarting the server and cleaning the db-directory with each test (to have independend tests). Mark Nijhof addressed this problem and I experienced it myself when developing against the REST Server. You can find the plugin here: https://github.com/jexp/neo4j-clean-remote-db-addon Looking forward to your feedback. Cheers Michael ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Neovigator Weekend Project
Very nice! On Mon, Feb 21, 2011 at 09:15, Mattias Persson matt...@neotechnology.com wrote: Pretty cool ! 2011/2/21 Tobias Ivarsson tobias.ivars...@neotechnology.com Nice stuff! On Mon, Feb 21, 2011 at 6:18 AM, Max De Marzi Jr. maxdema...@gmail.com wrote: Guys, So I ran into the Ask Ken project ( http://askken.heroku.com/ ) by Michael Aufreiter yesterdat, and though it was pretty awesome... so I ported it to using Neo4j. Check it out: http://neovigator.heroku.com/ On github at https://github.com/maxdemarzi/neovigator Regards, Max ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user -- Tobias Ivarsson tobias.ivars...@neotechnology.com Hacker, Neo Technology www.neotechnology.com Cellphone: +46 706 534857 ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user -- 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 -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Installing the python bindings ( I think )
On Wed, Feb 9, 2011 at 10:31, Tom Smith tom.sm...@york.ac.uk wrote: I tried using the REST server (which is great) but it doesn't support graphdb.index(whatever) yet. I hope neo4j-rest-client in Python support indexing and plugins before the end of february. -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] GSoC ideas?
On Tue, Feb 8, 2011 at 01:35, Peter Neubauer peter.neuba...@neotechnology.com wrote: http://wiki.neo4j.org/content/Google_Summer_of_Code_Ideas May the source be with you! My 2 cents: a graphical web admin tool to traverse (visual Gremlin?) and browse the graph, with filters and facets, comparable to filters in Gephi [1] and sones VisualGraph [2]. [1] http://www.youtube.com/watch?v=0R86bJVxMrA [2] http://www.youtube.com/watch?v=vJhwjls5Gxg -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Neo4j is moving to git
On Thu, Jan 27, 2011 at 09:10, Tobias Ivarsson tobias.ivars...@neotechnology.com wrote: The repositories should be fully available on Github at some point during the day tomorrow. Simply great. Tahnk you. -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] neo4j 1.2 python
On Wed, Jan 5, 2011 at 16:53, Rick Otten rot...@windfish.net wrote: I think I'll stick with the REST interface for the near future. Maybe you can find interesting the Neo4j Python RET client [1], not index and plugins features supported yet yes in the near future. Best 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
Re: [Neo4j] Neo4j 1.2 is released
Congratulations! Now the Neo4j team has reached a earned rest. Happy New Year! On Thu, Dec 30, 2010 at 22:30, Tobias Ivarsson tobias.ivars...@neotechnology.com wrote: Happy new year — happy new Neo4j version! The Neo4j team is happy to announce version 1.2 of the Neo4j graph database. Building on the line of milestone releases of Neo4j, version 1.2 contains only a few minor bug fixes over 1.2.M06, and should be very stable. The official announcement has been posted here: http://www.dzone.com/links/neo4j_12_final_prtporter.html If you like this version, please vote for the article on DZone, and share the link with your friends and colleagues. We would like to thank everyone on this mailing list, and all of our customers, who provided the bug reports, feedback, suggestions and patches that made this release what it is. You've already given us a lot of great ideas for the road ahead, but keep them coming, let's make Neo4j even better together! Your next stop, for downloading this version of Neo4j, is: http://neo4j.org/download The main new features in Neo4j 1.2 compared to Neo4j 1.1 are: * The Neo4j Server The Neo4j standalone server builds upon the RESTful API that was pre-released for Neo4j 1.1. The server provides a complete stand alone Neo4j graph database experience, making it easy to access Neo4j from any programming language or platform. Some of you have already provided great client libraries for languages such as Python, Ruby, PHP, the .Net stack and more. Links and further information about client libraries can be found at: http://www.delicious.com/neo4j/drivers * Neo4j High Availability The High Availability feature of Neo4j provides an easy way to set up a cluster of graph databases. This allows for read scalability and tolerates faults in any of the participating machines. Writes are allowed to any machine, but are synchronized with a slight delay across all of them. High Availability in Neo4j is still in quite an early stage of its evolution and thus still have a few limitations. While it provides scalability for read load, write operations are slightly slower. Adding new machines to a cluster still requires some manual work, and very large transactions cannot be transmitted across machines. These limitations will be addressed in the next version of Neo4j. Some other noteworthy changes include: * Additional services for the Neo4j kernel can now be loaded during startup, or injected into a running instance. Examples of such additional services are the Neo4j shell server and the Neo4j management interface. * Memory footprint and read performance has been improved. * A new cache implementation has been added for high load, low latency workloads. * A new index API has been added that is more tightly integrated with the database. This new index API supports indexing relationships as well as nodes, and also supports indexing and querying multiple properties for each node or relationship. The old index API has been deprecated but remains available and will continue to receive bug fixes for a while. * The Neo4j shell supports performing path algorithm queries. * Built in automatic feedback to improve future versions of Neo4j. See: http://blog.neo4j.org/2010/10/announcing-neo4j-12m01-and-focus-on.html Last but not least all known issues have been fixed. If you want more details, please read the change log and/or the announcements for the previous milestone releases. Happy hacking, and a happy new year 2011! - the Neo4j team, through -- Tobias Ivarsson tobias.ivars...@neotechnology.com Hacker, Neo Technology www.neotechnology.com Cellphone: +46 706 534857 ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Accessing node relationships via the Python REST client
On Wed, Dec 29, 2010 at 17:40, Peter Neubauer peter.neuba...@neotechnology.com wrote: Javier, you have any example of that? Just tried the default example plugins, they look like I mean, I was talking about the keys extensions-info, node-index and relationship-index. reference_node is already using the underscore. [~/code/tmp] $curl http://localhost:7474/db/data/ { extensions-info : http://localhost:7474/db/data/ext;, node : http://localhost:7474/db/data/node;, node-index : http://localhost:7474/db/data/index/node;, relationship-index : http://localhost:7474/db/data/index/relationship;, reference_node : http://localhost:7474/db/data/node/0;, extensions : { GetAll : { get_all_nodes : http://localhost:7474/db/data/ext/GetAll/graphdb/get_all_nodes;, getAllRelationships : http://localhost:7474/db/data/ext/GetAll/graphdb/getAllRelationships; }, Spatial : { addPointToLayer : http://localhost:7474/db/data/ext/Spatial/graphdb/addPointToLayer; } } meaning that they expose the plugin class and the method, or the name (get_all_nodes) that is user-defined ... 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://www.thoughtmade.com - Scandinavia's coolest Bring-a-Thing party. On Tue, Dec 28, 2010 at 5:55 PM, Javier de la Rosa ver...@gmail.com wrote: On Tue, Dec 28, 2010 at 17:05, Peter Neubauer peter.neuba...@neotechnology.com wrote: is there anything we need to change in the Neo4j REST API before 1.2 in order to be done here? I'm not sure, but I think the new plugins feature exposes URL's with hyphens instead of underscores. It seems the only thing required here are changes on the Python side? Yes. I'm trying update the code on each milestone. -- 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 de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Accessing node relationships via the Python REST client
On Tue, Dec 28, 2010 at 17:05, Peter Neubauer peter.neuba...@neotechnology.com wrote: is there anything we need to change in the Neo4j REST API before 1.2 in order to be done here? I'm not sure, but I think the new plugins feature exposes URL's with hyphens instead of underscores. It seems the only thing required here are changes on the Python side? Yes. I'm trying update the code on each milestone. -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Accessing node relationships via the Python REST client
On Tue, Dec 21, 2010 at 02:31, Chris Diehl di...@alumni.cmu.edu wrote: For those of you using the Python REST client ( https://github.com/versae/neo4j-rest-client) with neo4j 1.2.M05, are you able to successfully access the relationships associated with a given node? When I tried this today with my data, I saw the following. Any thoughts as to what might be going on? I think is due to the change in the new server versions of the keys outgoing_relationships, ingoing_relationships and all_relationships instead of outgoing relationships, ingoing relationships and all relationships. I will take a look. Thanks for report the bug. Thanks, Chris n = gdb.node[252] n.properties {'fullyObserved': False, 'type': 'Email Address', 'address': 'tim.bel...@enron.com'} n.relationships.all() Traceback (most recent call last): File , line 1, in File neo4j_rest_client.py, line 430, in get_relationships url = self._node._dic[key] KeyError: 'all relationships' n.relationships.incoming() Traceback (most recent call last): File , line 1, in File neo4j_rest_client.py, line 430, in get_relationships url = self._node._dic[key] KeyError: 'incoming relationships' n.relationships.outgoing() Traceback (most recent call last): File , line 1, in File neo4j_rest_client.py, line 430, in get_relationships url = self._node._dic[key] KeyError: 'outgoing relationships' ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Neo4j 1.2 Milestone 6 is released
Congratulations one more time! Very great news for REST lovers like me :-) Only one appreciation, in the new node index service the keys uses an hyphen but in the rest of the keys underscores are used. (node, node-index, relationship-index, reference_node, etc). Is this OK? Maybe it would be better set the same criteria in the all of the URL keys, isn't? PS: The new plugins component is amazing! On Tue, Dec 21, 2010 at 18:07, Tobias Ivarsson tobias.ivars...@neotechnology.com wrote: Happy winter solstice dear friends! To brighten your world in these dark times the Neo4j team is happy to bring to you the sixth and final milestone release of Neo4j 1.2. Those of you living down under might not need your day to be brighter, but the fact that the next release of Neo4j will be 1.2 final should still be plenty of reason to rejoy and play with the new features in Neo4j. The final set of features to make it into Neo4j 2010, with this milestone, are: Support for the new integrated indexes in the Neo4j Server: The RESTful interface for Neo4j supports the new Neo4j index system, which means that you can now use the same indexes that you create using the Embedded API in Java, Ruby or your favorite language through the RESTful API of the Neo4j Server. Plugin support for the Neo4j Server: The Neo4j Server can now be extended with plugins for adding your own custom traversals or even a simple domain API to the RESTful API. This can be done by plugging in to either Nodes, Relationships or the GraphDatabase itself and extending these entities with further methods. These are then automatically discoverable and invokable through the Neo4j REST API. For more information on this release, and the above mentioned features, turn your attention to the blog post on the subject: http://blog.neo4j.org/2010/12/neo4j-12-m06-is-out-better-rest.html Neo4j 1.2 final, that is scheduled to be released in the next few weeks, will not include any new features but simply include fixes to any bugs you manage to find during your Christmas hacking party, and possibly some minor polish to the already stable Graph Database. All you need to get started with this can be downloaded at: http://neo4j.org/download Now the Swedish Neo4j team is heading out for our traditional winter solstice celebration, happy hacking! -- Tobias Ivarsson tobias.ivars...@neotechnology.com Hacker, Neo Technology www.neotechnology.com Cellphone: +46 706 534857 ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] New Index API replacing the old one in REST
On Mon, Dec 20, 2010 at 12:18, Peter Neubauer peter.neuba...@neotechnology.com wrote: Graphytes, the exposure of the new Index on relationships and nodes in the Neo4j REST API will be part of M06, so anyone using the Index in their bindings will need to switch to that API. I am thinking of the PHP, .NET, Ruby and Perl bindings (Max, @onewheelgood, Javier and all others). Great news! Where is the documentation to apply the new changes on the index behaviour? -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Cats and Dogs, living together
On Mon, Dec 6, 2010 at 16:57, Peter Neubauer peter.neuba...@neotechnology.com wrote: Very very cool Javier! Thank you :) Is this built using the Neo4j Python bindings or pure REST? Also, is there a public website available to refer to? By now we are using only REST, but the performance is not what we expected when we process large nodes returned by a traversal (so much HTTP requests). So we are now evaluating whether using de Python binding or building a Java socket server and a Python socket client could be better. When you make a traversal or use the indices, the REST API returns the URLs of each of the nodes returned, so we need make one HTTP request more per node. It would be great if we could send an optional param to make the server returned all properties. Another question - regarding visualisation, what was your experience of the best performing lib for JavaScript out there regarding large amount of nodes and relationships to render, and adaptability for UI? Currently, it seems there is - TheJIT - Processing.js - Graphdracula TheJIT was our first approach, but with large datasets the behaviour is not very fast. Besides, the interaction ways are a bit limited and hard to expand. Processing.js is, with no doubt, the most promising solution. We were happy using Porcessing.js, but you need build all you need to represent graphs, nodes and edges. It's very low level programation and by now the browsers can't with it, therefore we used a mixed version between Processing.js in the browser and NetworkX in the server side for some calculations of layout and etc. Graphdracula was an inspiration for us. It's very beautiful, but it's also very incomplete yet. I guess in the near future will be very useful, but we need total control of all happens in the UI. So, now we are using Räphael, the core library of Graphdracula, and we are implementing several layout algorithms in Javascript and some ways to interact with nodes to expand the graph by browsing. I hope to setup a Sylva test site soon, then I will e-mail to this list, if that's alright with you. Best regards. 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://www.thoughtmade.com - Scandinavia's coolest Bring-a-Thing party. On Thu, Dec 2, 2010 at 6:03 PM, Javier de la Rosa ver...@gmail.com wrote: Hi, everybody, I work in a lab at University of Western Ontario, with humanists people. The needs of the humanist research make useless the current SQL databases because it's hard to change the schemas or build queries with several JOINs. So, we are developing a system which mixes a relational database and Neo4j. Sylva [1], as it's called (previously Graphgamel), stores all data in the Neo4j database as a graph. On the other hand, de multimedia files (image, video and audio files) are stores using the relational one (over Django). Besides, the relational part allows the definition of lazy and dynamic schemas, very usefull to model the world from the humanistic point of view. The users can create nodes and relationships but according to a certain kind of integrity defined in the schema. Sylva also has a very early version of visualization through Raphäel and Processing.js. Here you can see some screenshots [2, 3, 4] and a video demo [5]. Our goal is to adapt the django-qbe project [6] to our schema tool in order to produce Gremlin queries in a visual way. But by now we are using the Neo4 REST component but it's not very fast and it has some limitations. It's an alpha version, but it goes without saying :-) [1] https://github.com/escalant3/graphgamel [2] http://dl.dropbox.com/u/2630535/sylva.png [3] http://dl.dropbox.com/u/2630535/plexigraph.png [4] http://dl.dropbox.com/u/2630535/grafo.png [5] http://www.youtube.com/watch?v=r04eV7vghfs (sorry, not subtitles or audio yet) [6] http://versae.github.com/qbe/ On Wed, Dec 1, 2010 at 12:52, Andreas Kollegger andreas.kolleg...@neotechnology.com wrote: Would anybody be willing to share experiences with trying to introduce Neo4j into a system with another relational (or other NoSQL) database? We're starting to think about best practices for integration: * Hybrid data-modeling: what goes where? * XA transactions * message queues for data distribution * data migration strategies Any problems or feature-requests related to living in a multi-storage-platform world are welcome. Cheers, Andreas ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Cats and Dogs, living together
On Tue, Dec 7, 2010 at 10:39, Peter Neubauer peter.neuba...@neotechnology.com wrote: There is a strong desire for having some graph visualization in the Neo4j Admin console, so - if you think it is interesting, I think there might be a strong case for the projects working together on the visualization component. I don't have the timeframe laid out yet but Neo Technology can dedicate resources to it early next year. Would that make sense to you? Of course yes. We're not very familiar using Java, but I think it's not needed, because the most of the code in the web admin console would be Javascript. The only thing to decide is the format of data to interchange between the server and the browser to paint the graph and the properties. Anyways, we will keep working on Sylva and its visual component, although in a slower way than we would like. For whatever, I'm always available at my e-mail. 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://www.thoughtmade.com - Scandinavia's coolest Bring-a-Thing party. On Tue, Dec 7, 2010 at 3:44 PM, Javier de la Rosa ver...@gmail.com wrote: On Mon, Dec 6, 2010 at 16:57, Peter Neubauer peter.neuba...@neotechnology.com wrote: Very very cool Javier! Thank you :) Is this built using the Neo4j Python bindings or pure REST? Also, is there a public website available to refer to? By now we are using only REST, but the performance is not what we expected when we process large nodes returned by a traversal (so much HTTP requests). So we are now evaluating whether using de Python binding or building a Java socket server and a Python socket client could be better. When you make a traversal or use the indices, the REST API returns the URLs of each of the nodes returned, so we need make one HTTP request more per node. It would be great if we could send an optional param to make the server returned all properties. Another question - regarding visualisation, what was your experience of the best performing lib for JavaScript out there regarding large amount of nodes and relationships to render, and adaptability for UI? Currently, it seems there is - TheJIT - Processing.js - Graphdracula TheJIT was our first approach, but with large datasets the behaviour is not very fast. Besides, the interaction ways are a bit limited and hard to expand. Processing.js is, with no doubt, the most promising solution. We were happy using Porcessing.js, but you need build all you need to represent graphs, nodes and edges. It's very low level programation and by now the browsers can't with it, therefore we used a mixed version between Processing.js in the browser and NetworkX in the server side for some calculations of layout and etc. Graphdracula was an inspiration for us. It's very beautiful, but it's also very incomplete yet. I guess in the near future will be very useful, but we need total control of all happens in the UI. So, now we are using Räphael, the core library of Graphdracula, and we are implementing several layout algorithms in Javascript and some ways to interact with nodes to expand the graph by browsing. I hope to setup a Sylva test site soon, then I will e-mail to this list, if that's alright with you. Best regards. 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://www.thoughtmade.com - Scandinavia's coolest Bring-a-Thing party. On Thu, Dec 2, 2010 at 6:03 PM, Javier de la Rosa ver...@gmail.com wrote: Hi, everybody, I work in a lab at University of Western Ontario, with humanists people. The needs of the humanist research make useless the current SQL databases because it's hard to change the schemas or build queries with several JOINs. So, we are developing a system which mixes a relational database and Neo4j. Sylva [1], as it's called (previously Graphgamel), stores all data in the Neo4j database as a graph. On the other hand, de multimedia files (image, video and audio files) are stores using the relational one (over Django). Besides, the relational part allows the definition of lazy and dynamic schemas, very usefull to model the world from the humanistic point of view. The users can create nodes and relationships but according to a certain kind of integrity defined in the schema. Sylva also has a very early version of visualization through Raphäel and Processing.js. Here you can see some screenshots [2, 3, 4] and a video demo [5]. Our goal is to adapt the django-qbe project [6] to our schema tool in order to produce Gremlin
Re: [Neo4j] Get All Nodes in Rest API
On Wed, Dec 1, 2010 at 03:29, Peter Neubauer peter.neuba...@neotechnology.com wrote: Is there a command to get all nodes from the Rest API? +1. I would also like to know this :) -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Release 1.0.0.beta.22
On Fri, Nov 26, 2010 at 02:03, Peter Neubauer peter.neuba...@neotechnology.com wrote: Btw, what does everyone feel about REST vs. native protocols like RMI, Protobuffers, etc that can support a full Neo4j remote API for integration, with TX etc and would be optimized for driver development in other langs, minicing the Java core API capabilities very close? Any thoughts or preferences on one or the other? Does REST do a sufficiently good job for production use from other langs? What would you like to see in REST to get there - top 3 features? My 3 cents: - Sockets maybe? - Support for Dates, and not only dates after Linux Epoch. - Support for do traversal with the geospatial information. Using GeoJSON or WKT? -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Release 1.0.0.beta.22
On Fri, Nov 26, 2010 at 10:54, Peter Neubauer peter.neuba...@neotechnology.com wrote: [...] This syntax might make it easier to expose things in Ruby, REST and others, too. WDYT? For the heavy query lifting and GIS stack integration, the GeoTools API is the way to go though ... Any mechanism that make possible to build traversals with geospatial information through the REST API would be great. So, in some moment in the future, will be possible do traversals with geodata?, I mean, build traversals in which I could asking the nodes using geospatial operations like near, is a point of, overlap with, to a distance less than, etc. Date support in Neo4j is a very interesting thing that I think needs a bit of thought. Thanks for pointing it out - would be a great lab-friday project :) Great! I would like to know some more about Java to help in a more useful way. Thank you. 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://www.thoughtmade.com - Scandinavia's coolest Bring-a-Thing party. On Fri, Nov 26, 2010 at 3:08 PM, Javier de la Rosa ver...@gmail.com wrote: On Fri, Nov 26, 2010 at 02:03, Peter Neubauer peter.neuba...@neotechnology.com wrote: Btw, what does everyone feel about REST vs. native protocols like RMI, Protobuffers, etc that can support a full Neo4j remote API for integration, with TX etc and would be optimized for driver development in other langs, minicing the Java core API capabilities very close? Any thoughts or preferences on one or the other? Does REST do a sufficiently good job for production use from other langs? What would you like to see in REST to get there - top 3 features? My 3 cents: - Sockets maybe? - Support for Dates, and not only dates after Linux Epoch. - Support for do traversal with the geospatial information. Using GeoJSON or WKT? -- 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 de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] [SPAM] Re: Datetimes in Neo4j REST Server
On Thu, Nov 25, 2010 at 07:11, Craig Taverner cr...@amanzi.com wrote: My vote is to keep the REST API as close as possible to the core Neo4j. If dates are added to the core, then add them to the REST API. Until then, surely this is an application level issue... +1. I wish the Date type were added soon to the Neo4j core. It woul be a good extra point in traversals. -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Datetimes in Neo4j REST Server
On Tue, Nov 23, 2010 at 16:05, Peter Neubauer peter.neuba...@neotechnology.com wrote: Jim, what do you say about that? How type safe can we make the REST API? At least I think this warrants an issue over at https://trac.neo4j.org/ticket/286 for this. Thank you Peter and Max for the quick response. It would be great to have well defined data types in the REST server. I hope the solution also works in order to talk to the server what types are sent to it, because now we have no way to create Date or List objects like properties in nodes or relationships trhough the REST API. It's not easy manage with Dates and objects in JSON. The proposal in https://trac.neo4j.org/ticket/286 adds some overhead although I think is a very good solution. However, there wouldn't be backwards compatibility. Best regards. -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] [ANN] Neo4j 1.2 Milestone 4, The Server.
On Fri, Nov 19, 2010 at 10:24, Peter Neubauer peter.neuba...@neotechnology.com wrote: download, http://neo4j.org/download/ getting started with the server http://wiki.neo4j.org/content/Getting_Started_with_Neo4j_Server At first, congratulations for the great work :) And on the other hand, after I read the Getting Started with Neo4j Server, REST API and Future Neo4j Server Releases and Using the Neo4j Server with Java, I see there are some changes, like using reference_node instead of the old way reference node. The way to build a traverse seems to be different too. Is there any documentation wiki page with all of these new changes. Thank you. PD: Anyways, the Python REST Client [1] works properly, but you must change http://localhost:; to http://localhost:7474/db/data;. I guess is due to the compatibilization in this milestone. [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
Re: [Neo4j] sobre neo
Chris Gioran has posted a series of articles on Neo4j internal implementation details: - File storage: http://digitalstain.blogspot.com/2010/10/neo4j-internals-file-storage.html - Persistence and Memory mapping: http://digitalstain.blogspot.com/2010/10/neo4j-internals-persistence-and-memory.html - Write ahead log and deadlock detection (part 1): http://digitalstain.blogspot.com/2010/10/neo4j-internals-transactions-part-1.html I hope this will be helpful for you. Besides, you can take a look on the more theoretical papers: http://arxiv.org/abs/1004.1001 --- [es] -- Chris Gioran escribió una serie de artículos explicando detalles de implementación de Neo4j: - File storage: http://digitalstain.blogspot.com/2010/10/neo4j-internals-file-storage.html - Persistence and Memory mapping: http://digitalstain.blogspot.com/2010/10/neo4j-internals-persistence-and-memory.html - Write ahead log and deadlock detection (part 1): http://digitalstain.blogspot.com/2010/10/neo4j-internals-transactions-part-1.html Espero que te sea de ayuda. Además siempre puedes echarle un vistazo a los artículos más teóricos: http://arxiv.org/abs/1004.1001 2010/11/17 Jose Angel Inda Herrera jai...@estudiantes.uci.cu: Hola Andres , Si me interesa saber como es que neo almacena los datos, seria eso de mucha ayuda para mi. Sobre el modelo de datos, me dices que es la teoria de grafos, pero existe algun documento que tenga neo que trate sobre como utiliza el la teoria de grafo en su modelo de datos, Gracias de ante mano PD: es genial poder hablar en espanol. ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] REST support for neo4j-spatial
On Wed, Nov 17, 2010 at 10:46, Jan Boonen jan.boo...@geodan.nl wrote: I was wondering if someone is planning to support REST for neo4j-spatial. It would be great for example if we can connect GeoTools to a Neo4j REST server. +1 -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Online backup via shell
On 2 July 2010 15:45, Mattias Persson matt...@neotechnology.com wrote: Just a thought... would that be useful? I bet it can be useful! Especially if you add a command to restore ;-) -- Javier de la Rosa http://versae.es ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
[Neo4j] Traversals in REST Service vs. Traversals in neo4j.py
I'm developing the support to traversals for Python REST Client. The underlying idea for me is to mantain the compatibility with neo4j.py (a really hard issue), but the traversals made me to think about some questions: 1. How can I implement support to isStopNode or isReturnable in REST Service? I guess that for isStopNode I may to use prune evaluator, but what about with isReturnable, must I use returnable filer? Why this parameter has no body attribute in order to define a function? 2. If max depth parameter is not set, it's equivalent to STOP_AT_END_OF_GRAPH? If that's not true, how can I get the a behaviour like STOP_AT_END_OF_GRAPH? Sorry, perhaps they are dumb questions, but I need some of light, please. Best regards. -- Javier de la Rosa ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Traversals in REST Service vs. Traversals in neo4j.py
Thank you for your clarification. On 2 June 2010 13:31, Mattias Persson matt...@neotechnology.com wrote: return filter: { language: javascript, body: position.node().getProperty( 'name' ).equals( 'Javier' ) } Will we see language: python in the near future? -- Javier de la Rosa ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Traversals in REST Service vs. Traversals in neo4j.py
And one more question, what's the meaning of uniqueness: node path parameter? What values does it support? Which is the equivalent en neo4j.py? -- Javier de la Rosa ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Traversals in REST Service vs. Traversals in neo4j.py
On 2 June 2010 16:21, Mattias Persson matt...@neotechnology.com wrote: I don't think the python bindings (or any other binding) has caught up to the new traversal framework. Uniqueness is all about when to visit a node and when not to. If the uniqueness would be NODE_GLOBAL a node wouldn't be visited more than once in a traversal. NODE_PATH means that a node won't be visited again for the current path (the path from the start node to where ever the traverser is at the moment) if that node is in the current path. It might as well be visited again in another path. Also see the javadoc of Uniqueness at http://components.neo4j.org/neo4j-kernel/apidocs/org/neo4j/graphdb/traversal/Uniqueness.html Great! Thank you so much. -- Javier de la Rosa ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo] Transactions in Neo4j REST Server
Thank you all, your ideas are great. I guess to introduce some kind of pagination only make harder the work :-) but it continues being interesting. Best regards. -- Javier de la Rosa ___ Neo mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
[Neo] SPARQL in Neo4j REST Server
Is there any way to perform a SPARQL query in Neo4j REST Server? Thanks! -- Javier de la Rosa ___ Neo mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
[Neo] Transactions in Neo4j REST Server
Hi all, I think there's no way to perform a transaction through Neo4j REST Server. It would be great if we could emulate this behaviour using the header Keep-Alive, some session variable or some persistence issue. A good option can be the next (I'm guessing Neo4j isn't able to manage several transactions simultaniously, but I don't really know): Create transaction POST /transaction Example using curl $ curl -H Accept:application/json -X POST http://localhost:/transaction Response 201: OK, a transaction was created 409: Transaction already in progress Since that moment, whatever you do will be under the transaction. When you finish the transaction. the DELETE verb has to be invoked over /transaction: DELETE /transaction Example using curl $ curl -X DELETE http://localhost:/transaction Response 204: OK, no content returned 404: Transaction not found What do you think about this? Is it too many complicated? Is it possible? Best regards. -- Javier de la Rosa ___ Neo mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user