# Patent

## Title
Deriving product information

## Abstract

A method and a system determine that product information acquired from an electronic catalog includes a product identifier and chemical structure information that is associated with the product identifier. A substance identifier and a quality identifier for a chemical product are derived from product information for a chemical product, and a product identifier for the chemical product is derived from the substance identifier and the quality identifier.

## Background
BACKGROUND OF THE INVENTION
This application relates to deriving product information.
A product that is specified by a customer is sometimes not available, at least not within a time period specified by the customer. As a result, the customer may be interested in determining the availability of an acceptable substitute for the specified product. However, determining the acceptability of candidate substitutes can present a significant challenge, particularly if information that is necessary to the acceptability determination is unavailable or incomprehensible to the person who is in charge of acquiring the acceptable substitute.
For example, in an organization that uses research chemicals, a scientist may specify a research chemical product by brand name to a purchasing agent. In such a case, if the specified brand name product is not available, the purchasing agent may not be able to find a substitute that is acceptable to the scientist without involving the scientist in a time consuming trial and error exercise that reduces the productivity of the purchasing agent and the scientist. In particular, if the research chemical is available in different grades or purities from different manufacturers, and in different containers, it may be difficult to determine, from the way in which the scientist originally specified the research chemical, whether a candidate substitute has characteristics that are suitable for the purpose for which the specified product is sought.
In a case in which the specified product is a research chemical, the specification may include a Chemical Abstracts Service registry number (“CAS number”) number, which identifies a substance.
SUMMARY OF THE INVENTION
Methods and systems are provided for deriving product information. A standardized products database is derived from product information that is provided in different formats in multiple electronic catalogs from multiple sources. The product information is standardized and is linked in the database to allow an end user to determine a set of differently sourced products that meet a set of criteria, such as substance and package criteria. A compact, standardized, descriptive product identifier is derived from the product information in the catalogs or the database.
Different aspects of the invention allow one or more of the following. A database of research chemical products can be provided that allows an end user to produce reports listing chemical products of the same substance from different suppliers. Product information from different sources can be consolidated in an effective way with little input from an end user. Products that are known by different names, such as some chemical substances, can be found by searching under one or other subset of the names. Shopping efficiency can be increased by allowing an end user to view characteristics of different suppliers' chemical products side by side, and by allowing indications of important characteristics of a desired chemical product to be communicated to a purchasing agent or a seller unintrusively in a compact, universal format that can be interpreted accurately by a computer. A quality category to which a product belongs may be determined by reference to an identification number for the product.
Other features and advantages will become apparent from the following description, including the drawings, and from the claims.



BRIEF DESCRIPTION OF THE DRAWINGS
FIGS. 1 and 3-4 are block diagrams of computer-based systems.
FIGS. 2 and 6 are flow diagrams of computer-based procedures.
FIGS. 5, 7, 8, 12 and 13A-13B are illustrations of computer data.
FIGS. 9-11 are illustrations of output produced by software.



