Welcome to the Lounge

The Lounge is rated Safe For Work. If you're about to post something inappropriate for a shared office environment, then don't post it. No ads, no abuse, and no programming questions. Trolling, (political, climate, religious or whatever) will result in your account being removed.

To be honest, I didn't like her: she's one of these "attention freaks" who fake asthma attacks if someone else is under the spotlight ... that's what killed her in the end, she misused Ventolin et al so badly that when she actually needed it it didn't work any more.

At least she will get a whole day where she is the Star of the Show, and that's all she really wanted ... just wish it wasn't a four hour drive each way to get there!

"I have no idea what I did, but I'm taking full credit for it." - ThisOldTonyAntiTwitter: @DalekDave is now a follower!

I have been examining Neo4j's implementation (Java engine, .NET/C# driver available). I have to control my knee-jerk "oohh ... alien" prejudice against Java technology.

The free book "Graph Databases," by Neo4j principals Robinson, et. al., published by O'Reilly, is an excellent overview of gdb's in general as well as Neo4j implementation features: download here [^].

So far all of the graph db's I've looked at implement connections (edges, links) between object (vertices, nodes) as one-way, which interests me since I am interested in modeling reciprocal relationships; the C# prototype I implemented for fun is based on two-way connections with each direction having a "strength," and dynamic interacting functions used, so ... when one direction changes strength ... the other direction's strength is modified (of course, two-way reciprocity demands preventing runaway recursion).

Neo4j defines Properties as "first class" objects, and they can be attached to either nodes, or connections: I really like that.

Here's an example, in Neo4j's query language, Cypher, that selects friends of friends of a selected person who are not immediate first-level friends of the person:

Well, I find the Cypher syntax very weird, but, I never completed SQL potty-training I sat down and toyed with what I would do using Linq (which I am sure can be improved) to handle such a query, came up with this:

There's a Youtube channel called Computerphile that has done a few videos on graph theory and the kind of problems it is used to solve. Might be worth hunting some down if you want to apply this to a real-world problem, as I find having an actual thing to solve is the best way to getting to learn a new technology.

Don't forget about relationship direction when working with graph DBs. Your Cypher query is bi-directional but the LINQ query is uni-directional. I really like Cypher and neo4j but haven't had much reason to use a graph DB recently Fun stuff though.