iKnode: What Is in a Name?

I was recently talking to a friend, and he asked me why I named our project iKnode. He said: “I know you are a fan of Steve Jobs but this is too much”. To be honest, it has nothing to do with Apple or Steve Jobs.

The story begins in 2003 when I was doing my dissertation for my master. I was working for a model to mine data from Data-warehouses to create a knowledge base using Frames and Protegé. I created an engine to do the transformation and mining, at the time I called it IKnow. It was a single engine that only analyzed, and extracted the data to create Ontology classes.

After a couple of years I got interested in distributed systems, and I made the engine run in a distributed fashion and interact with other engines. They could learn to do things, teach others and perform tasks. I figured that code is knowledge. If I wanted the engines to be able to learn and talk to each other they would have to have a common language. I decided to use C# for that. Now I had multiple nodes running on different machines, and I decided to call each node an IKnode. The product as a whole was still called IKnow.

After talking to a friend back in 2006, he mentioned that the name IKnode sounded more interesting than IKnow. After some consideration I changed the name and the name space of the code. I even bought the domain. In this same talk, it also came out that for IKnode to be useful you needed a whole team of nodes to perform tasks. And I mentioned to him, jokingly, “There is no I in IKnode”. And then I thought: “But there is an I in IKnode”. And that struck a chord. I thought: “the I is not important, so let’s make it a lower case I”. And that is how the name came to be iKnode. The only letter that is upper case in the name is the K. Which is the whole purpose of the project: Knowledge.

It is interesting to remember how far iKnode has traveled, and how it has grown. I feel like a proud father right now. :)