Elmo at work

Elmo
An application for creating interactive and evolvable web sites


Requirements Specification
27 September, 1996

| Department of Computer Science
University of Colorado, Boulder


Berkebile     Masson     O'Hara     Stoller 
  

 
Sponsored by:---- Gerry Stahl

Center for LifeLong Learning and Design
Department of Computer Science
and Institute of Cognitive Science
University of Colorado, Boulder
Boulder, Colorado 80309 USA

L3D logo


|




Project Proposal

Most sites on the World Wide Web today are made up of static HTML pages that are maintained by a "webmaster." This website model is well suited for broadcasting unchanging information across the web to users, but is not well suited for presenting information tailored to a specific user need, or for allowing users to directly modify and extend the information contained in the site. DynaSites is one of several research projects within the Center for LifeLong Learning and Design (L3D) that attempt to transform the Web from a broadcast-oriented medium into a collaborative medium for constructing knowledge.

The DynaSites project aims to implement a new website model in which information content and hypertext links are stored as small pieces in a database, and then put together "on the fly" to create HTML pages. The DynaSites application will support dynamic websites that:

  1. are directly extensible by users without requiring HTML knowledge,
  2. deliver information tailored to the user's needs, and
  3. integrate many different types of content (such as e-mail, newsgroups, and conventional web pages).

An existing DynaSites demonstration of concept prototype is available as a starting point for this project, and project members can either build upon this prototype or redesign it.

In addition to being a stand alone application, DynaSites will be a central component of the WebNet system currently under development by the L3D Center. WebNet is a design environment for local area network (LAN) designers that couples LAN design tools with an information space containing LAN design knowledge. DynaSites will enable WebNet's information space to be implemented as a dynamic website, providing the benefits described above. Both WebNet and DynaSites will be developed in collaboration with LAN designers here on the CU campus.







Table of Contents


  1. INTRODUCTION
  2. REQUIREMENTS
    2.1 Requirements for the Substrate
    2.1.1 Software and Hardware Environment
    2.1.2 Compatibility
    2.1.3 Performance
    2.1.4 Functionality
    2.1.5 Code Design
    2.2 Requirements for the LAN Designers' Application
    2.2.1 Software and Hardware Environment
    2.2.2 Functionality
  3. DOCUMENTATION
    3.1 End User Documentation
    3.2 Site Author Documentation
    3.3 Substrate Developer Documentation
    3.3.1 Database Interface
    3.3.2 Web Server Interface
    3.3.3 Site Authoring Interface
    3.3.4 Code Architecture Guide
  4. DELIVERABLES
  5. OPTIONAL FEATURES AND ENHANCEMENTS
  6. SUMMARY
  7. GLOSSARY
  8. RELATED DOCUMENTS







1. INTRODUCTION


The Center for LifeLong Learning and Design (L3D) is a joint effort of the Department of Computer Science and the Institute of Cognitive Science at the University of Colorado in Boulder. The mission of the center is to establish, both by theoretical work and by building prototype systems, the scientific foundations for the construction of intelligent systems that serve as amplifiers of human capabilities.

Most researchers in human-computer interaction have tried to make computers easier to use. Unfortunately, usability often comes at the price of power, or "usefulness." The Useful & Usable (U-U) group within L3D is interested in increasing usability and usefulness at the same time. Their current project is a software package (WebNet) for the specialists who design and manage local area computer networks (LANs).

One of the desired results of the WebNet project is to understand the ways in which a group information space can be maintained such that it can grow in response to new or changing information. Toward this end, the U-U project would like to design a web interface to a knowledge base that is interactive, allowing users to modify the content on which it is based. The Elmo project is intended to fill this role by mediating interaction between a client web browser, a server database and an http server. Figure 1 shows an overview of the structure of Elmo. When a web client requests pages from the site, the web server will evoke Elmo. Elmo will build pages based on information contained in a database and then return the pages to the web server. The structure of a site will be determined by a web site author who will build formats for pages via an interface which Elmo will provide. Once a site is constructed, users on web clients will be able to update the information in the database that is used to build pages. Elmo will moderate changes to the database from web clients based on the structure imposed by the site's designers.



Elmo Logical Diagram

Figure 1

