SYSTEMS AND METHODS FOR QUERY AND INDEX OPTIMIZATION FOR RETRIEVING DATA IN INSTANCES OF A FORMULATION DATA STRUCTURE FROM A DATABASE

Systems and methods are provided for query and index optimization for retrieving data in instances of a formulation data structure from a database. The methods include presenting an information source for searching for the presence of formulations and generating formulation data from field entries. The formulation data is associated with found formulations. The methods include generating an instance of a formulation data structure. The instance of the formulation data structure associates the information source with the found formulations. The methods include creating optimized index data from retrieved data in the instance of the formulation data structure. The optimized index data includes a mapping between potential search-field terms and the formulation data, and is grouped based on a predicted access pattern. The methods include running a search query across the optimized index data and providing information associated with an information source associated with retrieved data in an instance of a formulation data structure.

TECHNICAL FIELD

The present disclosure provides systems and methods for query and index optimization. In particular, in some embodiments, the systems and methods for query and index optimization may pertain to retrieving data in instances of a formulation data structure from a database.

BACKGROUND

A formulation is a combination of multiple components. Such components may be materials, compounds and/or substances that are used for specific purposes. For example, formulations may include a combination of one or more active ingredients (e.g., a pharmaceutical, pesticide, or fertilizer) and one or more inert components. The inert components may facilitate the efficacy of the active ingredients, their application, storage, or safety. For example, a formulation may be a baked cake consisting of multiple ingredients. In other examples, a formulation may be a polymer or a mixture of materials. Formulations may be relevant to the fields of chemistry, agrochemicals, pharmaceuticals, biotechnology, life sciences, manufacturing, cosmetics, health, food and beverage, consumer goods, paints and coatings, polymers, plastics, rubber, petroleum, gas, metals, alloys, cement, automotive, aerospace, defense, etc.

Formulations may be disclosed in information sources. Information sources may be, for example, documents, published works, package inserts, research papers, patents, patent applications, advertisements, presentations, websites, and/or journals. Information sources disclosing formulations may be publicly available or stored in private collections.

Users may search for disclosures of formulations in electronically stored information sources. For example, users may search using text-based searching. A user may attempt a search for a formulation name to find information sources that contain the formulation's name. If a user wants to find electronically stored disclosures of formulations that have two compounds, the user may attempt a search for the two compounds by name to find information sources that contain the two compounds' names. In some cases, however, the user may be presented with information sources that mention both compounds but in unrelated contexts. As a result, some of the discovered information sources may lack a formulation that comprises both compounds. In some instances, the user may be presented with information sources that mention both compounds in a related context but where, nevertheless, no formulation comprises both compounds. For example, an information source may describe a formulation containing one of the searched compounds but the other searched compound may be mentioned in the information source as an alternative to the former compound.

Additionally, while some information sources containing a formulation may provide various pieces of information of interest to users searching for the formulation, they may fail to explicitly disclose some other information of interest. For example, the purpose of a formulation may be described but the formulation target may be omitted. Mention of the target may be omitted because the author believes it to be implicitly disclosed or clear enough from the context not to require explicit disclosure. In some instances, authors may purposely obfuscate information (e.g., in a patent application) to limit public disclosure.

Further, some formulations may be unamenable to identification by regular text-based descriptions such as a formulation's name. This may occur, for example, when a formulation does not have a name or a formulation's name is very complicated. Sometimes it may be easier to identify a formulation with, for example, a registry number (e.g., a CAS Registry Number® such as “329-65-7”), an identifier (e.g., “1/C2H6O/c1-2-3/h3H,2H2,1H3”), a chemical connection table, a specific numeric property value (e.g., at 300K, 1.2 mPa·s), or a structure diagram. Conventional internet search engines may not support information-source searches with search fields and queries particular to the field of chemistry or other technical fields. For example, even if a conventional internet search engine allows one to search for information sources containing a substance's name in order to find formulations containing the substance, the conventional internet search engine may lack the ability to allow a user to search for information sources using a query specifying parameters related to the substance. One example of such a query may be for substances with a certain property, such as a boiling point above a certain temperature. A conventional internet search engine may lack the ability to run such a search, in part, because an information source containing a substance by name may never indicate the substance's boiling point. Even if some conventional internet search engines allow searches with search fields and queries particular to the field of chemistry or other technical field, they may lack the ability to create search queries that encompass relationships between different materials, compounds, and substances (e.g., the relationship of being contained within a single formulation).

