segusoLand introduction with screenshots

Table of contents

Initial screen

For introductory purposes, it is better to consider a hypothetical version of segusoLand, where the screen is a bit full of stuff.

When you start the hypothetical version of segusoLand, you are presented with five panels: the verb panel, the file panel, the program panel, the device panel and the time panel:


Please don't scream "the initial screen is too cluttered, newbies could be panicked". The real segusoLand is not like that: it does not have this initial complexity. Just ignore the problem for now.

The idea: narrowing

Suppose now you select a picture (a GIF for example). See what happens:

What happened?

The program automatically hides the things that don't make sense with the current selection. In other words, the lists have been narrowed to show only the useful things.

Hiding (narrowing) is not the innovation of segusoLand; the concept of information hiding is very old, even in the field of user interfaces: for example, it is common for an application to hide the files it cannot manage. The real innovation of segusoLand is

The actual technique used by segusoLand to treat files, verbs, devices and programs in a uniform way is called "reciprocal incremental list narrowing", or simply "narrowing".

First let me explain the "incremental" part. segusoLand's list narrowing is "incremental" because it acts on the cumulative selection. What does it mean? Select the program "the gimp", leaving the GIF selected, and see what happens:

This explains the use of the word "incremental".

What about the "reciprocal"? This is the most important part. segusoLand's lists are reciprocal because selecting an item from any list triggers narrowing of that list and all the other lists. We have just seen this: selecting Gimp hides some programs but also some files, some verbs, some devices. So, where is the reciprocity? In this case, here:

But keep in mind the reciprocity is not only between files and devices: devices, files, programs and verbs all narrow each other.

You are beginning to see the potential of this idea now? ;-) But wait, this is just the beginning.

So far we have been following the traditional "file-oriented" style, where you select a file for first, and then the rest (a verb, a program, a device...).

Now we shall see that segusoLand allows many other styles: task oriented, device oriented, program oriented. We shall also see how an action can be executed.

Verb-oriented style

A big innovation of segusoLand is that verbs too can be selected, thus narrowing the visible files, programs and devices.

Suppose you want to view a picture, but you are new to Linux and don't know how to do it. Deselect all, and select the verb "view picture".

What happened?

Red arrow

Furthermore, a red arrow appeared, showing what is missing in order for the action to be complete. In this case, the program and the file are missing. The red arrow is an invaluable aid to selection.

Of course, if you had selected "Edit pictures" instead, you would only have seen the program "Gimp":

Using segusoLand the smart way: selecting files LAST

Traditionally, we are accostumed to selecting the file first, and then the action/program. Suppose you want to print a GIF picture. In traditional systems, you select the picture first, then choose "print", or a program capable of printing.

Yes, but how did you find the picture? You had to scan all the files in the folder with your eyes. This is why traditional systems use folders: to organize your files, in order to scan them more quickly with your eyes. Sadly, newbies don't organize their data. They tend to put everything in their home folder (called "MyDocuments" on Windows). Furthermore, even if you are NOT a newbie, and use many well-arranged, hierarchical folders, reaching the folder takes much time, and many clicks. Also, organizing data takes time. Finally, you have to remember where you put your data.

With segusoLand, if you don't organize your data, there is a trick that that greatly reduces the list of files you must scan: selecting the files last. It is better to select the most "meaningful" thing first---that is, the one that "cuts" the most files. For example, if you want to print, it is better to select the printer first. Or the verb. This will hide many files, thus making easier to find the right file.

Example: We want to print a gif. Since we are smart, we decide to select the device first:

See how the files have been narrowed to only those files that can be printed? Wait: don't select the file yet. Select the verb "print picture" instead:

Now you only see the pictures in your computer, therefore it is much easier to find the right one to print. And if you're still not happy, i.e. the pictures are still to many, and you want to see "only the pictures showing Jack Nicholson", you can still do it, by clicking "Jack Nicholson" in the "index of concepts" (described later).

Please notice how important it is to be able to select verbs, devices, programs and files IN ANY ORDER.

Many people have objected that "devices are useless". Nothing could be farther from the truth: selecting the device FIRST makes you spare time LATER, when you must select the file. That's the beauty of narrowing. :-)

Now we shall see how to actually execute an action.

Executing a simple action: turning off the computer

So far we only have seen a file-oriented style and a verb-oriented style. Suppose you want to turn off your computer. This is where the device-oriented style becomes useful.

Of course you will select "My computer" for first:

Once again, all the things which don't make sense with this device have disappeared. In particular, all files and programs have disappeared, and only three verbs remain.

Of course you will select the verb "Turn off":

What happened? Why wasn't the action executed? It is obvious because of the red arrow : you need to specify a time. We decide to specify a time in the future. This is useful for example if you want to go to bed while listening to some music but turn off the computer automatically when you are asleep.

Select the time "10 minutes from now", and see what happens:

A "Go" button has appeared beside the verb. This means that the action is complete (i.e. all the necessary informations have been given). The red arrow also notifies it in case you don't notice.

click "Go": your first action was executed.

Working with time

Another big innovation is that actions must not necessarily be executed immediately: you can easily schedule any action to be executed in the future. This can be done simply selecting a time different from "Now".

Defeating the initial complexity: the index of concepts

I will now introduce the "real" segusoLand (so far I have described an hypothetical version).


So far I have been a bit deceptive, in order to simplify things. I wrote "As soon as you select X, segusoLand hides all the things that don't make sense with X", implying between the lines that this makes it very easy to compose an action.

But wait! Can you see the problem? How do you select the FIRST thing? At the beginning, when nothing is selected, segusoLand shows you everything: every verb, every file, every program, every device. So it's very difficult to select the first thing. You have to scan a long list. (Furthermore, the initial complexity and the big number of choices would scare the newbies away.)

