How do you write an inference engine over a graph database? Not a trivial question, although it would appear the answer may be quite simple. The approach taken to get said answer was a fairly typical one for most developers1:
Day 1: Pick suitably cool looking technology. Charge in. Get stuck.
Day 2: Replace cool and shiny technology with something a little more robust. Charge in. Get stuck.
Day 3: Decide that code isn’t the best place to start. Revert to pen and paper. Disappear up own backside. Pair up with second developer2. Approach whiteboard armed with whiteboard pens. Attack! Some hours later come out with a really nifty (and simple) algorithm that does what you set out to achieve.
Day 4 will hopefully be a question of coding algorithm, plus sharing it with some very intelligent people who know huge amounts about graph databases in case we are setting ourselves up for a fall3.
Meanwhile, anyone who cares to look at the whiteboard will find that we have asserted, with a very high degree of confidence, that Dom speaks English, despite liking Cheese4. Those reading this blog may care to argue with that assertion.
1 I should point out that I was not the developer in question at this point. It’s probably also fair to say that I’d have taken a similar approach… and possibly taken longer.
3 In which case I guess we attack the whiteboard again.
4 The knowledge map and rules over it had become beyond tenuous at this point simply so we could exercise some thornier questions relating to the algorithm.