In addition, existing systems and methods of generating indexes for searching for formulations or information sources containing formulations may generate an index that cannot be searched as efficiently as an index optimized for responding to queries requesting retrieval of information pertaining to formulations or information sources containing formulations. The absence of a data structure designed to optimize query processing and generating optimized indexes further contributes to the inefficiency of existing systems and methods.

The disclosed systems and methods are directed to overcoming one or more of the problems set forth above and/or other problems or shortcomings in the prior art.

SUMMARY

Consistent with disclosed embodiments, the present disclosure is directed to system and methods for query and index optimization for retrieving data in instances of a formulation data structure from a database.

Consistent with at least one embodiment, a computer-implemented system for query and index optimization for retrieving data in instances of a formulation data structure from a database is disclosed. The system may comprise a memory device that stores a set of instructions and at least one processor that executes the set of instructions to perform a method. The method may comprise presenting an information source for searching for the presence of one or more formulations. The method may comprise generating formulation data from field entries. The formulation data may be associated with one or more found formulations. The method may comprise generating an instance of a formulation data structure. The instance of the formulation data structure may associate the information source with the one or more found formulations. The method may comprise creating optimized index data from retrieved data in the instance of the formulation data structure. The optimized index data may comprise a mapping between one or more potential search-field terms and the formulation data. The optimized index data may be grouped based on a predicted access pattern. The method may comprise running a search query across the optimized index data. The method may comprise providing information associated with a found information source associated with retrieved data in an instance of a formulation data structure. The optimized index data may be an inverted index. The optimized index data may be grouped based on a predicted access pattern such that a search engine's access time of the optimized index data is decreased. The formulation data may comprise component data associated with one or more components. The component data may comprise substance data associated with one or more substances. The substance data may comprise at least one of a registry number, an identifier, a chemical connection table, a structure diagram, or a specific numeric property value. The method may comprise presenting alternate-search statistics. The method may comprise assigning a relevancy weight to the found information source. The search query may comprise one or more search terms associated with one or more search fields. The one or more search fields may pertain to a scientific field. The one or more formulations may be chemical formulations. The retrieved data in an instance of the formulation data structure associated with the found information source may be associated with a formulation identifier.

Consistent with at least one embodiment, a non-transitory computer-readable medium storing a set of instructions that are executable by at least one processor to perform a method for query and index optimization for retrieving data in instances of a formulation data structure from a database is disclosed. The method may comprise presenting an information source for searching for the presence of one or more formulations. The method may comprise generating formulation data from field entries. The formulation data may be associated with one or more found formulations. The method may comprise generating an instance of a formulation data structure. The instance of the formulation data structure may associate the information source with the one or more found formulations. The method may comprise creating optimized index data from retrieved data in the instance of the formulation data structure. The optimized index data may comprise a mapping between one or more potential search-field terms and the formulation data. The optimized index data may be grouped based on a predicted access pattern. The method may comprise running a search query across the optimized index data. The method may comprise providing information associated with a found information source associated with retrieved data in an instance of a formulation data structure. The optimized index data may be an inverted index. The optimized index data may be grouped based on a predicted access pattern such that a search engine's access time of the optimized index data is decreased. The formulation data may comprise component data associated with one or more components. The component data may comprise substance data associated with one or more substances. The substance data may comprise at least one of a registry number, an identifier, a chemical connection table, a structure diagram, or a specific numeric property value. The method may comprise presenting alternate-search statistics. The method may comprise assigning a relevancy weight to the found information source. The search query may comprise one or more search terms associated with one or more search fields. The one or more search fields may pertain to a scientific field. The one or more formulations may be chemical formulations. The retrieved data in an instance of the formulation data structure associated with the found information source may be associated with a formulation identifier.

Consistent with at least one embodiment, a method for query and index optimization for retrieving data in instances of a formulation data structure from a database is disclosed. The method may comprise presenting an information source for searching for the presence of one or more formulations. The method may comprise generating formulation data from field entries. The formulation data may be associated with one or more found formulations. The method may comprise generating an instance of a formulation data structure. The instance of the formulation data structure may associate the information source with the one or more found formulations. The method may comprise creating optimized index data from retrieved data in the instance of the formulation data structure. The optimized index data may comprise a mapping between one or more potential search-field terms and the formulation data. The optimized index data may be grouped based on a predicted access pattern. The method may comprise running a search query across the optimized index data. The method may comprise providing information associated with an information source associated with retrieved data in an instance of a formulation data structure.

