1. A method for generating a natural language description of a user-selected item comparing the user-selected item to at least one comparison item, wherein the characteristics of both the user-selected item and the comparison item are defined by a plurality of specifications, the method comprising: selecting the user-selected item from a list of items stored at a computer-readable storage medium and available for text generation; selecting the at least one comparison item from the list of items; retrieving the specifications for the user-selected item and the at least one comparison item from a computer-readable storage medium, each specification including a comparison function that compares the specification for the user-selected item to the specification for the comparison item and a plurality of sentence templates each having a recursive phrase structure including a plurality of coded phrases using one or more of the specification for the user-selected item or the specification for the comparison item; comparing the specifications for the user-selected item to the specifications for the at least one comparison item at a processing unit operatively coupled to the computer-readable storage medium by evaluating each comparison function to determine a comparison function result; assigning a textual representation to each comparison function result; evaluating the plurality of sentence templates to generate at the processing unit a plurality of natural language sentences describing the user-selected item by recursively expanding the recursive phrase structure, wherein the natural language sentences include each assigned textual representation and a recursive expansion result explains the outcome of the comparisons in natural language; combining at the processing unit the generated natural language sentences into a natural language document describing the user-selected item; and at least one of outputting the natural language document to an output device operatively coupled to the processing unit and storing the natural language document to one of the computer-readable storage medium and a further computer-readable storage medium operatively coupled to the processing unit.