I believe we are on an irreversible trend toward more freedom and democracy
- but that could change.
- Dan Quayle
I’ve been playing with writing STL code for a couple of days now and have been working out some major logical issues. Actually trying to write code instead of syntax that is logical has shaken down the Six Hats, Six Coats Framework considerably. Sort of like dismantling and rebuilding a Chevy and then taking it on its first drive through the neighborhood without a muffler.
One of the things I have discovered is that Structured Thinking Language is best for describing Structured Thinking Systems (The Six Hats, Six Coats Framework). So let’s take a look at what I found.
First, we will go over the revised verbs and nouns. Here are the Structured Thinking Verbs:
- CREATE refers to the extistential. Capability. Right a wrong.
- RELATE refers to the unity. Portability. Have a mantra.
- REPORT refers to the benefit. Reliability. Unique and valuable.
- RECORD refers to the cost. Profitability. Have a business plan.
- AFFORD refers to the usability. Security. Easy to adopt.
- ENGAGE refers to the convenience. Availability. Spawn evangelists.
And Here are the Structured Thinking Nouns:
- MOTIVE refers to the rule hierarchy. Moral Law.
- PERSON refers to the people hierarchy. Command.
- OBJECT refers to the data hierarchy. Discipline.
- METHOD refers to the function hierarchy. Training.
- LOCALE refers to to the node hierarchy. Terrain.
- MOMENT refers to the event hierarchy. Climate.
This gives us our Structured Thinking Framework:
What we have as a result is the meshing of six horizontal hierarchies and six vertical hierarchies.
Next, we create all of the entities. There are six entities per noun.
CREATE CreateName MOTIVE ( Virtue, Unity, Esteem, Accord, Safety, Entity ) PERSON ( Creator, Leader, Patron, Member, Friend, Teller ) OBJECT ( Motive, Person, Object, Method, Locale, Moment ) METHOD ( Create, Relate, Report, Record, Afford, Engage ) LOCALE ( ExtraNet, InterNet, IntraNet, ExtraNode, InterNode, IntraNode ) MOMENT ( Year, Month, Day, Hour, Minute, Second );
Next we relate the entities to one another. The keys are surrogates, so they are not visible. I am building a set of relationships from left to right on each row and a set of relationships top to bottom on each column:
RELATE RelationshipName ( MOTIVE.Virtue TO MOTIVE.Unity, MOTIVE.Unity TO MOTIVE.Esteem, MOTIVE.Esteem TO MOTIVE.Accord, MOTIVE.Accord TO MOTIVE.Safety, MOTIVE.Safety TO MOTIVE.Entity MOTIVE.Mantra TO PERSON.Creator, PERSON.Creator TO OBJECT.Motive, OBJECT.Motive TO METHOD.Create, METHOD.Create TO LOCALE.ExtraNet, LOCALE.ExtraNet TO MOMENT.Year PERSON.Creator TO PERSON.Leader, PERSON.Leader TO PERSON.Patron, PERSON.Patron TO PERSON.Member, PERSON.Member TO PERSON.Friend, PERSON.Friend TO PERSON.Teller, MOTIVE.Unity TO PERSON.Leader, PERSON.Leader TO OBJECT.Person, OBJECT.Person TO METHOD.Relate, METHOD.Relate TO LOCALE.InterNet, ... );
This gives us the following entities composing our Structured Thinking System (STS):
As you can see, the order of the columns have been changed. You can also see that I have changed the color coding of the hats and coats to better reflect common usage in the industry (ie. Black Hat = Secure). I also think I am coming more into line with de Bono, but the jury is still out on that one.
Another issue raised in making the relationships is they are one to many as they proceed left to right across the rows and one to many as they proceed down the columns. There is no compromise to this if the system is to work at peak effectiveness.
There is no need for normalization or denormalization as the structure is fully normalized. There is also no need for attributes because they are identical for every entity:
I am at a turning point here. I have to go deeper into the model to determine how to create attributes. Which I have not yet attempted. I have to save it for later posts.
Now we can create our reports. This is an alternate function of the six verbs that occurred to me. Note that the selected cells are all adjacent to one another either horizontally or vertically and flow from left to right; top to bottom:
REPORT ReportName ( MOTIVE.Esteem, MOTIVE.Accord, PERSON.Member, OBJECT.Method, METHOD.Record, METHOD.Afford, LOCALE.IntraNode, MOMENT.Minute );
Giving us the following Report:
If you want to throw in some filters it is easy:
REPORT ReportName ( MOTIVE.Esteem, MOTIVE.Accord, PERSON.Member = John Doe, OBJECT.Method, METHOD.Record, METHOD.Afford, LOCALE.IntraNode, MOMENT.Minute = 30 );
The “30″ aggregates to every 30 minutes.
Now we can plan our data capture. Again an alternate use for the RECORD verb. Again the cells for capture are all adjacent to the left or down:
RECORD RecordName ( MOTIVE.Esteem, PERSON.Patron, PERSON.Member, OBJECT.Method );
This would create the following form:
Here we set up the affordances for the entities:
AFFORD AffordName RECORD.RecordName TO PERSON.Member;
Finally, we execute the RECORD Script and as the Member isn’t given the Member must log in:
ENGAGE EngageName ( RECORD.RecordName AND PERSON.Member );
The code I have created here is a radical departure from the syntax releases I have come out with so far as I realized what the design was leading me to create. And that is the clincher. The design brought itself out. I have just been trying to follow it along.
What I am finding is there are not four verbs–Select, Insert, Update, Delete–but six–create, relate, report, record, afford and engage!