DESCRIPTION OF THE EMBODIMENTS

The present disclosure describes systems and methods for query and index optimization for retrieving data in instances of a formulation data structure from a database. The systems and methods for query and index optimization for retrieving data in instances of a formulation data structure from a database may be used by commercial, government, and academic entities, including but not limited to scientists, intellectual property professionals, legal professionals, business professionals, patent-office examiners, regulatory bodies, and academics. The systems and methods may use a formulation data structure and a database engine that, along with an application (e.g., a web-enabled service), may enable specific fielded and structured search capabilities across information sources containing formulations, including formulations from the field of chemistry or other fields such as agrochemicals, pharmaceuticals, biotechnology, life sciences, manufacturing, cosmetics, health, food and beverage, consumer goods, paints, coatings, polymers, plastics, rubber, petroleum, gas, metals, alloys, cement, automotive, aerospace, and defense. At least one component of the system may enable collection of structured data and other data extracted from existing information sources to build a searchable digest using search-engine technology (e.g., using an offline architecture). At least one component of the system may enable a user to perform searches in a searchable digest (e.g., using an online architecture).

The systems and methods may be implemented as one or more web-enabled software applications for performing a search query for formulations or information sources that contain information on formulations. The systems and methods may be implemented as one or more application-programing interfaces for performing a search query for formulations or information sources that contain information on formulations. The systems and methods may be implemented as one or more database schemas or designs for performing a search query for formulations or information sources that contain information on formulations.

Reference will now be made in detail to exemplary embodiments, examples of which are illustrated in the accompanying drawings and disclosed herein. Whenever convenient, the same reference numbers will be used throughout the drawings to refer to the same or like parts.

FIG. 1illustrates an exemplary information flow diagram100for query and index optimization for retrieving data in instances of a formulation data structure from a database. In certain embodiments, a human or group of humans110with relevant technical knowledge may review information sources or published works120that a user130may want to search for formulations, formulation information, or other information. Human110may be, for example, a curator, indexer, and/or scientist. In some embodiments, an automated system may perform the review instead of or in addition to human110. Human110may fill out a fielded electronic form140that may describe one or more information sources120that human110reviews. Human110may fill out one or more forms140with information derived from information source120and generate field entries that may be later used to facilitate formulation or information-source searches with a formulation search tool150. Structured data, such as an instance of a formulation data structure (“formulation record160”) associated with one or more formulations identified from the field entries, may be generated. The structured data may associate the one or more formulations with the information source where human110found the formulation. The structured data for one or more formulations may be indexed in an index165. Index165may be an optimized index for searching for the structured data. The structured data and/or the index may be stored in a database170. Index165may comprise a mapping between information derived from the field entries and stored in formulation record160and the one or more formulations associated with the information in these field entries. User130may search for the information derived from the field entries and stored in formulation record160by running a search query across the index or a binary digest generated from the index. The search engine may return one or more formulations identified by the information derived from field entries and stored in formulation record160. In certain embodiments, instead of or in addition to one or more formulations, the search engine may return one or more information sources containing information on formulations identified by the information derived from field entries. In some embodiments, returning an information source may comprise providing information about the information source, such as its title, author, where the information source may be found, and/or a hyperlink to the information source. In certain embodiments, information sources may be stored as structured data.

FIG. 2illustrates an exemplary system environment200in which a system for query and index optimization for retrieving data in instances of a formulation data structure from a database may operate. The environment may comprise a service system210, a network220, user devices such as first user device230A and second user device240A, and users such as first user110and second user130. The environment may further comprise a server270and a database170comprising formulation record160or instances of another type of structured data. Formulation record160may be expressed using a structured markup programming language such as Extensible Markup Language (XML). In some embodiments, database170may comprise optimized index data. Service system210, database170, and/or other computing systems are configured to receive information from entities in network220, process the information, and communicate the information with other entities in the network220, such as first user110and second user130. For example, the service system210may be configured to receive data over an electronic network220(e.g., the Internet), process/analyze queries and data, and provide an application to users110and130. This may be done over devices230A and240A.

