Programmers will be intimately familiar with the ‘hello world’ program. For the last 25 years, almost every programming book on earth has had it as it’s first example. It is the simple program which says ‘tell the user something’;
The eminently less famous sibling of the programming world, totally outshined but still famiiar, is the ‘add two numbers’ proqram. It goes like this
>enter a number;
>enter another number
>3 + 4 = 7
Wow. OK, it’s not such a great program, but it’s the first time we see codification of knowledge into a computer…
The computer ‘knows’ that when you type your two numbers, they have a significance – that is, they are operands in the addition operation. Knowing that, it can manipulate it to calculate an answer.
Why am I telling you this? Because again, I want to explain what computers can and can’t do. If they are told information with a certain significance, they can manipulate it. That means, if a computer is to have any chance of helping you out, it has to know what you’re telling it.
So, let’s take a task like organising my day. I write myself a quick note;
Get up around 7am then get into work for eight. Spend two hours checking email, then at 9 start working. get lunch at 1, go home around four
How can I let the computer help me out? I need to boil this down to data the computer can manipulate, maybe like this;
0700: Get up
0800-1000: check email
1600: go home.
Feed that into a computer, and it can recognise the conflict you have between 9 and 10 – you’re supposed to be working and checking email. By codifying the information, you allow the computer to help you.
How can I apply this to writing, though? I want people to be able to write naturally (ie, like the note) but also for the computer to help out. Writers (I’m assuming) don’t want the quality of their prose to be compromised so they can use a computer program, right? So my solution has to let people write free text (like the note) but connect bits up in meaningful ways.
The form of this mix of codification and free text is probably my biggest and most important task in writing ‘thinking software’. More later, I guess!