DETAILED DESCRIPTION
FIG. 1 illustrates an information analyzing system 10 by which a standardized products database 12 is derived from multiple, differently organized electronic catalogs of product information 14A-14C. The standardized products database stores information about products' characteristics in a uniform way so that it may be readily determined which products have similar characteristics, which can facilitate finding a product that is an acceptable substitute for another product for a particular purpose.
With respect to procedure 1000 (FIG. 2), in a specific implementation (FIG. 3), differently organized electronic catalogs are acquired in the form of respective spreadsheet files 20A, 20B having product information organized in respective rows of products 22A-22H, 24A-24H and columns of product characteristics 26A-26E, 28A-28E (step 1010). One or more of the columns are mapped to one or more tables 30A-30E of a standardized products database 32 (step 1020). Information in one or more of the mapped columns is analyzed for standardization (step 1030). The tables are populated with information derived from the mapped columns (step 1040).
FIG. 4 illustrates a specific embodiment 40 of the standardized products database, in which tables are organized as follows. A substances table 42 and a products table 44 include a substance entry (e.g., entry 46) and a product entry (e.g., entry 48), respectively, for each chemical substance and individual product, respectively, recorded in the database. In embodiment 40, substance entries are linked to product entries in a “one to many” relationship, signified by an arrow from the products table to the substances table in FIG. 4. With this one to many relationship, a single substance entry may be linked to multiple product entries, but a single product entry is linked to only one substance entry. For example, the substances table may have a single entry for salt, which entry is linked to multiple entries in the products table, for salt products in different containers and from different manufacturers.
One to many relationships are also provided between a suppliers table 50 and products table 44, between substances table 42 and a synonyms table 52, between products table 44 and a physical properties table 54, between the products table and a packages table 56, and between substances table 42 and a structures table 58. The suppliers table records identities of product suppliers such as chemical companies. The synonyms table records different names such as “salt” and “sodium chloride” for the same substance. The physical properties table records physical properties such as melting and boiling points for products. The packages table records different packages such as 10 milliliter bottles and 20 gallon barrels in which products may be provided. The structures table records information regarding structural images for substances.
FIG. 12 illustrates a specific example of a relationship table for a standardized products database. FIGS. 13A-13B list database fields of the specific example and demonstrate data types and sample contents of the database fields.
Although a chemical substance has only one chemical structure, the structure can be presented in different views, from different angles, and with emphasis on different features of the structure. A product entry corresponding to a product that is associated with a particular structural representation in a supplier's catalog may also be linked to an entry in the structures table for that representation so that a report derived from the product entry can identify the representation as having originated in the catalog.
Similarly, although a chemical substance has only one set of physical properties, the properties may be expressed differently in different suppliers' catalogs. Thus, in the specific implementation described above, to avoid associating one supplier's product with another supplier's expression of the physical properties for the corresponding substance, entries in the physical properties table are linked to entries in the products table, not to entries in the substances table. Accordingly, a report derived from a product entry can describe the physical properties for the corresponding product as the physical properties were expressed in the catalog.
In at least some cases, it may be advantageous to combine multiple catalog spreadsheet files into one catalog spreadsheet file that is used to supply information to the database. For example, a supplier may provide one spreadsheet that provides information about some characteristics for certain products and another spreadsheet that provides information about other characteristics for the same products. In such a case, the combined spreadsheet file is created by determining, for each row in the first spreadsheet file, the row in the other spreadsheet file that pertains to the same product, and creating a new row having columns that include information from both rows. As described in more detail below in connection with populating the database, two sets of product information may be determined to pertain to the same product if a comparison of information in designated product identification portions of each set indicates a match.
In another example, one spreadsheet file may include information about characteristics for one category of products, such as reagents, and another spreadsheet may include information about characteristics for another category of products, such as aromatics. In such a case, the combined spreadsheet file may be created by concatenating the sets of rows of the spreadsheets.
FIG. 5 illustrates an example 60 of a row of a catalog spreadsheet file. An item number “22” is included in a catalog item number column 62, a product name “Baking soda, bakery grade” is included in a product name column 64, a chemical name “sodium bicarbonate” is included in a chemical name column 66, a CAS number “Z9999999” is included in a CAS number column 68, a supplier number “319” is included in a supplier column 70, a package type number “555” for a 10 milliliter bottle is included in a package type column 72, a structure pointer is included in a structure column 74, and a price value “7.20” is included in a price column 76. Alternatively, in a case in which the spreadsheet file describes products from only one supplier, the spreadsheet file may not include a supplier column, and the supplier number may be acquired by searching the spreadsheet file for an identification of the supplier, such as the supplier's name in a heading, or by prompting the end user as described below in connection with selecting sources.
In a specific implementation, information from the row of example 60 is processed according to procedure 2000 (FIG. 6). An end-user is prompted, by use of an input form such as form 80 of FIG. 8, to select columns as sources for the tables of the database (step 2010). The catalog item number column is a suitable source for the products table. The CAS number column is a suitable source for the substances table. The supplier column is a suitable source for the suppliers table. The package type column is a suitable source for the packages table. The structure column is a suitable source for the structures table. The product name, chemical name, and CAS number columns are suitable sources for the synonyms table. If a price table stores a product's price, the price column is a suitable source for the price table. In a case in which the catalog spreadsheet file includes physical property information (e.g., in one or more physical properties columns or in other columns), the location of such information is a suitable source for the physical properties table.
It is determined whether the products table has an existing entry for the product in the row (step 2020). Such a determination may be accomplished by searching the products table and the suppliers table to determine whether the products table has an existing entry that has the same item number as the product and is linked to an existing entry in the suppliers table that has the same supplier number as the product. If the products table does have an existing entry for the product, the existing entry is updated as necessary with the information in the row, e.g., by adding the latest price, or by linking the existing entry to a new structures table entry that includes the row's structure pointer (step 2030).
Otherwise, it is determined whether the database already has one or more existing entries for the substance indicated in the row (step 2040). Such a determination may be made by searching the substances table and the synonyms table to determine whether either table has an existing entry that matches the CAS number, product name, or chemical name provided in the row, and by searching the structures table for an existing pointer to a structure that matches the structure referenced by the structure pointer in the row. Structure matching is performed by software such as ChemFinder® of CambridgeSoft Corporation, Cambridge, Mass.
If no such existing entries are found, a new entry is added to the substances table, and serves as an existing substances table entry for the remainder of procedure 2000 (step 2050). In the case of example 60, the new substances table entry includes CAS number “Z9999999”. In a case in which the row includes a structure pointer but does not include a CAS number, the CAS number for the new entry may be acquired by submitting the structure pointer to software such as the ChemFinder® software referenced above.
Information in the row is added to the database in accordance with the source selections provided by the end-user (step 2060). With respect to example 60, a new entry that includes item number “22” is added to the products table and is linked to the existing substances table entry. In addition, entries in the synonyms table that include product name “Baking soda, bakery grade”, chemical name “sodium bicarbonate”, and the CAS number are added if such entries do not exist already. These entries are linked to the existing substances table entry. An entry in the structures table that includes the row's structure pointer is added if such an entry does not exist already, and is linked to the existing substances table entry. Further, entries in the suppliers table, packages table, and price table that include supplier number “319”, package type number “555”, and price value “7.20”, respectively, are added if such entries do not exist already, and are linked to the new products table entry.
It can be particularly advantageous to help prevent certain errors from entering the database. For example, the use of an erroneous CAS number may result in a single substances table entry being linked to products that in fact are for two different substances. During the transfer of the information from the row to the database, the information may be evaluated. For example, if the CAS number provided in the row conforms to a conventional format in which the CAS number is divided by “-” characters into three sections, the rightmost section is interpreted according to the convention as a checksum, and the checksum is tested against the rest of the CAS number. If the test of the CAS number indicates a problem, the row may be treated as lacking a CAS number.
The database allows an end user such as a purchasing agent to search for products by reference to any information in any of the tables. For example, the end user can cause a report to be derived from the database that lists a specific product, or all of the recorded products for any of the recorded suppliers or for any of the recorded substances, together with pertinent chemical structure images. FIGS. 9 and 10 illustrate examples of initiating searches by text and structure, respectively. FIG. 11 illustrates an example of results of the search of FIG. 9.
In particular, in at least some cases as described below, the database allows an end user to determine whether any of the recorded products is an acceptable substitute for specified product, e.g., due to a similar price or the same package type.
In at least some cases, if a spreadsheet file is compliant with Microsoft Excel, execution of a database emulation feature of an instance of Microsoft Excel may be initiated so that the information in the spreadsheet file can be accessed much as database information is accessed. According to the database emulation feature, each row of the spreadsheet is interpreted as a record and the column entries are interpreted as fields of the record.
An end user such as a scientist who is in search of a particular substance may start with a listing derived from the substances table, and then may produce a report indicating suppliers that supply one of the substances in the listing, and then may produce a report showing products by one of the suppliers of the substance.
FIG. 8 illustrates a user interface that allow an end user to interact with the spreadsheet and the database.
A product identifier (“ACX number”) such as number 100 (FIG. 7) may be derived by categorizing products recorded in the database into sets. With reference to FIG. 7, an ACX number for a product has sections that are now described. A class code section 102 indicates the class of substance of the product (e.g., common research chemical). A substance code section 104 identifies a specific substance (e.g., sodium bicarbonate) within the class. A quality code section 106 indicates a level of quality (e.g., 99% pure) of the product. A package code section 108 indicates, in subsections 110A, 110B, 110C, a number of containers included in the product (e.g., four containers in a multipack), a number of units of volume of each container, and the unit of volume (e.g., liter) used, respectively. A source code section 112 identifies the source (e.g., manufacturer) of the product.
The quality code, package code, and source code sections provide information that is not supplied by a CAS number, which identifies a substance only. The ACX number is arranged so that, in at least some cases, the sections are in decreasing left to right order of importance to the consumer, particularly a research scientist. For example, the research scientist may need a particular chemical substance for a chemical reaction, and may need the substance to have at least a certain purity level so that the chemical reaction is not rendered ineffective by impurities. In such a case, the research scientist may desire a particular amount (i.e., volume) of the research chemical, but can accept a larger amount (provided that the excess can be discarded) and may be able to make use of a smaller amount, by reducing proportionately the amounts of other substances to be used in the reaction. With respect to the source code section, the research scientist may not have a significant concern regarding the identity of the supplier or manufacturer.
A specific implementation has the following characteristics. Substances and suppliers that are recorded in the database are assigned respective substance and source codes sequentially. Products are categorized into multiple quality categories, with each category assigned a respective quality code. The categorization may be accomplished by acquiring quality description information from the product names in the database tables (e.g., “bakery grade” from a product name “baking soda, bakery grade”, or “98% purity” from “sodium bicarbonate, 98% purity”) and analyzing the quality description information to determine the appropriate category for each product. (Alternatively, the quality description information may be acquired from spreadsheet rows, particularly the product name column, as the information in the rows is being copied to the database.) Example quality categories include “reagent grade”, “assay grade”, “HPLC grade”, and ranges of purities such as 90% to 93%. Quality description information may be normalized to a common standard, so that, for example, a quantity value of “1 liter” is normalized to “1000 ml”.
Numerical quality information may rounded, so that, for example, a purity value of 95.3% may be rounded to 95%. In a specific implementation, textual quality information may be converted to numerical quality information, so that, for example, “reagent grade” is converted to a purity range of 99% to 100%. Quality categories may be arranged to overlap, so that a wide range quality category may be specified to indicate the acceptability of any product that belongs to a narrow range category that falls within the wide range quality category.
ACX numbers, or appropriate adaptations, may be used for products other than research chemicals, such as other products that are used in a laboratory. For example, test tubes may be described in terms of quality (e.g., “plastic”, “rubber”, or “glass”, or a value indicating a level of resistance to reacting with the contents), number of items in the product (e.g., 24 test tubes to a box), volume of each test tube, and the unit of volume used, as described above.
A physical mixture may be described by an ACX number or an appropriate adaptation. For example, a particular toothpaste product may have an ACX number that may be used to refer to a set of other ACX numbers representing products that make up the ingredients of the toothpaste product.
A variation of the ACX number format may be used to indicate a research chemical's characteristics with respect to cross reactions. Such a variation may be particularly useful with medical or pharmaceutical substances. For example, a first topical substance may react with a second topical substance to create a third substance that is harmful to a patient. In such a case, tracking the chemical's cross-reactions can help to avoid causing problems.
An ACX number may be used in any situation in which the application of a compact, meaningful description of a product would be advantageous. For example, a research chemical product may be labeled with the ACX number so that a research scientist using the product can specify the product by the ACX number. A purchasing agent is thereby provided with information that, in many cases, is sufficient by itself to allow the purchasing agent to find an acceptable substitute for the specified product, because any product having an ACX number that precisely matches all but the source code section of the specified ACX number is highly likely to serve the needs of the research scientist. In addition, any product having an ACX number that precisely matches all but the source code and package code sections of the specified ACX number is highly likely to serve the needs of the research scientist, albeit possibly with some adjustments to account for quantity and package style differences.
An ACX number may be used in an electronic commerce environment so that a computer programmed to compare ACX numbers can readily identify a research chemical product or other product that is an acceptable substitute for a specified product, and report such identifications to an end-user. In a specific embodiment, each product recorded in the standardized products database described above may be assigned a respective ACX number, which may be recorded in the products table. In such a case, whenever a recorded product is listed, the corresponding ACX number may be displayed to facilitate an end-user's search for acceptable substitutes.
An on-line registration process may be provided so that a new product may be assigned an ACX and recorded in the standardized products database. For example, a Web page may be provided that accepts product information, perhaps including addresses of relevant on-line Web pages or other information. In such a case, the ACX number may be determined by analyzing the product information to determine, among other things, whether the database has an existing entry and therefore an existing substance code for the substance of the product. After being determined, the ACX number may be reported by electronic mail to the initiator (e.g., end user) of the registration of the product.
ACX numbers may also be used to track products such as chemicals throughout an organization, including in inventory and in recording reactions in reactions notebooks or databases.
Documents such as research papers and articles that include ACX numbers can be indexed by ACX number so that, for example, documents that refer to a particular product can be reliably listed and retrieved. In the case of Web pages and other electronic documents, ACX numbers can be embedded and linked so that selecting the ACX numbers, e.g., with mouse clicks, causes the display of information that is relevant to the product or to a feature of the product, such as the substance of the product.
All, or a portion of the procedures described above may be implemented in hardware or software, or a combination of both. In at least some cases, it is advantageous if the technique is implemented in computer programs executing on one or more programmable computers, such as a personal computer running or able to run an operating system such as Unix, Linux, Microsoft Windows 95, 98, 2000, or NT, or MacIntosh OS, that each include a processor, a storage medium readable by the processor (including volatile and non-volatile memory and/or storage elements), at least one input device such as a keyboard, and at least one output device. Program code is applied to data entered using the input device to perform the technique described above and to generate output information. The output information is applied to one or more output devices such as a display screen of the computer.
In at least some cases, it is advantageous if each program is implemented in a high level procedural or object-oriented programming language such as Perl, C, C++, or Java to communicate with a computer system. However, the programs can be implemented in assembly or machine language, if desired. In any case, the language may be a compiled or interpreted language.
In at least some cases, it is advantageous if each such computer program is stored on a storage medium or device, such as ROM or optical or magnetic disc, that is readable by a general or special purpose programmable computer for configuring and operating the computer when the storage medium or device is read by the computer to perform the procedures described in this document. The system may also be considered to be implemented as a computer-readable storage medium, configured with a computer program, where the storage medium so configured causes a computer to operate in a specific and predefined manner.
Other embodiments are within the scope of the following claims. For example, the columns that are to serve as sources for the tables may be selected fully or partially automatically, perhaps by a process that analyzes the contents of column headers to determine the type of information that is provided in the column. The ACX number may be provided in a form that is particularly suitable for detection or interpretation by a computer, such as in a bar code format or encoded on a magnetic strip.