FIG. 3illustrates an exemplary software architecture300for a system for query and index optimization for retrieving data in instances of a formulation data structure from a database. The system may provide a user130with access to a web application for searching for a formulation or information sources using a formulation database. A human curation component301may provide an interface for human110to analyze associated formulations and information sources. Human curation component301may provide human110with one or more electronic forms140with fields (e.g., a fielded form) that human110may fill out as they review information source120, before they review information source120, or after they review information source120. Forms140may contain fields requesting information pertaining to formulations that human110finds in information source120. This information may be any piece of information, such as those described below with respect to the exemplary information illustrated inFIG. 9or information from which the exemplary information illustrated inFIG. 9may be derived. For example, form140may have a field for entering the name of a substance. Later, the system may use the entered name to derive other information, such as the boiling point of the substance. The human curation component301may process forms140to generate formulation data from the field entries in form140. Editorial systems304may process the formulation data to generate structured data (e.g., formulation record160). The structured data may associate the one or more formulations with one or more information sources (e.g., information source120) within which the one or more formulations was found by human110. The structured data may be expressed using a structured markup programming language such as XML.

The structured data (e.g., formulation record160) may be stored in enterprise data hub308and processed in the offline database pipeline312. Enterprise data hub308may be a computer-readable storage medium or memory. In the offline database pipeline312, one or more formulation records160expressed as structured data may be processed to generate index165. Index165may be an inverted index. Index165may be a mapping between one or more potential search terms and formulation records160. The formulation record160pointed to by the potential search terms in the index165may specify which information source a particular formulation was found in. Index165may contain potential search terms grouped based on a predicted access pattern. For example, if a particular search field accepts substance boiling-point search-terms, index165may group potential search terms (e.g., 98 C, 100 C, 100 degrees Celsius, 100 degrees Celsius) together such that the search engine may look in the part of index165that pertains to boiling points rather than the entire index165or unrelated portions of index165. Such structuring of index165may optimize searching because it may permit the search engine to search only in the relevant part of index165for a particular search term rather than the entire index165. As another non-limiting example, the grouping may be performed by determining patterns in a user's searching and grouping in order to minimize the time necessary to perform similar searches in the future. For example, the index data in index165may be compiled in a manner that optimizes a known or predicted frequent-use case, such as a search for information sources that contain substances with particular functions. The index-compilation process may optimize such a search query. In some embodiments, index165may contain potential search terms that are not grouped together by the search field in which those terms may be entered. Index165may be encoded into a binary digest in offline database pipeline312and the digest may be stored as online database316. Index165may be generated and encoded into a binary digest using a distributed computing framework such as Apache Hadoop and related software packages.

The binary digest may be an information access platform (IAP) digest as described in United States Patent Application Publication US 2014/0372448 A1 to Olson et al., published Dec. 18, 2014. United States Patent Application Publication US 2014/0372448 A1 to Olson et al., published Dec. 18, 2014, is incorporated herein by reference in its entirety. The digest in online database316may be searched by a search engine. The search engine may be implemented using an enterprise search platform such as Apache SoIr. References to searching within index165or looking up information in index165may be understood by those of ordinary skill in the art to comprise searching in the binary digest or in index165. A content-database access component320may facilitate exchange of information between Web Server/Middleware324and online database316. Content-database access component320may be a database management system. User assets database328may contain information particular to individual users130. Such information may include, for example, authentication information, previous searches, frequently used substances, aliases to substances, annotations, substance aliases, a scratch pad for text captured by the user, user profile information, review delegation information, occupation, field of interest, and/or alert and notification information. Web Server & Middleware component324may facilitate communication between user's130web browser336and content-database access component320. The web server portion of the Web Server & Middleware component324may accept and supervise requests from browser336. These requests may be made using a network protocol such as Hypertext Transfer Protocol (HTTP). The middleware portion of Web Server & Middleware component324may comprise an application programming interface for accessing a database management system such as content-database access component320. A web-based formulation-searching application may be accessed through web browser336. In some embodiments, an access/authentication module340may prevent unauthorized access to the formulation-searching application by comparing provided credentials to those stored in user-assets database328.

An exemplary portion of an exemplary formulation record160expressed in XML405is illustrated inFIG. 4. XML405may comprise a formulation uniform resource identifier410. XML405may comprise a document number420that indicates an identifier of the information source in which the formulation identified with formulation number410was found. XML405may comprise an indexed value430indicating the information source indexed finding identifier, allowing a link to be created between the information source XML420and the indexed formulation data. XML405may comprise a location440. Location440may indicate the location within the information source identified with document number420describing the formulation identified with formulation number410. XML405may comprise a component identifier450that identifies a component within the formulation identified with formulation uniform resource identifier410. XML405may comprise a component amount460identifying the amount of the component identified with component identifier450. XML405may comprise a descriptor470describing the function of the component identified with component identifier450. XML405may comprise a substance identifier480, identifying a substance within the component identified with component identifier450.

FIG. 5is a flow chart illustrating an exemplary method500for query and index optimization for retrieving data in instances of a formulation data structure from a database. Method500may comprise presenting information source120for a formulation search at step510. Information source120may be presented, for example, by human curation component301to human110. Human110may populate form140with fielded entries. Form140may be populated by an automated system in addition to or instead of human110. Method500may comprise generating formulation data from field entries at step520. The formulation data may comprise component data associated with one or more components. For example, the one or more components may be those that are present in the formulation. The component data may comprise substance data associated with one or more substances. For example, the one or more substances may be those that are present in the component. The substance data may comprise one or more CAS Registry Numbers and/or other identifiers. The one or more CAS Registry Numbers or other identifiers may be unique identifiers for the substance. The formulation data may be stored until it is used to generate structured data such as formulation record160. At step530, method500may comprise generating structured data that associates one or more of the information sources120presented to human110with one or more formulations. The structured data may be generated by, for example, editorial system304. The structured data may be, for example, an XML file (e.g., XML405). Method500may comprise retrieving the data within the structured data and generating index data therefrom at step540. Generating index data may comprise generating an optimized inverted index (e.g., index165) and generating a binary digest from the inverted index. The binary digest may be generated in offline database pipeline312. The index data may comprise a mapping between one or more potential search-field terms and the formulation data. The index data, such as the potential search terms within the inverted index, may be grouped by the search field in which the potential search terms may be entered (e.g., “Kelvin” and “Celsius” may be grouped together because they may be entered in the “boiling point” search field). Method500may comprise running an optimized search query across the index data at step550. It is to be understood that the optimized search query may be run on the generated binary digest. The optimized search query may be generated from a request provided by user130and run by a search engine. Method500may comprise providing information pertaining to a found information source that is associated with a formulation at step560. The information pertaining to a found information source associated with a formulation may be provided by, for example, content database access module320. As an example, the search engine may find a match between the optimized search query and the potential search terms in the index data and information about a formulation or information source associated with the matched potential search terms according to the index data. If the index data points to formulation data from the matched potential search terms, the formulation data may point to the one or more information sources in which the pertinent formulation was found by human110. Information about the formulation and/or the information source may be provided to user130.

In certain embodiments, alternate-search statistics may be provided. Alternate-search statistics may provide user130with information about searches that differ from one or more searches user130previously ran.FIG. 6illustrates an exemplary display600of alternate-search statistics. For example, the web application (e.g., formulation search tool150) may suggest search terms for one or more fields (e.g., variables) to include in a search. Exemplary display600may display the list of suggested variables in a row, such as the “purpose” variable610. The same or another list of suggested variables may be displayed in a column, such as “function 1” variable620. The cell of display600that is in the row of a first variable and a column of a second variable may be shaded to represent the relative number of search results the user would get if they performed a search with the first and second variable. In some embodiments, a darker shaded cell may indicate that more search results would be found. For example, in display600, the fact that cell630has darker shading than cell640may indicate that more search results will be found by searching using the “purpose” variable610and the “function 1” variable620suggested by the web application than by searching using the “purpose” variable620and “function 2”650variable. In certain embodiments, different color shading may provide more details about the alternate-search results. For example, green shading in a cell may indicate that a user will narrow their search using the variables indicated by the cell's row and column (e.g., the user will get fewer search results than in a previous search). Red shading in a cell may indicate that a user will expand their search using the variables indicated by the cell's row and column (e.g., the user will get more search results than in a previous search). User130may be able to select a cell to see the results of a search with the variables specified by the row and column of the selected cell. In some embodiments, the variables presented in display600may be those that are entered by user130instead of or in addition to those suggested by the web application. In some embodiments, display600may combine two variables into one row and/or column to maintain a two-dimensional table display while showing alternate-search information for more than two variables at a time. For example, column660may indicate the number of search results retrieved when using the “function 2” and the “substance 2” variable along with the variables in the left-most column. In an embodiment, a higher-dimensional structure than a two-dimensional table may be used to display alternate-search results.

In certain embodiments, alternate-search information may be displayed in a Venn diagram such as exemplary Venn diagram700illustrated inFIG. 7. In Venn diagram700, different variables suggested by the web application or specified by user130may be labeled with an indicator such as “A”, “B”, or “C”. Venn diagram700may contain a shape, such as circle A710, circle B720, and circle C730, associated with one or more variables. The intersection740of all shapes (marked “X”) may provide information regarding the search results for a search comprising all entered or suggested variables. The web application may provide information on alternate searches by, for example, removing at least one of the user-specified variables and displaying the intersection of the remaining variables. For instance, the web application may perform a search by removing variable B and displaying the intersection750of the remaining variables A and C. User130may be presented with a number of search results associated with one or more alternate searches. Selecting an intersection of shapes associated with one or more variables may show the results of a search using those variables. For example, selecting the intersection750may display the results of a search using variables A and C. The web application may also suggest a broader search term than one specified by the variable (e.g., if the user sets a variable to “glucose,” the web application may suggest the broader term “sugar”). For example, the web application may do so by displaying a shape associated with variable A and label the shape “A′”. User130may be able to select the intersection of the broader variable, A′, and another variable, such as intersection770of A′ and C. In some embodiments, the web application may suggest variables representing terms that appear often within the same information sources that contain the searched variables. For example, if a variable representing the search term “Ascorbic Acid” is used in a search, the web application may suggest a search with the term “alpha-tocopherol”. In some embodiments, instead of in addition to suggesting search terms that frequently appear in the same information sources as those terms previously searched for, the web application may suggest search terms that frequently appear in the same formulations. In certain embodiments, the web application may determine whether to propose narrowing or broadening alternate searches by analyzing a user's history of searches and/or the results of a current search. For example, if the user has more than a threshold number of searches in a row that produce fewer results with each iteration, the web application may present a narrowing alternate search. If the user has more than a threshold number of searches in a row that produce more results with each iteration, the web application may present a broadening alternate search. In this or other manner, the web application may attempt to anticipate whether user130is looking to narrow his or her search or broaden it. As another non-limiting possibility in addition to or instead of the foregoing examples, the web application may present a broadening alternate search if the last search produced zero results or a narrowing alternate search if the last search produced more than a threshold number of results. The suggested alternate searches may depend on, for example, one or more settings in the user's profile, such as occupation or field of interest.

In some embodiments, user130may select two parameters of interest and build a table that shows the number of instances of one parameter that occur in instances of another parameter. For example, user130may select a parameter “Assignee” and a parameter “year.” The resulting exemplary analysis table800A, as illustrated inFIG. 8A, may show how many patents were assigned to one or more assignees in one or more years. User130may select a particular row or column to view the data therein graphically, such as in exemplary pie chart800B illustrated inFIG. 8B. Exemplary analysis pie chart800B may indicate the relative numbers of patents assignees were assigned in a year selected by user130.

FIG. 9illustrates exemplary information that may be derived from field entries, stored as formulation data in an instance of a formulation data structure (e.g., formulation record160) or other structured data, searched for by user130, and/or displayed to user130in a search result. In some embodiments, this information may be structured in an instance of a formulation data structure comprising a four-layer entity hierarchy. The top layer may be document layer910and may contain information associated with information source120reviewed by human110. The information associated with information source120may be at least one of an information source identifier912, a publication year914, a language916, an assignee918, an abstract920, a title922, or a patent family924. In certain embodiments, information regarding an information source is stored in the database170if the information source contains one or more formulations930. The information associated with the one or more formulations930may be at least one of their purpose932, target934, final physical form936, application technique938, location in the information source940, process942, effective dose944, effective dose solvent946, experimental activity948, name950, or formulation identifier952. Formulation identifier952associated with formulation930may be an identifier for formulation930, such as, for example, an alphanumeric or numeric identifier. In certain embodiments, a particular formulation identifier952may be associated with a single formulation930. In certain embodiments, formulation930may comprise one or more components960. The information associated with the one or more components960may comprise at least one of their function962, their optionality964, their amount966, a note968, a location in a product970, their physical form972, or their name974. In some embodiments, component960may comprise one or more substances980. The information associated with the one or more substances980may comprise at least one of their function982, their optionality983, their amount984, a note985, their location in a product986, their physical form987, their name988, their identifier989, their image990, their molecular formula991, their melting point992, their boiling point993, or their density994. The compartmentalization of data between the layers in formulation record160may be reflected in the formulation data structure. In some embodiments, other structures and compartmentalization may be used.

