throbber
Second International WWW Conference - Chicago, Oct 17-21/94
`
`Page 1 of 11
`
`Providing Data on the Web: From Examples to
`Programs
`Carlos A. Varela, Caroline C. Hayes
`Department of Computer Science
`University of Illinois at Urbana-Champaign
`cvarela@cs.uiuc.edu, hayes@cs.uiuc.edu
`
`URL: http://fiaker.ncsa.uiuc.edu:8080/WWW94-2/paper.html
`
`Abstract
`
`The World-Wide Web provides access to a global information universe using available technology
`[Berners-Lee et al. 1992]. In order to fully realize the benefits of this information system, we are
`developing a system, Zelig, to provide on-the-fly access to databases and dynamic information through
`effective user interfaces [Varela and Hayes 1994].
`
`In this paper, we have extended Zelig to generate code for performing conversions from fixed data
`formats into hypertext. Consequently, information providers only need to give examples of their current
`database reports and the desired hypertext to be generated for those particular examples. Zelig produces
`the program to extract relevant data from the reports and the schemata to drive the hypertext generation
`process. We include as an example, an interface to ph/qi, the CCSO nameserver software providing data
`for academic institutions around the world.
`
`1. Introduction
`
`The World-Wide Web offers easy access to a universe of information by providing links to
`documents stored on a world wide network of machines in a very simple and understandable fashion.
`Much of its success is due to the simplicity with which it allows users to provide, use and refer to
`information distributed geographically around the globe. Another important feature is its compatibility
`with other existing protocols, such as gopher, ftp, netnews and telnet. Furthermore, it provides users
`with the ability to browse multimedia documents independently of the computer hardware being used.
`
`The World-Wide Web is based on the HyperText Transfer Protocol, HTTP, and the HyperText Markup
`Language, HTML. HTTP is a generic object-oriented stateless protocol to transmit information between
`servers and clients [Berners-Lee 1992]. HTML is a simple, yet powerful platform-independent
`document language [Berners-Lee and Connolly 1993].
`
`When the documents to be published are dynamic, like those resulting from queries to databases, the
`hypertext needs to be generated. For this purpose, there are scripts, which are programs that perform
`conversions from different data formats into HTML on-the-fly. Even tough for fixed data formats these
`scripts may be simple, providers need them to be able to publish their data on the Web. Furthermore,
`even basic changes to the data formats or the generated HTML, imply changes to these scripts.
`
`To overcome these problems, Zelig generates scripts that base their HTML generation on schemata
`[Varela 1994]. In this research we extended Zelig, to additionally produce code for performing
`conversions from fixed data formats into HTML. There are two main stages in this conversion process:
`
`http://archive.ncsa.uiuc.edu/SDG/IT94/Proceedings/DDay/varela/paper.html
`
`10/1/2002
`
`Petitioner Microsoft Corporation - Ex. 1076, p. 1
`
`

`

`Second International WWW Conference - Chicago, Oct 17-21/94
`
`Page 2 of 11
`
`extracting database, record and field information from your traditional database report; and instantiating
`that categorized information along with the query information into a particular schema.
`
`Using Zelig to provide access to dynamic information in a fixed format, providers only need to give
`examples of their current text reports and the desired hypertext to be generated for those particular
`examples. Our system, Zelig, produces the program to extract relevant data from the reports and the
`schemata to drive the hypertext generation process. Thus, it becomes easier to provide effective user
`interfaces to dynamic information in the World-Wide Web.
`
`In the next section, we elaborate more on the server-client model used by the World-Wide Web, and the
`functionality of scripts. In section 3, we highlight the problems faced by providing WWW access to
`dynamic data. In section 4, we explain the architecture of Zelig, our system that performs schema-based
`HTML generation. In section 5, we demonstrate the ideas presented with a gateway to the CCSO ph/qi
`nameserver databases. Finally, in section 6, we give some conclusions and results.
`
`2. Background
`
`2.1. The World-Wide Web: A Server-Client Model
`
`The World-Wide Web consists of a network of computers which can act in two roles: as servers,
`providing information; or as clients, requesting for information.
`
`
`Fig 2.1. Server-Client Architecture [Berners-Lee and Cailliau 1992].
`
`This communication is performed under the stateless HTTP protocol. In a stateless protocol, connections
`are created, processed and closed without keeping state information. The server actions depend on
`predefined methods such as GET, POST, PUT, and DELETE.
`
`The resulting information can be served in different format types and it is the client's responsibility to
`present it in a consistent and clear manner. The most common format is HTML, which contains
`information, and its logical structure; but leaves out those details particular to specific browser
`
`http://archive.ncsa.uiuc.edu/SDG/IT94/Proceedings/DDay/varela/paper.html
`
`10/1/2002
`
`Petitioner Microsoft Corporation - Ex. 1076, p. 2
`
`

