I think I’ve come to a useful view of a writer’s work which may form the basis for my program. Producing a novel, say, has several distinct types of tasks and only one of them is actually writing the final words. The rest are, for example;
Character development – figuring out who your characters are
Reviewing – letting other people read and comment on your work
Redrafting – writing is rewriting, you know.
Structuring – arranging passages to form a narrative
Summarising – writing story treatments, synopses, etc
Checking consistency – making sure the story holds up logically (eg no plot holes)
Research – learning about parts of the real world for verisimilitude (eg reading history for historical fiction)
Journalling – writing daily thoughts down as a way of developing ideas or recording progress
I don’t know of any programs that really take into account these seperate tasks and support the writer. For example, with redrafting, people just use multiple word documents or overwrite old prose with new prose. Wouldn’t it be better if each draft was saved off so you could see the development of the idea? So that you could never lose anything?
Any ideas, from the writers out there, what kinds of tasks you involve yourself in, and exactly what it means to you? I’ll try to pull together some of these ideas in a later post. Thanks.
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!
Human thinking, like human action, is based on the use of tools. Just as we use fork-lift trucks, earplugs, and fire to manipulate the world around us, we use tools like arithmetic, reading, and reasoning to manipulate our thoughts.
Some tools are more effective than others; the aeroplane is a faster mode of travel than a horse, and a industrial press more precise than a blacksmith’s forge.
This has made me consider computer programs and their relationship to human thought. Arithmetic was once the unique preserve of human mathematicians, but now it’s almost entirely a machine task. I’d venture to guess that the majority of letters now resided on computer, too. I certainly get more email than post. Much that was once done by considering information is now done by loading a computer with the information and asking it to do the considering.
All of this is rudimentary, but I’d like you to see where I’m coming from; certain forms of thinking are given to machines where once they were human activities.
I’d like to suggest, further, that computers can assist humans in one of three ways; first, they replace humans, as happens in a computer-controlled manufacturing plant. (While humans might have an overview role, they don’t have a construction role) Second, they assist humans, as seen in spell-checkers in word processors. The human is relying on the computer’s fastidiousness or precision or fast recall to take part of the task away. Third, computers offer no help at all, which is often the case in a social situation.
Now, computers can assist to the extent that they can understand your information. A computer can add up a list of numbers, but it can’t add up an essay; the adding-up program must be fed a list of numbers, and nothing else. Because of this, programs are often written in a way that only lets you type in those numbers.
So, computers can assist in simple tasks, like arithmetic, and reference tasks, like spell-checking. While computers are capable of processing vastly complex tasks, they also tend to be very specialised tasks, often built up of lots of simple tasks.
To the extent that thinkers have invented different modes of thinking, to what extent can computers help automate these tasks? A clerk has his job vastly helped by an adding machine, but an abstract thinker often has to rely on pen and paper and the review of his peers, a system that hasn’t improved since ancient Greece.
So to what extent is it possible to improve thought by modelling complex and general thinking systems? That’s a topic rarely touched on.
Thought and speech are intimately bound up. Although not everyone does this, I think entirely in an ‘inner dialogue’ – that is, the process of thinking is just the process of talking to myself. Ideas like the Sapir-Whorf hypothesis* suggest that thought is either totally, or largely, the manipulation of language.
So, how do we go about reasoning with language?
Well, one way is to write. We start writing about a subject not to expound on it, but to explore it. We don’t know at the top of the paragraph what we’re going to say at the end.
For a while, I’ve used a journal or computer as a supplement to my memory and as a thinking aid. I find I can reason further with a pen and paper than I can just talking to myself. The act of writing something down is an act of clarification; stuff on the page often makes more sense than stuff in my head because I have to use decent grammar and finish sentences and paragraphs. Things get interesting when you want to see how lots of your ideas work together. Let’s say, for example, that I’ve written a bunch of stuff on philosophy and on games. Imagine that I have written notes entitled
- Why I am a utilitarian*
- Why I am an existentialist*
- Ain’t games fun?
And let’s say I’ve recognised some possible connections between those notes; the fun from games relates the the ‘greatest happiness’ principle of utilitarianism, and fun games to sportsmanship, and sportsmanship to the responsibility of existentialism. F’r’instance.
How can I connect these up? Maybe these might form the basis for a larger piece of thought, if these atomic pieces of thought could be bound up into ‘molecular’ essays.
Anyway, I’ve rambled from one subject straight into another. Damn language.
- Sapir-Whorf: http://en.wikipedia.org/wiki/Sapir-Whorf_Hypothesis
- Utilitarianism: http://en.wikipedia.org/wiki/Utilitarianism
- Existentialism: http://en.wikipedia.org/wiki/Existentialism
This is the start of a new blog for me. First, if you’re reading on LJ, this blog is now available at http://www.stevecooper.org/?action=rss. If you’re reading it on my website, it’s also on livejournal.
So, what’s the new blog about? Well, I hope to cover some ideas about the way we deal with large amounts of interrelated information, about the way we write and about the way we reason.
As you may know, I’m putting together a computer program for writers. But it’s important to me to figure out how normal people (not computer types like me) go about organising their information, how they use writing as a tool for thinking, and how they integrate, say, their research, their own documents, their private notes, and whatever else they use. Then, my idea is to create a program to help them do all that in such a way that the computer can show a picture of how all these things relate.
Anyway, on with the blog…