Introduction
Requirements
Entering Your
Appointments
As everyone's life become more complex and the world moves at a faster pace, many people find it difficult to keep up with their own appointments and activities. When should I do this? How long will I have to spend there? How much free time do I have? These are questions that everyone asks in the course of a normal week. The answers are sometimes difficult to find – buried as they often are amidst a pile of notes, papers, and Post-Its.
Wouldn't it be wonderful if you could keep all this information in one place? And even better if you could view the activities for your week in a graphical representation? HyperWAG will let you do that, quickly and simply.
You create a simple text file that contains your appointments, and activities
and HyperWAG will generate an graphical representation of your week (in
the form of an HTML table that can be viewed in any Web browser such as
Microsoft Internet Explorer
and Netscape Communicator.)
HyperWAG requires that your system meet the following criteria:
HyperWAG can read appointment files in two different formats: WagaLang
and YAWL. These two formats differ in the way that the data is organized
in the appointment file, but not in what data is included. Any appointment
can be described in either WagaLang or YAWL -- the format you choose to
use depends only on your personal preference.
![]() |
Note that you cannot mix YAWL and WagaLang within a single file. An appointment file must either be YAWL or WagaLang, but not both. |
HyperWAG reads your appointments from a normal text file. You enter
your appointments for a single week into this text file using a simple
syntax called "WagaLang." To get started, create a new text file
in your favorite editor. Emacs, XEmacs, vi, ed, pico are examples of good
editors. Ask your system administrator for help if you do not know how
to create a text file.
![]() |
For a file to be correctly recognized as WagaLang, it must have the suffix ".wag." For example, the file appointments.wag would be read as a WagaLang file. |
The "days" section is the first on the line. It contains the days on
which an appointment occurs. For example, you might have lunch with a certain
colleague on Wednesdays and Fridays. If this were the case, you would enter
"WF" for the days section. Each day of the week is assigned a letter. The
letters for the days are:
Some examples of valid day sections are:
In WagaLang, the start time and end time should be separated by a comma, and may be surrounded by any amount of spaces or tabs.
The final section on a line is the description section. This part of
the appointment contains a useful description of what the activity is.
For example, "Lunch with Tammy" might be a good description. Descriptions
can include any number of characters, including spaces. They must, however,
be all on one line.
![]() |
While multi-line descriptions are not allowed in WagaLang, they are allowed in YAWL. If you find yourself often wanting to include a multi-line description you might consider writing your appointments in YAWL. |
Time | Meaning |
9:00 | Nine o'clock AM |
15:42 | Three o'clock PM |
8pm | Eight o'clock PM |
8:34am | Eight forty-three AM |
17:40am | Invalid. The AM is ignored. |
10 | 10 o'clock AM |
Now that we have seen what each part of the appointment line looks like, we can put them together to create a single activity entry. Any number of spaces or tabs can separate each section. Below are some example lines and what they mean.
|
|
|
For example, a typical WagaLang appointment file might be:
MTW 9,12 Chemistry Lab
TF 12,13 Lunch with Professor Smith SN 10,1pm Golf H 5:30pm,6:30pm Dinner with the President |
MTW 9,12 Chemistry Lab
#For chem lab, must have homework done! TF 12,13 Lunch with Professor Smith SN 10,1pm Golf #Need to work on swing for these reasons: # * have a terrible slice # * have a bad hook # * aim for water This is an invalid #comment H 5:30pm,6:30pm Dinner with the President |
If you choose to enter you appointments in YAWL, you must follow the syntax described below. If you are not already familiar with using WagaLang files as described above in the sections Entering Appointments with WagaLang, WagaLang Appointment Examples, and The WagaLang Appointment File, you should quickly skim those sections because many of the same concepts apply to YAWL.
First, just like WagaLang files, YAWL files are simple text files into
which you write your appointments. The information included is the same
as WagaLang files, but the format is different. Just as WagaLang files
had three sections, YAWL files have the same three sections: days
the activity occurs on, the times when the activity
starts and ends, and the activity description.
Each of these sections is described individually below, and we see a complete
YAWL appointment entry in Example YAWL Appointments.
![]() |
Note, unlike WagaLang files, each appointment entry in YAWL files spans several lines. Each section is included on its own line(s). |
The first part of a YAWL appointment is the days section. This section specifies which days the appointment occurs on. Unlike WagaLang, in YAWL the days are written out as full words separated by commas. For example:
The days can be listed in any order and can be written in any combination of upper- and lowercase. In addition, they may be separated by any number of spaces or tabs. For example:
The days cannot be abbreviated in any way. You must enter the full day name. All the days must occur on the same line and nothing but days may occur on this line.
The Start Time and End Time Section
The next section (and therefore the next line) of the YAWL file is the Start Time and End Time sections. These sections describe the starting time of the activity and the ending time. The actual times are given in the format described in Time Format in HyperWAG just as they were for WagaLang. The only difference between YAWL and HyperWAG is that the two times in YAWL are separated by a dash ('-') instead of a comma.
For example:
The final section of a YAWL appointment is the description section. Unlike in WagaLang files, the descriptions in YAWL files can (and often do) span many lines. The end of a description is signified by the line %%END-YAWL%%.
For example:
![]() |
Because the special line %%END-YAWL%% signifies the end
of a description, it cannot be used in a description. For example:
11:30-12:30 Lunch with my boos, Mr. %%END-YAWL%% Smith |
Now that we've seen all the pieces, lets see what full YAWL appointments
look like.
The YAWL appointment file is very similar to the WagaLang
appointment file. It consists of as many YAWL appointments as you wish.
It can also include comment lines that are ignored by HyperWAG. These lines
must start with a pound sign ('#').
HyperWAG will prompt you for the name of the appointment file as well as the name of the HTML file you would like to create. HyperWAG will then generate the HTML table and tell you when it is done. HyperWAG will also display error messages if it cannot understand something in the appointment file.
A typical session with HyperWAG might be as follows: (User input is shown in bold.)
% wag
Please type appointment file name: myappts.wag
Reading myappts.wag… finished.
HyperWAG is done generating output. % |
In addition to the input and output file, you may specify several options:
-q | Run in quiet mode. That is, don't ask to change user options. |
-h | Show the help menu. |
-c | Force changing of the user options (that is, assume 'y' to the first question.) |
-t | Set the table caption. The next argument must be the text you wish to use as the table caption. |
![]() |
To open a file in Netscape, for example, from the File Menu, choose "Open File in Browser" and select the output file. You should see a table similar to the one below. |
Below is a list of the error messages that HyperWAG can generate and their causes and solutions.
no input file specified
This error indicates that you did not supply the name of your appointment
file to HyperWAG. You must either include the input file name on the command
line (see Running HyperWAG) or type it at the prompt.
file does not have required .wag or .yawl extension
An input file must have the suffix ".wag" or ".yawl" to be correctly
read by HyperWAG. HyperWAG uses this suffix to determine which format the
file is in. To solve this problem, rename you file using the "mv" command
to something ending in either ".wag" or ".yawl".
empty or damaged file
This error occurs if their were no activities included in the activitiy
file.
time in wrong format, may be other problem such as wrong order of
elements
The time entered in the appointment file was not understood by HyperWAG.
This error is most commonly the result of a typo. Common typos include:
yawl file doesn't end with %%END-YAWL%%
The last appointment in the file is missing a %%END-YAWL%% line. You
need to add this line to the last appointment.
Unrecognized option
You have included an option on the command line that HyperWAG does
not understand. Type "wag -h" to see a list of valid options and their
functions.
Too many files on command line
The command line syntax is not correct. In particular, you have included
too many arguments that HyperWAG interprets as file names. The most common
cause of this error message is forgetting to put the dash ('-') before
any options that are not file names.
Missing argument for -t: -t table-caption
You have included the -t option on the command line but have not specified
a caption. The -t option allows you to set the table caption from the command
line. The argument following the -t must be the table caption. If there
are no arguments following the -t option, you will receive this error message.
This file, its design and layout are copyright (c) 1997 by SRC Software. (Sheng, Ryan, and Carl) CPS 108 Fall 1997, Group 4. HyperWAG is copyright (c) 1997 by SRC Software.
No animals were harmed in the production of this web page.
This web page is not endorsed or sponsored in any way by Duke University. The opinions and information expressed within it are those of the copyright holder. All opinions within are correct.
Credits
All team members participated in the design and implementation of HyperWAG. In particular, Ryan implemented the Parser, the ParserFactory and the specific parsers for YAWL and WagaLang. Sheng implemented the HTML generation and contributed to many other parts of the design. Carl wrote the Activity and Schedule data structures.
The animated logo at the top of this page was created in Photoshop by Carl Kingsford.