`

`Second International WWW Conference - Chicago, Oct 17-21/94
`
`Page 3 of 11
`
`implementations.
`
`It is important to note that a server can provide static documents to the clients, but it could also provide
`transparent access to databases or other information sources. In other words, the clients can also request
`for specific queries that should be processed by the server. Scripts or gateways take care of this
`processing. These are programs that communicate with the WWW server software under a predefined
`interface. The most common currently used interface is the NCSA's Common Gateway Interface, CGI
`[McCool 1993].
`
`2.2. Scripts: WWW Gateways to Databases
`
`Scripts are CGI compliant programs that act as clients to the applications owning the data and
`produce the corresponding hypertext for the requested information. They communicate with the WWW
`servers through an interface, in this case CGI, which establishes how to pass the information from the
`WWW client to the script and from the script back to the WWW server and subsequently to the WWW
`client.
`
`
`Fig 2.1. Purpose of a script and a WWW server [Berners-Lee and Cailliau 1992].
`
`These scripts are written in any programming language (like C, C++ or PERL) and their main functions
`together with the WWW server are:
`
`l To receive the information from the WWW client under the hypertext transfer protocol, HTTP.
`l To perform a query for the database server, allowing the WWW server to act as a database client.
`l To parse the database server results.
`l To generate an HTML document and send it to the WWW client.
`
`3. Providing Dynamic Data on the Web
`
`After the short introduction in the previous section to the mechanisms under the Web, let's see
`why we want to automate the script creation process:
`
`l To provide access to many information sources that are currently using non-hypertext formats.
`
`http://archive.ncsa.uiuc.edu/SDG/IT94/Proceedings/DDay/varela/paper.html
`
`10/1/2002
`
`Petitioner Microsoft Corporation - Ex. 1076, p. 3
`
`

`

`Second International WWW Conference - Chicago, Oct 17-21/94
`
`Page 4 of 11
`
`There are many fixed data formats for which we would need to create different scripts. For
`example: phone information, bibliographic databases (BibTeX), papers (LaTeX), electronic mail,
`server administration usage statistics (logs), UNIX manual pages, file directories.
`l To more easily design hypertext interfaces to databases by making changes at the level of
`schemata, as opposed to modifying, recompiling and retesting scripts.
`l To create evolving user interfaces, by instantiating schemata to most common accessed fields for
`queries, and changing the order or level of the different user interface actions.
`l To increase the functionality of the data management system. For our phone example, in section 5,
`we have included sorting records, which was not in the original ph/qi functionality.
`l To reuse the schemata across different databases to provide similar look-and-feels for users.
`
`4. Zelig: From Examples to Programs
`
`Figure 4.1 shows a general framework for Zelig. Scripts generate HTML reports based on
`instantiating schemata to the query info and the categorized database output. The schemata can be taken
`from a library, or generated from HTML report examples. The query info is created by the HTML
`Query Form, which is provided by the application designer. This information is given to the traditional
`database manager system which returns a report in a fixed format. This report is parsed and relevant
`information is extracted and categorized. The resulting HTML Report can contain links to more
`information on particular records, or even additional HTML Query Forms for more database processing.
`
`Fig 4.1. A General Framework for Zelig.
`
`
`
`In section 4.1, we see how the HTML instantiation process takes place. In section 4.2, we see how to
`extract Query Info from the HTML Query Form, how to extract Categorized Output from the traditional
`DB Report, and how to abstract a schema from user-given HTML Examples.
`
`http://archive.ncsa.uiuc.edu/SDG/IT94/Proceedings/DDay/varela/paper.html
`
`10/1/2002
`
`Petitioner Microsoft Corporation - Ex. 1076, p. 4
`
`

