Saturday, October 28, 2006

Automating Optimized Information Display

Ideally, we want to optimise the display of information. Or at least, most non-fiction information.

This is a matter of good communication, and that is largely a matter of efficiency. The information should be direct, concise and relevant. Unnecessary detail should be filtered out.

To do this effectively, you need to understand the target 'readership'. For example, knowing what they already know, so you can filter out details that are unnecessary to them.

Edward Tufte talks about this kind of stuff a bit.

Here's a simple example of optimizing information display - and automating that process: optimized cut-and-paste.

Much of the information you display is originally sourced from other places. I'd like to be able to automate the task of optimising the display of that information for the particular purposes it is being put to.

Say that I want to go to local hardware stores this weekend, so I search for them on the yellow pages website and add the details into my organiser software. The search results would look something like this:

store name
120 Sir Fred Schonell Drive
suburb, postcode
ph: (07) xxxx xxxx
fax: (07) 3371 xxxxx
website: xxxxxxxx.com.au


store name
street address
indooroopilly, postcode
ph: (07) 3371 xxxx
fax: (07) xxxx xxxxx
website: xxxxxxxx.com.au
But as far as my needs go, I can put an optimised version of this into my organiser program like:
store name, 3371 xxxx, street address
store name, 3371 xxxx, street address, indro
I don't need to know the fax or web details, so I filter them out. As for the phone number, in this context, I just need to put the number itself -- I don't need the 'ph:' bit or the area code.

And for the address, I just need to know the suburb, so I can filter out the postcode. And I can abbreviate 'Indooroopilly' as 'indro'. If the street is familiar and I know what suburb it is in -- as with 'Sir Fred Schonell Drive' -- I can omit the suburb name.

Since I can fit all the details of a store on a single line, I do so. And there's no need for here for line spaces between the entries for the different stores, so I get rid of them.

It doesn't come out so much in this small example, but when you're dealing with lots of info, condensing it like this can make things much easier to deal with. The more you can see at once, the easier it is to see the whole and the properties it has, to manage it, and to see any paterns within it.

What I'd like is the computer to help automate this optimization task.

When I cut and then paste something, the program would provide options for optimizing the display of the information.

To do this, it would have to know a bit about how things could be optimized as well as knowing things about me. It could learn the kinds of optimizations I do - like replacing Indooroopilly with Indro. It could learn about what I know, in order to figure out what details I don't need to know - such as that I know all Queensland phone numbers have the '07' prefix, so it can omit them.

To do it well would be quite a difficult task. This post is not about the current feasability of such automation, but just to communicate the idea of it.

I think such automated optimizing of information display is a major area in which software can become much smarter and useful, essentially by becoming better communicators.




Here's some discussion / notes.

Ideally, when it filtered out information in a particular display, it wouldn't actually remove the information, but just not show it - so you could bring it up if you wanted to. Better, at any time you could tell it to adjust the type and amount of condensing you wanted.

Another sort of optimisation is dynamic optimisation to adjust to changes in the display area. If less space is available to display the information, the more condensed it makes it. For example, using 'heavier' abbreviations. Jorn Barger has talked a bit about doing this kind of thing (the above link is to his blog. After a bit of searching I haven't found the specific posts where he talks about this kind of thing).

For example, imagine a widget displaying the progress of a particular task you are undertaking, such as scanning your computer for viruses. You may want to keep track of this progress as you are doing other tasks. How much attention you want to give to it will depend upon what other things you are doing, and, for example, how much spare real-estate there is on your desktop. So you can resize the scanning-widget window to different sizes and it will adapt. Abbreviating things in various ways, and filtering how less relevant details.

Another optimization technique is clearly saying what you're saying, with techniques like 'heads', 'decks' and 'leads'. This makes it easier to find relevant information.

No comments:

Post a Comment