An Improved OmniWeb using IconKit

H. Scott Roy hsr at CS.Stanford.EDU
Mon Mar 7 15:23:18 PST 1994


Hi everyone,

I came up with a WWW interface the other day that I think takes the next step  
in the natural direction that OmniWeb is headed.  The fundamental idea is to  
create something akin to the NEXTSTEP workspace file viewer, but instead of  
browsing the local file system graph, one browses the WWW graph.

So you can either construe the suggestions that follow as ways to improve  
OmniWeb, or alternatively as an outline of an new WWW client that builds upon  
the wonderful code the OmniGroup people have produced.  I've given a lot of  
thought about how to implement all this, and my best guess is that it really  
shouldn't take a whole lot of work at all to combine the best features of  
IconKit with the OmniWeb HTML view.

The interface I envision is clean and simple.  There are two windows:

    1.  A browser built using IconKit.  This browser replaces the history and
        browser present in OmniWeb.

    2.  A document inspector.  Just like the NEXTSTEP workspace inspector, the
        document view shows the current browser selection.  This window
	corresponds to the current main view in OmniWeb.

The fundamental mechanism of operation is as follows: the very first time the  
user follows a link to a new document (whether by selecting it in the browser  
or document view), the program fetches all the links from the appropriate URL.   
Thereafter the user can rearrange and edit the graph as suits him best.  The  
program, in essence, maintains a local graph that initially mirrors the  
underlying links in the web, but which the user can rearrange thereafter as he  
sees fit.  He can create new folders to store commonly used items, rename  
documents to give more intuitive descriptions, form links to organize the web  
according to multiple schemes, delete or hide unimportant links that clutter  
his display, etc.  The browser also gives him a nice convenient shelf to drop  
things he visits all the time.

In short, what I'm suggesting is something like the IconKit FileViewer example,  
but browsing the web instead of local files.  I'ld really love to see someone  
implement it, so if anyone wants to give it a go, feel free to bombard me with  
any questions and I'll be happy to help out all I can.

I've attached some of the high points below.  The window layout stuff could  
easily be incorporated into the current OmniWeb, and I stand with all the  
others who have suggested similar things in hoping they get incorporated.

---
Scott Roy
Department of Computer Science
Stanford University

------------------------------------------------------------------------

WINDOW LAYOUT
-------------

I agree wholeheartedly with Stefano Pagiola that the current scheme of one  
giant window is woeful.  One of the things I hate about NewsGrazer (which seems  
to have inspired this model) is that it limits me to half a screen.  In  
particular, I'ld really like to create a document view that takes advantage of  
my entire screen height, but it's quite impossible to do that with the current  
layout.  Along these lines, I would clump all the extraneous things like URL,  
abort button, graphs showing transfer rate (yes, these should really be graphs  
instead of text) in an NXSplitView at the top of the document window (or even  
in a separate window entirely, like the Workspace processes panel).  That way I  
can get rid of them when I don't want them.

Most importantly, the breakup into a browser and a document inspector lets me  
get rid of the document window for things like FTP sites, where I really don't  
care about it (or really only care about it for things like README files).   
Similarly, I can get rid of the browser when I don't want it.

Closing the document window should drastically improve performance because the  
program doesn't need to actually construct the document (fetching images and  
all else it entails) unless the user actually asks for it.


GRAPH EDITING
-------------

I think that letting the user construct his own graph of the underlying web  
represents a tremendous step past bookmarks, a hot list, and all their other  
flatland kin.  In the scheme I describe, one could mimic bookmarks by dragging  
them to the root folder being browsed.  One can go far beyond that though,  
creating a full graph to organize the things in web land.  Think for a moment  
about how you organize your file system.  The web lets you essentially treat  
the entire world as an extension of your local file system; shouldn't you be  
able to organize it the same way?  How would your file system look if you were  
reduced to a one directory organization?

One of the most important things about this graph editing mechanism is that the  
user can get rid of links he never follows, or has already looked at.  For  
example, if I'm browsing the current programmer sources at cs.orst.edu, I can  
delete all the files I already know about.  Then, when I go look at that  
directory again, the browser only shows me the new submissions.  I can see at a  
glance whether anything has arrived.

This last example points out the need to occasionally synchronize the local  
graph with the external world (no different, really, than checking for new  
newspostings).  The program should provide a way for the user to set the update  
interval on a document by document basis.  Naturally, a document only needs to  
be synchronized when the user actually goes to look at it.


MULTIPLE BROWSERS
-----------------

Others have suggested this.  The client should let me open a new browser rooted  
at the current selection.  Each browser has its own corresponding document  
window, so that the user can keep as many or as few around as he wants.


DRAG AND DROP
-------------

IconKit lets the user reorganize the graph through drag and drop.  Note that  
he's always just rearranging his local representation of the underlying web,  
and not the web itself--exactly analogous to the way that moving things around  
in FileViewer doesn't really affect the underlying file system.

The user can save documents and open documents using the familiar idioms of  
NEXTSTEP.  For example, if I'm looking at a directory of pictures, I can either  
use the document window to look at them one by one, or else double click them  
from the browser to open them with the default NEXTSTEP viewer.  If I find a  
picture I want to save, I can either drag it to a folder in my file system to  
make a local copy, or else just drag it to a convenient place in my local  
representation of the world wide web.  The difference, of course, is that in  
one case I have a copy of the picture on my system, whereas in the other I have  
a pointer to cyberspace that will retrieve it when I want it.

Comments are appreciated!



More information about the OmniWeb-l mailing list