`

`Second International WWW Conference - Chicago, Oct 17-21/94
`
`Page 5 of 11
`
`4.1. Schema-Based HTML Generation
`
`In traditional HTML generation, user interfaces are created by scripts directly. This implies that
`changes to interfaces have to be performed at the level of the source code of the script. We present a
`methodology based on schemata, to allow designers to debug and maintain the user interfaces without
`directly changing the scripts.
`
`In this section, we will explain the information that is provided by the schemata to the scripts for
`document generation. Then, we will give a description of ZHTML, the language to write these
`schemata, which is an enhancement to HTML incorporating directives for database interface generation.
`
`4.1.1. Instantiating schemata
`
`The scripts base their hypertext generation not only on the current parsed database query results,
`but also on existing ZHTML schemata. We can further categorize this information as:
`
`l Current database transaction results. These are the results generated by a query to a database.
`We will see in section 4.2 how to interact with the database server, parse its results, and
`standardize the query information to the following taxonomy:
`
`¡ On an application level.
`The most general database information. For example: name, number of tables, default query
`table.
`¡ On an object level.
`The information for a specific object of our application. For example the table PEOPLE
`may have: name, number of records, number of fields, default field for queries.
`¡ On a field level.
`The most specific information about a query for a given record. For example: field names,
`default field values, current field values, length, type, and access policy.
`
`l Existing ZHTML schemata. These are generated either from HTML report examples given by
`the interface designer, or taken from a library. Some library examples are:
`
`¡ ISINDEX-based user interface schema.
`This schema is based on the HTML <ISINDEX> tag. It is important to note that there are
`many indexed databases in the Web that use WAIS as the basis for database search.
`¡ Forms-based user interface schema.
`This schema makes use of the forms-based WWW browsers to provide a more friendly user
`interface with menus and widgets to perform the most common database operations.
`¡ Application-specific user interface schema.
`This schema is usually an advanced interface tailored to the specific needs of a database
`user interface. It still allows evolution, in the sense that certain constructs don't imply any
`order or level of access in the generated HTML documents.
`
`4.1.2. ZHTML Language Description
`
`A ZHTML schema is an HTML document which has been annotated with comments, which are
`used as directives for the script. These comments are parsed and executed by the script, and the resulting
`text is placed instead of the original comment. This is performed at run-time, using the current database
`query results. Future work includes writing script code generators departing from these schemata.
`
`http://archive.ncsa.uiuc.edu/SDG/IT94/Proceedings/DDay/varela/paper.html
`
`10/1/2002
`
`Petitioner Microsoft Corporation - Ex. 1076, p. 5
`
`

`

