diff lisp/hyperbole/README @ 0:376386a54a3c r19-14

Import from CVS: tag r19-14
author cvs
date Mon, 13 Aug 2007 08:45:50 +0200
parents
children ac2d302a0011
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lisp/hyperbole/README	Mon Aug 13 08:45:50 2007 +0200
@@ -0,0 +1,751 @@
+#
+# FILE:		README
+# SUMMARY:      Intro information on Hyperbole.  
+#
+# AUTHOR:       Bob Weiner
+#
+# ORIG-DATE:    19-Oct-91 at 03:27:47
+# LAST-MOD:      3-Nov-95 at 23:20:31 by Bob Weiner
+
+The author's work on this project has been sponsored by Motorola Inc.
+
+We hope you enjoy using and developing with Hyperbole.  Suggestions and bug
+reports are welcome, as described later in this document.  Feel free to
+mail or post news containing this file wherever it may be of use.
+
+
+===========================================================================
+*			Table of Contents
+===========================================================================
+			* Hyperbole Overview
+			* What's New
+			* How to Obtain
+			* Installation / Configuration
+			* Quick Reference
+			* Mail Lists
+			* User Quotes
+		        * Why was Hyperbole developed?
+		        * Copyright
+
+
+===========================================================================
+*			   Hyperbole Overview
+===========================================================================
+
+Hyperbole is an open, efficient, programmable information management and
+hypertext system.  It is intended for everyday work on any UNIX platform
+supported by GNU Emacs.  It works well with the versions of Emacs that
+support multiple X or NEXTSTEP windows: GNU Emacs V19, XEmacs (formerly
+called Lucid Emacs) and Epoch.  Hyperbole allows hypertext buttons to be
+embedded within unstructured and structured files, mail messages and
+news articles.  It offers intuitive mouse-based control of information
+display within multiple windows.  It also provides point-and-click
+access to Info manuals, ftp archives, Wide-Area Information Servers
+(WAIS), and the World-Wide Web (WWW) hypertext system through
+encapsulations of software that support these protocols.
+
+Hyperbole consists of four parts:
+
+   1.  Info Management: an interactive information management interface,
+       including a powerful rolodex, which anyone can use.  It is easy
+       to pick up and use since it introduces only a few new mechanisms
+       and provides user-level facilities through a menu interface,
+       which you control from the keyboard or the mouse;
+
+   2.  Hypertext Outliner: an outliner with multi-level autonumbering
+       and permanent ids attached to each outline node for use as
+       hypertext link anchors, plus flexible view specifications that
+       can be embedded within links or used interactively;
+
+   3.  Button Types: A set of hyper-button types that provides
+       core hypertext and other behaviors.  Users can make simple
+       changes to button types and those familiar with Emacs Lisp can
+       quickly prototype and deliver new types;
+
+   4.  Programming Library: a set of programming library classes for
+       system developers who want to integrate Hyperbole with another
+       user interface or as a back-end to a distinct system.  (All of
+       Hyperbole is written in Emacs Lisp for ease of modification.
+       Although Hyperbole was initially designed as a prototype, it has
+       been engineered for real-world usage and is well structured.)
+
+A Hyperbole user works with buttons; he may create, modify,
+move or delete buttons.  Each button performs a specific action, such as
+linking to a file or executing a shell command.
+
+There are three categories of Hyperbole buttons:
+
+   1.  Explicit Buttons
+          created by Hyperbole, accessible from within a single document; 
+
+   2.  Global Buttons
+          created by Hyperbole, accessible anywhere within a user's
+          network of documents;
+
+   3.  Implicit Buttons
+          buttons created and managed by other programs or embedded
+          within the structure of a document, accessible from within a
+          single document.  Hyperbole recognizes implicit buttons by
+          contextual patterns given in their type specifications.
+
+Hyperbole buttons may be clicked upon with a mouse to activate them or
+to describe their actions.  Thus, a user can always check how a button
+will act before activating it.  Buttons may also be activated from a
+keyboard.  (In fact, virtually all Hyperbole operations, including menu
+usage, may be performed from any standard character terminal interface, so
+one need not be anchored to a workstation all day).
+
+Hyperbole does not enforce any particular hypertext or information management
+model, but instead allows you to organize your information in large or small
+chunks as you see fit.  The Hyperbole outliner organizes information
+hierarchies which may also contain links to external information sources.
+
+Some of Hyperbole's most important features include:
+
+    Buttons may link to information or may execute procedures, such as
+    starting or communicating with external programs;
+
+    One simply drags between a button source location and a link destination
+    to create or to modify a link button.  The same result can be achieved
+    from the keyboard.
+
+    Buttons may be embedded within electronic mail messages;
+
+    Outlines allow rapid browsing, editing and movement of chunks of
+    information organized into trees (hierarchies);
+
+    Other hypertext and information retrieval systems may be
+    encapsulated under a Hyperbole user interface (a number of samples
+    are provided).
+
+Typical Hyperbole applications include:
+
+    Personal Information Management
+       Overlapping link paths provide a variety of views into an
+       information space.
+
+       A search facility locates buttons in context and permits quick
+       selection.
+
+    Documentation Browsing
+       Embed cross-references in your favorite documentation format.
+
+       Add a point-and-click interface to existing documentation.
+
+       Link code and design documents.  Jump to the definition of an
+       identifier from its use within code or its reference within
+       documentation.
+
+    Brainstorming
+       Capture ideas and then quickly reorganize them with the Hyperbole
+       outliner.  Link to related ideas, eliminating the need to copy
+       and paste information into a single place.
+
+    Help/Training Systems
+       Create tutorials with embedded buttons that show students how
+       things work while explaining the concepts, e.g. an introduction
+       to UNIX commands.  This technique can be much more effective than
+       descriptions alone.
+
+    Archive Managers
+       Supplement programs that manage archives from incoming
+       information streams by having them add topic-based buttons that
+       link to the archive holdings.  Users can then search and create
+       their own links to archive entries.
+
+
+===========================================================================
+*		       What's New in V4.00 and V4.01?
+===========================================================================
+
+  (See "ChangeLog" for more complete details of changes.)
+
+  ACTION AND ASSIST KEYS
+
+    - New variable, action-key-url-function, sets the function used to
+      display URLs which are activated as implicit buttons with the Action
+      Key.
+
+    - Action or Assist Key presses at the end of a line now scroll
+      proportionally, by default.  See the documentation for the variable,
+      smart-scroll-proportional, and the Smart Scrolling section of the
+      Hyperbole DEMO file, for more information.
+
+    - Fixed bug that prevented browsing Info files in dired with the Action
+      Key.
+
+  BUTTON TYPES
+
+    - "hsys-w3.el" is now automatically loaded so that the Action Key can
+      follow URLs by default.  It defines the implicit button type, www-url. 
+
+    - New implicit button type, text-toc, makes table of contents entries in
+      README files jump to the associated section of the file.  Try it with
+      this file once you have loaded the current version of Hyperbole.
+
+  DOCUMENTATION
+
+    - A lot of work has gone into reorganizing and rewriting the Hyperbole
+      manual to improve its readability and completeness.  A full chapter on
+      the Koutliner has been added.  Please take some time to read the parts
+      of interest to you and send your feedback on what is good and what is
+      not to the mail list, <hyperbole@hub.ucsb.edu>.
+
+  EMACS VERSIONS
+
+    - MS-DOS and Windows NT Emacs 19 or Win-Emacs: Made Hyperbole work under
+      all of these PC Emacs versions.
+
+    - Emacs 19: Fixed bug that prevented Action Key selection of minibuffer
+      menu items.
+
+    - Emacs 19: Hyperbole menubar menus are now properly displayed.
+
+    - Emacs 19: Action Key press on a filename that has a .info suffix
+      displays the Top node for that info file in the Info browser.
+
+  KOUTLINER
+
+    - You can now view and edit koutlines with blank lines between cells
+      turned off.  {C-c b} now toggles between showing or hiding blank lines.
+
+    - Minibuffer menu item Otl/Below renamed to Otl/Downto so could add
+      Otl/Blanks which toggles blank lines on and off.
+
+    - {C-c C-o} which displays one line per cell, for an overview, now also
+      turns off blank lines.
+
+    - {C-c C-i} adds an attribute to the current cell.  It changes the
+      attribute's value if it already exists.  Completion on existing
+      attribute names from the cell is provided.
+
+    - {C-c h}, which displays cell attributes, when given "0" as the cell id
+      now displays the zero cell's attributes in addition to any other
+      attributes shown.
+
+    - By default, the outliner separates labels from cell contents by two
+      spaces.  If you want to change the separator for the current outline,
+      use {C-c M-l}.  {C-u C-c M-l} will additionally change the default
+      separator value used when new outlines are created.
+
+    - If you invoke {M-x kotl-mode RET} on a non-read-only, non-koutline
+      buffer, it converts each paragraph in the buffer into a level 1 cell,
+      and thereby creates a koutline buffer.  The conversion uses the
+      buffer-specific variable, `paragraph-start' to determine the paragraphs
+      in the buffer.
+
+    - If you save a koutline to a file whose name does not end in .kotl,
+      e.g. with {C-x C-w} (kfile:write), it will still be treated as a valid
+      koutline when you read it in again.  You can create a koutline file
+      without the standard suffix via {M-x kfile:find RET} or by converting a
+      buffer to a koutline via {M-x kotl-mode RET}.
+
+    - Each koutline now maintains a current view setting that is saved with
+      the outline and restored when it is first displayed.  View settings
+      include:  show/hide blank lines, show a fixed number of lines per cell,
+      show a fixed number of levels in the outline, show all lines and cells,
+      show/hide ellipses after truncated outline entries, set cell numbering
+      (label) types.
+
+    - View settings are controlled by single character codes called view
+      specs.  The current view spec setting for a koutline appears in the
+      modeline following the name of the outline.  The current view spec
+      setting may be changed interactively with {C-c C-v}.
+      See <${hyperb:dir}/kotl/EXAMPLE.kotl, 2b16=048> for details on valid
+      view specs.
+
+    - Minibuffer menu item Otl/View changed to Otl/Vspec to set a view
+      specification.  Use {C-x C-r} to view a Koutline in read-only mode.
+
+    - Added View menu to Koutliner popup and pulldown menus.  Moved
+      view-related tree operations from Tree menu to View menu.
+
+    - Fixed importation of star outline and Augment-style files.
+    
+    - The elements of a another buffer or file may be inserted into a
+      koutline as a set of cells by using the {C-x i} command. When prompted,
+      you may use a buffer name or file name from which to insert.
+
+      The cells will be inserted as the successors of the current cell unless
+      {C-u C-x i} is used and then they are inserted as the initial children
+      of the current cell.
+
+      See the documentation for the variables, kimport:mode-alist and
+      kimport:suffix-alist, for information on mode and suffix-specific
+      conversions performed on files before they are inserted.
+
+      Use {M-x kotl-mode:insert-file-contents RET} to insert the entire
+      contents of a file into the current cell at the location of point.
+
+    - {M-x kimport:file RET} will prompt for a file and a new koutline file
+      to create and will insert the elements of the file in the new outline.
+      (You can also use buffer or buffer names as arguments instead of file
+      names.)  See the documentation for the variables, kimport:mode-alist
+      and kimport:suffix-alist, for information on how the importation type
+      is determined.
+
+    - {C-c +} appends the contents of one cell to the end of another.  Added
+      this as Append-Cell to popup and pulldown menus.
+    
+    - {M-w}, copy-region, now works properly in read-only outlines.
+
+  ROLODEX
+
+    - {e} within a rolodex match buffer edits the associated entry within your
+      rolodex source file.  Fixed bug that caused {e} to fail when entries
+      are collapsed within the match buffer.
+
+    - {C-h h r e}, rolo-edit, just displays your personal rolodex file if you
+      hit {RET} without specifying an entry name to edit.
+
+    - {m} within a rolodex match buffer composes mail to the the e-mail
+      address at point or the first address following point.  Also added as
+      Rolo/Mail minibuffer menu item and Rolodex/Mail-to-Address for window
+      system menus.
+
+    - New variable, wrolo-yank-reformat-function permits reformatting of an
+      entry yanked into the current buffer with {C-h h r y}, rolo-yank.
+
+  WINDOW CONFIGURATIONS 
+
+    - The minibuffer menu items, Win/PopRing and Win/YankRing now redisplay
+      the Win menu after performing their actions.  This allows you to yank
+      or pop window configurations repeatedly until you get to the one you
+      want.
+
+===========================================================================
+*			     How to Obtain
+===========================================================================
+
+Hyperbole is actually part of an integrated tool framework that we have
+developed called InfoDock.  InfoDock provides a modern user interface on top
+of Emacs, information management, and powerful software development tools,
+all in one package.  Get it via anonymous ftp from host ftp.xemacs.org in
+the /pub/infodock directory.
+
+Hyperbole is also available as a standalone package via anonymous ftp across
+the Internet.  Do not send requests to have it mailed to you since it won't
+be.  Instead have another party who has Internet access obtain it for the
+both of you.
+
+Here is how to obtain Hyperbole as a standalone package on the Internet:
+
+Move to a directory below which you want the 'hyperbole' directory to
+be created.  Unpacking the Hyperbole archive will create this
+directory and place all of the files below it.
+
+   cd <LOCAL-LISP-DIR>
+
+Ftp to ftp.xemacs.org  (Internet Host ID = 128.174.252.16):
+
+   prompt> ftp ftp.xemacs.org
+
+Login as 'anonymous' with your own <user-id>@<site-name> as a password.
+   
+   Name (ftp.xemacs.org): anonymous
+   331 Guest login ok, send EMAIL address (e.g. user@host.domain) as password.
+   Password:
+   230 Guest login ok, access restrictions apply.
+
+Move to the Hyperbole directory:
+
+   ftp> cd pub/infodock
+
+Set your transfer mode to binary:
+
+   ftp> bin
+   200 Type set to I.
+
+Turn off prompting:
+
+   ftp> prompt
+   Interactive mode off.
+
+Retrieve just the Hyperbole archive and any diff-based patches (there may not
+be any patches):
+
+   ftp> mget hyperbole*
+
+Close the ftp connection:
+
+   ftp> quit
+   221 Goodbye.
+
+Unpack the tar archive using the GNU version of the 'zcat' program:
+
+   zcat h*tar.gz | tar xvf -
+or
+   gunzip h*tar.gz; tar xvf h*tar
+
+Apply any patches you retrieved, also:
+
+   cd hyperbole; patch < <patch-file>
+
+
+===========================================================================
+*		      Installation / Configuration
+===========================================================================
+
+The following explains how to Use the Hyperbole "Makefile" to compile any
+needed code, to generate the "hsite.el" file used for site-specific Hyperbole
+customization, and to produce printable documentation.
+
+Edit the line near the top of "Makefile" that represents the emacs version
+that you use, so that it corresponds to the emacs executable name used on
+your system.  Then immediatly below there, set the EMACS variable to the
+variable name for the emacs that you will use to compile the Hyperbole Lisp
+files.
+
+You may also have to set the SITE-PRELOADS variable defined further down
+in the file; follow the instructions that precede the `SITE-PRELOADS ='
+line.  Make these changes now and save the Makefile.
+
+To install Hyperbole for use with InfoDock, XEmacs, GNU Emacs or Epoch, from
+a shell: 
+
+   cd <HYPERBOLE-DIR>; make
+
+All of the .elc compiled Lisp files are already built for XEmacs and V19, so
+this build will finish very quickly.  If you really want to rebuild all of
+the .elc files, use:
+
+   cd <HYPERBOLE-DIR>; make all-elc
+
+To produce the Postscript version of the Hyperbole manual:
+
+   cd <HYPERBOLE-DIR>; make ps
+
+To install Hyperbole for use with GNU Emacs V18 or Epoch:
+
+   cd <HYPERBOLE-DIR>; make all-elc-v18
+
+This will produce a complete set of Emacs V18 .elc files.
+
+----
+
+The Hyperbole Manual is included in two forms:
+
+    "man/hyperbole.info"   - online version
+    "man/hyperbole.texi"   - source form
+
+To add pointers to the Info version of the Hyperbole manual within your Info
+directory, follow these instructions.  If `Info-directory-list' is bound as a
+variable within your Emacs, you can simply set it so that <HYPERBOLE-DIR> is
+an element in the list.  Otherwise, from a shell, cd to the directory given
+by your 'Info-directory' variable and execute the following command:
+
+      (rm hyperbole.info*; cp <HYPERBOLE-DIR>/man/hyperbole.info* .)
+
+Then add an Info menu entry for the Hyperbole manual in your Info "dir" file:
+(the `*' should be placed in the first column of the file):
+
+    * Hyperbole::  GNU Emacs-based everyday information management system.
+	Use {C-h h d d} for a demonstration.  Includes context-sensitive
+        mouse and keyboard support, a powerful rolodex, an autonumbered
+        outliner with hyperlink anchors for each outline cell, and extensible
+        hypertext facilities including hyper-links in mail and news messages.
+
+----
+
+To set up so that all Emacs users have Hyperbole loaded for them, add the
+following lines to a site initialization file such as "site-start.el".
+Otherwise, each user will have to add these lines to his own "~/.emacs"
+initialization file.  The following instructions use the term
+<HYPERBOLE-DIR>/ to refer to your hyperbole/ directory, so substitute your
+own value.
+
+To autoload Hyperbole so that it loads only when needed:
+
+   (defvar hyperb:dir "<HYPERBOLE-DIR>/")
+  "Directory where the Hyperbole executable code is kept.
+It must end with a directory separator character.")
+
+   (load (expand-file-name "hversion" hyperb:dir))
+   (load (expand-file-name "hyperbole" hyperb:dir))
+
+To fully load Hyperbole upon startup, add the additional line:
+
+   (require 'hsite)
+
+That's all there is to the installation.
+
+----
+
+Once Hyperbole has been installed for use at your site, you can invoke it
+with {C-h h} or {M-x hyperbole RET} to bring up the Hyperbole main menu in
+the minibuffer window.
+
+
+===========================================================================
+*			    Quick Reference
+===========================================================================
+
+"MANIFEST" summarizes most of the files in the distribution.
+
+See "DEMO" for a demonstration of standard Hyperbole button
+capabilities.
+
+Naming conventions:
+
+  - All Hyperbole-specific code files begin with an 'h', aside from the
+    Koutliner files which are in the kotl/ subdirectory and begin with a 'k'.
+
+  - Hyperbole user-interface files begin with 'hui-' or 'hmous'.
+
+  - Files that define implicit button types begin with 'hib'.
+
+  - Encapsulations of foreign systems begin with 'hsys-'.
+
+Most of the standard Emacs user interface for Hyperbole is located in
+"hui.el".  Most of the Hyperbole application programming interface can be
+found in "hbut.el".  "hbdata.el" encapsulates the button attribute storage
+handling presently implemented by Hyperbole.  "hmail.el" provides a basic
+abstract interface for folding mail readers other than Rmail into Hyperbole.
+
+See the "(hyperbole.info)Questions and Answers" appendix in the
+Hyperbole manual for information on how to alter the default
+context-sensitive Hyperbole key bindings.
+
+
+===========================================================================
+*			       Mail Lists
+===========================================================================
+
+There are several Hyperbole-related mail addresses.  Learn what each is
+for before you mail to any of them.
+
+<hyperbole-request@hub.ucsb.edu>
+<hyperbole-announce-request@hub.ucsb.edu>
+
+   ALL mail concerning administration of the Hyperbole mailing lists should
+   be sent to the appropriate one of these addresses.  That includes
+   addition, change, or deletion requests.  Don't consider sending such a
+   request to a Hyperbole mail list or people will wonder why you don't know
+   that all Internet mail lists have a -request address for administrative
+   requests.
+
+   Use the following formats on your subject line to execute requests,
+   where you substitute your own values for the <> delimited items.
+ 
+     Subject: Subscribe '<' <user@domain> '>' (<your name>).
+     Subject: Unsubscribe '<' <user@domain> '>'.
+
+   To change your address, you must unsubscribe your old address in one
+   message and then subscribe your new address in another message.
+
+   For example:
+
+     To: hyperbole-announce-request@hub.ucsb.edu
+     Subject: Unsubscribe <joe@any.com>.
+
+     To: hyperbole-announce-request@hub.ucsb.edu
+     Subject: Subscribe <joe@any.com> (Joe Williams).
+
+There are two Hyperbole-related mail lists.  Subscribe to one or the other,
+not to both.
+
+<hyperbole@hub.ucsb.edu>
+
+   Mail list for discussion of all Hyperbole issues.  Bug reports and
+   suggestions may also be sent here.
+
+   Always use your Subject and/or Summary: lines to state the position
+   that your message takes on the topic that it addresses, e.g. send
+   "Subject: Basic bug in top-level minibuffer menu." rather than
+   "Subject: Hyperbole bug".  Statements end with periods, questions
+   with question marks (typically), and high energy, high impact
+   declarations with exclamation points.  This simple rule makes all
+   e-mail communication much easier for recipients to handle
+   appropriately.
+
+   If you ask a question, your subject line should end with a '?',
+   e.g. "Subject: How can man page SEE ALSOs be made implicit buttons?"  A
+   "Subject: Re: How can ..." then indicates an answer to the question.
+   Question messages should normally include your Hyperbole and Emacs version
+   numbers and clearly explain your problem and surrounding issues.
+   Otherwise, you will simply waste the time of those who may want to help
+   you.  (Your top-level Hyperbole menu shows its version number and {M-x
+   emacs-version RET} gives the other.)
+
+   If you ask questions, you should consider adding to the discussion by
+   telling people the kinds of work you are doing or contemplating doing
+   with Hyperbole.  In this way, the list will not be overwhelmed by
+   messages that ask for, but provide no information.
+
+<hyperbole-announce@hub.ucsb.edu>
+
+   Those who don't want to participate in the discussion but want to
+   hear about bug fixes and new releases of Hyperbole should subscribe
+   to this list.  Anyone on the `hyperbole' list is automatically on
+   this one too, so there is no need to subscribe to this one in that
+   case.  This list is for official fixes and announcements so don't send
+   your own fixes here.  Send them to `hyperbole' instead.
+
+
+===========================================================================
+*			      User Quotes
+===========================================================================
+
+
+  *** MAN I love Hyperbole!!!  Wow! ***
+
+				    	-- Ken Olstad
+					   Cheyenne Software, Inc.
+
+-------
+
+  I *love* koutlines.
+
+	   				-- Bob Glickstein
+					   Z-Code Software Corporation
+-------
+
+  I am blind and have been using Hyperbole since 1992.  I used to use a PC as
+  a talking terminal attached to a UNIX system, but then I developed
+  Emacspeak which lets me use Emacs and Hyperbole from standard UNIX
+  workstations with an attached voice synthesizer.
+
+  My main uses are:
+    1) Global and implicit buttons for jumping to ftp sites.
+    2) The rolodex with Emacspeak support.
+    3) Explicit buttons as part of comments made about a structured document.
+       Each button jumps to the document section referred to by the comment.
+       This is very, very useful.
+    4) The Hyperbole outliner, which I find a very useful tool.  I've
+       implemented Emacspeak extensions to support it.
+
+					-- TV Raman
+					   Digital Cambridge Research Lab
+
+-------
+
+  I've been a grateful Hyperbole user for a few years now.  Hyperbole's
+  flexibility and ease of use is a marvel.
+
+  Mainly, I write easy little implicit button types (and corresponding action
+  types) to make my life easier.  For example, I have an implicit button type
+  to bury certain buffers when I click at their bottoms, one that recognizes
+  a bug report record in various contexts and edits it, one that links pieces
+  of test output in a log file to the corresponding test case source code
+  (EXTREMELY helpful in interpreting test output), others that support our
+  homegrown test framework, one that handles tree dired mode the way I'd
+  like, one that completely handles wico menus (I've also overloaded the
+  wconfig actions triggered by diagonal mouse drags with wicos actions), and
+  a couple that support interaction with BBDB.
+
+  Other than that, I keep a global button file with 30 or so explicit buttons
+  that do various little things, and I index saved mail messages by putting
+  explicit link-to-mail buttons in an outline file.
+
+				    	-- Ken Olstad
+					   Cheyenne Software, Inc.
+
+-------
+
+  In general, Hyperbole is an embeddable, highly extensible hypertext
+  tool.  As such, I find it very useful. As it stands now, Hyperbole is
+  particularly helpful for organizing ill-structured or loosely coupled
+  information, in part because there are few tools geared for this purpose.
+  Hyperbole also possesses a lot of potentials in supporting a wider
+  spectrum of structuredness, ranging from unstructured to highly
+  structured environments, as well as structural changes over time.
+
+  Major Uses:
+
+  * Menu interface to our own Epoch-based collaborative support environment
+    called CoReView: This interface brings together all top-level user
+    commands into a single partitioned screen, and allows the end user to
+    interact with the system using simple mouse-clicking instead of the
+    meta-x key.
+
+  * Gateway to internet resources: this includes links to major Internet
+    archive sites of various types of information. Links are made at both
+    directory and file levels.
+
+  * Alternative directory organizer: The hierarchical nature of the Unix
+    file system sometimes makes it difficult to find things quickly and
+    easily using directory navigational tools such as dired. Hyperbole
+    enables me to create various "profile" views of my directory tree, with
+    entries in these views referring to files anywhere in the hierarchy.
+
+  * Organizing and viewing online documentation: using Hyperbole along with
+    Hyper-man and Info makes it truly easy to look up online documentation.
+      
+  * Other desktop organization tasks: including links to various mail
+    folders, saved newsgroup conversation threads, online note-taker,
+    emacs-command invocations, etc.
+
+				    	-- Dadong Wan
+
+-------
+
+  Hyperbole is the first hyper-link system I've run across that is
+  actually part of the environment I use regularly, namely Emacs. The
+  complete flexibility of the links is both impressive and expected -- the
+  idea of making the link itself programmable is clever, and given that one
+  assumes the full power of Emacs.  Being able to send email with buttons
+  in it is a very powerful capability.  Using ange-ftp mode, one can make
+  file references "across the world" as easily as normal file references.
+
+				        -- Mark Eichin
+					   Cygnus Support
+-------
+
+   I just wanted to say how much I enjoy using the Hyperbole outliner.
+   It is a great way to quickly construct very readable technical documents
+   that I can pass around to others.   Thanks for the great work.  
+
+				        -- Jeff Fried
+					   Informix
+
+-------
+
+   The Hyperbole system provides a nice interface to exploring corners of
+   Unix that I didn't know existed before.
+
+					-- Craig Smith
+
+-------
+
+
+===========================================================================
+*		      Why was Hyperbole developed?
+===========================================================================
+
+Hyperbole has been designed to aid in research aimed at Personalized
+Information production/retrieval Environments (PIEs).  Hyperbole is a
+PIE Manager that provides services to PIE Tools.  PIEmail, a mail reader is
+the only PIE Tool developed to date.
+
+An examination of many hypertext environments as background research did
+not turn up any that seemed suitable for the research envisioned, mainly
+due to the lack of rich, portable programmer and user environments.  We also
+tired of trying to manage our own distributed information pools with standard
+UNIX tools.  And so Hyperbole was conceived and raved about until it
+got its name.
+
+
+===========================================================================
+*			       Copyright
+===========================================================================
+
+The following copyright applies to the Hyperbole system as a whole.
+
+Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 1995  Free Software Foundation, Inc.
+
+Available for use and distribution under the terms of the GNU Public License,
+version 2 or higher.
+
+Hyperbole is free software; you can use it, redistribute it and/or modify it
+without fee under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option) any later
+version.
+
+Hyperbole is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Emacs or XEmacs; see the file COPYING.  If not, write to
+the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+