## Claims

1. A computer-implemented method for use in managing product information, comprising:
downloading product information from an electronic catalog, the product information being readable by a computer;
determining that the product information includes a product identifier and chemical structure information that is associated with the product identifier;
deriving a product descriptor string from the product information, the product descriptor string being readable by a computer, the product descriptor string comprising:
a first string section identifying a chemical substance corresponding to the chemical structural information; and
a second string section having quality description information of a product identified by the product identifier;

identifying a desired product having a chemical structure and a quality description; and
presenting information that communicates at least one product having substantially the same chemical structure and quality description as the desired product based on at least the first string section and the second string section of the product descriptor string of the desired product.

2. The method of claim 1, further comprising:
storing the product identifier and the chemical structure information in a database of chemical product information, with the product identifier linked to the chemical structure information.

3. The method of claim 1, further comprising:
determining that the product information includes a product identifier and physical property information that is associated with the product identifier; and
storing the product identifier and the physical property information in the database with the product identifier linked to the physical property information.

4. A computer-implemented method for use in managing product information, comprising:
downloading product information for a chemical product, the product information being readable by a computer;
deriving, from the product information, a substance identifier for the chemical product;
deriving, from the product information, a quality identifier for the chemical product;
deriving a product descriptor string from the substance identifier and the quality identifier, the product descriptor string being readable by a computer, the product descriptor string comprising:
a first string section identifying a chemical substance corresponding to the substance identifier; and
a second string section having quality description information corresponding to the quality identifier;

