32. The method according to claim 29 , wherein a structure in the structure dictionary assigned to a data attribute takes a form of a word built from an alphabet of symbols taking a form of constants corresponding to alpha-numeric strings and characters, as well as variables corresponding to generic data types including numeric, alpha-numeric and binary data types, and further comprising building the word using formation rules of a formal language, the structure sub-collections corresponding to the word being formed out of the symbol sub-collections corresponding to symbols being used in the word, the method of building a symbol sub-collection for portions of the values corresponding to a symbol being used in the word comprising: assigning to the symbol an ordered list of a plurality of possible values of the symbol, the list containing values selected based on at least one of inclusion of all values that previously occurred in data, interaction with a user, automatic detection of values occurring most frequently in data, and automatic detection of values occurring most frequently in a history of queries; and for each collection of values corresponding to the data attribute, forming the symbol sub-collection as a table, wherein each portion of the value that matches the symbol is labeled by an ordinal number of the portion of the value, the value matching the word, the ordinal number being taken as the position of the portion of the value in the list of the plurality of possible values, the list of the plurality of possible values being the same for all collections of values corresponding to the data attribute.
32. The method according to claim 29 , wherein a structure in the structure dictionary assigned to a data attribute takes a form of a word built from an alphabet of symbols taking a form of constants corresponding to alpha-numeric strings and characters, as well as variables corresponding to generic data types including numeric, alpha-numeric and binary data types, and further comprising building the word using formation rules of a formal language, the structure sub-collections corresponding to the word being formed out of the symbol sub-collections corresponding to symbols being used in the word, the method of building a symbol sub-collection for portions of the values corresponding to a symbol being used in the word comprising: assigning to the symbol an ordered list of a plurality of possible values of the symbol, the list containing values selected based on at least one of inclusion of all values that previously occurred in data, interaction with a user, automatic detection of values occurring most frequently in data, and automatic detection of values occurring most frequently in a history of queries; and for each collection of values corresponding to the data attribute, forming the symbol sub-collection as a table, wherein each portion of the value that matches the symbol is labeled by an ordinal number of the portion of the value, the value matching the word, the ordinal number being taken as the position of the portion of the value in the list of the plurality of possible values, the list of the plurality of possible values being the same for all collections of values corresponding to the data attribute. 33. The method of claim 32 , wherein the formal language is recursively enumerable language.