The next section describes the environmental and functional requirements for the project. In order to understand these requirements, we must first present some terminology. In the context of Elmo, "end users" are the people who access and use an information space via a client web browser; a "site author" is a web site designer using Elmo's site authoring interface; and "substrate developer" refers to anyone who will modify the code of Elmo to extend its functionality during the initial project or to support further research in the future. More information on terminology can be found in the Glossary

The project is divided into two major components. Each of these components will inform the design of the other and will therefore take place in parallel whenever possible. The first component will consist of producing the substrate of web functionality. This portion of the project corresponds to creating the component labeled "Elmo" in Figure 1. The second element of the project will consist of utilizing the authoring interface of Elmo to build a web site with features useful for the community of LAN designers and managers. This second portion of the project will demonstrate the capabilities of the substrate. Because the L3D group is a research group, it is not essential that the product of the project is a robust piece of software suitable for wide distribution (although that is a desirable goal). It is important, however, that the product is able to demonstrate the functionality being investigated (in this case, creating usable and extensible web sites). Designing an interactive web site for LAN designers using Elmo will facilitate an understanding of the utility of the mechanisms which Elmo will use. Since each part of the project will provide a better understanding of the other part, the two portions need to be performed in conjunction.

This document is divided in sections that describe the requirements for the Elmo software artifacts, the documentation that must be produced and the items which must be delivered to the L3D group at the completion of the project. There is also an additional section which describes optional features that may be added to Elmo as time permits.





2. REQUIREMENTS

This section will discuss the requirements for the software itself. Documentation requirments will be discussed in the next section. The requirements for the software are divided into requirements for the substrate, which includes compatibility, performance, functional and other considerations, and requirements for the LAN designer's application with include considerations for the functionality of the application as well as the software and hardware environment in which it will operate.

2.1 Requirements for the Substrate

The Elmo substrate will support features upon which a web site can be built. This section describes the functionality the substrate is expected to support.

2.1.1 Software and Hardware Environment

Elmo is required to interact with an http server and a database. No specific hardware or software platform is required. However, in the interest of future research which may utilize Elmo, interfaces to other software (such as the web server and database) will utilize industry standard interface specifications and/or software whenever possible. Examples of acceptable systems are: the Common Gateway Interface (CGI), Apache's Application Programmer Interface (API), WebStar's API, Structured Query Language (SQL), Open DataBase Connect (ODBC), or AppleScriptable applications on the Macintosh such as FileMaker Pro. In the interest of supporting continuing research using Elmo, software and interfaces will be selected on the basis of expectations that they will be supported in the future.

Users of the system will access sites using Netscape's Navigator browser version 2.0 or later. Other browsers may work correctly and may be explicitly supported by Elmo, but are not required to work correctly.

2.1.2 Compatibility

Elmo will produce documents that conform to the World Wide Web Consortium's (W3C) html version 3.2 format specification. Any html version 3.2 features that are used in Elmo which are not supported by Netscape version 2 for the Macintosh will be documented.

In order to provide compatibility with other components of the WebNet project, the database on which Elmo is built must be accessible to applications running on the Macintosh platform. This may be accomplished by using a Macintosh database program or by utilizing a database sever which can be accessed via a network.

2.1.3 Performance

There are no specific performance requirements. However, Elmo will support simultaneous users with reasonable response times. No more than five users are required to be able to use the system at once. The average time to serve a single (randomly chosen) page of less than 100 Kb will be less than 10 seconds when a single user is accessing the system. There are no performance requirements when multiple users are accessing the system, although it is expected to correctly serve pages without omissions or errors.

2.1.4 Functionality

The Elmo program is expected to store the contents of a web site as a collection of nodes and links in a database. Elmo will provide an authoring interface which will allow a web site creator to specify the structure of a site, the nodes of information used to construct each page, the types of links allowed, and the end user modifiable portions of the site. The authoring interface need not be friendly and may simply consist of editing text files. However, the interface needs to be well documented and designed in such a way that later developers can build upon it by adding a visual authoring interface or other improvements.

Links on pages within a site served by the Elmo system are expected to be typed. When a link is available on a page, a user will have some indication of what the flavor of the link is. For instance, semantic link labels might be provided to indicate the nature of the destination of a link.