identifying a desired product, the desired product comprising a desired chemical substance and the desired product having a quality description; and
presenting information that communicates at least one product of substantially the same chemical substance and having substantially the same quality description as the desired product based on at least the first string section and the second string section of the product descriptor string of the desired product.

5. The method of claim 4, further comprising:
determining, from the product information, a quality category to which the chemical product belongs.

6. The method of claim 5, wherein the determination comprises interpreting the quality identifier.

7. The method of claim 4, further comprising:
determining, from the product information, whether the chemical product has a purity that matches specified purity criteria.

8. The method of claim 7, wherein the determination comprises interpreting the quality identifier.

9. The method of claim 4, further comprising:
determining, from the product information, whether the chemical product is of a specified grade of chemical products.

10. The method of claim 9, wherein the determination comprises interpreting the quality identifier.

11. The method of claim 4, further comprising:
deriving, from the product information, a quality value in a predetermined format.

12. The method of claim 4, further comprising:
arranging sections of the product identifier according to an order of importance to a consumer of the chemical product.

13. The method of claim 4, further comprising:
providing the product identifier with a section that indicates only the source of the chemical product.

14. The method of claim 13, further comprising:
providing the product identifier with another section that indicates only the package style of the chemical product.

15. A system for use in managing product information, comprising:
a downloading mechanism downloading product information from an electronic catalog, the product information being readable by a computer;
a determiner determining that the product information includes a product identifier and chemical structure information that is associated with the product identifier;
a deriver deriving a product descriptor string from the product information, the product descriptor string being readable by a computer, the product descriptor string comprising:
a first string section identifying a chemical substance corresponding to the chemical structural information; and
a second string section having quality description information of a product identified by the product identifier;

