`
`Chicago Oct 17-21/94
`
`Page
`
`of 11
`
`Providing Data on the Web From Examples to
`Programs
`
`arks
`Varela aroline
`Haves
`Department of Computer Science
`University of Illinois at Urbana-Champaign
`cvareIa@cs uiuc edu hayescs uiuc edu
`
`URL http.//fiaker
`
`ncsa uiuc edu.8080/WWW94-2/paper html
`
`Abstract
`
`The World-Wide Web provides access to
`global information universe using available technology
`ci al 19921 In order to fully realize the benefits of this information system we are
`system Zelig to provide on-the-fly access to databases
`and dynamic information through
`developing
`effective user interfaces IVarela and Ha es 19941
`
`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
`the CCSO nameserver software providing data
`process We include as an example an interface to ph/gi
`for academic institutions around the world
`
`Introduction
`
`The World-Wide Web offers easy access to
`universe of information by providing links to
`documents stored on world wide network of machines in
`very simple and understandable fashion
`Much of its success
`is due to the simplicity with which it allows users to pro\ide 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
`generic object-oriented stateless protocol to transmit information between
`19921 HTML is
`servers and clients
`simple yet powerful platform-independent
`document
`and Connollv 19931
`
`language
`
`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
`941 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/1T94/Proceedings/DDay/varelalpaper.html
`
`10/1/2002
`
`Petitioner IBM – Ex. 1076, p. 1
`
`
`
`Second International WWW Conference
`
`Chicago Oct 17-21/94
`
`Page 2of 11
`
`extracting database record and field infonnation from your traditional database report and instantiating
`particular schema
`that categorized information along with the query information into
`
`Using Zelig to provide access to dynamic information in
`fixed format providers only need to give
`text reports and the desired hypertext to be generated for those particular
`examples of their current
`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
`the problems faced by providing WWW access to
`we highlight
`functionality of scripts In section
`we explain the architecture of Zelig our system that performs schema-based
`dynamic data In section
`HTML generation In section
`gateway to the CCSO ph/qi
`we demonstrate the ideas presented with
`we give some conclusions and results
`nameserver databases Finally in section
`
`Background
`
`21 The World-Wide Web
`
`Server-Client Model
`
`The World-Wide Web consists of 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
`
`and
`
`ailliau 19921
`
`This communication is performed under the stateless HTTP protocol
`stateless protocol connections
`In
`ithout keeping state information The server actions depend on
`are created processed and closed
`predefined methods such as GET POST PUT and DELETE
`
`The resulting information can be served in different
`format types and it
`is the clients responsibility to
`consistent and clear manner The most common format is HTML which contains
`in
`present
`information and its logical structure but leaves out those details particular to specific browser
`
`it
`
`http //archive.ncsa
`
`uiuc edu/SDG/1T94/Proceedings/DDay/varelalpaper.html
`
`10/1/2002
`
`Petitioner IBM – Ex. 1076, p. 2
`
`
`
`Second International WWW Conference
`
`Chicago Oct 17-21/94
`
`Page
`
`of 11
`
`implementations
`
`It
`
`it could also provide
`server can provide static documents to the clients but
`is important to note that
`ords the clients can also request
`transparent access to databases or other information sources In other
`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
`predefined
`interface The most common currently used interface is the NCSAs Common Gateway Interface CGI
`19931
`
`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 infomrntion 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
`
`Broy or
`
`WDrkiDn
`
`kcI
`
`NEwork
`
`Fig 2.1 Purpose of script and WWW server
`
`and Cailliau 1992
`
`These scripts are written in any programming language like
`together with the WWW sen er are
`
`or PERL and their main functions
`
`To receive the information from the WWW client under the hypertext transfer protocol HTTP
`To perform query for the database server allowing the WWW server to act as
`To parse the database
`To generate an HTML document and send it to the WWW client
`
`server results
`
`database client
`
`Providing Dynamic Data on the Web
`
`After the short introduction in the previous section to the mechanisms under the Web lets see
`why we
`ant to automate the script creation process
`
`To provide access to many information sources that are currently using non-hypertext formats
`
`http //archive.ncsa
`
`uiuc edu/SDG/1T94/Proceedings/DDay/varelalpaper.html
`
`10/1/2002
`
`Petitioner IBM – Ex. 1076, p. 3
`
`
`
`Second International WWW Conference
`
`Chicago Oct 17-21/94
`
`Page 4of 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
`To more easily design hypertext interfaces to databases by making changes at the level of
`schemata as opposed to modifying recompiling and retesting scripts
`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
`To increase the functionality of the data management system For our phone example in section
`we have included sorting records which was not
`in the original ph/qi
`functionality
`To reuse the schemata across different databases
`to provide similar look-and-feels for users
`
`Zelig From Examples to Programs
`
`framework for Zelig Scripts generate HTML reports based on
`Figure 4.1 shows
`general
`instantiating schemata to the query info and the categorized database output The schemata can be taken
`from 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
`report in ajIxed format This report is parsed and relevant
`database manager system which returns
`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
`
`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
`schema from user-given HTML Examples
`DB Report and how to abstract
`
`http //archive.ncsa
`
`uiuc edu/SDG/1T94/Proceedings/DDay/varelalpaper.html
`
`10/1/2002
`
`Petitioner IBM – Ex. 1076, p. 4
`
`
`
`Second International WWW Conference
`
`Chicago Oct 17-21/94
`
`Page
`
`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
`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
`description of ZHTML the language to write these
`document generation Then we will give
`to HTML incorporating directives for database interface generation
`schemata which is an enhancement
`
`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
`
`Current database transaction results These are the results generated by
`query to
`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
`
`database
`
`information For example name number of tables default query
`
`On an application level
`The most general database
`table
`On an object
`level
`specific object of our application For example the table PEOPLE
`The information for
`may have name number of records number of fields default
`field for queries
`On afield level
`The most specific information about
`given record For example field names
`query for
`field values length type and access policy
`field values current
`default
`
`Existing ZHTML schemata These are generated either from HTML report examples given by
`the interface designer or taken from 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
`in the Web that use WAIS as the basis for database
`search
`many indexed databases
`Forms-based user interface schema
`This schema makes use of the forms-based WWW browsers to provide 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
`user interface It still allows evolution in the sense that certain constmcts dont imply any
`order or level of access in the generated HTML documents
`
`database
`
`4.1.2 ZHTML Language Description
`
`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/1T94/Proceedings/DDay/varelalpaper.html
`
`10/1/2002
`
`Petitioner IBM – Ex. 1076, p. 5
`
`
`
`Second International WWW Conference
`
`Chicago Oct 17-21/94
`
`Page
`
`of 11
`
`The ZHTML comments are similar to HTML constructs They are generally of the form
`
`ZTAG ZHTML body /ZTAG
`
`variable value run an
`There are several Zelig directives with different functionality including print
`function printing its output conditionally include the ZHTML body traverse all the current
`external
`database records invoking Zelig recursively on the ZHTML body and traverse all
`the fields in
`specific
`object
`
`formal Document Type
`Following are the main constructs of this Document Type even though
`Definition like the DTD shown for HTML in
`Connolly 19931 is still
`in progress
`
`ZPRINT variable
`returns the current value of an HTML form variable or an application-level ariable If the
`vanable is oblect-level or field-level
`then it needs to be in the scope of
`ZEOP tag
`ZRUN externalfn
`runs the script function external_fn and returns its output
`ZHTML body /ZIF
`ZIF condexpr
`returns the output from ZfJT1ML body if cond-expr
`is true It returns the null string otherwise
`type ZHTML body /ZFOR
`ZFQR TYPEtraversal
`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 ZHTIVfL
`body instantiated to each of the loop elements in the query
`
`4.2 Automating the Database Report Extraction
`
`4.2.1 Database Output Categorization
`
`Well concentrate on database manager systems that produce reports with
`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
`structured fixed way Its repetitive
`because there is one entry for each record matching the original query These entries are usually
`record separator which allows us to differentiate among records Finally we also have
`separated by
`field separator which allows us to divide record information into yet more specific detail
`
`file listing example the first
`line has application-level
`information the total space occupied by the
`In
`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
`form may contain three variables
`name and
`value pair For example
`directory mask and sort-by which have default values and get instantiated to the user-given values
`when the form is submifted
`
`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
`specific field
`
`http //archive.ncsa
`
`uiuc edu/SDG/IT94/Proceedings/DDay/varelalpaper.html
`
`10/1/2002
`
`Petitioner IBM – Ex. 1076, p. 6
`
`
`
`Second International WWW Conference
`
`Chicago Oct 17-21/94
`
`Page
`
`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 ve mainly have to create
`
`Is directory/mask or
`ph name return fields
`
`4.2.3 Generating Schema from Given Hypertext Example
`
`particular example how we want our hypertext to look like i.e we have
`Once we know for
`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
`arent sure if the information parsed is relevant needs to be
`categorized to subsequently be used by the schema instantiation algorithm or it
`
`separator
`
`is just
`
`In the following section we show an example illustrating
`instantiations depending on the database query
`
`schema and
`
`couple of its possible
`
`Running Example The CCSO Phone Nameserver Database
`
`The CCSO namesen er software provides
`information from academic institutions
`browsing HTML files in NCSA Mosaic for
`
`sen er-client model for accessing phone directory
`19921 The figures in this section have been created
`1993
`
`The following is an HTML Query Form to access those databases
`
`http //archive.ncsa
`
`uiuc edu/SDG/1T94/Proceedings/DDay/varelalpaper.html
`
`10/1/2002
`
`Petitioner IBM – Ex. 1076, p. 7
`
`
`
`Second International WWW Conference
`
`Chicago Oct 17-21/94
`
`Page
`
`of 11
`
`LThMt Of
`
`jb hJh
`
`schema for instantiating the categorized database information once
`The following link contains
`query has been made We will show two different instantiations depending on two different user queries
`for this same schema
`
`The first guer example asks for the names and phone numbers of all UIUC entries with the name
`Hardin sorted ascendently Our schema instantiation for such
`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
`
`previously visited have
`
`hyperlink to more information on that particular person Also links
`different color
`
`Our second query example asks for the same entries but it also queries their address Additionally
`as opposed to ascendent Following the links you can see the HTML
`the sort order is descendent
`file generated and its corresponding
`pertext output
`
`http //archive.ncsa
`
`uiuc edu/SDG/1T94/Proceedings/DDay/varelalpaper.html
`
`10/1/2002
`
`Petitioner IBM – Ex. 1076, p. 8
`
`
`
`Second International WWW Conference
`
`Chicago Oct 17-21/94
`
`Page
`
`of 11
`
`Universily of Illinois at UrbanaChampaign
`
`Phone Directory
`
`Browse
`
`Hu1r
`Hrc1ir J.ni
`F1i un Di1d es1e
`Hai ir E1.ar
`ri-
`ffj un .r
`ir T.-ni.--1
`
`2iie
`
`Pd1r
`
`HaJTdln
`
`HjIJi.fl Rc
`Heidin J11m
`ic..a
`
`Pail Cuitir
`r.jl
`
`1.nn
`
`in
`
`217 3324319
`217 3.529344
`217 7E22i16.5
`333i 000
`217
`217 351Ei35
`3330340
`217
`17 .r33.
`217 2443473
`i7 2443241
`217 3330419
`17 77i
`17 3334601
`2171
`.3679762
`217 344416
`
`Conclusions
`
`The success of 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
`include
`previous technology
`
`providing code generation for converting fixed data formats into hypertext
`
`allowing evolving user interfaces for more effective human -computer interaction
`
`increasing the functionality of applications owning the data by offering additional operations such
`as sorting and
`
`reusing HTML schemata to provide similar look-and-feel
`
`interfaces across different applications
`
`hyperlinked example giving WWW access to the CCSO ph/qi nameserver softv are This
`We provided
`gateway running at NCSA as of September 1994 provides phone directory information for about 250
`academic institutions around the world and receives more than
`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/1T94/Proceedings/DDay/varelalpaper.html
`
`10/1/2002
`
`Petitioner IBM – 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
`research and working environment Additional
`thanks to Professor Dershowitz for his
`their excellent
`comments and motivating research
`
`itz 19831
`
`References
`
`FBemers-Lee 19921
`Bemers-Lee I-fvpertext Transfer Protocol Requirements Internet Working Draft CERN Work
`in progress
`http info.cern.ch hypertext WWWProtocols
`
`HTTP.html
`
`IBerners-Lee et al 1992
`Pollermann World-Wide Web The Information
`Cailliau Groff
`Bemers-Lee
`Universe Electronic Networking Research Applications and Policy 21 pp 52-58 Meckler
`Publications Westport CT Spring 1992
`ftp info cern ch pub www doc ENRAP 9202.ps
`
`IBerners-Lee and Cailliau 1992
`Cailliau World-Wide Web Submitted to Computing in High Energy Physics
`Bemers-Lee
`
`1992
`ftp info cern ch pub www doc chep92www.ps
`
`IBerners-Lee and Connolly 1993
`Bemers-Lee
`Representation of Textual
`Connolly Hjpertext Markup Language
`Information and Metainformation for Retrieval and Interchange Internet Working Draft CERN
`Inc Work in progress
`Atrium Technology
`http info cern ch hypertext WWWMarkUp HTML html
`
`19831
`Dershowitz The Evolution of Programs Birkhauser Boston 1983
`
`1992
`Domer The CCSO Nameserver Server-Client Protocol Computing and Communications
`Services Office University of Illinois at Urbana-Champaign July 1992
`
`19931
`Rob McCool National Center for Supercomputing Applications University of Illinois at Urbana-
`Champaign Common Gateway interface Overview Work in progress
`cgi overview.html
`http hoohoo.ncsa.uiuc.edu
`
`FNCSA 1993
`National Center for Supercomputing Applications University of Illinois at Urbana-Champaign
`WWW Browser Work in progress
`NCSA Mosaic
`SDG Software Mosaic Docs help-about.html
`http www.ncsa.uiuc.edu
`
`IVarela 1994
`Varela Zelig Automating Database Provision for the World- Wide Web Ninth International
`
`http //archive.ncsa
`
`uiuc edu/SDG/1T94/Proceedings/DDay/varelalpaper.html
`
`10/1/2002
`
`Petitioner IBM – 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 JIaker ncsa uiuc edu 8080 1T94 html
`
`and Hayes 19941
`Hayes Zelig Schema-Based Generation of Soft WwWDatabase Applications First
`Varela
`International Conference on the World Wide Web Geneva Switzerland May 25-29 1994
`http Jiaker ncsa uluc edu 8080 WWW94 html
`
`Carlos
`
`Varela cvarela@cs.uiuc.edu
`
`Received his B.S in Computer Science
`at the University of Illinois
`at Urbana-Champaign
`where he is currently MS/Ph.D student His research interests include integrating formal methods of
`intelligence in software engineering specially information systems
`
`artificial
`
`Carlos has also been
`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 Wal is World-Wide Web browser NCSA Mosaic for XlWindows and World-Wide Web
`server NCSA htlpd for Unix
`
`In the past Carlos has been Math and Computer Science teaching assistant for classes up to
`differential equations and information systems at the Unix ersity of Los Andes Bogota Colombia He
`for Arthur Andersen Co and an Artificial
`has also been
`Intelligence fellow at the
`consultant
`Beckman Institute for the Advancement of Science and Technology
`
`Caroline
`
`Hayes hayes@cs.uiuc.edu
`Received her B.S in Math MS in Knowledge-Based Systems and Ph.D in Robotics all from
`Carnegie Mellon Unix ersit
`
`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
`systems as well as computer-aided manufacturing and design Professor Hayes is
`knowledge-based
`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/1T94/Proceedings/DDay/varelalpaper.html
`
`10/1/2002
`
`Petitioner IBM – Ex. 1076, p. 11