Elsewhere, I said that segusoLand allows you to select the verb first. But the verb list is VERY long, when nothing is selected. So no one would ever do that.

So, we have a problem. We could be tempted to pretend the problem does not exist, and reply

It MUST be so, there is no escape. Nobody can predict what is in your mind, until you "say something". Since you haven't selected anything, it's like you hadn't said anything. Therefore, segusoLand has no choice but to show you everything. Only after, when you select something, we can hide the things that don't make sense.

Strictly speaking, this argument ("there is no escape") is false, because we could organize things in a hierarchical way, when nothing is selected. For example, instead of a flat list of verbs, we could show a hierarchy (i.e. a tree): the first choices would not be verbs, but categories: networking, file management, multimedia, system, settings... and so on.

This is the solution we find in all traditional systems (KDE, Gnome, Mandrake's start menu, Windows, ...): in these systems, if you want to select a file for first, you have to traverse a hierarchy of directories, called the "file system". If, on the other hand, you want to select a verb/program for first, you traverse a hierarchy of verbs/programs, called the "start menu" or something like that.

Unfortunately, this solution has many problems:

So, the dilemma is how to select the first item without forcing the user to scan a long list.

Fortunately, there is a solution. The key is to understand that the user already knows what he wants to do; the idea is already in his brain, translated into english, with a precise wording. For example, "I want to play some good music by Michael Jackson", "I want to browse all the possible configuration options of segusoLand", "I want to burn an MP3 to an audio CD by using a CUE sheet", "I want to format the hard disk", "I want to shutdown the computer".

The only way we can dispense the user from scanning a list linearly is to allow him to express his idea with the words he already has in mind. Just tell me those words. You don't need to scan anything.

So, the mechanism chosen by segusoLand is this: 1) first think what you want to do 2) then tell me one or more words from the sentence you have thought 3) then I show you the panels, already narrowed, containing only the relevant verbs/programs/files/devices.

There is no way to furtherly simplify this without loosing generality. Humans communicate through language, sorry. :-)

How, exactly, does the user communicate those words to segusoLand? By typing them? No, because it is too unpractical in a mouse-driven environment. By speaking? No, speech recognition is too difficult for me to program. So I opted for a compromise: you click the words from an alphabetically ordered list.


This does not mean the user must once again scan a long list, defeating the purpose! I mean: the list is long, but you do not have to scan it linearly. If the number of words in the list is N, finding a word you already know takes time O(logN), not O(N). So you are NOT scanning a list linearly. It is almost like immediately jumping to the right word (like when you use a dictionary). Even if the length N is big, logN is small. So the length of the list is irrelevant.


Of course, the user must be guaranteed to find the word he is looking for. For example, if the user thinks

I want to change the color of the "taskbar"
and the list only contains the word "panel", he will be frustrated, and will need to scan the whole list, looking for the word that best matches the word "taskbar". This would be tragic and would defeat the whole purpose. So the list must contain any possible concept, with any possible wording.


Let us put this to practice. Suppose you want to "play all very good songs by Tracy Chapman". This is the sentence in your brain. Now, as we saw, you have to communicate some words to segusoLand, and in return segusoLand will narrow the panels.

You communicate the words via a new panel (alphabetically ordered!) called the "index of concepts":

What are the letters on the left? The index of concepts forces you to click the first letter of each word first. This has two big advantages: 1) you are forced to think before you act. you cannot "just browse" the list. 2) The list is very short.

You decide that the most meaningful words to describe your idea are "Chapman" and "good" (but of course you could also choose something else, say "play" and "Chapman").

So you select those words from the index of concepts:

...and the old panels appear, already narrowed, showing only the things related to "Chapman" and "good".

Advantages of the index of concepts

To sum up, the advantages of having an index are:

  • At startup, the user only sees the index. So he is no more panicked seeing all those panels at once.
  • the user can specify the action with any word he happens to have in mind. He must not do any semantic matching between his idea and the actions displayed on the screen. segusoLand does the semantic matching. For example, if you select "configure" and "KDE" in the index, the verb panel will display the verb "set mouse speed", which does not contain the words "configure" or "KDE". So this is not a syntactic matching, it is a semantic one.
  • The user does not need to linearly scan a long list anymore.
  • They are a generalization of directories: you can select "Jack Nicholson" in the index of concepts, and the items are narrowed to only those related to Jack Nicholson.


In case you are curious about the precise logic: in the file panel you only see the good songs by tracy chapman; in the verb panel, you only see the verbs that could be applied to those files. In the program/device panels, you only see the programs/devices that make sense with those verbs/files.

The rest is as usual. You select things in any order you like, then click "Go".


You may have noticed that segusoLand's "concepts" are a generalization of directories. The differences are 1) a file can be associated to more than one concept, but can be in only one directory (unless you use hard links) 2) concept are not nesteable like directories, which is confusing and useless 3) not only files, but also programs/verbs/devices can be associated to concepts.

Miscellaneous screenshots

Suppose I click the device "My printer". See what happens:

What happened? Narrowing is at work:

Easy, huh? You almost don't need directories anymore. :-)

Also notice that now the verbs that are "complete" have a GO button (in the example, it is "configure printer"). If you click it, you execute the action. Verbs that still need objects to be complete do not have a GO button. You have to select something else in order to see their GO button.

The pictures that follow are older, but still meaningful.

Another example. Deselect everything, and select an mp3 file. See what happens:

What happened?

Yet another example. Deselect everything, and select "emacs" (which is a text-editor, in case you didn't know). See what happens:

What happened?

Deselect all and select a PDF:

Now, without deselecting the PDF, select K3B:

As you can see, segusoLand asks you for the cd writer (the red arrow appears).

I hope that's enough. :-)