Implementing Hypermedia


The essence of hypermedia, is the weaving together of strands of information into a whole fabric that one may converse with as a friend

We do not have this ability as yet, though we are moving towards it. At best, we can link our files together into a network, letting the user move across that network with a minimum of keystrokes. Here we present one way of achieving such a network.


Benefits and Features

Files are linked together

  • User never looses files
  • User seldom has to type file names
  • User knows about file contents from the context of the screen.
  • Developer does not have to provide a list of file names
  • Developer may link all documentation together
  • Developer may provide menus and examples integral with text
  • User has easy on-line access to all documentation

    A dedicated key causes the computer to scan to the next command

  • User does not have look for commands
  • User does not have to remember commands
  • User does not even have to know what a command is!
  • User links his data and commands to product
  • User begins to use product as central menu system
  • User can pass on his own command menus and screens
  • User recommends (advertises) product for developer
  • User can develop add-on products
  • Developer need not generate as much documentation
  • Developer benefits from the market pull add-on products create

    You can mix commands and file names with the data

  • User inadvertently develops a menu network for himself
  • User can note to himself which files are important
  • User seldom has to type file names
  • User does not forget files
  • Developer can mix usable examples with documentation

    The escape key will step you back through the files you have used

  • User can't get lost
  • User is encouraged to explore -
    • how important is this link?
    • what else is connected to this?
  • User can invoke manuals and reference material from task
  • User can return from reference material to task
  • User finds it convenient to use reference manual
  • User gains mastery of product much faster
  • Developer has fewer service calls as user can find solutions

    Files are saved automaticaly when ever you leave

    Can only leave via ESCape to previous or ENTER to next Quit command lets your Quit-Enter or Quit-Escape User never forgets to save file User's hard won learning is saved as menus User seldom looses what he learned User need not understand much about files Developer recieves fewer complaints

    Stack file records files

  • Shows you how files are related
  • User can easily re-access files
  • Developer can pre-load stack with menu files, tutorials, etc.
  • In short, although everything is still stored as files, you need not worry about files as labeled bins for data. Your files are collections of data rather than simple bins, organizing themselves into structures of related information. The data you need is never more than a few TAB's and ENTER's away.


    Key Elements

    Special Function Keys

    TAB F3 key scans to next computer command
    ENTER F4 key executes the command - regardless of what it does
    ESCape F5 key steps you back through files
    MAP F2 key lets you access an outline menu of your files

    Standard Icons Users Can Create

    ->filename file icon / object
    A>program program icon
    => place holder
    1:15 time (a place holder for schedules)
    ____ blank fields
    T>555-1212 telephone icon
    [-] ]/[ switches (designed for NASA)
    < word word to sent to host (telecom or pop-up)
    << line line to send to host (telecom or pop-up)

    Other special purpose icons may be devised as needed All icons may be entered via the keyboard and placed anywhere in the data by the user.

    As you use this system you automaticaly organize your files into a network based upon the way YOU use your data.


    The Methodology

    The Essence of Hypermedia

    The essence of hypermedia is simply the ability to access information in a non-linear way - letting the user select what he or she wants to see next, and doing so WITHOUT remembering or typing file names or elaborate commands.

    Use Embedded File Names

    The simplest way of accessing files is to let the user link them together and travel his links. After all, he knows how he wants to use his files. Don't make him fight your product to do so.

    This technique treats file names as typed icons, giving your program an "object oriented" flavor.

    Saving the file relieves your user's fear that through some error, he may lose his data. More important, since the act of creating a new file requires that the user type the file name in an existing file, your program will now save the existing file, saving that link to the new file. This makes sure your user has a quick way of finding his way around his files.

    It all becomes like one of those adventure games, where you move around in the rooms of a huge cave - a cave YOU build of YOUR OWN information! That's why Hypermedia is so exciting!

    Have the Computer Find Embedded File Names

    Since every glance away from the screen is a minor distraction, our technique is to dedicate a key, such as the TAB key or the F3 key, to cause the computer to scan the cursor for the next designated file name in the data. We use a standard mark, "->" to designate a word as a file name.

    Once the computer can find the next command for him, your user doesn't need to read the screen, YOUR USER DOES NOT EVEN NEEDO KNOW WHAT A COMMAND LOOKS LIKE!

    Treat complex commands in a similar manner - let your user embed commands anywhere in the file, (or a pop-up cheat-sheet,) then use them over and over by TABing to a command and ENTERing it. Your user teaches the program by recording his work as menus. We use the drive letter followed by a greater-than to designate a program. Example: A>quicken

    Since your user can help others by simply passing on his files, he recommends your product to anyone he might help. He becomes your product champion - your dedicated salesman. Those files spawn a market for add-on products, each of which suggests more reasons to buy your product! Each advertisement anyone places for an add-on product is a FREE advertisement and a FREE ENDORSEMENT for YOUR product!

    Make Backtracking Easy

    TAB and ENTER give the user the ability to explore, but also permit the user to get lost. You must give your user a way of getting back home safely and conveniently, without having to remember his earlier decisions - a backtrack key.

    Our technique is to push the old file name and cursor position onto a STACK whenever the ENTER key brings up a file. When your user taps the ESCape key, the program retrieves the previous file name from this STACK, and uses it to re-load that file.

    With the fear of getting lost gone, your user feels safer with your product than with other products. Especialy by contrast to the other products he must use! If we all use the same keys and symbols, the familiarity helps sell ALL of our products!

    Map Your User's World For Him

    Once you have a stack of file names, you can give your user a shortcut navigation menu via the F2 key. Our method is to keep the STACK as short memory resident text file. As you insert each file name, copy some of the text after the file name, and indent it by one space for each level of nesting. Retain some number of lines beyond the current stack entry and the stack organizes itself as an outline MAPPING the files your user has looked at.

    You can help your user resume his work by saving this MAP between sessions and restoring the current file from this map as your program comes up.

    This MAP gives him the feeling your program is his personal tool. You can allow multiple users on one machine while making each one want his own legitimate copy, by incorporating the serial number or your user's name in the name of the map file.


    Quick Applications

    Customer Support Decision Trees

    The ability to link files can be used to create elaborate decision tree structures which a customer support person can rapidly traverse via the tab, enter, and escape keys. What's more, the system may be created on the spot, rapidly modified, and copied. The system is simple enough that it may be generated by customer support groups and operated by the customers themselves

    
              Diagnostic light:   ->red.dia  ->yellow.dia  ->green.dia
    

    Similarly, it may be used to provide access to specific portions of any large body of information, be it a catalog, repair manual, or program operations manual, etc.

    Command Menus

    .fi t Since typing a command on the screen causes it to be saved, any number of DOS (or UNIX) level commands may be arranged in a series if interlinked screens. One can lock them up or let the user alter them to suit. IN fact, a salesman can create a series of menus for the customer by the act of demonstrating the machine.

    An example is provided in the sample disk.
    S>cd d:\tdemo
    ->

    Client Dossier files

    Simply listing files for each client provides a menu through which one can enter a series of interlinked files. For example

    Schedule

    A simple schedule lays out the hours of each day, linking any appointments to the appropriate dossier files. ->

    Order Management

    By locking a file so as to limit alterations to specific fields, one may fill in an order form, then have another program process it. The linking feature permits one to attach the form to the clients dossier file(s), pertinent correspondence, etc.

    Other Applications

    The usability of this simple access system is limited only by your imagination. We even used it to make robotic controls simple enough for the rocket scientists at NASA to figure out.

    Of course the five and a half year old boy who wandered in on one of our demos had no trouble at all; but then, they never do.


    Facilities and Code

    Adding these hypermedia features need not take much effort or code. Below are rough scetches of the program structures for the major functions. Details will vary with the kind of data in the file, the language, and the operating system used.

    The best part is that to add another command, one only needs to add some simple icon identification code and the code to execute the command. Many of these can be rigged up as DOS commands in the prototyping stage. In fact, a skeletal system is ideal for demonstrating software prototypes, having none of the complexity of Dan Briclyn's Demo program.

    Basic components:

    Standard Object Icons

              ->file name              file to view
              A>program name           program to execute from disk letter
              => note                  tab stop, use for checklist & notes
              1:15                     tab stop, use for appointment schedule
              ___                      field to fill in
              T>1-408-779-7649         phone number to dial via modem
    
    

    Scanner Key

    Sample Code

    TAB key: DO Scan to next non-blank advance one character if ">" then identify symbol REPEAT while not symbol OR not end of file Issue symbol identification message

    Variations include:

    Symbols which do not stop the cursor printer formatting symbols comments Symbols not using ">" as second character time fields data fields fields to fill in

    Execution Key

    Sample Code

    ENTER key: identify symbol IF executable symbol IF file save required THEN save file execute symbol IF file was saved THEN retrieve file Example: ->file icon IF current file altered THEN save file insert empty line into FILE STACK after current line + copy file name and cursor data to empty line advance current position in FILE STACK to new entry locate file on disk IF file not found THEN create blank file in memory ELSE load file

    Variations include:

    symbols as file names synmbols as program names symbols which do not execute time blank to fill in annotation mark

    ESCAPE

    Sample Code

    ESCAPE key: IF altered, THEN save current file DO IF not first entry in FILE STACK THEN decrement position in FILE STACK copy file name from FILE STACK ELSE BREAK, retaining current file in memory load file REPEAT while file not loaded

    Variations include:

    Quit key: presents other options, quit and execute icon quit and escape quit program

    Program Invocation

    Sample Code

    WHEN PROGRAM INVOKED: load FILE STACK (map) file execute commands at start of FILE STACK file identify last current file load last current file.

    Program Termination

    Sample Code

    WHEN PROGRAM TERMINATED: IF file altered THEN save current file save FILE STACK file

    Subroutines required

    Above key routines plus: generic symbol identification routine specific symbol typing routines generic symbol execution routine specific symbol execution routines load file save file insert file name into stack retrieve file name from stack (non-destructive) roll back one level in stack display message to user display stack to user as a file

    Tables required:

    symbol characteristic routine to validate specific symbol routine to cute specific symbol

    (C) 1995, SGC. Comments to: sgc@mall-net.com

    SOFTWARE GENERAL CORP

    Software Simply General

    Software General Corp.
    P. O. Box 26
    Thomaston, CT. 06787