SCOUG OS/2 For You - August 1998
V Trek by Aviar
by Terry Warren
Although the actual name of this product is hard to determine (sometimes it's referenced as "V Trex," sometimes "V Trek"), it turns out to be a very creative approach to providing a quasi-natural language frontend to the OS/2 version of DB2. Along the way, it also demonstrates the power of Object REXX as a programming language and the ease of integrating an application with the Warp 4.0 Voice-type dictation sub-system.
The basic concept of this product is that it is easier to access information in a database if you can do so using everyday language rather than the specialized SQL syntax; especially if you are intending to use voice interaction. For example, if you're interested in displaying the names of employees in the marketing department, the command:
who works in marketing
is somewhat more intuitive than:
select FirstName, LastName from Employee where Department = "M10"
First Things First
Before looking at how they implemented this type of interface, a few words about the installation. Basic requirements are:
- Warp 4.0 with Object REXX enabled
- 6MB of free disk space (must be on an HPFS drive)
- DB/2 Client services (version 2.1 or later)
Additional recommendations are:
- Multimedia enabled system (ie soundcard)
- Voice Type Dictation installed and enabled
- DB/2 SAMPLE database installed
The programs come on a CD and you might wonder why they need a CD when the whole system only takes up 6 mb when installed? The apparent answer is the installation program itself! It makes use of your multimedia capabilities to actually talk to you while the installation is being performed (before, during and after). In addition, an animated graphic is displayed during the installation process.
The installation took less than five minutes on my machine (which is a pentium 120 with 96 mb memory and plenty of disk space). Since the program is written in Object REXX, it does not require any modifications to your OS/2 system or config.sys file.
There is a caveat if you happen to have FixPak 6 applied (as I do): the REXX cmd files don't work with this FixPak! You need to go to the Aviar website (address given below) and download their FixPak 6 patch file.
There should now be a V Trek folder on your desktop; inside, among others, are the two main components: Dictionary Manager and the V Trek Control Center. The Dictionary Manager is used to define terms and connect them to database fields, expressions and conditions. After the terms have been created, they can be referenced in the Control Center's command panel. This process is explained below.
First, a dictionary must be created. This is done by opening the Dictionary Manager and clicking on the New button, then selecting which DB2 database to reference. The specific table in the database can then be chosen which will bring up the "Database Nomenclature" dialog.
(During this process you will be prompted for a database logon user and id if you are not currently logged on.) Initially, this dialog is used to associate table field names with your own terms for those fields. For example, "Date of birth" can be defined for the field BIRTHDATE, or "Department" for WORKDEPT. After completing these assocations, the dialog can be exited and you will go back to the table view of the dictionary.
At this level, you can use the Add and Edit buttons to add new terms to the dictionary and specify the field (or fields) they use, conditions they must satisfy and some advanced options. For example, if you add the term "Who" and then specify the Fields: "FIRSTNME, MIDINIT, LASTNAME," when you actually use "Who" you will be asking for those three fields. Or you can add "makes" and specify the field SALARY, etc.
After the terms have been defined, you can bring up the control center (by closing the Dictionary Manager and then opening the V Trek icon) and try out the command interface. (Note that you can always invoke the Dictionary Manager directly from the control center also.) If you enter, in the Command window, the command string:
Who makes more than $20000
and push the Engage button (yes, I agree, this whole Star Trek motif is a bit weird), you should get the first set of matches from the database table.
There are various options at this point (More - gets more results, Print prints, etc.) and you can even look at the generated SQL.
From this point, you can try more complicated types of commands. There is provision for (multiple sort) fields, complex conditions, and a grouping capability that provides control break processing with group counts and sub-totals. It is also possible to access multiple tables with one command string.
For advanced users, there is also the ability to invoke any (Object) REXX program (or a specific class method) from a dictionary term. A good example of using this feature is a builtin drag-and-drop functionality for launching any OS/2 Workplace Shell object. To do this, you create a special dictionary (in which you specify it is not a database dictionary). Then Add a term, e.g., "my song". Lastly, open a folder containing the audio file (midi, wave, ...) icon for your song and drag/drop this icon on the field named "Special" in the Dictionary Manager window. This, in effect, creates an Object REXX command to invoke the default open behavior of the object, and so if now you go to the Control Center and enter the command:
play my song
the audio file will be launched.
But How Do I Talk to V Trek
All of the above examples were done by typing in the command strings. However, if you have Voice Type Dictation enabled, you can do these same actions through voice. With the Control Center open, just say "Computer" and you will get a dictation window. You then just say the commands you want to execute. For example, you might say:
Show me who makes more than 20000 dollars.
Then play my song.
Terminate dication by saying;
to transmit the dictated commands to the Command window and then the magic word:
to perform the commands. This capability is impressive but it would have been more so if it could actually execute the commands as you speak them rather than needing to rely on the intermediate dictation window.
How Does It Work
So, what's the story under the covers? Is it really a natural language interpreter, a massive lookup program or does it actually install a little person inside your computer who looks at the commands and converts them into SQL? Of course, the answer is none of the above. The logic is much simpler and therefore more creative.
Basically the program simply matches the command words to its dictionaries of pre-defined terms and uses the (non-human) trait of ignoring words that it doesn't know. In this sense, pre-defined terms include those that the user creates, the names already in the databases, and a set of common sense terms (such as "more than" or "less than"). So, when we tell it to
show me who makes more than 20000 dollars
the mapping would be:
who ===> FIRSTNME, MIDINIT, LASTNAME
makes ===> SALARY
more than ===> >
20000 ===> 20000
and this gets converted into the SQL:
Display FIRSTNME, MIDINIT, LASTNAME where SALARY > 20000
In some cases, the association of fields and conditions is ambiguous in which case the program will prompt you with a dialog in which you must clarify these assocations; in general, this simplistic parsing engine appears to be quite reliable as long as the terms used are ones that it can interpret.
The online documentation is pretty comprehensive and includes a detailed "tutorial" covering most of the program's features and capabilities.
Should you ever want to uninstall it, all that's needed is to delete the folder the program files are in and the desktop folder icon; since it does not modify your config.sys file no editing is necessary.
Support is an unknown although a phone number is included in the installation sheet and Aviar has a website which contains some maintenance and update information (such as the FixPak 6 patch file).
This is always the hard part of a product review. On the pro side, the program is technically sound and innovative; it is nice to see Object REXX put to good use. Its performance (for the sample databases I used) was good.
On the con side, it would appear to have limited usage. Although it supports most of the SQL features, there is not much in the way of report formatting and generation (although you can save query results to disk files and then route them through a more elaborate report generation program). Also, for a real production database environment, the effort of setting up the dictionary terms for a large number of fields and tables adds up as well as just being able to remember the custom terms you (or someone else has defined).
So, if you are a DB2 user who develops your own (mostly ad hoc) queries, this product provides a reasonable alternative to the intricacies of SQL while retaining most of its capabilities. If you like the Voice interface, this alternative probably makes more sense than if you just type in commands. And, in all cases, this product can make accessing DB2 data more "fun."
V Trek version 1.0 by Aviar, Inc.
219 Fingal Street, Pittsburgh, PA 15211
Phone (412) 488-9730; FAX (412) 488-0190
Suggested retail price is $119 for a single-user license; currently $99 through Indelible Blue.
The Southern California OS/2 User Group
P.O. Box 26904
Santa Ana, CA 92799-6904, USA
Copyright 1998 the Southern California OS/2 User Group. ALL RIGHTS
SCOUG is a trademark of the Southern California OS/2 User Group.
OS/2, Workplace Shell, and IBM are registered trademarks of International
Business Machines Corporation.
All other trademarks remain the property of their respective owners.