`Second International WWW Conference - Chicago, Oct 17-21/94
`
`Page 6 of 11
`
`The ZHTML comments are similar to HTML constructs. They are generally of the form:
`
`<!ZTAG> ZHTML body <!/ZTAG>
`
`There are several Zelig directives with different functionality, including: print a variable value, run an
`external function printing its output, conditionally include the ZHTML body, traverse all the current
`database records invoking Zelig recursively on the ZHTML body and traverse all the fields in a specific
`object.
`
`Following are the main constructs of this Document Type, even though a formal Document Type
`Definition (like the DTD shown for HTML in [Berners-Lee & Connolly 1993]) is still in progress:
`
`l <!ZPRINT variable>
`returns the current value of an HTML form variable, or an application-level variable. If the
`variable is object-level or field-level, then it needs to be in the scope of a ZFOR tag.
`l <!ZRUN external_fn>
`runs the script function external_fn and returns its output.
`l <!ZIF cond-expr> ZHTML body <!/ZIF>
`returns the output from ZHTML body if cond-expr is true. It returns the null string otherwise.
`l <!ZFOR TYPE=traversal_type> ZHTML body <!/ZFOR>
`traverses all the tables, records or fields of the current query, depending on the traversal_type
`(which can be the value TABLES, RECORDS, or FIELDS) and returns the output from ZHTML
`body instantiated to each of the loop elements in the query.
`
`4.2. Automating the Database Report Extraction
`
`4.2.1. Database Output Categorization
`
`We'll concentrate on database manager systems that produce reports with a fixed format. These
`reports usually contain tabular information, where application-level data is in the beginning and end of
`the produced report. For example, the directory being listed, or the university being accessed for phone
`information. In the middle, we often find repetitive information in a structured fixed way. It's repetitive
`because there is one entry for each record matching the original query. These entries are usually
`separated by a record separator, which allows us to differentiate among records. Finally, we also have a
`field separator. which allows us to divide record information into yet more specific detail.
`
`In a file listing example, the first line has application-level information, the total space occupied by the
`directory. Then, we see records (files) that in turn can be divided into fields (name, size, owner, date...)
`What we do, is to guess where these separators lie and confirm them with the user, prompting her for
`any unknown information. Then, we proceed to generate the data structure, necessary to instantiate the
`ZHTML file once new queries get requested.
`
`4.2.2. Generating the Query Info from the HTML Form
`
`HTML forms contain a name and a value pair. For example, a form may contain three variables:
`directory, mask, and sort-by which have default values and get instantiated to the user-given values
`when the form is submitted.
`
`Note that the query info described above, can contain information that will not be processed by the
`DBMS, but instead it is functionality provided additionally by Zelig, such as sorting by a specific field.
`
`http://archive.ncsa.uiuc.edu/SDG/IT94/Proceedings/DDay/varela/paper.html
`
`10/1/2002
`
`Petitioner Microsoft Corporation - Ex. 1076, p. 6
`
`

`

`Second International WWW Conference - Chicago, Oct 17-21/94
`
`Page 7 of 11
`
`Here in this subsection, we work on generating the database query from the form variable bindings and
`the given query example.
`
`In our examples, we mainly have to create:
`
`l % ls <directory>/<mask> or
`l % ph <name> return <fields>
`
`4.2.3. Generating a Schema from a Given Hypertext Example
`
`Once we know for a particular example, how we want our hypertext to look like; i.e. we have
`HTML files for specific queries; we can abstract those ZHTML schemata to be instantiated to other
`queries as well.
`
`We do this by querying the user when we aren't sure if the information parsed is relevant (needs to be
`categorized to subsequently be used by the schema instantiation algorithm) or it is just a separator.
`
`In the following section, we show an example illustrating a schema, and a couple of its possible
`instantiations depending on the database query.
`
`5. A Running Example: The CCSO Phone Nameserver Database
`
`The CCSO nameserver software provides a server-client model for accessing phone directory
`information from academic institutions [Dorner 1992]. The figures in this section have been created
`browsing HTML files in NCSA Mosaic for X [NCSA 1993].
`
`The following is an HTML Query Form to access those databases:
`
`http://archive.ncsa.uiuc.edu/SDG/IT94/Proceedings/DDay/varela/paper.html
`
`10/1/2002
`
`Petitioner Microsoft Corporation - Ex. 1076, p. 7
`
`