Elmo is expected to provide a mechanism for users to modify and add to a web site within constraints defined by a web site author. For instance, a user might be able to annotate a message on a discussion list, add a link to an outside web site on a given page, modify a definition in a glossary, or link a word on a page to another section of the site. These activities will be supported without requiring the end user to have an understanding of database query languages or html code.

Elmo will maintain user states which will allow an end user to set viewing preferences. For instance, an end user might select a custom entry point into the information space which will be unique for that user. The end user will also be able to choose which link types are shown.

The site authoring interface in Elmo will allow a site author to create the schema for a web site. It will support the ability to specify the types of links available within a site, attach properties to nodes, and define relationships between link types and node properties. These features will allow the site author to apply the capabilities of the substrate to their particular domain. The author will have the ability to specify access permissions for users. Explicit features of these functions will be explored in the design phase of the project.

2.1.5 Code Design

As a part of the Center for LifeLong Learning and Design's ongoing research, the code written for the Elmo project must be designed to be usable by future developers working in the L3D group. The code will be clear and extensible. Obfuscated code or techniques will be avoided.

The standard platform within the L3D group is the Macintosh. Components for the Elmo project should either be cross platform or Macintosh solutions. Any solutions which are not either Macintosh based or cross platform will require strong motivation.

2.2 Requirements for the LAN Designers' Application

The LAN designers' application will be built using the Elmo substrate and will serve as a demonstration of the capabilities which Elmo provides. This application will be created using the site authoring interface provided by Elmo. The information base that accompanies the application will be populated with enough information to facilitate testing.

2.2.1 Software and Hardware Environment

All user interaction with the LAN designers' application will be through Netscape Navigator version 2.0 or later. The end user is not required to have any other software and no specific hardware platform is required.

2.2.2 Functionality

The application will support at least three different document types. These might include such types as problem and solution tuples, specifications on hardware, work plans, glossaries, network diagrams, trouble queue entries and histories, wire maps, host tables, localization information, LAN design rationale statements, etc. Specific types of documents to implement will be selected at design time.

The application will be designed specifically for the needs of a small community (4-12) of LAN designers. Ideally, the application will be used by a group of subjects willing to provide feedback. Although the functionality in the Elmo substrate will be very broadly applicable, the LAN designers' application should be as specific to the LAN designers' domain as possible.

Based on constraints placed on the application by the site author, end users will be able to edit, comment or extend information on the site. The web site will function as a communication medium for the community of end users. The Center for LifeLong Learning and Design is interested in human-computer interaction on each of the levels described in this document (end user, site author, and substrate developer/researcher). Because the goal of the group's research is to gain a better understanding of the interactions on each of these levels, a user-driven approach to design (top down) as opposed to a developer driven approach to design (bottom up) must be taken. In order to facilitate the integration of top down, user-driven methods, feedback produced by testing will be an important part of the project. Evaluation of feedback will be an integral part of the project and may inform further design decisions in both the substrate and the LAN designers application during the course project.







3. DOCUMENTATION

The following section describes three basic types of documentation that are required. All documentation for the project will be made available through web pages.

3.1 End User Documentation

It is assumed that end users understand how to use the Netscape Navigator web browser in order to access documentation. Because the Elmo concept is designed to be easily usable, the end user documentation will not need to be elaborate. However, in the instances where documentation is required, it should not assume that the user has any explicit knowledge beyond domain knowledge (LAN design) and browser familiarity.

3.2 Site Author Documentation

Documentation will be provided to explain the site author's interface to Elmo. This documentation will allow a web site designer to build web sites which utilize the functionality of the Elmo substrate. A short tutorial will be provided to demonstrate how a web site can be built to support a specific domain of information.

3.3 Substrate Developer Documentation

Future research will utilize the Elmo substrate. To support this research, documentation will be provided which will allow developers to understand Elmo's structure and extended it. The following sections describe the major features of this documentation. These include the database interface, the web server interface, the site authoring interface, and the code architecture guide.

3.3.1 Database Interface

Documents will be provided that explain Elmo's database interface. This interface may lie on top of a standard database protocol. In this case, the documentation will describe how Elmo utilizes this protocol and how other components of WebNet can access information in the database.

3.3.2 Web Server Interface

Documentation will be provided which describes how Elmo interacts with the web server, including how Elmo is activated by the server and how information is passed to the server.

3.3.3 Site Authoring Interface Specification

