1
0
Fork 0

design.texi: Add initial component descriptions

master
Mike Gerwitz 2017-03-15 15:31:09 -04:00
parent 09c32e4792
commit 0c496299a0
4 changed files with 132 additions and 2 deletions

View File

@ -19,3 +19,5 @@
##
info_TEXINFOS = liza.texi
liza_TEXINFOS = design.texi macros.texi

98
doc/design.texi 100644
View File

@ -0,0 +1,98 @@
@c This document is part of the Liza Data Collection Framework manual.
@c Copyright (C) 2017 LoVullo Associates, Inc.
@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
@emph{N.B. This document may reference features that are not yet
present in Liza; they will be moved into this repository in time.}
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
@cindex Assertion
@item Assertions
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.
@cindex Bucket
@item Bucket
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.
@cindex Calculated Value
@item Calculated Values
A small sub-system for calculating bucket values from other values.
@cindex Client
@item Client Interface
Basic logic for navigating between steps,
prompting for user actions,
display help text and basic document data,
communicate with server,
etc.
@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.
@cindex Program
@item Program
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.
@cindex Program, User Interface
@cindex User Interface, Program
@item 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.
@cindex Program, XML
@item Program XML
The source code for a program, in XML format.
@cindex Server
@item Server
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.
@cindex Type Validation
@cindex Validation, Type
@item 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.
@end table

View File

@ -52,13 +52,21 @@ Free Documentation License''.
@top Main
@end ifnottex
@c This is where @menu will go
@menu
* Design and Architecture:Design. Design and structure of framework
* Concept Index::
@end menu
@ifnottex
@insertcopying
@end ifnottex
@c This is where the includes will go.
@include macros.texi
@include design.texi
@node Concept Index
@unnumbered Concept Index
@printindex cp
@bye

22
doc/macros.texi 100644
View File

@ -0,0 +1,22 @@
@c This document is part of the Liza Data Collection Framework manual.
@c Copyright (C) 2017 LoVullo Associates, Inc.
@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''.
@c insert appropriate em dash for mode
@iftex
@macro mdash{}
---
@end macro
@end iftex
@ifnottex
@macro mdash{}
@end macro
@end ifnottex