`

`Second International WWW Conference - Chicago, Oct 17-21/94
`
`Page 8 of 11
`
`
`
`The following link contains a schema for instantiating the categorized database information, once a
`query has been made. We will show two different instantiations depending on two different user queries
`for this same schema:
`
`l The first query example asks for the names and phone numbers of all UIUC entries with the name
`Hardin sorted ascendently. Our schema instantiation for such a query results in the following
`HTML file, which in turn, is displayed by the browser as the hypertext shown in the next figure.
`
`Each of the records is a hyperlink to more information on that particular person. Also, links
`previously visited have a different color.
`
`l Our second query example asks for the same entries, but it also queries their address. Additionally
`the sort order is descendent, as opposed to ascendent. Following the links, you can see the HTML
`file generated and its corresponding hypertext output.
`
`http://archive.ncsa.uiuc.edu/SDG/IT94/Proceedings/DDay/varela/paper.html
`
`10/1/2002
`
`Petitioner Microsoft Corporation - Ex. 1076, p. 8
`
`

`

`Second International WWW Conference - Chicago, Oct 17-21/94
`
`Page 9 of 11
`
`
`
`6. Conclusions
`
`The success of a distributed information system lies heavily on the simplicity for generating,
`providing, using and referring to information. The World-Wide Web is composed by excellent
`protocols, tools and languages to perform these actions for static information. We have designed an
`extension to this technology to easily provide access to dynamic information, such as the result of
`queries to existing databases.
`
`The functionality for our system, Zelig, was described in this paper. Its main improvements over
`previous technology include:
`
`l providing code generation for converting fixed data formats into hypertext;
`
`l allowing evolving user interfaces for more effective human-computer interaction;
`
`l increasing the functionality of applications owning the data, by offering additional operations such
`as sorting; and
`
`l reusing HTML schemata to provide similar look-and-feel interfaces across different applications.
`
`We provided a hyperlinked example giving WWW access to the CCSO ph/qi nameserver software. This
`gateway running at NCSA, as of September 1994, provides phone directory information for about 250
`academic institutions around the world, and receives more than a thousand queries per day.
`
`Ultimately, Zelig offers the user an effective way to generate fully customized interfaces to dynamic
`data, further closing the gap between information generation, provision and use.
`
`Acknowledgements
`
`http://archive.ncsa.uiuc.edu/SDG/IT94/Proceedings/DDay/varela/paper.html
`
`10/1/2002
`
`Petitioner Microsoft Corporation - Ex. 1076, p. 9
`
`

