Taking Neo4j (Graph DB) for a Spin

Notes before taking Neo4j for a spin. From ignorance to, well, less ignorance.

What Is Neo4j?

A graph database.

Major early adopters of graph dbs — the Googles, the Facebooks, the Twitters — built their own.

Neo4j serves as the off-the-shelf tool for the rest of us.


Why Does Neo4j Exist?

Not all data deserves to be in a relational database. Numbers, very structured data? Great. Perfect, even.

What about human language or ever changing structures? Pretty terrible and expensive.

NoSQL solves some of this however it, too, has limitations and weaknesses.


What Makes Neo4j Attractive to Me?

Whiteboard models === physical data models.

Are you kidding me?

I spent days working out new structure on meometer v2. Could this replace that horseshit practice?

Naturalistic approach to naturalistic data.

It reflects the natural world.

Can this fluidly adapt to my knuckleheaded mind?


What Looks Intriguing?

Recommendations.

 

Relationship-centric.

 

Cypher query language.

Brevity and natural thinking outside JOINs.

For example: no need for "prev" concept, just reverse the relationship:

// Left1
MATCH (s:Word {word:"cat"})  
MATCH (w:Word)-[:NEXT_WORD]->(s)  
RETURN w.word AS word  
// Right1
MATCH (s:Word {word:"cat"})  
MATCH (w:Word)<-[:NEXT_WORD]-(s)  
RETURN w.word AS word  

Only the second line changes and it's trivial.

Speed.

I mistreat, I reckon, MongoDB, wanting performant results from my somehow ludicrous thinking.

NLP-friendly.

Hell yes.

Flexibility.

Prototyping friendly? Then the migration into production?


Questions?

Can this replace MongoDB in my workflow?

 

Should this replace MongoDB in my workflow?

 

How understanding/generous/viable is their Startup Program?

I reached out via their contact form and started a conversation with Kevin on their team.

Should this methodology be used on all non-relational-optimized data?

 

With as much NLP and prototyping as I do, does this work well?

 

How is the syntax?

I enjoyed what I studied. How about in the real world without my hand held?

How is the workflow?

 

How is the tooling?

First glance was positive.

How easily and effectively will it integrate with my skills/tools/tech?

That's a big one.


Notes

Sublime Text Plugin

https://github.com/kollhof/sublime-cypher

No Sublime Text syntax highlighter.

Though they have a reasonable looking GUI for building queries.