Terminology

Description

Definitions for some of the terms used in the Alpha TransForm documentation.

Here are some of the terms used in the Alpha TransForm documentation:

Form Type

A Form Type is a set of properties that instruct apps how to collect and display data. Each Form Type has a unique ID, a name to display, and other overall properties. Most of the definition of a form consists of a single list of commands that tell apps what to display, how to receive input, and how to store the data received in a particular form instance.

In the paper world, a Form Type could be viewed as the word processing document that, when printed, creates blank forms, or a mail-merge template used to create filled-in forms.

Form or Form Instance

We use the term Form or a Form Instance to denote the set of data that, combined with the Form Type, makes up a single "blank", "partially filled out", or "filled out" form. The same Form Type can be combined with any number of Forms or Form Instances.

In the paper world, a Form or Form Instance could be viewed as the text that you write on a blank form to "fill out the form". In the database world, a Form or Form Instance can be viewed as a database record, or series of related (parent-child) records.

Form JSON Data

Form data is stored in what is known as JSON data format. (JSON is pronounced "JAY-son" and sometimes called "JavaScript Object Notation.") This is a way of specifying data and its structure in a human-readable form using text. It is a common, "Open" standard way to represent a wide variety of simple and complex data structures.

The reasons for using this format that relate to forms include the widespread support for this data format and the flexibility it has to represent both simple "flat-file-style" fields of information, along with optional fields, as well as complex, one-to-many, parent-child relationships. For example, it can be used to represent an invoice and all of the line items.

Some of the power and flexibility of the Alpha TransForm system comes from its strong support of such data. For example, a Form could literally express a parent-child relationship in JSON as follows:

{
  "parent": "John Doe",
  "children": [
    {"name": "Jane",
     "age": "15"},
    {"name": "Tom",
     "age": "12"}
  ]
}

This flexibility is helpful for many types of forms with optional fields and varying number of sub-items, such as photos, or incident descriptions.

For many uses, the designer of a form type will not need to have much understanding of JSON. However, there are times when such knowledge is helpful and the Designer app lets the designer take advantage of such knowledge.

Data Groups

The Alpha TransForm system uses what it calls "Data Groups" to specify parent-child, one-to-many relationships. Technically, in JSON terminology, a Data Group is an attribute value that is an array of objects. The parent-child example above has one Data Group for the "children".

Data Groups have additional properties to indicate not only the attribute name, but also the text of the button that lets the user add additional items to the group (technically, adding additional array elements) and text for an optional button for deleting existing items.

Pages

A Form Type specifies a single, continuing list of commands to display. Conceptually, it is one long scrolling page. However, for display purposes, a form may be broken into "Pages" that are displayed separately, with only one page displayed at a time.

A page consists of a continuous subset of the list of commands. The page is represented in the Form Filler app as an entry that may be tapped to switch to displaying that page. In the Form Designer and other previews the pages are not displayed separately. The page is represented in the preview by the entry to be tapped as well as the contents of the page surrounded by a thin border.

Pages may be nested, so a page may optionally contain one or more sub-pages. When navigating into a page, a trail is displayed in the upper-left of the Form Filler screen.