Re: [Neo4j] Automatically invoking ETL
I'm afraid it did... On 24 April 2012 18:18, Bill Baker bill...@billbak.com wrote: Wow, Outlook strikes again. Got a public email list on this. But it bounced, so it never went out. Whew. From: Bill Baker Sent: Tuesday, April 24, 2012 10:17 AM To: 'Paul de Prado'; Imthiyaz Ahmed Cc: Bill Baker; Barrie Pike; user@lists.neo4j.org Subject: RE: Automatically invoking ETL Just to be clear, there are two projects here. One is to automate the whole of data collection. That's a long-term goal, and not needed for the MSFT project. The MSFT project is to put some part of our world into the Azure cloud. What we chose to do is build a small dashboard that displays status of data loading for one customer (a customer-specific view) or all customers (a G4 view.) For that we just need to pick one customer and make sure their ETL packages log details as they go. From there we push that data into a cloud db and display some views over it. From: Paul de Prado Sent: Tuesday, April 24, 2012 8:55 AM To: Imthiyaz Ahmed Cc: Bill Baker; Bill Baker; Barrie Pike Subject: RE: Automatically invoking ETL Hi Imthiyaz, I suspect there is more to it. Can you please review the ETL packages to let me know if the ones for each file run the same stored procedures over and over again? While the sprocs being run do not take much time, we should of course clean it up if needed. If so, we must move those stored procedures into a new SSIS package and remove them from all of the file-loading packages for each CAM retailer and manufacturer. Also, I know that some of the files will be loaded manually to get a head start, especially when files are late or processing is going slowly. Do you still do that for NOM? We need to account for whether Bill can wait for the files to accumulate before running them, or if we should have a job that loads them as soon as they are downloaded. Lastly, what tests do you run after the ASDA and Morrisons files are downloaded from their web sites to ensure the files are not bad ones? Adding Bill and Baz to the email thread so they can chime in with questions as needed... Thanks, Paul From: Imthiyaz Ahmed Sent: Tuesday, April 24, 2012 8:22 AM To: Paul de Prado Subject: RE: Automatically invoking ETL Hi Paul, I expect that this log was taken yesterday when we load data for last 3 or 4 days. So that many number of time the package should run. If it is a single day data then this redundancy will not be there. Thanks, Imthiyaz Ahmed From: Paul de Prado Sent: Tuesday, April 24, 2012 10:00 AM To: Imthiyaz Ahmed Subject: FW: Automatically invoking ETL Hi Imthiyaz, Please comment on the points I raise below regarding the NOM ASDA Package processing. It appears as though we are redundantly running many steps for NOM ASDA on every file load. I do not believe this is really necessary. Can we consolidate the steps? I need an answer on this on Tuesday as Bill Baker needs the information for a project with Microsoft. Thanks, Paul From: Paul de Prado Sent: Tuesday, April 24, 2012 12:28 AM To: 'Bill Baker' Cc: Barrie Pike Subject: RE: Automatically invoking ETL Bill, Ideally, that would be the case for the example below that the out-dented packages run the indented packages below them. However, there are some exceptions driven by the retailers being inconsistent in file download availability. In the example below of NOM: NOM Morrison Package Processing kicks off all jobs indented below it once the Morrisons files are received. NOM ASDA Package Processing could kick off all jobs indented below it once all the ASDA files are received. However, in daily practice G4 India is kicking off file loads for each of the ASDA files as they are received to save time: * Sales file * Stock file * TraitedValid file * Waste file That said, the current flow shown in the logs for NOM ASDA is not as I would expect. I am going to review this process with Imthiyaz on Tuesday morning to determine which steps are being run redundantly, though. This should save time and possibly eliminate the need to do manual loads of NOM ASDA files to save time each day. I will update you on the answer. Thanks, Paul From: Bill Baker Sent: Monday, April 23, 2012 10:57 PM To: Paul de Prado Cc: Barrie Pike Subject: RE: Automatically invoking ETL Yeah, those are HCODEs, about the last remaining artifact of COM. Steve is getting me some documentation on the Task Manager, that's have the equation. My big mystery area is this: In a multi-part ETL, let's say the one below: * How many packages does the automation driver kick off? * Do the 'out-dented' packages run the indented packages below them? * How do we know that we're good to run the next package in the sequence? G4_NOM EPOS (Morrisons,
Re: [Neo4j] py2neo - GEOFF enhancements
Having played around with some ASCII art (quite good fun actually!) it is starting to feel more natural to re-order the index entries, so that the key:value part is both consistent with existing syntax and adjacent to the index reference. I have ended up with: # ADD ENTRY: # ensure node bert has an entry in index Scientists # where name = Einstein (bert)=|Scientists| {name: Einstein} Here I have altered the - arrow to = - these arrows have a different meaning to those used for relationships so it is fair to differentiate them visually. The reversal of order of the components not only feels more natural but also allows us to also produce things like: # REMOVE ENTRY: # ensure node bert does not have an entry in index Scientists # where tidy_hair = true (bert)!=|Scientists| {tidy_hair: true} # LOOKUP ENTRY: # define node bert as the (first?) entry in index Scientists # where name = Einstein (bert):=|Scientists| {name: Einstein} On a side note, I've also been pondering some built-in hook syntax which is slightly borrowed from XPath: # Built-in hook for reference node: {/}-[:THINGS]-(foo) # Built-in hooks for sub-reference nodes: {/THINGS}-[:THING]-(thing) WDYT? Nige *Nigel Small* Phone: +44 7814 638 246 Blog: http://nigelsmall.name/ GTalk: ni...@nigelsmall.name MSN: nasm...@live.co.uk Skype: technige Twitter: @technige https://twitter.com/#%21/technige LinkedIn: http://uk.linkedin.com/in/nigelsmall On 2 December 2011 01:02, Michael Hunger michael.hun...@neotechnology.comwrote: Peter and I have been discussing what interchange format we'd like to have for applications feeding data into a graph. And geoff seems to be quite a good choice. Modifying and accessing indexes (much like in-file-hooks) would be a part of that. So what I imagine is a set of connectors to outside services which are producing geoff which is then consumed by a server plugin (e.g. for hosted neo4j services on heroku). Much like STDIN and STDOUT between unix command line tools. Having a declarative format that aligns more with cypher is preferable to a imperative format like the REST API or Gremlin. That's why I would also like to look into aligning the syntax with the cypher syntax, actually I'm more fond of the iconographic syntax but there are some drawbacks on readability for people. That's some of the reasoning behind it. Cheers Michael Am 02.12.2011 um 01:49 schrieb Nigel Small: Hi Michael GEOFF was originally conceived as a graph serialisation format and, as such, was intended to represent a snapshot of entities at a particular point in time instead of, as you are discussing, a programmatic set of actions (add, replace, remove, etc). That said, these ideas are still worth exploring... First off, since hooks are the variables of GEOFF, it would seem consistent to use those for assigning the return values of index lookups and queries. Something like the following could be used to perform an index query, assign the result to a hook and use that hook to build a relationship: {foo} := |index| @ {key: value} {foo}-[:KNOWS]-(bar) Actually, since the index query may result in multiple returned entities, we might want to limit to the first item returned: {foo} := |index| @ {key:value} {foo.1}-[:KNOWS]-(bar) Using the other operators for adding, removing and replacing index entries, this would make... # add node bert to index at foo:bar |index| @ {foo: bar} += (bert) # remove node bert from index at foo:bar |index| @ {foo: bar} -= (bert) # replace node with bert in index at foo:bar |index| @ {foo: bar} := (bert) So essentially, we would be looking at at least the following requirements: 1. Allow hooks to hold multiple entities instead of just a single entity 2. Allow assignment to hooks 3. Implement an @ operator to allow inline index queries 4. Implement assignment, addition and removal operators to indexes These ideas would turn GEOFF into much more of a programming language than a notation for serialisation: a big change and one which would potentially require another significant rewrite. I'm not against doing this but I'm wondering if this is a valuable direction to go in and whether, if we were to do this, it would be better to start from first principles instead. Would this fill a gap that none of the other current options can? Cheers Nige *Nigel Small* Phone: +44 7814 638 246 Blog: http://nigelsmall.name/ GTalk: ni...@nigelsmall.name MSN: nasm...@live.co.uk Skype: technige Twitter: @technige https://twitter.com/#%21/technige LinkedIn: http://uk.linkedin.com/in/nigelsmall On 1 December 2011 21:47, Michael Hunger michael.hun...@neotechnology.comwrote: Nigel, is it possible to also do index-lookups in geoff? and use those as nodes or rels or even as hooks for later on? I'm also toying with two other ideas: #1 using indexes as the third
Re: [Neo4j] Neo4j Öresund meetup next Tuesday
Be there or be an empty array? I may start saying that just to confuse people :-) On 2 Dec 2011 09:30, Peter Neubauer peter.neuba...@neotechnology.com wrote: Everyone, the next Neo4j Öresund meetup is coming up next Tuesday. I think we might be able to show off some nice Heroku-Sinatra-GoogleCalc integration, too, along with some NOSQL war stories and beer, so be there or be [] ! http://www.meetup.com/Neo4j-Oresund/events/42155032/ Cheers, /peter neubauer GTalk: neubauer.peter Skype peter.neubauer Phone +46 704 106975 LinkedIn http://www.linkedin.com/in/neubauer Twitter http://twitter.com/peterneubauer brew install neo4j neo4j start heroku addons:add neo4j ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Standalone server and transactions
And with REST it is only available as a database plugin. And so what if it were? Writing a server plugin isn't hard - I knocked one up in an evening. It's just like writing a stored procedure, only with a different language. Not sure why so many seem to be clinging onto their RDBMS-coloured comfort blankets *Nigel Small* Phone: +44 7814 638 246 Blog: http://nigelsmall.name/ GTalk: ni...@nigelsmall.name MSN: nasm...@live.co.uk Skype: technige Twitter: @technige https://twitter.com/#%21/technige LinkedIn: http://uk.linkedin.com/in/nigelsmall On 2 December 2011 21:58, Jim Webber j...@neotechnology.com wrote: Doesn't matter how you play the words, you need transactions somewhere. And with REST it is only available as a database plugin. For most people it is just not worth the effort (especially who's not coming from Java background) and they will turn around. If you use the REST API as-is, you will get a single transaction per HTTP request. Neo4j is always transactional. Jim ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] REST API - always batch?
iCrud sounds more like what Apple fans will be asking for this Christmas. On 1 Dec 2011 14:46, jadell josh.ad...@gmail.com wrote: To toss my two cents in, I had been thinking about moving my REST library to use only batches for all CRUID operations. I've been putting it off, and I will probably drop the idea for now based on Jake's response. Jacob Hansson-2 wrote 1. There are limits to how large the results can be from a batch API call... 2. ...We have lots of ideas for how we can improve the current REST API (add full transactional support, massively improve throughput and latency)... Having real transactions via the REST API (a bit of an oxymoron?) would be most welcome. -- Josh PS, has anyone else used the acronym CRUID (Create Read Update Index Delete) to describe Neo4j operations? My other attempt was ICRUD but that sounds like the stuff you rub out of your eyes when you wake up in the morning. -- View this message in context: http://neo4j-community-discussions.438527.n3.nabble.com/Neo4j-REST-API-always-batch-tp3550568p3551739.html Sent from the Neo4j Community Discussions mailing list archive at Nabble.com. ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] py2neo - GEOFF enhancements
Hi Michael GEOFF was originally conceived as a graph serialisation format and, as such, was intended to represent a snapshot of entities at a particular point in time instead of, as you are discussing, a programmatic set of actions (add, replace, remove, etc). That said, these ideas are still worth exploring... First off, since hooks are the variables of GEOFF, it would seem consistent to use those for assigning the return values of index lookups and queries. Something like the following could be used to perform an index query, assign the result to a hook and use that hook to build a relationship: {foo} := |index| @ {key: value} {foo}-[:KNOWS]-(bar) Actually, since the index query may result in multiple returned entities, we might want to limit to the first item returned: {foo} := |index| @ {key:value} {foo.1}-[:KNOWS]-(bar) Using the other operators for adding, removing and replacing index entries, this would make... # add node bert to index at foo:bar |index| @ {foo: bar} += (bert) # remove node bert from index at foo:bar |index| @ {foo: bar} -= (bert) # replace node with bert in index at foo:bar |index| @ {foo: bar} := (bert) So essentially, we would be looking at at least the following requirements: 1. Allow hooks to hold multiple entities instead of just a single entity 2. Allow assignment to hooks 3. Implement an @ operator to allow inline index queries 4. Implement assignment, addition and removal operators to indexes These ideas would turn GEOFF into much more of a programming language than a notation for serialisation: a big change and one which would potentially require another significant rewrite. I'm not against doing this but I'm wondering if this is a valuable direction to go in and whether, if we were to do this, it would be better to start from first principles instead. Would this fill a gap that none of the other current options can? Cheers Nige *Nigel Small* Phone: +44 7814 638 246 Blog: http://nigelsmall.name/ GTalk: ni...@nigelsmall.name MSN: nasm...@live.co.uk Skype: technige Twitter: @technige https://twitter.com/#%21/technige LinkedIn: http://uk.linkedin.com/in/nigelsmall On 1 December 2011 21:47, Michael Hunger michael.hun...@neotechnology.comwrote: Nigel, is it possible to also do index-lookups in geoff? and use those as nodes or rels or even as hooks for later on? I'm also toying with two other ideas: #1 using indexes as the third primitive besides nodes and rels in geoff just with a different delimeter (e.g. | as you already have) #2 giving indexes a similar semantics as relationships to category nodes (which is the same for in-graph indexes, where the index-name is the category-type and indexed key-values are properties on the relationship or relationships) I'm not really satisfied with the syntaxes I came up with and would like to brainstorm that. |index| -{foo:bar} -(bert) some ideas for alternative index syntaxes #add |index:{foo:bar}|+={foo} # replace |index:{foo:bar}|={foo} # remove |index:{foo:bar}|-={foo} #query |index:{foo:bar}| -[:KNOWS]-(bert) |index:querystring| -[:KNOWS]-(bert) Am 01.12.2011 um 01:32 schrieb Nigel Small: Peter: I am happy with the current state of the neo4j-geoff code so feel it should be stable enough to adopt when you wish to do so. I have also made a couple of recent updates to the documentation, most notably the GEOFF.md file. Cheers Nige *Nigel Small* Phone: +44 7814 638 246 Blog: http://nigelsmall.name/ GTalk: ni...@nigelsmall.name MSN: nasm...@live.co.uk Skype: technige Twitter: @technige https://twitter.com/#%21/technige LinkedIn: http://uk.linkedin.com/in/nigelsmall On 29 November 2011 23:33, Michael Hunger michael.hun...@neotechnology.comwrote: #1 Thanks #2 You're probably right #3 You can do the index lookup outside and pass in the IndexHitsNode as being and Iterator #3 I rather thought of {name} for |people| - {name: {hook}} as a shortcut for that Michael But #2 and #3 are probably overkill anyway. Cheers Michael Am 29.11.2011 um 23:59 schrieb Nigel Small: Hi Michael Probably better to just return the full map and let the client code deal with it ? (If it isn't interested it would either just ignore the return result or discard it quickly). Done. Now works as: MapString,PropertyContainer entities = GEOFFLoader.loadIntoNeo4j(reader, db, hooks); Node nodeFoo = (Node) entities.get((foo)); Node nodeBar = (Node) entities.get((bar)); Intention behind longs, is when I get them from an external source then they can be used to be look up nodes during import. This can be done but not sure it's the right place... I'm cautious about using IDs directly as they aren't very portable. Also, it's not intuitive whether an ID is for a node or relationship. Would like to get a few votes on this - I'm happy to be outvoted if the consensus is to do it! Also can
Re: [Neo4j] py2neo - GEOFF enhancements
OK cool, that gives me some context. I'll put together some ideas over the next few days and we can compare notes :-) *Nigel Small* Phone: +44 7814 638 246 Blog: http://nigelsmall.name/ GTalk: ni...@nigelsmall.name MSN: nasm...@live.co.uk Skype: technige Twitter: @technige https://twitter.com/#%21/technige LinkedIn: http://uk.linkedin.com/in/nigelsmall On 2 December 2011 01:02, Michael Hunger michael.hun...@neotechnology.comwrote: Peter and I have been discussing what interchange format we'd like to have for applications feeding data into a graph. And geoff seems to be quite a good choice. Modifying and accessing indexes (much like in-file-hooks) would be a part of that. So what I imagine is a set of connectors to outside services which are producing geoff which is then consumed by a server plugin (e.g. for hosted neo4j services on heroku). Much like STDIN and STDOUT between unix command line tools. Having a declarative format that aligns more with cypher is preferable to a imperative format like the REST API or Gremlin. That's why I would also like to look into aligning the syntax with the cypher syntax, actually I'm more fond of the iconographic syntax but there are some drawbacks on readability for people. That's some of the reasoning behind it. Cheers Michael Am 02.12.2011 um 01:49 schrieb Nigel Small: Hi Michael GEOFF was originally conceived as a graph serialisation format and, as such, was intended to represent a snapshot of entities at a particular point in time instead of, as you are discussing, a programmatic set of actions (add, replace, remove, etc). That said, these ideas are still worth exploring... First off, since hooks are the variables of GEOFF, it would seem consistent to use those for assigning the return values of index lookups and queries. Something like the following could be used to perform an index query, assign the result to a hook and use that hook to build a relationship: {foo} := |index| @ {key: value} {foo}-[:KNOWS]-(bar) Actually, since the index query may result in multiple returned entities, we might want to limit to the first item returned: {foo} := |index| @ {key:value} {foo.1}-[:KNOWS]-(bar) Using the other operators for adding, removing and replacing index entries, this would make... # add node bert to index at foo:bar |index| @ {foo: bar} += (bert) # remove node bert from index at foo:bar |index| @ {foo: bar} -= (bert) # replace node with bert in index at foo:bar |index| @ {foo: bar} := (bert) So essentially, we would be looking at at least the following requirements: 1. Allow hooks to hold multiple entities instead of just a single entity 2. Allow assignment to hooks 3. Implement an @ operator to allow inline index queries 4. Implement assignment, addition and removal operators to indexes These ideas would turn GEOFF into much more of a programming language than a notation for serialisation: a big change and one which would potentially require another significant rewrite. I'm not against doing this but I'm wondering if this is a valuable direction to go in and whether, if we were to do this, it would be better to start from first principles instead. Would this fill a gap that none of the other current options can? Cheers Nige *Nigel Small* Phone: +44 7814 638 246 Blog: http://nigelsmall.name/ GTalk: ni...@nigelsmall.name MSN: nasm...@live.co.uk Skype: technige Twitter: @technige https://twitter.com/#%21/technige LinkedIn: http://uk.linkedin.com/in/nigelsmall On 1 December 2011 21:47, Michael Hunger michael.hun...@neotechnology.comwrote: Nigel, is it possible to also do index-lookups in geoff? and use those as nodes or rels or even as hooks for later on? I'm also toying with two other ideas: #1 using indexes as the third primitive besides nodes and rels in geoff just with a different delimeter (e.g. | as you already have) #2 giving indexes a similar semantics as relationships to category nodes (which is the same for in-graph indexes, where the index-name is the category-type and indexed key-values are properties on the relationship or relationships) I'm not really satisfied with the syntaxes I came up with and would like to brainstorm that. |index| -{foo:bar} -(bert) some ideas for alternative index syntaxes #add |index:{foo:bar}|+={foo} # replace |index:{foo:bar}|={foo} # remove |index:{foo:bar}|-={foo} #query |index:{foo:bar}| -[:KNOWS]-(bert) |index:querystring| -[:KNOWS]-(bert) Am 01.12.2011 um 01:32 schrieb Nigel Small: Peter: I am happy with the current state of the neo4j-geoff code so feel it should be stable enough to adopt when you wish to do so. I have also made a couple of recent updates to the documentation, most notably the GEOFF.md file. Cheers Nige *Nigel Small* Phone: +44 7814 638
Re: [Neo4j] py2neo - GEOFF enhancements
Peter: I am happy with the current state of the neo4j-geoff code so feel it should be stable enough to adopt when you wish to do so. I have also made a couple of recent updates to the documentation, most notably the GEOFF.md file. Cheers Nige *Nigel Small* Phone: +44 7814 638 246 Blog: http://nigelsmall.name/ GTalk: ni...@nigelsmall.name MSN: nasm...@live.co.uk Skype: technige Twitter: @technige https://twitter.com/#%21/technige LinkedIn: http://uk.linkedin.com/in/nigelsmall On 29 November 2011 23:33, Michael Hunger michael.hun...@neotechnology.comwrote: #1 Thanks #2 You're probably right #3 You can do the index lookup outside and pass in the IndexHitsNode as being and Iterator #3 I rather thought of {name} for |people| - {name: {hook}} as a shortcut for that Michael But #2 and #3 are probably overkill anyway. Cheers Michael Am 29.11.2011 um 23:59 schrieb Nigel Small: Hi Michael Probably better to just return the full map and let the client code deal with it ? (If it isn't interested it would either just ignore the return result or discard it quickly). Done. Now works as: MapString,PropertyContainer entities = GEOFFLoader.loadIntoNeo4j(reader, db, hooks); Node nodeFoo = (Node) entities.get((foo)); Node nodeBar = (Node) entities.get((bar)); Intention behind longs, is when I get them from an external source then they can be used to be look up nodes during import. This can be done but not sure it's the right place... I'm cautious about using IDs directly as they aren't very portable. Also, it's not intuitive whether an ID is for a node or relationship. Would like to get a few votes on this - I'm happy to be outvoted if the consensus is to do it! Also can hooks be used for index lookups? (Just asking) Are you thinking of something like {People:name=bert}? If so, this is quite a distance from where we are currently since every token can only refer to a single entity, whereas an index lookup could return multiple results. Nige *Nigel Small* Phone: +44 7814 638 246 Blog: http://nigelsmall.name/ GTalk: ni...@nigelsmall.name MSN: nasm...@live.co.uk Skype: technige Twitter: @technige https://twitter.com/#%21/technige LinkedIn: http://uk.linkedin.com/in/nigelsmall On 29 November 2011 22:09, Michael Hunger michael.hun...@neotechnology.comwrote: Hmm good question, that means the namespace keeps everything around until it is gc'ed ? Probably better to just return the full map and let the client code deal with it ? (If it isn't interested it would either just ignore the return result or discard it quickly). Intention behind longs, is when I get them from an external source then they can be used to be look up nodes during import. Also can hooks be used for index lookups? (Just asking) Thanks a lot Michael Am 29.11.2011 um 22:58 schrieb Nigel Small: Hi Michael Doesn't handle iterables (yet) but should be quite easy to add in. What purpose did you have behind longs? I've just committed a few new methods allowing the Neo4jNamespace returned from a loadIntoNeo4j call to be used to retrieve new entities by name (or a map of such). The new methods are: public Node getPreexistingNode(String name) public MapString, Node getPreexistingNodes(String... names) public Node getNewlyCreatedNode(String name) public MapString, Node getNewlyCreatedNodes(String... names) public Relationship getPreexistingRelationship(String name) public MapString, Relationship getPreexistingRelationships(String... names) public Relationship getNewlyCreatedRelationship(String name) public MapString, Relationship getNewlyCreatedRelationships(String... names) One of the tests in GraphDescriptionTest illustrates simple usage, thus: Neo4jNamespace ns = GEOFFLoader.loadIntoNeo4j(reader, db, hooks); Node nodeFoo = ns.getNewlyCreatedNode(foo); Node nodeBar = ns.getNewlyCreatedNode(bar); Hope this helps - I'll have a play with iterables next. Cheers Nige *Nigel Small* Phone: +44 7814 638 246 Blog: http://nigelsmall.name/ GTalk: ni...@nigelsmall.name MSN: nasm...@live.co.uk Skype: technige Twitter: @technige https://twitter.com/#%21/technige LinkedIn: http://uk.linkedin.com/in/nigelsmall On 29 November 2011 15:58, Michael Hunger michael.hun...@neotechnology.comwrote: does it also handle iterables of nodes/rels (and probably Longs?) while thinking about it it would be great if the loader could also return a map of variables of the things generated to be used further in processing that could also interesting for cascading geoff and/or cypher cool stuff big thanks michael mobile mail please excuse brevity and typos Am 29.11.2011 um 16:18 schrieb Peter Neubauer peter.neuba...@neotechnology.com: That sounds great! Let me know when you are stable, and I will see if I can do some more
[Neo4j] Batch URIs
Following on from the relative URI work that Jim is looking at, I was wondering if there was any way that the entity URIs used for RESTful batch requests could be made more discoverable or elegantly derivable? Currently the only way I'm aware of to calculate a relative node URI, for example, is to hack around parts of the full URI: self._relative_uri = .join(self._uri.partition(/node)[1:]) Basically here I'm looking for the substring /node within the full URI and taking everything from that point onwards as the relative part which I use to inject into a batch payload. This is obviously somewhat dependent on this hardcoded part never changing and doesn't feel particularly like the most elegant way to achieve this. Thoughts welcomed! *Nigel Small* Phone: +44 7814 638 246 Blog: http://nigelsmall.name/ GTalk: ni...@nigelsmall.name MSN: nasm...@live.co.uk Skype: technige Twitter: @technige https://twitter.com/#%21/technige LinkedIn: http://uk.linkedin.com/in/nigelsmall ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] py2neo - GEOFF enhancements
Hi Michael Doesn't handle iterables (yet) but should be quite easy to add in. What purpose did you have behind longs? I've just committed a few new methods allowing the Neo4jNamespace returned from a loadIntoNeo4j call to be used to retrieve new entities by name (or a map of such). The new methods are: public Node getPreexistingNode(String name) public MapString, Node getPreexistingNodes(String... names) public Node getNewlyCreatedNode(String name) public MapString, Node getNewlyCreatedNodes(String... names) public Relationship getPreexistingRelationship(String name) public MapString, Relationship getPreexistingRelationships(String... names) public Relationship getNewlyCreatedRelationship(String name) public MapString, Relationship getNewlyCreatedRelationships(String... names) One of the tests in GraphDescriptionTest illustrates simple usage, thus: Neo4jNamespace ns = GEOFFLoader.loadIntoNeo4j(reader, db, hooks); Node nodeFoo = ns.getNewlyCreatedNode(foo); Node nodeBar = ns.getNewlyCreatedNode(bar); Hope this helps - I'll have a play with iterables next. Cheers Nige *Nigel Small* Phone: +44 7814 638 246 Blog: http://nigelsmall.name/ GTalk: ni...@nigelsmall.name MSN: nasm...@live.co.uk Skype: technige Twitter: @technige https://twitter.com/#%21/technige LinkedIn: http://uk.linkedin.com/in/nigelsmall On 29 November 2011 15:58, Michael Hunger michael.hun...@neotechnology.comwrote: does it also handle iterables of nodes/rels (and probably Longs?) while thinking about it it would be great if the loader could also return a map of variables of the things generated to be used further in processing that could also interesting for cascading geoff and/or cypher cool stuff big thanks michael mobile mail please excuse brevity and typos Am 29.11.2011 um 16:18 schrieb Peter Neubauer peter.neuba...@neotechnology.com: That sounds great! Let me know when you are stable, and I will see if I can do some more on the server plugin side, so we can shoot in things there! 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, Nov 28, 2011 at 9:52 PM, Nigel Small ni...@nigelsmall.name wrote: Hi Peter Bulk of the work is now done on the Java version of the GEOFF enhancements. There have been some significant changes to the classes and a number of extra tests inserted. The signature of the load method has now been extended to: public static Neo4jNamespace loadIntoNeo4j(Reader reader, GraphDatabaseService graphDB, MapString, ? extends PropertyContainer hooks) ...where the final parameter expects a Map full of names Nodes/Relationships which may then be referenced from within the GEOFF source. Let me know how you get on and give me a shout if I've forgotten anything :-) Cheers Nige *Nigel Small* Phone: +44 7814 638 246 Blog: http://nigelsmall.name/ GTalk: ni...@nigelsmall.name MSN: nasm...@live.co.uk Skype: technige Twitter: @technige https://twitter.com/#%21/technige LinkedIn: http://uk.linkedin.com/in/nigelsmall On 23 November 2011 10:12, Peter Neubauer pe...@neubauer.se wrote: Looks great to me Nigel! I think this is a very good first step on parameters. Let me know when you are done with the Java code, would like to bring this into the @Graph annotations after our next milestone release, 1.6.M01. /peter On Tue, Nov 22, 2011 at 10:14 PM, Nigel Small ni...@nigelsmall.name wrote: Hi all I have just completed a set of GEOFF enhancements within py2neo (as yet only available from GitHub). Named parameters (hooks) and composite descriptors are now supported, please see the following sample file for an illustration of the new capabilites: https://github.com/nigelsmall/py2neo/blob/master/src/py2neo-examples/geoff/node-hooks.geoff In addition, a change has been made for index entries to use |foo| syntax instead of {foo} syntax as previously (although the old syntax will still work for now). Finally, there is a new wiki page detailing the current format in full: https://github.com/nigelsmall/py2neo/wiki/GEOFF I will now start planning the set of work required for the neo4j-geoff project to bring that up to the same level. Cheers Nige *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 ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] py2neo - GEOFF enhancements
Hi Michael Probably better to just return the full map and let the client code deal with it ? (If it isn't interested it would either just ignore the return result or discard it quickly). Done. Now works as: MapString,PropertyContainer entities = GEOFFLoader.loadIntoNeo4j(reader, db, hooks); Node nodeFoo = (Node) entities.get((foo)); Node nodeBar = (Node) entities.get((bar)); Intention behind longs, is when I get them from an external source then they can be used to be look up nodes during import. This can be done but not sure it's the right place... I'm cautious about using IDs directly as they aren't very portable. Also, it's not intuitive whether an ID is for a node or relationship. Would like to get a few votes on this - I'm happy to be outvoted if the consensus is to do it! Also can hooks be used for index lookups? (Just asking) Are you thinking of something like {People:name=bert}? If so, this is quite a distance from where we are currently since every token can only refer to a single entity, whereas an index lookup could return multiple results. Nige *Nigel Small* Phone: +44 7814 638 246 Blog: http://nigelsmall.name/ GTalk: ni...@nigelsmall.name MSN: nasm...@live.co.uk Skype: technige Twitter: @technige https://twitter.com/#%21/technige LinkedIn: http://uk.linkedin.com/in/nigelsmall On 29 November 2011 22:09, Michael Hunger michael.hun...@neotechnology.comwrote: Hmm good question, that means the namespace keeps everything around until it is gc'ed ? Probably better to just return the full map and let the client code deal with it ? (If it isn't interested it would either just ignore the return result or discard it quickly). Intention behind longs, is when I get them from an external source then they can be used to be look up nodes during import. Also can hooks be used for index lookups? (Just asking) Thanks a lot Michael Am 29.11.2011 um 22:58 schrieb Nigel Small: Hi Michael Doesn't handle iterables (yet) but should be quite easy to add in. What purpose did you have behind longs? I've just committed a few new methods allowing the Neo4jNamespace returned from a loadIntoNeo4j call to be used to retrieve new entities by name (or a map of such). The new methods are: public Node getPreexistingNode(String name) public MapString, Node getPreexistingNodes(String... names) public Node getNewlyCreatedNode(String name) public MapString, Node getNewlyCreatedNodes(String... names) public Relationship getPreexistingRelationship(String name) public MapString, Relationship getPreexistingRelationships(String... names) public Relationship getNewlyCreatedRelationship(String name) public MapString, Relationship getNewlyCreatedRelationships(String... names) One of the tests in GraphDescriptionTest illustrates simple usage, thus: Neo4jNamespace ns = GEOFFLoader.loadIntoNeo4j(reader, db, hooks); Node nodeFoo = ns.getNewlyCreatedNode(foo); Node nodeBar = ns.getNewlyCreatedNode(bar); Hope this helps - I'll have a play with iterables next. Cheers Nige *Nigel Small* Phone: +44 7814 638 246 Blog: http://nigelsmall.name/ GTalk: ni...@nigelsmall.name MSN: nasm...@live.co.uk Skype: technige Twitter: @technige https://twitter.com/#%21/technige LinkedIn: http://uk.linkedin.com/in/nigelsmall On 29 November 2011 15:58, Michael Hunger michael.hun...@neotechnology.comwrote: does it also handle iterables of nodes/rels (and probably Longs?) while thinking about it it would be great if the loader could also return a map of variables of the things generated to be used further in processing that could also interesting for cascading geoff and/or cypher cool stuff big thanks michael mobile mail please excuse brevity and typos Am 29.11.2011 um 16:18 schrieb Peter Neubauer peter.neuba...@neotechnology.com: That sounds great! Let me know when you are stable, and I will see if I can do some more on the server plugin side, so we can shoot in things there! 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, Nov 28, 2011 at 9:52 PM, Nigel Small ni...@nigelsmall.name wrote: Hi Peter Bulk of the work is now done on the Java version of the GEOFF enhancements. There have been some significant changes to the classes and a number of extra tests inserted. The signature of the load method has now been extended to: public static Neo4jNamespace loadIntoNeo4j(Reader reader, GraphDatabaseService graphDB, MapString, ? extends PropertyContainer hooks) ...where the final parameter expects a Map full of names Nodes/Relationships which may then be referenced from
Re: [Neo4j] py2neo - GEOFF enhancements
Hi Peter Bulk of the work is now done on the Java version of the GEOFF enhancements. There have been some significant changes to the classes and a number of extra tests inserted. The signature of the load method has now been extended to: public static Neo4jNamespace loadIntoNeo4j(Reader reader, GraphDatabaseService graphDB, MapString, ? extends PropertyContainer hooks) ...where the final parameter expects a Map full of names Nodes/Relationships which may then be referenced from within the GEOFF source. Let me know how you get on and give me a shout if I've forgotten anything :-) Cheers Nige *Nigel Small* Phone: +44 7814 638 246 Blog: http://nigelsmall.name/ GTalk: ni...@nigelsmall.name MSN: nasm...@live.co.uk Skype: technige Twitter: @technige https://twitter.com/#%21/technige LinkedIn: http://uk.linkedin.com/in/nigelsmall On 23 November 2011 10:12, Peter Neubauer pe...@neubauer.se wrote: Looks great to me Nigel! I think this is a very good first step on parameters. Let me know when you are done with the Java code, would like to bring this into the @Graph annotations after our next milestone release, 1.6.M01. /peter On Tue, Nov 22, 2011 at 10:14 PM, Nigel Small ni...@nigelsmall.name wrote: Hi all I have just completed a set of GEOFF enhancements within py2neo (as yet only available from GitHub). Named parameters (hooks) and composite descriptors are now supported, please see the following sample file for an illustration of the new capabilites: https://github.com/nigelsmall/py2neo/blob/master/src/py2neo-examples/geoff/node-hooks.geoff In addition, a change has been made for index entries to use |foo| syntax instead of {foo} syntax as previously (although the old syntax will still work for now). Finally, there is a new wiki page detailing the current format in full: https://github.com/nigelsmall/py2neo/wiki/GEOFF I will now start planning the set of work required for the neo4j-geoff project to bring that up to the same level. Cheers Nige *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 ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] spaces in entity properties?
Assuming Cypher then simply use backticks: WHERE person.`my age` 30 and person.`last name` = 'Luu' *Nigel Small* Phone: +44 7814 638 246 Blog: http://nigelsmall.name/ GTalk: ni...@nigelsmall.name MSN: nasm...@live.co.uk Skype: technige Twitter: @technige https://twitter.com/#%21/technige LinkedIn: http://uk.linkedin.com/in/nigelsmall On 28 November 2011 06:40, yobi johnny@yobistore.com wrote: That is great! Just a quick question: How do I use spaces in the queries? eg WHERE person.my age 30 and person.last name = 'Luu' Johnny On Mon, Nov 28, 2011 at 7:29 AM, Peter Neubauer [via Neo4j Community Discussions] ml-node+s438527n3541459...@n3.nabble.com wrote: You should be able to use any string including spaces as a property key. If you encounter problems then that is probably a bug. /peter Sent from my phone, please excuse typos and autocorrection. On Nov 28, 2011 6:33 AM, yobi [hidden email] http://user/SendEmail.jtp?type=nodenode=3541459i=0 wrote: Is it possible to have spaces in entity properties eg. first name: Foo Bar native language: Baz or do I have to use: first_name: Foo Bar native_language: Baz Thanks! -- View this message in context: http://neo4j-community-discussions.438527.n3.nabble.com/spaces-in-entity-properties-tp3541413p3541413.html Sent from the Neo4j Community Discussions mailing list archive at Nabble.com. ___ Neo4j mailing list [hidden email] http://user/SendEmail.jtp?type=nodenode=3541459i=1 https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list [hidden email] http://user/SendEmail.jtp?type=nodenode=3541459i=2 https://lists.neo4j.org/mailman/listinfo/user -- If you reply to this email, your message will be added to the discussion below: http://neo4j-community-discussions.438527.n3.nabble.com/spaces-in-entity-properties-tp3541413p3541459.html To unsubscribe from spaces in entity properties?, click here http://neo4j-community-discussions.438527.n3.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_codenode=3541413code=am9obm55Lmx1dUB5b2Jpc3RvcmUuY29tfDM1NDE0MTN8LTkxMTg4MTEwMw== . NAML http://neo4j-community-discussions.438527.n3.nabble.com/template/NamlServlet.jtp?macro=macro_viewerid=instant_html%21nabble%3Aemail.namlbase=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.InstantMailNamespacebreadcrumbs=instant+emails%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml -- View this message in context: http://neo4j-community-discussions.438527.n3.nabble.com/spaces-in-entity-properties-tp3541413p3541490.html Sent from the Neo4j Community Discussions mailing list archive at Nabble.com. ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Network accessible hostname
Changing the REST API to only use relative URIs would have a significant effect on py2neo. Is this likely to happen? However, if absolute and relative URIs are both published (or base URI + relative part), that could be very helpful when working with batches as it could undo some of my more contrived code :-) *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 25 November 2011 16:47, Jacob Hansson jacob.hans...@neotechnology.comwrote: I thought there already was an issue for this? The problem is that the REST API advertises absolute URLs, and it would be fixed if we change the API to use relative URLs. Jake On Nov 25, 2011 4:13 PM, Peter Neubauer peter.neuba...@neotechnology.com wrote: Clay, I think that is something we need to check next week, and probably make an issue to run the Webadmin etc with relative URLs as absolute URLs can be a pain. Would that help for your case? Cheers, /peter neubauer GTalk: neubauer.peter Skype peter.neubauer Phone +46 704 106975 LinkedIn http://www.linkedin.com/in/neubauer Twitter http://twitter.com/peterneubauer http://www.neo4j.org - NOSQL for the Enterprise. http://startupbootcamp.org/- Öresund - Innovation happens HERE. On Thu, Nov 24, 2011 at 9:54 PM, Clay Monkus c...@intelligentbuildings.comwrote: I am a newbie with Neo4j, so any help is appreciated. I have tried many different configuration options regarding the server's complete URL for neo4j, but the application does not seem to honor those configuration changes. This can be seen by going to: http://my.site.com/webadmin/#/data/search/0/ which indicates that it is trying to connect to: http://j2ee.my.site.com:7474/db/data/node/0, which is local. Per a suggestion on the neo4j fora, I have made the following changes to the configuration: *** # REST endpoint for the data API # Note the / in the end is mandatory org.neo4j.server.webadmin.data.uri=http://my.site.com/db/data/ # REST endpoint of the administration API (used by Webadmin) org.neo4j.server.webadmin.management.uri=http://my.site.com/db/manage/ *** Allegedly, using the full URI should allow the admin panel to communicate with the backend. However, per the logs, the application is not picking up these configuration changes after restart: *** *** 2011-11-22 08:34:07.549-0600: --- SERVER STARTUP START --- 2011-11-22 08:34:07.549-0600: Server configuration: 2011-11-22 08:34:07.551-0600: org.neo4j.server.database.location = data/graph.db 2011-11-22 08:34:07.552-0600: org.neo4j.server.webserver.port = 7474 2011-11-22 08:34:07.552-0600: org.neo4j.server.webserver.address = 127.0.0.106 2011-11-22 08:34:07.552-0600: org.neo4j.server.webadmin.rrdb.location = data/rrd 2011-11-22 08:34:07.552-0600: org.neo4j.server.db.tuning.properties = conf/neo4j.properties 2011-11-22 08:34:07.552-0600: org.neo4j.server.webadmin.management.uri = /db/manage/ 2011-11-22 08:34:07.552-0600: org.neo4j.server.webadmin.data.uri = /db/data/ 2011-11-22 08:34:07.575-0600: Mounted discovery module (org.neo4j.server.rest.discovery) at: / 2011-11-22 08:34:07.613-0600: Loaded server plugin CypherPlugin (org.neo4j.server.plugin.cypher.CypherPlugin) 2011-11-22 08:34:07.614-0600: GraphDatabaseService.execute_query: execute a query 2011-11-22 08:34:07.615-0600: Loaded server plugin GremlinPlugin (org.neo4j.server.plugin.gremlin.GremlinPlugin) 2011-11-22 08:34:07.615-0600: GraphDatabaseService.execute_script: execute a Gremlin script with 'g' set to the Neo4jGraph and 'results' containing the results. Only results of one object type is supported. 2011-11-22 08:34:07.615-0600: Mounted REST API at: /db/data/ 2011-11-22 08:34:07.616-0600: Mounted management API at: /db/manage/ 2011-11-22 08:34:07.653-0600: Mounted webadmin at: /webadmin 2011-11-22 08:34:09.084-0600: Server started on: http://127.0.0.106:7474/ 2011-11-22 08:34:09.085-0600: --- SERVER STARTUP END --- *** As you can see in those logs, neither the data URI nor the web management URI have updated to the settings that I placed in the configuration file: *** 2011-11-22 08:34:07.552-0600: org.neo4j.server.webadmin.management.uri = /db/manage/ 2011-11-22 08:34:07.552-0600: org.neo4j.server.webadmin.data.uri = /db/data/ *** They should show the full URL, namely, http://my.site.com/db/manage/and http://my.site.com/db/data/, respectively. Do you have any suggestions regarding the configuration? Thanks, Clay Monkus Director of Technology Intelligent Buildings c...@intelligentbuildings.com
[Neo4j] py2neo - GEOFF enhancements
Hi all I have just completed a set of GEOFF enhancements within py2neo (as yet only available from GitHub). Named parameters (hooks) and composite descriptors are now supported, please see the following sample file for an illustration of the new capabilites: https://github.com/nigelsmall/py2neo/blob/master/src/py2neo-examples/geoff/node-hooks.geoff In addition, a change has been made for index entries to use |foo| syntax instead of {foo} syntax as previously (although the old syntax will still work for now). Finally, there is a new wiki page detailing the current format in full: https://github.com/nigelsmall/py2neo/wiki/GEOFF I will now start planning the set of work required for the neo4j-geoff project to bring that up to the same level. Cheers Nige *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 ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Neo4j upcoming features importance poll
How about something like Wufoo? http://www.wufoo.com/ http://www.wufoo.com/ *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 19 November 2011 18:45, Peter Neubauer peter.neuba...@neotechnology.comwrote: I really like this. Is there any other transparent public method you poll, like a Google form that everyone can edit? On Nov 19, 2011 7:19 PM, Pablo Pareja ppar...@era7.com wrote: I just added a link for every possible upcoming feature and created an issue for those which didn't have one so far. Sorry for those who voted already but since the options changed, their vote was lost, could you please vote again? From now on every time we add a new feature to the poll we should create its respective issue before adding it. At least, whenever a new option is added, the votes for the rest of options are conserved, so we should be able update our votes just adding our vote (or not) to the new ones. Sorry for the inconvenience! Pablo On Sat, Nov 19, 2011 at 5:21 PM, Pablo Pareja ppar...@era7.com wrote: Ok, I just did that for the first one; the bad thing about this is that every time I edit one of the options, all the votes cast for it get lost and you have to edit your vote again... So maybe from now on I'd be better adding new features to the poll only once their respective issues has been risen in github. What do you think? Pablo On Sat, Nov 19, 2011 at 5:16 PM, Pablo Pareja ppar...@era7.com wrote: Yeah that'd be cool, if you give me the links I can put them as part of the options themselves (with bit.ly or something like that). Cheers, Pablo On Sat, Nov 19, 2011 at 1:30 PM, Peter Neubauer peter.neuba...@neotechnology.com wrote: Guys, This is great! Could you raise issues for these and we mitigate missing voting on Github with this, linking back to github for discussion? On Nov 19, 2011 1:09 PM, Pablo Pareja ppar...@era7.com wrote: @Linan get_or_create feature added ;) @Mattias I mean being required to specify a node type at creation time, (as how things are right now with relationships) On Sat, Nov 19, 2011 at 1:01 PM, Mattias Persson matt...@neotechnology.comwrote: hat exactly does mandatory node types mean? 2011/11/19 Pablo Pareja ppar...@era7.com Hi all, I was thinking it'd be cool to create a sort of a poll in order to know which features (that are missing right now...) are the most important ones for the community. I just did a quick google search for free online poll creation platforms and found doodle site, (btw do you know a better site to do this?). The address for the poll is: http://www.doodle.com/wg8k77vwq6b654bv So far I just added three features that came to my mind while I was creating it, so please say which features you're missing and I'll add them so that we can all vote for them or not. What do you think about all this? Cheers, Pablo -- Pablo Pareja Tobes My site http://about.me/pablopareja LinkedInhttp://www.linkedin.com/in/pabloparejatobes Twitter http://www.twitter.com/pablopareja Creator of Bio4j -- http://www.bio4j.com http://www.ohnosequences.com ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user -- Mattias Persson, [matt...@neotechnology.com] Hacker, Neo Technology www.neotechnology.com ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user -- Pablo Pareja Tobes My site http://about.me/pablopareja LinkedInhttp://www.linkedin.com/in/pabloparejatobes Twitter http://www.twitter.com/pablopareja Creator of Bio4j -- http://www.bio4j.com http://www.ohnosequences.com ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user -- Pablo Pareja Tobes My site http://about.me/pablopareja LinkedInhttp://www.linkedin.com/in/pabloparejatobes Twitter http://www.twitter.com/pablopareja Creator of Bio4j -- http://www.bio4j.com http://www.ohnosequences.com -- Pablo Pareja Tobes My site http
Re: [Neo4j] Neo4j upcoming features importance poll
Actually sounds like we may have finally found a use for Google Wave! :-P On 19 Nov 2011 13:09, Pablo Pareja ppar...@era7.com wrote: Yeah it'd be great having something more wiki-like that everyone could edit. I have no idea though about how could this be done Any ideas? Pablo On Sat, Nov 19, 2011 at 7:54 PM, Nigel Small ni...@nigelsmall.name wrote: How about something like Wufoo? http://www.wufoo.com/ http://www.wufoo.com/ *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 19 November 2011 18:45, Peter Neubauer peter.neuba...@neotechnology.comwrote: I really like this. Is there any other transparent public method you poll, like a Google form that everyone can edit? On Nov 19, 2011 7:19 PM, Pablo Pareja ppar...@era7.com wrote: I just added a link for every possible upcoming feature and created an issue for those which didn't have one so far. Sorry for those who voted already but since the options changed, their vote was lost, could you please vote again? From now on every time we add a new feature to the poll we should create its respective issue before adding it. At least, whenever a new option is added, the votes for the rest of options are conserved, so we should be able update our votes just adding our vote (or not) to the new ones. Sorry for the inconvenience! Pablo On Sat, Nov 19, 2011 at 5:21 PM, Pablo Pareja ppar...@era7.com wrote: Ok, I just did that for the first one; the bad thing about this is that every time I edit one of the options, all the votes cast for it get lost and you have to edit your vote again... So maybe from now on I'd be better adding new features to the poll only once their respective issues has been risen in github. What do you think? Pablo On Sat, Nov 19, 2011 at 5:16 PM, Pablo Pareja ppar...@era7.com wrote: Yeah that'd be cool, if you give me the links I can put them as part of the options themselves (with bit.ly or something like that). Cheers, Pablo On Sat, Nov 19, 2011 at 1:30 PM, Peter Neubauer peter.neuba...@neotechnology.com wrote: Guys, This is great! Could you raise issues for these and we mitigate missing voting on Github with this, linking back to github for discussion? On Nov 19, 2011 1:09 PM, Pablo Pareja ppar...@era7.com wrote: @Linan get_or_create feature added ;) @Mattias I mean being required to specify a node type at creation time, (as how things are right now with relationships) On Sat, Nov 19, 2011 at 1:01 PM, Mattias Persson matt...@neotechnology.comwrote: hat exactly does mandatory node types mean? 2011/11/19 Pablo Pareja ppar...@era7.com Hi all, I was thinking it'd be cool to create a sort of a poll in order to know which features (that are missing right now...) are the most important ones for the community. I just did a quick google search for free online poll creation platforms and found doodle site, (btw do you know a better site to do this?). The address for the poll is: http://www.doodle.com/wg8k77vwq6b654bv So far I just added three features that came to my mind while I was creating it, so please say which features you're missing and I'll add them so that we can all vote for them or not. What do you think about all this? Cheers, Pablo -- Pablo Pareja Tobes My site http://about.me/pablopareja LinkedInhttp://www.linkedin.com/in/pabloparejatobes Twitter http://www.twitter.com/pablopareja Creator of Bio4j -- http://www.bio4j.com http://www.ohnosequences.com ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user -- Mattias Persson, [matt...@neotechnology.com] Hacker, Neo Technology www.neotechnology.com ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user -- Pablo Pareja Tobes My site http://about.me/pablopareja LinkedInhttp://www.linkedin.com/in/pabloparejatobes Twitter http://www.twitter.com/pablopareja Creator of Bio4j -- http
Re: [Neo4j] py2neo 0.982
Hi Krzysztof Yes, certainly looks like it's a bug, however I'm convinced this has changed from the original REST docs on which I based this code. Can't find a copy though and since your fix looks to apply to both 1.4 and 1.5 then consider it merged! Thanks for your help :-) Nige *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 2011/11/15 Krzysztof Raczyński racz...@gmail.com First off, thanks for py2neo. I think i found a bug that prevents from using javascript filters when traversing over rest: http://py2neo.org/docs/api/py2neo.neo4j-pysrc.html#TraversalDescription.filter Instead of body, key is named name. Since you're on vacation i've taken justice of sending you a pull request over on github with proposed fix. Enjoy your chillaxing. ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] py2neo 0.982
So that we can support both, I've made some further changes to the TraversalDescription class. I have replaced prune and filter with: builtin_prune_evaluator(self, name) prune_evaluator(self, language, body) builtin_return_filter(self, name) return_filter(self, language, body) This does break some backward compatibility with the methods but does provide more clarity than the original. I'm also aware that some of this has been deprecated within the core API; however, since this does not yet appear to be reflected within the REST API, this is probably the best option for now. WRT your suggestion for the Node class: I'm happy to consider it but will need to read up more on the JPype bindings as I'm not familiar with them. Could you submit an issue, preferably containing a link to docs describing the interface you describe, and I'll have a proper look. Cheers *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 2011/11/15 Krzysztof Raczyński racz...@gmail.com No problem, on the other hand the name parameter is still valid, since there are two named filters: all and all_but_start_node, and whatever filters someone may add themselves. I also have one issue with Node class, i really like the way original JPype bindings work - i.e. i can use node.loves(cake, how='deeply') to define a relationship, and also properties are easily accessible like class members. This could be easily implemented with some dose of __getattr__ magic, and pretty easily too. Question is wether such change in API would be accepted? Also, automatic binding of properties to node instances would be awesome too. Please let me know if you are interested, i'd gladly help. ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] py2neo 0.982
Hi Krzysztof Having looked at your Pull Request, I can see that your syntax certainly provides a easy and readable way to create relationships to nodes. However, I have a couple of reservations: 1. This essentially uses a get operation to carry out a write behind the scenes. I would generally try to avoid something which is intuitively read-only from having side-effects such as this. 2. Using the __getattr__ method in this way precludes using it to access Node properties which is, arguably, the more obvious use (even though __getitem__ is already used here). I don't entirely dislike the idea but given this is really just syntactic sugar, I'd like to hear other's opinions on this. The new prune/filter methods aren't restricted purely to JavaScript: they now simply have built-in and custom variants with clearer naming. My philosophy is generally to swing towards longer/clearer and more descriptive names as opposed to trying to save a few keystrokes and making one function do multiple things. Cheers *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 2011/11/16 Krzysztof Raczyński racz...@gmail.com No need to, i submitted a pull request with that change. I will also submit my proposed index syntax changes. I'm no good at git, so i may or may not screw this up. As far as changes you wrote about, i think we should move it to one method, and rely on arguments supplied by user to know which prune/filter to use. Also, are there any other language options besides javascript for evaluators? Cheers ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] py2neo 0.982
Hi Michael Completely agree on named parameters - I'd like to support both named and positional - both have advantages. I also like the idea of the {foo} syntax as consistency with Cypher is what I have tried to provide all along here. I actually don't believe that it will be confusing with JSON (even with the composite descriptor syntax) but this notation is unfortunately already used by the index entry syntax: {my_index}-(my_node) Having said that, this clash doesn't have to give us a major problem. We could deprecate the existing index entry syntax (possibly maintaining backward compatibility for a while with a bit of regex jiggery-pokery) and replace it with something new, such as: my_index-(my_node) or |my_index|-(my_node) Back to parameters. There's an amazing amount of strength in the concept of multiple entities specified by a single token so agree that we should look further into that. Behind the scenes, it should be simple enough to add multiple entries when one of these is encountered, by iterating through the items. Even more Interesting with something like: {parents}-[:PARENT_OF]-{children} which could break down to: (father)-[:PARENT_OF]-(child1) (father)-[:PARENT_OF]-(child2) (mother)-[:PARENT_OF]-(child1) (mother)-[:PARENT_OF]-(child2) The comma syntax, again, looks very useful. Would this lead to us wanting some form of pattern matching as well? *(dad) {name:Nigel}**(son1) {name:Joshua}**(son2) {name:Stephen}**(dad)-[:FATHER_OF]-(son*)**(son*) {lastname,Small)* * * *Cheers* *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 12 November 2011 05:44, Michael Hunger michael.hun...@neotechnology.comwrote: Nigel, Sounds good, although I'd rather have named parameters as well, otherwise parameter indexes will easily get unwieldy. I would like to propose to use the same syntax cypher uses for parameters (that's also the syntax used by the batch-inserter) aka. {0} and {name} (dad)-[:FATHER_OF]-(son2) {1}-[:FAMILY]-(dad) Might be a bit confusing wrt the json, But I want consistency :) Interesting part would also be when those parameters not only refer to a single node or relationship but an collections of those. So one could take the output of a traversal or cypher query (with aliases or position) and pass them into the geoff reader which then connects or updates all of them appropriately. Allowing us to do mass-updates or structural connections in one go. (dad)-[:FATHER_OF]-{children} {children} {lastname : Small} Btw. that reminds me of a version of the geoff syntax that might compact many files: (dad) {name:Nigel} (son1) {name:Joshua} (son2) {name:Stephen} (dad)-[:FATHER_OF]-(son1,son2) (son1,son2) {lastname,Small) Michael Am 12.11.2011 um 00:07 schrieb Nigel Small: Hi Peter Imagine we are trying to inject a simple graph, such as the following: (dad) {name:Nigel} (son1) {name:Joshua} (son2) {name:Stephen} (dad)-[:FATHER_OF]-(son1) (dad)-[:FATHER_OF]-(son2) Currently, this would be loaded into graphspace without any attachment to existing structures; a join would have to be made *after* the load. If we instead consider parameterising the load, e.g. loadIntoNeo4j(reader, graphDB, someNode, otherNode, ...), we can reference the supplied nodes from within the GEOFF data. I think that ($n) notation would be quite useful here as it is already familiar from bash etc. This might therefore turn the above subgraph into: * (dad) {name:Nigel} (son1) {name:Joshua} (son2) {name:Stephen} (dad)-[:FATHER_OF]-(son1) (dad)-[:FATHER_OF]-(son2) ($1)-[:FAMILY]-(dad) ...such that ($1) refers to the first supplied parameter, ($2) would be the second and so on. ($0) could possibly refer to the reference node of the destination graph, by definition. Hope this makes sense! What do you reckon? * *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 11 November 2011 22:10, Peter Neubauer peter.neuba...@neotechnology.comwrote: Nigel, On Thu, Nov 10, 2011 at 11:01 PM, Nigel Small ni...@nigelsmall.name wrote: We could possibly create some form of syntax which would designate a this node, e.g. (@). This could allow a file to reference it's external context, in this case the node to which we are submitting the subgraph. What would this look like? /peter ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User
Re: [Neo4j] py2neo 0.982
...noticed my last example didn't render properly, Should have been: (dad) {name:Nigel} (son1) {name:Joshua} (son2) {name:Stephen} (dad)-[:FATHER_OF]-(son*) (son*) {lastname,Small) Hope that works this time! * * *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 12 November 2011 11:26, Nigel Small ni...@nigelsmall.name wrote: Hi Michael Completely agree on named parameters - I'd like to support both named and positional - both have advantages. I also like the idea of the {foo} syntax as consistency with Cypher is what I have tried to provide all along here. I actually don't believe that it will be confusing with JSON (even with the composite descriptor syntax) but this notation is unfortunately already used by the index entry syntax: {my_index}-(my_node) Having said that, this clash doesn't have to give us a major problem. We could deprecate the existing index entry syntax (possibly maintaining backward compatibility for a while with a bit of regex jiggery-pokery) and replace it with something new, such as: my_index-(my_node) or |my_index|-(my_node) Back to parameters. There's an amazing amount of strength in the concept of multiple entities specified by a single token so agree that we should look further into that. Behind the scenes, it should be simple enough to add multiple entries when one of these is encountered, by iterating through the items. Even more Interesting with something like: {parents}-[:PARENT_OF]-{children} which could break down to: (father)-[:PARENT_OF]-(child1) (father)-[:PARENT_OF]-(child2) (mother)-[:PARENT_OF]-(child1) (mother)-[:PARENT_OF]-(child2) The comma syntax, again, looks very useful. Would this lead to us wanting some form of pattern matching as well? *(dad) {name:Nigel}**(son1) {name:Joshua}**(son2) {name:Stephen}**(dad)-[:FATHER_OF]-(son*)**(son*) {lastname,Small)* * * *Cheers* *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 12 November 2011 05:44, Michael Hunger michael.hun...@neotechnology.com wrote: Nigel, Sounds good, although I'd rather have named parameters as well, otherwise parameter indexes will easily get unwieldy. I would like to propose to use the same syntax cypher uses for parameters (that's also the syntax used by the batch-inserter) aka. {0} and {name} (dad)-[:FATHER_OF]-(son2) {1}-[:FAMILY]-(dad) Might be a bit confusing wrt the json, But I want consistency :) Interesting part would also be when those parameters not only refer to a single node or relationship but an collections of those. So one could take the output of a traversal or cypher query (with aliases or position) and pass them into the geoff reader which then connects or updates all of them appropriately. Allowing us to do mass-updates or structural connections in one go. (dad)-[:FATHER_OF]-{children} {children} {lastname : Small} Btw. that reminds me of a version of the geoff syntax that might compact many files: (dad) {name:Nigel} (son1) {name:Joshua} (son2) {name:Stephen} (dad)-[:FATHER_OF]-(son1,son2) (son1,son2) {lastname,Small) Michael Am 12.11.2011 um 00:07 schrieb Nigel Small: Hi Peter Imagine we are trying to inject a simple graph, such as the following: (dad) {name:Nigel} (son1) {name:Joshua} (son2) {name:Stephen} (dad)-[:FATHER_OF]-(son1) (dad)-[:FATHER_OF]-(son2) Currently, this would be loaded into graphspace without any attachment to existing structures; a join would have to be made *after* the load. If we instead consider parameterising the load, e.g. loadIntoNeo4j(reader, graphDB, someNode, otherNode, ...), we can reference the supplied nodes from within the GEOFF data. I think that ($n) notation would be quite useful here as it is already familiar from bash etc. This might therefore turn the above subgraph into: * (dad) {name:Nigel} (son1) {name:Joshua} (son2) {name:Stephen} (dad)-[:FATHER_OF]-(son1) (dad)-[:FATHER_OF]-(son2) ($1)-[:FAMILY]-(dad) ...such that ($1) refers to the first supplied parameter, ($2) would be the second and so on. ($0) could possibly refer to the reference node of the destination graph, by definition. Hope this makes sense! What do you reckon? * *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 11 November 2011 22:10, Peter Neubauer peter.neuba...@neotechnology.comwrote: Nigel
Re: [Neo4j] py2neo 0.982
Yep, absolutely. Probably won't get a lot done this week though as I'm on holiday in México at the moment and don't have much in the way of dev kit, plus the wireless is a little flaky. That said, I'll start poking it if I get the time and see how far I get. So in summary, assuming we are going to allow passing both nodes and relationships as parameters, the bits I'll look at adding will be as follows: - positional/named parameter capabilities for the load method (each parameter can designate a Node or Relationship) - support for embedding parameterised Nodes within GEOFF relationship descriptors: (node1)-[rname:rtype]-(node2) (node1)-[rname:rtype]-{param} {param}-[rname:rtype]-{param} {param}-[rname:rtype]-(node2) (May throw WrongParameterTypeException if start or end node param is actually a Relationship) - new syntax allowing properties to be assigned to parameterised entities (Nodes or Relationships): {param} {key:value, key:value, ...} - alteration to existing index entry syntax to move away from braces (although possibly maintaining backward compatibility): |index|-(node) {key:value} |index|-[rel] {key:value} - new syntax allowing index entries for parameterised entities: |index|-{param} {key:value} Agreed? *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 12 November 2011 21:14, Peter Neubauer peter.neuba...@neotechnology.comwrote: Hi there, I think prototyping a parameter approach to start with would be great! Nigel, you up for it? Cheers, /peter neubauer GTalk: neubauer.peter Skype peter.neubauer Phone +46 704 106975 LinkedIn http://www.linkedin.com/in/neubauer Twitter http://twitter.com/peterneubauer http://www.neo4j.org - NOSQL for the Enterprise. http://startupbootcamp.org/- Öresund - Innovation happens HERE. On Sat, Nov 12, 2011 at 12:30 PM, Nigel Small ni...@nigelsmall.name wrote: ...noticed my last example didn't render properly, Should have been: (dad) {name:Nigel} (son1) {name:Joshua} (son2) {name:Stephen} (dad)-[:FATHER_OF]-(son*) (son*) {lastname,Small) Hope that works this time! * * *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 12 November 2011 11:26, Nigel Small ni...@nigelsmall.name wrote: Hi Michael Completely agree on named parameters - I'd like to support both named and positional - both have advantages. I also like the idea of the {foo} syntax as consistency with Cypher is what I have tried to provide all along here. I actually don't believe that it will be confusing with JSON (even with the composite descriptor syntax) but this notation is unfortunately already used by the index entry syntax: {my_index}-(my_node) Having said that, this clash doesn't have to give us a major problem. We could deprecate the existing index entry syntax (possibly maintaining backward compatibility for a while with a bit of regex jiggery-pokery) and replace it with something new, such as: my_index-(my_node) or |my_index|-(my_node) Back to parameters. There's an amazing amount of strength in the concept of multiple entities specified by a single token so agree that we should look further into that. Behind the scenes, it should be simple enough to add multiple entries when one of these is encountered, by iterating through the items. Even more Interesting with something like: {parents}-[:PARENT_OF]-{children} which could break down to: (father)-[:PARENT_OF]-(child1) (father)-[:PARENT_OF]-(child2) (mother)-[:PARENT_OF]-(child1) (mother)-[:PARENT_OF]-(child2) The comma syntax, again, looks very useful. Would this lead to us wanting some form of pattern matching as well? *(dad) {name:Nigel}**(son1) {name:Joshua}**(son2) {name:Stephen}**(dad)-[:FATHER_OF]-(son*)**(son*) {lastname,Small)* * * *Cheers* *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 12 November 2011 05:44, Michael Hunger michael.hun...@neotechnology.com wrote: Nigel, Sounds good, although I'd rather have named parameters as well, otherwise parameter indexes will easily get unwieldy. I would like to propose to use the same syntax cypher uses for parameters (that's also the syntax used by the batch-inserter) aka. {0} and {name} (dad)-[:FATHER_OF]-(son2) {1}-[:FAMILY]-(dad) Might be a bit
Re: [Neo4j] Contributors section in the manual
Are you looking for info on associated projects like py2neo or direct contributions to the main code base? On a side note, I've been getting quite a few hits to my blog post on pagination in Neo4j. The bits I wrote for that are all Python/py2neo again but that or something similar might be worth including somewhere on the Neo site as it appears to be a reasonably sought-after topic. Cheers *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 12 November 2011 20:40, Peter Neubauer peter.neuba...@neotechnology.comwrote: Hi guys, I would love to add a section on contributors to the Neo4j Manual, in http://docs.neo4j.org/chunked/snapshot/community.html so that all of you that participate in the process can be found in there. Do you have any suggestions on how to present this, that is - what info, links and maybe a short presentation snippets and pictures? Graph to components or simply a table? Thoughts? 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. ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] py2neo 0.982
Hi Peter Imagine we are trying to inject a simple graph, such as the following: (dad) {name:Nigel} (son1) {name:Joshua} (son2) {name:Stephen} (dad)-[:FATHER_OF]-(son1) (dad)-[:FATHER_OF]-(son2) Currently, this would be loaded into graphspace without any attachment to existing structures; a join would have to be made *after* the load. If we instead consider parameterising the load, e.g. loadIntoNeo4j(reader, graphDB, someNode, otherNode, ...), we can reference the supplied nodes from within the GEOFF data. I think that ($n) notation would be quite useful here as it is already familiar from bash etc. This might therefore turn the above subgraph into: * (dad) {name:Nigel} (son1) {name:Joshua} (son2) {name:Stephen} (dad)-[:FATHER_OF]-(son1) (dad)-[:FATHER_OF]-(son2) ($1)-[:FAMILY]-(dad) ...such that ($1) refers to the first supplied parameter, ($2) would be the second and so on. ($0) could possibly refer to the reference node of the destination graph, by definition. Hope this makes sense! What do you reckon? * *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 11 November 2011 22:10, Peter Neubauer peter.neuba...@neotechnology.comwrote: Nigel, On Thu, Nov 10, 2011 at 11:01 PM, Nigel Small ni...@nigelsmall.name wrote: We could possibly create some form of syntax which would designate a this node, e.g. (@). This could allow a file to reference it's external context, in this case the node to which we are submitting the subgraph. What would this look like? /peter ___ 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] py2neo 0.982
Hi all Have just released a small but hopefully significant (performance-wise) upgrade to py2neo: a rewrite to geoff.py which submits the entire set of data in a single self-referential batch. Available from GitHub and PyPI. Cheers * * *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 ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Batch Throughput
Ooops!! Hadn't set configuration params for 1.5! Much faster now :-) * * *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 7 November 2011 21:18, Nigel Small ni...@nigelsmall.name wrote: Hello Neoforgers... Does anyone have any stats for the rate at which batch jobs are executed? I am working with a py2neo/GEOFF user to look at memory usage and performance for some very large jobs (working towards millions of entities) and am currently running a test which attempts to create around 21,000 nodes in a single batch. From what I can tell, the POST payload is pretty quick to create but the whole process slows down considerably on submission. Watching the dashboard shows nodes steadily being created but not at the rate I'd hope for. Any thoughts? * * *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 ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Cypher-Pickle?
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
Re: [Neo4j] Cypher-Pickle?
Also agree. Using several illustrative symbols instead of one cryptic one adds a considerable amount of readability as the expense of negligible overhead. Since the - sequence is also used in C as a pointer operator, it's nothing new. * * *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 4 November 2011 20:36, Tero Paananen tpp.paana...@gmail.com wrote: I'd say the strongest part of Cypher is the ascii art pattern where you clearly see what you're querying for, right there and then without having to parse it into a graph into your head. Removing that would reduce my interest in this language significantly. I strongly agree with this. It's EASY to see the relationships and their direction with the syntax right now. (cani)-[:HAS]-(more)-[:CHEEZ]-(burger) I glance that and instantly figure out what it's trying to say. The SQL- like examples I've seen so far aren't coming even close, IMHO. And as the query complexity increases, I think the advantage Cypher's syntax has increases even more. Additionally I don't find adding a join keyword to a query language that queries a data store that has no joins better in any shape or form. -TPP ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Debian/Ubuntu packages for Neo4j?
Excellent - I'll jump in the repo and have a look! Nige On 3 November 2011 02:07, Peter Neubauer peter.neuba...@neotechnology.comwrote: There is the work Jake has been doing at https://github.com/jakewins/neo4j-server-debian . I would love if you could fork and update? Anders has made first attempts to set up a launchpad repo, not sure what the state there is. Welcome to chime in! Cheers, /peter neubauer GTalk: neubauer.peter Skype peter.neubauer Phone +46 704 106975 LinkedIn http://www.linkedin.com/in/neubauer Twitter http://twitter.com/peterneubauer http://www.neo4j.org - NOSQL for the Enterprise. http://startupbootcamp.org/- Öresund - Innovation happens HERE. On Wed, Nov 2, 2011 at 4:40 PM, Nigel Small ni...@nigelsmall.name wrote: Quick question: has anyone done any work on putting together .deb packages for Neo? And if so, has there been any consideration about getting them into Debian or Ubuntu repositories? Nige ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] GEOFF server plugin reappeared
If the data submitted exists purely in a single CompositeDescriptor, the add method of the GEOFFLoader class handles things in the correct order already. Nige On 3 November 2011 18:22, Peter Neubauer peter.neuba...@neotechnology.comwrote: Hi all, following Nigels great work, I created a separate GEOFF plugin for the Neo4j Server, https://github.com/neo4j/geoff-plugin (depending on https://github.com/nigelsmall/neo4j-geoff-plugin, hoping to get both building on CI soon) . It lets you submit GEOFF in JSON like POST http://localhost:7474/db/data/ext/GeoffPlugin/graphdb/insert Accept: application/json Content-Type: application/json {geoff:{(Joe):{name:Joe}}} Which results in the creation of a node with name=Joe. For more cool examples, see http://py2neo.org/geoff/ Thanks a lot Nigel for pushing this! Now, I am not sure how to handle the ordering of things, like adding indexes needs to be done after creating nodes, but it's a good start :) 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. ___ 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] Debian/Ubuntu packages for Neo4j?
Quick question: has anyone done any work on putting together .deb packages for Neo? And if so, has there been any consideration about getting them into Debian or Ubuntu repositories? Nige ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Cypher GEOFF
The tools are heavily integrated into py2neo so you would probably need to call it py2neo or py2neo-cli. Nige On 1 November 2011 07:20, Andres Taylor andres.tay...@neotechnology.comwrote: I'm not sure cypher is the right name for this. It could be confusing... On Mon, Oct 31, 2011 at 6:03 PM, Peter Neubauer peter.neuba...@neotechnology.com wrote: Very cool, good work! I would like to have this packaged as a brew formula on OSX, do one cold do brew install cypher and be done. WDYT? Cheers, /peter neubauer GTalk: neubauer.peter Skype peter.neubauer Phone +46 704 106975 LinkedIn http://www.linkedin.com/in/neubauer Twitter http://twitter.com/peterneubauer http://www.neo4j.org - NOSQL for the Enterprise. http://startupbootcamp.org/- Öresund - Innovation happens HERE. On Mon, Oct 31, 2011 at 1:46 AM, Nigel Small ni...@nigelsmall.name wrote: Hi Michael Currently these bits only exist in the GitHub code. So you'll need to pull it from there until the next release. New output format is straightforward, could you add a ticket to the project? Cheers Nige On 31 Oct 2011 08:41, Michael Hunger michael.hun...@neotechnology.com wrote: Nigel, cool stuff. What is the easiest way to install py2neo currently? Could you add a simple tabular output as well (like in the webadmin-cypher-console) ? Michael Am 31.10.2011 um 09:24 schrieb Nigel Small: Hi all A quick note on the new command line additions to py2neo (which currently aren't completely finialised but shouldn't change too much from here on out). --- usage: cypher.py [-h] [-u DATABASE_URI] [-d] [-j] [-g] query Execute Cypher queries against a Neo4j database server and output the results. positional arguments: querythe Cypher query to execute optional arguments: -h, --help show this help message and exit -u DATABASE_URI the URI of the source Neo4j database server -d output all values in delimited format (default) -j output all values as a single JSON array -g output nodes and relationships in GEOFF format --- usage: geoff.py [-h] [-u U] [-f F] Import graph data from a GEOFF file into a Neo4j database. optional arguments: -h, --help show this help message and exit -u Uthe URI of the destination Neo4j database server -f Fthe GEOFF file to load --- The latter script can also read from stdin which allows pipes to be built to funnel data out of a db and back in again: ./cypher.py -g START n=node(23) match (n)-[r]-(x)--(y) return n, x.name , n, r, x, x.name, x.\`birth.date\`, y, y.name, r.\`marriage.date\`? | ./geoff.py Of course this example puts data back into the the same DB it reads it from so isn't much use! Putting together more docs this week so will update soon. Nige ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
[Neo4j] Cypher GEOFF
Hi all A quick note on the new command line additions to py2neo (which currently aren't completely finialised but shouldn't change too much from here on out). --- usage: cypher.py [-h] [-u DATABASE_URI] [-d] [-j] [-g] query Execute Cypher queries against a Neo4j database server and output the results. positional arguments: querythe Cypher query to execute optional arguments: -h, --help show this help message and exit -u DATABASE_URI the URI of the source Neo4j database server -d output all values in delimited format (default) -j output all values as a single JSON array -g output nodes and relationships in GEOFF format --- usage: geoff.py [-h] [-u U] [-f F] Import graph data from a GEOFF file into a Neo4j database. optional arguments: -h, --help show this help message and exit -u Uthe URI of the destination Neo4j database server -f Fthe GEOFF file to load --- The latter script can also read from stdin which allows pipes to be built to funnel data out of a db and back in again: ./cypher.py -g START n=node(23) match (n)-[r]-(x)--(y) return n, x.name, n, r, x, x.name, x.\`birth.date\`, y, y.name, r.\`marriage.date\`? | ./geoff.py Of course this example puts data back into the the same DB it reads it from so isn't much use! Putting together more docs this week so will update soon. Nige ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Cypher GEOFF
Hi Michael Currently these bits only exist in the GitHub code. So you'll need to pull it from there until the next release. New output format is straightforward, could you add a ticket to the project? Cheers Nige On 31 Oct 2011 08:41, Michael Hunger michael.hun...@neotechnology.com wrote: Nigel, cool stuff. What is the easiest way to install py2neo currently? Could you add a simple tabular output as well (like in the webadmin-cypher-console) ? Michael Am 31.10.2011 um 09:24 schrieb Nigel Small: Hi all A quick note on the new command line additions to py2neo (which currently aren't completely finialised but shouldn't change too much from here on out). --- usage: cypher.py [-h] [-u DATABASE_URI] [-d] [-j] [-g] query Execute Cypher queries against a Neo4j database server and output the results. positional arguments: querythe Cypher query to execute optional arguments: -h, --help show this help message and exit -u DATABASE_URI the URI of the source Neo4j database server -d output all values in delimited format (default) -j output all values as a single JSON array -g output nodes and relationships in GEOFF format --- usage: geoff.py [-h] [-u U] [-f F] Import graph data from a GEOFF file into a Neo4j database. optional arguments: -h, --help show this help message and exit -u Uthe URI of the destination Neo4j database server -f Fthe GEOFF file to load --- The latter script can also read from stdin which allows pipes to be built to funnel data out of a db and back in again: ./cypher.py -g START n=node(23) match (n)-[r]-(x)--(y) return n, x.name , n, r, x, x.name, x.\`birth.date\`, y, y.name, r.\`marriage.date\`? | ./geoff.py Of course this example puts data back into the the same DB it reads it from so isn't much use! Putting together more docs this week so will update soon. Nige ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Cypher GEOFF
Hi Peter Sorry but I'm not a Mac user so don't know anything about OSX! Hopefully someone else has the right tools for this though :-) Nige On 31 Oct 2011 17:04, Peter Neubauer peter.neuba...@neotechnology.com wrote: Very cool, good work! I would like to have this packaged as a brew formula on OSX, do one cold do brew install cypher and be done. WDYT? Cheers, /peter neubauer GTalk: neubauer.peter Skype peter.neubauer Phone +46 704 106975 LinkedIn http://www.linkedin.com/in/neubauer Twitter http://twitter.com/peterneubauer http://www.neo4j.org - NOSQL for the Enterprise. http://startupbootcamp.org/- Öresund - Innovation happens HERE. On Mon, Oct 31, 2011 at 1:46 AM, Nigel Small ni...@nigelsmall.name wrote: Hi Michael Currently these bits only exist in the GitHub code. So you'll need to pull it from there until the next release. New output format is straightforward, could you add a ticket to the project? Cheers Nige On 31 Oct 2011 08:41, Michael Hunger michael.hun...@neotechnology.com wrote: Nigel, cool stuff. What is the easiest way to install py2neo currently? Could you add a simple tabular output as well (like in the webadmin-cypher-console) ? Michael Am 31.10.2011 um 09:24 schrieb Nigel Small: Hi all A quick note on the new command line additions to py2neo (which currently aren't completely finialised but shouldn't change too much from here on out). --- usage: cypher.py [-h] [-u DATABASE_URI] [-d] [-j] [-g] query Execute Cypher queries against a Neo4j database server and output the results. positional arguments: querythe Cypher query to execute optional arguments: -h, --help show this help message and exit -u DATABASE_URI the URI of the source Neo4j database server -d output all values in delimited format (default) -j output all values as a single JSON array -g output nodes and relationships in GEOFF format --- usage: geoff.py [-h] [-u U] [-f F] Import graph data from a GEOFF file into a Neo4j database. optional arguments: -h, --help show this help message and exit -u Uthe URI of the destination Neo4j database server -f Fthe GEOFF file to load --- The latter script can also read from stdin which allows pipes to be built to funnel data out of a db and back in again: ./cypher.py -g START n=node(23) match (n)-[r]-(x)--(y) return n, x.name , n, r, x, x.name, x.\`birth.date\`, y, y.name, r.\`marriage.date\`? | ./geoff.py Of course this example puts data back into the the same DB it reads it from so isn't much use! Putting together more docs this week so will update soon. Nige ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Cypher GEOFF
I'll make it a priority to get this up to PyPI so it can be installed easily. Nige On 31 Oct 2011 17:28, Peter Neubauer pe...@neubauer.se wrote: Well, as Michael says, I guess installation instructions via Python would work very well! /peter On Mon, Oct 31, 2011 at 10:15 AM, Nigel Small ni...@nigelsmall.name wrote: Hi Peter Sorry but I'm not a Mac user so don't know anything about OSX! Hopefully someone else has the right tools for this though :-) Nige On 31 Oct 2011 17:04, Peter Neubauer peter.neuba...@neotechnology.com wrote: Very cool, good work! I would like to have this packaged as a brew formula on OSX, do one cold do brew install cypher and be done. WDYT? Cheers, /peter neubauer GTalk: neubauer.peter Skype peter.neubauer Phone +46 704 106975 LinkedIn http://www.linkedin.com/in/neubauer Twitter http://twitter.com/peterneubauer http://www.neo4j.org - NOSQL for the Enterprise. http://startupbootcamp.org/- Öresund - Innovation happens HERE. On Mon, Oct 31, 2011 at 1:46 AM, Nigel Small ni...@nigelsmall.name wrote: Hi Michael Currently these bits only exist in the GitHub code. So you'll need to pull it from there until the next release. New output format is straightforward, could you add a ticket to the project? Cheers Nige On 31 Oct 2011 08:41, Michael Hunger michael.hun...@neotechnology.com wrote: Nigel, cool stuff. What is the easiest way to install py2neo currently? Could you add a simple tabular output as well (like in the webadmin-cypher-console) ? Michael Am 31.10.2011 um 09:24 schrieb Nigel Small: Hi all A quick note on the new command line additions to py2neo (which currently aren't completely finialised but shouldn't change too much from here on out). --- usage: cypher.py [-h] [-u DATABASE_URI] [-d] [-j] [-g] query Execute Cypher queries against a Neo4j database server and output the results. positional arguments: querythe Cypher query to execute optional arguments: -h, --help show this help message and exit -u DATABASE_URI the URI of the source Neo4j database server -d output all values in delimited format (default) -j output all values as a single JSON array -g output nodes and relationships in GEOFF format --- usage: geoff.py [-h] [-u U] [-f F] Import graph data from a GEOFF file into a Neo4j database. optional arguments: -h, --help show this help message and exit -u Uthe URI of the destination Neo4j database server -f Fthe GEOFF file to load --- The latter script can also read from stdin which allows pipes to be built to funnel data out of a db and back in again: ./cypher.py -g START n=node(23) match (n)-[r]-(x)--(y) return n, x.name , n, r, x, x.name, x.\`birth.date\`, y, y.name, r.\`marriage.date\`? | ./geoff.py Of course this example puts data back into the the same DB it reads it from so isn't much use! Putting together more docs this week so will update soon. Nige ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] Cypher GEOFF
Hi all Have just published v0.98 with a fresh README containing installation instructions from PyPI. Please shout if I've missed anything! Nige On 31 October 2011 17:46, Peter Neubauer peter.neuba...@neotechnology.comwrote: That would be cool. And some intstallation instruction in the README on GIThub. 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 - NOSQL for the Enterprise. http://startupbootcamp.org/- Öresund - Innovation happens HERE. On Mon, Oct 31, 2011 at 10:43 AM, Nigel Small ni...@nigelsmall.name wrote: I'll make it a priority to get this up to PyPI so it can be installed easily. Nige On 31 Oct 2011 17:28, Peter Neubauer pe...@neubauer.se wrote: Well, as Michael says, I guess installation instructions via Python would work very well! /peter On Mon, Oct 31, 2011 at 10:15 AM, Nigel Small ni...@nigelsmall.name wrote: Hi Peter Sorry but I'm not a Mac user so don't know anything about OSX! Hopefully someone else has the right tools for this though :-) Nige On 31 Oct 2011 17:04, Peter Neubauer peter.neuba...@neotechnology.com wrote: Very cool, good work! I would like to have this packaged as a brew formula on OSX, do one cold do brew install cypher and be done. WDYT? Cheers, /peter neubauer GTalk: neubauer.peter Skype peter.neubauer Phone +46 704 106975 LinkedIn http://www.linkedin.com/in/neubauer Twitter http://twitter.com/peterneubauer http://www.neo4j.org - NOSQL for the Enterprise. http://startupbootcamp.org/- Öresund - Innovation happens HERE. On Mon, Oct 31, 2011 at 1:46 AM, Nigel Small ni...@nigelsmall.name wrote: Hi Michael Currently these bits only exist in the GitHub code. So you'll need to pull it from there until the next release. New output format is straightforward, could you add a ticket to the project? Cheers Nige On 31 Oct 2011 08:41, Michael Hunger michael.hun...@neotechnology.com wrote: Nigel, cool stuff. What is the easiest way to install py2neo currently? Could you add a simple tabular output as well (like in the webadmin-cypher-console) ? Michael Am 31.10.2011 um 09:24 schrieb Nigel Small: Hi all A quick note on the new command line additions to py2neo (which currently aren't completely finialised but shouldn't change too much from here on out). --- usage: cypher.py [-h] [-u DATABASE_URI] [-d] [-j] [-g] query Execute Cypher queries against a Neo4j database server and output the results. positional arguments: querythe Cypher query to execute optional arguments: -h, --help show this help message and exit -u DATABASE_URI the URI of the source Neo4j database server -d output all values in delimited format (default) -j output all values as a single JSON array -g output nodes and relationships in GEOFF format --- usage: geoff.py [-h] [-u U] [-f F] Import graph data from a GEOFF file into a Neo4j database. optional arguments: -h, --help show this help message and exit -u Uthe URI of the destination Neo4j database server -f Fthe GEOFF file to load --- The latter script can also read from stdin which allows pipes to be built to funnel data out of a db and back in again: ./cypher.py -g START n=node(23) match (n)-[r]-(x)--(y) return n, x.name , n, r, x, x.name, x.\`birth.date\`, y, y.name, r.\`marriage.date\`? | ./geoff.py Of course this example puts data back into the the same DB it reads it from so isn't much use! Putting together more docs this week so will update soon. Nige ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo