A non-transitory computer storage medium encoded with a computer program, the program comprising instructions that when executed by one or more data processing apparatus cause the one or more data processing apparatus to perform operations for analyzing a generic chemical formula, wherein the generic chemical formula comprises at least a plurality of moiety variables, each of the moiety variables having a defined set of possible values, wherein each unique combination of the possible values defines a chemical identifier, the operations comprising:
- inputting a generic chemical formula;
- accessing, by at least one processor, data representing the plurality of moiety variables;
- assigning to each moiety variable a value array;
- extrapolating to each value array, within a memory of a computer using a query generation module comprising code executing in a processor, at least a portion of the set of possible values associated with the given moiety variable, the set of possible values including one or more values;
- transforming at least a portion of the chemical identifiers that correspond to the generic chemical formula into respective coded forms;
- populating each respective coded form into a coded form array within the memory of the computer;
- associating the contents of the populated coded form array with the contents of the value array within the memory of the computer;
- defining a query for use in searching a database using code executing in the processor, the query including, for each moiety variable, either the contents of the coded form array or a reference to the contents of the coded form array, wherein the contents of the value array or a reference to the contents of the value array for each moiety variable are included based on at least one proviso rule stored within the memory of the processor, wherein the proviso rule causes the exclusion a given moiety variable value from the query based on the presence of a different moiety variable value within the query;
- applying the query to the database, using a query comparison module comprising code executing in the processor, wherein the database comprises a collection of unique chemical identifiers;
- generating, using a results module configured as code executing in the processor within the memory of the computer, a list of database entries encompassed by the query that match within at least one prescribed criterion;
- transforming each database entry encompassed by the query into a respective coded form having a range of values using a conversion module comprising code executing in the processor;
- generating, as an artificial landscape, a virtual n-dimensional array of nodes within the memory of the computer using an array-generator module comprising code executing in the processor where n is greater than 3;
- placing each coded form into a node of the virtual n-dimensional array according to an unsupervised learning algorithm using a placement module comprising code executing in the processor to effect a placement according to a neural network algorithm;
- and
- providing a 3-dimensional visual representation of the virtual n-dimensional array wherein the dimensional visual representation includes visual indicators identifying the respective coded form of each database entry encompassed by the query, wherein the visual indication further identifies the specific values for each moiety variable found in the list of matching database entries, wherein the distance between visual indicators correlates to the degree of similarity between entries encompassed by the query.