FIG. 10illustrates an exemplary display1000of browser336. User130may enter various search terms, such as search term1002, in search fields such as search fields1003a-f. Some possible search fields may include, but are not limited to, at least one of a formulation purpose, a final physical form, a target, an application technique, a function, or a substance. A search may be initiated by selecting a search selector1005. Search terms within a single field may be separated by, for example, a character (e.g., a semi-colon). The character may determine the Boolean logic used for creating the search query. The search fields may be grouped into categories, such as a group for formulation details, a group for component details, and/or a group for substance details. A search may include one or more components for a formulation and/or one or more substances for a formulation. Additional possible search fields are discussed above with respect toFIG. 9.

FIG. 11illustrates another exemplary display1100of browser336. A search query1105derived from search terms entered by user130may be displayed with information source1110as a search result. The information source's title, abstract, and/or summary may be displayed. The number of formulations found in the information source may be displayed in a formulation-summary window1115. Formulation-summary window1115may also display where in the information source the formulations are disclosed (e.g., in the claims, in examples, etc.) as summary information1120. User130may sort the information sources presented in the search results with sort selector1125. The information sources may be sorted, for example, by relevance. Relevance may be determined in at least one manner known to those of ordinary skill in the art. In some embodiments, relevancy may be determined by one or more settings in the user's profile, such as occupation or field of interest. In some embodiments, the location in which a formulation, component, or substance appears in an information source may partially or fully determine the information source's relevancy. For example, if a formulation appears in a patent's claim, the information source may be assigned a higher relevancy than if the formulation appears in a patent's specification. This or other systems of weighting may be used to assign relevancy. The information sources presented as search results may be filtered using a filter selector1130. Filter selector1130may allow filtering by one or more parameters, such as a company that produced an information source. User130may select an alerts or notification feature1135that will update or notify user130when the search for which search results are currently displayed produces different results. User130may see their search history by selecting history feature1140. User130may rerun his or her previous searches or set alerts or notifications for previous searches.

A system for query and index optimization for retrieving data in instances of a formulation data structure from a database is illustrated inFIG. 12as exemplary system1210. The various components of system1210may include an assembly of hardware, software, and/or firmware, including a memory device1220, a central processing unit (“CPU”) with one or more processors1230, and/or an optional user interface unit (“I/O Unit”)1250. Memory device1220may include any type of RAM or ROM embodied in a physical storage medium, such as magnetic storage including floppy disk, hard disk, or magnetic tape; semiconductor storage such as solid state disk (SSD) or flash memory; optical disc storage; or magneto-optical disc storage. The one or more processors1230may process data according to a set of programmable instructions1240or software stored in the memory device1220. The functions of each processor1230may be provided by a single dedicated processor1230or by a plurality of such processors. Moreover, the one or more processors1230may include, without limitation, digital signal processor (DSP) hardware, or any other hardware capable of executing software. I/O Unit1250may comprise any type or combination of input/output devices, such as a display monitor, keyboard, touch screen, and/or mouse. I/O Unit1250may receive search queries. The one or more processors1230may execute instructions1240causing the system to output formulation and/or information source data through the I/O Unit1250.

The foregoing description has been presented for purposes of illustration. It is not exhaustive and is not limited to the precise forms or embodiments disclosed. Modifications and adaptations of the embodiments will be apparent from consideration of the specification and practice of the disclosed embodiments. For example, the described implementations include hardware and software, but systems and methods consistent with the present disclosure can be implemented as hardware alone.

Computer programs based on the written description and methods of this specification are within the skill of a software developer. The various programs or program modules can be created using a variety of programming techniques. For example, program sections or program modules can be designed in or by means of Java™ (see https://docs.oracle.com/javase/8/docs/technotes/guides/language/), C, C++, assembly language, or any such programming languages. One or more of such software sections or modules can be integrated into a computer system, non-transitory computer-readable media, or existing communications software.