Intercalate tools can be used in two ways. Intercalate can build a model of an information domain by analyzing an example, or prototype, of some desired output text, separating the text into a dictionary and template. The other, more frequent use of Intercalate is to generate one or more output files by filtering a model, represented by the dictionary, through a view, represented by a template.
The dictionary contains a hierarchy of property lists. Property lists are collections of key-value pairs, where the values may be simple strings or nested collections. There are two types of collection, a dictionary and an array. A dictionary represents the specialization of a property, while an array collects together instances of domain objects with comparable properties. The structure of a dictionary will become more clear as you proceed through this tutorial.
A template is composed of text interleaved with keywords. Text is copied to the output verbatim, while keywords direct Intercalate to look up values in the dictionary or perform other processing actions.