2017-03-15 15:31:09 -04:00
|
|
|
@c This document is part of the Liza Data Collection Framework manual.
|
2017-06-08 14:46:51 -04:00
|
|
|
@c Copyright (C) 2017 R-T Specialty, LLC.
|
2017-03-15 15:31:09 -04:00
|
|
|
@c
|
|
|
|
@c Permission is granted to copy, distribute and/or modify this document
|
|
|
|
@c under the terms of the GNU Free Documentation License, Version 1.3
|
|
|
|
@c or any later version published by the Free Software Foundation;
|
|
|
|
@c with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
|
|
|
|
@c Texts. A copy of the license is included in the section entitled ``GNU
|
|
|
|
@c Free Documentation License''.
|
|
|
|
|
|
|
|
@node Design
|
|
|
|
@chapter Design & Architecture
|
|
|
|
|
|
|
|
Liza is fundamentally a data collection framework@mdash{
|
|
|
|
}a fancy form for collecting, validating, and lightly processing
|
|
|
|
user data.
|
|
|
|
|
|
|
|
The main components of the system are:
|
|
|
|
|
|
|
|
@table @strong
|
2017-03-16 13:23:19 -04:00
|
|
|
@cindex Assertions
|
2017-03-21 14:45:54 -04:00
|
|
|
@item Assertions
|
2017-03-15 15:31:09 -04:00
|
|
|
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.
|
2017-03-21 14:45:54 -04:00
|
|
|
@xref{Assertions}.
|
2017-03-15 15:31:09 -04:00
|
|
|
|
|
|
|
@cindex Bucket
|
2017-03-21 14:45:54 -04:00
|
|
|
@item Bucket
|
2017-03-15 15:31:09 -04:00
|
|
|
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.
|
2017-03-21 14:45:54 -04:00
|
|
|
@xref{Bucket}.
|
2017-03-15 15:31:09 -04:00
|
|
|
|
|
|
|
@cindex Client
|
2017-03-21 14:45:54 -04:00
|
|
|
@item Client
|
2017-03-15 15:31:09 -04:00
|
|
|
Basic logic for navigating between steps,
|
|
|
|
prompting for user actions,
|
|
|
|
display help text and basic document data,
|
|
|
|
communicate with server,
|
|
|
|
etc.
|
2017-03-21 14:45:54 -04:00
|
|
|
@xref{Client}.
|
2017-03-15 15:31:09 -04:00
|
|
|
|
2017-06-20 12:55:20 -04:00
|
|
|
@cindex Data API
|
|
|
|
@item Data API
|
|
|
|
Declarative abstraction for accessing and processing remote data
|
|
|
|
(e.g. a RESTful service).
|
|
|
|
@xref{Data API}.
|
|
|
|
|
2017-03-15 15:31:09 -04:00
|
|
|
@cindex Developer Dialog
|
|
|
|
@item Developer Dialog
|
|
|
|
Renders information about the system for debugging the client.
|
|
|
|
Can monitor the bucket, assertions, classification results, and
|
|
|
|
provides other useful features.
|
|
|
|
|
|
|
|
@cindex Predicate
|
|
|
|
@item 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.
|
2017-03-23 09:50:59 -04:00
|
|
|
@xref{Predicate System}.
|
2017-03-15 15:31:09 -04:00
|
|
|
|
|
|
|
@cindex Program
|
2017-03-21 14:45:54 -04:00
|
|
|
@item Program
|
2017-03-16 13:23:19 -04:00
|
|
|
Internal representation of the Program with delegation of events to
|
2017-03-15 15:31:09 -04:00
|
|
|
the assertion system.
|
|
|
|
Contains compiled representation of all steps, groups, questions,
|
|
|
|
assertions, metadata, and others.
|
2017-03-21 14:45:54 -04:00
|
|
|
@xref{Program}.
|
2017-03-15 15:31:09 -04:00
|
|
|
|
|
|
|
@cindex Program, User Interface
|
|
|
|
@cindex User Interface, Program
|
2017-03-21 14:45:54 -04:00
|
|
|
@item Program UI
|
2017-03-16 13:23:19 -04:00
|
|
|
Rendering of elements specific to Programs,
|
2017-03-15 15:31:09 -04:00
|
|
|
such as steps, groups, and questions.
|
|
|
|
This is the equivalent of an HTML form.
|
|
|
|
Directly monitors the bucket to perform UI updates.
|
2017-03-21 14:45:54 -04:00
|
|
|
@xref{Program UI}.
|
2017-03-15 15:31:09 -04:00
|
|
|
|
|
|
|
@cindex Program, XML
|
2017-03-21 14:45:54 -04:00
|
|
|
@item Program XML
|
2017-03-16 13:23:19 -04:00
|
|
|
The source code for a Program, in XML format.
|
2017-03-21 14:45:54 -04:00
|
|
|
@xref{Program XML}.
|
2017-03-15 15:31:09 -04:00
|
|
|
|
|
|
|
@cindex Server
|
|
|
|
@item Server
|
2017-03-16 13:23:19 -04:00
|
|
|
Provides REST API for serving Programs; saving data;
|
2017-03-15 15:31:09 -04:00
|
|
|
revalidating, filtering, and recalculating data;
|
|
|
|
and other types of processing.
|
|
|
|
Code is shared with the client,
|
|
|
|
ensuring identical behavior for appropriate behaviors.
|
2017-06-22 13:07:30 -04:00
|
|
|
@xref{Server}.
|
2017-03-15 15:31:09 -04:00
|
|
|
|
|
|
|
@cindex Type Validation
|
|
|
|
@cindex Validation, Type
|
2017-03-21 14:45:54 -04:00
|
|
|
@item Type Validation
|
2017-03-15 15:31:09 -04:00
|
|
|
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.
|
2017-03-21 14:45:54 -04:00
|
|
|
@xref{Validation}.
|
2017-03-15 15:31:09 -04:00
|
|
|
@end table
|
2017-03-16 13:23:19 -04:00
|
|
|
|
2017-06-20 10:29:52 -04:00
|
|
|
More information about each can be found in their respective chapter/section.
|