`

`Second International WWW Conference - Chicago, Oct 17-21/94
`
`Page 10 of 11
`
`Thanks to the NCSA Software Development Group for their helpful comments on this paper and
`their excellent research and working environment. Additional thanks to Professor Dershowitz, for his
`comments and motivating research [Dershowitz 1983].
`
`References
`
`[Berners-Lee 1992]
`T. Berners-Lee. Hypertext Transfer Protocol Requirements. Internet Working Draft. CERN. Work
`in progress.
`http://info.cern.ch/hypertext/WWW/Protocols/HTTP.html
`
`[Berners-Lee et al. 1992]
`T. Berners-Lee, R. Cailliau, J. Groff, B. Pollermann. World-Wide Web: The Information
`Universe. Electronic Networking: Research, Applications and Policy, 2(1), pp. 52-58, Meckler
`Publications, Westport CT, Spring 1992.
`ftp://info.cern.ch/pub/www/doc/ENRAP_9202.ps
`
`[Berners-Lee and Cailliau 1992]
`T. Berners-Lee, R. Cailliau. World-Wide Web. Submitted to Computing in High Energy Physics
`1992.
`ftp://info.cern.ch/pub/www/doc/chep92www.ps
`
`[Berners-Lee and Connolly 1993]
`T. Berners-Lee, D. Connolly. Hypertext Markup Language: A Representation of Textual
`Information and Metainformation for Retrieval and Interchange. Internet Working Draft. CERN,
`Atrium Technology Inc. Work in progress.
`http://info.cern.ch/hypertext/WWW/MarkUp/HTML.html
`
`[Dershowitz 1983]
`N. Dershowitz. The Evolution of Programs. Birkhauser, Boston, 1983.
`
`[Dorner 1992]
`S. Dorner. The CCSO Nameserver, Server-Client Protocol. Computing and Communications
`Services Office. University of Illinois at Urbana-Champaign. July 1992.
`
`[McCool 1993]
`Rob McCool. National Center for Supercomputing Applications, University of Illinois at Urbana-
`Champaign. Common Gateway Interface Overview. Work in progress.
`http://hoohoo.ncsa.uiuc.edu/cgi/overview.html
`
`[NCSA 1993]
`National Center for Supercomputing Applications, University of Illinois at Urbana-Champaign.
`NCSA Mosaic. A WWW Browser. Work in progress.
`http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/Docs/help-about.html
`
`[Varela 1994]
`C. Varela. Zelig: Automating Database Provision for the World-Wide Web Ninth International
`
`http://archive.ncsa.uiuc.edu/SDG/IT94/Proceedings/DDay/varela/paper.html
`
`10/1/2002
`
`Petitioner Microsoft Corporation - Ex. 1076, p. 10
`
`

`

`Second International WWW Conference - Chicago, Oct 17-21/94
`
`Page 11 of 11
`
`Symposium on Information Systems, Kobe, Japan, Oct 11-13, 1994. Invited talk.
`http://fiaker.ncsa.uiuc.edu:8080/IT94.html
`
`[Varela and Hayes 1994]
`C. Varela, C. Hayes. Zelig: Schema-Based Generation of Soft WWW Database Applications. First
`International Conference on the World Wide Web, Geneva, Switzerland, May 25-29, 1994.
`http://fiaker.ncsa.uiuc.edu:8080/WWW94.html
`
`Carlos A. Varela (cvarela@cs.uiuc.edu)
`
`Received his B.S. in Computer Science (CS) at the University of Illinois at Urbana-Champaign,
`where he is currently a M.S./Ph.D. student. His research interests include integrating formal methods of
`artificial intelligence in software engineering, specially information systems.
`
`Carlos has also been a research assistant at the National Center for Supercomputing Applications
`(NCSA) since 1991. At NCSA he has worked in different projects including an alpha shapes visualizer
`(NCSA Walvis), a World-Wide Web browser ( NCSA Mosaic for X/Windows), and a World-Wide Web
`server (NCSA httpd for Unix).
`
`In the past, Carlos has been a Math and Computer Science teaching assistant for classes up to
`differential equations and information systems at the University of Los Andes, Bogota, Colombia. He
`has also been a consultant for Arthur Andersen & Co., and an Artificial Intelligence fellow at the
`Beckman Institute for the Advancement of Science and Technology.
`
`Caroline C. Hayes (hayes@cs.uiuc.edu)
`
`Received her B.S. in Math, M.S. in Knowledge-Based Systems, and Ph.D. in Robotics, all from
`Carnegie Mellon University.
`
`Currently she is an assistant professor at the Department of Computer Science and at the Beckman
`Institute of the University of Illinois at Urbana-Champaign.
`
`Her research interests include artificial intelligence, specially planning, design, abstraction, and
`knowledge-based systems; as well as computer-aided manufacturing and design. Professor Hayes is
`particularly interested in tools evaluating, criticizing and optimizing designs in areas from machined
`parts, intersection design, roofing design and software design.
`
`http://archive.ncsa.uiuc.edu/SDG/IT94/Proceedings/DDay/varela/paper.html
`
`10/1/2002
`
`Petitioner Microsoft Corporation - Ex. 1076, p. 11
`
`

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket