1. A computer-driven method of providing a user interface to gather data, the method comprising: transmitting a program of machine-readable instructions from a host computer to a local computer; the local computer receiving and executing the instructions, the executing of the instructions directing the local computer to perform operations comprising: displaying on a video display a field template including at least one data field; displaying on the video display an expand field and a submit field; receiving user entry to one or more of the data fields; determining whether the user has selected the expand field, and for each user selection of the expand field, displaying on the video display an additional field template and a connective field, each connective field displaying a list of predefined user-selectable Boolean terms defining relationships between the additional field template and a previous field template; displaying a nesting field in association with each additional field template; receiving user entry to each connective field, each entry comprising selection of one of the predefined connective terms; determining whether user entry to the nesting fields has occurred, each entry comprising selection of a nesting level, and responsive to user entry to a particular nesting field, changing the display of the associated field template to include indentation according to the selected nesting level; receiving user entry to one or more of the data fields of each additional field template; and determining whether user selection of the submit field has been received, and if so, transmitting a machine-readable representation of the user entries and their relationship to the host computer; and the host computer receiving the representation from the local computer.