Michael Elhadad
CLINT - A Hybrid Template/Word-based Text Generator
This is the home
page of the CLINT project. CLINT is a hybrid text generator written in C++ under
Windows. It merges two techniques for text generation:
- Templates
- Word-based generation for Noun phrases
CLINT has been developed by
Rinat Gedalia and Michael
Elhadad.
What is in the package
CLINT is demonstrated as a business letter
composition engine, in the example setting of a Credit Card company answering to
inquiries from its customers. It contains four components:
- A template development system
- A problem definition system
- A Noun-phrase generator
- The run-time generator
The template definition is used to describe
a simple grammar of templates. Template expansion is a simple string operation
(fill-the-holes). In addition to simple template expansion, the template
definition language supports random alternation (to add variety to the text
produced), conditional expansion (to embed different templates depending on the
value of a parameter) and recursive template embedding (to allow a compositional
description of templates). The toplevel template for a business letter might
look as follows: [Address] [Date]
Dear [Title][Name]:
(Opening[Problem])
(Body[Problem])
(Closing[Problem])
(If [Tone]="Formal"
"Sincerely,"
else
"Thank you,")
[OperatorName]
The problem definition module is used to associate templates with a
decision tree. At runtime, the generator asks questions to the user by following
the decision tree described in the problem definition module, and in the
process, acquires the values of parameters - either directly from the user or
from a database. Once the decision tree is traversed, a template is associated
with each leaf and the template is instantiated with the value of the
parameters. Within the template, all references to objects in the domain are
marked as special slots within the template - and not expanded as simple
strings. Instead, the information to build noun phrases is passed to the NP
generator that takes into account the discourse context to decide what form of
NP is most appropriate at each point. The NP generator can decide to build a
pronoun, a complete noun-phrase with all modifiers, a light noun-phrase with
only a subset of the modifiers or a one-anaphora. Different algorithms can be
tested on the output and changed at runtime. The runtime generator interacts
with the user and the database to obtain information on the specific case at
hand, select an appropriate template, and fill it with the obtained data. The NP
generator is then invoked on the expanded template and a complete text is
produced.
Requirements
CLINT runs under Microsoft Windows 3.1. It is written in
C++. The package contains an example template grammar in the domain of Business
Letter Composition. After running clint.exe, open the file
transit to run an example.
Obtaining the package
This zip file contains two files:
clint.exe and the data file transit which is an
example of template grammar with a problem definition.
More material
More material will be made available on CLINT in the near
future - including complete source code, user documentation and description of
the algorithms used by the NP generator.
Last modified March 31st, 1996 Michael
Elhadad