The Java Computer Aided Interviewing Framework (JCaiF) is a collection of Java interfaces that define the
common elements of a questionnaire or survey. These interfaces define what data is
provided by these elements, and methods used to get and set that data. JCaiF also
defines controlling interfaces, notably
SurveyEngine which is responsible
for the initialization and programatic flow control of a survey, and
SurveyWindow which are responsible for the display of the survey and saving
the data collected by the survey.
Included in the JCaiF library are implementations of some of the most common survey
elements such as: Single/Multi-select questions, Open Ended questions, Responselists
and list items. These Java classes are defined in the
package, and can be used by any JCaiF survey.
Structure of a JCaiF survey
A JCaiF survey consists of a top-level
ComponentContainer, with one or more
SurveyComponents, which may be either a
ComponentContainer. The resulting object tree represents a JCaiF
SurveyComponent can be given
an id and text to be displayed. Each provides an
onLoad function and an
onLoad is called before a component is
displayed, and will return true if it should be displayed, or false if it
should be skipped. Likewise,
onContinue is called to determine if the survey
can proceed to the next component.
JCaiF surveys are hosted by specialized applications that implements the
SurveyWindow interfaces. These applications are known as JCaiF Containers.
Containers are responsible for loading and initializing your JCaiF survey, and presenting
the data contained in them to the user. JCaiF Containers can be used for survey display,
data collection, data analysis and reporting. These programs do not need to know anything
about each other, all the information they need is contained in your JCaiF survey. JCaiF
Containers are analogous to Servlet Containers in the J2EE specification.
- Data Collection
JCaiF is not a data collection or survey administration program, rather it is used as
the internal structure for data collection or survey administration programs called
JCaiF Containers. JCaiF forms an interface with those programs to give them access
to the underlying survey structures and data. This makes a JCaiF survey portable to
any application that implements the JCaiF interfaces.
- Display Formatting
JCaiF does not define how a survey should look, it defines only the questions to be
used in a survey, the text of those questions and the skip logic (flow) of the the
survey. JCaiF Containers are responsible for the interface between the survey and the