Rate and suggest improvements:
Feedback (optional):


Levels of reasoning

The problem

Many in computer science will have learnt about the "Data, Information, Knowledge and Wisdom Hierarchy" - it often appears textbooks and in lectures. Although it is common, there's actually several versions of what the stages really mean, so although grouping these four stages has a nice feel to it, the actual meaning of this hierarchy is not well defined.

My idea

I was seeing if I could make something better defined, maybe with some notation, and work out what you had to do to get from one level to the next.

The most basic unit in this system is a "relationship", that is, a label ("dog" or "tower" for example) attached to a property ("can swim" or "is tall").
I found that by repeatedly grouping these relationships and groups of relationships, you can see relationships which mirror the DIKW heirachy. However as the progression function is known, this means you can find higher levels of reasoning beyond DIKW.

What does this mean?

By having a large collection of relationships (such as "cats are animals" or "ice cream is cold"), and repeatedly running the same algorithm, you can form groups of related items.

At the lowest stage this just groups relationships referring to the same label, but as you repeat you can see objects with similar properties ("dogs and wolves are similar"), and then abstract groups with shared properties (Such as "The group cat+kitten is similar to the group dog+puppy"). With enough raw data (relationships), you can continue to higher levels of reasoning.

See it in action

I have made an application to demonstrate this new way of reasoning about data and relationships.

Try WisdomTool here.

Explanation of notation

The letter r represents a relationship.
This is of the form:
 
	r={LABEL,RELATIONSHIPTYPE,LABEL}
A possible r could be:
 
	r={"Jonathan","is","male"}

r[] represents a set of relationships.
A possible r[], could be:
 
	r[]=
	{
		{"Jonathan","is","male"},
		{"Jonathan","likes","chocolate"},
		{"Tower Bridge","exists in","London"}
	}
r[][], r[][][], and so on are constructed by grouping these groups.

The clever bit is how you group a set of groups. (e.g. transform r[] to r[][] or r[][] to r[][][]). This is performed by a simple recursive single-pass clustering algorithm. (Have a look at the WisdomTool source code.)

Reasoning level Notation Usual name Description Example 1 Example 2
0 r A fact (Data) In this system, I refer to these facts as "relationships". A relationship consists of a label (such as "cow" or "hospital") and a property it has (such as "eats grass" or "is a building").
1 r[] An object (Information) This level shows what is known about a label. It is the group of properties a label has. At this stage, for example we can know that a dog is a mammal, can bark and lives in a dog house.
2 r[][] A concept / An abstract object (Knowledge) At this level we group objects. We can discover that dogs, cats and elephants are similar and can be grouped together, and cars and planes are similar and can be grouped together. The system does not have names for the groups it makes, but we (humans) might be able to guess one based on our knowledge of the world.
... r[]n With enough data, you can keep going... :)


Contact me | Back to writing