Hi Nigel,

Out of curiosity - it appears that your py2neo works quite seamlessly with 
Cypher by using the append / execute / commit steps. (I actually ended up 
loading in my data using py2neo's Cypher module.) I would appreciate your 
take on py2neo's Cypher implementation vs. py2neo's non-Cypher 
implementation for speed and flexibility? (It appears that the Cypher 
module has a method Record for capturing query results?)

Thanks,
Gareth

On Tuesday, June 17, 2014 11:04:53 PM UTC+1, Nigel Small wrote:
>
> Hi Gareth
>
> As you identify, there are certainly some differences in terms of 
> performance and feature set that you get when working with Neo4j under 
> different programming languages. Depending on your background, constraints 
> and integration needs, you could consider a hybrid approach whereby you 
> continue working with Python for your main application and build anything 
> that requires serious performance as a server extension in Java. Neo4j 
> plugin support is pretty comprehensive: for example, my server extension 
> load2neo <http://nigelsmall.com/load2neo> provides a facility to bulk 
> load data but also has direct support from my Python driver, py2neo 
> <http://py2neo.org/>. This approach is somewhat analogous to compiling a 
> C extension in Python and could be done as an optimisation step once you 
> have built your end-to-end application logic.
>
> Bear in mind also that Cypher is very powerful these days. It would 
> certainly be worth exploring some of its more recent capabilities before 
> choosing an architectural path as you may find there is little that cannot 
> already be achieved purely with Cypher. If this is the case, your choice of 
> application language could then become far less critical.
>
> I'd suggest beginning with a prototype in a language you are comfortable 
> with. Then, build a suite of queries you need to run and ascertain the 
> bottlenecks or missing features. Once you have a list of these, you can 
> then make an informed decision on which pieces to optimise. 
>
> Kind regards
> Nigel
>
>
> On 17 June 2014 15:42, Shongololo <[email protected] <javascript:>> 
> wrote:
>
>> I am preparing a Neo4j database on which I would like to do some network 
>> analysis. It is a representation of a weakly connected and static physical 
>> system, and will have in the region of 50 million nodes where, lets say, 
>> about 50 nodes will connect to a parent node, which in turn is linked 
>> (think streets and intersections) to a network of other parent nodes.
>>
>> For most of the analysis, I will be using a weighted distance decay, so 
>> analysis of things like "betweenness" or "centrality" will be computed for 
>> the parent node network, but only to a limited extent. So, for example, if 
>> (a)--(b)--(c)--(d)--(e), then the computation will only be based up to, 
>> say, two steps away. So (a) will consider (b) and (c), whereas (c) will 
>> consider two steps in either direction.
>>
>> My question is a conceptual and strategic one: What is the best approach 
>> for doing this kind of analysis with neo4j?
>>
>> I currently work with Python, but it appears that for speed, flexibility, 
>> and use of complex graph algorithms, I am better off working with the 
>> embedded Java API for direct and powerful access to the graph? Or is an 
>> approach using something like bulb flow with gremlin also feasible? How 
>> does the power and flexibility of the different embedded tools compare - 
>> e.g. Python embedded vs. Java vs. Node.js?
>>
>> Thanks.
>>
>>  -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Neo4j" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Neo4j" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to