Friday, December 8, 2006

Building a BlueBottle database app: Part 1

Introduction

The purpose of this blog is to document my ongoing experience in building and deploying a database application using the Oberon BlueBottle operating system. By doing this I hope to (besides producing a useful app) learn more about BlueBottle programming as well as provide a usefull guide to others.

The Application


The target application is a computer aided interview system aka "CAI". (In other words, a survey program.) In the past I have built survey's in MS Access. Access has several limitations for building surveys. Among these are:
  • The entire user interface must be built by hand in Access. No way to leverage work already done by researchers designing questionaire in Word or other text editing tools.
  • Requirement of licensed copy of Access on every interviewers machine
  • Simple changes in survey can cause lots of work in Access.
  • Implementing "skip logic" is tedious, though duable in Access.
I looked at some other programs for surveys. One program I liked quite a bit from my experience with it in the 1990s was EpiInfo. EpiInfo allowed questionaires to be automatically generated from simple text files. Also adding skip logic and validation logic to EpiInfo forms is trivial. One deficit of EpiInfo was that it didn't provide for "checkbox" form. EpiInfo has changed quite a bit over the years. The latest version, EpiInfo 2000, uses MS Access and now has many of the disadvantages I see in Access. There is a version called EpiData which is a rewrite of the original EpiInfo program but updated for Windows. I like EpiData quite a bit. However, like the original EpiInfo, it doesn't handle checkboxes. I've also looked at several XML based CAI programs available from SourceForge. They were interesting, but not quite what I wanted. These are the features I'm building into my system.
  1. XML based data entry forms
  2. Data entry forms automatically generated from questionnaires written in plain text as long as survey writer follows certain conventions
  3. Skip logic should be extracted from plain text questionnaire and embedded into XML
  4. Ability to encrypt and electronically transmit results to central data center
Useful BlueBottle Facilities For Project

For those not familiar with Oberon BlueBottle here are a few facilities that I think will be usefully for the project.
  1. Strong XML support
  2. XML based user interface system
  3. XML based "prevalence system" database
  4. TCP/IP - HTTP facilities
Facility 3 is not strongly documented in BlueBottle, but I did get some strong hints on the BlueBottle mailing list. Hopefully this blog will help others who wish to do something similair.

No comments: