1. Field of the Invention
The present invention is directed to systems and methods for generating product summaries. In particular, the present invention is directed to such systems and methods that allow automatic generation of product summaries in complete sentences that read naturally.
2. Description of Related Art
Many different models of products from many different manufacturers are generally available for each type or category of product. Typically, manufacturers of a particular category of product offer various models in their product line, each model targeting a particular group of users and/or meeting the specific needs of a market segment. For instance, manufacturers of automobiles, vacuum cleaners, cameras, computers, etc. all generally manufacture a variety of models of their products. In many instances, each model from each manufacturer and models from differing manufacturers have different features and/or attributes associated with the particular category of product.
For example, in the product category of vacuum cleaners, various models having different combinations of features and/or attributes are presently available. These features and/or attributes for vacuum cleaners include bag/bagless operation, motor power, attachments, exhaust filtration, price, etc. One particular model of a vacuum cleaner may have a bag to collect debris, a 6 ampere motor, without attachments or exhaust filtration, and be typically sold in the marketplace for $60 U.S. Another particular model of a vacuum cleaner may have a bagless compartment to collect debris, an 8 ampere motor, provided with attachments and a HEPA filtration, and be typically sold in the marketplace for $160 U.S. Of course, many other features and attributes may distinguish each of the vacuum cleaners that are available.
In another example, for the product category of digital cameras, features and/or attributes include optical and digital zoom capability, pixel count, the presence, type and size of a view screen, flash capacity, memory capacity, price, etc. One particular model of digital camera may have a 2× optical zoom, 2.1 megapixels, a flash, a 2 inch color view screen, a 32 Mb memory, and be typically sold in the market place for $200 U.S. Another particular model of digital camera may have a 3× digital zoom, 4 megapixels, a flash, a 3 inch color view screen, a 64 Mb memory and be typically sold in the market place for $400 U.S. Of course, many other features and attributes may distinguish each of the digital cameras that are available in the digital camera product category.
The vast number of manufacturers and models available for each product category, and the disparity in features and/or attributes between the products of a product category can make a consumer's purchasing decision very difficult. Companies such as CNET Networks, Inc. (hereinafter “CNET”) which operates www.cnet.com provide information regarding consumer and technology oriented products such as electronics and computer products for buyers, sellers, and suppliers of technology, as well as any other interested user.
In addition to providing raw data and information, many different products in a particular product category are evaluated by editors of CNET for various features and/or attributes and rated on a scale of 1 through 10. Products that are evaluated to have higher quality and to provide superior value to consumers are rated higher than products of lesser quality and value. Moreover, the editors often provide written narrative product summaries that highlight various features of the particular product, and discuss strengths and weaknesses of the reviewed product in comparison to other comparable products.
The information and narrative product summaries provided by CNET and others regarding various products in a product category may be used by consumers to facilitate potential purchase decisions. However, the process of rating the numerous products is time and labor intensive requiring trained editors or other personnel familiar with features and/or attributes of a product category to evaluate each of the products. Moreover, providing written narrative product summaries that highlight various features of the product, and discuss strengths and weaknesses of the reviewed product in comparison to other comparable products requires even more effort from the editors. Such written narrative product summaries requires significant time and resources of the editor, thereby correspondingly requiring significant capital expense to provide such written narrative product summaries by the editor.
Various automated systems have been developed to eliminate or substantially reduce the requirement for individual evaluation of each product. For instance, U.S. Pat. No. 5,731,991 to Kinra et al. discloses a system for evaluating a software product including an interface that receives product data relating to the software product, a first memory that stores the product data, and a second memory that stores a plurality of weighting values. The system also includes a processor that is coupled to the first memory and the second memory which applies the plurality of weighting values to the product data to generate at least one criterion score for the software product, each criterion score representing an evaluation of the software product.
U.S. Pat. No. 6,236,990 to Geller et al. discloses a system and method for assisting a user in selecting a product from multiple products that are grouped into categories. The reference discloses that information such as attributes about the products of each category, and questions related to the attributes, are received and stored. In addition, possible user's responses to the questions and weights associated with each possible response are also received and stored. Evaluation ratings for each of the attributes of each of the products are also received and stored. The reference discloses that the user selects a category and is provided with questions corresponding to the attributes of the products in the category selected. For each product in the category, a product score is calculated by summing the product of the weights of the responses by the evaluation ratings for that product. The results are displayed organized in rows and columns in the order of the product scores and weights. The reference further discloses that the user may change the weights, change categories, or obtain additional information about each product. In addition, the reference further discloses that the system allows attribution of the evaluation ratings, and may place an order for some or all products. However, the systems and methods of the above noted references merely provide ratings of plurality of products and do not provide systems and methods for generating narrative product summaries.
Other product review systems include systems that tally user votes on products, measure popularity of products by hits on a web page or by sales, or use collaborative filtering to measure which other products are commonly bought or also read about by customers who bought or read about a certain product. These product review systems invariably output numerical or discrete metrics such as by giving a product “three stars out of five” and do not provide any advice-bearing text summaries. Many e-commerce sites such as www.amazon.com, and others employ such systems.
Other advice-text generating systems such as that used by The Motley Fool in the website www.fool.com generate evaluative text comments on stocks, takes into consideration dynamically updated data, and also produce real sentences. However, such systems evaluate and comment on all, and only on the same attributes of each product, regardless of the specific attributes of each item itself. Thus, these systems evaluate specific attributes of each product based on simple numerical threshold methods such as whether a quantitative value is above or below a certain point. In addition, such systems generate the same canned sentences for each item that falls below or above each threshold, so that the resultant sentences sound artificial and fabricated rather than product summaries that read naturally.
Thus, such product review systems provide reviews that are not in easily readable form that sound natural. Correspondingly, the conventional systems and methods also fail to provide automatically generated product summaries that sound and read naturally to aid consumers in making purchase decisions.
Therefore, there exists an unfulfilled need for systems and methods for automatically generating narrative product summaries. In addition, there also exists an unfulfilled need for such systems and methods for automatically generating narrative product summaries that sound and read naturally. Furthermore, there also exists an unfulfilled need for systems and methods for automatically generating narrative product summaries that are specifically tailored to the attributes discussed, and to the qualifications regarding the attributes.
In accordance with one aspect of the present invention, methods of automatically generating a naturally reading narrative product summary including assertions about a selected product is provided. In one embodiment, the method comprises the steps of determining at least one attribute associated with the selected product, the attribute including at least one of an attribute name, an attribute value, and an attribute unit, retrieving an assertion model defining forms in which an assertion can be manifested to describe the product in a natural manner, and generating a naturally reading narrative by combining the attribute with the retrieved assertion model.
In accordance with another embodiment, the method comprises the steps of determining at least one attribute associated with the selected product, generating at least one secondary attribute associated with the selected product based on the at least one attribute, the secondary attribute including at least one of an attribute name, an attribute value, and an attribute unit, retrieving an assertion model defining forms in which an assertion can be manifested to describe the product in a natural manner, and generating a naturally reading narrative by combining the secondary attribute with the retrieved assertion model.
In accordance with still another embodiment, the method comprises the steps of determining attributes associated with a category of products, applying a scalar structure for each attribute to provide scalar values for each attribute, determining competitive indexes for each attribute of the products in the category of products based on the scalar values for each attribute, generating secondary attributes from the determined attributes based on a predetermined set of composition rules, retrieving an assertion model from a database of assertion models, and generating a naturally reading narrative based on at least one of the secondary attributes and the retrieved assertion models.
In accordance with another aspect of the present invention, a product summary generator system for automatically generating a naturally reading narrative product summary including assertions about a selected product is provided. In accordance with one embodiment, the product summary generator comprises a product attribute module adapted to determine at least one attribute associated with the selected product, the attribute including at least one of an attribute name, an attribute value, and an attribute unit, an assertion model module adapted to retrieve an assertion model that defines forms in which an assertion can be manifested to describe the product in a natural manner, and a summary generation module adapted to generate a naturally reading narrative by combining the attribute with the retrieved assertion model.
In accordance with another embodiment, the system includes a product attribute module adapted to determine at least one attribute associated with the selected product, a secondary attribute module adapted to generate at least one secondary attribute associated with the selected product based on the at least one attribute, the secondary attribute including least one of an attribute name, an attribute value, and an attribute unit, an assertion model module adapted to retrieve an assertion model that defines forms in which an assertion can be manifested to describe the product in a natural manner, and a summary generation module adapted to generate a naturally reading narrative by combining the secondary attribute with the retrieved assertion model.
In accordance with another embodiment of the present invention, the system comprises a product attribute module adapted to determine attributes associated with a category of products, apply a scalar structure for each attribute to provide scalar values for each attribute, and determine competitive indexes for each attribute of the products in the category of products based on the scalar values for each attribute, a secondary attribute module adapted to generate secondary attributes from the determined attributes based on a predetermined set of composition rules, an assertion model adapted to retrieve an assertion model from a database of assertion models, and a summary generation module adapted to generate a naturally reading narrative based on at least one of the secondary attributes and the retrieved assertion models.
In accordance with still another aspect of the present invention, a computer readable medium for automatically generating a naturally reading narrative product summary including assertions about a selected product is provided. In one embodiment, the computer readable medium includes instructions to determine at least one attribute associated with the selected product, the attribute including at least one of an attribute name, an attribute value, and an attribute unit, instructions to retrieve an assertion model defining forms in which an assertion can be manifested to describe the product in a natural manner, and instructions to generate a naturally reading narrative by combining the attribute with the retrieved assertion model.
In another embodiment, the computer readable medium includes instructions to determine at least one attribute associated with the selected product, instructions to generate at least one secondary attribute associated with the selected product based on the at least one attribute, the secondary attribute including least one of an attribute name, an attribute value, and an attribute unit, instructions to retrieve an assertion model defining forms in which an assertion can be manifested to describe the product in a natural manner, and instructions to generate a naturally reading narrative by combining the secondary attribute with the retrieved assertion model.
In still another embodiment, the computer readable medium includes instructions to determine attributes associated with a category of products, instructions to apply a scalar structure for each attribute to provide scalar values for each attribute, instructions to determine competitive indexes for each attribute of the products in the category of products based on the scalar values for each attribute, instructions to generate secondary attributes from the determined attributes based on a predetermined set of composition rules, instructions to retrieve an assertion model from a database of assertion models, and instructions to generate a naturally reading narrative based on at least one of the secondary attributes and the retrieved assertion models.
These and other aspects of the present invention will become more apparent from the following detailed description of the preferred embodiments of the present invention when viewed in conjunction with the accompanying drawings.
In accordance with the illustrated embodiment of the present invention, the product summary generator 10 is provided with a central processing unit 12 (hereinafter “CPU”) which is adapted to control and/or facilitate functions of various modules of the product summary generator 10 as described in detail below. It should be initially noted that the product summary generator 10 of
It should also be noted that the product summary generator 10 in accordance with one embodiment of the present invention is illustrated and discussed herein as having a plurality of modules or sub-modules which perform particular functions. It should be understood that these modules are merely schematically illustrated based on their function for clarity purposes only, and do not necessary represent specific hardware or software. In this regard, these modules and/or sub-modules may be hardware and/or software implemented and substantially perform the particular functions explained. Moreover, two or more of these modules may be combined together within the product summary generator 10, or divided into more modules based on the particular function desired. Thus, the present invention as schematically embodied in
In the illustrated embodiment, the product summary generator 10 is connected to a network 14 that allows publishing and remote access to the product summary generator 10. Moreover, the network 14 allows the product summary generator 10 to access various sources of information such as the manufacturer's database 15 and/or the vendor's database 16 to obtain various information regarding the products of a products category, and includes memory 17 to allow storage of such information. Such databases may be publicly accessible databases that are maintained by manufactures and/or vendors of such products being reviewed. The product summary generator 10 may be provided with an engine 18 that is adapted to access the manufacturer's database 15 and/or the vendor's database 16 via the network 14 to retrieve such information for storage into the memory 17. Moreover, the memory 17 may be any appropriate type of memory for storage of data and may be based on optical, magnetic or flash memory technologies.
The network 14 may be any type of communications channel, such as the Internet, a local area network (LAN), a wide area network (WAN), direct computer connections, and may be accomplished in a wireless manner using radio frequency, infrared, or other technologies, using any type of communication hardware and protocols. Of course, in other implementations, such information may be directly provided to the memory 17 product summary generator 10 without accessing manufacturer's database 15 and/or the vendor's database 16 via the network 14. The specific details of the above referenced devices and technologies are well known and thus, omitted herein.
The product summary generator 10 as shown in
The product summary generator 10 also includes a secondary attribute module 30 that is adapted to build secondary attributes by reading the desired parameters, and is further adapted to utilize appropriate functions to generate the secondary attributes. In this regard, a rule definition database 36 with functions stored therein is provided so that functions can be retrieved and executed by the product summary generator 10.
An assertion model module 40 that is also provided in the product summary generator 10 is adapted to build assertion models by assigning a theme to each model, reading every template to the appropriate model, and by reading snippets to the appropriate template. In this regard, the assertion model module 40 is provided with an assertion model database 42, assertion template database 45, and snippets database 47.
Furthermore, the product summary generator 10 of the illustrated embodiment is also provided with a summary generation module 50 that is adapted to generate reserved themes, generate supplemental themes, format and assemble the generated sentences, and display the product summary. The various functions and features of each module of the product summary generator 10 are described in further detail below.
As previously noted, the preferred embodiment of the present invention provides a product summary generator 10 which generates product summaries that sound and read naturally so that they can be easily understood by the reader and information presented therein can be used to aid in purchasing decisions. Moreover, as also explained, product summaries are a body of text intended to concisely state several insights or observations about a particular product. Such product summaries typically include one or more paragraphs, each preferably having a plurality of sentences which provide facts, information and opinion regarding a particular product. Such product summaries generated by the product summary generator 10 of the present invention are substantively analogous to product reviews that are written by editors which are familiar to those of ordinary skill in the art except that product summaries are automatically generated by the product summary generator 10 in accordance with the present invention.
As can be seen in
Each theme includes one or more assertion models which are complete set of assertion templates which define various forms in which the assertion can manifest itself as a sentence. Assertions are a point or premise of information, fact, or opinion being made by any number of possible sentences which express that point. Assertion templates are sentence patterns, together with additional field names that form a sentence when the field names are filled. Each of the assertion templates have snippets associated thereto, a snippet being a single element of the assertion template and representing a sentence fragment, and including free-form text, word replacement sets, and/or field name, examples of which are described in further detail below. Moreover, transitional terms may be provided between the assertion models or at other locations of the product summaries as also described in further detail below.
The assertion template 150 of
Of course, it should be evident that the above product summary 100 as shown in
The discussion below describes how the product summary generator 10 and the modules thereof as shown in
Referring to
The product attribute module 20 is adapted to build scenario glosses which are phrases established for each scenario to describe the activities, settings and environments, etc. pertaining to each usage scenario. The product attribute module 20 pulls into memory 17 of the product summary generator 10, certain semantic elements of a scenario, such as the type of user for a particular category of products (e.g. “for photo enthusiasts”), and the adjectival form of the scenario for attachment to the noun (e.g. “semi-pro” in “this is a semi-pro camera.”).
In the illustrated embodiment of the product summary generator 10, the product attribute module 20 is also adapted to build general category information regarding products for which product summaries are generated. The product attribute module 20 reads into memory 17, information that is preferably generic to the entire category of products, i.e. information that is not at a product-specific level. For example, the product attribute module obtains primary attribute name and vocabulary, including the short and long, singular and plural forms of the attribute name, where applicable.
In particular, the product attribute module 20 is also adapted to obtain importance ratings of primary attributes that designate which attributes are important in a given category of products. Of course, such importance ratings of primary attributes are designated in a generic sense, and not from the point of view of a specific scenario or application of the product. The product attribute module 20 obtains the primary attribute units, if applicable. For example, in the category of digital cameras, resolution is measured in “megapixels” which serves as the units of the primary attribute of resolution. Such unit information may be obtained in any appropriate manner, including obtaining such unit information from an input file, or by mining it from other sources.
The product attribute module 20 is also adapted to pull into memory 17, any adjustments to attribute importance ratings (expressed, for example, on a scale of 1-10) for each usage scenario so that the importance ratings can be adjusted depending on the usage scenario. In accordance with one implementation, the adjustments may be “distance-to-goal” meaning that the importance ratings of attributes are adjusted by a certain desired percentage upward toward a maximum, or downward toward a minimum. For example, a +0.40 adjustment would mean increasing the importance rating 40% of the attribute toward 100% from where it stands initially. If the importance rating was initially a 5, this adjustment would increase the importance rating to a 7, and if the initial importance rating was a 7.5, this adjustment-would increase the importance rating to an 8.5. Conversely, a −0.40 adjustment would mean decreasing the rating 40% toward zero from the initial rating. Thus, the initial rating of 10 would be lowered to a rating of 6, and an initial rating of 5 would be lowered to a rating of 3.
The above described adjustments to the importance rating of the attribute of a product category allows scenarios to be combined iteratively. If one scenario is for “fast-action use” and another is for “water resistant use”, the two scenarios can be combined. For instance, if both scenarios increase the importance rating of the product attribute of ruggedness by 50%, then if the rating of the ruggedness attribute was initially 6, the importance rating would be increased to 9. This would be due to the fact that the initial importance rating of 6 would be first increased to 8, and then an increase from 8 to 9.
In addition, language that allows expression of the fact that a product possesses the attribute is also obtained by the product attribute module, whether the possession has a positive connotation or a negative connotation. For example, in a category of products that require batteries, the neutral term may be “uses”, but the negative equivalent may be “requires”. Correspondingly, in evaluating a product with a single battery, a sentence may be generated that states that the product “uses a single lithium battery” as opposed to “requires 4 AA alkaline batteries.”
The attributes may also be flagged as to whether a given primary attribute is a key attribute. In this regard, editors who initially set up the product summary generator 10 to allow automatic generation of product summaries may mark whether one or more of the primary attributes are considered to be definitive of a product category so as to be designated “key” attributes. An ordinary-language usage test of this is to ask which attributes are commonly used in definite descriptions of products. In the case where the category of products being evaluated is digital cameras, “resolution” would be a key attribute because of how common it is in the literature to see phrases such as “the latest 5-megapixel camera from . . . ” The fact that “megapixel” is a unit of measure for “resolution” also indicates that resolution is a key attribute for the digital camera product category.
Furthermore, the product attribute module 20 of the product summary generator 10 is also adapted to obtain product attribute information and associated para-data for the products in a product category. In particular, the product attribute module 20 obtains the actual attribute values associated with the attributes of a particular product in a product category from any appropriate source. For example, in the example of digital cameras, an attribute value for the attribute of “resolution” would be 4.2 megapixels in its full native (non-interpolated) resolution for a particular camera. Such information would be associated with the particular camera.
Product information may be obtained by the engine 18 from the manufacturer's database 15 and/or vendor's database 16 via the network 14. The engine 18 may be provided with search engines having a crawler such as a robot, bot or automated site searcher. The crawler may automatically crawl from servers to servers having such information to gather the appropriate information. Of course, details of such search engines are well known in the art and need not be described in detail herein. Moreover, the product information may be provided to the product summary generator 10 in any other appropriate manner. For example, the information may be gathered by a device other than the product summary generator 10 of the present invention, and provided to the memory 17 of the product summary generator 10 for further processing and generation of the product summaries.
In addition, in the illustrated implementation of the product summary generator 10, the product attribute module 20 is also adapted to obtain primary attribute ranks for each of the products in the product category and read them into memory 17. The primary attribute ranks indicate the rank of each product relative to the other products in the product category based on each of the attributes, and may be determined in any appropriate manner. For example, the conventional method of percentile ranks may be used to obtain the primary attribute ranks. Alternatively, more sophisticated methods may be used to determine the primary attribute ranks. For example, competitive index for the attributes of the products may be determined using the method as set forth in U.S. patent application Ser. No. 10/265,189 filed Oct. 7, 2002 entitled SYSTEM AND METHOD FOR RATING PLURAL PRODUCTS, the contents of which are incorporated herein by reference.
If competitive indexes are determined and used for attribute ranks as set forth in the '189 application noted above, the product attribute module 20 may also be used to flag a product or attribute of the product for verification when competitive index for the attribute of the selected product deviates a predetermined amount from an average competitive index for the attribute of the category of products. This allows checking to see if there are corrupt data. For example, if a very inexpensive camera is listed as having 1/5000th second shutter speed, which is among the fastest on the market, such an attribute would be considered a “noteworthy feature” for discussion in the generated product summary. However, such a feature would likely be too good to be true and may be based on corrupt data with a typographical error in which the actual shutter speed is 1/500th second, not 1/5000th second. Thus, by examining the competitive index when the competitive index of an attribute is very far below, or very far above what is typical of its price point, the product summary generator 10 may be adapted to refrain from making a comment about it within the generated product summary, and instead, flag the attribute for human verification.
Once the primary attribute ranks are determined, the product attribute module 20 calculates primary attribute severity values for each of the products. The severity value essentially expresses how seriously good, or seriously bad it is for a product to have a certain attribute value. In one implementation, severity values may be set to range from 0.00 to 1.00, where a very low or a very high severity is indicative of an attribute of the product that is strong interest to most consumers. The severity values are used in the present implementation because the primary attribute ranks do not provide an indication of which feature(s) stand out as exceptionally noteworthy or weak for the product on the whole which should be discussed in the generated product summary, even if competitive index described in the '189 application are used.
For example, a large-screen console television (hereinafter “TV”) that is heavier than almost any other similar TVs by a few ounces will have a very low percentile rank or competitive index. However, because weight is not an important feature for console style televisions, weight is not a severe condition with respect to the console TV, even though it is of very low rank compared to other lighter TVs. Conversely, another TV might be a few ounces lighter than all the other TVs, but this hardly a very noteworthy feature.
Preferably, the severity value is a function of both the attribute rank (percentile, competitive, or other) and the importance rating of the primary attribute. In one implementation, the function utilizes an inflection algorithm that causes an inflection, whereby attribute values that are highly important (i.e. high importance rating) are pushed closer toward 0.00 when their attribute rank is low, but are held closer toward 1.00 when their attribute rank is high, while at the same time, this effect of pushing the severity value is not obtained when the importance rating is low.
The above described inflection may be obtained by any number of numerical methods so as to accomplish the above described effect. An example method is shown by the following formulas:
When Rank≧0.50 then Severity=Rank*(1-Degree+(Degree*Importance))
and
When Rank<0.50 then Severity=Rank*(1-Degree+(Degree*(1-Importance)));
where Degree is between 0.01 and 0.99. The degree of the inflection can be controlled by setting the Degree to a predetermined number. A higher predetermined number for Degree would produce a more radical inflection between attributes of high and low importance.
For example, when Degree=0.50 (the default setting), the formula comes out as follows:
When Rank≧0.50 then Severity=Rank*(0.50+(0.50*Importance))
and
When Rank<0.50 then Severity=Rank*(0.50+(0.50*(1-Importance)))
Numerous example calculations of severity values is provided below with Degree=0.50 to illustrate the operation of the inflection algorithm of the present embodiment.
If importance is 0.90 and Rank is 0.90; Severity=0.90*(0.50+0.45)=0.90*0.95=0.855
If importance is 0.60 and Rank is 0.90; Severity=0.90*(0.50+30)=0.90*0.80=0.720
If importance is 0.30 and Rank is 0.90; Severity=0.90*(0.50+0.15)0.90*0.65=0.585
If importance is 0.90 and Rank is 0.60; Severity=0.60*(0.50+0.45)=0.60*0.95=0.570
If importance is 0.60 and Rank is 0.60; Severity=0.60*(0.50+0.30)=0.60*0.80=0.480
If importance is 0.30 and Rank is 0.60; Severity=0.60*(0.50+0.15)=0.60*0.65=0.390
If importance is 0.30 and Rank is 0.30; Severity=0.30*(0.50+0.35)=0.30*0.85=0.255
If importance is 0.60 and Rank is 0.30; Severity=0.30*(0.50+0.20)=0.30*0.70=0.210
If importance is 0.90 and Rank is 0.30; Severity=0.30*(0.50+0.05)=0.30*0.55=0.165
In the examples set forth above, it should be evident that the most noteworthy cases which are the first and last examples, have the highest and lowest severity values. The attribute having the highest severity value would correspond to the best attribute of the product being reviewed while the attribute having the lowest severity value would correspond to the worst attribute of the product being reviewed. Importance rating alone, or attribute rank alone, would not make these two cases stand out as being noteworthy for discussion. Mere multiplication of importance rating and attribute rank together would also not make these to cases stand out either. Thus, inflection algorithm such as that described above is desirable to produce the desired effect. The above described method allows the product summary generator 10 to determine the best and worst attributes so that naturally reading narratives can be generated regarding those attributes of the product being reviewed in the product summary 100.
Once the severity values of the primary attributes for a particular product are calculated, for example, in the manner described above, the primary attributes are placed in order of their severity values. In addition, their placement within the plurality of severity values are calculated so as to provide the placement-by-severity, for example, a primary attribute may be designated as being the 3rd most severe, etc. Furthermore, in addition to calculating placement-by-severity as described, the product attribute module 20 also calculates placement order according to a differential in the percentile rank or competitive index from the average percentile rank/competitive index of products in the same scenario.
The product attribute module 20 further determines an Average-Rank-Near-Price margin which allows identification of other products in the product category that are close enough in cost to be cost-comparative to a given product being reviewed. The near-price margin may be set to be around 10% so that products of the product category having prices within 10% of the price of the product being reviewed are identified. Of course, the near-price margin may be configurable so that it can be set at any desired level. The identified products within the near-price margin are taken as a subset and retrievably stored in memory 17 for later use. In addition, the average attribute rank among the identified products, whether the attribute rank is based on percentile rank or competitive index, is calculated for each primary attribute.
In addition, the product attribute module 20 further determines an Average-Price-Near-Rank margin which allows identification of other products in the product category that are close enough in rank to be compared to a given product being reviewed. Again, the near-rank margin is configurable but may be approximately 5%. Thus, the near-rank margin allows determination of which products of a product category have a comparable value to the product being reviewed for a given primary attribute. The average price of the identified products is also determined. In the present implementation, the above described determination is preferably performed for every primary attribute of every product, and is retrievably stored in memory 17 for later use.
In one implementation, the product attribute module 20 of the product summary generator 10 is adapted to characterize the typical feature value of products costing nearly the same (among comparable products and/or among the entire category), and also adapted to characterize the typical price of products having nearly the same feature (among comparable products and/or among the entire category). To ensure that the generated product summary contains statements regarding value of the product when they are relevant, one or more threshold measures may be provided to determine when they are sufficiently noteworthy to merit a mention. This may be attained by the product attribute module 20 by determining two derivative measures, Value-For-Price and Price-For-Value, from the Average-Rank-Near-Price margin that was described previously above.
Value-For-Price may be defined as the Average-Rank-Near-Price minus the rank of the same attribute value of the product being reviewed. The Value-For-Price may be expressed as the difference value or be expressed as a percentage of the attribute valve of the product being reviewed. For example, if the Average-Rank-Near-Price for a camera's resolution is 0.44 and the rank of the camera's resolution is 0.36, then the camera's resolution Value-For-Price may be expressed as being 0.08. This means that 0.08 competitive points of surplus value with respect to resolution is provided by the average camera having similar price as the camera being reviewed. Stated in another manner, this means that the product being reviewed is at a deficit of 0.08 competitive points. When the Value-For-Price is above a certain configurable threshold, the product summary generator 10 may be triggered to generate statements referring to the Average-Rank-Near-Price of that product's attribute. The triggering mechanism may further be provided as a follow-up to identification of the most noteworthy features on the basis of their severity as discussed previously above.
Finally, the product attribute module 20 of the illustrated embodiment also generates price analysis information which can be used to characterize a reviewed product as being “expensive” or “low-priced”, etc. This is attained by initially determining the global mean and standard deviation of prices for all products in a product category, regardless of scenario. In addition, global high, low, and median prices are also determined which also preferably includes the median high and median low. The price analysis is repeated with each subset of products that falls into each scenario.
The secondary attribute module 30 in accordance with the present implementation is adapted to build secondary attributes which are attributes that are formed by applying a function to one or more pre-existing attributes. Initially, the secondary attribute module 30 reads into memory 17, all of the functions and secondary attribute definition rules described below from the functions database 36 that have been manually edited by an editor(s) that initially sets up the product summary generator 10, and also validates the syntax and integrity of the secondary attribute definition rules. These secondary attribute definition rules are then used as tools by the secondary attribute module 30 to build the secondary attributes.
In the above regard, the secondary attribute module 30 supports various generic functions which may be provided in the functions database 36 that are standard to most mathematical and/or statistical analysis software packages. These functions may include:
Furthermore, the secondary attribute module supports 30 various specific functions that may be tailored expressly for facilitating generation of secondary attributes. These specific functions may include:
Of course, the above functions are provided as examples only and other functions may also be provided in other implementations of the secondary attribute module 30.
There may be multiple functions that are appropriate for the generation of a secondary attribute. Consequently, in the illustrated implementation, the multiple functions are all executed in sequence for the same secondary attribute. This multiplicity provides more than one way for the product summary generator 10 to attempt to generate the same secondary attribute, which is especially important in an advice-giving environment where there are multiple different ways that a product or a feature thereof can be useful or valuable, or not useful or valuable.
For example, in the product category of digital cameras, “suggested use” for digital cameras may be considered a secondary attribute. Clearly there are many multiple tests, and multiple possible outcomes, for how to derive this value. If the camera has a waterproof case, a suggested use might be for snorkeling. Alternatively, if the digital camera has a very high optical zoom, then “outdoor sightseeing photography” might be appropriate, etc. These multiple definitions can be defined successively.
Each particular secondary attribute, however, has only one main function associated with it in the present implementation. For more complicated secondary attributes, these functions can effectively be nested by making reference to previously created secondary attributes within a new secondary attribute.
The secondary attribute module 30 of the product summary generator 10 calls an appropriate function, retrieves and validates the arguments, observes value dimension specified, and performs string conversion as necessary. “Value dimension” refers to whether the desired value of the attribute in question is the attribute value, the attribute rank, the placement-by-severity, the placement-by-differential-rank, the average-rank-near-price, or the average-price-near-rank, as described in further detail below. All subsequent references within the secondary attribute assumes this value dimension which defaults to the attribute value itself. In many cases, the value dimension should be converted from a string to an integer or real number, and spelled-out numbers may be converted to digits, etc.
The secondary attribute can possibly require the presence of, or absence of, a particular value of another attribute. The secondary attribute module 30 of the present implementation is adapted to test for such a requirement so that if the test fails, a predetermined Fail-Value may be used. For example, for the secondary attribute “recommended minimum flash card size”, the function may stipulate that the presence of a flash card slot in the camera is required. The fail value may be “N.A.” indicating that flash card slot is not available.
The secondary attribute module 30 executes one or more functions described above to generate a secondary attribute, the appropriate function being called with the validated parameters. When the functions are executed and are about to return a value, the secondary attribute module 30 decides how to write the value back into the attribute record associated with the secondary attribute in view of the fact that there are often more than one function used to generate the secondary attribute. In this regard, rules may be provided in the function database 36 that may be accessed by the secondary attribute module 30. Such rules may include:
The “override,” “additive,” and “optimize” rules are each mutually exclusive with the others. If the rule definition is additive, then the secondary attribute module 30 checks to determine whether pre-existing values exist. If they do, then the newly derived value is linked together onto the list of multiple value strings in the attribute record, and the attribute is marked as having multiple values. If there are no pre-existing values, the new value alone is written as a singular value for the generated secondary attribute. If the rule definition is for an override, then the secondary attribute module 30 replaces any existing attribute value with the newly derived value.
If the rule is for optimizing, then the secondary attribute module 30 first determines whether the newly derived value is optimal or not. If the newly derived value is optimal, the secondary attribute module determines whether there are pre-existing values which are non-optimal. If there are non-optimal pre-existing values, these values are deleted. Then, the secondary attribute module 30 determines if any pre-existing optimal values remain. If there are, the new value is linked onto the list and the attribute is flagged as having multiple values. If the new value itself is non-optimal, the secondary attribute module 30 determines if there are pre-existing values which are optimal.
If there are pre-existing values which are optimal, the new value is discarded, and the rule definition exist the function while leaving the attribute value unchanged. If there are no pre-existing optimal values, the secondary attribute module 30 checks if there are pre-existing non-optimal values. If there are, the secondary attribute module 30 links the new value and flag the attribute as having multiple values. If there are no pre-existing values, then the secondary attribute module 30 writes the new value as the singular value of the attribute. This optimize rule can thus, be used for creating several parallel primary attributes which have divergent means of instantiating the same secondary property.
In many cases, secondary attribute rules contain stipulations of positive connotation or negative connotation pertaining to the resulting attribute value. These connotations are mapped into the product based on the specific value it derives from the secondary attribute rule definitions. For example, on the secondary attribute for digital cameras of “largest print size recommended,” the values of ‘5″×7″’ or above, may be assigned a positive connotation, while those of ‘2″×3″’ or lower, may be assigned a negative connotation, with print sizes in between being neutral.
The secondary attribute module 30 may be used by the editors or others for inputting the information, functions, and/or rules that are applicable for generating the secondary attributes. Any appropriate file(s) may be used such as a flat file, or files of a relational database. The data may be stored in any appropriate format such as tab-delimited format or various proprietary database formats. For example, the following chart sets forth file header fields for such files with a description for each header in the adjacent column. The header fields may be as follows:
Referring again to the product summary generator 10 shown in
Every assertion model is designated by the assertion model module 40 of the product summary generator 10 as belonging to one or more themes. Themes typically correspond to the paragraphs of the finished product summaries such as that shown in
The aforementioned themes may all have resident procedures for defining their content. However, their core content may be supplemented by additional assertions defined in the configurable assertion models for each product category. This may be attained by merely assigning a reserved theme name to an assertion so that an editor thereby defines it as supplementary to that reserved theme.
Of course, supplemental themes may be provided by the assertion model module 40 as well, such supplemental themes being typically displayed in the generated product summary after the reserved themes. Such supplemental themes may address any aspect of the product category and may be appropriately named. An example of a supplemental theme for digital cameras may be “On storing pictures” theme in which assertion templates regarding storage capacity of the digital camera is addressed. In particular, the theme may identify and discuss whether a particular digital camera being reviewed is provided with a storage card or if such card must be purchased separately, and what the recommended card size for storing a satisfactory amount of pictures is, etc.
As previously noted, the assertion model module 40 reads every assertion template from the assertion templates database 45 that correspond to the appropriate assertion models in the assertion models database 45, each record in the assertion model defining an assertion template. As schematically shown in
It should be noted that a plural number of assertion templates are typically assigned to the same assertion name, but often have different key attributes. The fact that these assertion templates are assigned to the same assertion name generally indicates these assertion templates are all making essentially the same point about a product being reviewed, except that the assertions are being made in different ways.
In addition, as also previously noted, the assertion model module 40 reads the snippets from the snippets database 47 to the appropriate assertion template, each snippet being a short phrase, usually not capable of standing as a sentence by itself. In the present implementation, each of the snippets in the snippets database 47 may contain three kinds of content: static text, minor variants, or references to attributes or parameters. Static text never changes within the assertion template from the way it is entered by the editor when the product summary generator 10 was set up. Minor variants are inter-changeable phrases which are randomly chosen from a list input by the editor by the product summary generator 10. For example, minor variants may be the phrases “However,” and “On the other hand,” which are substantially equivalent in meaning to one another. References to attributes or parameters are lookups of any attributes, whether primary or secondary, or to parameters of the key attribute, such as its name, its units, its vocabulary elements, etc.
In a manner similar to the secondary attribute module 30 described above, any appropriate file(s) may used to input information regarding the assertion models, for example, via a flat file, or files of a relational database. The data may be stored in any appropriate format such as tab-delimited format or various proprietary database formats. The following chart sets forth file header fields for such files with a description for each header in the adjacent column. The header fields may be as follows:
Referring again to the illustrated embodiment of the product summary generator 10 of
The summary generation module 50 of the product summary generator 10 of the illustrated embodiment also generates the noteworthy features theme by initially determining the noteworthy features, whether the features are noteworthy for being positive or negative. To identify noteworthy features, the summary generation module 50 first examines the placement-by-severity in which the primary or secondary attributes are ordered based on their corresponding severity values, and selects the attributes having the highest severity values, but only if the severity values are above a predetermined high-severity threshold. Preferably, the high-severity threshold is a number that is configurable for the product summary generator 10. The purpose of the high-severity threshold is that, if an attribute is not very severe, then the attribute is not worth generating a sentence about in the product summary. The summary generation module 50 may be adapted to select a predetermined number of highest severity attributes that are above the high-severity threshold so that sentences are generated for those attributes in the product summary.
If the predetermined number of such attributes are not present, the summary generation module 50 examines the placement-by-differential-rank in which attributes are ordered by their attribute ranks. This allows determination of which attributes of the product is markedly superior than most of the other products in the product category sharing its primary scenario and costing around the same price. Again, a predetermined threshold may be implemented so that if no attributes lie above this threshold, the summary generation module 60 will not generate any sentences in the product summary highlighting any noteworthy features. Appropriately, the summary generation module 50 of the product summary generator 10 may find no noteworthy features at all for a particular product being reviewed since some products are truly not noteworthy.
In addition, the editor may have found additional secondary attributes during setup of the product summary generator 10 which, under certain conditions, can be considered noteworthy. These secondary attributes may be added on a product category basis. For example, in digital cameras, the editor may decide that any digital camera having a water-tight case for use while snorkeling is noteworthy for that attribute since it is generally not a common attribute among digital cameras. Since this attribute is unlikely to be highly important among digital cameras generally, it is unlikely to pass the tests within the resident procedures for finding “noteworthy” features, and thus, would need to be added as a supplemental assertion.
Of course, in most instances, it would not be sufficient to merely find and mention a noteworthy feature since the primary object of the product summary generator 10 is to provide user friendly information regarding the product being reviewed. In order to be relevant and useful to most prospective buyers of a product, the noteworthy feature must be placed in some sort of context, or otherwise explained. The summary generation module 50 should thus provide an indication of whether the feature is noteworthy in an absolute sense, or in a relative sense. Some features are noteworthy with respect to entire category of products, and so are “absolutely” noteworthy, but are not noteworthy relative to one or more attributes such as product price, or even the primary scenario.
For example, there may be a digital camera on the market with the primary scenario of “semi-professional photography,” selling for around $8,000 and having an 11-megapixel resolution. This resolution is, in the current market, very high and ranks second highest of over two hundred models on the market. Obviously, this feature is noteworthy in the “absolute” sense. However, relative to its price, this is not noteworthy since $8,000 for a digital camera is very expensive, and the few cameras having comparable resolution are priced similarly. Moreover, among the small subset of digital cameras in the digital camera category that are indicated as “semi-professional”, this resolution is again, not particularly noteworthy. By contrast, a compact camera costing only $150 with 3× optical zoom, is not noteworthy in the absolute sense since 3× optical zoom is middle-of-the-road. However, considering the compact camera's size and its very low price, it is noteworthy in the relative sense.
Each of these various types of noteworthiness requires a different contextualization statement in the product summary that is generated. For a feature that is noteworthy only in the absolute sense, the summary generation module 50 of the product summary generator 10 may be adapted to generate a sentence that would say something like:
For a feature that is noteworthy only relative to its primary scenario, the summary generation module 50 of the product summary generator 10 may be adapted to generate a sentence that would say something like:
For a feature that is noteworthy for the product's price, the summary generation module 50 may be adapted to generate a sentence that mentions the typical price of comparable products boasting this feature. For example, for a digital camera costing $300 with very high resolution, the summary generation module 50 may be adapted to generate a sentence that would say something like:
The finished assertion regarding a noteworthy feature may be referred to as the “ranked attribute description” because it is addressing one of the predetermuned number of most noteworthy attributes, and is describing the noteworthy attribute by the virtue of which the product being received the attribute ranking. For instance, the “aspect” of a shutter speed that made it noteworthy may be the fact that the shutter speed is “faster” than that of “most cameras costing the same.”
The summary generation module 50 further generates the weaker or negative features theme which is the logical converse of noteworthy features, with the exception of some of the explanatory elements. Because of the fact that the product summary generator 10 is primarily for the purpose of assisting a person in making a purchasing decision, when an important feature is weak or actually negative, it would be desirable for the product summary generator 10 to direct the user, for the sake of comparison, to a comparable product that is stronger or more positive for that particular feature.
A comparable product would typically share the same primary scenario, cost about the same, and be similar with respect to the key feature of the product category. For instance, for digital cameras, comparable resolution may be required to be a comparable product since resolution is the most important feature. Thus, if a compact digital camera is being reviewed, another compact digital camera would be noted as being comparable if it falls within the near-price margin, and has a resolution that falls within the near-rank margin. Once all the comparable products for the reviewed product are determined, the comparable product having the highest value rating (such as percentile rank or competitive index) for each attribute is stored.
In cases where the reviewed product is found to be weak in some noteworthy sense, a corresponding comparable product having the highest value rating for the attribute for which the reviewed product is weak, may be referenced within the product summary. Thus, in the present example, if a 3-megapixel compact camera costing $320 is weak in its optical zoom and has only 2×, the product summary generator 10 would identify the best comparative product in respect to zoom, and after mentioning that this particular feature is weak, follow-up with a sentence that says something like:
The summary generation module 50 further generates the value theme by contextualizing the value rating of the product, whether the value rating is based on percentile rank or competitive index as described in U.S. patent application Ser. No. 10/265,189 incorporated by reference above. This means explaining whether the value rating, if noteworthy (either bad or good), is driven more by price, or driven more by features. For example, a digital camera with better-than-average features but that is overpriced, and a camera with a slightly-below-average price but far-below-average features, may have potentially the same value rating. However, these digital cameras both have the same value rating for different reasons. In the former case, the summary generation module 50 may generate a sentence that would say something like:
In the latter case, the summary generation module 50 may generate a sentence that would say something like:
The summary generation module 50 may be triggered to address the value of the product being reviewed in any appropriate manner. In one implementation, this may be attained by utilizing the Value-For-Price as determined by the product attribute module 20 as discussed previously.
Another element of the value theme is that the summary generation module 50 finds the highest or lowest placement-by-rank-differential. This is useful because a product that is generally mediocre in value, neither very good or bad, may nonetheless, be exceptionally good or bad with respect to one important attribute, and the person may like to know this fact. For example, a camera with average value may have a very fast shutter speed for its price. Analysis of this fact can be used by the summary generation module 50 to generate the comment:
Furthermore, supplemental assertions may be offered by the editor that are category specific. For example, ‘Bluetooth’ wireless ability may be an expensive feature for manufactures to provide it in a digital camera. If a camera is provided with such a feature, the price of the camera will reflect this fact and may count as a good value. However, the editor may recognize that this is not a very important feature, and not of very much usefulness to most users of the product category. In this case, a secondary attribute could be introduced to state this fact where applicable, and the summary generation module 50 may generate a sentence that would say something like:
Moreover, the summary generation module 50 may be adapted to generate the suitability theme through contextualization of the primary scenario. The primary scenario is the scenario in which a product scores the highest in its value rating as described in the '189 application or a scenario that has been manually set as to be the primary scenario by the editor. The various scenario glosses which are phrases established for each scenario to describe the activities, settings and environments, etc. pertaining to that scenario, are easily assembled into a sentence by the summary generation module 50. In addition, of the reserved themes described above, suitability is most likely to have supplemental themes added to it, since use cases are so specific to the product category in question.
For example, for digital cameras, the editors that set up the product summary generator 10 of the present invention may desired to characterize which digital cameras as being suitable for sports-action photography, for instance, digital cameras having fast shutter speeds and short delays between shots. This would of course be a secondary attribute, which would become the basis of an assertion assigned to the “Suitability” theme.
In many cases, an attribute will be unknown to most users, or the meaning of its various values will not be of clear relevance in their minds. In such cases, an optional, generic explanation can be attached to any sentence referencing such an attribute. For example, for shutter speed, the summary generation module 50 may be adapted to generate a sentence that would say something like:
The product summary generator 10 may also be provided with a configurable verbosity setting in which the editor and/or the user can select the length of discussion provided by the generated product summary so that the product summary may be really short, really long, or in between. Based on the verbosity setting of the product summary generator 10, the generic explanation may be either included or omitted.
Many assertions described above read perfectly fine when taken in isolation. However, when these assertions are assembled into a product summary, they can combine in ways that are entirely unnatural sounding. Therefore, the product summary generator 10 of the illustrated embodiment is adapted to ensure that the product summary generated reads naturally and in a narrative manner. In particular, the summary generation module 50 may refer to the same thing or attach the same sort of predicate twice in a row, which is not natural in human language. This may be resolved by merging two assertions into one.
For example, in providing discussions regarding noteworthy features, two features may be found that are both noteworthy in an absolute sense, but not in a relative sense. In the example of digital cameras, the two features may be resolution and shutter speed. Independently, the two assertions might be formed by the summary generation module 50 as follows:
Note that in the above example, the two assertions would read fine and naturally when read independently. However, when the two assertions are read in succession, the two assertions sound robotic. Therefore, the product summary generator 10 may be adapted to monitor the result type of the description generated relative to the ranked attribute as discussed above relative to the noteworthy features theme. When the product summary generator 10 receives the same result type twice in a row, it may be adapted to adjust the grammar accordingly to generate a sentence that would say something like:
As can be appreciated, by monitoring repetition of references or predicates, an assertion that merges two different assertions while reading naturally can be generated by the product summary generator 10. Other forms of repetition may include, but are not limited to: mention of two features are exceptional for the scenario in question; mentioning that a particular competitive product outperforms the current model in two attributes at the same time, etc. Furthermore, any number of grammatical forms may be used to merge or connect these assertions. For example, providing the word “also” in between the two independent assertions, or completely merging the assertions into a single sentence as described above, may be used to merge or connect the assertions.
Many secondary attribute values have negative or positive connotations associated with them. Furthermore, every assertion template may optionally designate the attribute from which it derives its own connotation, for example, the key attribute of the template. When generating a product summary, the product summary generator 10 is adapted to monitor the connotation of the preceding and succeeding assertion templates from which each assertion is being generated. It notes whether the transition between the two is contiguous or contrasting, i.e. whether it is the same, or not the same connotation. In such an implementation, a snippet for both conditions, contiguous and contrasting may be provided within each assertion template which can be appropriately used based on the desired connotation. The snippets can be as simple as just the text string “Also, . . . ” for contiguous transition, and the string “However, . . . ” for contrasting transition. Of course, other snippets may be provided as well that has more structure such as the phrase “On the other hand, when it comes just to [attribute short singular name], . . . ”
Because the product summary generator 10 of the present invention is primarily designed for the purpose of facilitating the evaluation of products in one or more product categories, the flow between negative and positive remarks is important to the naturalness of the text. Tracking the connotation context and using the appropriate contiguous and contrasting transitional phrases as described above provides this ability and results in generation of product summaries that sound natural and narrative as if the product summaries were written by a person such as an editor.
In fact, the lack of such transitions can actually make an otherwise natural text seem contradictory. For example, consider the following paragraph that has been generated with proper transitions:
The same paragraph would read very differently if transitions were disregarded:
It should be very clear that in the latter version, the second sentence seems to contradict the first and is likely to be dissonant in the mind of the reader. In the former version, the second seems to supplement and complete the first one.
It should also be noted that whereas various themes have been described in detail above, the editors that set up the product summary generator 10 may add any number of supplemental themes as well. For example, in the product category of digital cameras, editors may add “suggested uses” theme or “suggested accessories” theme, and so forth. Such supplemental themes would preferably be based on secondary attributes and implemented in a manner similar to that described above relative to the other themes. For example, suggested accessories may include a dedicated photo printer, but for low-resolution cameras, this would not be a recommended accessory since such cameras do not have sufficient resolution to make such printers worthwhile.
The compilation of assertions and their modification via merging and insertion of transitional phrases can leave the resulting “sentences” in an interim state where they lack correct punctuation and capitalization, etc. Routines may be called and utilized by the product summary generator 10 near the end of every generation sequence to clean up such formatting. Such routines are already known in the art and need not be described in further detail here. When each theme has been generated, the themes desired which may be predetermined or otherwise selected from the interface to the product summary generator 10 may be called up, labeled, and generated as a list of paragraphs.
Based on the interface of the product summary generator 10, the product summary that has been generated in the manner described above may be displayed and/or printed, etc. In one embodiment, the generated product summary may be a continuous body of text. In another embodiment, the themes of the generated product summary may be set forth in separate paragraphs as shown in the example product summary 120 of
It should now be apparent how the present invention provides a product summary generator which generates product summaries that sound and read naturally so that it can be easily understood by the reader and information presented therein can be used to aid in purchasing decisions. In particular, it should now be evident how the product summary generator such as that shown in
Furthermore, it should also be evident how the present invention provides a novel method of generating product summaries, an example method being schematically illustrated in the flow diagram 200 of
Of course, it should also be noted that flow diagram 200 of
While various embodiments in accordance with the present invention have been shown and described, it is understood that the invention is not limited thereto. The present invention may be changed, modified and further applied by those skilled in the art. Therefore, this invention is not limited to the detail shown and described previously, but also includes all such changes and modifications.
Number | Name | Date | Kind |
---|---|---|---|
5913215 | Rubinstein et al. | Jun 1999 | A |
5963939 | McCann et al. | Oct 1999 | A |
6571236 | Ruppelt | May 2003 | B1 |
20010032077 | Tavor | Oct 2001 | A1 |
20020161664 | Shaya et al. | Oct 2002 | A1 |
20020188556 | Colica et al. | Dec 2002 | A1 |
20030185368 | Bradfield et al. | Oct 2003 | A1 |
20070198355 | Samson et al. | Aug 2007 | A1 |
Number | Date | Country | |
---|---|---|---|
20040225651 A1 | Nov 2004 | US |