home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / infoguide / using-internet / infosystems / gopher / gopher-overview < prev   
Text File  |  1997-12-01  |  68KB  |  1,429 lines

  1. -----------------------------------------------------------------
  2. Wiggins, Rich.  "The University of Minnesota's Internet Gopher
  3. System: A Tool for Accessing Network-Based Electronic
  4. Information."  The Public-Access Computer Systems Review 4, no. 2
  5. (1993): 4-60.  To retrieve this file, send the following e-mail
  6. messages to LISTSERV@UHUPVM1 or LISTSERV@UHUPVM1.UH.EDU: GET
  7. WIGGINS1 PRV4N2 F=MAIL and GET WIGGINS2 PRV4N2 F=MAIL.
  8. -----------------------------------------------------------------
  9.  
  10.  
  11. 1.0  Introduction
  12.  
  13. Late in 1991, a new creature began burrowing its way around the
  14. Internet.  This new critter helps people browse many of the
  15. resources available on local campus networks or on the worldwide
  16. Internet.  Called the Internet Gopher, this tool was developed at
  17. the University of Minnesota.  Pioneering sites began deploying
  18. Gopher servers in December 1991.  In the short time since, the
  19. Gopher system (henceforth called "Gopher") has been deployed at
  20. many institutions around the world.  A worldwide community of
  21. "Gophernauts" has come into being, with various sites
  22. contributing ideas, utility tools, bits of code, and schemes for
  23. cooperative registry efforts.  Gopher now accounts for a
  24. substantial fraction of the traffic on the Internet.  Gopher
  25. servers are delivering text, index searches, still images, audio,
  26. public domain software, and more to users all over the world.
  27. With Gopher, a user can:
  28.  
  29.      o    Find out what movies are playing in Aachen, Germany.
  30.  
  31.      o    Learn what earthquakes took place yesterday.
  32.  
  33.      o    Read today's student newspaper from a school 2,000
  34.           miles away.
  35.  
  36.      o    Pick up a quote from Paradise Lost for a term paper.
  37.  
  38.      o    Read the city council meeting minutes from Wellington,
  39.           New Zealand.
  40.  
  41.      o    Listen to the final U.S. Presidential Debate of 1992.
  42.  
  43.      o    See what Michigan State's campus looks like in spring.
  44.  
  45.      o    Read about the Human Genome Project.
  46.  
  47.      o    Learn about Federal grants.
  48.  
  49.      o    Download public domain software.
  50.  
  51. + Page 5 +
  52.  
  53. The above examples are a tiny sample of the kinds of information
  54. Gopher can deliver.  An illustration of the value of Gopher comes
  55. from a user who works at Michigan State University:
  56.  
  57.      I wanted to drop a quick line and tell you how much Gopher
  58.      means to me.  I discovered Gopher about two months ago and
  59.      cannot believe how much information is out there.  I have
  60.      found the new Veronica option very helpful as it allows me
  61.      to build a directory of items that are specific to my
  62.      interest.  This is undoubtedly a great service for anyone
  63.      who finds it.  However, for me it is unbelievable.  I am
  64.      legally blind and I have always said that the most difficult
  65.      aspect of blindness is the lack of readily available
  66.      information.  Gopher has the ability to change all of that.
  67.      For the first time, I feel like I can easily and
  68.      independently access important campus and worldwide
  69.      information. . . . I use a speech synthesizer and a PC
  70.      compatible computer to access the Gopher system.
  71.  
  72. This article describes the Internet Gopher: why it is needed, how
  73. it is used, its genesis and early evolution, the underlying
  74. protocol (and the new Gopher+ protocol), Gopher's role as a
  75. campus-wide information system (CWIS), and its emerging role as
  76. an Internet-wide information system.  The article also discusses
  77. navigational enhancements (e.g., Veronica), organization and
  78. quality of service issues, privacy and security concerns,
  79. electronic publishing issues, distribution of multimedia
  80. information, related client and network information technologies,
  81. and Gopher's future.
  82.  
  83. 2.0  The Internet and the Need for Navigation Tools
  84.  
  85. Today, many computer users at universities, government agencies,
  86. and commercial firms are connected in one way or another to the
  87. Internet.  The Internet is a worldwide network of networks.
  88. Campus Ethernets and other local area networks are connected
  89. together by a complex web under the aegis of regional networks,
  90. national networks, or in some countries, the PTTs
  91. (postal/telephone authorities).  The constituent networks all use
  92. the TCP/IP protocol family; the result is a worldwide network of
  93. computers that can communicate with one another.  The Internet
  94. evolved from the old Defense Advanced Research Projects Agency
  95. network (ARPANET).  ARPANET sites consisted mainly of Department
  96. of Defense research installations and affiliated research
  97. institutes and universities.  Many thousands of host computers
  98. and user workstations now have Internet connectivity.  The number
  99. of computer users with Internet access is estimated to exceed 10
  100. million.
  101.  
  102. + Page 6 +
  103.  
  104.      As a "network of networks," the Internet can be thought of
  105. as the aggregation of various campus, corporate, and other
  106. networks.  Other than following certain rules known as
  107. "acceptable use policies," institutions on the Internet are
  108. generally autonomous.  Therefore, services that are offered on
  109. these campus networks are provided because some local service
  110. provider believes it's worthwhile to do so.  Often, the
  111. motivation is to serve local users.  For example, a campus
  112. library puts its online catalog on the campus network for the
  113. sake of local patrons, not primarily for the benefit of Internet
  114. users.
  115.      As multiple campuses mounted similar services to satisfy the
  116. needs of their own communities, Internet users began to find
  117. value in using online resources from other institutions.  For
  118. instance it might be useful to scan the online catalog of a
  119. partner interlibrary loan institution.  But without a list of
  120. host names (or IP addresses) of the various online catalogs on
  121. the Internet, each individual user has to maintain his or her own
  122. listing: picture a wall of Post-it notes listing names and
  123. addresses next to a user's PC.
  124.      Online catalogs aren't the only list of Internet services a
  125. user would want to keep up with; all sorts of services are
  126. available on the Internet.  Examples include:
  127.  
  128.      o    List servers and discussion groups.
  129.  
  130.      o    USENET News (a sort of distributed discussion
  131.           facility).
  132.  
  133.      o    Anonymous FTP archives, containing public domain
  134.           software and other offerings.
  135.  
  136.      o    Tools and services for finding people.
  137.  
  138.      o    Host computers that require assigned passwords.
  139.  
  140.      o    Databases that allow logins via Telnet.
  141.  
  142.      o    Databases that support the client/server model (the
  143.           chief example is WAIS).
  144.  
  145.      o    Archives of electronic journals and books--the nascent
  146.           virtual library.
  147.  
  148. + Page 7 +
  149.  
  150. The need for an "Internet address book" applies to all of these
  151. kinds of services.  Several tools are evolving to help bring
  152. order to the Internet.  Various Internet navigation tools have
  153. different goals and capabilities:
  154.  
  155.      o    HYTELNET provides a hypertext database of online
  156.           catalogs and other systems.
  157.  
  158.      o    Archie serves as an index of FTP sites, identifying
  159.           sites that hold particular files.
  160.  
  161.      o    WAIS allows users to search one or more databases using
  162.           natural language queries; it presents ranked search
  163.           results.
  164.  
  165.      o    World-Wide Web supports networked hypertext.
  166.  
  167. All of these tools will be discussed later in this paper.  For
  168. now, the focus is Gopher.
  169.      In a nutshell, Gopher offers access to files and interactive
  170. systems using a hierarchical menu system.  The organization of
  171. the menu is defined by the administrator of each server.  The
  172. resources that each menu item describes, such as ASCII files,
  173. Telnet sessions to other computers, and submenus, are called
  174. "documents."  The scope of a Gopher server could be limited to a
  175. campus or to a subject area.  Or, a Gopher server could include a
  176. catalog of a variety of Internet resources.  The following
  177. section depicts a "walk-through" of "Gopherspace," showing how
  178. Gopher operates along the way.
  179.  
  180. 3.0  Overview of Gopher from the User's Point of View
  181.  
  182. Gopher serves as a menu system for networked information.  The
  183. user connects to one of the thousands of Gopher servers now in
  184. production around the world and receives an initial (or "root")
  185. menu.  When you use a tool like Archie, you are asking the server
  186. a specific question (e.g., "Tell me what FTP sites can provide a
  187. copy of the program named PKZIP").  When you connect to a Gopher
  188. server, you are asking it "Give me a menu listing the resources
  189. you have to offer."  The menu can include submenus.  Each Gopher
  190. server presents a hierarchy established by the local
  191. administrator.
  192.  
  193. + Page 8 +
  194.  
  195.      Gopher follows the client/server model.  This model divides
  196. the labor between the program the user invokes (the "client") and
  197. a program running on a host computer, such as a UNIX workstation
  198. or a mainframe (the "server").
  199.      It's best to run Gopher with client software installed on
  200. the user's workstation because it provides a superior user
  201. interface and opens up the world of still images, audio files,
  202. and other resources.  But a user who has not installed a client
  203. can still use Gopher: the developers have provided a sort of
  204. central client software, and many Gopher sites offer public
  205. client services.  The public client software is sometimes known
  206. as the "curses" client, after the UNIX screen management tool of
  207. that name.  Users connect to these public client services via
  208. Telnet (or, depending on their local network services, via a VT
  209. 100 dial-up session).
  210.      The following initial tour of Gopherspace will use sample
  211. screens from a public client service.  This example will connect
  212. to the service offered at the home of Gopher, the University of
  213. Minnesota.  To connect to the public client service at "Gopher
  214. Central," one would type the following:
  215.  
  216.      telnet consultant.micro.umn.edu
  217.      gopher [Type "gopher" in response to login prompt.]
  218.  
  219. The user's Telnet program must be capable of VT 100-style full-
  220. screen operations (virtually all are).  The client service will
  221. respond as shown in Figure 1.
  222.  
  223. -----------------------------------------------------------------
  224. Figure 1.  Choosing the Terminal Type
  225. -----------------------------------------------------------------
  226.  
  227.      TERM = (vt100)  [Press Enter at this prompt.]
  228.      Erase is Ctrl-H
  229.      Kill is Ctrl-U
  230.      Interrupt is Ctrl-C
  231.      I think you're on a vt100 terminal
  232.  
  233. -----------------------------------------------------------------
  234.  
  235. At this point, the user should hit the Enter key.  Having made
  236. this connection, the user would see the root menu of the
  237. University of Minnesota's Gopher service (see Figure 2).
  238.  
  239. + Page 9 +
  240.  
  241. -----------------------------------------------------------------
  242. Figure 2.  The University of Minnesota Gopher's Root Menu
  243. -----------------------------------------------------------------
  244.  
  245.             Internet Gopher Information Client v1.12
  246.  
  247.                Root gopher server: gopher.tc.umn.edu
  248.  
  249.  -->  1.  Information About Gopher/
  250.       2.  Computer Information/
  251.       3.  Internet file server (ftp) sites/
  252.       4.  Fun & Games/
  253.       5.  Libraries/
  254.       6.  Mailing Lists/
  255.       7.  UofM Campus Information/
  256.       8.  News/
  257.       9.  Other Gopher and Information Servers/
  258.       10. Phone Books/
  259.       11. Search lots of places at the U of M <?>
  260.  
  261. Press ? for Help, q to Quit, u to go up a menu       Page:1/1
  262. -----------------------------------------------------------------
  263.  
  264. As noted above, Gopher presents a hierarchical menu; titles
  265. ending in a slash ("/") are submenus (or "subdirectories" or
  266. "folders") that list additional choices.  For example, if the
  267. user presses Enter while the cursor points at the first menu
  268. item, a submenu of resources about Gopher will appear.  The user
  269. can choose among the menu items by using the cursor keys or by
  270. typing in the number of the desired menu item.  If the menu is
  271. longer than will fit on one screen, the "Page: n/m" field in the
  272. lower right corner so indicates.
  273.      After selecting the "Information About Gopher" menu item,
  274. Gopher responds with the menu shown in Figure 3.
  275.  
  276. + Page 10 +
  277.  
  278. -----------------------------------------------------------------
  279. Figure 3.  Information About Gopher Menu
  280. -----------------------------------------------------------------
  281.  
  282.           Internet Gopher Information Client v1.12
  283.  
  284.                    Information About Gopher
  285.  
  286.  -->  1.  About Gopher.
  287.       2.  Search Gopher News <?>
  288.       3.  Gopher News Archive/
  289.       4.  comp.infosystems.gopher (USENET newsgroup)/
  290.       5.  Gopher Software Distribution/
  291.       6.  Gopher Protocol Information/
  292.       7.  Frequently Asked Questions about Gopher.
  293.       8.  Gopher+ example server/
  294.       9.  How to get your information into Gopher.
  295.       10. New Stuff in Gopher.
  296.       11. Reporting Problems or Feedback.
  297.       12. big Ann Arbor gopher conference picture.gif <Picture>
  298.       13. gopher93/
  299.  
  300. Press ? for Help, q to Quit, u to go up a menu    Page:1/1
  301. -----------------------------------------------------------------
  302.  
  303. This menu in the University of Minnesota Gopher server is the
  304. definitive place to learn about Gopher.  Note that menu items for
  305. ASCII text files are listed with a period at the end.
  306.      Upon selecting the first menu item ("About Gopher"), the
  307. file shown in Figure 4 would appear.
  308.  
  309. + Page 11 +
  310.  
  311. -----------------------------------------------------------------
  312. Figure 4.  About Gopher File
  313. -----------------------------------------------------------------
  314.  
  315. This is the University of Minnesota Computer & Information
  316. Services Gopher Consultant service.
  317.  
  318. gopher n. 1.  Any of various short tailed, burrowing mammals of
  319. the family Geomyidae, of North America.  2. (Amer. colloq.)
  320. Native or inhabitant of Minnesota: the Gopher State.  3. (Amer.
  321. colloq.)  One who runs errands, does odd-jobs, fetches or
  322. delivers documents for office staff.  4. (computer tech.)
  323. Software following a simple protocol for tunneling through a
  324. TCP/IP internet.
  325.  
  326. If you have questions or comments, you can get in contact with
  327. the Gopher development team by sending e-mail to:
  328.  
  329.      gopher@boombox.micro.umn.edu
  330.  
  331. If you are interested in news about new gopher servers and
  332. software you can subscribe to the gopher-news mailing list by
  333. sending e-mail to:
  334.  
  335.      gopher-news-request@boombox.micro.umn.edu
  336.  
  337. There is also a USENET news discussion group called
  338.  
  339.      comp.infosystems.gopher
  340.  
  341. where Internet Gopher is discussed.
  342.  
  343. If you want to get the most recent releases of the gopher
  344. software, you can get these via anonymous ftp from
  345. boombox.micro.umn.edu in the /pub/gopher directory.
  346.  
  347. Press <RETURN> to continue, <m> to mail:
  348.  
  349. -----------------------------------------------------------------
  350.  
  351. In the above example, the curses client leaves the text of the
  352. selected text file on the screen until the user types Enter.
  353. After that, the "Information About Gopher" menu will be
  354. redisplayed.  Because Gopher is organized hierarchically, you
  355. need a way to move back a level in the directory tree.  With the
  356. public "curses" client the user simply types "u" for "up."  No
  357. matter how deep in the hierarchy the user travels, the client is
  358. able to back up, one menu at a time, until the root menu is
  359. redisplayed.
  360.  
  361. + Page 12 +
  362.  
  363.      The "Information About Gopher" menu above included a menu
  364. item entitled "2. Search Gopher News <?>"; this menu item offers
  365. an index search, as denoted by the question mark.  Gopher servers
  366. generally implement indexing using the public domain WAIS (Wide
  367. Area Information Servers) search engine.  (A common exception:
  368. servers implemented on NeXT workstations often exploit the
  369. Digital Librarian delivered with NeXTStep.)  Upon selecting this
  370. menu item, the user is prompted to enter a keyword (see Figure
  371. 5).
  372.  
  373. -----------------------------------------------------------------
  374. Figure 5.  Search Gopher News
  375. -----------------------------------------------------------------
  376.  
  377.  
  378.  +-------------------Search Gopher News--------------------+
  379.  |                                                         |
  380.  | Words to search for:  indiana                           |
  381.  |                                                         |
  382.  |                         [Cancel ^G] [Accept - Enter]    |
  383.  |                                                         |
  384.  +---------------------------------------------------------+
  385.  
  386. -----------------------------------------------------------------
  387.  
  388. Note that most Gopher clients will highlight the sought keyword
  389. within the text of the displayed document.  This makes it easy to
  390. find the occurrences of the keyword in context.
  391.      Searching is not currently as flexible as one would like.
  392. In particular, the standard release with the WAIS engine does not
  393. provide for Boolean or proximity searches.  In November 1992, Don
  394. Gilbert of Indiana University announced modifications to the WAIS
  395. indexing engine normally used with Gopher servers.  His
  396. enhancements include Boolean, partial word search, and literal
  397. phrase searching.  His biology-oriented Gopher (located at
  398. ftp.bio.indiana.edu, port 70) allows testing of these search
  399. features.  Examples of the kinds of searches possible include:
  400.  
  401.      o    Boolean: red and green not blue.  Result: just those
  402.           records with both the words "red" and "green,"
  403.           excluding all records with the word "blue."
  404.  
  405.      o    Partial words: hum*.  Result: all records with "hum"
  406.           (e.g., "hummingbird," "human," and "humbug").
  407.  
  408. + Page 13 +
  409.  
  410.      o    Literal phrases: red rooster-39.  Result: only those
  411.           records with the full string "red rooster-39" will be
  412.           retrieved.
  413.  
  414. The scope of a Gopher index is determined by the administrator.
  415. The administrator can choose to index one file, all files in a
  416. subdirectory, or all files in a directory and its subdirectories.
  417. Often a large file is broken up into a series of small files so
  418. that it can be loaded into Gopher.  This will allow the user to
  419. selectively retrieve sections of interest.  Usually, the wording
  420. of the Gopher menu item makes it clear what the scope of a given
  421. index is.  It's the administrator's job to make sure this is the
  422. case.
  423.      You can best learn more about Gopher by browsing through
  424. various servers: connect to "Gopher Central" (gopher.tc.umn.edu,
  425. port 70) and follow the list of Gophers.  Alternatively, you
  426. might use the global title index at Michigan State's central
  427. Gopher to look up these Gopher servers (or any others of
  428. interest) by keyword.  (The index of Gopher server names is on
  429. gopher.msu.edu, port 70; look under the "More About Gopher/Other
  430. Gopher Servers" menu item.)  Also, you may want to try Veronica
  431. (discussed below) as a way to locate specific Gopher documents.
  432.  
  433. 4.0  Gopher Clients
  434.  
  435. Recall that the above examples came from using the public client.
  436. The best access to Gopher documents requires use of Gopher client
  437. software running on the user's workstation.  Gopher clients have
  438. been implemented on a variety of platforms.  The University of
  439. Minnesota keeps an archive of commonly used clients, developed
  440. there or elsewhere, on its anonymous FTP service, which is
  441. located on boombox.micro.umn.edu.  Common clients include:
  442.  
  443.      o    PC Gopher III--the University of Minnesota's PC client,
  444.           which was written using Borland's TurboVision.  It
  445.           provides a quasi-graphical interface complete with
  446.           mouse support.  PC Gopher is a relatively large
  447.           program.  Since memory use on networked PCs is tight,
  448.           the program's size has been problematic.
  449.  
  450. + Page 14 +
  451.  
  452.      o    UGOPHER--a PC client from the University of Texas
  453.           Medical School at Houston.  It is a port of the UNIX
  454.           curses client.  It provides a very simple interface,
  455.           but it demands little memory.  It supports special data
  456.           types such as TN3270 and still-image files.
  457.  
  458.      o    Novell LWP client--a PC client from the University of
  459.           Michigan Medical School.  This client works with
  460.           Novell's LAN Work Place for DOS.  It supports images
  461.           and audio as well as TN3270.  It sports a friendly
  462.           graphical interface with more options than the standard
  463.           client.  As of this writing, it does not support a
  464.           mouse.
  465.  
  466.      o    Gopher Book--a Windows client from the Clearinghouse
  467.           for Networked Information Discovery and Retrieval.
  468.           Gopher Book runs under Microsoft Windows and implements
  469.           a book-like view of Gopherspace.  The Gopher community
  470.           has long wanted a good Windows client; this could be
  471.           it.  (Users may want to FTP to sunsite.unc.edu and look
  472.           under pub/micro/pc-stuff/ms-windows/winsock for Gopher
  473.           Book and related tools, such as the Winsock DLL.)
  474.  
  475.      o    TurboGopher for the Macintosh--a Macintosh client from
  476.           the University of Minnesota.  Various Mac Gophers have
  477.           been implemented, at the University of Utah, Brown
  478.           University, and at other sites.  TurboGopher appears to
  479.           be highly functional, robust, and efficient, and it is
  480.           on its way to superseding the other Mac offerings.
  481.  
  482.      o    Curses client--a generic client for UNIX workstations.
  483.           It is also used at many Gopher sites to provide Telnet
  484.           access to the Gopher world for users who haven't yet
  485.           obtained client software for their workstations.  Users
  486.           installing the curses client on their UNIX workstations
  487.           must build the client from source code on the target
  488.           machine (as is commonly true with UNIX software
  489.           offerings).  A version of this client can also be
  490.           compiled for use under the DEC VMS operating system.
  491.  
  492. + Page 15 +
  493.  
  494.      o    NeXT Gopher Client--a NeXT client from the University
  495.           of Minnesota and the University of St. Thomas.  This
  496.           client makes good use of the NeXT's large windows, and
  497.           it leaves the last two or more menus on the screen,
  498.           providing useful contextual information.  Recent
  499.           modifications have been implemented by Jim Lebay of
  500.           Michigan State (icon support, bug fixes, better
  501.           handling of windows, and support for image files) and
  502.           David Lacey of the University of Iowa (support for the
  503.           MIME protocol).
  504.  
  505.      o    Xgopher--a client from Allan Tuchman at the University
  506.           of Illinois that runs under X-based UNIX systems.  (The
  507.           X release must be later than X11 Release 3.)  Xgopher
  508.           supports multiple active items and an easy-to-use
  509.           graphical user interface.  It is highly configurable.
  510.           A C compiler is needed to build the client for the
  511.           target user's machine.
  512.  
  513.      o    Rice University CMS Client--a client that allows users
  514.           of VM/CMS mainframes to connect to Gopher servers.  The
  515.           host must have outbound VT 100 Telnet to function well
  516.           when connecting to Unix-based services.  (The IBM 3270
  517.           terminal protocol does not lend itself well to outbound
  518.           connections to byte-oriented hosts; check with local
  519.           support personnel to determine if such access is
  520.           available at your site.)
  521.  
  522.      o    MVS Gopher Client--a client from Draper Laboratory for
  523.           TSO users on MVS mainframes.  This client can provide
  524.           3270 terminals with access to Gopher services.
  525.  
  526. An experimental OS/2 client has been announced by David Singer of
  527. IBM Almaden (look for os2gopher.zip on boombox.micro.umn.edu).
  528.      Gopher clients vary widely in their appearance and features.
  529. The same documents may be displayed to users in quite different
  530. form, depending on which client is used.  Ultimately, the
  531. information is the same, even though the display format varies.
  532. (Marshall McLuhan would have a field day.)  Some clients allow
  533. the user to print an entire document.  With the PC client, the
  534. document goes to a locally attached printer; however, the NeXT
  535. client assumes its printer is a PostScript device, which might be
  536. connected over the local Ethernet.  Some clients let the user
  537. save a document to the local workstation's disk; others allow the
  538. user to send a document via e-mail to the destination of choice.
  539.  
  540. + Page 16 +
  541.  
  542.      Gopher clients need a way to display files on the user's
  543. screen.  This can be done by code within the client program
  544. itself.  Alternatively, the client may launch an external tool,
  545. often called a "browser" or a "pager."  For instance, UGOPHER has
  546. a relatively limited built-in browser.  The user can install a
  547. superior file display tool, such as the popular shareware tool
  548. LIST from Vernon D. Buerg, and tell UGOPHER to use it instead.
  549.      Similarly, clients may launch separate programs to open
  550. Telnet sessions, do CSO searches, play audio files, and so forth.
  551. The user must install all the needed external tools and configure
  552. the client to use them.  Installation instructions are provided
  553. with every client.
  554.      A useful feature in many clients is the "bookmark."  Upon
  555. finding an item of particular interest, the user sets a bookmark.
  556. The client software stores the bookmark on the client
  557. workstation's disk.  In a later session, the user can call up the
  558. list of bookmarks and immediately jump to items of particular
  559. interest without having to navigate the menus.  Because resources
  560. of interest could be buried deep within Gopher servers, the
  561. bookmark option lets the user build a customized view of
  562. Gopherspace.  (Some users have suggested the need for
  563. hierarchical bookmarks; the current bookmarks provide a simple
  564. flat list.)
  565.      Most clients also have the ability to save documents
  566. themselves on the user workstation.  Some information providers
  567. have found that Gopher makes a very efficient mechanism for
  568. delivering files to users.  At least one software archive
  569. encourages its users to obtain software via Gopher instead of
  570. anonymous FTP.  (The Stanford University Macintosh archive,
  571. Sumex, suggests users choose Gopher over FTP or other methods.)
  572.      Gopher was originally written with the assumption that the
  573. user would be resident on the Internet, with a permanently
  574. assigned IP address, and have client software on his or her
  575. workstation.  This model does not always provide dial-up users
  576. (users dialing in over a phone line using asynchronous ASCII
  577. terminal emulators) with the same level of service as on-campus
  578. users receive.  Many institutions are experimenting with schemes
  579. to allow dial-up users to appear to be on the Ethernet, using
  580. protocols such as SLIP (Serial Line IP) and PPP (Point-to-Point
  581. Protocol).  Under SLIP or PPP, the user can run a standard Gopher
  582. client, which works as if it were on a local TCP/IP network.  (Of
  583. course, data is delivered more slowly; even today's high-speed
  584. modems don't match local area network speeds.)  Because these
  585. dynamic IP assignment schemes are relatively new and they are not
  586. widely used, traditional dial-up users must usually rely on the
  587. public curses client.
  588.  
  589. + Page 17 +
  590.  
  591.      In general, users who run Gopher clients benefit from a
  592. superior environment and have access to more data types.
  593. However, recent versions of the public curses client make it
  594. possible for users to download files for viewing outside of their
  595. terminal session.  To download a file, one strikes a "D" (that's
  596. a capital "D"; use lower "d" at your peril, for that says you
  597. want to delete a bookmark) with the cursor on the document title.
  598. When this option is invoked, the public client service asks the
  599. user which protocol to use (i.e., raw text, Kermit, XMODEM,
  600. YMODEM, or ZMODEM).  Assuming the user's terminal emulator can
  601. handle one of these protocols, this allows the dial-up user to
  602. obtain a copy of a file, such as a still-image file, that
  603. otherwise could not be displayed using the curses service.
  604.  
  605. 5.0  Obtaining a Gopher Client Via FTP
  606.  
  607. A common way to obtain a client is by use of anonymous FTP.  The
  608. University of Minnesota's software archive resides on
  609. boombox.micro.umn.edu.  Other sites also maintain their own
  610. archives, which may include local fixes or enhancements.  In
  611. particular, sites may configure clients to point to local Gopher
  612. servers by default, or they may make changes to allow the clients
  613. to work properly with the local network environment.  New Gopher
  614. users should consult with local computer support staff to
  615. determine where best to obtain a client.
  616.      The following is an example of obtaining the University of
  617. Minnesota's client for MS-DOS (see Figure 6).  It assumes that
  618. the user has a copy of PKZIP, a popular file compression
  619. shareware tool.
  620.  
  621. + Page 18 +
  622.  
  623. -----------------------------------------------------------------
  624. Figure 6.  Example FTP Session to Download a Gopher Client
  625. -----------------------------------------------------------------
  626.  
  627. C:\GOPHER: ftp boombox.micro.umn.edu
  628. Connected to boombox.micro.umn.edu.
  629. Connected to boombox.micro.umn.edu.
  630. 220 boombox FTP server (Version 4.1 Tue Apr 10 05:15:32 PDT 1990)
  631. ready.
  632. Name (boombox.micro.umn.edu:rww): ftp
  633. 331 Guest login ok, send ident as password.
  634. Password:wiggins.msu.edu
  635. 230 Guest login ok, access restrictions apply.
  636. ftp> cd pub/gopher/PC_client
  637. 250 CWD command successful.
  638. ftp> dir
  639. 200 PORT command successful.
  640. 150 Opening ASCII mode data connection for /bin/ls (0 bytes).
  641. total 1352
  642. -rw-r--r--   1 bin          385 Apr  1 15:43 00readme
  643. -rw-r--r--   1 bin            0 Mar 22 17:29
  644. FTP_THESE_FILES_IN_BINARY_MODE
  645. -rw-r--r--   1 bin        75376 Apr  1 15:43 bmkcvt.exe
  646. -rw-r--r--   1 bin         2151 Apr  1 15:43 bmkcvt.txt
  647. -rw-r--r--   1 bin          370 Apr  1 15:43 gopher.bmk
  648. -rw-r--r--   1 bin       182910 Apr  1 15:43 gopher.exe
  649. -rw-r--r--   1 bin        75711 Apr  1 15:43 gopher.ovr
  650. drwxr-xr-x   2 bin          512 Mar 22 17:29 icky_old_client
  651. -rw-r--r--   1 bin          643 Apr  1 15:43 manifest.101
  652. drwxr-xr-x   2 bin          512 Mar 22 17:29 packet_drivers
  653. -rw-r--r--   1 bin        41929 Apr  1 15:43 pcg3.txt
  654. -rw-r--r--   1 bin        62341 Apr  1 15:43 pcg3.worddoc
  655. -rw-r--r--   1 bin       211699 Apr  1 15:43 pcg3.zip
  656. -rw-r--r--   1 bin         2999 Apr  1 15:43 release.101
  657. 226 Transfer complete.
  658. 838 bytes received in 0.31 seconds (2.66 Kbytes/s)
  659. ftp> bin
  660. 200 Type set to I.
  661. ftp> get pcg3.zip
  662. 200 PORT command successful.
  663. 150 Opening BINARY mode data connection for pcg3.zip (211699
  664. bytes).
  665. 226 Transfer complete.
  666. local: pcg3.zip remote: pcg3.zip
  667. 211699 bytes received in 6 seconds (34.47 Kbytes/s)
  668. ftp> quit
  669. 221 Goodbye.
  670. C:\gopher: pkunzip pcg3
  671. -----------------------------------------------------------------
  672.  
  673. + Page 19 +
  674.  
  675. At this point, the client software is on your PC's disk.  Before
  676. you can use it, you must configure it.  This includes specifying
  677. the IP address of your workstation as well as your local
  678. "netmask."  If the correct answers for these values are not
  679. obvious to you, contact local computer support for assistance.
  680. Once you have configured the client, you can invoke it by typing
  681. "gopher."  Future sessions do not require configuration (unless
  682. you want to change a setting, for instance to choose a different
  683. Gopher server).
  684.      Unfortunately, use of campus or corporate computer networks
  685. is not as simple as plugging a cable into an outlet.  There are
  686. many local variations.  Some sites use public domain TCP/IP
  687. packages; some have site licenses for commercial products. Some
  688. departments have local area networks that are gatewayed into the
  689. larger Internet environment.  Technical support varies based on
  690. computing platform.  New Gopher users should consult local
  691. network support specialists for assistance.
  692.  
  693. 6.0  How the Gopher Protocol Works
  694.  
  695. The Gopher protocol rests on the metaphor of a file system.  As
  696. we've seen, a Gopher server delivers a menu in the form of a list
  697. of menu items.  When a Gopher client connects to a server, it
  698. opens a TCP connection to a specified "well-known
  699. port"--typically port 70.  Once the connection is established,
  700. the client then transmits a "selector string" that specifies what
  701. it wants to see.  If it is the initial connection to a Gopher,
  702. the client sends a null selector string.  This tells the server
  703. to deliver the highest level, or root, menu to the client.  Once
  704. the server has finished sending the list of items, the connection
  705. is closed.  The client then displays the document titles on the
  706. user's console, and the user is free to click on items of choice.
  707.      The information sent by the server includes the following
  708. fields:
  709.  
  710.      <type> <Document Title> <selector string> <server domain
  711.      name> <server port number>.
  712.  
  713. + Page 20 +
  714.  
  715.      One line of this form is delivered for each document.  The
  716. initial field is a one-byte document type identifier.  The type
  717. field is concatenated with the beginning of the title field;
  718. other fields are separated by the ASCII tab character.  The
  719. Document Title field is the descriptive text that the client
  720. should display for each item.  The "selector string" is a string
  721. of characters, usually derived from the location of the document
  722. in the server's file system, that can be used to uniquely
  723. identify the document for retrieval.  The server domain name is
  724. simply the domain address of the server.  The port number is a
  725. concept common in TCP/IP server nomenclature; the Gopher server
  726. "listens" on a specified port for transactions.  (The Internet
  727. Assigned Numbers Authority, or IANA, which concerns itself with
  728. such issues, has assigned Port 70 as the standard Gopher port,
  729. though a given server may use another port--or ports, if a single
  730. machine runs multiple Gopher services.)
  731.      For each document descriptor delivered by the server, the
  732. client inspects the one-byte type designation.  If a document is
  733. of a type the client can't handle, the client simply omits that
  734. document from its list of titles.  For instance, audio files are
  735. not currently supported via PC Gopher III.  If a user points PC
  736. Gopher III at a directory that contains such files, those titles
  737. will not be shown to the user.  Since the user can't select it,
  738. there's no frustration with impossible requests. (Although the
  739. protocol specification calls for this behavior, some clients,
  740. such as the public curses client, do not in fact omit such items.
  741. This may be useful in some cases.  For instance, the user may
  742. want to download an item via the curses client for later use
  743. outside the Gopher session.)
  744.      The process used by Gopher clients and servers can be
  745. envisioned in Figure 7.
  746.  
  747. + Page 21 +
  748.  
  749. -----------------------------------------------------------------
  750. Figure 7.  Gopher Client/Server Interaction
  751. -----------------------------------------------------------------
  752.  
  753.                 Client sends "selector string" to server via
  754.                        TCP to port 70.
  755.        ===============================================>>>
  756.  _______________        ________________           ____________
  757. |               |      (                 )        |            |
  758. |  Client       |    (   Campus Ethernet   )      | Gopher     |
  759. |   (user       |   (         or            )     | Server     |
  760. | workstation)  |    (   The Internet      )      |            |
  761. |               |      (                 )        |            |
  762. |_______________|       ________________          |____________|
  763.  
  764.        <<<================================================
  765.              Server sends back document to client,
  766.                     then disconnects.
  767.  
  768. ----------------------------------------------------------------
  769.  
  770. The selector string tells the server what the user wants to see.
  771. The delivered document selectors, in turn, are the unique
  772. identifiers needed to cause the server to deliver each upon
  773. request.  Once the server has delivered a document (whether it
  774. be folder, plain text, or otherwise), it has done its job for
  775. this transaction, so it disconnects.  The Gopher server does not
  776. retain any information about the client across transactions--it
  777. is said to be "stateless."  This aspect of the Gopher design is
  778. the key to Gopher's efficiency--the server is only connected to
  779. the user long enough to serve a particular request, and it does
  780. not pay the high overhead cost of having hundreds or thousands of
  781. users "logged in" at once.  This highly efficient model allows
  782. relatively small workstations to function as Gopher servers,
  783. handling millions of requests per week from thousands of users
  784. across the Internet.
  785.  
  786. + Page 22 +
  787.  
  788. 7.0  Gopher Document Types
  789.  
  790. The Gopher document types that have been defined so far are shown
  791. in Table 1.
  792.  
  793. -----------------------------------------------------------------
  794. Table 1.  Gopher Document Types
  795. -----------------------------------------------------------------
  796.  
  797.      0    File
  798.      1    Directory
  799.      2    CSO phone-book server
  800.      3    Error
  801.      4    BinHexed Macintosh file
  802.      5    DOS binary archive
  803.      6    Item is a UNIX unencoded file
  804.      7    Index-Search server
  805.      8    Text-based Telnet session
  806.      9    Binary file
  807.      +    Redundant server
  808.      T    Text-based TN3270 session
  809.      g    GIF format graphics file
  810.      I    Image file
  811.  
  812. Source: Internet Request For Comments document, RFC 1436.
  813. -----------------------------------------------------------------
  814.  
  815. In practice, other document types have also been adopted (e.g.,
  816. "M" has been used for MIME mail documents).
  817.      As Table 1 illustrates, the term "document" is used broadly
  818. to include any type of resource that can be accessed by the
  819. Gopher.  Here is a more detailed explanation of some of the
  820. important document types.
  821.  
  822.      o    File.  This is a simple ASCII text file, which is
  823.           displayed on the user's workstation using some sort of
  824.           file browser.
  825.  
  826.      o    Directory.  This is a list of documents that is used to
  827.           construct a Gopher menu.  When a directory item is
  828.           selected, the server sends the client the list of items
  829.           in that directory.  Included with each item is the
  830.           information that the client will need in order to fetch
  831.           the document when the user requests it.
  832.  
  833. + Page 23 +
  834.  
  835.      o    CSO phone book server.  Named after the Computing
  836.           Services Organization at the University of Illinois,
  837.           CSO provides a client/server protocol for searching a
  838.           phone database.  Gopher recognizes this protocol and
  839.           lets the user interact with a CSO server in order to
  840.           look up information.
  841.  
  842.      o    Text-based Telnet session.  This document type allows a
  843.           Gopher to present a list of host services that accept
  844.           Telnet as a remote access protocol.  For instance, a
  845.           list of Internet-accessible online catalogs.
  846.  
  847.      o    Text-based TN3270 session.  A variant of Telnet,
  848.           TN3270, is required to connect to IBM mainframe hosts.
  849.           Support for this form of connection was incomplete
  850.           early in the life of Gopher but has become pervasive in
  851.           the last several months.  (TN3270 support is important
  852.           because many online catalogs and other database
  853.           services reside on IBM mainframes.  These days, when
  854.           traditional mainframe-based services are looked upon
  855.           with derision by some in the networked information
  856.           community, mainframes are sometimes referred to as
  857.           "legacy systems."  But a lot of valuable information is
  858.           still stored on those legacy systems, so connectivity
  859.           to them is necessary.)
  860.  
  861. There are also document types for PC (DOS binary archive),
  862. Macintosh (BinHex file), and UNIX (unencoded file) files; graphic
  863. files (GIF); searchable databases (index-search server); and
  864. backup Gopher servers (redundant server).
  865.      Note that the case of the document type identifier is
  866. significant.  Because each document descriptor line contains the
  867. name of the server where that document is located, it is easy for
  868. a Gopher server to point to documents stored far and wide.  For
  869. instance, a Gopher server at Mythical State University might set
  870. up the document types for a root menu as shown in Table 2.
  871.  
  872. + Page 24 +
  873.  
  874. -----------------------------------------------------------------
  875. Table 2.  Example Document Types
  876. ----------------------------------------------------------------
  877.  
  878. Type: 0
  879. Document Title: About this Gopher
  880. Selector: 0/about_MSU
  881. Server: gopher.mythical.edu
  882. Port: 70
  883.  
  884. Type: 1
  885. Document Title: Fun & Games
  886. Selector: 1/fun
  887. Server: gopher.tc.umn.edu
  888. Port: 70
  889.  
  890. Type: 1
  891. Document Title: MSU Campus Events
  892. Selector: events
  893. Server: events.mythical.edu
  894. Port: 70
  895.  
  896. Type: 2
  897. Document Title: MSU Telephone Directory
  898. Selector: [blank]
  899. Server: cso.mythical.edu
  900. Port: 105
  901.  
  902. Type: 7
  903. Document Title: Search MSU Gopher
  904. Selector: titles 7/ts
  905. Server: gopher.mythical.edu
  906. Port: 70
  907.  
  908. -----------------------------------------------------------------
  909.  
  910. Note that the Document Title is the only field that clients
  911. display by default.  The combination of Selector, Server, and
  912. Port describes the document uniquely.  Note also that the
  913. selector string consists of whatever text the server wants to
  914. receive in order to deliver a document.  For Unix-based servers,
  915. this string is prefixed by the type of the document and a slash.
  916. Finally, note the variety of servers shown in this example.
  917. Often a Gopher administrator will store items peculiar to his or
  918. her domain on the same server machine as the Gopher server, but
  919. this is not essential.  It is common for documents of local
  920. interest to reside on several servers, as shown above.
  921. Theoretically, a server could offer only documents that reside on
  922. other Gopher servers.
  923.  
  924. + Page 25 +
  925.  
  926.      Because the Gopher design calls for a simple protocol built
  927. on TCP/IP, it is possible to test the behavior of servers without
  928. even using a client.  The reader might want to try connecting to
  929. a Gopher server "manually" to see how this works.  For instance,
  930. if you were to open a Telnet session to "gopher.micro.umn.edu 70"
  931. and then press the return key, you would see the initial menu for
  932. the main University of Minnesota server displayed in raw form.
  933.      Most Gopher clients provide an "Item Info" option that
  934. displays the selector string that pulls up the current document.
  935. This can be useful when you want to know where a given document
  936. originates.  It also makes it easy for a Gopher administrator to
  937. add a local pointer to a newly discovered, useful item.
  938.  
  939. 8.0  Setting Up a Gopher Service
  940.  
  941. It is relatively easy for a developer to implement Gopher client
  942. or server software.  The protocol is also very efficient in its
  943. demands on the server and the network.  This simplicity extends
  944. to establishing a new Gopher service: it is also easy for an
  945. information provider to set up a Gopher server.  Some Gopher
  946. administrators report being able to bring a server online within
  947. an hour or two of downloading the server installation kit.
  948. Typical Gopher servers are UNIX workstations of one sort or
  949. another.  The University of Minnesota relies upon Macintoshes
  950. running A/UX and NeXT workstations for the most part.  Other
  951. popular server platforms include Sun workstations and IBM
  952. RS/6000s.  The Gopher server code has also been implemented on
  953. the PC, but this platform is relatively uncommon as a server.
  954. Servers have even been implemented on IBM mainframes, both under
  955. the VM/CMS and MVS operating systems.
  956.  
  957. + Page 26 +
  958.  
  959.      The standard Unix-based server code is written in C.  It can
  960. be found at the same repository as the client code
  961. (boombox.micro.umn.edu), and it can be installed on a variety of
  962. platforms with little modification.  The Frequently Asked
  963. Questions (FAQ) file often includes tidbits on peculiarities of
  964. installation on particular platforms.  The news group
  965. (comp.infosystems.gopher) also contains discussions of
  966. installation issues.  New server administrators will want to
  967. consult the news group archive (see Figure 3).
  968.      Numerous tools have been created that assist in managing
  969. Gopher servers.  For example, tools that analyze logs, improve
  970. indexes, and extend support delivery of calendar-based
  971. information are available.  Some of these tools can be retrieved
  972. from the University of Minnesota's FTP server.  Others,
  973. particularly short Perl scripts, are posted by the authors on
  974. comp.infosystems.gopher.  Thus, the discussion group is not only
  975. a source of accumulated wisdom.  It also is a repository of
  976. helpful tools.
  977.      Gopher administrators announce new servers on the following
  978. lists:
  979.  
  980.      gopher@ebone.net (European servers)
  981.      gopher@boombox.micro.umn.edu (All other servers)
  982.  
  983. The announcement should include the name of the Gopher server,
  984. its Internet address, and its port number.  The name can include
  985. labels such as "(experimental)" or "(Under Construction)" as
  986. appropriate.  New administrators may want to review Gopher server
  987. names listed in "All the Gopher servers in the world" to see what
  988. sort of names others have chosen before picking their own.
  989.      Gopher administrators face many challenges.  One of these is
  990. how to effectively organize the Gopher menu hierarchy.  Another
  991. challenge is how to convert documents from whatever format the
  992. owner of the information prefers to flat ASCII, which is
  993. currently the least common denominator document format--the
  994. format that all computing platforms can cope with.  Prospects for
  995. delivering documents in PostScript are discussed below; in the
  996. absence of that sort of advance, perhaps the best advice for the
  997. Gopher administrator is to insist that document owners do the
  998. translation to flat ASCII, rather than taking on that chore as a
  999. part of running a Gopher service.
  1000.  
  1001. + Page 27 +
  1002.  
  1003. 9.0  Gopher's Origins
  1004.  
  1005. Computer Center staff at the University of Minnesota began
  1006. discussing the need for something like Gopher in early 1991.
  1007. They wanted an online mechanism for "publishing" hints on
  1008. computing services at the university.  Mark McCahill, project
  1009. leader for the group that developed Gopher, says the goal was to
  1010. find a scheme that was more efficient than one-to-one consulting
  1011. or conventional handouts and short courses.  At the time, another
  1012. group at the university was proposing a mainframe-based solution
  1013. for campus document delivery.  The group designing Gopher wanted
  1014. a simple, network-based scheme that supported browsing of
  1015. available documents.  They also wanted to build a service that
  1016. was fun to use, so that a critical mass of users would develop.
  1017. The original Gopher team included Farhad Anklesaria, Paul
  1018. Lindner, Daniel Torrey, Bob Alberti, and Mark McCahill.
  1019.      The developers' earliest discussions produced a goal of a
  1020. simple protocol--easy to understand, describe, and implement.
  1021. They decided upon a client/server model: a client would open a
  1022. Telnet connection to the server, request specific information,
  1023. receive and display the information, and disconnect.  The initial
  1024. model called for only two document types: text files and folders
  1025. (subdirectories).  Thus, from the beginning, the developers
  1026. envisioned a mechanism that would deliver lists of files and
  1027. directories upon request.  The client/server model would provide
  1028. for sessions lasting only long enough to deliver that list to the
  1029. user's client software.  These aspects of the Gopher model have
  1030. endured.
  1031.      The University of Minnesota design team held their first
  1032. serious meetings during the first week of April 1991.  The Gopher
  1033. team proceeded to work on implementing the first servers and
  1034. clients.  The goal at this point was to build a working prototype
  1035. that could readily be discarded; the team assumed that whatever
  1036. they produced might be replaced by something better within a
  1037. year.  The team spent quite a few 16-hour days on the project.
  1038. By the last week of that month, they had prototype Gopher clients
  1039. and servers working.  Initially, there was a Macintosh client and
  1040. server, a UNIX client and server, and a PC client.
  1041.      By late April, the Gopher developers decided that some sort
  1042. of search mechanism was also needed.  NeXT workstations were seen
  1043. as an appropriate choice for servers, because the built-in
  1044. Digital Librarian offered a highly functional search engine.  The
  1045. developers also decided Gopher should support telephone directory
  1046. searches, and they settled upon the CSO telephone directory
  1047. search protocol, already in use at numerous universities, as the
  1048. best way to implement online phone books.
  1049.  
  1050. + Page 28 +
  1051.  
  1052.      These different document types--text, folders, and CSO
  1053. searches--would be sufficient to define a Gopher that could
  1054. deliver documents stored on a single server.  But, from the
  1055. start, the protocol allowed a server to point to another server
  1056. as the physical home of a given document.  This allows a Gopher
  1057. to include services that may be scattered across the Internet all
  1058. in one list.  It also makes possible a directory of other
  1059. Gophers, any of which is a keystroke or a mouse click away.
  1060.      But the developers thought about providing ways to connect
  1061. to existing database servers on campus, such as a university's
  1062. online catalog.  They decided to include a document type that was
  1063. itself a Telnet session to another host computer.  To round out
  1064. the collection, a document type for transferring Macintosh or PC
  1065. binary files was included.  The original protocol was designed to
  1066. be extensible; the one-byte data type field could potentially
  1067. support 255 different data types.  A draft Gopher protocol
  1068. specification was released in spring 1991.
  1069.      The original Gopher team divided their development efforts.
  1070. Torrey implemented the client for MS-DOS, and Bob Alberti wrote
  1071. the first UNIX curses client.  Anklesaria wrote the initial
  1072. server and client for the Macintosh.  Lindner developed the
  1073. initial UNIX server code.  Besides serving as project leader,
  1074. McCahill set up the first index server using the Digital
  1075. Librarian tool on the NeXT and assisted with early development of
  1076. the Macintosh client.  Despite this division of labor, the group
  1077. worked as a team on problem solving and common issues.
  1078.      Delivery of sound via Gopher was born during the early
  1079. development phase.  One weekend the team member doing most of the
  1080. server code, Paul Lindner, wanted to hear some music in his
  1081. office, which is several rooms away from the communal CD player.
  1082. His NeXT workstation was capable of playing sounds, and there was
  1083. a CD player available on a workstation in another room.  A few
  1084. hours later he had implemented the sound data type, and Gopher
  1085. was capable of playing music across a real-time Internet link.
  1086.      The first Gopher production services were in place at the
  1087. University of Minnesota by late summer of 1991.  Gopher was
  1088. announced to the world via the campus-wide information systems
  1089. mailing list (CWIS-L@WUVMD) in July 1991.  A USENET news group,
  1090. alt.gopher, was started.  Computer system administrators from
  1091. around the Internet began to learn about Gopher.  The code was
  1092. made available for others to try, and Gopher servers began
  1093. popping up in various places.  By early 1992, Gopher was no
  1094. longer a prototype but was becoming a tool of choice as
  1095. universities sought ways to implement campus-wide information
  1096. systems.  Steve Worona of Cornell Information Technologies says
  1097. that Cornell was about to design a protocol that would allow them
  1098. to move their pioneering CUINFO mainframe campus information
  1099. service to a network/workstation environment, "but then we found
  1100. out about Gopher, and it was exactly what we were looking for."
  1101. [1]
  1102.  
  1103. + Page 29 +
  1104.  
  1105.      The new TurboGopher client for the Macintosh provided a
  1106. learning experience for the developers, because much of the
  1107. testing took place over 2400 bps dial-up SLIP connections.  This
  1108. slow link exposed the ways in which the client blocked efficient
  1109. transfer of data.  The client was modified, and it now offers
  1110. very impressive performance on high-speed networks.  The
  1111. University of Minnesota team believes this to be the fastest
  1112. client now in service.  Recent work on TurboGopher has been done
  1113. by University of Minnesota staffer Dave Johnson; additions
  1114. include foreign language support.
  1115.  
  1116. 10.0  Gopher+
  1117.  
  1118. In August 1992, the regional computer network CICNet sponsored a
  1119. Gopher Workshop in Ann Arbor, Michigan.  Invited attendees
  1120. included Gopher implementers at the various CICNet institutions
  1121. as well as Gophernauts from Brown, Yale, Cornell, Princeton,
  1122. Rice, the University of Washington, the University of North
  1123. Texas, and other institutions.  Mark McCahill and Farhad
  1124. Anklesaria attended from the University of Minnesota.  At that
  1125. conference, the University of Minnesota developers presented
  1126. Gopher+, their vision for how to extend Gopher beyond its
  1127. original design.
  1128.      The original Gopher design, with its one-byte document type,
  1129. was adequate to meet many of the needs of the community.  But
  1130. there were many demands for additions to the protocol, to handle
  1131. everything from PostScript files and various image files (e.g.,
  1132. GIF and JPEG) to global document attributes, such as author name
  1133. and document expiration date.  Rather than embed each and every
  1134. requested extension in the protocol, the University of Minnesota
  1135. team devised a mechanism to support general ways to add them to
  1136. the protocol.  McCahill says that the team had been working on
  1137. Gopher+ throughout 1992, but the advent of the workshop caused
  1138. their ideas to gel.
  1139.      Gopher+ adds new, named fields to the simple one-byte item
  1140. descriptor in basic Gopher.  If a client appends an exclamation
  1141. mark to a selector string, the Gopher server is expected to
  1142. deliver an Attribute Information block.  The first named field,
  1143. +INFO, is required; it resembles the descriptive line sent by the
  1144. old protocol.  Other named fields that have been suggested for
  1145. Gopher+ include +ABSTRACT, which would be a textual abstract
  1146. describing the document; +ADMIN, which would be the name of the
  1147. owner of the document; and +DATE, which would be the date the
  1148. document was last modified.  These global document attributes
  1149. would help administrators maintain and describe documents, and,
  1150. after appropriate client enhancements, would help users select
  1151. documents of interest.
  1152.  
  1153. + Page 30 +
  1154.  
  1155.      The University of Minnesota announced it would act as a
  1156. central registry of Gopher+ data types; anyone proposing to
  1157. implement a new named attribute field will submit it for
  1158. registration to the Gopher team.  This model allows cooperative
  1159. uses of new fields as agreed to by the Gopher community.  It also
  1160. potentially allows a given site to implement a particular field
  1161. in its clients and servers that would be of no interest to anyone
  1162. else.  As always, a client would only handle the information it
  1163. knows how to deal with.  If someone adds a +HAIRCOLOR attribute,
  1164. a Gopher+ client would be free to ignore it.  Note that a Gopher+
  1165. field could be a simple textual value, or, like a document under
  1166. the basic protocol, it could point to another Gopher+ server.
  1167.      Besides providing a mechanism for supporting global document
  1168. attributes, Gopher+ is intended to support alternate views to a
  1169. document.  For instance, a special named field called +VIEWS will
  1170. support versions of a document in different languages.  With
  1171. +VIEWS a document could be offered in a variety of formats, from
  1172. flat ASCII to PostScript.
  1173.      Beyond the global attributes and alternate views functions,
  1174. Gopher+ also provides a mechanism for interactive queries.  A
  1175. Gopher+ server can interrogate a user for specific information
  1176. such as a password, or it could even serve as an interface
  1177. between a user and an interactive process on another host.  This
  1178. +ASK support includes options for prompting for file names or for
  1179. the user to make a choice among a range of options.
  1180.      In February 1993, the University of Minnesota Gopher team
  1181. announced the first clients implementing the Gopher+ protocol--a
  1182. version of TurboGopher (for the Mac) and a version of the UNIX
  1183. client.  Server code is also available, and the production
  1184. version of the University of Minnesota's Gopher points to a
  1185. demonstration Gopher+ server.  Users with non-Gopher+ clients can
  1186. safely point to Gopher+ servers, but they will not be able to
  1187. view the Gopher+ documents.
  1188.      There has been some criticism of the Gopher+ protocol
  1189. extensions.  In particular, some have argued that instead of
  1190. defining the +VIEWS scheme under Gopher+, the Gopher community
  1191. should rely upon MIME (Multipurpose Internet Mail Extensions).
  1192. Originally proposed as a way to allow arbitrary 8-bit files to
  1193. survive transit over Internet (SMTP) mail, MIME is being deployed
  1194. widely and may serve as a standard way to handle multimedia files
  1195. on a variety of platforms, whether the files are delivered via
  1196. e-mail or otherwise.  Others question whether there really needs
  1197. to be a Gopher+ registry.  If it does need to exist, some argue
  1198. it should be at the official Internet registry, the IANA.
  1199.      In April 1993, the University of Minnesota sponsored a
  1200. second Gopher Workshop and Conference.  Participants at the
  1201. Workshop urged the developers to consider adoption of the MIME
  1202. content types and registry scheme instead of "rolling their own"
  1203. types and registry.  The Gopher team agreed to "strongly
  1204. consider" use of MIME content type attributes.
  1205.  
  1206. + Page 31 +
  1207.  
  1208.      In the short term, the University of Minnesota intends to
  1209. act as the registry for other global document attributes (such as
  1210. the owner of a document), but they have stated their willingness
  1211. to use IANA eventually.
  1212.      Whether Gopher+ is deployed in its current form or with
  1213. changes to the syntax and registration process, it is clear that
  1214. it will allow Gopher to be extended to handle document types that
  1215. have not yet been envisioned.  It will improve the ability of
  1216. Gopher administrators to organize documents.  It will also allow
  1217. basic improvements in the technology, providing a framework for
  1218. improved navigation and interfacing to interactive services.  An
  1219. RFC describing the base Gopher protocol has been issued (RFC
  1220. 1436).  Mark McCahill says that, after minor corrections are made
  1221. to that document, the base protocol will be frozen.  Gopher+ is
  1222. considerably more fluid.  It will be interesting to watch its
  1223. evolution.
  1224.      Along with Gopher+, the University of Minnesota team has
  1225. also developed a mechanism for allowing "lightweight"
  1226. authentication of users for access to protected documents.  For
  1227. instance, some vendors may insist that their documents can only
  1228. be read when users have typed in a unique password assigned to
  1229. them.  The AdmitOne Authentication scheme lets a user obtain a
  1230. "ticket" that allows access to restricted documents.  The
  1231. AdmitOne scheme uses encryption to avoid sending passwords over
  1232. the network.  It also provides a way that a client can reuse a
  1233. ticket for subsequent transactions.  Critics of AdmitOne have
  1234. pointed out schemes for defeating the security of AdmitOne, some
  1235. rather elaborate.  One claim is that security cannot be provided
  1236. by a client and a server alone--a trusted third party is
  1237. required.
  1238.  
  1239. 11.0  Organizational Issues
  1240.  
  1241. The greatest strength of Gopher--its ability to easily present a
  1242. single menu whose constituent documents reside far and wide on
  1243. the Internet--also presents some interesting challenges.  Gopher
  1244. is being used at many universities to implement campus-wide
  1245. information systems (usually referred to by the acronym CWIS,
  1246. pronounced "kwis").  Each site setting up a CWIS under Gopher
  1247. faces the challenge of devising an organizational scheme that
  1248. embraces all the local documents and host services of interest as
  1249. well as the many documents and services available over the
  1250. Internet.
  1251.  
  1252. + Page 32 +
  1253.  
  1254.      Some sites have adopted a simple model for the root menu.
  1255. This yields a short and simple initial menu, such as:
  1256.  
  1257.      About Gopher
  1258.      The Campus
  1259.      The Community
  1260.      The World
  1261.  
  1262. This elegant approach is appealing in its simplicity.  Of course,
  1263. to some extent, the scheme simply moves the problem of where best
  1264. to put various documents downstream.  Even with these simple
  1265. categories, some items can be hard to place.  Where do you put a
  1266. gateway to your student e-mail service?  What if you have an
  1267. events calendar that integrates campus and community happenings?
  1268. Where does the local weather go?
  1269.      At the other end of the spectrum, a site might choose to
  1270. have a broad set of offerings on the root menu, making more
  1271. documents accessible with fewer mouse clicks.  Such a menu
  1272. structure might look like this:
  1273.  
  1274.      1.  Gopher at Michigan State University.
  1275.      2.  More About Gopher (Documents & Navigation Tools)/
  1276.      3.  Keyword Search of Titles in MSU's Gopher <?>
  1277.      4.  About Michigan State University/
  1278.      5.  MSU Campus Events/
  1279.      6.  News & Weather/
  1280.      7.  Phone Books & Other Directories/
  1281.      8.  Information for the MSU Community/
  1282.      9.  Computing & Technology Services/
  1283.      10. Libraries/
  1284.      11. MSU Services & Facilities/
  1285.      12. Outreach / Extension / Community Affairs/
  1286.      13. Network & Database Resources/
  1287.  
  1288. + Page 33 +
  1289.  
  1290. This sort of scheme tries to bring commonly accessed documents to
  1291. the front.  The user need not search through multiple menus to
  1292. find today's weather or the campus phone book.  The very first
  1293. item is a text file with introductory material, so the new user
  1294. doesn't face a menu full of folders.  A keyword title search
  1295. allows users to find documents no matter where they are stored in
  1296. the hierarchy.  On the other hand, the user confronts a much
  1297. busier initial screen, which may be daunting in its length and
  1298. complexity.  Depending on the client's default window size, the
  1299. initial screen may not even fit on the menu window, forcing the
  1300. user to scroll to see all choices.
  1301.      Users may find the bookmark facility offered by most clients
  1302. to be a useful way to customize their view of a Gopher.  Gopher
  1303. administrators can also make liberal use of indexes--both
  1304. document title indexes and full-text indexes--in order to make it
  1305. easy for users to quickly locate data without having to hunt
  1306. through the hierarchy.  These tools can help, but a balanced
  1307. hierarchy that reflects local needs is a worthwhile goal, even
  1308. though there is no universal agreement on basic issues such as
  1309. whether a depth-first or breadth-first organization is best.  In
  1310. any case, the process of building a CWIS under Gopher is much
  1311. more likely to succeed if a campus-wide committee helps design
  1312. the structure.  For instance, a site might want to include staff
  1313. from the central computing organization, the library, university
  1314. relations, departments that run their own Gophers, and so forth.
  1315. A committee can help ensure needs of various campus
  1316. constituencies are met.
  1317.      While an organizational scheme for a CWIS must address the
  1318. peculiar needs of each campus, most Gophers also allocate part of
  1319. their directory tree to "Internet Resources" (or some similar
  1320. name to serve the same purpose).  Gopher administrators are
  1321. beginning to realize that it does not make sense for each of them
  1322. to come up with a local scheme for organizing all the online
  1323. resources of the Internet.  First, this is not practical; second,
  1324. if a common organizational scheme can be devised for all of
  1325. Gopherspace, then users will not confront wildly differing
  1326. Internet directory structures as they move from campus to campus.
  1327.      Note that not all Gophers aspire to the scope of a
  1328. campus-wide system.  In some cases, the documents on a Gopher are
  1329. mostly related to the special purpose of the sponsoring
  1330. institution (e.g., the Electronic Frontier Foundation, the Well,
  1331. and the National Institutes of Health).  Such Gophers are
  1332. inherently more narrowly focused than a university's CWIS tends
  1333. to be.
  1334.  
  1335. + Page 34 +
  1336.  
  1337.      Other administrators are mounting "subject Gophers" that may
  1338. cover a single subject or a variety of subjects of general
  1339. interest to users, but not documents pertaining to a particular
  1340. campus.  For instance, Don Gilbert of Indiana University has
  1341. deployed a Gopher that is dedicated to materials on biology, and
  1342. this server is becoming a useful resource for the biological
  1343. sciences community.  Sue Davidsen of the University of Michigan
  1344. Graduate Library has built a subject Gopher that delivers census,
  1345. business, and social science data.  Known as Go M-Link, this
  1346. Gopher mainly serves public libraries in Michigan.  Subject
  1347. Gophers in many cases have the most intuitive organization
  1348. schemes.
  1349.      The use of the Internet to deliver electronic journals
  1350. presents a special organizational challenge for the Gopher
  1351. community.  Discussions on how to manage and organize a set of
  1352. e-journals are underway.  Some propose the venerable Dewey
  1353. Decimal Classification; some suggest the Library of Congress
  1354. Classification Schedules; others like the Universal Decimal
  1355. Classification; and others are experimenting with schemes of
  1356. their own devising.  CICNet has announced a project to archive
  1357. electronic journals via their Gopher.  Billy Barron of the
  1358. University of Texas at Dallas is building this archive, and he is
  1359. experimenting with organizational issues. [2]  His initial effort
  1360. uses the LC Classification scheme.  One group of Gopher
  1361. administrators and librarians from CICNet, NYSERNet, and other
  1362. institutions are exploring alternative approaches to Gopher
  1363. taxonomy.
  1364.      Some librarians contend that any attempt to fit documents
  1365. drawn from all areas of human endeavor into a formal
  1366. classification scheme is not an appropriate model for mounting
  1367. networked information.  Marty Courtois, a librarian and database
  1368. coordinator at Michigan State University, observes: "Library
  1369. classification schemes such as the Dewey Decimal System and the
  1370. Library of Congress classification are good systems for finding
  1371. materials on the shelf and are necessitated by the fact that a
  1372. single book can only be placed in one location." [3]  With a
  1373. system like Gopher, cross-references can be set up as simple
  1374. alternate links.  Thus, a set of subject headings based on a
  1375. controlled vocabulary can make materials far more accessible to
  1376. the user.  As Courtois puts it:
  1377.  
  1378.      It's simply easier to browse a classification list to look
  1379.      for "Biological Sciences" than to have to know that "QH300"
  1380.      represents that field.  It's like giving the user a chance
  1381.      to look in the card catalog and the shelves at the same
  1382.      time. [4]
  1383.  
  1384. + Page 35 +
  1385.  
  1386. The world of networked information is new and evolving.  Some
  1387. organizational schemes that seem obvious to an administrator may
  1388. be suboptimal for the user.  For instance, there is a tendency to
  1389. categorize networked information servers based on their location
  1390. or on the underlying technology.  For instance, you might find a
  1391. Gopher menu that offers:
  1392.  
  1393.      Other Gopher Servers
  1394.      Non-Gopher Campus Wide Information Systems
  1395.      WAIS-based information
  1396.      World-Wide Web
  1397.  
  1398. The user of course is interested in information, not the
  1399. technology that presents it.  In the long run, providers of
  1400. networked information resources need to find ways to organize
  1401. materials by subject matter, not by whether the data resides in a
  1402. Gopher, WWW, WAIS, or some other technology.  As Marie-Christine
  1403. Mahe of Yale University observes, "A Gopher that splits CWISes
  1404. along technical lines is equivalent to a supermarket that would
  1405. shelve tomato sauce in different aisles, according to whether it
  1406. was in a can or in a glass jar." [5]  Mahe believes that when
  1407. Gopher uses standards such as Z39.58, it will be easier to
  1408. provide uniform access to data stored under disparate systems.
  1409. In the meantime, she argues that Gopher administrators should use
  1410. topical organization whenever possible.
  1411.      One could imagine a division of labor among Gophers, as
  1412. follows: (1) publisher Gophers would distribute original material
  1413. in one or more subject areas; (2) single-subject Gophers would
  1414. organize and provide access to network resources for a subject
  1415. area; (3) index Gophers, such as Veronica, would allow users to
  1416. search for resources by keyword instead of browsing; (4) master
  1417. Gophers would link users to single-subject and index Gopher
  1418. servers; and (5) CWIS Gophers would specialize in documents and
  1419. services that pertain to each campus (they would have links to
  1420. master Gophers to provide access to Internet resources).
  1421.      Whether this happens or not, it is clear that there must be
  1422. more recognition of the specialized roles that Gophers can play.
  1423. If every Gopher administrator tries to provide both original
  1424. documents and organized links to Internet resources, these
  1425. efforts are doomed to fail.
  1426.  
  1427.  
  1428.  
  1429.