Re: [Neo4j] Automatically invoking ETL

2012-04-24 Thread Nigel Small
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

2011-12-02 Thread Nigel Small
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

2011-12-02 Thread Nigel Small
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

2011-12-02 Thread Nigel Small
 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?

2011-12-01 Thread Nigel Small
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

2011-12-01 Thread 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 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

2011-12-01 Thread Nigel Small
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

2011-11-30 Thread 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 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

2011-11-29 Thread Nigel Small
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

2011-11-29 Thread 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 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

2011-11-29 Thread 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 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

2011-11-28 Thread Nigel Small
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?

2011-11-27 Thread Nigel Small
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

2011-11-25 Thread Nigel Small
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

2011-11-22 Thread Nigel Small
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

2011-11-19 Thread Nigel Small
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

2011-11-19 Thread Nigel Small
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

2011-11-15 Thread Nigel Small
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

2011-11-15 Thread Nigel Small
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

2011-11-15 Thread Nigel Small
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

2011-11-12 Thread Nigel Small
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

2011-11-12 Thread Nigel Small
...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

2011-11-12 Thread Nigel Small
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

2011-11-12 Thread Nigel Small
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

2011-11-11 Thread 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@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


[Neo4j] py2neo 0.982

2011-11-08 Thread Nigel Small
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

2011-11-07 Thread Nigel Small
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?

2011-11-05 Thread Nigel Small
 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?

2011-11-04 Thread Nigel Small
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?

2011-11-03 Thread Nigel Small
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

2011-11-03 Thread Nigel Small
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?

2011-11-02 Thread Nigel Small
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

2011-11-01 Thread Nigel Small
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

2011-10-31 Thread 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


Re: [Neo4j] Cypher GEOFF

2011-10-31 Thread Nigel Small
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

2011-10-31 Thread Nigel Small
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

2011-10-31 Thread Nigel Small
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

2011-10-31 Thread Nigel Small
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