Subject: A gopher introduction From: gnat@kauri.vuw.ac.nz (Nathan Torkington) Gopher - The Internet Resource Discoverer Gopher was developed at Minnesota University. This gopher introduction was written by Nathan Torkington (reachable through e-mail as Nathan.Torkington@vuw.ac.nz). Distribution without profit is authorised, commercial use must be authorised by Nathan Torkington. $Id: gopher-tmt,v 1.5 92/10/11 19:32:00 gnat Exp $ Gopher is a system for providing information over the Internet. It gives users a consistent, simple menu interface to information and hides the method used to retrieve it. In addition, gopher also allows seamless links between information providers. To do this it uses a recently popularised computer science concept, that of the client-server model of computing. The client-server model is a commonly used method of providing services over a network. The end-user uses a client program to access information by communicating with a server program. Typically the server and client are running on different machines and communicate over the network. You need not have a server of your own to be able to use the client. Information providers will wish to run a server. Servers give the menu structure to clients, as well as providing documents on request and allowing full-text searches (in conjunction with either the public-domain WAIS software or the full-text database software that comes with the NeXT). WAIS stands for "Wide Area Information Server" - for more information, see the article on WAIS. It is the gopher client that users will use to traverse gopher's menus. Items in these menus are of three major types - the type of the menu item determines what will happen when that item is selected. In general, selecting an item will either give another menu, give a document to view, or let a user search a remote database. It is the fact that the user need only view the gopher world in these three terms that makes gopher accessible to everybody. Gopher clients are available for System V and BSD releases of Unix, the X Window system, GNU-Emacs under Unix, Macintosh Hypercard and Application, VMS, VM/CMS, and IBM PCs with packet-driver software. Gopher servers are available for Unix, VMS, Macintosh, VM/CMS, and MVS. The fundamental concepts in Gopher are the menu, the link, the document, the outside connection and the index. Menus are the way that users navigate through "gopher-space", the world made up of the menus and information available through gopher. A menu is a list of items which the user may choose one from. Items in a menu may turn out to be links to another menu. This new menu need not be located on the same server as the original, and this enables information providers to avoid duplicating effort. This also means that gopher users can access information from any of the numerous gopher servers around the world without needing to know where the information is coming from. A user's search through gopherspace should ultimately terminate in either a document or an outside connection. Documents are simple text files, images, sound files, programs, or whatever else the information provider wants the user to be able to have a copy of. Outside connections are network connections to services or programs which cannot be integrated into gopher (most library catalogs currently fall into this area). Indexes are the type of document that allow full-text database searching. The full-text database is designed explicitly to search documents on any word that appears in them. When an index item is selected, the client asks the user for words to search for. These words are then passed back to the server which does the search. The client then sees (hopefully) a menu of documents, each of which contain the words searched for. These may be retrieved like normal documents. To try out gopher without compiling anything, you have to be on the Internet. The following is a brief guide to the curses-based Unix client. You will need to know how to use the 'telnet' program to connect to other computers. Telnet to consultant.micro.umn.edu and giver your username as gopher (no password is required). Enter your terminal type (most will be vt100). You will be connected to a client program, and given a menu. The text at the top of the screen (probably something like "Internet Gopher Information Client v1.1") is the name of the gopher client you are currently using. The next line (something like "Root gopher server: gopher.tc.umn.edu") tells you which server you are currently connected to. You don't need to know this; it is present only for the curious. Beneath the name of the server is the real menu. You can move up and down the menu with the cursor keys (if your terminal supports them) or by control-n and control-p. The --> shows which item on the menu will be selected when you press Return. Typing a number and pressing return moves the --> cursor to the item of that number. The question mark (?) key gives help. Most terminals only let gopher display up to 18 menu items at a time, but gopher allows menus larger than this. To move forward and back in pages of menus (the client prints something like "Page 1/2" in the bottom right hand corner of large menus), use the less-than ("<") and greater-than (">") keys. This gopher client shows what type the item is. Items which are links to menus have / after their name (for instance "Fun & Games/"). Items which are indexes have <?> or <idx> or <cso> after their name. Items which are outside connections have <tel> after their name. Items which are documents have nothing after their name. When a link has been selected, pressing "u" goes back one level. Try it and see. Press "Q" when you are finished experimenting. If you want to compile the gopher client software on your local machine, the source is available from boombox.micro.umn.edu in the directory /pub/gopher - see the article on using anonymous FTP for help. Full source for all clients and servers are available, and the programs may be moved to more operating systems. The source code is freely distributable, for anyone who wants to improve, adapt or port the code. The Usenet group comp.infosystems.gopher exists to discuss gopher, and people there will probably be able to answer questions about using or installing gopher.