an identification mechanism identifying a desired product having a chemical structure and a quality description; and
a presenting mechanism presenting information that communicates at least one product having substantially the same chemical structure and quality description as the desired product based on at least the first string section and the second string section of the product descriptor string of the desired product.

16. A system for use in managing product information, comprising:
a downloading mechanism downloading product information for a chemical product, the product information being readable by a computer;
a deriver:
deriving, from the product information, a substance identifier for the chemical product;
deriving, from the product information, a quality identifier for the chemical product; and
deriving a product descriptor string from the substance identifier and the quality identifier, the product descriptor string being readable by a computer, the product descriptor string comprising:
a first string section identifying a chemical substance corresponding to the substance identifier; and
a second string section having quality description information corresponding to the quality identifier;


an identifying mechanism identifying a desired product, the desired product comprising a desired chemical substance and the desired product having a quality description; and
a presenting mechanism presenting information that communicates at least one product of substantially the same chemical substance and having substantially the same quality description as the desired product based on at least the first string section and the second string section of the product descriptor string of the desired product.

17. A computer-implemented method for use in managing product information, comprising:
querying a database of products, the database containing one or more fields for a product descriptor string, the product descriptor string being associated with a corresponding product, the product descriptor string comprising:
a first string section identifying a chemical substance of the product associated with the product descriptor string; and
a second string section having quality description information of the product associated with the product descriptor string;

in response to querying the database, selecting at least one product having substantially the same chemical substance and quality description as a desired product based on at least the first string section and second string section of the product descriptor string of the desired product; and
presenting information that communicates the at least one product having substantially the same chemical substance and quality description as a desired product.

18. The method of claim 17, the database further containing chemical structure information associated with at least one product.

19. The method of claim 17, the database further containing physical property information associated with at least one product.

20. The method of claim 17, wherein the quality description information includes a product purity.

21. The method of claim 17, wherein the quality description information includes a specified grade of chemical products.

22. The method of claim 17, each of said product descriptor strings further comprising a third string section indicating a source of the product associated with the product descriptor string.

23. The method of claim 22, each of said product descriptor strings further comprising a fourth string section indicating a package style of the product associated with the product descriptor string.