Documentation will be provided for developers which will facilitate the construction of improved site authoring tools. This documentation will include a detailed description of the control interface to Elmo's features.

3.3.4 Code Architecture Guide

In the interest of supporting continuing research using Elmo, an overview of the code structure will be provided. Code will be commented in order to make it extensible by future developers.







4. DELIVERABLES

The following components will be delivered to the Center for LifeLong Learning and design at the end of the project:

bulletBinaries for any compiled source code
bulletComplete source code for the project
bulletThe documentation described in Section 3
bulletThe LAN designers application, which will include a demoable scenario.

Delivery of these items will not preclude public release of portions of Elmo's code, binaries or documentation.





5. OPTIONAL FEATURES AND ENHANCEMENTS


There are many desirable third and fourth generation hypermedia concepts of interest to the L3D group which the project will have an opportunity to explore. As time and resources permit, the following features may be added to Elmo:

bulletUser views and perspectives:
Views and perspectives would allow the end user to actually create their own applications by specifying personalized windows into the underlying information space.
bulletSite author interaction via the web:
In the basic model, the site author has to create Elmo based applications using local applications. It would be advantageous to allow the author to do all of his or her work via the web.
bulletA richer set of document types for the LAN designer's application:
The document types (trouble queues, host tables, etc.) suggested in this paper for the LAN designer's application are only a subset of the types of applications which could be useful to LAN designers. As the project progresses, more useful document types will be identified which could also be added to Elmo.
bulletMore complex link types:
Link subtype hierarchies, link modifiers, and relational links are concepts from 4th generation hypermedia which could be employed in Elmo.
bulletEnd user creation of new node and link types:
In the basic model, only the site author can specify node properties and link types. In a more flexible model, end users would be able to add new types to the database. This functionality would probably be required in order to implement user views and perspectives.







6. SUMMARY


The Elmo project is a research prototype which will couple a database to the web. The end users of applications authored using Elmo will be able to modify the domain specific information space contained in a site. To demonstrate the concepts involved and to study user interaction, it will be used to facilitate the exchange of knowledge between a community of LAN designers. Elmo development will consist of two elements: one in which a substrate is built, and another in which a LAN designer's application is built and seeded with enough relevant domain knowledge to be useful to a community of users. During development Elmo will be tested in the field with LAN designers and feedback will be incorporated back into the product.







7. GLOSSARY


bulletAPI - Applications Programming Interface - An interface that a web server provides to allow a programmer to build custom software modules to extend the functionality of a server.
bulletCGI - The Common Gateway Interface - An open interface that most web servers provide to allow the production of dynamically generated content and extended user interaction.
bulletend user - A user of the system in a particular domain. End users are not assumed to have knowledge of html or database query languages.
bulletevolvable - Able to change in response to new information over time.
bulletknowledge base - A set of information that is relevant in a specific domain.
bulletinformation space - A collection of domain specific information that is available to a community of users who utilize shared communication channels.
bulletSER - seeding evolution reseeding - A theoretical model for the maintenance of information spaces. An information space is initially seeded with a critical mass of domain specific information by a site author. It is then evolved by end users as they add new information and make changes to existing information. Periodically, the information space is re-seeded by the site author to re-organize the information space.
bulletsite author - The individual who applies the substrate to a specific domain.
bulletsubstrate - An underlying framework upon which an application can be built.
bulletsubstrate developer - A developer who creates or modifies code in the substrate.







8. RELATED DOCUMENTS


bulletThe Apache Server API

bulletM. Bieber, F. Vitali, H. Ashman, V. Balasubramanian, H. Oinas-Kukkonen. Forth Generation Hypermedia: Some Missing Links for the World Wide Web

bulletThe Common Gateway Interface

bulletG. Fischer. - Making Learning a Part of Life: Beyond the "Gift Wrapping" Approach to Technology

bulletG. Fischer, R. McCall, J. Oswald, B. Reves, F. Shipman. - Seeding, Evolutionary Growth and Reseeding: Supporting The Incremental Development of Design Environments Department of Computer science and Institute of Cognative Science University of Colorado.

bulletOpen DataBase Connect

bulletStructured Query Language

bulletWebStar API

bulletWorld Wide Web Consortium's html 3.2 specification :
  --  &lthttp://www.w3.org/pub/WWW/MarkUp/>