The initial WebGrid Server, WebGrid I, at the University of Calgary (http://tiger.cpsc.ucalgary.ca) was designed in late 1993 and went into service in mid 1994. It evolved through six versions to become WebGrid Plus released in October 2015.
The Web in the Early 1990s
The impetus for the design came from Tom Gruber's presentation at Eighth International Workshop on Knowledge Acquisition at Banff, Canada, in 1983 where he presented his Ontolingua ontology design tools running on the World Wide Web. Tom challenged colleagues at the conference to port their own knowledge acquisition tools to operate through the web.
Tim Berners-Lee's initial concept in 1989 of a World Wide Web was that of providing ease of access through the Internet to a network of documents navigated through embedded hypertext links in a standard hypertext markup language (HTML). However, in 1993 there was little Web traffic on the Internet and it was surpassed by the Gopher system in both traffic and its support of access to linked documents.
The graph below of the relative loads of Internet traffic by different services in 1993-1994 shows how dramatically this changed as Web usage increased and the US Department of Commerce allowed commercial usage of the Internet. By April 1995 Web traffic using the Web HTTP protocol constituted the major usage of Internet bandwidth. Concurrent with this the number of computers on the Internet and the total Internet traffic were both growing exponentially at rates never before seen in any technology (The learning curves underlying convergence, 1998).
1994 WebGrid I: Porting RepGrid to the Web
The knowledge acquisition tools that we had designed to support the elicitation of expertise in the development of expert systems were based on RepGrid, the family of computer-based tools that Mildred had developed initially in 1975 as part of her doctoral research on the use of interactive computers to support personal construct psychology. They had been enhanced and ported to many different families of computers over the years, and the most recent enhancements had been inductive modelling tools to generate computational ontologies and rules for use in expert system shells—what we termed knowledge support systems.
However, all the tools had been designed as stand-alone programs running on main frames, minicomputers and microcomputers, and it was not at all clear in 1993 what would be involved in providing similar functionality through World Wide Web browsers. An initial prototype showed that the problems of porting a highly interactive system to the Web were severe as HTML had been designed to support linked textual documents and not to provide the graphic user interface capabilities already common on workstations and personal computers.
All this changed inAugust 1993 when Marc Andreessen and Eric Bina at the University of Illinois supported embedded Motif widgets in the Mosaic browser and then used this to provide HTML+ forms. The capability from HTML 2 onwards of being able to implement active documents having embedded within them the full range of basic user interface widgets enabled a wide range of interactive applications to be ported to the web.
The Web developer email lists at this time shows that Andreessen's determination to greatly extend the capabilities of the Web was not generally supported, but he went ahead with his vision of a web of rich interactive documents and persuaded others by bringing the supporting technology into existence and making it freely available. Gopher was being extended in the same way but Andreessen's Mosaic, later Netscape, offered such simple and powerful capabilities that all related technologies were rapidly superseded.
HTML 2 provided all the capabilities we needed to port RepGrid to the web and early in 1994 WebGrid I was operating successfully, being demonstrated at various meetings, and being used by others, largely in the education and knowledge acquisition communities. WebGrid I supported the comparison of grids and we described its role in collaborative learning at the first Computer-Supported Collaborative Learning conference at Binghampton in 1995. The techniques used to develop highly interactive applications on the web were also of widespread interest and we gave a tutorial on how to port interactive applications to the web at the fourth International World Wide Conference at Boston in 1995.
1996 WebGrid II: Enhancing Capabilities
WebGrid I was intended as "proof on concept" but was quickly adopted by many users as a serious tool for research and teaching. It was expected that the capabilities of our existing stand-alone tools would all be available, and we focused first on adding technical extensions to the grids and their analyses, including the induction of rules and ontologies integrated with the knowledge elicitation process.
The multimedia capabilities of the Web raised expectations that we would support user customization of the content and styling of the web pages, and also multimedia annotation of the grid elements through user links to images and sounds. It was also a natural addition to make the graphic output from analysis interactive so that one could click on elements or constructs to remove them from the analysis or transfer to the page for editing them.
We realized that there were issues with remote users requiring support and expecting it to be online and specific, not involving search through printed manuals, and introduced a small "?" icon that provided context-sensitive help in a separate window.
WebGrid II replaced WebGrid I in January 1996, providing a comprehensive range of grid tools for the PCP community, and powerful knowledge elicitation tools for the KBS community.
WebGrid II also made our machine learning tool, Induct, available as part of interactive grid elicitation. An anticipatory model of the grid data was generated dynamically and its inferences for a test element presented to the user. If the inference was incorrect it could be corrected and the element added to the grid so that the model generated was corrected. This process emulated human 'learning' from failures on anticipation.
2001 WebGrid III: Data Collection from Remote Users
Some researchers using WebGrid saw the potential to use it as a tool for studies of distributed user communities enabling them to elicit conceptual structures from individuals world-wide over the Internet. However, WebGrid had been designed to store the grid data in hidden fields in the HTML documents, avoiding the need to storage and manage user data on the server.
WebGrid III replaced WebGrid II in February 2001, providing the capability for anyone to register a private cache on the WebGrid server where grid data from their study was collected automatically and made available for them to manage. The trick to doing this was to program all the registration and management capabilities on the WebGrid server so that we were not involved in either.
2002 WebGrid IV: Integrating WebGrid with Rep IV
Our conceptual grid and knowledge support tools of the 1980s and 1990s were written in frameworks that only supported the Apple Macintosh operating system which in the late 1990s still had very usage compared with Microsoft Windows, and we had many requests for Windows versions. It was only after we retired at the end of 1999 that we had time to start again and develop a completely new implementation that was cross-platform and ran on both OS X and Windows—Rep IV, issued in 2002.
We next decided to integrate WebGrid into Rep IV and make a web server part of the application. The original version of WebGrid had been designed as an extension to our knowledge support tools written in C++ that enabled the KSS program to interact with a web server through its CGI interface. The new version provided the same capabilities but was written as a set of scripts for the new RepServe component of Rep 5, enabling the grid elicitation and analysis functionality to be offered through the Web.
The opportunity was taken to restyle WebGrid pages using CSS and to make it possible for users to customize the WebGrid interface by entering their own CSS styling. This has been used, for example, to provide simplified dialogues in large text with minimal content for use with young children.
During development the new WebGrid server was made available on a second machine (gigi.cpsc.ucalgary.ca) as WebGrid IV in March 2005.
2009 WebGrid 5: Integrating WebGrid with Rep 5
In 2009 Rep 5 was released with RepServe, a generic scriptable web server, as one of its components, together with WebGrid 5 scripts. This enables users to develop their own web services and to make major changes in the way that WebGrid operates including, for example, translating the dialogues into languages other than English.
2015 WebGrid Plus: Supporting Multiple Servers and Languages
In 2015, to ensure the continuing availability of WebGrid services, a number of servers were established world-wide. This made it desirable to support grid file transfer between servers, and in October 2015 WebGrid Plus was released providing the capabilities for file upload encompassing a wide range of grid file formats. It also improved the ease of reprogramming the dialogue in languages other than English.
Lessons Learnt
The technical problems of writing programs to operate as Web services are very similar to those for writing them to operate stand-alone, and the majority of the code can be common to both platforms. What is problematic is the chaotic nature of Web usage where many generations of browsers are still in use and one cannot rely on users adopting the latest versions of web browsers. Even if the major web browser manufacturers have, to a large extent, come to conform with the World Wide Web Consortium (W3C) standards, e.g. Internet Explorer 6 (IE6) still constituted 10% of usage in 2010 and had very weak conformance with even the standards of its time.
Substantial effort went into making WebGrid in all generations robust to the usage of previous generations of web browsers whilst hiding this from users so that its functionality remained the same to all users and was also what those using the latest technologies might expect.
These are issues faced by all web developers and the solution has been to use open source tools that mediate between clean HTML that conforms with the latest standards and the particular browser interpreting that HTML that may well not conform. That is, the 'messy' code is packaged into modules maintained by the community at large and application designers, to a large extent, can avoid having to deal with the quirks of different browser implementations.