Next: , Previous: , Up: Top   [Contents][Index]

1 Design & Architecture

Liza is fundamentally a data collection framework—a fancy form for collecting, validating, and lightly processing user data.

The main components of the system are:


Basic validations against bucket data, producing errors and manipulating control flow. Invokes triggers to manipulate the UI and document. Assertions are compiled from Program sources. See Assertions.


The key/value store into which all document data are stored. Supports staging and rollback of data, processing deltas, and provides hooks that drive the rest of the system. See Bucket.


Basic logic for navigating between steps, prompting for user actions, display help text and basic document data, communicate with server, etc. See Client.

Data API

Declarative abstraction for accessing and processing remote data (e.g. a RESTful service). See Data API.

Developer Dialog

Renders information about the system for debugging the client. Can monitor the bucket, assertions, classification results, and provides other useful features.

Predicate System

Processes classification data from external classifiers to determine applicability of specific questions. These data are used to determine what assertions are performed, what questions and groups display, and more. See Predicate System.


Internal representation of the Program with delegation of events to the assertion system. Contains compiled representation of all steps, groups, questions, assertions, metadata, and others. See Program.

Program UI

Rendering of elements specific to Programs, such as steps, groups, and questions. This is the equivalent of an HTML form. Directly monitors the bucket to perform UI updates. See Program UI.

Program XML

The source code for a Program, in XML format. See Program XML.


Provides REST API for serving Programs; saving data; revalidating, filtering, and recalculating data; and other types of processing. Code is shared with the client, ensuring identical behavior for appropriate behaviors. See Server.

Type Validation

Validates and formats bucket values for specific field (question) types. For example, a date field must be in a recognized date format, and will be normalized for display. See Validation.

More information about each can be found in their respective chapter/section.

Next: , Previous: , Up: Top   [Contents][Index]