Sonar is a survey administration engine built on the Java CAI Framework.
to create a survey interface that is both easy to use, and easy to develop.
Sonar's goal is to simplify the life of survey authors and programmers, giving
them the powerful tools they need to produce large and complex surveys without
all the hassle, while making those surveys portable from CAPI to Web to CATI.
How Sonar is related to JCaiF
The Java CAI Framework (JCaiF) only describes the structure and content of a survey,
it does not provide any mechanisms for displaying the survey, or collecting responses.
To accomplish this, the JCaiF survey must be loaded into an application that will host
the survey. We call such an application a JCaiF Container. Containers are not limited
to display and collection, they can be used for reporting, statistical calculation, or
any other puprose that needs to make use of the data defined in a JCaiF survey.
Sonar is an implementation of several JCaiF Containers for data collection.
Sonar contains an implementation of the
which is responsible for initializing and controlling the skip logic (flow) of a survey.
Sonar's engine contains additional features that are not required by JCaiF, but make
developing surveys much easier, while still allowing all the same flexibility and control.
- XML Authoring
Sonar lets you author surveys in simple XML-based markup instead of Java code. This
makes your survey files easier to write, easier to read, and much easier to maintain.
Sonar then translates the XML file into the correct JCaiF components to be displayed
for the survey. Sonar's XML processing also provides survey authors with shortcuts to
reuse pre-defined questions and response lists, instead of typing them out all over again.
- Enhanced Scripability
JCaiF gives survey authors the ability to run their own Java code to determine if a
component should be displayed,
onLoad, or if the respondent should be allowed
to move on to the next question,
onContinue. Sonar extends this model by
allowing survey authors to include this code in their XML file, and even gives you a choice
of which programming language to use. While Java is the default, you can also use
Visual Basic or Perl.
- Variable Piping
While it is possible to change the text of a survey component using JCaiF alone,
it requires you to replace the entire text. Sonar allows you to include special
functions and variables directly in the text of your component, which will be
interpreted whenever that text needs to be displayed. You are not limited to simply
replacing variables with their text either, Sonar lets you call methods on JCaiF objects,
loop through a list of variables, perform arithmetic and much more.
- Dynamic Styling
JCaiF was designed to be as generic as possible, and to only include information related
to the structure and definition of a survey. As such, the way a survey should look
was intentionally left out of the JCaiF specification. Sonar gives you the ability to
control the look of your survey in two ways. First you can include standard HTML
markup in the text of your components to control the formatting of the text. Second,
Sonar allows you to apply visual attributes to your components through the use of
Cascading Style Sheets, or CSS. By separating the data from the display information,
Sonar makes it trivial to customize the look of your survey for whichever method it is
being used in. This means that your one survey file can look completely different when
being display on a PC, over the internet, or even on a commandline terminal like Telnet or SSH.
Sonar implements three different JCaiF Containers for data collection, targetting
different requirements and environments.
- Sonar App
Sonar App is a desktop UI for data collection. It uses the Java Swing toolkit
to present a visually attractive, easy to use interface to your JCaiF survey.
Sonar App can be deployed as a stand-alone desktop application, launched from
a hyperlink using Sun's WebStart technology, or embedded into a webpage as a
- Sonar Web
Sonar Web is a web-enabled JCaiF Container used to display a survey in any
and can be deployed on any J2EE server. Question templates are defined as Java
Server Pages and custom JSP Tags, making them easy to modify to your needs.
- Sonar Term
Sonar Term is a character-mode (aka Dos-based or Terminal) survey interface. It can
be run on a centralized server, using thin clients to connect over a Telnet or SSH
connection. Sonar Term is ideal for Data Entry or CATI, where speed and low resource
requirements are more important than visual display.
Sonar takes a decidedly different approach to mode-specific interviewing than most other
programs you may be familiar with. Instead of implementing containers specific for
face to face (CAPI) or over the phone (CATI) interviews, Sonar focused on the environment
the survey will be run in, locally on the desktop, remotely over the web, or to a server on
your local network. This means that you can use any one or a combination of these
environments for the same interviewing "mode". Sonar uses the term "mode independent" to
differentiate this approach from traditional "multi-mode" interviewing, where one program
is specialized for each mode, and only that version can be used for that mode.
With Sonar, you are free to run your CAPI study locally in your field office or over an
internet connection to your home office. Your CATI surveys can connect to your network
server using cheap DOS terminals, rich Windows clients, or again over the internet to
an interviewer's own home.