How it Works - an Overview
The Jalama Field Data Collection Application (available on the downloads page) is targeted at ecologists using EML to document field data collection. It provides a way of automatically generating data-collection forms from existing EML data sets, deploying these forms onto handheld devices and allowing the user to collect data in the field, and then importing collected data (potentially from multiple handheld devices) into new EML data sets. The application comprises two components: a Field Data-Collection Application (currently for use on a Windows XP tablet PC), and a Form Generation and Data Retrieval Plugin for Morpho.
The application flow is described in the user documentation. For the purposes of the following description, we will use these abbreviations:
- UI: user interface
- Lab Machine: the machine running Morpho and the Jalama Plugin - this would typically be a desktop computer in a lab or office.
- Field Device(s): the handheld device(s) to be used for field data collection.
Step 1: Automatic Creation of Forms

Figure 1: simple flow diagram for the Jalama form generation process
Working on the lab machine, the user picks an EML data set (containing at
least one data table) to be used as the basis for form generation. This document
(which is, in fact, an XML file) is sent to the Jalama UI generation module,
along with the appropriate EML schema.
The UI generation module's behavior is governed by two sets of business rules, defined in text (XML) files. The first set of business rules defines which UI components will be used to represent which schema elements, when generating the form. When the UI components have been selected and assembled into a basic form, the second set of rules then adds details that are specific to the EML data set being used, such as labels, enumerations for drop-down lists, default values etc.
The final output is a single, serialized Java object that represents a Mozilla XUL file. The reason the XUL file is represented by a serialized Java object instead of a text file is that several properties (such as server location etc) are set at runtime, thus obviating the need for a separate XUL file to be generated for every target machine or environment.
Step 2: Handheld Devices - Synchronization and Field Data Collection
Figure 2: simple flow diagram for the Jalama synchronization and field data
collection processes
(click screenshots for enlarged view)
One or several field devices may connect to the lab machine used in Step
1, via
a Local Area Network (LAN). The Morpho Jalama plugin on the lab machine runs
a server that enables the field devices to perform a synchronization step - copying
any new UI files to the field devices, and copying any new data files from the
field devices back to the lab machine.
Server software (Apache Tomcat) also runs on each of the field devices. The server serves up XUL user interface components to the user's Mozilla Firefox browser "locally" (i.e. without the need for a network connection). The XUL UI uses JavaScript to communicate with the local server (using the same methods as AJAX applications), and the server finally writes the collected data to the hard drive, ready for the next opportunity to synchronize with the lab machine.
Step 3: Importing Data Into a New EML Data Set
Figure 2: simple flow diagram for the Jalama synchronization process
Each file
created by the Jalama software on the field device(s) is a full, valid EML data
set, in XML format. After data collection, these data sets are copied back to
the lab machine during synchronization (see Step
2). In the cases
where field work involves only a single data set from a single device,
it is relatively simple for the Jalama Morpho plugin to import the data
set into Morpho for inspection, editing and saving (either locally or to an online
data repository such as the
KNB).
However, if two or more datasets exist as part of the same field-data collection exercise, the Jalama Morpho plugin must combine these into a single data set. This is achieved By use of the EMLDataMerger software, which combines the first two data sets to produce a resulting merged data set. This new data set is then combined with the next field data set, and so on until all the data sets have been processed. Finally, the new, combined data set is opened in Morpho, as described above.
