An automatic report generator provides a narrative account of a newsworthy happening
such as an sporting event by using templates. The game events are retrieved from
storage and various statistics are generated from the game log and from past game
logs. A template is selected for report generation in a two step process. First,
conditional criteria associated with a template are compared to the game statistics
to determine whether the template matches the game. In a second step, the remaining
candidate templates are subjected to a weighting analysis by which the template
providing the most detailed description, or describing the most relevant events
of the game is selected. Once selected, game specific information is inserted into
the template through the use of functions calls that request game specific data
from the game log or from the game statistics generator.