This application claims priority to U.S. Provisional Patent Application No. 61/640,906, entitled: “System, Method, and Computer-Readable Storage Medium for Payment of Online Purchases via a Portable Computing Device,” filed May 1, 2012, and U.S. Provisional Patent Application No. 61/670,827, entitled: “System, Method, and Computer-Readable Storage Medium for Identifying a Product,” filed Jul. 12, 2012, the contents of both of which are incorporated by reference in their entireties.
Example embodiments of the present invention generally pertain to the electronic identification of products. More particularly, example embodiments of the present invention pertain to identifying a product through the electronic analysis of aspects of the product by accessing one or more product data resources via an electronic network.
Merchants and manufacturers use product codes to identify their products. Computerized systems use a product's code as a reference so that it may be conveniently tracked and identified. Product codes are also often encoded in barcodes printed on products (or their packaging) so that the products may be quickly identified through use of barcode readers. For example, merchant point-of-sale systems use barcode readers to identify products at check out, thereby allowing sales clerks to quickly tally purchases.
With the development of barcode readers on smartphones, these barcoded product codes have become a tool for consumers as well. A smartphone's barcode reader may be used for several purposes, but one of the most popular uses is to employ the reader with mobile software applications (i.e., “apps”) that can use the barcoded product codes to locate product information. For example, an individual may use his smartphone to scan a product's barcode, and an app may access a service provider to obtain pricing information, reviews, descriptive data, and more associated with the barcode. Although using a smartphone's barcode reader is typically the most convenient way of entering a product code, a user may be able to input a product code in other ways (e.g., via a keyboard, speech recognition, etc.). Smartphone apps are popular because they allow consumers to compare prices, read reviews, etc. from anywhere, including while in a merchant's store. For example, a consumer may use an app to ensure a store has a product for the lowest price.
Accurately identifying a product can be a difficult task for service providers offering such apps. Products are referenced in numerous ways and, thus, a product may be referenced by more than one product code. For example, a product may be referenced by a Universal Product Code (UPC), a European Article Number (EAN), an Amazon Standard Identification Number (ASIN), an International Standard Book Number (ISBN), and more. Merchants may use one or more manufacturer-specified codes, or their own merchant-specified codes such as stock-keeping unit (SKU) codes, to identify their products. Because merchants and manufacturers employ their own systems and methodologies, merchants and manufacturers do not have difficulty tracking their products. For example, a merchant may simply use SKU codes and ignore any other product codes.
However, because merchants and manufacturers operate independently, there is not a standard, universal product-identification system or methodology. As such, it can be difficult for a third-party service provider to correctly identify products. Product codes are designed to be unique, but in practice many products are inadvertently assigned the same code. For example, it is not uncommon for several products to be identified by the same ASIN or ISBN. Because of the duplication of codes, it is difficult (if not at times impossible) to determine which entity has the right to use the product code for its product. This redundancy may not affect an entity within whose own system (e.g., merchant inventory system) a product code may be unique. For example, a product code may identify a shirt offered at Target.com, but may also identify a perfume offered at Amazon.com, neither of whom may be affected by the redundancy. However, third-party services providers that provide consumers with information regarding products offered by multiple entities may have difficulty providing accurate information due to such redundancies and discrepancies.
Additionally, more than 80% of all e-commerce Web sites do not use barcoded product codes with the products they sell. As such, a third-party service provider cannot identify these merchants' products by way of barcoded product codes. That is, if a user employs a smartphone app to scan a product's barcode in order to obtain product information, the third-party service provider cannot use this code to identify the product. Identifying products by other data, such as by product titles, may be highly inaccurate due to similarities in the titles of diverse products. For example, a title may apply to a movie, book, toy, or more.
What is needed is a mechanism by which a product may be accurately identified by a product code regardless of the product being associated with multiple, possibly redundant, product codes. What is also needed is a convenient mechanism that enables a service provider to provide accurate information associated with a product to users, whereby the service provider may be assured that the information provided is for the desired product and not a product with a similar product code.
BRIEF DESCRIPTION OF DRAWINGS
Example embodiments of the present invention pertain to a system, method, and computer-readable storage medium for accurately identifying a product offered by one or more merchants and having multiple product identifiers. Furthermore, example embodiments of the present invention pertain to accurately identifying product data by receiving and using a product identifier to obtain one or more associated forms of data from which the most accurate, associated product data may be identified. The forms of data associated with the product identifier may be received from one or more data sources that may be scored according to the accuracy of their data, and whose score may affect how its data is evaluated.
In order to describe the manner in which the above-recited and other advantages and features of example embodiments of the present invention may be obtained, a more particular description of example embodiments of the present invention briefly described above will be rendered by reference to specific example embodiments thereof that are illustrated in the appended drawings. Understanding that these drawings depict only typical example embodiments of the present invention and are not therefore to be considered limiting of its scope, example embodiments of the present invention will be described and explained with additional specificity and detail through the use of the accompanying drawings in which:
FIG. 1 depicts a component architecture of a product-identification network including a product-data-identification system according to an example embodiment;
FIG. 2 depicts an architecture overview of a product-data-identification system according to an example embodiment; and
FIG. 3A and FIG. 3B depict a flowchart of various steps in a method of product identification via a product-data-identification system according to an example embodiment.
Various example embodiments of the present invention are discussed in detail below with reference to the accompanying drawings, in which example embodiments of the present invention are shown. While specific implementations are discussed, this is done for illustration purposes only. A person of ordinary skill in the relevant art will recognize that other components and configurations may be used without departing from the spirit and scope of the present invention. Like numbers refer to like elements throughout.
- Product-Identification Network
Example embodiments of the present invention are described herein mainly in terms of an individual accessing the Internet via a portable computing device, such as a smartphone, a personal digital assistant (PDA), a tablet computer, etc., or a standard computing device, such as a desktop computer, a laptop computer, etc. This is not to be construed as limiting as the present invention may be applicable to any electronic network accessible to a user via a network-appropriate device.
FIG. 1 depicts a component architecture of a product-identification network 100 including product-data-identification system 104 (PDIS) according to an example embodiment. The components of product-identification network 100 may interact with one another via one or more networks 102, which may include any applicable electronic network, such as the Internet or a mobile network. Components are herein referenced as “systems,” “mechanisms,” and “modules.” This is not to be construed as limiting and it is to be understood that each component may include the necessary hardware, which may operate alone or under direction of appropriate firmware and/or software to enable the processing, storing, communicating and/or receiving of data. For example, a component may include one or more computer processors, computer servers, data stores, electronic components, storage mediums, memory, etc. Although a limited number of each component is depicted, this is for illustrative purposes only and is not to be construed as limiting, as product-identification network 100 may include any number of (i.e., one or more) instances of each component. For example, product-identification network 100 may include any number of PDISes, merchant systems, data-aggregator systems, client systems, etc. Furthermore, although each component is depicted and described herein as separate, this is not to be construed as limiting, and components may be combined per implementation.
PDIS 104 may be a system that enables the management, storage, and control of data provided by individuals, merchants, and data aggregators to enable the identification of one or more products by way of a product identifier. PDIS 104 may include one or more mechanisms that enable a user to employ a portable computing device to obtain data regarding a product referenced by a product identifier. In one example embodiment, PDIS 104 may enable a user to obtain data regarding a product referenced by a product identifier via a desktop computer, a laptop computer, or another standard personal computing device.
Product-identification network 100 may include one or more product-data systems. A product-data system may be any system that may serve as a source of data regarding products associated with product identifiers. In one example embodiment, a product-data system may be an online-merchant system, a bricks-and-mortar merchant system, or a data-aggregator system. For example, as depicted for illustrative purposes in FIG. 1, product-identification network 100 may include online-merchant system 110A, online-merchant system 110B, bricks-and-mortar merchant system 112A, and bricks-and-mortar merchant system 112B. Product-identification network 100 may include one or more data-aggregator systems (e.g., data-aggregator system 114A and data-aggregator system 114B).
An online merchant may be a retailer, reseller, vendor, manufacturer, individual, etc. that offers goods or services (herein individually or collectively referred to as “products”) to consumers via network 102 (e.g., the Internet), and an online-merchant system may be the system that enables the online merchant to do so. For example, an online-merchant system may be a system maintained by Amazon, Overstock, Barnes & Nobles, Buy.com, Best Buy, Wal-Mart, Target, eBay, etc. An online-merchant system may include a Web site that an individual may access via a Web browser or via an app to search for and purchase a desired product. The individual may purchase the product by providing payment information and, if necessary, fulfillment information to the online-merchant system. Product-identification network 100 may include one or more bricks-and-mortar merchant systems. While a bricks-and-mortar merchant may have an online presence, it may not offer products for sale via network 102 (e.g., the Internet). A data-aggregator system may be a system managed by a service provider that collects data from the Internet and other sources for its own purposes and/or in order to provide that data to other parties. For example, a data aggregator may compile data related to products available for purchase via the Internet.
A user may interact with one or more components of product-identification network 100 via client system 106. Client system 106 may include hardware, which may operate alone or under direction of appropriate software and/or firmware configured to enable the viewing and the inputting of information by the user. For example, client system 106 may be a portable computing device, such as a smartphone, a tablet computer, a mobile phone, a PDA, a portable media player (e.g., an iPod), a multi-purpose mobile device (e.g., an iPod Touch), etc. In other example embodiments, client system 106 may be a desktop computer, a laptop computer, or another standard personal computing device. Client system 106 may include product-research app 108, which may be a mechanism by which the user interacts with PDIS 104 to search for product information. In one example embodiment, product-research app 108 is an app loaded onto a portable computing device (client system 106). For example, product-research app 108 may be an app installed on an iPhone, an Android phone, a Blackberry, an iPad, an Android-powered tablet (e.g. a Kindle Fire, a Nook Tablet, a Samsung Galaxy, a Motorola Xoom, etc.), etc. In another example embodiment, product-research app 108 may be another type of application, such as a standard personal computer software application, a cloud service application, etc. In one example embodiment, a user may use client system 106 and/or product-research app 108 to provide PDIS 104 with product data and client system 106 may act as a source of product data.
- Product-Data-Identification System (PDIS)
In one example embodiment, the functionality of product-research app 108 described herein may be implemented and/or work in conjunction with an app that offers one or more other functionalities or offer additional functionalities than those described herein. For example, product-research app 108 may enable a user to conduct online purchases, conduct in-store purchases, rate and/or review products, etc. PDIS 104 and product-research app 108 may function in conjunction with, or be designed to include, the processes and components of those described in U.S. Provisional Patent Application No. 61/640,906, entitled: “System, Method, and Computer-Readable Storage Medium for Payment of Online Purchases via a Portable Computing Device,” filed May 1, 2012, the content of which is hereby incorporated herein by reference in its entirety.
FIG. 2 depicts an architecture overview of PDIS 104 according to an example embodiment. PDIS 104 may enable a user to obtain product data via client system 106 by way of product-research app 108 and/or another access medium. A user may enter a product identifier located on the product or its packaging via product-research app 108, and product-research app 108 may communicate the entered product identifier to PDIS 104. A product identifier may be a UPC, an EAN, an ASIN, an ISBN, an SKU, etc. In one example embodiment, a user may employ product-research app 108 to instruct client system 106 to electronically read a barcode, a matrix code (e.g., a Quick Response [QR] code), etc. or other encoded representation of a product identifier and, by doing so, enter the product identifier. Alternatively, or additionally, a user may manually enter the product identifier, such as by typing or speaking the product identifier via an appropriate mechanism of client system 106 (e.g., a touchscreen keyboard, a physical keyboard, via speech recognition, etc.).
Once PDIS 104 has received an entered product identifier, it may access product data 202 associated with the product identifier, which PDIS 104 may maintain in data store 200 and/or which PDIS 104 may access from a product-data source. Product data 202 may include, for example, product-identifier data 204, image data 206, title data 208, attribute data 210, etc. Product-identifier data may include one or more product identifiers, including the received product identifier itself. Image data may include one or more images (e.g., pictures) of a product. It may also refer to related data, such as information regarding pixels, coloration, etc. Title data may include data relevant to the name of a product. Attribute data may include information regarding characteristics of a product, such as color, size, weight, features, specifications, descriptive information, product condition, price, etc.
In addition to or in lieu of product data 202, PDIS 104 may maintain user data 224 (in one embodiment, including user-feedback data 212), merchant data 214, and/or trust-score data 226. Data maintained by PDIS 104 may be encrypted, secured, etc. in order to prevent inappropriate access and fraud. One or more elements of product data 202, merchant data 214, user data 224, and/or trust-score data 226 may be obtained during a product-identification search, an example embodiment of which is described in relation to FIG. 3A and FIG. 3B. To enable convenient use of data obtained for a received product identifier, any product data, merchant data, and/or user data relevant to a product identifier received by PDIS 104 may be stored in reference to a product identifier and/or another identifier (e.g., a PDIS-specified identifier). Upon receiving the same product identifier in a subsequent search, product-identification mechanism 218 may reference the stored data instead of, or in addition, accessing product-data sources.
PDIS 104 may maintain multiple data elements for the same product and may reference a product's data by one or more existing product identifiers or by a generated PDIS-specified identifier. For example, PDIS 104 may maintain multiple product identifiers for the same product and each of these product identifiers may be referenced by an existing product identifier or PDIS-specified identifier.
PDIS 104 may maintain user data 224, and a user identifier may be used to reference the data of a particular user. For example, a user identifier may be a user's email address, a username, an identification code, a tracking cookie, a telephone number, other alphanumeric data, etc. A user identifier may reference a user's user account, which may contain data specific to an individual user, such as credential information (e.g., username, password, passcode, biometric information, etc.), contact information (mailing address, email address, phone number, etc.), demographic data (e.g., sex, age, etc.), user preferences (e.g., search preferences, privacy preferences, etc.), etc. User data 224 may include electronic-wallet information, such as loyalty and/or reward card data (e.g., frequent shopper card numbers, club membership card numbers, etc.), financial account data (e.g., credit card numbers, security codes, expiration dates, billing addresses, etc.), preferred merchants, preferred fulfillment methods (e.g., shipping addresses, shipping preferences, digital delivery preferences, etc.), etc. Financial data and fulfillment data may enable a user to purchase a product identified via PDIS 104. Additionally, or alternatively, financial data may be used to pay service fees to the PDIS service provider.
User data 224 may include user-feedback data 212, which may include information provided by users employing PDIS 104. When PDIS 104 provides product data to product-research app 108, a user may provide feedback regarding whether the information provided is accurate for the product identifier the user provided. Additionally, when a user provides feedback, the user may provide product data for a product (e.g., product-identifier data, image data, title data, attribute data, etc.), thereby serving as a product-data source. This user-provided product data may be considered user-feedback data 212 and/or product data 204. Further detail is provided below in relation to FIG. 3B and FIG. 3A.
PDIS 104 may include data-retrieval mechanism 216 that may enable PDIS 104 to access data associated with a product identifier received from a user. Data-retrieval mechanism 216 may obtain product data from product-data sources via one or more channels, such as through an application programming interface (API) configured to interact with a product-data system, by crawling Web sites, by monitoring a data feed, via Internet screen scraping, through submissions from users and/or product-data service providers, etc. Data-retrieval mechanism 216 may access product data upon PDIS 104 receiving a user's product-identification search query (e.g., in real time), on an ongoing basis (e.g., on a set schedule), per PDIS personnel initiation, etc. Data-retrieval mechanism 216 may access data maintained by PDIS 104 in data store 200. The particular channel employed may vary depending upon one or more factors, such as whether PDIS 104 is attempting to conduct a real-time search or not. In one example embodiment, when accessing product data associated with a product identifier, data-retrieval mechanism 216 may access some elements of product data from data store 200 and other elements from product-data sources. In another example embodiment, data-retrieval mechanism 216 may access data maintained by PDIS 104 before attempting to access data maintained by one or more product-data sources. If sufficient product data corresponding to the product identifier is located within PDIS 104, it may not attempt to access product-data sources.
Product-identification mechanism 218 may enable PDIS 104 to identify a product associated with a received product identifier by analyzing sets of data elements provided by one or more sources and/or maintained in data store 200. As described in detail in relation to FIG. 3A and FIG. 3B, for example, product-identification mechanism 218 may analyze title data, image data, attribute data, product-identifier data, user-location data, merchant data (including merchant-location data), user-feedback data, etc. in order to identify the product associated with a received product identifier. Product-identification mechanism 218 may identify agreements and/or disagreements within the data, and may analyze the relevancy and/or reliability of the data source. For example, product-identification mechanism 218 may compare the product data obtained from multiple merchant systems. When data elements agree, product-identification mechanism 218 may record this. The more often an element of product data agrees across multiple sources, the more likely it pertains to the received product identifier. Product-identification mechanism 218 may evaluate product data, user-feedback data, and/or merchant data maintained via data store 200 instead of, or in addition to, evaluating live data accessed from product-data sources. Product-identification mechanism 218 may indicate which product data pertains to a received product identifier based upon an identification score indicative of agreements and/or disagreements between the evaluated product data. A high identification score may indicate which product data corresponds to the received product identifier and, thereby identifies the product.
Product-identification mechanism 218 may employ merchant data as a factor when determining the identity of a product. Merchant data may include data for an online merchant and/or a bricks-and-mortar merchant. Merchant data may include data specific to a particular merchant and/or merchant system, such as merchant name, merchant-location data, merchant type, product type(s), descriptive data, Web site information, etc. Merchant data may include a merchant identifier that may be used to reference a particular merchant's data within PDIS 104, including its trust score. Merchant data may be submitted by a merchant, acquired by PDIS personnel, gathered via one or more automated procedures (e.g., during a product-identification search, Web crawling, etc.), etc.
Merchant-location data may include an address, coordinates, regional data, and/or other location-related data. Product-identification mechanism 218 may use the user's location data to assist in identifying a product by cross-referencing the user's location with merchant-location data. For example, if PDIS 104 receives a product identifier associated with both a bar of soap and a DVD, product-identification mechanism 218 may use merchant-location data to determine that the user is located in an electronics store, and therefore product-identification mechanism 218 may weigh the DVD product data far greater than the soap product data.
PDIS 104 may include trust-scoring mechanism 220. Trust-scoring mechanism 220 may enable PDIS 104 to assign a trust score to one or more product-data sources with which PDIS 104 has interacted. PDIS 104 may employ a trust-scoring process in order to enhance its evaluations of product data. For example, a trust score may be assigned to an online-merchant system, a bricks-and-mortar merchant system, a data-aggregator system, a client system 106, a user, etc. PDIS 104 may record the outcome each time it evaluates product data obtained from a source to determine whether the source's product data agrees or disagrees with product data obtained from other sources. Additionally, or alternatively, trust-scoring mechanism 220 may increase or decrease a product-data source's trust score based upon user feedback. PDIS 104 may record which elements of product data that a user has indicated as accurate or inaccurate and may determine the source of this product data. If a user has indicated that the product was properly identified, the product-data source may receive a positive increase to its trust scores. Conversely, if the user has indicated that the product was not properly identified, the source of the inaccurate data may receive a decrease in its trust score.
Trust-scoring mechanism 220 may assign a trust score to a user based upon their user feedback. A user may be identified by logging into the system (e.g., via product-research app 108), via tracking cookies, via a phone number, via an email address, an identification code associated with client system 106, etc. In one scenario, a user may be tracked anonymously via a tracking code that is associated only with the user's feedback data. Trust-scoring mechanism 220 may evaluate a user's feedback data in a fashion similar to the manner in which product-identification mechanism 218 evaluates product data. Trust-scoring mechanism 220 may identify agreements and/or disagreements between feedback received from multiple users, including product data provided by users. If a user's feedback agrees with the majority of other users, the user's trust score may be adjusted in a positive fashion because this may indicate the user is providing accurate feedback. Conversely, if the user's feedback disagrees with the majority of other user's feedback, the user's trust score may be adjusted negatively. Feedback from users with negative trust scores may be devalued or disregarded, while feedback from users with positive trust scores may be given greater weight and/or priority. Users may receive an incentive for providing feedback. In order to prevent abuse, incentives may only be awarded for accurate feedback. Consistently inaccurate feedback may indicate abuse and an abusing user may be prohibited from providing feedback, have his feedback disregarded, and/or be blocked from employing PDIS 104 and/or product-research app 108.
Data store 200 may include trust-score data 226, which may include trust-score data associated with product-data sources (e.g., product data systems and/or users). This data may be referenced by an appropriate identifier, such as a merchant identifier, a data-aggregator identifier, a user identifier, etc.
- Product-Identification Search
User-interface mechanism 222 may enable PDIS 104 and client system 106 to interact with one another. User-interface mechanism 222 may enable this interaction via product-research app 108, via a Web site, via social networking services, etc. For example, user-interface mechanism 222 may enable a user to create a user account, establish or modify one or more preferences, add, edit, and/or remove user data 222, provide user feedback, provide product data, etc. In one embodiment, a user account may include electronic-wallet data and a user may create, update, and/or delete it via user-interface mechanism 222. User-interface mechanism 222 may enable PDIS 104 to authenticate users. For example, user-interface mechanism 222 may analyze credentials provided by a user in order to allow the user to access the appropriate user account. Additionally, user-interface mechanism 222 may receive product-identification search queries from client system 106, receive entered product identifiers, user-location data, enable the communication of search results, etc. In general, user-interface mechanism 222 may enable a user to perform any user-driven procedure described herein.
FIG. 3A and FIG. 3B depict a flowchart of various steps in a method of product identification via PDIS 104 according to an example embodiment. FIG. 3A and FIG. 3B are described in terms of product-research app 108 interacting with PDIS 104. This is not to be construed as limiting and it should be understood that other implementations are possible. For example, client system 106 may interact with PDIS 104 via a Web browser, a Web browser plug-in, a software application, etc. Furthermore, although the description of FIG. 3A and FIG. 3B is described mainly in terms of PDIS 104 interacting with merchant systems, this is for illustrative purposes only and this is not to be construed as limiting. Additionally, or alternatively, PDIS 104 may interact with one or more data-aggregator system, client systems, etc. It is to be understood that PDIS 104 may interact with any suitable data source in a manner similar to which it interacts with a merchant system.
PDIS 104 may receive, from client system 106, a product identifier entered into product-research app 108, as well as user-location data (step 302). Product-research app 108 may be an app installed on portable computing device, such as a smartphone or tablet computer. The user may be located anywhere with access to network 102. For example, the user may enter a product identifier while at a bricks-and-mortar merchant location. A user may enter a product identifier by using product-research app 108 and/or client system 106 to scan a product's barcode or a matrix code, by manually entering one or product identifiers, etc. For example, a user may employ product-research app 108 to scan a barcode from a product, enabling product-research app 108 to obtain a product identifier (e.g., a product code) included in the barcode. Product-research app 108 may convert the barcoded information into a usable format. For example, product-research app 108 may convert a barcode into a binary stream, an eight-bit signal, etc. In one example embodiment, coded data may be communicated to PDIS 104 for decoding and, therefore, PDIS 104, product-research app 108, or both, may decode an entered data). Although the method described herein is explained in terms of using a product identifier as a key reference for identifying a product, this is not to be construed as limiting and it is to be understood that other data may be received and used as a key reference instead of, or in addition, a product identifier. For example, a user may enter a keyword (e.g., a product title) or more than one type of data may be used as a reference, such as one or more keywords (e.g., product name, color, etc.), a keyword and a product identifier, etc.
User-location data may be obtained by product-research app 108 and/or client system 106 via one or more known locating technologies, such as via Global Positioning System (GPS) technology, triangulation, Wi-Fi tracking, etc.
Once PDIS 104 has received the entered product identifier, PDIS 104 may access product data corresponding to the product identifier. Product data may include sets of data elements and may originate from one or more sources. The product data accessed may include one or more of title data, image data, attribute data, product-identifier data, etc. PDIS 104 may access product data it has stored and/or may access product data in real-time (or near to real-time) from one or more sources. In one example embodiment, PDIS 104 may determine whether it has stored sufficient product data corresponding to the product identifier (step 304). If so, PDIS 104 may access the stored product data associated with the entered product identifier and, in one example embodiment, data pertaining to the source of the product data (e.g., a merchant system) (step 308). Source data may include a source's name (e.g., a merchant's name), source-location data (e.g., merchant-location data), source type (e.g., source type, merchant type, etc.), information regarding associated products (e.g., products offered), etc. If PDIS 104 does not have sufficient corresponding stored product data, it may contact one or more product-data sources (step 306) to access product data associated with the entered product identifier and, in one example embodiment, to obtain source data regarding each source contacted (step 308). In one example embodiment, PDIS 104 may access both stored data and data maintained at one or more sources for evaluation. For example, PDIS 104 may access title data maintained by PDIS 104 and may access image data, attribute data, and product-identifier data maintained by one or more merchant systems.
PDIS 104 may compare one or more elements of the accessed product data in order to identify agreements and/or disagreements between the data obtained from each source. As product data stored in PDIS 104 may have originated from a product-data source, all product data may be evaluated in the same manner, regardless of whether it was accessed from a product-data source or within PDIS 104 at the time of product identification. It is to be understood that the order in which data is analyzed may vary per implementation and that the order described herein is for example purposes and not to be construed as limiting. Additionally, the particular data elements described herein are provided for illustrative purposes and are not to be construed as limiting. Different data elements may be employed or omitted as may be determined per implementation.
PDIS 104 may evaluate title data each source has associated with the entered product identifier in order to identify agreements and/or disagreements (step 310). For example, three sources may associate a product identifier with the title “Pampers Swaddlers Diapers,” while four sources may associate it with the title “Milkbone Dog Biscuits.” In a similar fashion, PDIS 104 may identify agreements and/or disagreements between image data (step 312), attribute data (step 314), and/or product-identifier data (step 316). In regard to determining image data agreements and/or disagreements, in one example embodiment, PDIS 104 may employ computer vision technology to analyze and compare received images. Attribute data may pertain to hundreds of product attributes, such as color size, weight, features, etc. Each of these attributes may be analyzed in order to identify agreements and/or disagreements. Although PDIS 104 may already have the entered product identifier received from product-research app 108, the entered product identifier may be associated with other product identifiers. For example, a scanned UPC may be associated with an ASIN, ISBN, SKU, etc. PDIS 104 may employ the additional product identifiers to assist with product identification.
Once PDIS 104 has identified agreements and/or disagreements within the product data associated with the entered product identifier, it may adjust the value of an agreement or disagreement per the trust score of one or more product-data source(s) (step 318). A source with a higher trust score may be considered to provide more accurate data and, therefore, PDIS 104 may adjust the value of its associated data agreements and/or disagreements significantly in its analysis. Conversely, PDIS 104 may disregard or less significantly adjust agreements and/or disagreements for data from a source with a lower trust score.
For example, PDIS 104 may access title data associated with a product identifier from Amazon.com, Buy.com. Target.com, and Half.com. The title data from Amazon.com may indicate that the title for a product associated with the product identifier includes the phrase “Eat, Pray, Love,” while the title data from Buy.com, Target.com, and Half.com may include the phrase “Halo 3.” PDIS 104 may recognize that data from three of the four sources agree and/or that the data from one source disagrees. PDIS 104 may evaluate the agreements and/or disagreements in regard to a trust score associated with each of Amazon.com, Buy.com. Target.com, and Half.com. Amazon.com may be considered a highly reliable source and therefore receive a high trust score. Buy.com, Target.com, and Half.com may be considered less reliable sources and may have lower trust scores. However, the total of the agreeing trust scores may outweigh the total trust score of the disagreeing source.
In one example embodiment, PDIS 104 may adjust an agreement and/or disagreement per user-location data and source data (step 320). PDIS 104 may use the user-location data to determine whether one or more elements of received product data are relevant to the user's location by determining whether the user-location data corresponds with merchant-location data. If a corresponding location is identified, PDIS 104 may analyze other elements of merchant data to determine a merchant's relevancy to the entered product identifier and adjust the associated product data accordingly. For example, if PDIS 104 determines that the user-location data indicates that the user is located in a grocery store, PDIS 104 may increase the value of product data from obtained from food-related merchant systems so that this data carries more weight than the data provided by other sources.
Once PDIS 104 has analyzed identified data agreements and/or disagreements in regard to trust scores and/or user-location data, it may generate an identification score for the data elements based upon the agreements and/or disagreements (step 322). Each data element may be assigned an identification score, or the entire set of data elements from a source may be assigned an identification score. The data associated with the most significant identification scores may be considered to be associated with the received product identifier and, in turn, the product may be considered to be identified. PDIS 104 may communicate this product data for the identified product to product-research app 108 so that product-research app 108 may present it to the user (step 324).
In addition to determining accurate product-data elements, PDIS 104 may analyze agreeing data elements to determine the most accurate or clearest product data to use. For example, by creating a histogram of various words, phrases, etc. included in accessed title data, PDIS 104 may filter the data to determine the most accurate and/or useful title (e.g., “Halo 3,” “Microsoft Halo 3,” “Halo 3 Xbox 360,” and “Halo 3 by Activision/Microsoft” may be reduced to “Halo 3”).
In one example embodiment, PDIS 104 may instruct product-research app 108 to request the user provide feedback regarding the accuracy of the provided product data (step 326). User feedback may indicate the accuracy of one or more elements of product data determined to be associated with the entered product identifier. Product-research app 108 may be configured to enable users to provide feedback to PDIS 104, such as by prompting a user to indicate whether the correct product was identified (e.g., “Is this the product? Select Yes or No”), by prompting the user to rate the product data (e.g., a scale from 1 to 5), etc. If one or more data elements provided were inaccurate, a user may be enabled to provide correct product data. In one example embodiment, user feedback may include one or more data elements with which PDIS 104 may use when evaluating agreements and/or disagreements. For example, a user may submit an image (e.g., captured via client system 106), may indicate an accurate image (e.g., select from a displayed list), provide an accurate title, etc. When subsequently determining agreements and/or disagreements for the associated product identifier, PDIS 104 may access the product data provided by the user, thereby using the user as a product-data source. If PDIS 104 determines that user feedback was received (step 328), PDIS 104 may store the user feedback (including any user-provided product data) (step 330).
PDIS 104 based upon whether received user feedback indicates that the product data is accurate (step 332). Additionally, or alternatively, PDIS 104 may score one or more of the sources that were accessed in the product-identification search based upon the number of agreements and/or disagreements associated with the product data it provided.
If PDIS 104 determines that the product identification was inaccurate per user feedback (step 334), it may reevaluate the accessed data based upon the feedback (e.g., reattempt to identify agreements and/or disagreements, evaluate user-location data, reevaluate trust scoring, etc.) (step 336). For example, if an image provided was not accurate, PDIS 104 may reattempt to identify the accurate image. As describe above, the extent to which PDIS 104 reevaluates the provided product data (or if it reevaluates it at all) may be based upon the user's trust score.
- Merchant-Specified Product Identifier Identification
If user feedback indicates that the data was accurate, PDIS 104 may store any product data that had not been previously stored (or may update previously stored data) for subsequent product-identification searches (step 338). In one example embodiment, if user feedback was not received, PDIS 104 may store or update product data based upon the assumption that it was accurate.
In one scenario, PDIS 104 may determine merchant-specified product identifiers (e.g., SKUs) via the aforementioned procedure. A merchant may not list manufacturer-specified product identifiers (e.g., UPCs, EANs, etc.) for products on its standard or mobile Web sites, but may instead list its own merchant-specified product identifiers. If PDIS 104 identifies a merchant-specified identifier associated with a manufacturer-specified product identifier while identifying a product, it may record the merchant-specified identifier. The merchant-specified product identifier may be stored in association with other product data, such as the manufacturer-specified product identifier (e.g., a UPC, EAN, etc.), to enhance subsequent identification by PDIS 104. By being able to match a merchant-specified product identifier with a more generally used manufacturer-specified product identifier (e.g., UPC, etc.), PDIS 104 may more readily identify a product.
According to example embodiments of the present invention, components of product-identification network 100 including PDIS 104, client system 106, and merchant systems, and data-aggregator systems may be implemented by various means. Means for implementing the systems, mechanisms and modules may include hardware, alone or under direction of one or more computer program code instructions, program instructions or executable computer-readable program code instructions from a computer-readable storage medium.
In one example, one or more apparatuses may be provided that are configured to function as or otherwise implement the systems, mechanisms and modules shown and described herein. Generally, an apparatus of example embodiments of the present invention may comprise, include or be embodied in one or more fixed or portable computing devices, a number of examples of which are provided above. The apparatus may include one or more of each of a number of components such as, for example, a processor connected to memory.
The processor is generally any piece of hardware that is capable of processing information such as, for example, data, computer-readable program code, instructions, etc. (generally “computer programs,” e.g., software, firmware, etc.), and/or other suitable electronic information. More particularly, for example, the processor may be configured to execute computer programs, which may be stored onboard the processor or otherwise stored in the memory. The processor may be a number of processors, a multi-processor core or some other type of processor, depending on the particular implementation. In another example, the processor may be embodied as or otherwise include one or more application-specified integrated circuits (ASICs), field-programmable gate arrays (FPGAs), etc. Thus, although the processor may be capable of executing a computer program to perform one or more functions, the processor of various examples may be capable of performing one or more functions without the aid of a computer program.
The memory is generally any piece of hardware that is capable of storing information such as, for example, data, computer programs and/or other suitable information. The memory may include volatile memory and/or non-volatile memory, and may be fixed or removable. Examples of suitable memory include random access memory (RAM), read-only memory (ROM), a hard drive, a flash memory, a thumb drive, an optical disk, a magnetic tape or some combination of the above. In various instances, the memory may be referred to as a computer-readable storage medium which, as a non-transitory device capable of storing information, may be distinguishable from computer-readable transmission media such as electronic transitory signals capable of carrying information from one location to another. Computer-readable medium as described herein may generally refer to a computer-readable storage medium or computer-readable transmission medium.
In addition to the memory, the processor may be connected to one or more interfaces for displaying, transmitting and/or receiving information. The interfaces may include a communications interface and/or one or more user interfaces. The communications interface may be configured to transmit and/or receive information, such as to and/or from other apparatus(es), network(s), etc. The communications interface may be configured to transmit and/or receive information by physical (wireline) and/or wireless communications links.
The user interfaces may include a display and/or one or more user input interfaces. The display may be configured to present or otherwise display information to a user, suitable examples of which include a liquid crystal display (LCD), light-emitting diode display (LED), plasma display panel (PDP), etc. The user input interfaces may be wireline or wireless, and may be configured to receive information from a user into the apparatus, such as for processing, storage and/or display. Suitable examples of user input interfaces include a microphone, image or video capture device, keyboard or keypad, joystick, touch-sensitive surface (separate from or integrated into a touchscreen), etc. The user interfaces may further include one or more interfaces for communicating with peripherals such as printers, scanners, etc.
As indicated above, program code instructions may be stored in memory, and executed by a processor, to implement functions of the systems, mechanisms and modules described herein. As will be appreciated, any suitable program code instructions may be loaded onto a computer or other programmable apparatus from a computer-readable storage medium to produce a particular machine, such that the particular machine becomes a means for implementing the functions specified herein. These program code instructions may be stored in a computer-readable storage medium that can direct a computer, a processor or other programmable apparatus to function in a particular manner to thereby generate a particular machine or particular article of manufacture. The instructions stored in the computer-readable storage medium may produce an article of manufacture, where the article of manufacture becomes a means for implementing functions described herein. The program code instructions may be retrieved from a computer-readable storage medium and loaded into a computer, processor or other programmable apparatus to configure the computer, processor or other programmable apparatus to execute operations to be performed on or by the computer, processor or other programmable apparatus.
Execution of the program code instructions may produce a computer-implemented process or method such that the instructions executed by the computer, processor or other programmable apparatus provide operations for implementing functions described herein. Execution of instructions by a processor, or storage of instructions in a computer-readable storage medium, supports combinations of operations for performing the specified functions. It will also be understood that one or more functions, and combinations of functions, may be implemented by special purpose hardware-based computer systems and/or processors which perform the specified functions, or combinations of special purpose hardware and program code instructions.
A system, method, and computer-readable storage medium for enabling an individual to use a product-search mechanism to obtain accurate identification regarding a product by entering a product identifier into a computing device has been illustrated. It will be appreciated by those skilled in the art that the system, method, and computer-readable storage medium of example embodiments of the present invention may be used to employ a computing device to locate accurate product information based upon a product identifier via an identification system. It will thus be appreciated by those skilled in the art that other variations of example embodiments of the present invention disclosed herein may be possible without departing from the scope of the present invention.
These and other aspects of example embodiments of the present invention will become apparent to those skilled in the art by a review of the preceding detailed description. Although a number of salient features of example embodiments of the present invention have been described above, the present invention may be capable of other embodiments and of being practiced and carried out in various ways that would be apparent to one of ordinary skill in the art after reading the disclosed example embodiments of the present invention. Therefore, the description should not be considered to be exclusive of these other embodiments. Moreover, although the foregoing descriptions and the associated drawings describe example embodiments in the context of certain example combinations of elements and/or functions, it should be appreciated that different combinations of elements and/or functions may be provided by alternative embodiments without departing from the scope of the appended claims. For example, different combinations of elements and/or functions than those explicitly described above are also contemplated as may be set forth in some of the appended claims. Also, it is to be understood that the phraseology and terminology employed herein are for the purposes of description and should not be regarded as limiting.