We are currently developing an experimental server and client that allows Web users to see who else is on a page, communicate with them, and travel around the Web as a group. Information on the Web is usually organized and specific; users accessing the same page are likely to be in search of the same type of information and share similar interests. Providing them with the ability to communicate with each other can facilitate information searches and help foster community.
Furthermore, the popularity of various live conferencing systems (e.g. IRC, the chatrooms of AOL, social MUDs, etc.) attests to the usefulness of real-time talk interfaces. Adding communicative abilities to Mosaic's easy access to many different types of media makes it possible to create conference sessions in which the users can insert hypertext links, sounds and images amidst their normal conversational text.
Yet what good is a portrait if there is no audience to see it? The challenge, if one wants to be seen, is to make a page so compelling in its utility or oddity that others will add links to it. Or simply talk about it. The social function of the Web extends beyond its borders - pointers to particularly amusing or informative Web sites are passed along the virtual grapevine: they are forwarded by email, posted to mailing-lists, appended to finger files. Such pages are truly destinations, visited by hundreds or thousands of Web explorers daily.
Each visitor, however, experiences the site in complete solitude. For some sites, this is fine. Many pages serve no social function: the visitor to The Clearinghouse for Subject-Oriented Internet Resource Guides is looking for references, not acquaintances. Yet at other sites the isolation is unfortunate, for they are ideally suited to be gathering places for like-minded individuals. The X-Ray Server, for instance, says that it is "dedicated to providing information of interest to the XUV and X-ray spectroscopic community." And there are countless others. There are are pages for those interested in numerical aerodynamic simulations and for those seeking technical information about MBONE or advice about quilting. There are pages for runners, for Kiss fans, for Oliver North supporters and for gay-rights activists. These pages draw people who share research interests, world views, obsessions; yet, they are unable to communicate with - or even sense the presence of - each other.
The Sociable Web allows people to see who else is on a page and to communicate with them (and to communicate not only with words, but with sounds, pictures, and links to other places). It also allows people to travel around the Web together as group. It makes the Web into a social environment.
Seeing who else is on a page. A "Who's Online" window shows who else is on the page. People can be seen as simple text strings - their name and their host machine - or they can provide a small graphic to represent themselves.
Text version
Graphic version
This window lets the user quickly scan for a particular person, such as the owner of the page or an acquaintance often found at this spot. It also gives the viewer a sense of the activity level of the page: are there only a couple of people here or is this a major gathering spot, a favorite Web meeting point?
Virtual location. The Sociable Web system is based on the concept of shared location: you are able to talk only with other people who are on the same page. However, the big activity on the Web is wandering - following links, jumping from page to page. If you had to literally stay on the same page when conversing with others on it, it would seem confining. Virtual locations allow the user to put down an anchor on a particular page - where they appear to remain - and still wander about the Web with their main browser window. This allows people to have a real "home" page, a place where they can usually be found, without limiting their use of the Web.
Privacy. At times, one does not wish to be sociable. The WebTalk browser allows the user to be invisible. In such a state, one may visit Sociable Web pages without showing up in anyone's Who's Online window. However, if not seen, one can't be heard: it is necessary to be visible to talk.
Name and visibiity setting
One may also participate pseudonymously. Since the connection is specified by machine name and port, one can use any name as a "callsign". It will be up to the server to determine whether visitor identity is authenticated and by what mechanism: this is part of establishing the general style of the server's conferences.
WebTalk. The main feature of the Sociable Web is WebTalk: the discussions that occur in the context of the Web and that use its rich hypermedia capabilities. WebTalk discussions are live: one types a message and it appears instantly (or at least reasonably fast) on the screens of the intended recipients. The discussions can be public conferences, open to all, or they can be private conversations between two people.
Discussion window (try the buttons and links).
Images, sounds, and links to other pages can all be integrated with the flow of words. The WebTalk client includes several tools for fluency in hypertext conversation. For instance, the user can highlight a phrase and then, simply by clicking on a picture (or link) on any Web page, attach the chosen object to the phrase. When the phrase is sent, the recipient sees it as highlighted text; if the recipient clicks on it, he or she will receive the picture (or follow the link).
A WebTalk conversation can transcend smiley-faces. One can have an entire library of eloquent pictorial - or auditory - interjections. And a WebTalk conversation can be completely interwoven with the vast resources of the Web. One can point to references, counterarguments, examples, expansions - all within a single sentence.
Current status. Currently, the Sociable Web system, as described above, is implemented, running, and in the process of final debugging. We have a page showing the current status of the Sociable Web; this will also be the place to obtain the release code for clients and servers.
As for future work, there are several directions we see this work taking. One is developing the range of server styles. A Sociable Web server should be able to determine the nature of the conferences that occur on its grounds. Some might be very casual, allowing anyone to create a conference and permitting people to use any name as their identifier (this is for now the normal setup). Other servers might wish to be more restrictive, permitting only the page owner or a chosen group of people to form (and dissolve) conferences and requiring that participants use their real (or at least, traceable) name. These and other variations in server style will help a page owner to create a social atmosphere that best matches the environment of the page.
We are also looking into ways of using this interface to create highly interactive Web sites - pages that converse. With the WebTalk mechanism, a page should be able answer queries and do searches (and even make simple, yet colorful, small talk) -- the page can be interactively updated and immediately downloaded to the client.
A WebTalk client sends a message to the server whenever it arrives at or leaves from a page. A non-WebTalk server ignores these messages; a WebTalk server acknowledges them, letting the client know that it can look for other users on the page. The WebTalk server uses these messages to keep track of who is currently on its pages. The message provides the user name, host and WebTalk port number - all the information needed to establish contact with that person.
The WebTalk port is a tcp socket that is kept open for data transfer: it is through this socket that the WebTalk discussions take place. Private conversations and public conferences are handled differently, to minimize the load on the server. For private conversations, the server simply provides the two parties with each other's address; the connection is made directly between the two. For public conferences, the server acts as a conduit; the user sends the message to the server, which relays it to the other participants. Messages are received with data identifying the sender and the discussion it was sent to (since one may be involved in several discussions at once). It is up to the individual WebTalk browser to decide how to differentiate between the incoming streams.
Niel Robertson is an computer science student at MIT and is the
developer of the Sociable Web program. He has worked on network
simulators, written graphical interface toolkits, and developed and
operated a full-featured bulletin-board system.
nielr@mit.edu