Identifying geographically proximal computing devices
By receiving item descriptions and identifying attributes in the database, calculating online presence indicators, identifying geographical areas and obtaining additional data, the problem of inefficiency in positioning rare or unique items in online market applications is solved, and more efficient search and market demand identification is achieved .
Patent Information
- Application Number
- CN201980024227.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2018-04-05
- Filing Date
- 2019-03-26
- Publication Date
- 2025-02-11
- Estimated Expiration
- 2039-08-07
AI Technical Summary
Existing online marketplace applications are inefficient in positioning and searching for rare or unique items, resulting in a waste of time and computing resources by potential buyers and difficulty identifying market demand by sellers.
By receiving item descriptions in the database, identifying item attributes, and calculating online presence metrics based on these attributes. If the metric is below the threshold, the server identifies the geographic area, sends a query to the computing device within the area to obtain additional data for the item and update the database.
Improves the efficiency of locating rare or unique items in online databases, reduces waste of search time and computing resources, and helps sellers identify market demand more accurately.
Smart Images

Figure CN111989667B_ABST
Abstract
Description
[0001] Priority claim
[0002] This application claims the benefit of priority to U.S. Application Serial No. 15 / 945,967, filed on April 5, 2018, the entire contents of which are incorporated herein by reference. Technical Field
[0003] Embodiments of the present disclosure generally relate to data systems. More specifically, the present disclosure relates to item identification based on records external to the system. Background Art
[0004] Records of items for sale in online market applications are usually stored in a database system. Some rare or unique items are not easily available in online market applications because they may be available in a limited market (e.g., only in Japan). In other cases, unique items cannot be located in the database system because there is no record of the unique item itself.
[0005] Existing techniques for searching for unique items that are not readily available in database systems include manually searching for the item in a physical store, or requesting guidance or recommendations from someone who knows about the unique item. Thus, searching for unique or difficult-to-obtain items is performed offline (i.e., calling a retailer).
[0006] These prior art techniques lead to inefficiencies in the use of current online marketplace applications. Sometimes rare or unique items must be searched for repeatedly, or end up being browsed for hours by a potential purchaser until the item is found, requiring the potential searcher to spend valuable time and wasting precious computing resources in the process. In fact, even bringing manual methods of searching for items online or bringing requests from experts into online forums has inherent limitations because there may be a mismatch between how a user describes the item being sought and how an online store or expert describes a rare item.
[0007] Furthermore, sellers who wish to provide online listings for rare and unique items may have difficulty discerning whether the rare or unique item, if listed, is actually desired by buyers. The result is the creation of many "graveyard" listings that continue to occupy storage without serving any consumers. Even though a seller may be very close to or own a rare item that is currently of interest in the market, the seller may not know that interest exists until he or she creates a listing to test market demand.
[0008] The present disclosure seeks to address these problems by providing improved techniques and technical benefits. BRIEF DESCRIPTION OF THE DRAWINGS
[0009] The various figures in the drawings depict only example embodiments of the present disclosure and are not to be considered limiting of its scope.
[0010] Figure 1 is a network diagram depicting a client-server system in which one example implementation may be deployed.
[0011] Figure 2 is a block diagram illustrating a marketplace application provided as part of a networked system in one example implementation.
[0012] Figure 3 is a block diagram illustrating an example implementation of an outsourced procurement engine.
[0013] Figure 4 is a flow chart illustrating a method for operating an outsourced procurement engine according to an example implementation.
[0014] Figure 5 is a flow chart illustrating a method for operating an outsourced procurement engine according to another example implementation.
[0015] Figure 6 is a flow chart illustrating a method for operating an outsourced procurement engine according to another example implementation.
[0016] Figure 7 is a block diagram illustrating example operations of an outsourced procurement engine according to an example implementation.
[0017] Figure 8 is a block diagram illustrating example operations of an outsourced procurement engine according to another example implementation.
[0018] Fig. 9 is a block diagram illustrating the architecture of software that may be installed on any one or more of the above-described devices.
[0019] Fig.10 A diagrammatic representation of a machine in the form of a computer system according to an example embodiment is shown within which a set of instructions may be executed, for causing the machine to perform any one or more of the methodologies discussed herein.
[0020] The headings provided herein are for convenience only and do not necessarily affect the scope or meaning of the terms used. DETAILED DESCRIPTION
[0021] The following description includes systems, methods, techniques, instruction sequences, and computing machine program products that embody illustrative embodiments of the present disclosure. In the following description, for purposes of explanation, numerous specific details are set forth to provide an understanding of various embodiments of the present subject matter.
[0022] Databases can store attributes of articles with unique identifiers that identify articles. However, some databases may be incomplete due to missing information or lack of entries related to articles. Articles can be physical products (e.g., shoes) or intangible products (e.g., music or video files). For example, an online database may not include entries related to articles found in a loft because the article is no longer for sale or the article does not appear in any online database of any online retailer. Therefore, due to potential missing information, inaccurate information, or unavailable information, there are some difficulties in locating such articles in an online database. The article may not exist or be listed in any online database. The present application seeks to solve this problem (e.g., missing or unavailable information of articles in a database) by providing a system, which is used to receive a description of an article, identify attributes related to the article, identify a client device capable of retrieving information related to the article based on the attributes of the article, send a query to the identified client device, request information to the identified client device, and update a database with missing information. Attributes can include the geographic origin or origin of the article.
[0023] In various example embodiments, a server receives a description of an item from a first computing device. The server determines an attribute of the item based on the description of the item. An online presence indicator is calculated based on the identified attribute of the item. In response to at least one of the item not being listed in a database and the online presence indicator exceeding a low online presence indicator threshold, the server identifies a geographic area based on the attribute of the item. The server identifies a second computing device located in the geographic area and generates a first query to the second computing device. The server receives additional item data from the second computing device based on a physical presence of the item in the geographic area. The additional item data includes an indication of a physical presence of the item at the geographic area. The server updates the attribute data of the item in the database with the additional item data received from the second computing device.
[0024] In one example implementation, the server determines the description attribute, the unique identifier attribute, the geographic attribute, and the item category attribute based on the description of the item. The online presence index indicates that the item exists in various online databases of retailers / traders. For example, if the item is described in several databases regardless of its availability or inventory (e.g., whether the item is in stock or out of stock at several retailers), the online presence index of the item will be relatively high. However, if the item is described in very few databases regardless of its availability or inventory, the online presence index of the item will be relatively low. For example, unique or rare items in antique stores are rarely listed in online databases, let alone listed in the online databases of major retailers. Other examples of items include items that do not have SKU numbers, which are customized or unique.
[0025] In another example embodiment, the online presence index represents the current availability of an item (e.g., an in-stock item) in various online databases of a retailer / trader. For example, if an item is shown as readily available in several databases, the online presence index of the item will be relatively high. However, if the item is low in stock in several databases, the online presence index of the item will be relatively low.
[0026] In one example implementation, the online presence index is calculated by querying other servers with attributes of the item. The server determines an online inventory status of the item based on responses from the query. The online presence index corresponds to a level of the online inventory status. When the online presence index is below a low online presence index threshold, the online presence index indicates a poor online presence status. When the online presence index is above a low online presence index threshold, the online presence index indicates an online presence status. The server identifies a geographic area in response to the online presence index indicating a poor online presence status.
[0027] In another example implementation, a server calculates an online presence indicator by querying other servers with attributes of the item. The server determines an online inventory status of the item based on responses from the query. The online presence indicator corresponds to a level of the online inventory status. When the online presence indicator is below an offline presence indicator threshold, the online presence indicator indicates an offline presence status. The offline presence status indicates that the item is not in stock or does not exist in the database of the other server. The server identifies a geographic area in response to the online presence indicator indicating the offline presence status.
[0028] In another example implementation, the server calculates the online presence index by querying other servers using the attributes of the item. The server determines the online inventory status of the item based on the response from the query. The online presence index corresponds to the level of the online inventory status. When the online presence index is below a low online presence index threshold, the online presence index indicates a poor online presence status. When the online presence index is above a low online presence index threshold and a medium online presence threshold, the online presence index indicates a medium online presence status. When the online presence index is above a medium online presence index threshold, the online presence index indicates a high online presence status.
[0029] In another example implementation, the size of the geographic area is increased in response to a low online presence status of the item. In response to determining a high online presence status of the item, the size of the geographic area is decreased.
[0030] In another example implementation, the server identifies a third computing device associated with an expert user account. The third computing device has registered with the server. The expert user account identifies the user as an expert on an attribute of a category of items. The server generates a second query to the third computing device. The second query identifies an attribute of the item.
[0031] In another example implementation, the server identifies a third computing device associated with an expert user account. The third computing device has been registered with the server. The expert user account identifies the user as an expert on an attribute of a category of items. The server determines that the third computing device is located in a geographic region, and in response to determining that the third computing device is located in the geographic region, generates a second query to the third computing device. The second query identifies an attribute of the item.
[0032] In another example implementation, the server identifies a third computing device associated with an expert user account. The third computing device has been registered with the server. The expert user account identifies the user as an expert on an attribute of a category of items. The server determines that the third computing device is within a preset range of a geographic area, and in response to determining that the third computing device is within the preset range of the geographic area, generates a second query to the third computing device. The second query identifies an attribute of the item.
[0033] Figure 1 is a network diagram depicting a client-server system 100 in which one example implementation may be deployed. Networking system 102 provides server-side functionality to one or more clients via network 104 (eg, the Internet or a wide area network (WAN)) in the example form of a network-based marketplace or publishing system. Figure 1 A web client 106 (eg, a browser such as the Internet Explorer browser developed by Microsoft Corporation of Redmond, Washington) and a programmatic client 110 are shown, for example, executing on respective client machines 108 and 112 .
[0034] Application program interface (API) server 114 and web server 116 are coupled to and provide programming and web interfaces, respectively, to one or more application servers 118. Application servers 118 host one or more marketplace applications 120 and payment applications 122. In turn, application servers 118 are shown coupled to one or more database servers 124, which facilitate access to one or more databases 126.
[0035] The marketplace application 120 may provide a number of marketplace functions and services to users accessing the networked system 102. The payment application 122 may also provide a number of payment services and functions to the users. The payment application 122 may allow the user to accumulate value in an account (e.g., in a commercial currency such as dollars or a proprietary currency such as "points") and later redeem the accumulated value for products (e.g., goods or services) available via the marketplace application 120. Although the marketplace application 120 and the payment application 122 are Figure 1102, but it will be appreciated that in alternative embodiments the payment application 122 may form part of a separate and distinct payment service from the networked system 102.
[0036] In addition, although Figure 1 The illustrated system 100 employs a client-server architecture, but the embodiments are certainly not limited to such an architecture and may equally well find application in, for example, distributed or peer-to-peer architecture systems. The various market applications 120 and payment applications 122 may also be implemented as standalone software programs that do not necessarily have networking capabilities.
[0037] The web client 106 accesses various marketplace applications 120 and payment applications 122 via web interfaces supported by the web server 116. Similarly, the programmatic client 110 accesses various services and functions provided by the marketplace applications 120 and payment applications 122 via programmatic interfaces provided by the API server 114. The programmatic client 110 may be, for example, a seller application (e.g., the TurboLister application developed by eBay, Inc. of San Jose, California) to enable sellers to author and manage listings on the networked system 102 in an offline manner and to perform batch mode communications between the programmatic client 110 and the networked system 102.
[0038] Figure 1 Also shown is a third-party application 128 executing on a third-party server machine 130, which has programmatic access to the networked system 102 via a programming interface provided by the API server 114. For example, the third-party application 128 can utilize information retrieved from the networked system 102 to support one or more features or functions on a website hosted by the third party. For example, the third-party website can provide one or more promotional functions, marketing functions, or payment functions supported by the associated application of the networked system 102.
[0039] Figure 2 1 is a block diagram illustrating a marketplace application 120 provided as part of a networked system 102 in one example implementation. The marketplace application 120 may be hosted on dedicated or shared server machines (not shown) that are communicatively coupled to enable communication between the server machines. The marketplace applications 120 themselves are communicatively coupled to each other (e.g., via appropriate interfaces) and to various data sources to allow information to be passed between the marketplace applications 120 or to allow the marketplace applications 120 to share and access common data. In addition, the marketplace application 120 may access one or more databases 126 via a database server 124.
[0040] The networked system 102 may provide a plurality of publishing, listing, and price setting mechanisms whereby sellers may list goods or services for sale (or publish information about them), buyers may express interest in such goods or services, or indicate a willingness to purchase such goods or services, and prices may be set for transactions related to goods or services. To this end, the market application 120 is shown to include at least one publishing application 200 and one or more auction applications 202 that support auction-formatted listings and price setting mechanisms (e.g., English auctions, Dutch auctions, Vickrey auctions, Chinese auctions, double auctions, reverse auctions, etc.). The various auction applications 202 may also provide a plurality of features that support such auction-formatted listings, such as a reserve price feature whereby a seller may specify a reserve price associated with a listing, and a proxy bidding feature whereby a bidder may invoke automatic proxy bidding.
[0041] A plurality of fixed price applications 204 supports fixed price listing formats (e.g., traditional classified ad-type listings or directory listings) and buyout-type listings. Specifically, buyout-type listings (e.g., including Buy-It-Now (BIN) technology developed by eBay Inc. of San Jose, California) can be provided in conjunction with auction format listings and allow a buyer to purchase goods or services that are also offered for sale via an auction at a fixed price that is typically higher than the starting price of the auction.
[0042] Listing creation applications 206 allow sellers to conveniently create listings related to goods or services that they wish to trade via networked system 102, and listing management applications 208 allow sellers to manage such listings. In particular, where a particular seller has created and / or published a large number of listings, management of such listings may present challenges. Listing management applications 208 provide a number of features (e.g., auto-relisting, inventory level monitoring, etc.) to help sellers manage such listings. One or more post-listing management applications 210 also help sellers perform a variety of activities that typically occur after a listing.
[0043] The outsourced procurement engine 240 receives an item description from a user 252 of a client 250 operating an application configured to communicate with the market application 120. The item description includes, for example, a description of the physical item that the user 252 is looking for. The outsourced procurement engine 240 determines whether the item is readily available online by querying a database of stock levels from retailers and other sellers. For example, the item may be a very popular item or a sold-out item that may not be available online. In another example, the item may be available in limited quantities at a selected physical store. In yet another example, the item is not listed or sold online. This type of item is also referred to as an offline item.
[0044] The outsourced procurement engine 240 identifies a geographic region associated with an item (e.g., the item is produced or manufactured in the geographic region, other related items are manufactured from the geographic region or originate from the geographic region), or identifies a user with expertise in the type of item (e.g., Napa Valley wine). The outsourced procurement engine 240 sends the item attributes to a client 260 of a user 262 (who may or may not be an expert associated with the item that the user 252 is looking for). The client 260 may or may not be located in the geographic region associated with the item. The user 262 may use the item attributes to find the item (on behalf of the user 252). The client 260 may operate an application configured to communicate (via an application or a web browser) with the market application 120. The client 260 and the user 262 may have registered with the market application 120. Once the user 262 finds an item that corresponds to or matches the attributes of the item, the user 262 provides additional item data (e.g., a picture of the wine label, a further description of the wine, a SKU number that was previously unavailable for the wine, local opinion / reputation of the wine, or any other additional data that is not easily available online and is based on the existence of the physical item (e.g., the wine appears to be ruby red in color and tastes bitter)). The client 260 provides the additional item data to the outsourced procurement engine 240 along with an indication of the physical existence of the physical item (e.g., only 5 bottles are currently available in stock, and 10 cases will be available tomorrow). The application server 118 updates the attribute data associated with the item in the database 126 with the additional data and the indication of the physical existence of the physical item.
[0045] It should be noted that the term "web browser" as used in this disclosure should be broadly interpreted to cover any application capable of displaying item attributes and rendering images from a web server. As such, this may include a traditional web browser, as well as a standalone application (or app) operating on a mobile device or other device. For example, a web browser may be: a traditional web browser such as Microsoft Corporation's Internet Explorer, a standalone app such as a shopping application, a video player app, etc.
[0046] In another example where the web browser is a standalone app, it can be operated on, for example, a mobile device having a display and a camera. Thus, the techniques described herein can potentially be applied in real time to images obtained by the mobile device from an external source (e.g., via the Internet), to images previously stored on the mobile device, or to images taken by a camera on the mobile device. In fact, the techniques described herein can be applied to any device that can obtain a digital image and transmit portions of the digital image to another device. A mobile device is of course one example, but other devices are possible, such as wearable devices and head-mounted devices.
[0047] The following embodiments are also useful in virtual reality or augmented reality devices, where a camera is used in real time to capture images to which the techniques described herein are applied. For example, a camera in an augmented reality device may capture an image while overlaying a graphic or other image on the captured image. The techniques described herein may be applied to the captured image or to a composite image formed by combining the captured image and the overlay.
[0048] Figure 3 is a block diagram illustrating an example implementation of the outsourced procurement engine 240. The outsourced procurement engine 240 includes, for example, an item description module 302, an offline item detection module 304, an offline item geo-identification module 306, a user expertise identification module 308, a mobile device geo-module 310, and a query module 312. The item description module 302 receives an item description from the client 250. The item description includes, for example, the type of item, the name of the item, the color of the item, the country of origin, the place of origin, a unique identifier such as a brand model. Other types of descriptions include written descriptions, pictures, or videos. In another example implementation, the item description module 302 generates attributes based on the received item description. For example, a regional geo-location attribute with a value of "Napa" is generated based on the word "Napa Valley Wine".
[0049] The offline item detection module 304 determines whether the item cannot be found online (e.g., not listed in the online retailer) or has limited inventory online (e.g., less than 10 items available in the entire United States). In one example implementation, the offline item detection module 304 queries the online retailer's database for inventory levels. In another example, the offline item detection module 304 queries the online retailer's database for the item based on a unique identifier of the item (e.g., brand and model or serial number) for listing similar items.
[0050] The offline item geo-identification module 306 determines a geographic region (e.g., Napa Valley) based on the attributes generated by the item description module 302 and the lack of online availability (e.g., low inventory levels or non-existent listings) determined by the offline item detection module 304. The geographic region may be a country (e.g., Japan) based on the type of item attributes (e.g., anime characters). In another example embodiment, the offline item geo-identification module 306 may adjust the size of the region based on the availability of the online item. For example, when the inventory of the online item is low, the size of the region may be larger. When the inventory of the online item is high, the size of the region may be smaller.
[0051] In another example implementation, the item may be a newly released popular item that is not available online and is sold out at a retail store. The offline item geographic identification module 306 determines the geographic range or region based on the number of retail stores that have listed or sold the item. In another example, the offline item geographic identification module 306 determines the geographic range or region based on the density of the population having a profile associated with the item (e.g., an area with a high millennial population associated with the item being popular among millennials).
[0052] The mobile device geo-module 310 identifies mobile devices of users that are registered with the marketplace application 120 and that are located within the identified geographic area determined by the offline item geo-identification module 306 .
[0053] The user expertise identification module 308 identifies users who have indicated expertise in a field associated with one or more attributes of an item. For example, a user may have identified themselves as an expert in sports equipment. In another example, a user may have identified themselves as an expert in red wine. The user expertise identification module 308 identifies users located in the geographic area with the mobile device geographic module and identifies users with expert attributes corresponding to one or more attributes of the item. In another example embodiment, the user expertise identification module 308 determines users with expert attributes corresponding to one or more attributes of an item regardless of the geographic location attribute of the item.
[0054] The query module 312 generates a query including attributes of the item. In one example embodiment, the query includes an amount attribute indicating how much the user 252 is willing to pay for the item. In one example embodiment, the query module 312 generates the query to a mobile device located in the geographic area determined by the offline item geographic identification module 306. In another example embodiment, the query module 312 generates the query to a mobile device of an expert user (in the field of the item) located in the geographic area determined by the offline item geographic identification module 306. In another example embodiment, the query module 312 generates the query to a mobile device of an expert user (in the field of the item) located within a preset range (e.g., within 10 miles) of the geographic area determined by the offline item geographic identification module 306.
[0055] The physical presence indication module 314 receives additional data for the item. The additional data includes an indication of the physical presence of the item in the geographic area. The additional data is based on the items found in the geographic area. The additional data includes data that was not previously stored by the database 126, for example, due to missing information for the item. An example of missing attribute data may include a SKU number, as some items may not have a SKU number. Another example of missing attribute data may include a physical characteristic (e.g., color, material, firmness, weight, size, condition, asking price) associated with the item that was previously unknown to the database 126 of the item. The indication may identify, for example, that the item exists, does not exist, will exist at a specified future time.
[0056] The update module 316 receives the additional data from the physical presence indication module 314 and updates the database 126 with the additional data of the item. The additional data is further reported back to the client 250.
[0057] Figure 4 4 is a flow chart illustrating a method 400 for operating an outsourced procurement engine according to an example implementation. At operation 402, a server receives an item description. At operation 404, the server determines that the item description indicates an offline item and identifies the offline item based on the item description. At operation 406, the server identifies a geographic region associated with the item. At operation 408, the server generates a query to a mobile device located in the geographic region. At operation 410, the server receives additional item data (including a physical presence indication) from a mobile device that has located the item (or an item that matches the item description / attributes). At operation 412, the server updates its item database based on the additional item data received at operation 410.
[0058] Figure 55 is a flow chart illustrating a method 500 for operating an outsourced procurement engine according to another example implementation. At operation 502, a server receives an item description. At operation 504, the server identifies an offline item based on the item description. At operation 506, the server identifies a user with expertise in a field related to the offline item. At operation 508, the server generates a query to the mobile device of the identified user with expertise in the field of offline items. At operation 510, the server receives additional item data (including a physical presence indication) from a mobile device that has located the item (or an item that matches the item description / attributes). At operation 512, the server updates its item database based on the additional item data received at operation 510.
[0059] Figure 6 6 is a flow chart illustrating a method 600 for operating an outsourced procurement engine according to another example implementation. At operation 602, a server receives an item description. At operation 604, the server identifies an offline item based on the item description and an online query to a retailer's inventory level database. At operation 606, the server determines the probability of finding the offline item in a corresponding geographic area. At operation 608, the server identifies the geographic area with the highest probability (e.g., Chinese silk is most likely to be found in Chinatown in a major city or in a major trading city in China). At operation 610, the server identifies an expert user (in a field related to the item) located in the geographic area with the highest probability. At operation 612, the server generates a query to the mobile device of the expert in the geographic area with the highest probability.
[0060] Figure 7 670 will report additional data of the item (provided by the respective user) to the outsourced procurement engine 240.
[0061] Figure 8800 is a block diagram illustrating an example operation of an outsourced procurement engine according to another example implementation. User 252 provides an item description to outsourced procurement engine 240 via client 250. Outsourced procurement engine 240 identifies client 670 located in geographic area 802 and client 260 within a preset range of geographic area 602. Outsourced procurement engine 240 generates a query to client 260, 670 and provides item attributes of offline item 804. Both user 262, 672 will look for offline item 604 in geographic area 602. Client 260 and 670 will report additional data of the item (provided by the respective user) to outsourced procurement engine 240.
[0062] Fig. 9 is a block diagram 900 illustrating the architecture of software 902, which may be installed on any one or more of the devices described above. Fig. 9 This is merely a non-limiting example of a software architecture, and it should be understood that many other architectures may be implemented to facilitate the functionality described herein. In various embodiments, software 902 is comprised of, for example, Fig.10 1100, which includes: a processor 1110, a memory 1130, and an input / output (I / O) component 1150. In this example architecture, the software 902 can be conceptualized as a stack of layers, each of which can provide specific functionality. For example, the software 902 includes layers such as an operating system 904, a library 906, a framework 908, and an application 910. In operation, consistent with some embodiments, the application 910 calls an API call 912 through the software stack and receives a message 914 in response to the API call 912.
[0063] In various implementations, the operating system 904 manages hardware resources and provides public services. The operating system 904 includes, for example, a kernel 920, services 922, and drivers 924. Consistent with some embodiments, the kernel 920 acts as an abstraction layer between the hardware and other software layers. For example, the kernel 920 provides memory management, processor management (e.g., scheduling), component management, networking and security settings, and other functions. Services 922 can provide other public services to other software layers. According to some embodiments, the drivers 924 are responsible for controlling or interfacing with the underlying hardware. For example, the drivers 924 may include display drivers, camera drivers, or Low-power drivers, Flash drivers, Serial communications drivers (e.g., Universal Serial Bus (USB) drivers), Drivers, audio drivers, power management drivers, etc.
[0064] In some embodiments, the library 906 provides a low-level common infrastructure utilized by the application 910. The library 906 may include a system library 930 (e.g., a C standard library) that may provide functions such as memory allocation functions, string manipulation functions, mathematical functions, etc. In addition, the library 906 may include an API library 932, such as a media library (e.g., a library that supports the presentation and manipulation of various media formats, such as Moving Picture Experts Group 4 (MPEG4), Advanced Video Coding (H.264 or AVC), Moving Picture Experts Group Layer 3 (MP3), Advanced Audio Coding (AAC), Adaptive Multi-Rate (AMR) audio codec, Joint Photographic Experts Group (JPEG or JPG), or Portable Network Graphics (PNG)), a graphics library (e.g., an OpenGL framework for rendering in two dimensions (2D) and three dimensions (3D) in a graphics environment on a display), a database library (e.g., SQLite that provides various relational database functions), a web library (e.g., WebKit that provides web browsing functions), etc. The library 906 may also include various other libraries 934 to provide many other APIs to the application 910.
[0065] According to some embodiments, the framework 908 provides a high-level common infrastructure that can be utilized by the applications 910. For example, the framework 908 provides various graphical user interface (GUI) functions, advanced resource management, advanced location services, etc. The framework 908 can provide a wide range of other APIs that are utilized by the applications 910, some of which can be specific to a particular operating system or platform.
[0066] In an example embodiment, the applications 910 include: a home application 950, a contacts application 952, a browser application 954, a book reader application 956, a location application 958, a media application 960, a messaging application 962, a game application 964, and various other applications such as third-party applications 966. According to some embodiments, the application 910 is a program that performs the functions defined in the program. Various programming languages can be used to create one or more of the applications 910 constructed in various ways, such as object-oriented programming languages (e.g., Objective-C, Java, or C++) or procedural programming languages (e.g., C language or assembly language). In a specific example, the third-party application 966 (e.g., an application developed by an entity other than the vendor of a particular platform using an ANDROIDTM or IOSTM software development kit (SDK)) can be an application developed on a platform such as IOSTM, ANDROIDTM, Mobile software running on the mobile operating system of the phone or other mobile operating system. In this example, the third-party application 966 can call the API call 912 provided by the operating system 904 to facilitate the functions described herein.
[0067] Fig.10 A diagrammatic representation of a machine 1100 in the form of a computer system according to an example embodiment is shown within which a set of instructions may be executed for causing the machine to perform any one or more of the methodologies discussed herein. Fig.10 A diagrammatic representation of a machine 1100 in the example form of a computer system is shown within which instructions 1116 (e.g., software, programs, applications, applet, app, or other executable code) may be executed to cause the machine 1100 to perform any one or more of the methodologies discussed herein. For example, the instructions 1116 may cause the machine 1100 to perform Figure 4 , Figure 5 and Figure 6 Additionally or alternatively, instructions 1116 may implement methods 400, 500, and 600. Figures 1 to 3 , Figure 7 , Figure 8 Etc. Instructions 1116 convert a general unprogrammed machine 1100 into a specific machine 1100, which is programmed to perform the functions described and shown in the described manner. In alternative embodiments, the machine 1100 operates as a standalone device or can be coupled (e.g., networked) to other machines. In a networked deployment, the machine 1100 can operate as a server machine or a client machine in a server-client network environment, or as a peer machine in a peer (or distributed) network environment. The machine 1100 may include, but is not limited to: a server computer, a client computer, a personal computer (PC), a tablet computer, a laptop computer, a netbook, a set-top box (STB), a personal digital assistant (PDA), an entertainment media system, a cellular phone, a smart phone, a mobile device, a wearable device (e.g., a smart watch), a smart home device (e.g., a smart appliance), other smart devices, a web device, a network router, a network switch, a network bridge, or any machine capable of sequentially or otherwise executing instructions 1116, wherein the instructions 1116 specify the actions to be taken by the machine 1100. Further, while a single machine 1100 is illustrated, the term "machine" shall also be taken to include a collection of machines 1100 that individually or jointly execute instructions 1116 to perform any one or more of the methodologies discussed herein.
[0068] The machine 1100 may include a processor 1110, a memory 1130, and an I / O component 1150, which may be configured to communicate with each other, such as via a bus 1102. In an example embodiment, the processor 1110 (e.g., a central processing unit (CPU), a reduced instruction set computing (RISC) processor, a complex instruction set computing (CISC) processor, a graphics processing unit (GPU), a digital signal processor (DSP), an application specific integrated circuit (ASIC), a radio frequency integrated circuit (RFIC), another processor, or any suitable combination thereof) may include, for example, a processor 1112 and a processor 1114 that may execute instructions 1116. The term "processor" is intended to include a multi-core processor that includes two or more independent processors (sometimes referred to as "cores") that may execute instructions simultaneously. Although Fig.10 Multiple processors 1110 are shown, but the machine 1100 may include a single processor with a single core, a single processor with multiple cores (e.g., a multi-core processor), multiple processors with a single core, multiple processors with multiple cores, or any combination thereof.
[0069] The memory 1130 may include a main memory 1132, a static memory 1134, and a storage unit 1136, which may be accessed by the processor 1110, such as via the bus 1102. The main memory 1132, the static memory 1134, and the storage unit 1136 store instructions 1116 that embody any one or more of the methods or functions described herein. During execution of the instructions 1116 by the machine 1100, the instructions 1116 may also reside, in whole or in part, within the main memory 1132, within the static memory 1134, within the storage unit 1136, within at least one of the processors 1110 (e.g., within a cache memory of the processor), or within any suitable combination thereof.
[0070] I / O components 1150 may include various components that receive input, provide output, generate output, transmit information, exchange information, capture measurements, etc. The specific I / O components 1150 included in a particular machine depends on the type of machine. For example, a portable machine such as a mobile phone is likely to include a touch input device or other such input mechanism, while a headless server machine will likely not include such a touch input device. It will be appreciated that I / O components 1150 may include Fig.10Many other components not shown in the figure. Grouping the I / O components 1150 according to function is merely for the purpose of simplifying the following discussion, and the grouping is by no means limiting. In various example embodiments, the I / O components 1150 may include output components 1152 and input components 1154. The output components 1152 may include: visual components (e.g., displays, such as plasma display panels (PDPs), light emitting diode (LED) displays, liquid crystal displays (LCDs), projectors, or cathode ray tubes (CRTs)), auditory components (e.g., speakers), tactile components (e.g., vibration motors, resistance mechanisms), other signal generators, etc. The input components 1154 may include: alphanumeric input components (e.g., keyboards, touch screens configured to receive alphanumeric inputs, optical keyboards, or other alphanumeric input components), indication-based input components (e.g., mice, touch pads, trackballs, joysticks, motion sensors, or other pointing instruments), tactile input components (e.g., physical buttons, touch screens or other tactile input components that provide the location and / or force of touch or touch gestures), audio input components (e.g., microphones), etc.
[0071] In further example embodiments, the I / O component 1150 may include: a biometric component 1156, a motion component 1158, an environmental component 1160, or a positioning component 1162, as well as various other components. For example, the biometric component 1156 may include a component for detecting expressions (e.g., hand expressions, facial expressions, voice expressions, body postures, or eye tracking), measuring biological signals (e.g., blood pressure, heart rate, body temperature, sweating, or brain waves), identifying people (e.g., voice recognition, retinal recognition, facial recognition, fingerprint recognition, or EEG-based recognition), etc. The motion component 1158 may include: an acceleration sensor component (e.g., an accelerometer), a gravity sensor component, a rotation sensor component (e.g., a gyroscope), etc. The environment component 1160 may include, for example, an illumination sensor component (e.g., a photometer), a temperature sensor component (e.g., one or more thermometers that detect ambient temperature), a humidity sensor component, a pressure sensor component (e.g., a barometer), an acoustic sensor component (e.g., one or more microphones that detect background noise), a proximity sensor component (e.g., an infrared sensor that detects nearby objects), a gas sensor (e.g., a gas detection sensor that detects the concentration of dangerous gases to ensure safety or measures pollutants in the atmosphere), or other components that can provide indications, measurements, or signals corresponding to the surrounding physical environment. The positioning component 1162 may include a position sensor component (e.g., a global positioning system (GPS) receiver component), an altitude sensor component (e.g., an altimeter or barometer that detects air pressure, from which the altitude can be obtained), an orientation sensor component (e.g., a magnetometer), etc.
[0072] Various technologies may be used to achieve communication. The I / O components 950 may include a communication component 1164 operable to couple the machine 1100 to a network 1180 or a device 1170 via coupling 1182 and coupling 1172, respectively. For example, the communication component 1164 may include a network interface component or other suitable device that interfaces with the network 1180. In further examples, the communication component 1164 may include a wired communication component, a wireless communication component, a cellular communication component, a near field communication (NFC) component, a wireless communication ... Parts (e.g. Low power consumption), Components, and other communication components that provide communication via other modalities. Device 1170 may be another machine or any of a variety of peripheral devices (eg, a peripheral device coupled via USB).
[0073] In addition, the communication component 1164 can detect the identifier, or include a component that can be operated to detect the identifier. For example, the communication component 1164 may include: a radio frequency identification (RFID) tag reader component, an NFC smart tag detection component, an optical reader component (e.g., an optical sensor that detects one-dimensional barcodes such as universal product codes (UPC) barcodes, multi-dimensional barcodes such as QR codes, Aztec codes, Data Matrix, Dataglyph, MaxiCode, PDF417, Ultra Code, UCCRSS-2D barcodes, and other optical codes), or an acoustic detection component (e.g., a microphone that recognizes tagged audio signals). In addition, various information can be obtained via the communication component 1164, such as a location obtained via Internet Protocol (IP) geolocation, ... The location obtained by signal triangulation, the location obtained by detecting an NFC beacon signal, etc., wherein the NFC beacon signal can indicate a specific location.
[0074] Various memories (i.e., 1130, 1132, 1134 and / or the memory of the processor 1110) and / or the storage unit 1136 may store one or more sets of instructions and data structures (e.g., software) embodied or utilized by any one or more of the methods or functionality described herein. When executed by the processor 1110, these instructions (e.g., instructions 1116) cause various operations to implement the disclosed embodiments.
[0075] As used herein, the terms "machine storage medium", "device storage medium" and "computer storage medium" mean the same thing and may be used interchangeably. These terms mean a single or multiple storage devices and / or media (e.g., centralized or distributed databases, and / or associated caches and servers) that store executable instructions and / or data. Therefore, these terms should be considered to include, but are not limited to: solid-state memory, and optical and magnetic media, including memory internal or external to the processor. Specific examples of machine storage media, computer storage media and / or device storage media include: non-volatile memory, including, for example, semiconductor memory devices such as erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), field programmable gate array (FPGA) and flash memory devices; magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The terms "machine storage medium", "computer storage medium" and "device storage medium" exclude carrier waves, modulated data signals and other such media, at least some of which are covered by the term "signal media" discussed below.
[0076] In various example embodiments, one or more portions of network 1180 may be an ad hoc network, an intranet, an extranet, a virtual private network (VPN), a local area network (LAN), a wireless LAN (WLAN), a WAN, a wireless WAN (WWAN), a metropolitan area network (MAN), the Internet, a portion of the Internet, a portion of a public switched telephone network (PSTN), a plain old telephone service (POTS) network, a cellular telephone network, a wireless network, 1180, or a portion of network 1180, may include a wireless or cellular network, and coupling 1182 may be a code division multiple access (CDMA) connection, a global system for mobile communications (GSM) connection, or other types of cellular or wireless couplings. In this example, coupling 1182 may implement any of various types of data transmission technologies, such as single carrier radio transmission technology (1xRTT), evolution data optimized (EVDO) technology, general packet radio service (GPRS) technology, enhanced data rates for GSM evolution (EDGE) technology, third generation partnership project (3GPP) including 3G, fourth generation wireless (4G) network, universal mobile telecommunications system (UMTS), high speed packet access (HSPA), world wide interoperability for microwave access (WiMAX), long term evolution (LTE) standards, other technologies defined by various standard setting organizations, other long distance protocols, or other data transmission technologies.
[0077] Instructions 1116 may be sent and received over the network 1180 via a network interface device (e.g., a network interface component included in the communication component 1164) using a transmission medium and utilizing any of a variety of well-known transmission protocols (e.g., HTTP). Similarly, instructions 1116 may be sent or received using a transmission medium via a coupling 1172 (e.g., a peer-to-peer coupling) to the device 1170. In the present disclosure, the terms "transmission medium" and "signal medium" mean the same thing and may be used interchangeably. The terms "transmission medium" and "signal medium" should be deemed to include any intangible medium capable of storing, encoding, or carrying instructions 1116 for execution by the machine 1100, and include digital communication signals or analog communication signals or other intangible media to facilitate the communication of such software. Therefore, the terms "transmission medium" and "signal medium" should be deemed to include any form of modulated data signal, carrier wave, etc. The term "modulated data signal" means a signal that has one or more characteristics of the signal set or changed in such a manner that information is encoded in the signal.
[0078] In this disclosure, the terms "machine-readable medium," "computer-readable medium," and "device-readable medium" mean the same thing and may be used interchangeably. These terms are defined to include both machine storage media and transmission media. Thus, these terms include both storage devices / medium and carrier / modulated data signals.
Claims
1. A server for identifying an object, comprising: a storage device including a database of items and corresponding attribute data; A hardware processor configured to perform operations including: receiving a description of an item from a first computing device; determining attributes of the item based on the description of the item; calculating an online presence indicator based on the identified attributes of the item; responsive to at least one of the items not being listed in the database or the online presence index exceeding a low online presence index threshold, identifying a geographic region based on attributes of the items; identifying a second computing device located in the geographic area and registered with the server; generating a first query to the second computing device, the first query comprising attributes of the item; receiving, from the second computing device in response to the first query, additional item data, the additional item data being based on a physical presence of the item in the geographic area, the additional item data comprising an indication of the physical presence of the item at the geographic area; and The attribute data of the item in the database is updated with the additional item data received from the second computing device.
2. The server according to claim 1, wherein: The operations also include: providing updated attribute data of the item to the first computing device, The attributes to be determined also include: At least one of a description attribute, a unique identifier attribute, a geographic attribute, or an item category attribute is determined based on the description of the item, the geographic attribute being based on a geographic origin of the item.
3. The server according to claim 1, wherein: Calculation of online presence metrics also includes: querying other servers for the online inventory status of the item using the attribute of the item, wherein the online presence indicator corresponds to the level of the online inventory status, wherein, when the online presence indicator is lower than the low online presence indicator threshold, the online presence indicator indicates a poor online presence state, Wherein, when the online presence indicator is higher than the low online presence indicator threshold, the online presence indicator indicates an online presence state, The identifying of the geographic region is in response to the online presence indicator indicating the poor online presence status.
4. The server according to claim 1, wherein: Calculation of online presence metrics also includes: querying other servers for the online inventory status of the item using the attribute of the item, wherein the online presence indicator corresponds to the level of the online inventory status, When the online presence index is lower than the offline presence index threshold, the online presence index indicates an offline presence state, and the offline presence state indicates that the item is out of stock or does not exist in the database of the other server. Wherein identifying the geographic area is in response to the online presence indicator indicating the offline presence state.
5. The server according to claim 1, wherein: Calculation of online presence metrics also includes: querying other servers for the online inventory status of the item using the attribute of the item, wherein the online presence indicator corresponds to the level of the online inventory status, wherein, when the online presence indicator is lower than the low online presence indicator threshold, the online presence indicator indicates a poor online presence state, When the online presence indicator is higher than the low online presence indicator threshold and the medium online presence threshold, the online presence indicator indicates a medium online presence state. Wherein, when the online presence indicator is higher than the medium online presence indicator threshold, the online presence indicator indicates a high online presence state.
6. The server according to claim 5, wherein: The operations also include: In response to determining that the item has a poor online presence, increasing the size of the geographic area; and In response to determining a high online presence for the item, the size of the geographic area is reduced.
7. The server according to claim 1, wherein: The operations also include: identifying a third computing device associated with an expert user account, the third computing device registered with the server, the expert user account identifying a user as an expert with respect to the item category attribute; and A second query is generated to the third computing device, the second query identifying a property of the item.
8. The server according to claim 1, wherein: The operations also include: identifying a third computing device associated with an expert user account, the third computing device registered with the server, the expert user account identifying a user as an expert with respect to the item category attribute; determining that the third computing device is located in the geographic area; and In response to determining that the third computing device is located in the geographic area, a second query is generated to the third computing device, the second query identifying an attribute of the item.
9. The server according to claim 1, wherein: The operations also include: identifying a third computing device associated with an expert user account, the third computing device registered with the server, the expert user account identifying a user as an expert with respect to the item category attribute; Determining that the third computing device is within a preset range of the geographic area; and In response to determining that the third computing device is within the predetermined range of the geographic area, a second query is generated to the third computing device, the second query identifying an attribute of the item.
10. The server according to claim 1, wherein: The operations also include: Determining that a third computing device is within a preset range of the geographic area, the third computing device having been registered with the server; and In response to determining that the third computing device is within the predetermined range of the geographic area, a second query is generated to the third computing device, the second query identifying an attribute of the item.
11. A computer-implemented method for identifying an item, the method comprising: receiving, at the server from the first computing device, a description of the item; determining attributes of the item based on the description of the item; calculating an online presence indicator based on the identified attributes of the item; responsive to at least one of the items not being listed in a database or the online presence index exceeding a low online presence index threshold, identifying a geographic region based on attributes of the items; identifying a second computing device located in the geographic area and registered with the server; generating a first query to the second computing device, the first query comprising attributes of the item; receiving, from the second computing device in response to the first query, additional item data, the additional item data being based on a physical presence of the item in the geographic area, the additional item data comprising an indication of the physical presence of the item at the geographic area; and Attribute data for the item in the database is updated with the additional item data and the indication of the item's physical presence in the geographic area.
12. The computer-implemented method of claim 11 , further comprising: providing updated attributes of the item to the first computing device, The attributes to be determined also include: At least one of a description attribute, a unique identifier attribute, a geographic attribute, or an item category attribute is determined based on the description of the item.
13. The computer-implemented method of claim 11 , wherein: Calculation of online presence metrics also includes: querying other servers for the online inventory status of the item using the attribute of the item, wherein the online presence indicator corresponds to the level of the online inventory status, wherein, when the online presence indicator is lower than the low online presence indicator threshold, the online presence indicator indicates a poor online presence state, Wherein, when the online presence indicator is higher than the low online presence indicator threshold, the online presence indicator indicates an online presence state, The identifying of the geographic region is in response to the online presence indicator indicating the poor online presence status.
14. The computer-implemented method of claim 11, wherein: Calculation of online presence metrics also includes: querying other servers using the properties of the item; and determining an online inventory status of the item based on the response to the query, the online presence indicator corresponding to a level of the online inventory status, When the online presence index is lower than the offline presence index threshold, the online presence index indicates an offline presence state, and the offline presence state indicates that the item is out of stock or does not exist in the database of the other server. Wherein identifying the geographic area is in response to the online presence indicator indicating the offline presence state.
15. The computer-implemented method of claim 11, wherein: Calculation of online presence metrics also includes: querying other servers for the online inventory status of the item using the attribute of the item, wherein the online presence indicator corresponds to the level of the online inventory status, wherein, when the online presence indicator is lower than the low online presence indicator threshold, the online presence indicator indicates a poor online presence state, When the online presence indicator is higher than the low online presence indicator threshold and the medium online presence threshold, the online presence indicator indicates a medium online presence state. Wherein, when the online presence indicator is higher than the medium online presence indicator threshold, the online presence indicator indicates a high online presence state.
16. The computer-implemented method of claim 15, further comprising: In response to determining a poor online presence status for the item, increasing a size of the geographic area; as well as In response to determining a high online presence for the item, the size of the geographic area is reduced.
17. The computer-implemented method of claim 11, further comprising: identifying a third computing device associated with an expert user account, the third computing device registered with the server, the expert user account identifying a user as an expert with respect to the item category attribute; as well as A second query is generated to the third computing device, the second query identifying a property of the item.
18. The computer-implemented method of claim 11, further comprising: identifying a third computing device associated with an expert user account, the third computing device registered with the server, the expert user account identifying a user as an expert with respect to the item category attribute; determining that the third computing device is located in the geographic area; as well as In response to determining that the third computing device is located in the geographic area, a second query is generated to the third computing device, the second query identifying an attribute of the item.
19. The computer-implemented method of claim 11, further comprising: identifying a third computing device associated with an expert user account, the third computing device registered with the server, the expert user account identifying a user as an expert with respect to the item category attribute; determining that the third computing device is within a preset range of the geographic area; as well as In response to determining that the third computing device is within the predetermined range of the geographic area, a second query is generated to the third computing device, the second query identifying an attribute of the item.
20. A computer-readable storage medium comprising instructions that, when executed by at least one processor of a machine, cause the machine to perform operations comprising: receiving, at the server from the first computing device, a description of the item; determining attributes of the item based on the description of the item; calculating an online presence indicator based on the identified attributes of the item; responsive to at least one of the items not being listed in a database or the online presence index exceeding a low online presence index threshold, identifying a geographic region based on attributes of the items; identifying a second computing device located in the geographic area and registered with the server; generating a first query to the second computing device, the first query comprising attributes of the item; receiving, from the second computing device in response to the first query, an indication of a physical presence of the item at the geographic area and additional item data obtained based on the physical presence of the item; as well as Attribute data for the item in the database is updated with the additional item data and the indication of the item's physical presence in the geographic area.
Citation Information
Patent Citations
Multiple-retailer internet sales system and method
US20130151381A1
System and method for providing alternative fulfillment for a buyer's unfulfillable order
US20130159144A1