US20150278912A1 - Data mesh based zero effort shopping - Google Patents
Data mesh based zero effort shopping Download PDFInfo
- Publication number
- US20150278912A1 US20150278912A1 US14/459,115 US201414459115A US2015278912A1 US 20150278912 A1 US20150278912 A1 US 20150278912A1 US 201414459115 A US201414459115 A US 201414459115A US 2015278912 A1 US2015278912 A1 US 2015278912A1
- Authority
- US
- United States
- Prior art keywords
- user
- purchase
- item
- attribute data
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0631—Item recommendations
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B5/00—Measuring for diagnostic purposes; Identification of persons
- A61B5/24—Detecting, measuring or recording bioelectric or biomagnetic signals of the body or parts thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0633—Lists, e.g. purchase orders, compilation or processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/206—Drawing of charts or graphs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/04—Processing captured monitoring data, e.g. for logfile generation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/107—Network architectures or network communication protocols for network security for controlling access to devices or network resources wherein the security policies are location-dependent, e.g. entities privileges depend on current location or allowing specific operations only from locally connected terminals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1042—Peer-to-peer [P2P] networks using topology management mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/80—Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W76/00—Connection management
- H04W76/10—Connection setup
- H04W76/14—Direct-mode setup
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W84/00—Network topologies
- H04W84/18—Self-organising networks, e.g. ad-hoc networks or sensor networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/69—Types of network addresses using geographic information, e.g. room number
Definitions
- Embodiments of the present disclosure relate generally to e-commerce and, more particularly, but not by way of limitation, to data mesh based zero effort shopping.
- FIG. 1A is a block diagram illustrating a networked system, according to some example embodiments.
- FIG. 1B illustrates a block diagram showing components provided within the system of FIG. 1A , according to some example embodiments.
- FIG. 2A is a block diagram illustrating an example embodiment of a data mesh system, according to some example embodiments.
- FIG. 2B is a block diagram illustrating an example embodiment of a. user analytics system, according to some example embodiments.
- FIG. 3 is a flow diagram illustrating an example method for identifying an item and facilitating a purchase associated with the identified item, according to some example embodiments.
- FIG. 4 is a flow diagram illustrating further operations for facilitating the purchase based, at least in part, on an evaluation of an inventory level, according to some example embodiments.
- FIG. 5 is a flow diagram illustrating further operations for facilitating the purchase including operations to determine parameters for the purchase, according to some example embodiments.
- FIG. 6 is a flow diagram illustrating further operations for determining order parameters including operations to determine a temporal parameter associated with the purchase, according to some example embodiments.
- FIG. 7 is a flow diagram illustrating further operations to facilitate the purchase based, at least in part, on purchase criteria, according to some example embodiments.
- FIG. 8 is a flow diagram illustrating a further example method for identifying an item and facilitating a purchase, according to some example embodiments.
- FIG. 9 is a flow diagram illustrating an alternative example method for identifying an item and facilitating a purchase, according to some example embodiments.
- FIG. 10 is a flow diagram illustrating further operations to facilitate the purchase based, at least in part, on a demand metric, according to some example embodiments.
- FIG. 11 is a flow diagram illustrating further operations to facilitate the purchase using a notification, according to some example embodiments.
- FIGS. 12 and 13 are flow diagrams illustrating further operations for presenting a notification, according to some example embodiments.
- FIG. 14 is a flow diagram illustrating communication between various devices in relation to presenting a notification to the user, according to some example embodiments.
- FIG. 15 depicts an example user interface to facilitate the purchase, according to some example embodiments.
- FIGS. 16 and 17 illustrate examples of identifying an item and facilitating a purchase associated with the identified item, according to some example embodiments.
- FIGS. 18A and 18B depict example configurations for communicatively coupling attribute sources, according to some example embodiments.
- FIG. 19 depicts various example attribute sources, according to some example embodiments.
- FIG. 20 depicts various components that provide attribute data, according to some example embodiments.
- FIG. 21 is a block diagram of an example data structure for example attribute data associated with a user, according to some example embodiments.
- FIG. 22 is a block diagram of an example data structure for example attribute data associated with a device, according to some example embodiments.
- FIG. 23 depicts an example mobile device and mobile operating system interface, according to some example embodiments.
- FIG. 24 is a block diagram illustrating an example of a software architecture that may be installed on a machine, according to some example embodiments.
- FIG. 25 illustrates a diagrammatic representation of a machine in the form of a computer system within which a set of instructions may be executed for causing the machine to perform any one or more of the methodologies discussed herein, according to an example embodiment.
- the objective of zero effort shopping is to reduce or eliminate effort by a consumer user to purchase various products.
- the systems and methods described herein may, among other functions, access a wealth of attribute data associated with a user, analyze the attribute data to identify items that the user may have demand for, and facilitate a purchase associated with the identified items. For instance, the user may be characterized based on an analysis of the attribute data and the user characterization may be used as a basis for identifying items and order parameters for a purchase associated with identified items.
- the collective, aggregated attribute data may be referred to as a “data mesh.”
- the attribute data is received or accessed from a broad gamut of attribute sources such as, for example, from mobile devices, smart devices, smart homes, social network services, user profiles, browsing histories, purchase histories, and so forth.
- Demand indications that are indicative of anticipatory demand by the user for a particular item are extracted from the attribute data.
- purchase histories may indicate prior purchases for coffee products
- location data e.g., as determined by a Global Positioning System (GPS) component of a mobile device, beacon detections, or other location services
- GPS Global Positioning System
- beacon detections e.g., as determined by a Global Positioning System (GPS) component of a mobile device, beacon detections, or other location services
- social media data such as check-ins or user postings may indicate an affinity for coffee.
- a commerce item may be identified from the attribute data based on the extracted demand indications.
- the identified commerce item may comprise coffee beans, coffee filters, or other coffee related items.
- user characteristics pertaining to the user are inferred based on an analysis of a portion of the attribute data.
- the user characteristics include, for instance, a trait, quality, action, activity, attitude, health condition, habit, behavior, and the like.
- the user characteristics may include a particular medical condition of that user associated with diet restrictions.
- the systems and methods described herein may facilitate a purchase associated with the commerce item based, at least in part, on the user characteristics.
- a notification including an option to make the purchase, is presented to the user.
- the notification is personalized to the user based on the user characteristics (e.g., the notification may be presented on a preferred device of the user at a time of day corresponding to user available such as after the user is done working).
- the purchase is made automatically on behalf of the user. For instance, a demand metric is calculated based on the demand indications and if the demand metric exceeds a threshold, the purchase may be performed automatically.
- a demand metric is calculated based on the demand indications and if the demand metric exceeds a threshold, the purchase may be performed automatically.
- the systems and methods described herein may facilitate commerce on behalf of the user to increase convenience and reduce time and effort of the user to conduct commerce.
- the systems and methods analyze the attribute data to simulate decisions of the user regarding various shopping or purchasing related activities.
- FIG. 1A an example embodiment of a high-level client-server-based network architecture 100 is shown.
- a networked system 102 provides server-side functionality via a network 104 (e.g., the Internet or wide area network (WAN)) to a client device 110 .
- a user e.g., user 106
- FIG. 1A illustrates, for example, a web client 112 (e,g., a browser, such as the Internet Explorer® browser developed by Microsoft® Corporation of Redmond, Wash. State), client application(s) 114 , and a programmatic client 116 executing on the client device 110 .
- a web client 112 e,g., a browser, such as the Internet Explorer® browser developed by Microsoft® Corporation of Redmond, Wash. State
- client application(s) 114 e.g., the Internet Explorer® browser developed by Microsoft® Corporation of Redmond, Wash. State
- programmatic client 116 e.g., programmatic client 116 executing on the client device 110 .
- the client device 110 includes the web client 112 , the client application(s) 114 , and the programmatic client 116 alone, together, or in any suitable combination, although FIG. 1A shows one client device 110 , multiple client devices may be included in the network architecture 100 .
- the client device 110 comprises a computing device that includes at least a display and communication capabilities that provide access to the networked system 102 via the network 104 .
- the client device 110 may comprise, but is not limited to, a remote device, work station, computer, general purpose computer, Internet appliance, hand-held device, wireless device, portable device, wearable computer, cellular or mobile phone, personal digital assistant (PDA), smart phone, tablet, ultrabook, netbook, laptop, desktop, multi-processor system, microprocessor-based or programmable consumer electronic, game consoles, set-top box, network PC, mini-computer, and the like.
- the client device 110 may comprise one or more of a touch screen, accelerometer, gyroscope, biometric sensor, camera, microphone, global positioning system (GPS) device, and the like.
- GPS global positioning system
- the client device 110 communicates with the network 104 via a wired or wireless connection.
- the network 104 comprises an ad hoc network, an intranet, an extranet, a Virtual Private Network (VPN), a Local Area Network (LAN), a wireless LAN (WIAN), a Wide Area Network (WAN), a wireless WAN (WWAN), a Metropolitan Area Network (MAN), a portion of the Internet, a portion of the Public Switched Telephone Network (PSTN), a cellular telephone network, a wireless network, a Wireless Fidelity (Wi-Fi®) network, a Worldwide Interoperability for Microwave Access (WiMax) network, another type of network, or any suitable combination thereof.
- VPN Virtual Private Network
- LAN Local Area Network
- WLAN wireless LAN
- WIAN Wide Area Network
- WAN Wide Area Network
- WWAN wireless WAN
- MAN Metropolitan Area Network
- PSTN Public Switched Telephone Network
- PSTN Public Switched Telephone Network
- a cellular telephone network a wireless network
- the client device 110 includes one or more of the applications (also referred to as “apps”) such as, but not limited to, web browsers, book reader apps (operable to read e-books), media apps (operable to present various media forms including audio and video), fitness apps, biometric monitoring apps, messaging apps, electronic mail (email) apps, and e-commerce site apps (also referred to as “marketplace apps”).
- the client application(s) 114 include various components operable to present information to the user and communicate with networked system 102 .
- the e-commerce site application may be configured to locally provide the user interface and at least some of the functionalities with the application configured to communicate with the networked system 102 , on an as needed basis, for data or processing capabilities not locally available (e.g., access to a database of items available for sale, to authenticate a user, to verify a method of payment).
- the client device 110 can use its web browser to access the e-commerce site (or a variant thereof) hosted on the networked system 102 .
- the user (e.g., the user 106 ) comprises a person, a machine, or other means of interacting with the client device 110 .
- the user is not be part of the network architecture 100 , but interacts with the network architecture 100 via the client device 110 or another means.
- the user provides input (e.g., touch screen input or alphanumeric input) to the client device 110 and the input is communicated to the networked system 102 via the network 104 .
- the networked system 102 in response to receiving the input from the user, communicates information to the client device 110 via the network 104 to be presented to the users. In this way, the user can interact with the networked system 102 using the client device 110 .
- An Application Program Interface (API) server 120 and a web server 122 may be coupled to, and provide programmatic and web interfaces respectively to, one or more application server(s) 140 .
- the application server(s) 140 may host one or more publication system(s) 142 , payment system(s) 144 , and a data mesh system 150 , each of which may comprise one or more modules or applications and each of which may be embodied as hardware, software, firmware, or any combination thereof.
- the application server(s) 140 are, in turn, shown to be coupled to one or more database server(s) 124 that facilitate access to one or more information storage repositories or database(s) 126 .
- the database(s) 126 are storage devices that store information to be posted (e.g., publications or listings) to the publication system(s) 142 .
- the database(s) 126 may also store digital goods information in accordance with some example embodiments.
- a third party application 132 executing on a third party server 130 , is shown as having programmatic access to the networked system 102 via the programmatic interface provided by the API server 120 .
- the third party application 132 utilizing information retrieved from the networked system 102 , may support one or more features or functions on a website hosted by the third party.
- the third party website may, for example, provide one or more promotional, marketplace, or payment functions that are supported by the relevant applications of the networked system 102 .
- the publication system(s) 142 may provide a number of publication functions and services to the users that access the networked system 102 .
- the payment system(s) 144 may likewise provide a number of functions to perform or facilitate payments and transactions.
- White the publication system(s) 142 and payment system(s) 144 are shown in FIG. 1A to both form part of the networked system 102 , it will be appreciated that, in alternative embodiments, each system 142 and 144 may form part of a payment service that is separate and distinct from the networked system 102 .
- the payment system(s) 144 may form part of the publication system(s) 142 .
- the data mesh system 150 provides functionality to receive, retrieve, or store a broad spectrum of data associated with the user. It will be noted that the collective, aggregated attribute data may be referred to as a “data mesh.” In various implementations, the data mesh system 150 stores received data in storage devices such as the database(s) 126 . In an example embodiment, the data mesh system 150 includes a user analytics system 152 that identifies items the user may have demand for and facilitate a purchase associated with the identified items. In some example embodiments, the data mesh system 150 communicates with the client device 110 , the third party server(s) 130 , the publication system(s) 142 (e.g., retrieving listings), and the payment system(s) 144 (e.g., purchasing a listing). In an alternative example embodiment, the data mesh system 150 is a part of the publication system(s) 142 .
- client-server-based network architecture 100 shown in FIG. 1A employs a client-server architecture
- present inventive subject matter is, of course, not limited to such an architecture, and may equally well find application in a distributed, or peer-to-peer, architecture system, for example.
- the various systems of the applications server(s) 140 e.g., the publication system(s) 142 and the payment system(s) 144
- the web client 112 may access the various systems of the networked system 102 (e.g., the publication system(s) 142 ) via the web interface supported by the web server 122 .
- the programmatic client 116 and client application(s) 114 may access the various services and functions provided by the networked system 102 via the programmatic interface provided by the API server 120 .
- the programmatic client 116 may, for example, be a seller application (e.g., the Turbo Lister application developed by eBay® Inc., of San Jose, Calif.) to enable sellers to author and manage listings on the networked system 102 in an off-line manner, and to perform batch-mode communications between the programmatic client 116 and the networked system 102 .
- FIG. 1B illustrates a block diagram showing components provided within the publication system(s) 142 , according to some embodiments.
- the publication system(s) 142 may comprise a market place system to provide market place functionality (e.g., facilitating the purchase of items associated with item listings on an e-commerce website).
- the networked system 102 may be hosted on dedicated or shared server machines that are communicatively coupled to enable communications between server machines.
- the components themselves are communicatively coupled (e.g., via appropriate interfaces) to each other and to various data sources, on as to allow information to be passed between the applications or so as to allow the applications to share and access common data.
- the components may access one or more database(s) 126 via the database server(s) 124 .
- the networked system 102 may provide a number of publishing, listing, and price-setting mechanisms whereby a seller also referred to as a “first user”) may list or publish information concerning) goods or services for sale or barter, a buyer (also referred to as a “second user”) can express interest in or indicate a desire to purchase or barter such goods or services, and a transaction (such as a trade) may be completed pertaining to the goods or services.
- the networked system 102 may comprise a publication engine 160 and a selling engine 162 .
- the publication engine 160 may publish information, such as item listings or product description pages, on the networked system 102 .
- the selling engine 162 may comprise one or more fixed-price engines that support fixed-price listing and price setting mechanisms and one or more auction engines that support auction-format listing and price setting mechanisms (e.g., English, Dutch, Chinese, Double, Reverse auctions, etc.).
- the various auction engines may also provide a number of features in support of these auction-format listings, such as a reserve price feature whereby a seller may specify a reserve price in connection with a listing and a proxy-bidding feature whereby a bidder may invoke automated proxy bidding.
- the selling engine 162 may further comprise one or more deal engines that support merchant-generated offers for products and services.
- a listing engine 164 allows sellers to conveniently author listings of items or authors to author publications.
- the listings pertain to goods or services that a user (e.g., a seller) wishes to transact via the networked system 102 .
- the listings may be an offer, deal, coupon, or discount for the good or service.
- Each good or service is associated with a particular category.
- the listing engine 164 may receive listing data such as title, description, and aspect name/value pairs.
- each listing for a good or service may be assigned an item identifier.
- a user may create a listing that is an advertisement or other form of information publication.
- Listings may then be stored to one or more storage devices coupled to the networked system 102 (e.g., database(s) 126 ).
- Listings also may comprise product description pages that display a product and information (e.g., product title, specifications, and reviews) associated with the product.
- the product description page may include an aggregation of item listings that correspond to the product described on the product description page.
- the listing engine 164 also may allow buyers to conveniently author listings or requests for items desired to be purchased.
- the listings may pertain to goods or services that a user (e.g., a buyer) wishes to transact via the networked system 102 .
- Each good or service is associated with a particular category.
- the listing engine 164 may receive as much or as little listing data, such as title, description, and aspect name/value pairs, that the buyer is aware of about the requested item.
- the listing engine 164 may parse the buyer's submitted item information and may complete incomplete portions of the listing.
- the listing engine 164 may parse the description, extract key terms and use those terms to make a determination of the identity of the item. Using the determined item identity, the listing engine 164 may retrieve additional item details for inclusion in the buyer item request. In some embodiments, the listing engine 164 may assign an item identifier to each listing for a good or service.
- the listing engine 164 allows sellers to generate offers for discounts on products or services.
- the listing engine 164 may receive listing data, such as the product or service being offered, a price or discount for the product or service, a time period for which the offer is valid, and so forth.
- the listing engine 164 permits sellers to generate offers from sellers' mobile devices. The generated offers may be uploaded to the networked system 102 for storage and tracking
- Searching the networked system 102 is facilitated by a searching engine 166 .
- the searching engine 166 enables keyword queries of listings published via the networked system 102 .
- the searching engine 166 receives the keyword queries from a device of a user and conducts a review of the storage device storing the listing information. The review will enable compilation of a result set of listings that may be sorted and returned to the client device 110 of the user.
- the searching engine 166 may record the query (e.g., keywords) and any subsequent user actions and behaviors (e.g., navigations, selections, or click-throughs).
- the searching engine 166 also may perform a search based on a location of the user.
- a user may access the searching engine 166 via a mobile device and generate a search query. Using the search query and the user's location, the searching engine 166 may return relevant search results for products, services, offers, auctions, and so forth to the user.
- the searching engine 166 may identify relevant search results both in a list form and graphically on a map. Selection of a graphical indicator on the map may provide additional details regarding the selected search result.
- the user may specify, as part of the search query, a. radius or distance from the user's current location to limit search results.
- a navigation engine 168 allows users to navigate through various categories, catalogs, or inventory data structures according to which listings may be classified within the networked system 102 .
- the navigation engine 168 allows a user to successively navigate down a category tree comprising a hierarchy of categories (e.g., the category tree structure) until a particular set of listings is reached.
- Various other navigation applications within the navigation engine 168 may be provided to supplement the searching and browsing applications.
- the navigation engine 168 may record the various user actions (e.g., clicks) performed by the user in order to navigate down the category tree.
- a personalization engine 170 provides functionality to personalize various aspects of user interactions with the networked system 102 .
- the user can define, provide, or otherwise communicate personalization settings that the personalization engine 170 uses to determine interactions with the networked system 102 .
- the personalization engine 170 determines personalization settings automatically and personalizes interactions based on the automatically determined settings. For example, the personalization engine 170 determines a native language of the user and automatically presents information in the native language.
- FIG. 2A is a block diagram of the data mesh system 150 , which may provide functionality to receive, retrieve, or access attribute data from attribute sources, analyze the attribute data, manage the attribute data, and so forth.
- the data mesh system 150 may include a presentation module 210 , a communication module 215 , an attribute module 220 , a characteristic module 225 , a management module 230 , and the user analytics system 152 .
- FIG. 2B is a block diagram of the user analytics system 152 , which may provide functionality to identify items that the user has demand for and facilitate a purchase associate with the identified items.
- the user analytics system 152 may include an item module 250 , an analysis module 255 , and an order module 260 .
- modules 210 - 260 of FIGS. 2A and 2B may communicate with each other, for example, via a network coupling, shared memory, and the like. It will be appreciated that each module of modules 210 - 260 may be implemented as a single module, combined into other modules, or further subdivided into multiple modules. It will further be appreciated that the modules or functionality of the user analytics system 152 may be implemented in the data mesh system 150 and the modules or functionality of the data mesh system 150 may be implemented in the user analytics system 152 . Other modules not pertinent to example embodiments may also be included, but are not shown.
- the presentation module 210 may provide various presentation and user interface functionality operable to interactively present and receive information from users.
- the presentation module 210 may cause presentation of various notifications or user interfaces that provide the user an option to make a purchase associated with the identified items.
- the presentation module 210 presents or causes presentation of information (e.g., visually displaying information on a screen, acoustic output, haptic feedback).
- Interactively presenting is intended to include the exchange of information between a particular device and the user.
- the user provides input to interact with the user interface in many possible manners such as alphanumeric input, cursor input, tactile input, or other input (e.g., touch screen, tactile sensor, light sensor, infrared sensor, biometric sensor, microphone, gyroscope, accelerometer, or other sensors).
- the presentation module 210 provides many other user interfaces to facilitate functionality described herein.
- “presenting” as used herein is intended to include communicating information or instructions to a particular device that is operable to perform presentation based on the communicated information or instructions.
- the communication module 215 provides various communications fimctionality and web services.
- the communication module 220 provides network communication such as communicating with the networked system 102 , the client device 110 , and the third party server(s) 130 .
- the network communication may operate over wired or wireless modalities.
- Web services are intended to include retrieving information from the third party server(s) 130 , the database(s) 126 , and the application server(s) 140 .
- information retrieved by the communication module 215 comprises data associated with the user (e.g., user profile information from an online account, social network service data associated with the user), data associated with one or more items listed on an e-commerce website (e.g., images of the item, reviews of the item, item price), or other data to facilitate the functionality described herein.
- data associated with the user e.g., user profile information from an online account, social network service data associated with the user
- data associated with one or more items listed on an e-commerce website e.g., images of the item, reviews of the item, item price
- the attribute module 220 may receive, access, or retrieve a wide variety of attribute data from many different attribute sources.
- the attribute module 220 may receive, retrieve, or access the attribute data from user devices or machines (e.g., the client device 110 ), social network services, the third party server(s) 130 , the publication system(s) 142 , the payment system(s) 144 , other applications servers, or other attribute sources.
- the attribute data is intended to include raw data such as sensor data, profile data, social network content, and so on.
- the attribute module 220 extracts the attribute data from various sources. For instance, a payment history log of the user may include a tremendous amount of extraneous data. In this instance, the attribute module 220 extracts purchase information such as item purchased, time, purchase price, seller, location, brand, and so forth from the payment history log of the user.
- the attribute module 220 performs various functions to prepare or condition the attribute data for analysis. For instance, the attribute module 220 standardizes the attribute data to facilitate analysis of the attribute data (e.g., determine a normal form for the data to allow for comparison and other mathematical analysis). The attribute module 220 may perform many other functions to prepare the attribute data for analysis.
- the attribute module 220 stores the attribute data in association with the user for subsequent analysis.
- the attribute module 220 stores the attribute data in the database(s) 126 .
- the attribute data may be stored in conjunction with a user identifier such that the attribute module 220 may subsequently use the user identifier to access the attribute data corresponding to a particular user.
- the attribute module 220 accesses the stored attribute data using other schemes. For instance, the attribute module 220 may access a portion of the attribute data associated with a time, an item, a user, a type of user, a particular attribute source, and so forth. In this way, the attribute module 220 may access a portion of attribute data according to various parameters from among a large quantity of the attribute data to access, identify, or find pertinent and relevant data.
- the characteristic module 225 infers a user characteristic or multiple user characteristics corresponding to the user based on an analysis of at least a portion of the attribute data.
- Many schemes and techniques may be employed to infer the characteristic from the attribute data.
- a particular user characteristic may be a work location of the user.
- the attribute data can include a plurality of locations (e.g., as determined by a GPS component of a user device used by the user) that include time stamps.
- the work location of the user may be inferred based on the consistency and timing of the locations included in the attribute data (e.g., the user is typically at a particular office building during normal working hours).
- Many different portions of attribute data and combinations of portions of attribute data may be analyzed to infer a wide variety of characteristics.
- characteristics are intended to include traits, qualities, actions, activities, attitudes, habits, behaviors, and the like pertaining to a person or people.
- attribute data may not necessarily pertain to a person (e.g., raw data such as coordinates of a particular location)
- a characteristic e.g., current location of the user, disliking spicy food, having young children, being a Star Trek fanatic
- the management module 230 may provide management functions associated with the attribute data.
- the management module 230 may provide the user with functionality to edit, modify, update, or otherwise control the attribute data.
- the user may remove undesired attribute data via the functionality provided by the management module 230 .
- the user may specify permissions for portions of the attribute data using the functionality provided by the management module 230 .
- the permissions may allow or prohibit certain access or uses for the attribute data (e.g., the permission may prohibit access to the attribute data by third parties).
- the user may grant various levels of access and abilities.
- the permissions may persist for a period of time, and after expiration of the time period, the management module 230 may revoke the permissions,
- the management module 230 requests consent from the user to access portions of the attribute data or to request permission for certain uses of the attribute data. For example, the management module 230 requests consent from the user to allow third parties to access portions of the attribute data.
- the management module 230 may request a variety of other consents associated with various actions corresponding to the attribute data.
- the management module 230 provides functionality to allow third parties to access the attribute data or the user characteristics.
- the management module 230 provides a set of APIs that may be invoked by third parties to access the attribute data or the user characteristics.
- the management module 230 determines permission or consent of the user prior to providing access to the attribute data.
- the item module 250 in the user analytics system 152 may provide functionality to facilitate identifying items from the attribute data.
- the item module 250 extracts demand indications, from the attribute data, that may indicate anticipatory demand by the user for a particular item.
- the demand indications may indicate use of a particular item by the user, a user supply of a particular item, a user activity indicative of a particular item (e.g., frequent visits to a beach may be indicative of demand for sunscreen products and other beach related products), and other indications of demand for various items.
- the item module 250 extracts the demand indications from many different portions of attribute data and combinations of portions of attribute data using a variety of schemes and techniques,
- the analysis module 255 provides functionality to identify items from the attribute data. For example, the analysis module 255 identifies the commerce item or a pertinent item based on the demand indications, the user characteristics, the attribute data, or any suitable combination thereof. In further example embodiments, the analysis module 255 calculates a demand metric based on the demand indications. In some implementations, the user analytics system 152 performs a variety of tasks and functions based on the demand metric, such as, various aspects of facilitating the purchase associated with the commerce item.
- the order module 260 provides functionality to facilitate the user purchase associated with the commerce item. For example, the order module 260 determines order parameters or transaction parameters for the user purchase based on the user characteristics, the attribute data, the demand indications, or among other data. In some example embodiments, the order module 260 automatically (e.g., without intervention or action of the user) performs the user purchase on behalf of the user based on various triggers or analyses.
- FIG. 3 is a flow diagram illustrating an example method 300 for identifying the commerce item from the attribute data and facilitating the user purchase associated with the commerce item.
- the attribute module receives attribute data associated with the user from a plurality of attribute sources.
- at least a portion of the attribute data includes real-time data or near real-time data.
- the term “real-time data,” as used herein, is intended to include data associated with an event currently happening.
- the real-time data may include user input data or sensor data communicated to the attribute module 220 after a delay interval (e.g., due to transmission delay or other delays such as being temporarily stored at an intermediate device) between capturing the data and the attribute module 220 receiving the data.
- the attribute data is received from a broad spectrum of attribute sources (e.g., devices, sensors, servers, databases, and other sources). Additionally, the attribute module 220 may receive the attribute data via many pathways resulting from an assortment of configurations of the attribute sources as further discussed in connection with FIGS. 18A and 18B . In an example embodiment, the attribute module 220 receives the attribute data directly from the attribute sources. In other example embodiments, the attribute module 220 receives the attribute data from a central device that receives attribute data from a plurality of user devices.
- attribute sources e.g., devices, sensors, servers, databases, and other sources.
- the attribute module 220 may receive the attribute data via many pathways resulting from an assortment of configurations of the attribute sources as further discussed in connection with FIGS. 18A and 18B . In an example embodiment, the attribute module 220 receives the attribute data directly from the attribute sources. In other example embodiments, the attribute module 220 receives the attribute data from a central device that receives attribute data from a plurality of user devices.
- various user devices are communicatively coupled in a decentralized device-to-device mesh, and the attribute module 220 receives the attribute data corresponding to a particular device in the mesh from any of the devices in the mesh.
- the attribute module 220 receives the attribute data from the attribute sources in many other configurations including various suitable combinations of configurations.
- the attribute module 220 stores the attribute data in association with the user (e.g., indexed based on a user identifier) for subsequent analysis.
- the attribute module 220 may store the attribute data in a storage device such as the database(s) 126 , for example.
- the attribute module 220 accesses the stored attribute data using a variety of search or find schemes. For instance, the attribute data associated with a particular user is accessed using a user identifier that corresponds to the particular user. It will be noted that the collective, aggregated attribute data may be referred to as a “data. mesh.”
- the item module 250 extracts demand indications from the attribute data.
- the demand indications are indicative of anticipatory demand by the user for a particular item.
- a particular demand indication may indicate that the user may want, desire, or have an affinity for a particular product or commerce item.
- the terms “item,” “product,” “commerce item,” and the like are intended to include a wide variety of products (e.g., items corresponding to item listings published on an e-commerce website) and services (e.g., a particular activity such going to a restaurant).
- anticipatory and “predictive” as used herein are intended to pertain to future events, or activity, including events that are in the immediate future (e.g., events within a short time period, such as minutes or seconds, of the present) as well as events further in the future (e.g., months or years from the present).
- the item module 250 extracts the demand indications from a wide variety of data included in the attribute data, such as, purchase histories, location data (e.g., as determined by a GPS component of a mobile device, beacon detections, or other location services), social media data (e.g., check-ins or postings by the user), as well as other data included in the attribute data as discussed herein.
- location data e.g., as determined by a GPS component of a mobile device, beacon detections, or other location services
- social media data e.g., check-ins or postings by the user
- the demand indications include, for example, inventory level indications (e.g., a food supply of the user as indicated by a smart refrigerator), item usage indications (e.g., user purchase history may indicate certain item usage patterns), item activity indications, activity related to an item (e.g., the user spending time on the ski slopes may indicate a demand for ski equipment), user engagement data (e.g., the user clicking on particular links associated with various products or activities), and so forth.
- location data included in the attribute data may indicate frequent trips to coffee shops.
- the item module 250 extracts the location data from the attribute data since it may be indicative of demand for coffee or coffee related products by the user.
- social media data such as check-ins to a gym or postings about fitness activities, may indicate demand for fitness related items or activities.
- the user may currently possess a sufficient supply of bottled water, but based on indications of consumption rates of bottled water by the user, the user may have future demand for the bottled water.
- the item module 250 extracts supply indications for the bottled water (e.g., purchase history data of the user) or consumption indications for the bottled water (e.g., inventory activity data as retrieved or accessed from a smart refrigerator) from the attribute data. That is to say, the demand indications, extracted by the item module 250 , may include the supply indications, inventory level indications, or inventory activity indication for the bottle water.
- the analysis module 255 identifies the commerce item, product, or pertinent item from the attribute data based on the extracted demand indications. For instance, the analysis module 255 determines that there may be a high likelihood that the user is interested or has demand for a particular item. In other words, the analysis module 255 identifies the commerce item or multiple commerce items from among a plurality of commerce items associated with the demand indications based on user demand for respective commerce items included in the plurality of commerce items.
- the analysis module 255 identifies the commerce item based on the demand indications using a variety of schemes and techniques. For example, the analysis module 255 may calculate the demand metric based on the demand indications.
- the demand metric may indicate a likelihood that the user has a demand for a particular item.
- the demand metric may be based on an occurrence count of demand indications that correspond to a particular item (e.g., a particular item with multiple corresponding demand indications may be associated with a higher demand metric than a particular item with a single corresponding demand indication).
- the analysis module 255 may identify the commerce item based on the calculated demand metric exceeding a threshold (e.g., a predefined or dynamically determined value).
- the analysis module 255 ranks, sorts, or otherwise orders at least a portion of the plurality of commerce items associated with the demand indications based on the demand metric.
- the analysis module 255 identifies the first, a predefined number, or a dynamically determined number of the highest-ranking commerce items included in the plurality of commerce items associated with the demand indications, either alone or in any suitable combination. For instance, the analysis module 255 identifies the commerce item from among the plurality of commerce items associated with the demand indications based on a statistical analysis such as a percentage (e.g., top ten percent of the ranked plurality of commerce items), analysis based on standard deviations away from a mean, or other statistical methods.
- a statistical analysis such as a percentage (e.g., top ten percent of the ranked plurality of commerce items), analysis based on standard deviations away from a mean, or other statistical methods.
- the demand indications are weighted such that higher weighted demand indications may be more influential in the analysis module 255 identifying the commerce item based on the demand indications.
- the weighting can be pre-defined or dynamically determined based on a user feedback data (e.g., data that indicates whether the user actually had demand for the commerce item identified by the analysis module 255 ).
- the feedback data is included in the attribute data subsequent to the analysis module 255 identifying the commerce item. In this way, the analysis module can adapt, learn, or evolve as more of the attribute data is received.
- the analysis module 255 employs various machine-learning techniques to enhance identifying the commerce item based on the demand indications. Similar techniques may be applied by the item module 250 to extract the demand indications in the previous operation.
- the characteristic module 225 infers or directly measures user characteristics pertaining to the user from the attribute data.
- the characteristic module 225 may store the inferred user characteristics for subsequent analysis, for example, in a storage device such as database(s) 126 .
- the characteristic module 225 may infer a vast spectrum of the user characteristics from the attribute data.
- user characteristics include demographic data (e.g., age, gender, marital status, number of children), user preferences (e.g., being a morning person, favorite locations, enjoying spicy food), idiosyncrasy (e.g., being forgetful, such as draining the battery on a mobile device; or being impatient, such as a line breaker that will leave a store if the line is too long), qualities (e.g., being athletic, being tail, having a large vocabulary), personality traits (e.g., being a risk taker), actions, activities (e.g., working for a nonprofit), attitudes, habits (e.g., being a coffee drinker), behaviors, beliefs, biases, demeanor, and physical characteristics of the user (e.g., height, weight, garment sizes, eye color, hair color).
- demographic data e.g., age, gender, marital status, number of children
- user preferences e.g., being a morning person, favorite locations, enjoying spicy food
- the specificity of the characteristics ranges from very narrow (e.g., drinks a particular brand of soda) to very broad (e.g., being generally philanthropic).
- the attribute data may include user location data that may indicate frequent visits to a local school, local soccer fields, and the like.
- the characteristic module 225 infers that the user has children based on the types of locations the user may be frequently visiting,
- the characteristic module 225 performs varying degrees of inferential analysis of the attribute data to derive the user characteristics. For example, the characteristic module 225 infers the user's wake-up time based on user device activity or other activity (e.g., connected alarm clock settings, logins to accounts, and various other user activities that may indicate a wake-up time). In this example, the characteristic module 225 infers a particular user characteristic that may be of a larger inferential jump such as the user being a morning person or a person that likes to steep in. The degree of inferential jump may be configurable. In some example embodiments, the characteristic module 225 employs various techniques to minimize or otherwise control incorrect inferences (e.g., machine-learning, other learning algorithms).
- the characteristic module 225 may learn, adapt, or evolve as more of the attribute data is received (e.g., via machine learning techniques or other learning algorithms).
- the attribute data may include location data of the user.
- the characteristic module 225 may infer a favorite location of the user based on a pattern (e.g., frequently visited locations) in the location data. However, the characteristic module 225 may subsequently receive employment data of the user that may indicate a current employer including an employer location.
- the characteristic module 225 may learn, update, or otherwise adapt to account for the new attribute data.
- the characteristic module 225 does not infer a favorite location of the user if the location is a work location of the user.
- the user provides input directly (e.g., via a user interface configured to receive inferential guidance from the user) to facilitate the characteristic module 225 in inferring characteristics from the attribute data (e.g., user input indicating that a particular inferred characteristic is incorrect or providing input to be used as a basis for future inferences).
- a user interface configured to receive inferential guidance from the user
- the characteristic module 225 in inferring characteristics from the attribute data (e.g., user input indicating that a particular inferred characteristic is incorrect or providing input to be used as a basis for future inferences).
- the characteristic module 225 performs very little or no analysis to derive the user characteristics from the attribute data. For example, if the attribute data includes an alarm time setting from a connected alarm clock (e.g., a smart phone with an alarm clock app), the alarm time setting directly indicates a wake-up time. Since the attribute data directly relates to a particular user characteristic, the characteristic module 225 need not perform analysis to derive the user characteristic,
- the user characteristic comprises predefined characteristics or dynamically determined characteristics. For instance, a particular set of characteristics can be predefined (e.g., work location, home location, marital status, socio-economic level). These example embodiments, the characteristic module 225 determines that particular predefined characteristics are associated with the user based on an analysis of the attribute data. In other instances, the characteristic module 225 dynamically determines characteristics based on the attribute data. For example, the attribute data may indicate that the user owns a particular exotic pet. Although there may not be a predefined characteristic associated with the particular exotic pet, the characteristic module 225 determines the user characteristic of owning an exotic pet from the attribute data, in this example.
- predefined characteristics e.g., work location, home location, marital status, socio-economic level.
- the order module 260 facilitates the user purchase or suggested transaction, for the user, associated with the commerce item based, at least in part, on the user characteristics.
- Facilitating a particular purchase is intended to include actions such as automatically (e,g., without intervention or action of the user) performing the particular purchase on behalf of the user, causing presentation of a notification that includes the option to make the particular purchase, or other actions associated with facilitating the particular purchase (e.g., causing presentation of an advertisement, adjusting item listing search results of the user to emphasize item listings associated with a particular item).
- the order module 260 determines various parameters associated with the user purchase e.g., order parameters or transaction parameters) based on the attribute data, the user characteristics, the demand indications, or other data. In the discussion below, additional aspects of facilitating the user purchase are described.
- FIG. 4 is a flow diagram illustrating further operations for facilitating the user purchase based, at least in part, on an evaluation of an inventory level, according to some example embodiments.
- the item module 250 extracts a current inventory level of the commerce item from the attribute data.
- the item module 250 extracts a quantity of the commerce item from the attribute data that includes inventory data received from a smart refrigerator.
- the attribute data includes inventory indications from sensors that directly monitor or measure the commerce item.
- brake pads in an automobile of the user can be monitored via a sensor operable to indicate a condition of the brake pads (e.g., needing replacement).
- another user that may be associated with the user may purchase a particular item for which the user has demand. In this example, the user may no longer have demand for the particular item based on the purchase by the another user (e.g., shared shopping list between family members).
- the analysis module 255 determines an inventory threshold fur the commerce item by modeling usage of the commerce item based on the extracted current inventory level and the inferred user characteristics. In an example embodiment, the analysis module 255 determines the inventory threshold such that when the current inventory level may be below the threshold, the inventory may need to be reordered to avoid depletion. For instance, the analysis module 255 calculates a usage rate corresponding to the commerce item based on the attribute data, the user characteristics, or other data and applies the usage rate to determine the inventory threshold for the commerce item to avoid depletion of a supply of the commerce item.
- the analysis module 255 determines the usage rate for a particular item based on historical purchase history data and infers usage rate based on a frequency of purchase of the particular item.
- the commerce item may be coffee beans and the analysis module 255 determines that based on the user's current supply of coffee beans and the user's rate of consumption (e.g., the usage rate) corresponding to coffee beans, the user may run out in fourteen days.
- the analysis module 255 determines the inventory threshold to be a value, such as a quantity of the coffee beans, that may be the current inventory level several days prior to depletion of the supply of coffee beans.
- the analysis module 255 identifies a mismatch between the inventory threshold and the current inventory level. For example, if the analysis module 255 determines that the current inventory level is below the inventory threshold, the analysis module 255 identifies the mismatch on that basis.
- the order module 260 automatically (e.g., without intervention or action of the user) performs the user purchase on behalf of the user based on the mismatch, according to some implementations.
- the order module 260 accounts for shipping delays and other delays so as to avoid the current inventory level of the commerce item falling below the inventory threshold.
- the analysis module 255 increases the inventory threshold to account for delays in receiving an order for a particular item.
- FIG. 5 is a flow diagram illustrating further operations for facilitating the purchase including operations to determine parameters for the purchase, according to some example embodiments.
- the order module 260 determines at least one order parameter based, at least in part, on the user characteristics.
- the order parameter may include at least one of a quantity, a delivery time, a payment time, a delivery method, a delivery destination, a merchant, a brand, a price, an item color, an item style, and so on.
- the user characteristics may indicate that the user may wear a certain garment size.
- the order module 260 specifies order parameters for clothing or apparel according to the garment size.
- the order module 260 may specify a brand for the user purchase based on the user characteristics (e.g., historical brand purchases by the user or an analysis of the user's style and the brands that conform to that style).
- the user characteristics may indicate that the user may be minimizing cost above other considerations.
- the order module 260 identifies a tower cost option as opposed to a speedier option (e.g., wait for a sale for a particular item or use the cheapest shipping).
- the user characteristics may indicate that the shipping speed may be important for certain items (e.g., a trendy new mobile device that the user may want right away).
- the order module 260 determines the delivery method parameter based on how fast the order may be delivered.
- the order module 260 specifies the delivery location for the user purchase based on the user characteristics (e.g., if the user purchase relates to items for the user's work, the delivery location may be the user's work location rather than a home address).
- the order module 260 may determine many other order parameters based on the user characteristics.
- the order module 260 facilitates the purchase according to the determined order parameters. For example, the order module 260 may recommend the user purchase to the user, with the recommendation including the determined order parameters (e.g., providing the user with a notification including the option to make the user purchase). In another example, the order module 260 automatically makes the user purchase on behalf of the user. For instance, if the order module 260 determines that the user purchase may be urgent (e.g., to avoid depletion of a supply of a certain item), routine (e.g., purchasing bottle water), or specified by the user as a permissible automatic purchase in advance, the user purchase may be made automatically to avoid burdening the user with the decision to make the user purchase.
- the order module 260 may recommend the user purchase to the user, with the recommendation including the determined order parameters (e.g., providing the user with a notification including the option to make the user purchase).
- the order module 260 automatically makes the user purchase on behalf of the user. For instance, if the order module 260 determines that the user purchase may be
- FIG. 6 is a flow diagram illustrating further operations for determining order parameters including operations to determine a temporal parameter associated with the purchase, according to some example embodiments.
- the analysis module 255 identities a purchase motive of the user for the commerce item by analyzing the user characteristics.
- the purchase motive corresponds to a motive time.
- the user may be planning a vacation that includes a beach destination.
- the vacation may be indicative of the purchase motive of the user for items associated with the vacation (e.g., sunscreen for a beach type vacation, snacks for a road trip type vacation, Broadway tickets for a New York city trip).
- the motive time corresponds to the beginning of the vacation (e.g., as determined by user calendar information included in the attribute data or purchase history data such as plane ticket information).
- the order module 260 determines temporal order parameters based on the motive time. In the example above where the user may be planning a vacation, the order module 260 determines the temporal order parameters so that the items corresponding to the user purchase arrive prior to the vacation. In another example, if the purchase motive is associated with an event, such as a graduation party, the order module 260 may determine the temporal order parameters such that the items associated with the user purchase are delivered prior to the graduation party, since the user may no longer have demand for the particular item after a certain time.
- the order module 260 facilitates the purchase according to the determined temporal order parameters. For example, the order module 260 schedules the items corresponding to the user purchase to arrive at a certain time.
- FIG. 7 is a flow diagram illustrating further operations to facilitate the purchase based, at least in part, on purchase criteria, according to some example embodiments.
- the analysis module 255 accesses purchase criteria corresponding to the user.
- the purchase criteria include predefined criteria, user specified criteria, dynamically determined criteria, either alone or any suitable combination thereof.
- the purchase criteria may include temporal based criteria (e.g., criteria that specifies making the user purchase with certain time periods), budget criteria (e.g., spending limits associated with particular items or categories of items), context based criteria (e.g., adjusting the budgeting criteria based on the user's current location), among other purchase criteria.
- the user specifies a budget for a particular category or good (e.g., transportation, food, utilities, housing, entrainment, travel, health), a total budget, or a monthly budget.
- a budget for a particular category or good e.g., transportation, food, utilities, housing, entrainment, travel, health
- a total budget e.g., a total budget, or a monthly budget.
- rules based criteria such as a particular time to make certain purchase (e.g., after paycheck is deposited).
- the analysis module 255 identifies, and includes, in the purchase criteria, patterns in the user's purchasing habits, objectives, goals, or dynamically generate criterion.
- the analysis module 255 determines that the user may be afflicted with a medical condition, such as a peanut allergy.
- the analysis module 255 includes a. criterion in the purchase criteria to avoid items that contain peanuts.
- the analysis module 255 determines that the user may be attempting to maintain a vegan diet and the analysis module 255 may avoid food items that are contrary to the goal of maintaining a vegan diet.
- the order module 260 automatically purchases the commerce item on behalf of the user according to the purchase criteria.
- the order module 260 determines satisfaction of the purchase criteria prior to facilitating the user purchase for the user. For example, the order module 260 determines that a particular budget criterion included in the purchase criteria has been exceeded and the order module 260 may not perform the user purchase on that basis. In other words, the order module 260 facilitates the user purchase based on the determined satisfaction of the purchase criteria.
- FIG. 8 is a flow diagram illustrating an example method 800 of one such combination of the operations, although many other suitable combinations may be employed.
- the attribute module 220 receives the attribute data associated with the user.
- the item module 250 extracts the demand indications from the attribute data.
- the analysis module 255 identifies the commerce item from the attribute data based on the demand indications.
- the characteristic module 225 infers the user characteristics from the attribute data. As shown in FIG. 8 , various combinations of the above operations may be employed to facilitate the user purchase at the operation 350 .
- the item module 250 extracts the current inventory level of the commerce item at the operation 410 .
- the analysis module 255 determines the inventory threshold for the commerce item.
- the analysis module 255 identifies the mismatch between the inventory threshold and the current inventory level.
- the user analysis system 152 may proceed to the operation 510 .
- no subsequent operation may be performed.
- the order module 260 deter nines the order parameters of the user purchase based on the user characteristics, in an example embodiment. In some example embodiments, this may involve the operations 610 , 620 , and 630 , respectively, to determine the temporal order parameters that may be included in the order parameters.
- the order module 260 facilitates the user purchase according to the order parameters.
- FIG. 8 shows an example embodiment where various ones of the above operations may be employed in conjunction with each other to facilitate the user purchase.
- FIG. 9 is a flow diagram illustrating an alternative example method 900 for identifying the commerce item and facilitating the user purchase, according to some example embodiments.
- the example method 900 may involve similar operations as those described above.
- the attribute module 220 receives or accesses the attribute data associate with the user.
- the characteristic module 225 infers the user characteristics pertaining to the user from the attribute data.
- the analysis module 255 identifies similar users that are similar to the user based on the inferred user characteristics and respective user characteristics of a plurality of other users.
- the analysis module 255 identifies similar users that are similar to the user based on a variety of factors.
- the analysis module 255 accesses the attribute data or stored user characteristics corresponding to the plurality of other users.
- the analysis module 255 identities the similar users from among the plurality of other users that are similar to the user based on the inferred user characteristics of the user and respective user characteristics of the plurality of other users.
- the analysis module 255 may correlate, match, or otherwise compare the inferred user characteristics with respective user characteristics of the plurality of other users to identity the similar users.
- the analysis module 255 identifies the similar users based on same or similar demographic data (e.g., same or similar age, marital status, gender, geographic location, etc.), same or similar user characteristics (e.g., same or similar brand purchases), same or similar attribute data, and so on.
- same or similar demographic data e.g., same or similar age, marital status, gender, geographic location, etc.
- same or similar user characteristics e.g., same or similar brand purchases
- same or similar attribute data e.g., same or similar attribute data, and so on.
- the analysis module 255 identifies the commerce item from the attribute data based on the user characteristics of the similar users and the demand indications.
- the demand indications may indicate a particular item that may not be particularly significant based on the demand indications (e.g., the demand metric may be particularly low for the particular item).
- the analysis module 255 may identify this particular item based on the user characteristics of the similar users indicating that the particular item may be of significance. In other words, although the demand indications did not show a strong demand for the particular item, the user characteristics of the similar users indicated that the user may have strong demand for the particular item.
- the demand indications may indicate the user has demand for a pair of sunglasses.
- the demand indications in this example may further indicate the user may be interested in brands X, Y, and Z with a particular emphasis on brand X.
- the user characteristics of the similar users e,g., user of the same or similar age, location, gender, other demographic information, or similar purchasing preferences may indicate that brand Z may be in high demand for the users similar to the user.
- the analysis module 255 may identify brand Z sunglasses as the commerce item.
- the order module 260 determines the order parameters or transaction parameters based on the user characteristics of the similar users. For example, the delivery method may be determined based on the user characteristics of the similar users. For instance, if the similar users frequently choose a speedy delivery method for a particular item (e.g., new electronics), the order module 260 may determine a speedy delivery method corresponding to the user purchase for the commerce item that may be the same or similar to the particular item.
- a speedy delivery method corresponding to the user purchase for the commerce item that may be the same or similar to the particular item.
- the purchase criteria may include dynamically determined criterion based on the user characteristics of the similar users. That is to say, the analysis module 255 may dynamically generate a portion of the purchase criteria based on the similar users. For example, a default budget for particular categories of items may be determined based on an analysis of the user characteristics of the similar users (e.g., other users with similar demographic information as the user may on average spend a certain amount per category of good).
- the order module 260 facilitates the user purchase associated with the commerce item according to the determined order parameters. As discussed above, the order module 260 facilitates the user purchase in a variety of manners including automatically performing the user purchase on behalf of the user or causing presentation of a notification to the user that includes the option to make the user purchase according to the order parameters.
- FIG. 10 is a flow diagram illustrating further operations to facilitate the purchase based, at least in part, on the demand metric, according to some example embodiments.
- the analysis module 255 calculates the demand metric of the identified item based on the demand indications corresponding to the identified item.
- the order module 260 facilitates the user purchase based on the demand metric. For example, if the order module 260 determines that the demand metric is high (e.g., exceeds a predefined or dynamically determined threshold) then the order module 260 may facilitate the user purchase with more urgency than for a lower demand metric. For instance, the order module 260 automatically performs the user purchase for the user based on a high demand metric or more frequently causes presentation of the notification that includes the option to make the user purchase to the user (or with more emphasis such as a more conspicuous notifications such as a larger user interface presentation to the user). In some instance, the order module 260 determines the order parameters based on the demand metric. For instance, if the order module 260 determines that the demand metric is high, then the order module 260 may subsequently determine a speedier delivery option for the commerce item.
- the demand metric e.g., exceeds a predefined or dynamically determined threshold
- FIG. 11 is a flow diagram illustrating further operations to facilitate the purchase using a notification, according to some example embodiments.
- the presentation module 210 generates the notification that includes an option to make the user purchase.
- the notification may include a user interface, a text message (.Short Message Service (SMS), Multimedia Messaging Service (MMS), Enhanced Messaging Service (EMS), other messaging modalities), and so on.
- SMS Short Message Service
- MMS Multimedia Messaging Service
- EMS Enhanced Messaging Service
- the presentation module 210 may generate the content of the notification based on the commerce item, the user characteristics, the user characteristics of the similar users, the attribute data, and so forth.
- the notification may include the order parameters for the user purchase.
- the presentation module 210 causes presentation of the generated notification to the user.
- the presentation module 210 may communicate instructions to present a user interface that includes the notification to a device of the user.
- the presentation module 210 may determine the device of the user to present the notification of the user based on the user characteristics. For example, if the user has a preference for a particular device (e,g., a mobile device of the user), the presentation module 210 may cause presentation of the notification to that device.
- the notification may provide the user the option to specify or modify the order parameters of the user purchase.
- the presentation module 210 receives a user selection of the option to make the purchase. For example, if the user chooses to make the user purchase, the presentation module 210 may receive the user selection of the option to make the purchase and communicate the selection to the order module 260 to perform the user purchase.
- the order module 260 performs the purchase, according to some example embodiments.
- the order module 260 may make the user purchase according the order parameters on behalf of the user.
- FIG. 12 is a flow diagram illustrating further operations for presenting a notification, according to some example embodiments.
- the presentation module 210 identifies presentation parameters for presentation of the notification. For example, the presentation module 210 may identify the presentation parameters based on the user characteristics, the user characteristics of the similar users, the attribute data, the demand indications, or other data.
- the presentation parameters may include a preferred device of the user to present the notification, preferred time of day to present the notification, content preferences (e.g., do not present notifications regarding particular item categories), and so on.
- the user characteristics may indicate a work time period for the user. In this example, the notification may not be presented to the user during the work time period as the user may not respond.
- the analysis module 255 may identity a device status of a particular user device and, based on the device status, the presentation module 210 may route the notification to another device. For instance, if the device status indicates that the device is inactive (e.g., being charged), the presentation module 210 may cause presentation of the notification to another device (e.g., an active device as determined by device sensors).
- the presentation module 210 may cause presentation of the notification to another device (e.g., an active device as determined by device sensors).
- the presentation module 210 causes presentation of the notification according to the presentation parameters. For instance, the presentation module 210 may cause presentation of the notification to a preferred device of the user at a time of day that the user is likely to respond to the notification as determined based on an analysis of the user characteristics.
- FIG. 13 is a flow diagram illustrating further operations for presenting a notification, according to some example embodiments.
- the analysis module 255 detects a trigger action of the user based on the real-time data included in the attribute data. For example, the analysis module 255 may determine that the user may be moving into the kitchen (e.g., as determined by a Bluetootb® handshake between a mobile device the user may be wearing and a smart appliance located in the user's kitchen), which may be a good time to notify the user regarding food supplies.
- the analysis module 255 may determine that the user may be moving into the kitchen (e.g., as determined by a Bluetootb® handshake between a mobile device the user may be wearing and a smart appliance located in the user's kitchen), which may be a good time to notify the user regarding food supplies.
- the presentation module 210 causes presentation of the notification to the user in response to detecting the trigger action. In other words, based on the analysis module 255 detecting the trigger action of the user, the presentation module 210 may cause presentation of the notification to the user.
- FIG. 14 is a flow diagram illustrating an example method 1400 showing communication between various devices in relation to presenting a notification to the user, according to some example embodiments.
- attribute source 1402 communicates the attribute data to the data mesh system 150 .
- the attribute module 220 may receive the attribute data associated with the user.
- the item module 250 extracts the demand indications from the attribute data.
- the analysis module 255 may identify the commerce item from the attribute data based on the demand indications.
- the characteristic module 225 infers the user characteristics from the attribute data.
- the order module 260 facilitates the user purchase by generate the notification at the operation 1420 .
- the presentation module 210 communicates the notification from the data mesh system 150 to the user device 1406 .
- the user device 1406 may receive the notification and present the notification to the user.
- the user may select an option to make the user purchase.
- the user device 1406 may communicate an indication of the user selection to make the user purchase at the operation 1440 .
- the data mesh system 150 may receive the user selection to make the user purchase.
- the order module 260 may perform the user purchase in response to receiving the user selection to make the user purchase at operation 1460 .
- FIG. 15 depicts an example user interface 1500 to facilitate the purchase, according to some example embodiments. It will be noted that alternate presentations of the displays of FIG. 15 may include additional information, graphics, options, and so forth; other presentations may include less information, or may provide abridged information for easy use by the user.
- Notification 1510 may be text messages, such as Short Message Service (SMS) messages, Multimedia Messaging Service (MMS), Enhanced Messaging Service (EMS), and other messaging modalities, which may be provided to notify the user of the user purchase including the order parameters.
- SMS Short Message Service
- MMS Multimedia Messaging Service
- EMS Enhanced Messaging Service
- the notification 1510 may be a push notification or similar type of notification. Some notification may be interactive, enabling the user to make a selection through the SMS system, mobile application, or other method. For instance, the user may interact with the notification 1510 using user interface element 1520 .
- FIGS. 16 and 17 illustrate examples of identifying the commerce item and facilitating the user purchase associated with the commerce item, according to some example embodiment.
- a scene 1600 depicts a living room attached to an open kitchen.
- the scene 1600 includes a media entertainment device 1610 , a smart television (TV) 1620 , a lamp 1630 , a mobile computer 1640 , a mobile device 1650 , a user 1660 , a smart refrigerator 1670 , and a kitchen display 1680 .
- TV smart television
- Each of the devices 1610 - 1650 , 1670 , and 1680 may be attribute sources coupled to a network (e.g., the network 104 ) and operable to communicate with the data mesh system 150 .
- the user 1660 is carrying a smart device (e.g., a mobile device, a wearable device, a near field communication (NEC) enabled smart ring) on their person that may provide real-time data corresponding to the user 1660 .
- the user 1660 may be carrying a mobile device that may provide real-time location data (e.g., as determined by a GPS component, beacon location detect, or other location services).
- the analysis module 255 tracks, monitors, or otherwise observes the location of the user 1660 via a particular device the user is wearing or the location of the user 1660 may be derived from various real-time data associated with the user's location included in the attribute data (e.g., Bluetooth® handshakes between a device the user is wearing and a another device with a known or fixed location).
- attribute data e.g., Bluetooth® handshakes between a device the user is wearing and a another device with a known or fixed location.
- the lamp 1630 is a smart lamp operable to communicate various operating data to the data mesh system 150 or connected to a smart outlet operable to monitor the functionality of the lamp 1630 .
- the item module 250 extracts demand indications from portions of the attribute data corresponding to the lamp 1630 .
- the demand indications may indicate use of the lamp in a particular way (e.g., the user 1660 may use a low brightness setting on the lamp) or that the light bulb of the lamp 1630 has burned out.
- the analysis module 255 identifies the commerce item as a light bulb that needs to be replaced based on the demand indications (e.g., detected via sensors of the lamp 1630 or derived via data from a smart outlet such as reduced power consumption indicating a burnt out light bulb). Subsequently, the order module 260 may notify the user of the burnt-out light bulb with an option to reorder a particular light bulb based on the user characteristics (e.g., purchase history of the user). In some instance, the order module 260 may automatically reorder the light bulb without notifying the user. In various example embodiments, the order module 260 automatically performs the user purchase based on the purchase criteria (e.g., for this particular category of goods, simply place an automatic order).
- the purchase criteria e.g., for this particular category of goods, simply place an automatic order.
- the smart refrigerator 1670 communicates inventory data to the data mesh system 150 .
- the smart refrigerator may communicate food supply data.
- the item module 250 extracts demand indications from the food supply data.
- the analysis module 255 identifies the commerce item based on the demand indications. For instance, the analysis module 255 may identify milk as the commerce item based on a low inventory level of milk.
- the order module 260 determines a quantity of milk to order based on the user characteristics (e.g., historical purchase data for milk during the current season of the year). The order module 260 may then generate a notification that includes an option to purchase milk.
- the order module 260 causes presentation of the notification based on the user characteristics.
- the real-time data included in the attribute data may indicate the user 1660 is currently in the kitchen, which may be a good time to provide the user 1660 the option to reorder milk (the reasoning being that the user 1660 may be able to inspect the food supply first).
- the order module 260 may determine that the status of the mobile device 1650 is inactive (e.g., turned off or not in use based on a lack of movement detected from device accelerometers). In this scenario, the order module 260 may cause presentation of the notification to the user on another device such as display 1680 ,
- FIG. 17 illustrates an example of identifying an item and facilitating a purchase associated with the identified item, according to some example embodiments.
- the scene 1700 depicts a city including the user 1710 driving in a car.
- the item module 250 extracts demand indications such as a location of the user 1710 or a route of the user 1710 that may be indicative of a. destination 1750 and thus, the commerce item.
- the analysis module 255 determines the destination 1750 of the user 1710 from the demand indications or based on, for example, a route 1730 the user is taking, a time of day, and a day of the year.
- the analysis module 255 may determine the destination 1750 of the user 1710 based on the demand indications and the user characteristics or real-time context data included in the attribute data (e.g., location as determine by a GPS component of a mobile device). In some example embodiments, the analysis module 255 or the characteristic module 225 determines the real-time location of the user based on Bluetooth® or other close range communication detections within a radius such as radius 1720 . For instance, the analysis module 255 determines that the user 1710 may be at the destination 1750 if the user 1710 is within the radius 1740 of the destination 1750 . In this scenario, the destination 1750 may be a coffee shop and the commerce item may be a cup of coffee.
- the order module 260 automatically places an order for the cup of coffee, or presents a notification with the option to place the order for the coffee, while the user 1710 may be in route.
- the order module 260 determines the order parameters based on the user characteristics such as past orders for coffee included in a purchase history of the user.
- the presentation module 210 determines the presentation parameters based on the user being in the car (e.g., present an audio alert for the option to place the order and receive a vocal command from the user to place the order).
- FIGS. 18A and 18B depict example configurations for communicatively coupling attribute sources, according to some example embodiments.
- the example embodiments described herein may access a vast and rich “Internet of Things” (IoT) dataset that is predominantly provided via communicatively connected, interconnected, or otherwise communicatively coupled machines and devices that may include a multitude of sensors.
- IoT Internet of Things
- devices and machines that provide the attribute data such as the attribute sources, may be communicatively coupled in many different configurations.
- each attribute source may be communicatively coupled to the networked system 102 independently to provide the networked system 102 access to the attribute data corresponding to each of the communicatively coupled attribute sources.
- FIGS. 18A and 18B depict alternative example attribute source configurations. It will be appreciated that FIGS. 18A and 18B are merely non-limiting examples of attribute source configurations and many other configurations or suitable combinations of configurations may be employed.
- FIG. 18A depicts an example embodiment that may include attribute sources 1810 communicatively coupled in a decentralized device-to-device mesh.
- the attribute data corresponding to a particular device in the mesh may be received from any one or more of the devices in the mesh.
- the networked system 102 may access the attribute data corresponding to attribute source E via attribute source H or a combination of attribute sources H and I in FIG. 18A .
- the attribute source H or may aggregate and store the attribute data corresponding to attribute sources A-F in FIG. 18A .
- the networked system 102 may access the attribute data associated with attribute source E by communicating with attribute source H or I in FIG. 18A .
- FIG. 18B depicts another example embodiment that may include attribute sources 1820 communicatively coupled to a central attribute source (e.g., attribute source H in FIG. 18B ).
- the networked system 102 may access the attribute data associated with attribute sources A-G via the central attribute source in FIG. 18B .
- the central attribute source may aggregate and store the attribute data received or accessed from the attribute sources A-G and provide a centralized access point for the attribute data associated with all, or some, of the communicatively coupled attribute sources A-G in FIG. 18B .
- FIG. 19 depicts example sources 1900 including attribute sources 1910 , according to some example embodiments.
- the attribute data may include data received, retrieved, or accessed from the attribute sources 1910 .
- the attribute sources 1910 may provide data including everything from a moisture level of a houseplant to a dribbling rhythm of a basketball.
- the attribute data corresponding to the attribute sources 1910 may be received or accessed in real-time or near real-time.
- the attribute sources 1910 may communicate or otherwise provide access to the attribute data as it becomes available.
- the attribute sources 1910 may include user device sources 1920 , user data sources 1930 , transportation sources 1940 , materials sources 1950 , third party sources 1960 , home sources 1970 , and a variety of other sources.
- the attribute sources 1910 may be associated with a wide variety of sensors, gauges, measurement components, and other components.
- the attribute data may include data corresponding to the user device sources 1920 .
- the user device sources 1920 may include such non-limiting examples as 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 telephone, a smart phone, a mobile device, a wearable device (e.g., a smart watch), a smart home device (e.g., a smart appliance), and other smart devices.
- PC personal computer
- PDA personal digital assistant
- the attribute data corresponding to the user device sources 1920 may include data associated with sensors, gauges, and other measurement components such as environmental sensor data (e.g., ambient temperature), biometric sensor data (e.g., heart rate), detection data (e.g., detection of a Near Field Communication (NFC) beacon), motion data (e.g., acceleration), position data (e.g., location as determined by a GPS of a mobile device), and so forth.
- environmental sensor data e.g., ambient temperature
- biometric sensor data e.g., heart rate
- detection data e.g., detection of a Near Field Communication (NFC) beacon
- motion data e.g., acceleration
- position data e.g., location as determined by a GPS of a mobile device
- the attribute data corresponding to the user device sources 1920 may include data such as device type, device model, device name, a unique device identifier, and other device parameters.
- the device type data may provide a basis for an inference associated with the attribute data. For instance, if the device type data indicates that the device is a mobile device of the user, location data corresponding to the mobile device may indicate the location of the user. Similarly, if the device type is a media entertainment system, the attribute data corresponding to the media entertainment system may be associated with a home of the user.
- the user data sources 1930 may include calendars (e.g., user calendar events such as birthdays, trips, exams), user profiles (e.g., demographic information such as age, gender, income level), purchase histories, browse histories (e.g., search terms), social media content (e.g., check-ins, posts, connections), other user data (e.g., bookmarked websites, preferences or settings for various applications, application usage data such as time spent using a particular application), and the like.
- calendars e.g., user calendar events such as birthdays, trips, exams
- user profiles e.g., demographic information such as age, gender, income level
- purchase histories e.g., browse histories (e.g., search terms)
- social media content e.g., check-ins, posts, connections
- other user data e.g., bookmarked websites, preferences or settings for various applications, application usage data such as time spent using a particular application
- the attribute data corresponding to the user data sources 1930 may be stored, for example, by the user device sources 1920 (e.g., a mobile device that includes a mobile browser with browse history of the user), application server(s) 140 (e.g., payment history of the user stored in payment system(s) 144 , user profiles stored by an e-commerce website), the third party server(s) 130 (e.g., social media data stored in a social networking service), and so on.
- the attribute data corresponding to the user device sources 1920 may include device resource data.
- the device resource data may include files stored on the devices or metadata associated with the files.
- the device resources may include digital media files (e.g., MP3 formatted songs) or apps (e.g., pedometer app).
- the metadata associated with the device resources may include usage data such as number of times a song has been played, amount of time using a particular app, and so forth.
- the attribute data corresponding to the transportation sources 1940 may include acceleration data, velocity data, and other sensor data (e.g., brake pad wear data, gear shifting data).
- the attribute data corresponding to the transportation sources 1940 may provide indications of a user's driving patterns and styles (e.g., comes to a complete stop at a stop sign, speeds, or finicky use of the brakes).
- the materials sources 1950 are also increasingly gaining the ability to capture data.
- the attribute data may include data corresponding to the materials sources 1950 .
- clothing may be embedded with sensors to detect motion. Data from these sensors may provide indications of whether the user is active or inactive.
- clothing may be embedded with biometric sensors that may provide a continuous feed of biometric data corresponding to the user. The biometric data may provide indications of the user's health, athletic ability, and many other characteristics corresponding to the user.
- structures may be equipped with sensors to passively or actively monitor the surrounding environment (e.g., street cameras, traffic cameras, and other sensors).
- the attribute data may include data associated with the third party sources 1960 .
- the third party sources 1960 may also provide an abundance of data associated with the user.
- the attribute data may include data accessed from government websites or other public records that may provide criminal histories, civil citation histories, credit histories, or other publicly available information.
- the attribute data may include data corresponding to the home sources 1970 .
- the home sources 1970 may include smart appliances, consumables, utilities, and many other smart home devices.
- the attribute data may include consumable inventories and consumption rates of various consumable goods (e.g., milk, bread) tracked or monitored by smart refrigerators.
- the attribute data may include utility usage data (e.g., electricity, water). Analysis of the utility usage data may indicate patterns or a status of the user, such as the user being on vacation, the user being ill (e,g., increasing house thermostat set temperature to cope with a cold), the user being an energy conscious consumer, and so on.
- FIG. 20 depicts non-limiting example components 2000 that may provide attribute data according to some example embodiments.
- I/O components 2010 may include input components 2020 , output components 2030 , environmental components 2040 , motion components 2050 , position components 2060 , biometric components 2070 , communication components 2080 , detection components 2090 , and a wide gamut of other sensors, gauges, and measurement components.
- the I/O components 2010 or a suitable combination of the I/O components 2010 may be included in any suitable device or machine such as those included in the attribute sources 1910 depicted in FIG. 19 to facilitate the functionality described herein.
- the attribute data provided by the I/O components 2010 may be accessible to all or some of the modules described above on a real-time or near real-time basis.
- the components 2000 are grouped according to functionality merely for simplifying the following discussion and the grouping is in no way limiting.
- the input components 2020 may include alphanumeric input components (e.g., a keyboard, a touch screen configured to receive alphanumeric input, a photo-optical keyboard, or other alphanumeric input components), point-based input components (e.g., a mouse, a touchpad, a trackball, a joystick, a motion sensor, or other pointing instrument), tactile input components (e.g., a physical button, a touch screen that provides location and force of touches or touch gestures, or other tactile input components), audio input components (e.g., a microphone), and the like.
- the input components 2020 may receive input from the user to facilitate the functionalities described herein. For instance, the user may interact with a user interface using the input components 2020 .
- the output components 2030 may include visual components (e.g., a display such as a plasma display panel (PDP), a light emitting diode (LED) display, a liquid crystal display (LCD), a projector, or a cathode ray tube (CRT)), acoustic components (e,g., speakers), haptic components (e.g., a vibratory motor), other signal generators, and so forth.
- the output components 2030 may present information to the user. For example, the output components 2030 may present a user interface to the user or present media files to the user.
- the environmental components 2040 may include illumination sensors (e.g., photometer), temperature sensors (e.g., one or more thermometers that detect ambient temperature), humidity sensors, pressure sensors (e.g., barometer), acoustic sensors (e.g., one or more microphones that detect background noise), proximity sensors (e.g., an infrared sensor that detects nearby objects), gas sensors (e,g., e.g., machine olfaction detection sensors, gas detection sensors to detect concentrations of hazardous gases for safety or to measure pollutants in the atmosphere), and so on.
- the environmental components 2040 may measure various physical parameters to provide an indication or signal corresponding to the physical environment surrounding the environmental components 2040 .
- the motion components 2050 may include acceleration sensors (e.g., accelerometer), gravitation sensors, rotation sensors (e.g., gyroscope), and so forth.
- the motion components 2050 may provide motion data such as velocity, acceleration, or other force measurements along an x, y, and z axes.
- the motion data may be provided at a regular update rate (e.g., 10 updates per second) that may be configurable.
- the position components 2060 may include location sensors (e.g., a Global Position System (GPS) receiver component), altitude sensors (e,g., altimeters or barometers that detect air pressure from which altitude may be derived), orientation sensors (e.g., magnetometers that provide magnetic field strength along the x, y, and z axes), and the like.
- location sensors e.g., a Global Position System (GPS) receiver component
- altitude sensors e,g., altimeters or barometers that detect air pressure from which altitude may be derived
- orientation sensors e.g., magnetometers that provide magnetic field strength along the x, y, and z axes
- the position components 2060 may provide position data such as latitude, longitude, altitude, and a time stamp. Similar to the motion components 2050 , the position components 2060 may provide the motion data at a regular update rate that may be configurable.
- the biometric components 2070 may include components to detect expressions, measure biosignais, or identify people, among other functions.
- the biometric components 2070 may include expression components to detect expressions (also referred to as “kinesics”) such as hand gestures (e.g., an optical component to detect a hand gesture or a Doppler component to detect hand motions), vocal expressions (e.g., a microphone to detect changes in voice pitch that may indicate tension), facial expressions (e.g., a camera to detect expressions or micro-expressions of a person such as a smile), body gestures, and eye tracking (e.g., detecting the focal point of a person's eyes or patterns in eye movement).
- hand gestures e.g., an optical component to detect a hand gesture or a Doppler component to detect hand motions
- vocal expressions e.g., a microphone to detect changes in voice pitch that may indicate tension
- facial expressions e.g., a camera to detect expressions or micro-expressions of
- the biometric components 2070 may also include, for example, biosignal components to measure biosignals such as blood pressure, heart rate, body temperature, perspiration, and brain waves (e.g., as determined by a e(electroencephalogram).
- biosignal components to measure biosignals such as blood pressure, heart rate, body temperature, perspiration, and brain waves (e.g., as determined by a e(electroencephalogram).
- the biometric components 2070 may include identification components to identify people such as retinal scanners (e.g., a camera component), vocal detectors (e.g., a microphone to receive audio data for voice identification), facial detectors, fingerprint detectors, and electroencephalogram sensors (e.g., to identify a person via unique brain wave patterns).
- the I/O components 2010 may include communication components 2080 operable to communicatively couple machines or devices.
- the communication components 2080 may include a network interface component or other suitable device to interface with a network (e.g., the network 104 ).
- the communication components 2080 may include wired communication components, wireless communication components, cellular communication components, Near Field Communication (NFC) components, Bluetooth® components (e.g., Bluetooth® Low Energy), Wi-Fi® components, and other communication components to provide communication via other modalities.
- NFC Near Field Communication
- Bluetooth® components e.g., Bluetooth® Low Energy
- Wi-Fi® components e.g., Wi-Fi® components
- IP Internet Protocol
- Wi-Fi® Wireless Fidelity
- NFC beacon a variety of information may be derived using the communication components 2080 such as location via Internet Protocol (IP) geo-location, location via Wi-Fi® signal triangulation, location via detecting a NFC beacon signal that may indicate a particular location, and so forth.
- IP Internet Protocol
- the I/O components 2010 may include detection components 2090 that may detect a variety of identifiers.
- the detection components 2090 may include Radio Frequency Identification (RFID) tag reader components, Near Field Communication (NFC) smart tag detection components, optical reader components (e.g., an optical sensor to detect one-dimensional bar codes such as Universal Product Code (UPC) bar code, multi-dimensional bar codes such as Quick Response (QR) code, Aztec code, Data Matrix, Dataglyph, MaxiCode, PDF417, Ultra Code, UCC RSS-2D bar code, and other optical codes), and acoustic detection components (e.g., microphones to identify tagged audio signals).
- RFID Radio Frequency Identification
- NFC Near Field Communication
- optical reader components e.g., an optical sensor to detect one-dimensional bar codes such as Universal Product Code (UPC) bar code, multi-dimensional bar codes such as Quick Response (QR) code, Aztec code, Data Matrix, Dataglyph, MaxiCode, PDF417, Ultra Code, UCC RSS-2D bar code
- FIG. 21 is a block diagram 2100 of an example data structure for the attribute data associated with a particular user according to example embodiments.
- the attribute data may be associated with a plurality of users such as user 2102 , 2104 , 2106 , 2108 , 2110 , 2112 , and 2114 .
- the attribute data may be accessed for a particular user by using a user identifier.
- the attribute data may include profile data 2120 , device data 2122 , calendar data 2124 , list data 2126 , list type data 2128 , interest data 2130 , fitment data 2132 , garment type data 2134 , preference data 2136 , measured dimension data 2138 , fitness goal data 2140 , reward data 2142 , location data 2144 , and other data not shown.
- the attribute data may be structured such that various portions of the attribute data are associated with other portions of the attribute data via relationships.
- the calendar data 2124 may include a calendar event associated with an event name, an event data, and an event location for the calendar event.
- FIG. 22 is a block diagram 2200 of an example data structure for data associated with a device according to some example embodiments.
- the device data 2122 of FIG. 21 may include a device identifier, a device name, device resources data (e.g., files stores on the devices such as browser cookies, media files), I/O component data, and so forth.
- the device identifier may, for example, comprise an Internet Protocol (IP) address, a Media Access Control (MAC) address, other unique identifiers, an International Mobile Station Equipment Identity (IMEI), or a Mobile Equipment Identifier (MEID).
- IP Internet Protocol
- MAC Media Access Control
- IMEI International Mobile Station Equipment Identity
- MEID Mobile Equipment Identifier
- the I/O component data may include standard device parameters 2202 , position data 2204 , location data 2206 , motion data 2208 , environmental data 2210 , biometric data 2212 , and other data.
- FIG. 22 merely depicts example attribute data that may correspond to a particular device, and a variety of other data not shown may be included in the device data.
- the standard device parameters 2202 may include parameters that are standard across multiple devices included in the IoT.
- standardized parameters and protocols may facilitate access and utilization of the attribute data corresponding to such devices. For example, the attribute data available on an unknown device may be accessed and utilized without the need to discover or otherwise determine which parameters are available and which units of measure are associated with the parameters. Many other schemes may be employed to discover or otherwise determine available parameters accessible on a particular device.
- Modules may constitute either software modules (e.g., code embodied on a machine-readable medium or in a transmission signal) or hardware modules.
- a “hardware module” is a tangible unit capable of performing certain operations and may be configured or arranged in a certain physical manner.
- one or more computer systems e.g., a standalone computer system, a client computer system, or a server computer system
- one or more hardware modules of a computer system e.g., a processor or a group of processors
- software e.g., an application or application portion
- a hardware module may be implemented mechanically, electronically, or any suitable combination thereof.
- a hardware module may include dedicated circuitry or logic that is permanently configured to perform certain operations.
- a hardware module may be a special-purpose processor, such as a Field-Programmable Gate Array (FPGA) or an Application Specific Integrated Circuit (ASIC).
- a hardware module may also include programmable logic or circuitry that is temporarily configured by software to perform certain operations.
- a hardware module may include software encompassed within a general-purpose processor or other programmable processor. It will be appreciated that the decision to implement a hardware module mechanically, in dedicated and permanently configured circuitry, or in temporarily configured circuitry (e.g., configured by software) may be driven by cost and time considerations.
- hardware module should be understood to encompass a tangible entity, be that an entity that is physically constructed, permanently configured (e.g., hardwired), or temporarily configured (e.g., programmed) to operate in a certain manner or to perform certain operations described herein.
- “hardware-implemented module” refers to a hardware module. Considering embodiments in which hardware modules are temporarily configured (e.g., programmed), each of the hardware modules need not be configured or instantiated at any one instance in time. For example, where a hardware module comprises a general-purpose processor configured by software to become a special-purpose processor, the general-purpose processor may be configured as respectively different special-purpose processors (e,g., comprising different hardware modules) at different times. Software may accordingly configure a particular processor or processors, for example, to constitute a particular hardware module at one instance of time and to constitute a different hardware module at a different instance of time.
- Hardware modules can provide information to, and receive information from, other hardware modules. Accordingly, the described hardware modules may be regarded as being communicatively coupled. Where multiple hardware modules exist contemporaneously, communications may be achieved through signal transmission (e.g., over appropriate circuits and buses) between or among two or more of the hardware modules. In embodiments in which multiple hardware modules are configured or instantiated at different times, communications between such hardware modules may be achieved, for example, through the storage and retrieval of information in memory structures to which the multiple hardware modules have access. For example, one hardware module may perform an operation and store the output of that operation in a memory device to which it is communicatively coupled. A further hardware module may then, at a later time, access the memory device to retrieve and process the stored output. Hardware modules may also initiate communications with input or output devices, and can operate on a resource (e.g., a collection of information).
- a resource e.g., a collection of information
- processors may be temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, such processors may constitute processor-implemented modules that operate to perform one or more operations or functions described herein.
- processor-implemented module refers to a hardware module implemented using one or more processors.
- the methods described herein may be at least partially processor-implemented, with a particular processor or processors being an example of hardware.
- a particular processor or processors being an example of hardware.
- the operations of a method may be performed by one or more processors or processor-implemented modules.
- the one or more processors may also operate to support performance of the relevant operations in a “cloud computing” environment or as a “software as a service” (SaaS).
- SaaS software as a service
- at least some of the operations may be performed by a group of computers (as examples of machines including processors), with these operations being accessible via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., an Application Program Interface (API)).
- API Application Program Interface
- processors may be distributed among the processors, not only residing within a single machine, but deployed across a number of machines.
- the processors or processor-implemented modules may be located in a single geographic location (e.g., within a home environment, an office environment, or a server farm). In other example embodiments, the processors or processor-implemented modules may be distributed across a number of geographic locations.
- FIG. 23 illustrates an example mobile device 2300 executing a mobile operating system (e.g., iOSTM, AndroidTM, Windows® Phone, or other mobile operating systems), according to example embodiments.
- the mobile device 2300 includes a touch screen that may receive tactile information from a user 2302 .
- the user 2302 physically touch 2304 the mobile device 2300 , and in response to the touch 2304 , the mobile device 2300 determines tactile information such as touch location, touch force, gesture motion, and so forth.
- the mobile device 2300 displays a home screen 2306 (e.g., Springboard on iOSTM) operable to launch applications or otherwise manage the mobile device 2300 .
- a home screen 2306 e.g., Springboard on iOSTM
- the home screen 2306 provides status information such as battery life, connectivity, or other hardware statuses.
- the user 2302 activates user interface elements by touching an area occupied by a respective user interface element. In this manner, the user 2302 may interact with the applications. For example, touching the area occupied by a particular icon included in the home screen 2306 causes launching of an application corresponding to the particular icon.
- applications may be executing on the mobile device 2300 such as native applications (e.g., applications programmed in Objective-C running on iOSTM or applications programmed in Java running on AndroidTM), mobile web applications (e.g., HTML5), or hybrid applications (e.g., a native shell application that launches an HTML5 session).
- native applications e.g., applications programmed in Objective-C running on iOSTM or applications programmed in Java running on AndroidTM
- mobile web applications e.g., HTML5
- hybrid applications e.g., a native shell application that launches an HTML5 session.
- the mobile device 2300 includes a messaging app 2320 , audio recording app 2322 , a camera app 2324 , a book reader app 2326 , a media app 2328 , a fitness app 2330 , a file management app 2332 , a location app 2334 , a browser app 2336 , a settings app 2338 , a contacts app 2340 , a telephone call app 2342 , other apps (e.g., gaming apps, social networking apps, biometric monitoring apps), a third party app 2344 , and so forth.
- apps e.g., gaming apps, social networking apps, biometric monitoring apps
- FIG. 24 is a block diagram 2400 illustrating an architecture of software 2402 , which may be installed on any one or more of devices described above.
- FIG. 24 is merely a non-limiting example of a software architecture, and it will be appreciated that many other architectures may be implemented to facilitate the functionality described herein.
- the software 2402 may be executing on hardware such as machine 2500 of FIG. 25 that includes processors 2510 , memory 2530 , and I/O components 2550 .
- the software 2402 may be conceptualized as a stack of layers where each layer may provide particular functionality.
- the software 2402 includes layers such as an operating system 2404 , libraries 2406 , frameworks 2408 , and applications 2410 .
- the applications 2410 invoke application programming interface (API) calls 2412 through the software stack and receive messages 2414 in response to the API calls 2412 , according to some implementations.
- API application programming interface
- the operating system 2404 manages hardware resources and provides common services.
- the operating system 2404 includes, for example, a kernel 2420 , services 2422 , and drivers 2424 .
- the kernel 2420 acts as an abstraction layer between the hardware and the other software layers in some implementations.
- the kernel 2420 provides memory management, processor management (e.g., scheduling), component management, networking, security settings, among other functionality.
- the services 2422 may provide other common services for the other software layers.
- the drivers 2424 may be responsible for controlling or interfacing with the underlying hardware.
- the drivers 2424 may include display drivers, camera drivers, Bluetooth® drivers, flash memory drivers, serial communication drivers (e.g., Universal Serial Bus (USB) drivers), Wi-Fi® drivers, audio drivers, power management drivers, and so forth.
- USB Universal Serial Bus
- the libraries 2406 may provide a low-level common infrastructure that may be utilized by the applications 2410 .
- the libraries 2406 may include system 2430 libraries (e.g., C standard library) that may provide functions such as memory allocation functions, string manipulation functions, mathematic functions, and the like.
- libraries 2406 may include API libraries 2432 such as media libraries (e.g., libraries to support presentation and manipulation of various media formats such as MPREG4, H.264, MP3, AAC, AMR, JPG, PNG), graphics libraries (e.g., an OpenerGL framework used to render 2D and 3D in a graphic content on a display), database libraries (e.g., SQLite to provide various relational database functions), web libraries (e.g., WebKit to provide web browsing functionality), and the like.
- the libraries 2406 may also include a wide variety of other libraries 2434 to provide many other APIs to the applications 2410 .
- the frameworks 2408 may provide a high-level common infrastructure that may be utilized by the applications 2410 .
- the frameworks 2408 may provide various graphic user interface (GUI) functions, high-level resource management, high-level location services, and so forth.
- GUI graphic user interface
- the frameworks 2408 may provide a broad spectrum of other APIs that may be utilized by the applications 2410 , some of which may be specific to a particular operating system or platform.
- the applications 2410 include a home application 2450 , a contacts application 2452 , a browser application 2454 , a book reader application 2456 , a location application 2458 , a media application 2460 , a messaging application 2462 , a game application 2464 , and a broad assortment of other applications such as third party application 2466 .
- the third party application 2466 e.g., an application developed using the AndroidTM or iOSTM software development kit (SDK.) by an entity other than the vendor of the particular platform
- the third party application 2466 may be mobile software running on a mobile operating system such as iOSTM, AndroidTM, Windows® Phone, or other mobile operating systems.
- the third party application 2466 may invoke the API calls 2412 provided by the mobile operating system 2404 to facilitate functionality described herein.
- FIG. 25 is a block diagram illustrating components of a machine 2500 , according to some example embodiments, able to read instructions from a machine-readable medium (e.g., a machine-readable storage medium) and perform any one or more of the methodologies discussed herein.
- FIG. 25 shows a diagrammatic representation of the machine 2500 in the example form of a computer system, within which instructions 2516 (e.g., software, a program, an application, an applet, an app, or other executable code) for causing the machine 2500 to perform any one or more of the methodologies discussed herein may be executed.
- the machine 2500 operates as a standalone device or may be coupled (e.g., networked) to other machines.
- the machine 2500 may operate in the capacity of a server machine or a client machine in a server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment.
- the machine 2500 may comprise, but not be 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 telephone, 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 appliance, a network router, a network switch, a network bridge, or any machine capable of executing the instructions 2516 , sequentially or otherwise, that specify actions to be taken by machine 2500 .
- the term “machine” shall also be taken to include
- the machine 2500 may include processors 2510 , memory 2530 , and I/O components 2550 , which may be configured to communicate with each other via a bus 2502 .
- the processors 2510 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 (MC), another processor, or any suitable combination thereof
- the processors 2510 may include, for example, processor 2512 and processor 2514 that may execute instructions 2516 .
- processor is intended to include multi-core processors that may comprise two or more independent processors (also referred to as “cores”) that may execute instructions contemporaneously.
- FIG. 25 shows multiple processors, the machine 2500 may include a single processor with a single core, a single processor with multiple cores (e.g., a multi-core process), multiple processors with a single core, multiple processors with multiples cores, or any combination thereof.
- the memory 2530 may include a main memory 2532 , a static memory 2534 , and a storage unit 2536 accessible to the processors 2510 via the bus 2502 .
- the storage unit 2536 may include a machine-readable medium 2538 on which is stored the instructions 2516 embodying any one or more of the methodologies or functions described herein.
- the instructions 2516 may also reside, completely or at least partially, within the main memory 2532 , within the static memory 2534 , within at least one of the processors 2510 (e.g., within the processor's cache memory), or any suitable combination thereof, during execution thereof by the machine 2500 . Accordingly, in various implementations, the main memory 2532 , static memory 2534 , and the processors 2510 are considered as machine-readable media 2538 .
- the term “memory” refers to a machine-readable medium 2538 able to store data temporarily or permanently and may be taken to include, but not be limited to, random-access memory (RAM), read-only memory (ROM), buffer memory, flash memory, and cache memory. While the machine-readable medium 2538 is shown in an example embodiment to be a single medium, the term “machine-readable medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, or associated caches and servers) able to store instructions 2516 .
- machine-readable medium shall also be taken to include any medium, or combination of multiple media, that is capable of storing instructions (e.g., instructions 2516 ) for execution by a machine (e.g., machine 2500 ), such that the instructions, when executed by one or more processors of the machine 2500 (e.g., processors 2510 ), cause the machine 2500 to perform any one or more of the methodologies described herein.
- a “machine-readable medium” refers to a single storage apparatus or device, as well as “cloud-based” storage systems or storage networks that include multiple storage apparatus or devices.
- machine-readable medium shall accordingly be taken to include, but not be limited to, one or more data repositories in the form of a solid-state memory (e.g., flash memory), an optical medium, a magnetic medium, other non-volatile memory (e.g., Erasable Programmable Read-Only Memory (EPROM)), or any suitable combination thereof.
- solid-state memory e.g., flash memory
- EPROM Erasable Programmable Read-Only Memory
- machine-readable medium specifically excludes non-statutory signals per se.
- the I/O components 2550 include a wide variety of components to receive input, provide output, produce output, transmit information, exchange information, capture measurements, and so on. It will be appreciated that the I/O components 2550 may include many other components that are not shown in FIG. 25 .
- the I/O components 2550 are grouped according to functionality merely for simplifying the following discussion and the grouping is in no way limiting.
- the I/O components 2550 include output components 2552 and input components 2554 .
- the output components 2552 include visual components (e,g., a display such as a plasma display panel (PDP), light emitting diode (LED) display, a liquid crystal display (LCD), a projector, or a cathode ray tube (CRT)), acoustic components e.g., speakers), haptic components (e.g., a vibratory motor), other signal generators, and so forth.
- visual components e,g., a display such as a plasma display panel (PDP), light emitting diode (LED) display, a liquid crystal display (LCD), a projector, or a cathode ray tube (CRT)
- acoustic components e.g., speakers
- haptic components e.g., a vibratory motor
- the input components 2554 include alphanumeric input components (e.g., a keyboard, a touch screen configured to receive alphanumeric input, a photo-optical keyboard, or other alphanumeric input components), point based input components (e.g., a mouse, a touchpad, a trackball, a joystick, a motion sensor, or other pointing instrument), tactile input components (e.g., a physical button, a touch screen that provides location and force of touches or touch gestures, or other tactile input components), audio input components (e.g., a microphone), and the like.
- alphanumeric input components e.g., a keyboard, a touch screen configured to receive alphanumeric input, a photo-optical keyboard, or other alphanumeric input components
- point based input components e.g., a mouse, a touchpad, a trackball, a joystick, a motion sensor, or other pointing instrument
- tactile input components e.g., a physical button, a touch
- the I/O components 2550 include biometric components 2556 , motion components 2558 , environmental components 2560 , or position components 2562 among a wide array of other components.
- the biometric components 2556 include components to detect expressions (e.g., hand expressions, facial expressions, vocal expressions, body gestures, or eye tracking), measure biosignals (e.g., blood pressure, heart rate, body temperature, perspiration, or brain waves), identify a person (e.g., voice identification, retinal identification, facial identification, fingerprint identification, or electroencephalogram based identification), and the like.
- the motion components 2558 include acceleration sensor components (e.g., accelerometer), gravitation sensor components, rotation sensor components (e,g., gyroscope), and so forth.
- the environmental components 2560 include, for example, illumination sensor components (e,g., photometer), temperature sensor components (e.g., one or more thermometer that detect ambient temperature), humidity sensor components, pressure sensor components (e.g., barometer), acoustic sensor components (e.g., one or more microphones that detect background noise), proximity sensor components (e.g., infrared sensors that detect nearby objects), gas sensors (e,g., machine olfaction detection sensors, gas detection sensors to detection concentrations of hazardous gases for safety or to measure pollutants in the atmosphere), or other components that may provide indications, measurements, or signals corresponding to a surrounding physical environment.
- illumination sensor components e.g., photometer
- temperature sensor components e.g., one or more thermometer that detect ambient temperature
- humidity sensor components e.g., pressure sensor components (e.g
- the position components 2562 include location sensor components (e.g., a Global Position System (GPS) receiver component), altitude sensor components (e.g., altimeters or barometers that detect air pressure from which altitude may be derived), orientation sensor components (e.g., magnetometers), and the like.
- location sensor components e.g., a Global Position System (GPS) receiver component
- altitude sensor components e.g., altimeters or barometers that detect air pressure from which altitude may be derived
- orientation sensor components e.g., magnetometers
- the I/O components 2550 may include communication components 2564 operable to couple the machine 2500 to a network 2580 or devices 2570 via coupling 2582 and coupling 2572 , respectively.
- the communication components 2564 include a network interface component or another suitable device to interface with the network 2580 .
- communication components 2564 include wired communication components, wireless communication components, cellular communication components, Near Field Communication (NFC) components, Bluetooth® components (e.g., Bluetooth® Low Energy), Wi-Fi® components, and other communication components to provide communication via other modalities.
- the devices 2570 may be another machine or any of a wide variety of peripheral devices (e,g., a peripheral device coupled via a Universal Serial Bus (USB)).
- USB Universal Serial Bus
- the communication components 2564 detect identifiers or include components operable to detect identifiers.
- the communication components 2564 include Radio Frequency identification (RFID) tag reader components, NFC smart tag detection components, optical reader components (e.g., an optical sensor to detect one-dimensional bar codes such as Universal Product Code (UPC) bar code, multi-dimensional bar codes such as Quick Response (QR) code, Aztec code, Data Matrix, Dataglyph, MaxiCode, PDF417, Ultra Code, UCC RSS-2D bar code, and other optical codes), acoustic detection components (e.g., microphones to identify tagged audio signals), or any suitable combination thereof.
- RFID Radio Frequency identification
- NFC smart tag detection components e.g., an optical sensor to detect one-dimensional bar codes such as Universal Product Code (UPC) bar code, multi-dimensional bar codes such as Quick Response (QR) code, Aztec code, Data Matrix, Dataglyph, MaxiCode, PDF417, Ultra Code, UCC RSS-2D bar code, and other optical codes
- IP Internet Protocol
- Wi-Fit signal triangulation location via Wi-Fit signal triangulation
- NFC beacon signal location via detecting a NFC beacon signal that may indicate a particular location
- one or more portions of the network 2580 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 wide area network (WAN), a wireless WAN (WWAN), a metropolitan area network (MAN), the Internet, a portion of the Internet, a portion of the Public Switched Telephone Network (PSTN), a plain old telephone service (POTS) network, a cellular telephone network, a wireless network, a Wi-Fi® network, another type of network, or a combination of two or more such networks.
- VPN virtual private network
- LAN local area network
- WLAN wireless LAN
- WAN wide area network
- WWAN wireless WAN
- MAN metropolitan area network
- PSTN Public Switched Telephone Network
- POTS plain old telephone service
- the network 2580 or a portion of the network 2580 may include a wireless or cellular network and the coupling 2582 may be a Code Division Multiple Access (CDMA) connection, a Global System for Mobile communications (GSM) connection, or other type of cellular or wireless coupling.
- CDMA Code Division Multiple Access
- GSM Global System for Mobile communications
- the coupling 2582 may implement any of a variety of types of data transfer technology, 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) networks, Universal Mobile Telecommunications System (UMTS), High Speed Packet Access (HSPA), Worldwide Interoperability for Microwave Access (WiMAX), Long Term Evolution (LTE) standard, others defined by various standard setting organizations, other long range protocols, or other data transfer technology.
- 1xRTT Single Carrier Radio Transmission Technology
- GPRS General Packet Radio Service
- EDGE Enhanced Data rates for GSM Evolution
- 3GPP Third Generation Partnership Project
- 4G fourth generation wireless (4G) networks
- Universal Mobile Telecommunications System (UMTS) Universal Mobile Telecommunications System
- HSPA High Speed Packet Access
- WiMAX Worldwide Interoperability for Microwave Access
- the instructions 2516 are transmitted or received over the network 2580 using a transmission medium via a network interface device (e.g., a network interface component included in the communication components 2564 ) and utilizing any one of a number of well-known transfer protocols (e.g., hypertext transfer protocol (HTTP)).
- a network interface device e.g., a network interface component included in the communication components 2564
- HTTP hypertext transfer protocol
- the instructions 2516 are transmitted or received using a transmission medium via the coupling 2572 (e.g., a peer-to-peer coupling) to devices 2570 .
- the term “transmission medium” shall be taken to include any intangible medium that is capable of storing, encoding, or carrying instructions 2516 for execution by the machine 2500 , and includes digital or analog communications signals or other intangible medium to facilitate communication of such software.
- the machine-readable medium 2538 is non-transitory (in other words, not having any transitory signals) in that it does not embody a propagating signal.
- labeling the machine-readable medium 2538 as “non-transitory” should not be construed to mean that the medium is incapable of movement; the medium should be considered as being transportable from one physical location to another.
- the machine-readable medium 2538 is tangible, the medium may be considered to be a machine-readable device.
- inventive subject matter has been described with reference to specific example embodiments, various modifications and changes may be made to these embodiments without departing from the broader scope of embodiments of the present disclosure.
- inventive subject matter may be referred to herein, individually or collectively, by the term “invention” merely for convenience and without intending to voluntarily limit the scope of this application to any single disclosure or inventive concept if more than one is, in fact, disclosed.
- the term “or” may be construed in either an inclusive or exclusive sense. Moreover, plural instances may be provided for resources, operations, or structures described herein as a single instance. Additionally, boundaries between various resources, operations, modules, engines, and data stores are somewhat arbitrary, and particular operations are illustrated in a context of specific illustrative configurations. Other allocations of functionality are envisioned and may fall within a scope of various embodiments of the present disclosure. In general, structures and functionality presented as separate resources in the example configurations may be implemented as a combined structure or resource. Similarly, structures and functionality presented as a single resource may be implemented as separate resources. These and other variations, modifications, additions, and improvements fall within a scope of embodiments of the present disclosure as represented by the appended claims. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Development Economics (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Economics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Data Mining & Analysis (AREA)
- Molecular Biology (AREA)
- Animal Behavior & Ethology (AREA)
- Biomedical Technology (AREA)
- Heart & Thoracic Surgery (AREA)
- Medical Informatics (AREA)
- Biophysics (AREA)
- Surgery (AREA)
- Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Public Health (AREA)
- Veterinary Medicine (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- User Interface Of Digital Computer (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
A system and method for data mesh-based zero effort shopping is provided. In example embodiments, attribute data associated with a user is received from a plurality of attribute sources. Demand indications are extracted from the attribute data. The demand indications may be indicative of anticipatory demand by the user for a particular item. An item is identified from the attribute data based on the extracted demand indications. User characteristics pertaining to the user are inferred from the attribute data. A purchase associated with the identified item is facilitated based, at least in part, on the user characteristics.
Description
- This application claims the priority benefit of U.S. Provisional Application No. 61/970,263, entitled “PORTABLE PROFILE PLATFORM,” filed Mar. 25, 2014, which is hereby incorporated by reference in its entirety.
- Embodiments of the present disclosure relate generally to e-commerce and, more particularly, but not by way of limitation, to data mesh based zero effort shopping.
- In recent years mobile devices, wearable devices, smart devices, and the like have pervaded nearly every aspect of modern life. Such devices are increasingly incorporating sensors to monitor everything from the moisture level of houseplants to the dribbling of a basketball. Network connected devices like these are capable of providing a near real-time and constant data feed. These trends have provided a vast amount of rich, constantly updated data.
- Various ones of the appended drawings merely illustrate example embodiments of the present disclosure and cannot be considered as limiting its scope.
-
FIG. 1A is a block diagram illustrating a networked system, according to some example embodiments. -
FIG. 1B illustrates a block diagram showing components provided within the system ofFIG. 1A , according to some example embodiments. -
FIG. 2A is a block diagram illustrating an example embodiment of a data mesh system, according to some example embodiments. -
FIG. 2B is a block diagram illustrating an example embodiment of a. user analytics system, according to some example embodiments. -
FIG. 3 is a flow diagram illustrating an example method for identifying an item and facilitating a purchase associated with the identified item, according to some example embodiments. -
FIG. 4 is a flow diagram illustrating further operations for facilitating the purchase based, at least in part, on an evaluation of an inventory level, according to some example embodiments. -
FIG. 5 is a flow diagram illustrating further operations for facilitating the purchase including operations to determine parameters for the purchase, according to some example embodiments. -
FIG. 6 is a flow diagram illustrating further operations for determining order parameters including operations to determine a temporal parameter associated with the purchase, according to some example embodiments. -
FIG. 7 is a flow diagram illustrating further operations to facilitate the purchase based, at least in part, on purchase criteria, according to some example embodiments. -
FIG. 8 is a flow diagram illustrating a further example method for identifying an item and facilitating a purchase, according to some example embodiments. -
FIG. 9 is a flow diagram illustrating an alternative example method for identifying an item and facilitating a purchase, according to some example embodiments. -
FIG. 10 is a flow diagram illustrating further operations to facilitate the purchase based, at least in part, on a demand metric, according to some example embodiments. -
FIG. 11 is a flow diagram illustrating further operations to facilitate the purchase using a notification, according to some example embodiments. -
FIGS. 12 and 13 are flow diagrams illustrating further operations for presenting a notification, according to some example embodiments. -
FIG. 14 is a flow diagram illustrating communication between various devices in relation to presenting a notification to the user, according to some example embodiments. -
FIG. 15 depicts an example user interface to facilitate the purchase, according to some example embodiments. -
FIGS. 16 and 17 illustrate examples of identifying an item and facilitating a purchase associated with the identified item, according to some example embodiments. -
FIGS. 18A and 18B depict example configurations for communicatively coupling attribute sources, according to some example embodiments. -
FIG. 19 depicts various example attribute sources, according to some example embodiments. -
FIG. 20 depicts various components that provide attribute data, according to some example embodiments. -
FIG. 21 is a block diagram of an example data structure for example attribute data associated with a user, according to some example embodiments. -
FIG. 22 is a block diagram of an example data structure for example attribute data associated with a device, according to some example embodiments. -
FIG. 23 depicts an example mobile device and mobile operating system interface, according to some example embodiments. -
FIG. 24 is a block diagram illustrating an example of a software architecture that may be installed on a machine, according to some example embodiments. -
FIG. 25 illustrates a diagrammatic representation of a machine in the form of a computer system within which a set of instructions may be executed for causing the machine to perform any one or more of the methodologies discussed herein, according to an example embodiment. - The headings provided herein are merely for convenience and do not necessarily affect the scope or meaning of the terms used.
- The description that follows includes systems, methods, techniques, instruction sequences, and computing machine program products that embody illustrative embodiments of the disclosure. 111 the following description, for the purposes of explanation, numerous specific details are set forth in order to provide an understanding of various embodiments of the inventive subject matter. It will be evident, however, to those skilled in the art, that embodiments of the inventive subject matter may be practiced without these specific details. In general, well-known instruction instances, protocols, structures, and techniques are not necessarily shown in detail.
- The objective of zero effort shopping is to reduce or eliminate effort by a consumer user to purchase various products. To this end, the systems and methods described herein may, among other functions, access a wealth of attribute data associated with a user, analyze the attribute data to identify items that the user may have demand for, and facilitate a purchase associated with the identified items. For instance, the user may be characterized based on an analysis of the attribute data and the user characterization may be used as a basis for identifying items and order parameters for a purchase associated with identified items. The collective, aggregated attribute data may be referred to as a “data mesh.”
- In various example embodiments, the attribute data is received or accessed from a broad gamut of attribute sources such as, for example, from mobile devices, smart devices, smart homes, social network services, user profiles, browsing histories, purchase histories, and so forth, Demand indications that are indicative of anticipatory demand by the user for a particular item are extracted from the attribute data. For example, purchase histories may indicate prior purchases for coffee products, location data (e.g., as determined by a Global Positioning System (GPS) component of a mobile device, beacon detections, or other location services) may indicate frequent trips to coffee shops, or social media data such as check-ins or user postings may indicate an affinity for coffee. Subsequent to extracting the demand indications, a commerce item may be identified from the attribute data based on the extracted demand indications. In continuing with the example above, the identified commerce item may comprise coffee beans, coffee filters, or other coffee related items.
- In further example embodiments, user characteristics pertaining to the user are inferred based on an analysis of a portion of the attribute data. The user characteristics include, for instance, a trait, quality, action, activity, attitude, health condition, habit, behavior, and the like. For example, the user characteristics may include a particular medical condition of that user associated with diet restrictions. The systems and methods described herein may facilitate a purchase associated with the commerce item based, at least in part, on the user characteristics. In an example embodiment, a notification, including an option to make the purchase, is presented to the user. In some instances, the notification is personalized to the user based on the user characteristics (e.g., the notification may be presented on a preferred device of the user at a time of day corresponding to user available such as after the user is done working). In some example embodiments, the purchase is made automatically on behalf of the user. For instance, a demand metric is calculated based on the demand indications and if the demand metric exceeds a threshold, the purchase may be performed automatically. Thus, the systems and methods described herein may facilitate commerce on behalf of the user to increase convenience and reduce time and effort of the user to conduct commerce. In some cases, the systems and methods analyze the attribute data to simulate decisions of the user regarding various shopping or purchasing related activities.
- With reference to
FIG. 1A , an example embodiment of a high-level client-server-basednetwork architecture 100 is shown. Anetworked system 102 provides server-side functionality via a network 104 (e.g., the Internet or wide area network (WAN)) to aclient device 110. In some implementations, a user (e.g., user 106) interacts with thenetworked system 102 using theclient device 110.FIG. 1A illustrates, for example, a web client 112 (e,g., a browser, such as the Internet Explorer® browser developed by Microsoft® Corporation of Redmond, Wash. State), client application(s) 114, and aprogrammatic client 116 executing on theclient device 110. Theclient device 110 includes theweb client 112, the client application(s) 114, and theprogrammatic client 116 alone, together, or in any suitable combination, AlthoughFIG. 1A shows oneclient device 110, multiple client devices may be included in thenetwork architecture 100. - In various implementations, the
client device 110 comprises a computing device that includes at least a display and communication capabilities that provide access to thenetworked system 102 via thenetwork 104. Theclient device 110 may comprise, but is not limited to, a remote device, work station, computer, general purpose computer, Internet appliance, hand-held device, wireless device, portable device, wearable computer, cellular or mobile phone, personal digital assistant (PDA), smart phone, tablet, ultrabook, netbook, laptop, desktop, multi-processor system, microprocessor-based or programmable consumer electronic, game consoles, set-top box, network PC, mini-computer, and the like. In further example embodiments, theclient device 110 may comprise one or more of a touch screen, accelerometer, gyroscope, biometric sensor, camera, microphone, global positioning system (GPS) device, and the like. - The
client device 110 communicates with thenetwork 104 via a wired or wireless connection. For example, one or more portions of thenetwork 104 comprises an ad hoc network, an intranet, an extranet, a Virtual Private Network (VPN), a Local Area Network (LAN), a wireless LAN (WIAN), a Wide Area Network (WAN), a wireless WAN (WWAN), a Metropolitan Area Network (MAN), a portion of the Internet, a portion of the Public Switched Telephone Network (PSTN), a cellular telephone network, a wireless network, a Wireless Fidelity (Wi-Fi®) network, a Worldwide Interoperability for Microwave Access (WiMax) network, another type of network, or any suitable combination thereof. - In some example embodiments, the
client device 110 includes one or more of the applications (also referred to as “apps”) such as, but not limited to, web browsers, book reader apps (operable to read e-books), media apps (operable to present various media forms including audio and video), fitness apps, biometric monitoring apps, messaging apps, electronic mail (email) apps, and e-commerce site apps (also referred to as “marketplace apps”). In some implementations, the client application(s) 114 include various components operable to present information to the user and communicate withnetworked system 102. In some embodiments, if the e-commerce site application is included in theclient device 110, then this application may be configured to locally provide the user interface and at least some of the functionalities with the application configured to communicate with thenetworked system 102, on an as needed basis, for data or processing capabilities not locally available (e.g., access to a database of items available for sale, to authenticate a user, to verify a method of payment). Conversely, if the e-commerce site application is not included in theclient device 110, theclient device 110 can use its web browser to access the e-commerce site (or a variant thereof) hosted on thenetworked system 102. - In various example embodiments, the user (e.g., the user 106) comprises a person, a machine, or other means of interacting with the
client device 110. In some example embodiments, the user is not be part of thenetwork architecture 100, but interacts with thenetwork architecture 100 via theclient device 110 or another means. For instance, the user provides input (e.g., touch screen input or alphanumeric input) to theclient device 110 and the input is communicated to thenetworked system 102 via thenetwork 104. In this instance, thenetworked system 102, in response to receiving the input from the user, communicates information to theclient device 110 via thenetwork 104 to be presented to the users. In this way, the user can interact with thenetworked system 102 using theclient device 110. - An Application Program Interface (API)
server 120 and aweb server 122 may be coupled to, and provide programmatic and web interfaces respectively to, one or more application server(s) 140. The application server(s) 140 may host one or more publication system(s) 142, payment system(s) 144, and adata mesh system 150, each of which may comprise one or more modules or applications and each of which may be embodied as hardware, software, firmware, or any combination thereof. The application server(s) 140 are, in turn, shown to be coupled to one or more database server(s) 124 that facilitate access to one or more information storage repositories or database(s) 126. In an example embodiment, the database(s) 126 are storage devices that store information to be posted (e.g., publications or listings) to the publication system(s) 142. The database(s) 126 may also store digital goods information in accordance with some example embodiments. - Additionally, a third party application 132, executing on a third party server 130, is shown as having programmatic access to the
networked system 102 via the programmatic interface provided by theAPI server 120. For example, the third party application 132, utilizing information retrieved from thenetworked system 102, may support one or more features or functions on a website hosted by the third party. The third party website may, for example, provide one or more promotional, marketplace, or payment functions that are supported by the relevant applications of thenetworked system 102. - The publication system(s) 142 may provide a number of publication functions and services to the users that access the
networked system 102. The payment system(s) 144 may likewise provide a number of functions to perform or facilitate payments and transactions. White the publication system(s) 142 and payment system(s) 144 are shown inFIG. 1A to both form part of thenetworked system 102, it will be appreciated that, in alternative embodiments, eachsystem networked system 102. In some example embodiments, the payment system(s) 144 may form part of the publication system(s) 142. - In some implementations, the
data mesh system 150 provides functionality to receive, retrieve, or store a broad spectrum of data associated with the user. It will be noted that the collective, aggregated attribute data may be referred to as a “data mesh.” In various implementations, thedata mesh system 150 stores received data in storage devices such as the database(s) 126. In an example embodiment, thedata mesh system 150 includes auser analytics system 152 that identifies items the user may have demand for and facilitate a purchase associated with the identified items. In some example embodiments, thedata mesh system 150 communicates with theclient device 110, the third party server(s) 130, the publication system(s) 142 (e.g., retrieving listings), and the payment system(s) 144 (e.g., purchasing a listing). In an alternative example embodiment, thedata mesh system 150 is a part of the publication system(s) 142. - Further, while the client-server-based
network architecture 100 shown inFIG. 1A employs a client-server architecture, the present inventive subject matter is, of course, not limited to such an architecture, and may equally well find application in a distributed, or peer-to-peer, architecture system, for example. The various systems of the applications server(s) 140 (e.g., the publication system(s) 142 and the payment system(s) 144) may also be implemented as standalone software programs, which do not necessarily have networking capabilities. - The
web client 112 may access the various systems of the networked system 102 (e.g., the publication system(s) 142) via the web interface supported by theweb server 122. Similarly, theprogrammatic client 116 and client application(s) 114 may access the various services and functions provided by thenetworked system 102 via the programmatic interface provided by theAPI server 120. Theprogrammatic client 116 may, for example, be a seller application (e.g., the Turbo Lister application developed by eBay® Inc., of San Jose, Calif.) to enable sellers to author and manage listings on thenetworked system 102 in an off-line manner, and to perform batch-mode communications between theprogrammatic client 116 and thenetworked system 102. -
FIG. 1B illustrates a block diagram showing components provided within the publication system(s) 142, according to some embodiments. In various example embodiments, the publication system(s) 142 may comprise a market place system to provide market place functionality (e.g., facilitating the purchase of items associated with item listings on an e-commerce website). Thenetworked system 102 may be hosted on dedicated or shared server machines that are communicatively coupled to enable communications between server machines. The components themselves are communicatively coupled (e.g., via appropriate interfaces) to each other and to various data sources, on as to allow information to be passed between the applications or so as to allow the applications to share and access common data. Furthermore, the components may access one or more database(s) 126 via the database server(s) 124. - The
networked system 102 may provide a number of publishing, listing, and price-setting mechanisms whereby a seller also referred to as a “first user”) may list or publish information concerning) goods or services for sale or barter, a buyer (also referred to as a “second user”) can express interest in or indicate a desire to purchase or barter such goods or services, and a transaction (such as a trade) may be completed pertaining to the goods or services. To this end, thenetworked system 102 may comprise apublication engine 160 and aselling engine 162. Thepublication engine 160 may publish information, such as item listings or product description pages, on thenetworked system 102. In some embodiments, the sellingengine 162 may comprise one or more fixed-price engines that support fixed-price listing and price setting mechanisms and one or more auction engines that support auction-format listing and price setting mechanisms (e.g., English, Dutch, Chinese, Double, Reverse auctions, etc.). The various auction engines may also provide a number of features in support of these auction-format listings, such as a reserve price feature whereby a seller may specify a reserve price in connection with a listing and a proxy-bidding feature whereby a bidder may invoke automated proxy bidding. The sellingengine 162 may further comprise one or more deal engines that support merchant-generated offers for products and services. - A
listing engine 164 allows sellers to conveniently author listings of items or authors to author publications. In one embodiment, the listings pertain to goods or services that a user (e.g., a seller) wishes to transact via thenetworked system 102. In some embodiments, the listings may be an offer, deal, coupon, or discount for the good or service. Each good or service is associated with a particular category. Thelisting engine 164 may receive listing data such as title, description, and aspect name/value pairs. Furthermore, each listing for a good or service may be assigned an item identifier. In other embodiments, a user may create a listing that is an advertisement or other form of information publication. The listing information may then be stored to one or more storage devices coupled to the networked system 102 (e.g., database(s) 126). Listings also may comprise product description pages that display a product and information (e.g., product title, specifications, and reviews) associated with the product. In some embodiments, the product description page may include an aggregation of item listings that correspond to the product described on the product description page. - The
listing engine 164 also may allow buyers to conveniently author listings or requests for items desired to be purchased. In some embodiments, the listings may pertain to goods or services that a user (e.g., a buyer) wishes to transact via thenetworked system 102. Each good or service is associated with a particular category. Thelisting engine 164 may receive as much or as little listing data, such as title, description, and aspect name/value pairs, that the buyer is aware of about the requested item. In some embodiments, thelisting engine 164 may parse the buyer's submitted item information and may complete incomplete portions of the listing. For example, if the buyer provides a brief description of a requested item, thelisting engine 164 may parse the description, extract key terms and use those terms to make a determination of the identity of the item. Using the determined item identity, thelisting engine 164 may retrieve additional item details for inclusion in the buyer item request. In some embodiments, thelisting engine 164 may assign an item identifier to each listing for a good or service. - In some embodiments, the
listing engine 164 allows sellers to generate offers for discounts on products or services. Thelisting engine 164 may receive listing data, such as the product or service being offered, a price or discount for the product or service, a time period for which the offer is valid, and so forth. In some embodiments, thelisting engine 164 permits sellers to generate offers from sellers' mobile devices. The generated offers may be uploaded to thenetworked system 102 for storage and tracking - Searching the
networked system 102 is facilitated by a searchingengine 166. For example, the searchingengine 166 enables keyword queries of listings published via thenetworked system 102. In example embodiments, the searchingengine 166 receives the keyword queries from a device of a user and conducts a review of the storage device storing the listing information. The review will enable compilation of a result set of listings that may be sorted and returned to theclient device 110 of the user. The searchingengine 166 may record the query (e.g., keywords) and any subsequent user actions and behaviors (e.g., navigations, selections, or click-throughs). - The searching
engine 166 also may perform a search based on a location of the user. A user may access the searchingengine 166 via a mobile device and generate a search query. Using the search query and the user's location, the searchingengine 166 may return relevant search results for products, services, offers, auctions, and so forth to the user. The searchingengine 166 may identify relevant search results both in a list form and graphically on a map. Selection of a graphical indicator on the map may provide additional details regarding the selected search result. In some embodiments, the user may specify, as part of the search query, a. radius or distance from the user's current location to limit search results. - In a further example, a
navigation engine 168 allows users to navigate through various categories, catalogs, or inventory data structures according to which listings may be classified within thenetworked system 102. For example, thenavigation engine 168 allows a user to successively navigate down a category tree comprising a hierarchy of categories (e.g., the category tree structure) until a particular set of listings is reached. Various other navigation applications within thenavigation engine 168 may be provided to supplement the searching and browsing applications. Thenavigation engine 168 may record the various user actions (e.g., clicks) performed by the user in order to navigate down the category tree. - In some example embodiments, a
personalization engine 170 provides functionality to personalize various aspects of user interactions with thenetworked system 102. For instance, the user can define, provide, or otherwise communicate personalization settings that thepersonalization engine 170 uses to determine interactions with thenetworked system 102. In further example embodiments, thepersonalization engine 170 determines personalization settings automatically and personalizes interactions based on the automatically determined settings. For example, thepersonalization engine 170 determines a native language of the user and automatically presents information in the native language. -
FIG. 2A is a block diagram of thedata mesh system 150, which may provide functionality to receive, retrieve, or access attribute data from attribute sources, analyze the attribute data, manage the attribute data, and so forth. In an example embodiment, thedata mesh system 150 may include apresentation module 210, acommunication module 215, anattribute module 220, acharacteristic module 225, amanagement module 230, and theuser analytics system 152.FIG. 2B is a block diagram of theuser analytics system 152, which may provide functionality to identify items that the user has demand for and facilitate a purchase associate with the identified items. Theuser analytics system 152 may include anitem module 250, ananalysis module 255, and anorder module 260. All, or some, of the modules 210-260 ofFIGS. 2A and 2B , may communicate with each other, for example, via a network coupling, shared memory, and the like. It will be appreciated that each module of modules 210-260 may be implemented as a single module, combined into other modules, or further subdivided into multiple modules. It will further be appreciated that the modules or functionality of theuser analytics system 152 may be implemented in thedata mesh system 150 and the modules or functionality of thedata mesh system 150 may be implemented in theuser analytics system 152. Other modules not pertinent to example embodiments may also be included, but are not shown. - Referring to
FIG. 2A , thepresentation module 210 may provide various presentation and user interface functionality operable to interactively present and receive information from users. For example, thepresentation module 210 may cause presentation of various notifications or user interfaces that provide the user an option to make a purchase associated with the identified items. In various implementations, thepresentation module 210 presents or causes presentation of information (e.g., visually displaying information on a screen, acoustic output, haptic feedback). Interactively presenting is intended to include the exchange of information between a particular device and the user. The user provides input to interact with the user interface in many possible manners such as alphanumeric input, cursor input, tactile input, or other input (e.g., touch screen, tactile sensor, light sensor, infrared sensor, biometric sensor, microphone, gyroscope, accelerometer, or other sensors). It will be appreciated that thepresentation module 210 provides many other user interfaces to facilitate functionality described herein. Further, it will be appreciated that “presenting” as used herein is intended to include communicating information or instructions to a particular device that is operable to perform presentation based on the communicated information or instructions. - The
communication module 215 provides various communications fimctionality and web services. For example, thecommunication module 220 provides network communication such as communicating with thenetworked system 102, theclient device 110, and the third party server(s) 130. In various example embodiments, the network communication may operate over wired or wireless modalities. Web services are intended to include retrieving information from the third party server(s) 130, the database(s) 126, and the application server(s) 140. In some implementations, information retrieved by thecommunication module 215 comprises data associated with the user (e.g., user profile information from an online account, social network service data associated with the user), data associated with one or more items listed on an e-commerce website (e.g., images of the item, reviews of the item, item price), or other data to facilitate the functionality described herein. - The
attribute module 220 may receive, access, or retrieve a wide variety of attribute data from many different attribute sources. For example, theattribute module 220 may receive, retrieve, or access the attribute data from user devices or machines (e.g., the client device 110), social network services, the third party server(s) 130, the publication system(s) 142, the payment system(s) 144, other applications servers, or other attribute sources. The attribute data, as used herein, is intended to include raw data such as sensor data, profile data, social network content, and so on. - In some example embodiments, the
attribute module 220 extracts the attribute data from various sources. For instance, a payment history log of the user may include a tremendous amount of extraneous data. In this instance, theattribute module 220 extracts purchase information such as item purchased, time, purchase price, seller, location, brand, and so forth from the payment history log of the user. - In further example embodiments, the
attribute module 220 performs various functions to prepare or condition the attribute data for analysis. For instance, theattribute module 220 standardizes the attribute data to facilitate analysis of the attribute data (e.g., determine a normal form for the data to allow for comparison and other mathematical analysis). Theattribute module 220 may perform many other functions to prepare the attribute data for analysis. - In various example embodiments, the
attribute module 220 stores the attribute data in association with the user for subsequent analysis. In some implementations, theattribute module 220 stores the attribute data in the database(s) 126. The attribute data may be stored in conjunction with a user identifier such that theattribute module 220 may subsequently use the user identifier to access the attribute data corresponding to a particular user. In other implementations, theattribute module 220 accesses the stored attribute data using other schemes. For instance, theattribute module 220 may access a portion of the attribute data associated with a time, an item, a user, a type of user, a particular attribute source, and so forth. In this way, theattribute module 220 may access a portion of attribute data according to various parameters from among a large quantity of the attribute data to access, identify, or find pertinent and relevant data. - The
characteristic module 225 infers a user characteristic or multiple user characteristics corresponding to the user based on an analysis of at least a portion of the attribute data. Many schemes and techniques may be employed to infer the characteristic from the attribute data. For example, a particular user characteristic may be a work location of the user. The attribute data can include a plurality of locations (e.g., as determined by a GPS component of a user device used by the user) that include time stamps. The work location of the user may be inferred based on the consistency and timing of the locations included in the attribute data (e.g., the user is typically at a particular office building during normal working hours). Many different portions of attribute data and combinations of portions of attribute data may be analyzed to infer a wide variety of characteristics. - In various example embodiments, characteristics (e.g., the user characteristics), as used herein, are intended to include traits, qualities, actions, activities, attitudes, habits, behaviors, and the like pertaining to a person or people. Inasmuch as the attribute data may not necessarily pertain to a person (e.g., raw data such as coordinates of a particular location), a characteristic (e.g., current location of the user, disliking spicy food, having young children, being a Star Trek fanatic) may be distinct from the attribute data.
- The
management module 230 may provide management functions associated with the attribute data. For example, themanagement module 230 may provide the user with functionality to edit, modify, update, or otherwise control the attribute data. For instance, the user may remove undesired attribute data via the functionality provided by themanagement module 230. In a further instance, the user may specify permissions for portions of the attribute data using the functionality provided by themanagement module 230. The permissions may allow or prohibit certain access or uses for the attribute data (e.g., the permission may prohibit access to the attribute data by third parties). The user may grant various levels of access and abilities. In some example embodiments, the permissions may persist for a period of time, and after expiration of the time period, themanagement module 230 may revoke the permissions, - In further example embodiments, the
management module 230 requests consent from the user to access portions of the attribute data or to request permission for certain uses of the attribute data. For example, themanagement module 230 requests consent from the user to allow third parties to access portions of the attribute data. Themanagement module 230 may request a variety of other consents associated with various actions corresponding to the attribute data. - In still further example embodiments, the
management module 230 provides functionality to allow third parties to access the attribute data or the user characteristics. For example, themanagement module 230 provides a set of APIs that may be invoked by third parties to access the attribute data or the user characteristics. As discussed above, in some example embodiments, themanagement module 230 determines permission or consent of the user prior to providing access to the attribute data. - Referring now to
FIG. 2B , theitem module 250 in theuser analytics system 152 may provide functionality to facilitate identifying items from the attribute data. For example, theitem module 250 extracts demand indications, from the attribute data, that may indicate anticipatory demand by the user for a particular item. In a specific example, the demand indications may indicate use of a particular item by the user, a user supply of a particular item, a user activity indicative of a particular item (e.g., frequent visits to a beach may be indicative of demand for sunscreen products and other beach related products), and other indications of demand for various items. Theitem module 250 extracts the demand indications from many different portions of attribute data and combinations of portions of attribute data using a variety of schemes and techniques, - The
analysis module 255 provides functionality to identify items from the attribute data. For example, theanalysis module 255 identifies the commerce item or a pertinent item based on the demand indications, the user characteristics, the attribute data, or any suitable combination thereof. In further example embodiments, theanalysis module 255 calculates a demand metric based on the demand indications. In some implementations, theuser analytics system 152 performs a variety of tasks and functions based on the demand metric, such as, various aspects of facilitating the purchase associated with the commerce item. - The
order module 260 provides functionality to facilitate the user purchase associated with the commerce item. For example, theorder module 260 determines order parameters or transaction parameters for the user purchase based on the user characteristics, the attribute data, the demand indications, or among other data. In some example embodiments, theorder module 260 automatically (e.g., without intervention or action of the user) performs the user purchase on behalf of the user based on various triggers or analyses. -
FIG. 3 is a flow diagram illustrating anexample method 300 for identifying the commerce item from the attribute data and facilitating the user purchase associated with the commerce item. Atoperation 310, the attribute module receives attribute data associated with the user from a plurality of attribute sources. In various example embodiments, at least a portion of the attribute data includes real-time data or near real-time data. The term “real-time data,” as used herein, is intended to include data associated with an event currently happening. For example, the real-time data may include user input data or sensor data communicated to theattribute module 220 after a delay interval (e.g., due to transmission delay or other delays such as being temporarily stored at an intermediate device) between capturing the data and theattribute module 220 receiving the data. - As will be discussed in connection with
FIGS. 19 and 20 , the attribute data is received from a broad spectrum of attribute sources (e.g., devices, sensors, servers, databases, and other sources). Additionally, theattribute module 220 may receive the attribute data via many pathways resulting from an assortment of configurations of the attribute sources as further discussed in connection withFIGS. 18A and 18B . In an example embodiment, theattribute module 220 receives the attribute data directly from the attribute sources. In other example embodiments, theattribute module 220 receives the attribute data from a central device that receives attribute data from a plurality of user devices. In still other example embodiments, various user devices are communicatively coupled in a decentralized device-to-device mesh, and theattribute module 220 receives the attribute data corresponding to a particular device in the mesh from any of the devices in the mesh. In still other examples, theattribute module 220 receives the attribute data from the attribute sources in many other configurations including various suitable combinations of configurations. - In various example embodiments, the
attribute module 220 stores the attribute data in association with the user (e.g., indexed based on a user identifier) for subsequent analysis. Theattribute module 220 may store the attribute data in a storage device such as the database(s) 126, for example. In some implementations, theattribute module 220 accesses the stored attribute data using a variety of search or find schemes. For instance, the attribute data associated with a particular user is accessed using a user identifier that corresponds to the particular user. It will be noted that the collective, aggregated attribute data may be referred to as a “data. mesh.” - At
operation 320, theitem module 250 extracts demand indications from the attribute data. In some example embodiments, the demand indications are indicative of anticipatory demand by the user for a particular item. For instance, a particular demand indication may indicate that the user may want, desire, or have an affinity for a particular product or commerce item. It is noted that the terms “item,” “product,” “commerce item,” and the like are intended to include a wide variety of products (e.g., items corresponding to item listings published on an e-commerce website) and services (e.g., a particular activity such going to a restaurant). It is also noted that the terms “anticipatory” and “predictive” as used herein are intended to pertain to future events, or activity, including events that are in the immediate future (e.g., events within a short time period, such as minutes or seconds, of the present) as well as events further in the future (e.g., months or years from the present). - The
item module 250 extracts the demand indications from a wide variety of data included in the attribute data, such as, purchase histories, location data (e.g., as determined by a GPS component of a mobile device, beacon detections, or other location services), social media data (e.g., check-ins or postings by the user), as well as other data included in the attribute data as discussed herein. The demand indications include, for example, inventory level indications (e.g., a food supply of the user as indicated by a smart refrigerator), item usage indications (e.g., user purchase history may indicate certain item usage patterns), item activity indications, activity related to an item (e.g., the user spending time on the ski slopes may indicate a demand for ski equipment), user engagement data (e.g., the user clicking on particular links associated with various products or activities), and so forth. For instance, location data included in the attribute data may indicate frequent trips to coffee shops. In this instance, theitem module 250 extracts the location data from the attribute data since it may be indicative of demand for coffee or coffee related products by the user. In another example, social media data, such as check-ins to a gym or postings about fitness activities, may indicate demand for fitness related items or activities. - In a specific example, the user may currently possess a sufficient supply of bottled water, but based on indications of consumption rates of bottled water by the user, the user may have future demand for the bottled water. Thus, in this example, the
item module 250 extracts supply indications for the bottled water (e.g., purchase history data of the user) or consumption indications for the bottled water (e.g., inventory activity data as retrieved or accessed from a smart refrigerator) from the attribute data. That is to say, the demand indications, extracted by theitem module 250, may include the supply indications, inventory level indications, or inventory activity indication for the bottle water. - At
operation 330, theanalysis module 255 identifies the commerce item, product, or pertinent item from the attribute data based on the extracted demand indications. For instance, theanalysis module 255 determines that there may be a high likelihood that the user is interested or has demand for a particular item. In other words, theanalysis module 255 identifies the commerce item or multiple commerce items from among a plurality of commerce items associated with the demand indications based on user demand for respective commerce items included in the plurality of commerce items. - The
analysis module 255 identifies the commerce item based on the demand indications using a variety of schemes and techniques. For example, theanalysis module 255 may calculate the demand metric based on the demand indications. The demand metric may indicate a likelihood that the user has a demand for a particular item. For instance, the demand metric may be based on an occurrence count of demand indications that correspond to a particular item (e.g., a particular item with multiple corresponding demand indications may be associated with a higher demand metric than a particular item with a single corresponding demand indication). In some example embodiments, theanalysis module 255 may identify the commerce item based on the calculated demand metric exceeding a threshold (e.g., a predefined or dynamically determined value). - In another example embodiment, the
analysis module 255 ranks, sorts, or otherwise orders at least a portion of the plurality of commerce items associated with the demand indications based on the demand metric. In this example embodiment, theanalysis module 255 identifies the first, a predefined number, or a dynamically determined number of the highest-ranking commerce items included in the plurality of commerce items associated with the demand indications, either alone or in any suitable combination. For instance, theanalysis module 255 identifies the commerce item from among the plurality of commerce items associated with the demand indications based on a statistical analysis such as a percentage (e.g., top ten percent of the ranked plurality of commerce items), analysis based on standard deviations away from a mean, or other statistical methods. - In further example embodiments, the demand indications are weighted such that higher weighted demand indications may be more influential in the
analysis module 255 identifying the commerce item based on the demand indications. The weighting can be pre-defined or dynamically determined based on a user feedback data (e.g., data that indicates whether the user actually had demand for the commerce item identified by the analysis module 255). In some implementations, the feedback data is included in the attribute data subsequent to theanalysis module 255 identifying the commerce item. In this way, the analysis module can adapt, learn, or evolve as more of the attribute data is received. In some example embodiments, theanalysis module 255 employs various machine-learning techniques to enhance identifying the commerce item based on the demand indications. Similar techniques may be applied by theitem module 250 to extract the demand indications in the previous operation. - At
operation 340, thecharacteristic module 225 infers or directly measures user characteristics pertaining to the user from the attribute data. In some example embodiments, thecharacteristic module 225 may store the inferred user characteristics for subsequent analysis, for example, in a storage device such as database(s) 126. Thecharacteristic module 225 may infer a vast spectrum of the user characteristics from the attribute data. A few specific examples of user characteristics include demographic data (e.g., age, gender, marital status, number of children), user preferences (e.g., being a morning person, favorite locations, enjoying spicy food), idiosyncrasy (e.g., being forgetful, such as draining the battery on a mobile device; or being impatient, such as a line breaker that will leave a store if the line is too long), qualities (e.g., being athletic, being tail, having a large vocabulary), personality traits (e.g., being a risk taker), actions, activities (e.g., working for a nonprofit), attitudes, habits (e.g., being a coffee drinker), behaviors, beliefs, biases, demeanor, and physical characteristics of the user (e.g., height, weight, garment sizes, eye color, hair color). The specificity of the characteristics ranges from very narrow (e.g., drinks a particular brand of soda) to very broad (e.g., being generally philanthropic). To illustrate inferring the user characteristic from the attribute data, the attribute data may include user location data that may indicate frequent visits to a local school, local soccer fields, and the like. In this example, thecharacteristic module 225 infers that the user has children based on the types of locations the user may be frequently visiting, - In some instances, the
characteristic module 225 performs varying degrees of inferential analysis of the attribute data to derive the user characteristics. For example, thecharacteristic module 225 infers the user's wake-up time based on user device activity or other activity (e.g., connected alarm clock settings, logins to accounts, and various other user activities that may indicate a wake-up time). In this example, thecharacteristic module 225 infers a particular user characteristic that may be of a larger inferential jump such as the user being a morning person or a person that likes to steep in. The degree of inferential jump may be configurable. In some example embodiments, thecharacteristic module 225 employs various techniques to minimize or otherwise control incorrect inferences (e.g., machine-learning, other learning algorithms). - In further example embodiments, the
characteristic module 225 may learn, adapt, or evolve as more of the attribute data is received (e.g., via machine learning techniques or other learning algorithms). For example, the attribute data may include location data of the user. Thecharacteristic module 225 may infer a favorite location of the user based on a pattern (e.g., frequently visited locations) in the location data. However, thecharacteristic module 225 may subsequently receive employment data of the user that may indicate a current employer including an employer location. Thecharacteristic module 225 may learn, update, or otherwise adapt to account for the new attribute data. Thus, in this example, thecharacteristic module 225 does not infer a favorite location of the user if the location is a work location of the user. In some instances, the user provides input directly (e.g., via a user interface configured to receive inferential guidance from the user) to facilitate thecharacteristic module 225 in inferring characteristics from the attribute data (e.g., user input indicating that a particular inferred characteristic is incorrect or providing input to be used as a basis for future inferences). - In other instances, the
characteristic module 225 performs very little or no analysis to derive the user characteristics from the attribute data. For example, if the attribute data includes an alarm time setting from a connected alarm clock (e.g., a smart phone with an alarm clock app), the alarm time setting directly indicates a wake-up time. Since the attribute data directly relates to a particular user characteristic, thecharacteristic module 225 need not perform analysis to derive the user characteristic, - In some example embodiments, the user characteristic comprises predefined characteristics or dynamically determined characteristics. For instance, a particular set of characteristics can be predefined (e.g., work location, home location, marital status, socio-economic level). These example embodiments, the
characteristic module 225 determines that particular predefined characteristics are associated with the user based on an analysis of the attribute data. In other instances, thecharacteristic module 225 dynamically determines characteristics based on the attribute data. For example, the attribute data may indicate that the user owns a particular exotic pet. Although there may not be a predefined characteristic associated with the particular exotic pet, thecharacteristic module 225 determines the user characteristic of owning an exotic pet from the attribute data, in this example. - At
operation 350, theorder module 260 facilitates the user purchase or suggested transaction, for the user, associated with the commerce item based, at least in part, on the user characteristics. Facilitating a particular purchase is intended to include actions such as automatically (e,g., without intervention or action of the user) performing the particular purchase on behalf of the user, causing presentation of a notification that includes the option to make the particular purchase, or other actions associated with facilitating the particular purchase (e.g., causing presentation of an advertisement, adjusting item listing search results of the user to emphasize item listings associated with a particular item). In further example embodiments, theorder module 260 determines various parameters associated with the user purchase e.g., order parameters or transaction parameters) based on the attribute data, the user characteristics, the demand indications, or other data. In the discussion below, additional aspects of facilitating the user purchase are described. -
FIG. 4 is a flow diagram illustrating further operations for facilitating the user purchase based, at least in part, on an evaluation of an inventory level, according to some example embodiments. Atoperation 410, theitem module 250 extracts a current inventory level of the commerce item from the attribute data. For example, theitem module 250 extracts a quantity of the commerce item from the attribute data that includes inventory data received from a smart refrigerator. In other examples, the attribute data includes inventory indications from sensors that directly monitor or measure the commerce item. In a specific example, brake pads in an automobile of the user can be monitored via a sensor operable to indicate a condition of the brake pads (e.g., needing replacement). In another example, another user that may be associated with the user may purchase a particular item for which the user has demand. In this example, the user may no longer have demand for the particular item based on the purchase by the another user (e.g., shared shopping list between family members). - At
operation 420, theanalysis module 255 determines an inventory threshold fur the commerce item by modeling usage of the commerce item based on the extracted current inventory level and the inferred user characteristics. In an example embodiment, theanalysis module 255 determines the inventory threshold such that when the current inventory level may be below the threshold, the inventory may need to be reordered to avoid depletion. For instance, theanalysis module 255 calculates a usage rate corresponding to the commerce item based on the attribute data, the user characteristics, or other data and applies the usage rate to determine the inventory threshold for the commerce item to avoid depletion of a supply of the commerce item. For example, theanalysis module 255 determines the usage rate for a particular item based on historical purchase history data and infers usage rate based on a frequency of purchase of the particular item. In a specific example, the commerce item may be coffee beans and theanalysis module 255 determines that based on the user's current supply of coffee beans and the user's rate of consumption (e.g., the usage rate) corresponding to coffee beans, the user may run out in fourteen days. In this specific example, theanalysis module 255 determines the inventory threshold to be a value, such as a quantity of the coffee beans, that may be the current inventory level several days prior to depletion of the supply of coffee beans. - At
operation 430, theanalysis module 255 identifies a mismatch between the inventory threshold and the current inventory level. For example, if theanalysis module 255 determines that the current inventory level is below the inventory threshold, theanalysis module 255 identifies the mismatch on that basis. - At
operation 440, theorder module 260 automatically (e.g., without intervention or action of the user) performs the user purchase on behalf of the user based on the mismatch, according to some implementations. In some example embodiments, theorder module 260 accounts for shipping delays and other delays so as to avoid the current inventory level of the commerce item falling below the inventory threshold. For instance, theanalysis module 255 increases the inventory threshold to account for delays in receiving an order for a particular item. -
FIG. 5 is a flow diagram illustrating further operations for facilitating the purchase including operations to determine parameters for the purchase, according to some example embodiments. Atoperation 510, theorder module 260 determines at least one order parameter based, at least in part, on the user characteristics. The order parameter may include at least one of a quantity, a delivery time, a payment time, a delivery method, a delivery destination, a merchant, a brand, a price, an item color, an item style, and so on. For example, the user characteristics may indicate that the user may wear a certain garment size. In this example, theorder module 260 specifies order parameters for clothing or apparel according to the garment size. Similarly, theorder module 260 may specify a brand for the user purchase based on the user characteristics (e.g., historical brand purchases by the user or an analysis of the user's style and the brands that conform to that style). In another example, the user characteristics may indicate that the user may be minimizing cost above other considerations. In this example, theorder module 260 identifies a tower cost option as opposed to a speedier option (e.g., wait for a sale for a particular item or use the cheapest shipping). In another example, the user characteristics may indicate that the shipping speed may be important for certain items (e.g., a trendy new mobile device that the user may want right away). In this example, theorder module 260 determines the delivery method parameter based on how fast the order may be delivered. In another example embodiment, theorder module 260 specifies the delivery location for the user purchase based on the user characteristics (e.g., if the user purchase relates to items for the user's work, the delivery location may be the user's work location rather than a home address). Theorder module 260 may determine many other order parameters based on the user characteristics. - At
operation 520, theorder module 260 facilitates the purchase according to the determined order parameters. For example, theorder module 260 may recommend the user purchase to the user, with the recommendation including the determined order parameters (e.g., providing the user with a notification including the option to make the user purchase). In another example, theorder module 260 automatically makes the user purchase on behalf of the user. For instance, if theorder module 260 determines that the user purchase may be urgent (e.g., to avoid depletion of a supply of a certain item), routine (e.g., purchasing bottle water), or specified by the user as a permissible automatic purchase in advance, the user purchase may be made automatically to avoid burdening the user with the decision to make the user purchase. -
FIG. 6 is a flow diagram illustrating further operations for determining order parameters including operations to determine a temporal parameter associated with the purchase, according to some example embodiments. Atoperation 610, theanalysis module 255 identities a purchase motive of the user for the commerce item by analyzing the user characteristics. In various example embodiments, the purchase motive corresponds to a motive time. For example, the user may be planning a vacation that includes a beach destination. The vacation may be indicative of the purchase motive of the user for items associated with the vacation (e.g., sunscreen for a beach type vacation, snacks for a road trip type vacation, Broadway tickets for a New York city trip). In this example, the motive time corresponds to the beginning of the vacation (e.g., as determined by user calendar information included in the attribute data or purchase history data such as plane ticket information). - At
operation 620, theorder module 260 determines temporal order parameters based on the motive time. In the example above where the user may be planning a vacation, theorder module 260 determines the temporal order parameters so that the items corresponding to the user purchase arrive prior to the vacation. In another example, if the purchase motive is associated with an event, such as a graduation party, theorder module 260 may determine the temporal order parameters such that the items associated with the user purchase are delivered prior to the graduation party, since the user may no longer have demand for the particular item after a certain time. - At
operation 630, theorder module 260 facilitates the purchase according to the determined temporal order parameters. For example, theorder module 260 schedules the items corresponding to the user purchase to arrive at a certain time. -
FIG. 7 is a flow diagram illustrating further operations to facilitate the purchase based, at least in part, on purchase criteria, according to some example embodiments. Atoperation 710, theanalysis module 255 accesses purchase criteria corresponding to the user. The purchase criteria, for example, include predefined criteria, user specified criteria, dynamically determined criteria, either alone or any suitable combination thereof. For example, the purchase criteria may include temporal based criteria (e.g., criteria that specifies making the user purchase with certain time periods), budget criteria (e.g., spending limits associated with particular items or categories of items), context based criteria (e.g., adjusting the budgeting criteria based on the user's current location), among other purchase criteria. In a specific example, the user specifies a budget for a particular category or good (e.g., transportation, food, utilities, housing, entrainment, travel, health), a total budget, or a monthly budget. In addition, the user can specify rules based criteria such as a particular time to make certain purchase (e.g., after paycheck is deposited). - In further example embodiments, the
analysis module 255 identifies, and includes, in the purchase criteria, patterns in the user's purchasing habits, objectives, goals, or dynamically generate criterion. In a specific example, theanalysis module 255 determines that the user may be afflicted with a medical condition, such as a peanut allergy. In this scenario, theanalysis module 255 includes a. criterion in the purchase criteria to avoid items that contain peanuts. In another example, theanalysis module 255 determines that the user may be attempting to maintain a vegan diet and theanalysis module 255 may avoid food items that are contrary to the goal of maintaining a vegan diet. - At
operation 720, theorder module 260 automatically purchases the commerce item on behalf of the user according to the purchase criteria. In an example embodiment, theorder module 260 determines satisfaction of the purchase criteria prior to facilitating the user purchase for the user. For example, theorder module 260 determines that a particular budget criterion included in the purchase criteria has been exceeded and theorder module 260 may not perform the user purchase on that basis. In other words, theorder module 260 facilitates the user purchase based on the determined satisfaction of the purchase criteria. - Turning now to
FIG. 8 , thedata mesh system 150 may implement various suitable combinations of the operations discussed above to identify the commerce item and facilitate the user purchase. This applies equally to the operations discussed above as well as the operations in the following discussion.FIG. 8 is a flow diagram illustrating anexample method 800 of one such combination of the operations, although many other suitable combinations may be employed. At theoperation 310, theattribute module 220 receives the attribute data associated with the user. At theoperation 320, theitem module 250 extracts the demand indications from the attribute data. At theoperation 330, theanalysis module 255 identifies the commerce item from the attribute data based on the demand indications. At theoperation 340, thecharacteristic module 225 infers the user characteristics from the attribute data. As shown inFIG. 8 , various combinations of the above operations may be employed to facilitate the user purchase at theoperation 350. - In the
example method 800, to facilitate the user purchase, theitem module 250 extracts the current inventory level of the commerce item at theoperation 410. As described above, at theoperation 420, theanalysis module 255 determines the inventory threshold for the commerce item. Subsequently, at theoperation 430, theanalysis module 255 identifies the mismatch between the inventory threshold and the current inventory level. At theoperation 440, if theanalysis module 255 identifies the mismatch, theuser analysis system 152 may proceed to theoperation 510. Alternatively, if theanalysis module 255 does not identify the mismatch, no subsequent operation may be performed. - Subsequent to determining the mismatch, at the
operation 510, theorder module 260 deter nines the order parameters of the user purchase based on the user characteristics, in an example embodiment. In some example embodiments, this may involve theoperations operation 520, theorder module 260 facilitates the user purchase according to the order parameters. - Finally, at the
operation 710, theanalysis module 255 accesses the purchase criteria and at theoperation 720, theorder module 260 facilitates the user purchase according to the purchase criteria. Thus,FIG. 8 shows an example embodiment where various ones of the above operations may be employed in conjunction with each other to facilitate the user purchase. -
FIG. 9 is a flow diagram illustrating analternative example method 900 for identifying the commerce item and facilitating the user purchase, according to some example embodiments. Theexample method 900 may involve similar operations as those described above. At operation 910, similar to theoperation 310, theattribute module 220 receives or accesses the attribute data associate with the user. At operation 920, similar to theoperation 340, thecharacteristic module 225 infers the user characteristics pertaining to the user from the attribute data. - At
operation 930, theanalysis module 255 identifies similar users that are similar to the user based on the inferred user characteristics and respective user characteristics of a plurality of other users. Theanalysis module 255 identifies similar users that are similar to the user based on a variety of factors. In some example embodiments, theanalysis module 255 accesses the attribute data or stored user characteristics corresponding to the plurality of other users. For example, theanalysis module 255 identities the similar users from among the plurality of other users that are similar to the user based on the inferred user characteristics of the user and respective user characteristics of the plurality of other users. Theanalysis module 255 may correlate, match, or otherwise compare the inferred user characteristics with respective user characteristics of the plurality of other users to identity the similar users. In various example embodiments, theanalysis module 255 identifies the similar users based on same or similar demographic data (e.g., same or similar age, marital status, gender, geographic location, etc.), same or similar user characteristics (e.g., same or similar brand purchases), same or similar attribute data, and so on. - At
operation 940, theanalysis module 255 identifies the commerce item from the attribute data based on the user characteristics of the similar users and the demand indications. For example, the demand indications may indicate a particular item that may not be particularly significant based on the demand indications (e.g., the demand metric may be particularly low for the particular item). However, theanalysis module 255 may identify this particular item based on the user characteristics of the similar users indicating that the particular item may be of significance. In other words, although the demand indications did not show a strong demand for the particular item, the user characteristics of the similar users indicated that the user may have strong demand for the particular item. - In a specific example, the demand indications may indicate the user has demand for a pair of sunglasses. The demand indications in this example may further indicate the user may be interested in brands X, Y, and Z with a particular emphasis on brand X. The user characteristics of the similar users (e,g., user of the same or similar age, location, gender, other demographic information, or similar purchasing preferences may indicate that brand Z may be in high demand for the users similar to the user. On that basis, the
analysis module 255 may identify brand Z sunglasses as the commerce item. - At
operation 950, theorder module 260 determines the order parameters or transaction parameters based on the user characteristics of the similar users. For example, the delivery method may be determined based on the user characteristics of the similar users. For instance, if the similar users frequently choose a speedy delivery method for a particular item (e.g., new electronics), theorder module 260 may determine a speedy delivery method corresponding to the user purchase for the commerce item that may be the same or similar to the particular item. - Similarly, the purchase criteria may include dynamically determined criterion based on the user characteristics of the similar users. That is to say, the
analysis module 255 may dynamically generate a portion of the purchase criteria based on the similar users. For example, a default budget for particular categories of items may be determined based on an analysis of the user characteristics of the similar users (e.g., other users with similar demographic information as the user may on average spend a certain amount per category of good). - At
operation 960, theorder module 260 facilitates the user purchase associated with the commerce item according to the determined order parameters. As discussed above, theorder module 260 facilitates the user purchase in a variety of manners including automatically performing the user purchase on behalf of the user or causing presentation of a notification to the user that includes the option to make the user purchase according to the order parameters. -
FIG. 10 is a flow diagram illustrating further operations to facilitate the purchase based, at least in part, on the demand metric, according to some example embodiments. Atoperation 1010, as discussed above in connection with theoperation 330 ofFIG. 3 , theanalysis module 255 calculates the demand metric of the identified item based on the demand indications corresponding to the identified item. - At
operation 1020, theorder module 260 facilitates the user purchase based on the demand metric. For example, if theorder module 260 determines that the demand metric is high (e.g., exceeds a predefined or dynamically determined threshold) then theorder module 260 may facilitate the user purchase with more urgency than for a lower demand metric. For instance, theorder module 260 automatically performs the user purchase for the user based on a high demand metric or more frequently causes presentation of the notification that includes the option to make the user purchase to the user (or with more emphasis such as a more conspicuous notifications such as a larger user interface presentation to the user). In some instance, theorder module 260 determines the order parameters based on the demand metric. For instance, if theorder module 260 determines that the demand metric is high, then theorder module 260 may subsequently determine a speedier delivery option for the commerce item. -
FIG. 11 is a flow diagram illustrating further operations to facilitate the purchase using a notification, according to some example embodiments. Atoperation 1110, thepresentation module 210 generates the notification that includes an option to make the user purchase. The notification may include a user interface, a text message (.Short Message Service (SMS), Multimedia Messaging Service (MMS), Enhanced Messaging Service (EMS), other messaging modalities), and so on. In some example embodiments, thepresentation module 210 may generate the content of the notification based on the commerce item, the user characteristics, the user characteristics of the similar users, the attribute data, and so forth. In various example embodiments, the notification may include the order parameters for the user purchase. - At
operation 1120, thepresentation module 210 causes presentation of the generated notification to the user. For example, thepresentation module 210 may communicate instructions to present a user interface that includes the notification to a device of the user. In some example embodiments, thepresentation module 210 may determine the device of the user to present the notification of the user based on the user characteristics. For example, if the user has a preference for a particular device (e,g., a mobile device of the user), thepresentation module 210 may cause presentation of the notification to that device. In further example embodiments, the notification may provide the user the option to specify or modify the order parameters of the user purchase. - At
operation 1130, thepresentation module 210 receives a user selection of the option to make the purchase. For example, if the user chooses to make the user purchase, thepresentation module 210 may receive the user selection of the option to make the purchase and communicate the selection to theorder module 260 to perform the user purchase. - At operation 1140, the
order module 260 performs the purchase, according to some example embodiments. For example, theorder module 260 may make the user purchase according the order parameters on behalf of the user. -
FIG. 12 is a flow diagram illustrating further operations for presenting a notification, according to some example embodiments. Atoperation 1210, thepresentation module 210 identifies presentation parameters for presentation of the notification. For example, thepresentation module 210 may identify the presentation parameters based on the user characteristics, the user characteristics of the similar users, the attribute data, the demand indications, or other data. The presentation parameters may include a preferred device of the user to present the notification, preferred time of day to present the notification, content preferences (e.g., do not present notifications regarding particular item categories), and so on. In a specific example, the user characteristics may indicate a work time period for the user. In this example, the notification may not be presented to the user during the work time period as the user may not respond. In another example, theanalysis module 255 may identity a device status of a particular user device and, based on the device status, thepresentation module 210 may route the notification to another device. For instance, if the device status indicates that the device is inactive (e.g., being charged), thepresentation module 210 may cause presentation of the notification to another device (e.g., an active device as determined by device sensors). - At
operation 1220, thepresentation module 210 causes presentation of the notification according to the presentation parameters. For instance, thepresentation module 210 may cause presentation of the notification to a preferred device of the user at a time of day that the user is likely to respond to the notification as determined based on an analysis of the user characteristics. -
FIG. 13 is a flow diagram illustrating further operations for presenting a notification, according to some example embodiments. At operation 1310, theanalysis module 255 detects a trigger action of the user based on the real-time data included in the attribute data. For example, theanalysis module 255 may determine that the user may be moving into the kitchen (e.g., as determined by a Bluetootb® handshake between a mobile device the user may be wearing and a smart appliance located in the user's kitchen), which may be a good time to notify the user regarding food supplies. - At
operation 1320, thepresentation module 210 causes presentation of the notification to the user in response to detecting the trigger action. In other words, based on theanalysis module 255 detecting the trigger action of the user, thepresentation module 210 may cause presentation of the notification to the user. -
FIG. 14 is a flow diagram illustrating anexample method 1400 showing communication between various devices in relation to presenting a notification to the user, according to some example embodiments. Atoperation 1410,attribute source 1402 communicates the attribute data to thedata mesh system 150. As described above, at theoperation 310, theattribute module 220 may receive the attribute data associated with the user. At theoperation 320, theitem module 250 extracts the demand indications from the attribute data. At theoperation 330, theanalysis module 255 may identify the commerce item from the attribute data based on the demand indications. At theoperation 340, thecharacteristic module 225 infers the user characteristics from the attribute data. - In the
example method 1400, theorder module 260 facilitates the user purchase by generate the notification at theoperation 1420. Thepresentation module 210 communicates the notification from thedata mesh system 150 to the user device 1406. At operation 1430, the user device 1406 may receive the notification and present the notification to the user. Subsequently, the user may select an option to make the user purchase. The user device 1406 may communicate an indication of the user selection to make the user purchase at theoperation 1440. At operation 1450, thedata mesh system 150 may receive the user selection to make the user purchase. Finally, theorder module 260 may perform the user purchase in response to receiving the user selection to make the user purchase atoperation 1460. -
FIG. 15 depicts anexample user interface 1500 to facilitate the purchase, according to some example embodiments. It will be noted that alternate presentations of the displays ofFIG. 15 may include additional information, graphics, options, and so forth; other presentations may include less information, or may provide abridged information for easy use by the user.Notification 1510 may be text messages, such as Short Message Service (SMS) messages, Multimedia Messaging Service (MMS), Enhanced Messaging Service (EMS), and other messaging modalities, which may be provided to notify the user of the user purchase including the order parameters. In other example embodiments, thenotification 1510 may be a push notification or similar type of notification. Some notification may be interactive, enabling the user to make a selection through the SMS system, mobile application, or other method. For instance, the user may interact with thenotification 1510 usinguser interface element 1520. - To help illustrate the concepts described above,
FIGS. 16 and 17 illustrate examples of identifying the commerce item and facilitating the user purchase associated with the commerce item, according to some example embodiment. Referring now toFIG. 16 , ascene 1600 depicts a living room attached to an open kitchen. In the example ofFIG. 16 , thescene 1600 includes amedia entertainment device 1610, a smart television (TV) 1620, alamp 1630, amobile computer 1640, amobile device 1650, auser 1660, asmart refrigerator 1670, and akitchen display 1680. Each of the devices 1610-1650, 1670, and 1680 may be attribute sources coupled to a network (e.g., the network 104) and operable to communicate with thedata mesh system 150. In various example embodiments, theuser 1660 is carrying a smart device (e.g., a mobile device, a wearable device, a near field communication (NEC) enabled smart ring) on their person that may provide real-time data corresponding to theuser 1660. For instance, theuser 1660 may be carrying a mobile device that may provide real-time location data (e.g., as determined by a GPS component, beacon location detect, or other location services). In this way, theanalysis module 255 tracks, monitors, or otherwise observes the location of theuser 1660 via a particular device the user is wearing or the location of theuser 1660 may be derived from various real-time data associated with the user's location included in the attribute data (e.g., Bluetooth® handshakes between a device the user is wearing and a another device with a known or fixed location). - In an example embodiment, the
lamp 1630 is a smart lamp operable to communicate various operating data to thedata mesh system 150 or connected to a smart outlet operable to monitor the functionality of thelamp 1630. In this example embodiment, theitem module 250 extracts demand indications from portions of the attribute data corresponding to thelamp 1630. For example, the demand indications may indicate use of the lamp in a particular way (e.g., theuser 1660 may use a low brightness setting on the lamp) or that the light bulb of thelamp 1630 has burned out. Theanalysis module 255 identifies the commerce item as a light bulb that needs to be replaced based on the demand indications (e.g., detected via sensors of thelamp 1630 or derived via data from a smart outlet such as reduced power consumption indicating a burnt out light bulb). Subsequently, theorder module 260 may notify the user of the burnt-out light bulb with an option to reorder a particular light bulb based on the user characteristics (e.g., purchase history of the user). In some instance, theorder module 260 may automatically reorder the light bulb without notifying the user. In various example embodiments, theorder module 260 automatically performs the user purchase based on the purchase criteria (e.g., for this particular category of goods, simply place an automatic order). - In another example embodiment, the
smart refrigerator 1670 communicates inventory data to thedata mesh system 150. For example, the smart refrigerator may communicate food supply data. In this example embodiment, theitem module 250 extracts demand indications from the food supply data. Subsequently, theanalysis module 255 identifies the commerce item based on the demand indications. For instance, theanalysis module 255 may identify milk as the commerce item based on a low inventory level of milk. Theorder module 260 determines a quantity of milk to order based on the user characteristics (e.g., historical purchase data for milk during the current season of the year). Theorder module 260 may then generate a notification that includes an option to purchase milk. Theorder module 260 causes presentation of the notification based on the user characteristics. For instance, the real-time data included in the attribute data may indicate theuser 1660 is currently in the kitchen, which may be a good time to provide theuser 1660 the option to reorder milk (the reasoning being that theuser 1660 may be able to inspect the food supply first). In a further instance, theorder module 260 may determine that the status of themobile device 1650 is inactive (e.g., turned off or not in use based on a lack of movement detected from device accelerometers). In this scenario, theorder module 260 may cause presentation of the notification to the user on another device such asdisplay 1680, -
FIG. 17 illustrates an example of identifying an item and facilitating a purchase associated with the identified item, according to some example embodiments. Thescene 1700 depicts a city including theuser 1710 driving in a car. In this example, theitem module 250 extracts demand indications such as a location of theuser 1710 or a route of theuser 1710 that may be indicative of a.destination 1750 and thus, the commerce item. In continuing with this example, theanalysis module 255 determines thedestination 1750 of theuser 1710 from the demand indications or based on, for example, aroute 1730 the user is taking, a time of day, and a day of the year. In other words, theanalysis module 255 may determine thedestination 1750 of theuser 1710 based on the demand indications and the user characteristics or real-time context data included in the attribute data (e.g., location as determine by a GPS component of a mobile device). In some example embodiments, theanalysis module 255 or thecharacteristic module 225 determines the real-time location of the user based on Bluetooth® or other close range communication detections within a radius such asradius 1720. For instance, theanalysis module 255 determines that theuser 1710 may be at thedestination 1750 if theuser 1710 is within theradius 1740 of thedestination 1750. In this scenario, thedestination 1750 may be a coffee shop and the commerce item may be a cup of coffee. In some example embodiments, theorder module 260 automatically places an order for the cup of coffee, or presents a notification with the option to place the order for the coffee, while theuser 1710 may be in route. In further example embodiments, theorder module 260 determines the order parameters based on the user characteristics such as past orders for coffee included in a purchase history of the user. In still further example embodiments, thepresentation module 210 determines the presentation parameters based on the user being in the car (e.g., present an audio alert for the option to place the order and receive a vocal command from the user to place the order). -
FIGS. 18A and 18B depict example configurations for communicatively coupling attribute sources, according to some example embodiments. The example embodiments described herein may access a vast and rich “Internet of Things” (IoT) dataset that is predominantly provided via communicatively connected, interconnected, or otherwise communicatively coupled machines and devices that may include a multitude of sensors. In example embodiments, devices and machines that provide the attribute data, such as the attribute sources, may be communicatively coupled in many different configurations. For instance, each attribute source may be communicatively coupled to thenetworked system 102 independently to provide thenetworked system 102 access to the attribute data corresponding to each of the communicatively coupled attribute sources.FIGS. 18A and 18B depict alternative example attribute source configurations. It will be appreciated thatFIGS. 18A and 18B are merely non-limiting examples of attribute source configurations and many other configurations or suitable combinations of configurations may be employed. -
FIG. 18A depicts an example embodiment that may includeattribute sources 1810 communicatively coupled in a decentralized device-to-device mesh. In this example embodiment, the attribute data corresponding to a particular device in the mesh may be received from any one or more of the devices in the mesh. For instance, thenetworked system 102 may access the attribute data corresponding to attribute source E via attribute source H or a combination of attribute sources H and I inFIG. 18A . In an example embodiment, the attribute source H or may aggregate and store the attribute data corresponding to attribute sources A-F inFIG. 18A . In some example embodiments, thenetworked system 102 may access the attribute data associated with attribute source E by communicating with attribute source H or I inFIG. 18A . -
FIG. 18B depicts another example embodiment that may includeattribute sources 1820 communicatively coupled to a central attribute source (e.g., attribute source H inFIG. 18B ). Thenetworked system 102 may access the attribute data associated with attribute sources A-G via the central attribute source inFIG. 18B . In some embodiments, the central attribute source may aggregate and store the attribute data received or accessed from the attribute sources A-G and provide a centralized access point for the attribute data associated with all, or some, of the communicatively coupled attribute sources A-G inFIG. 18B . -
FIG. 19 depictsexample sources 1900 includingattribute sources 1910, according to some example embodiments. In various example embodiments, the attribute data may include data received, retrieved, or accessed from the attribute sources 1910. For example, theattribute sources 1910 may provide data including everything from a moisture level of a houseplant to a dribbling rhythm of a basketball. In some embodiments, the attribute data corresponding to theattribute sources 1910 may be received or accessed in real-time or near real-time. For instance, theattribute sources 1910 may communicate or otherwise provide access to the attribute data as it becomes available. In example embodiments, theattribute sources 1910 may include user device sources 1920, user data sources 1930,transportation sources 1940,materials sources 1950,third party sources 1960,home sources 1970, and a variety of other sources. As will be discussed in connection withFIG. 20 , theattribute sources 1910 may be associated with a wide variety of sensors, gauges, measurement components, and other components. - In an example embodiment, the attribute data may include data corresponding to the user device sources 1920. The user device sources 1920 may include such non-limiting examples as 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 telephone, a smart phone, a mobile device, a wearable device (e.g., a smart watch), a smart home device (e.g., a smart appliance), and other smart devices. As will be discussed further in connection with
FIG. 20 , the attribute data corresponding to the user device sources 1920 may include data associated with sensors, gauges, and other measurement components such as environmental sensor data (e.g., ambient temperature), biometric sensor data (e.g., heart rate), detection data (e.g., detection of a Near Field Communication (NFC) beacon), motion data (e.g., acceleration), position data (e.g., location as determined by a GPS of a mobile device), and so forth. - In further example embodiments, the attribute data corresponding to the user device sources 1920 may include data such as device type, device model, device name, a unique device identifier, and other device parameters. In some example embodiments, the device type data may provide a basis for an inference associated with the attribute data. For instance, if the device type data indicates that the device is a mobile device of the user, location data corresponding to the mobile device may indicate the location of the user. Similarly, if the device type is a media entertainment system, the attribute data corresponding to the media entertainment system may be associated with a home of the user.
- The user data sources 1930 may include calendars (e.g., user calendar events such as birthdays, trips, exams), user profiles (e.g., demographic information such as age, gender, income level), purchase histories, browse histories (e.g., search terms), social media content (e.g., check-ins, posts, connections), other user data (e.g., bookmarked websites, preferences or settings for various applications, application usage data such as time spent using a particular application), and the like. The attribute data corresponding to the user data sources 1930 may be stored, for example, by the user device sources 1920 (e.g., a mobile device that includes a mobile browser with browse history of the user), application server(s) 140 (e.g., payment history of the user stored in payment system(s) 144, user profiles stored by an e-commerce website), the third party server(s) 130 (e.g., social media data stored in a social networking service), and so on. For example, the attribute data corresponding to the user device sources 1920 may include device resource data. The device resource data may include files stored on the devices or metadata associated with the files. For instance, the device resources may include digital media files (e.g., MP3 formatted songs) or apps (e.g., pedometer app). The metadata associated with the device resources may include usage data such as number of times a song has been played, amount of time using a particular app, and so forth.
- As cars and other forms of transportation become increasingly equipped with sensors and the ability to communicate, a vast amount of data may he provided by the
transportation sources 1940. For example, the attribute data corresponding to thetransportation sources 1940 may include acceleration data, velocity data, and other sensor data (e.g., brake pad wear data, gear shifting data). In this example, the attribute data corresponding to thetransportation sources 1940 may provide indications of a user's driving patterns and styles (e.g., comes to a complete stop at a stop sign, speeds, or finicky use of the brakes). - The materials sources 1950, such as clothing and structures, are also increasingly gaining the ability to capture data. In various example embodiments, the attribute data may include data corresponding to the materials sources 1950. For example, clothing may be embedded with sensors to detect motion. Data from these sensors may provide indications of whether the user is active or inactive. In another example, clothing may be embedded with biometric sensors that may provide a continuous feed of biometric data corresponding to the user. The biometric data may provide indications of the user's health, athletic ability, and many other characteristics corresponding to the user. Similarly, structures may be equipped with sensors to passively or actively monitor the surrounding environment (e.g., street cameras, traffic cameras, and other sensors).
- In example emibodiments, the attribute data may include data associated with the
third party sources 1960. Thethird party sources 1960 may also provide an abundance of data associated with the user. For instance, the attribute data may include data accessed from government websites or other public records that may provide criminal histories, civil citation histories, credit histories, or other publicly available information. - Nearly every facet of a smart home may be capable of providing data associated with the user. The attribute data may include data corresponding to the
home sources 1970. For instance, thehome sources 1970 may include smart appliances, consumables, utilities, and many other smart home devices. In a few specific instances, the attribute data may include consumable inventories and consumption rates of various consumable goods (e.g., milk, bread) tracked or monitored by smart refrigerators. In another instance, the attribute data may include utility usage data (e.g., electricity, water). Analysis of the utility usage data may indicate patterns or a status of the user, such as the user being on vacation, the user being ill (e,g., increasing house thermostat set temperature to cope with a cold), the user being an energy conscious consumer, and so on. -
FIG. 20 depictsnon-limiting example components 2000 that may provide attribute data according to some example embodiments. In example embodiments, I/O components 2010 may includeinput components 2020,output components 2030,environmental components 2040,motion components 2050,position components 2060,biometric components 2070,communication components 2080,detection components 2090, and a wide gamut of other sensors, gauges, and measurement components. The I/O components 2010 or a suitable combination of the I/O components 2010 may be included in any suitable device or machine such as those included in theattribute sources 1910 depicted inFIG. 19 to facilitate the functionality described herein. In various example embodiments, the attribute data provided by the I/O components 2010 may be accessible to all or some of the modules described above on a real-time or near real-time basis. Thecomponents 2000 are grouped according to functionality merely for simplifying the following discussion and the grouping is in no way limiting. - The
input components 2020 may include alphanumeric input components (e.g., a keyboard, a touch screen configured to receive alphanumeric input, a photo-optical keyboard, or other alphanumeric input components), point-based input components (e.g., a mouse, a touchpad, a trackball, a joystick, a motion sensor, or other pointing instrument), tactile input components (e.g., a physical button, a touch screen that provides location and force of touches or touch gestures, or other tactile input components), audio input components (e.g., a microphone), and the like. Theinput components 2020 may receive input from the user to facilitate the functionalities described herein. For instance, the user may interact with a user interface using theinput components 2020. - The
output components 2030 may include visual components (e.g., a display such as a plasma display panel (PDP), a light emitting diode (LED) display, a liquid crystal display (LCD), a projector, or a cathode ray tube (CRT)), acoustic components (e,g., speakers), haptic components (e.g., a vibratory motor), other signal generators, and so forth. Theoutput components 2030 may present information to the user. For example, theoutput components 2030 may present a user interface to the user or present media files to the user. - The
environmental components 2040 may include illumination sensors (e.g., photometer), temperature sensors (e.g., one or more thermometers that detect ambient temperature), humidity sensors, pressure sensors (e.g., barometer), acoustic sensors (e.g., one or more microphones that detect background noise), proximity sensors (e.g., an infrared sensor that detects nearby objects), gas sensors (e,g., e.g., machine olfaction detection sensors, gas detection sensors to detect concentrations of hazardous gases for safety or to measure pollutants in the atmosphere), and so on. Theenvironmental components 2040 may measure various physical parameters to provide an indication or signal corresponding to the physical environment surrounding theenvironmental components 2040. - The
motion components 2050 may include acceleration sensors (e.g., accelerometer), gravitation sensors, rotation sensors (e.g., gyroscope), and so forth. Themotion components 2050 may provide motion data such as velocity, acceleration, or other force measurements along an x, y, and z axes. The motion data may be provided at a regular update rate (e.g., 10 updates per second) that may be configurable. - The
position components 2060 may include location sensors (e.g., a Global Position System (GPS) receiver component), altitude sensors (e,g., altimeters or barometers that detect air pressure from which altitude may be derived), orientation sensors (e.g., magnetometers that provide magnetic field strength along the x, y, and z axes), and the like. In an example embodiment, theposition components 2060 may provide position data such as latitude, longitude, altitude, and a time stamp. Similar to themotion components 2050, theposition components 2060 may provide the motion data at a regular update rate that may be configurable. - The
biometric components 2070 may include components to detect expressions, measure biosignais, or identify people, among other functions. For example, thebiometric components 2070 may include expression components to detect expressions (also referred to as “kinesics”) such as hand gestures (e.g., an optical component to detect a hand gesture or a Doppler component to detect hand motions), vocal expressions (e.g., a microphone to detect changes in voice pitch that may indicate tension), facial expressions (e.g., a camera to detect expressions or micro-expressions of a person such as a smile), body gestures, and eye tracking (e.g., detecting the focal point of a person's eyes or patterns in eye movement). Thebiometric components 2070 may also include, for example, biosignal components to measure biosignals such as blood pressure, heart rate, body temperature, perspiration, and brain waves (e.g., as determined by a e(electroencephalogram). In further examples, thebiometric components 2070 may include identification components to identify people such as retinal scanners (e.g., a camera component), vocal detectors (e.g., a microphone to receive audio data for voice identification), facial detectors, fingerprint detectors, and electroencephalogram sensors (e.g., to identify a person via unique brain wave patterns). - Communication may be implemented using a wide variety of technologies. The I/
O components 2010 may includecommunication components 2080 operable to communicatively couple machines or devices. For example, thecommunication components 2080 may include a network interface component or other suitable device to interface with a network (e.g., the network 104). In further examples, thecommunication components 2080 may include wired communication components, wireless communication components, cellular communication components, Near Field Communication (NFC) components, Bluetooth® components (e.g., Bluetooth® Low Energy), Wi-Fi® components, and other communication components to provide communication via other modalities. In addition, a variety of information may be derived using thecommunication components 2080 such as location via Internet Protocol (IP) geo-location, location via Wi-Fi® signal triangulation, location via detecting a NFC beacon signal that may indicate a particular location, and so forth. - The I/
O components 2010 may includedetection components 2090 that may detect a variety of identifiers. For example, thedetection components 2090 may include Radio Frequency Identification (RFID) tag reader components, Near Field Communication (NFC) smart tag detection components, optical reader components (e.g., an optical sensor to detect one-dimensional bar codes such as Universal Product Code (UPC) bar code, multi-dimensional bar codes such as Quick Response (QR) code, Aztec code, Data Matrix, Dataglyph, MaxiCode, PDF417, Ultra Code, UCC RSS-2D bar code, and other optical codes), and acoustic detection components (e.g., microphones to identify tagged audio signals). -
FIG. 21 is a block diagram 2100 of an example data structure for the attribute data associated with a particular user according to example embodiments. In example embodiments, the attribute data may be associated with a plurality of users such asuser profile data 2120,device data 2122,calendar data 2124,list data 2126,list type data 2128,interest data 2130,fitment data 2132,garment type data 2134,preference data 2136, measureddimension data 2138,fitness goal data 2140,reward data 2142,location data 2144, and other data not shown. In some example embodiments, the attribute data may be structured such that various portions of the attribute data are associated with other portions of the attribute data via relationships. For instance, thecalendar data 2124 may include a calendar event associated with an event name, an event data, and an event location for the calendar event. -
FIG. 22 is a block diagram 2200 of an example data structure for data associated with a device according to some example embodiments. In an example embodiment, thedevice data 2122 ofFIG. 21 may include a device identifier, a device name, device resources data (e.g., files stores on the devices such as browser cookies, media files), I/O component data, and so forth. In example embodiments, the device identifier may, for example, comprise an Internet Protocol (IP) address, a Media Access Control (MAC) address, other unique identifiers, an International Mobile Station Equipment Identity (IMEI), or a Mobile Equipment Identifier (MEID). In an example embodiment, the I/O component data may includestandard device parameters 2202,position data 2204,location data 2206,motion data 2208,environmental data 2210,biometric data 2212, and other data.FIG. 22 merely depicts example attribute data that may correspond to a particular device, and a variety of other data not shown may be included in the device data. Thestandard device parameters 2202 may include parameters that are standard across multiple devices included in the IoT. In various example embodiments, standardized parameters and protocols may facilitate access and utilization of the attribute data corresponding to such devices. For example, the attribute data available on an unknown device may be accessed and utilized without the need to discover or otherwise determine which parameters are available and which units of measure are associated with the parameters. Many other schemes may be employed to discover or otherwise determine available parameters accessible on a particular device. - Certain embodiments are described herein as including logic or a number of components, modules, or mechanisms. Modules may constitute either software modules (e.g., code embodied on a machine-readable medium or in a transmission signal) or hardware modules. A “hardware module” is a tangible unit capable of performing certain operations and may be configured or arranged in a certain physical manner. In various example embodiments, one or more computer systems (e.g., a standalone computer system, a client computer system, or a server computer system) or one or more hardware modules of a computer system (e.g., a processor or a group of processors) may be configured by software (e.g., an application or application portion) as a hardware module that operates to perform certain operations as described herein.
- In some embodiments, a hardware module may be implemented mechanically, electronically, or any suitable combination thereof. For example, a hardware module may include dedicated circuitry or logic that is permanently configured to perform certain operations. For example, a hardware module may be a special-purpose processor, such as a Field-Programmable Gate Array (FPGA) or an Application Specific Integrated Circuit (ASIC). A hardware module may also include programmable logic or circuitry that is temporarily configured by software to perform certain operations. For example, a hardware module may include software encompassed within a general-purpose processor or other programmable processor. It will be appreciated that the decision to implement a hardware module mechanically, in dedicated and permanently configured circuitry, or in temporarily configured circuitry (e.g., configured by software) may be driven by cost and time considerations.
- Accordingly, the phrase “hardware module” should be understood to encompass a tangible entity, be that an entity that is physically constructed, permanently configured (e.g., hardwired), or temporarily configured (e.g., programmed) to operate in a certain manner or to perform certain operations described herein. As used herein, “hardware-implemented module” refers to a hardware module. Considering embodiments in which hardware modules are temporarily configured (e.g., programmed), each of the hardware modules need not be configured or instantiated at any one instance in time. For example, where a hardware module comprises a general-purpose processor configured by software to become a special-purpose processor, the general-purpose processor may be configured as respectively different special-purpose processors (e,g., comprising different hardware modules) at different times. Software may accordingly configure a particular processor or processors, for example, to constitute a particular hardware module at one instance of time and to constitute a different hardware module at a different instance of time.
- Hardware modules can provide information to, and receive information from, other hardware modules. Accordingly, the described hardware modules may be regarded as being communicatively coupled. Where multiple hardware modules exist contemporaneously, communications may be achieved through signal transmission (e.g., over appropriate circuits and buses) between or among two or more of the hardware modules. In embodiments in which multiple hardware modules are configured or instantiated at different times, communications between such hardware modules may be achieved, for example, through the storage and retrieval of information in memory structures to which the multiple hardware modules have access. For example, one hardware module may perform an operation and store the output of that operation in a memory device to which it is communicatively coupled. A further hardware module may then, at a later time, access the memory device to retrieve and process the stored output. Hardware modules may also initiate communications with input or output devices, and can operate on a resource (e.g., a collection of information).
- The various operations of example methods described herein may be performed, at least partially, by one or more processors that are temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, such processors may constitute processor-implemented modules that operate to perform one or more operations or functions described herein. As used herein, “processor-implemented module” refers to a hardware module implemented using one or more processors.
- Similarly, the methods described herein may be at least partially processor-implemented, with a particular processor or processors being an example of hardware. For example, at least some of the operations of a method may be performed by one or more processors or processor-implemented modules. Moreover, the one or more processors may also operate to support performance of the relevant operations in a “cloud computing” environment or as a “software as a service” (SaaS). For example, at least some of the operations may be performed by a group of computers (as examples of machines including processors), with these operations being accessible via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., an Application Program Interface (API)).
- The performance of certain of the operations may be distributed among the processors, not only residing within a single machine, but deployed across a number of machines. In some example embodiments, the processors or processor-implemented modules may be located in a single geographic location (e.g., within a home environment, an office environment, or a server farm). In other example embodiments, the processors or processor-implemented modules may be distributed across a number of geographic locations.
-
FIG. 23 illustrates an examplemobile device 2300 executing a mobile operating system (e.g., iOS™, Android™, Windows® Phone, or other mobile operating systems), according to example embodiments. In one embodiment, themobile device 2300 includes a touch screen that may receive tactile information from auser 2302. For instance, theuser 2302 physically touch 2304 themobile device 2300, and in response to thetouch 2304, themobile device 2300 determines tactile information such as touch location, touch force, gesture motion, and so forth. In various example embodiments, themobile device 2300 displays a home screen 2306 (e.g., Springboard on iOS™) operable to launch applications or otherwise manage themobile device 2300. In some example embodiments, thehome screen 2306 provides status information such as battery life, connectivity, or other hardware statuses. In some implementations, theuser 2302 activates user interface elements by touching an area occupied by a respective user interface element. In this manner, theuser 2302 may interact with the applications. For example, touching the area occupied by a particular icon included in thehome screen 2306 causes launching of an application corresponding to the particular icon. - Many varieties of applications (also referred to as “apps”) may be executing on the
mobile device 2300 such as native applications (e.g., applications programmed in Objective-C running on iOS™ or applications programmed in Java running on Android™), mobile web applications (e.g., HTML5), or hybrid applications (e.g., a native shell application that launches an HTML5 session). In a specific example, themobile device 2300 includes amessaging app 2320,audio recording app 2322, acamera app 2324, abook reader app 2326, amedia app 2328, afitness app 2330, afile management app 2332, alocation app 2334, abrowser app 2336, asettings app 2338, acontacts app 2340, atelephone call app 2342, other apps (e.g., gaming apps, social networking apps, biometric monitoring apps), athird party app 2344, and so forth. -
FIG. 24 is a block diagram 2400 illustrating an architecture ofsoftware 2402, which may be installed on any one or more of devices described above.FIG. 24 is merely a non-limiting example of a software architecture, and it will be appreciated that many other architectures may be implemented to facilitate the functionality described herein. Thesoftware 2402 may be executing on hardware such asmachine 2500 ofFIG. 25 that includesprocessors 2510, memory 2530, and I/O components 2550. In the example architecture ofFIG. 24 , thesoftware 2402 may be conceptualized as a stack of layers where each layer may provide particular functionality. For example, thesoftware 2402 includes layers such as anoperating system 2404,libraries 2406,frameworks 2408, andapplications 2410. Operationally, theapplications 2410 invoke application programming interface (API) calls 2412 through the software stack and receivemessages 2414 in response to the API calls 2412, according to some implementations. - In various implementations, the
operating system 2404 manages hardware resources and provides common services. Theoperating system 2404 includes, for example, akernel 2420,services 2422, anddrivers 2424. Thekernel 2420 acts as an abstraction layer between the hardware and the other software layers in some implementations. For example, thekernel 2420 provides memory management, processor management (e.g., scheduling), component management, networking, security settings, among other functionality. Theservices 2422 may provide other common services for the other software layers. Thedrivers 2424 may be responsible for controlling or interfacing with the underlying hardware. For instance, thedrivers 2424 may include display drivers, camera drivers, Bluetooth® drivers, flash memory drivers, serial communication drivers (e.g., Universal Serial Bus (USB) drivers), Wi-Fi® drivers, audio drivers, power management drivers, and so forth. - The
libraries 2406 may provide a low-level common infrastructure that may be utilized by theapplications 2410. Thelibraries 2406 may includesystem 2430 libraries (e.g., C standard library) that may provide functions such as memory allocation functions, string manipulation functions, mathematic functions, and the like. In addition, thelibraries 2406 may includeAPI libraries 2432 such as media libraries (e.g., libraries to support presentation and manipulation of various media formats such as MPREG4, H.264, MP3, AAC, AMR, JPG, PNG), graphics libraries (e.g., an OpenerGL framework used to render 2D and 3D in a graphic content on a display), database libraries (e.g., SQLite to provide various relational database functions), web libraries (e.g., WebKit to provide web browsing functionality), and the like. Thelibraries 2406 may also include a wide variety ofother libraries 2434 to provide many other APIs to theapplications 2410. - The
frameworks 2408 may provide a high-level common infrastructure that may be utilized by theapplications 2410. For example, theframeworks 2408 may provide various graphic user interface (GUI) functions, high-level resource management, high-level location services, and so forth. Theframeworks 2408 may provide a broad spectrum of other APIs that may be utilized by theapplications 2410, some of which may be specific to a particular operating system or platform. - The
applications 2410 include ahome application 2450, acontacts application 2452, abrowser application 2454, abook reader application 2456, alocation application 2458, amedia application 2460, amessaging application 2462, agame application 2464, and a broad assortment of other applications such asthird party application 2466. In a specific example, the third party application 2466 (e.g., an application developed using the Android™ or iOS™ software development kit (SDK.) by an entity other than the vendor of the particular platform) may be mobile software running on a mobile operating system such as iOS™, Android™, Windows® Phone, or other mobile operating systems. In this example, thethird party application 2466 may invoke the API calls 2412 provided by themobile operating system 2404 to facilitate functionality described herein. -
FIG. 25 is a block diagram illustrating components of amachine 2500, according to some example embodiments, able to read instructions from a machine-readable medium (e.g., a machine-readable storage medium) and perform any one or more of the methodologies discussed herein. Specifically,FIG. 25 shows a diagrammatic representation of themachine 2500 in the example form of a computer system, within which instructions 2516 (e.g., software, a program, an application, an applet, an app, or other executable code) for causing themachine 2500 to perform any one or more of the methodologies discussed herein may be executed. In alternative embodiments, themachine 2500 operates as a standalone device or may be coupled (e.g., networked) to other machines. In a networked deployment, themachine 2500 may operate in the capacity of a server machine or a client machine in a server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. Themachine 2500 may comprise, but not be 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 telephone, 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 appliance, a network router, a network switch, a network bridge, or any machine capable of executing theinstructions 2516, sequentially or otherwise, that specify actions to be taken bymachine 2500. Further, while only asingle machine 2500 is illustrated, the term “machine” shall also be taken to include a collection ofmachines 2500 that individually or jointly execute theinstructions 2516 to perform any one or more of the methodologies discussed herein. - The
machine 2500 may includeprocessors 2510, memory 2530, and I/O components 2550, which may be configured to communicate with each other via a bus 2502. In an example embodiment, the processors 2510 (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 (MC), another processor, or any suitable combination thereof) may include, for example,processor 2512 andprocessor 2514 that may executeinstructions 2516. The term “processor” is intended to include multi-core processors that may comprise two or more independent processors (also referred to as “cores”) that may execute instructions contemporaneously. AlthoughFIG. 25 shows multiple processors, themachine 2500 may include a single processor with a single core, a single processor with multiple cores (e.g., a multi-core process), multiple processors with a single core, multiple processors with multiples cores, or any combination thereof. - The memory 2530 may include a
main memory 2532, a static memory 2534, and astorage unit 2536 accessible to theprocessors 2510 via the bus 2502. Thestorage unit 2536 may include a machine-readable medium 2538 on which is stored theinstructions 2516 embodying any one or more of the methodologies or functions described herein. Theinstructions 2516 may also reside, completely or at least partially, within themain memory 2532, within the static memory 2534, within at least one of the processors 2510 (e.g., within the processor's cache memory), or any suitable combination thereof, during execution thereof by themachine 2500. Accordingly, in various implementations, themain memory 2532, static memory 2534, and theprocessors 2510 are considered as machine-readable media 2538. - As used herein, the term “memory” refers to a machine-
readable medium 2538 able to store data temporarily or permanently and may be taken to include, but not be limited to, random-access memory (RAM), read-only memory (ROM), buffer memory, flash memory, and cache memory. While the machine-readable medium 2538 is shown in an example embodiment to be a single medium, the term “machine-readable medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, or associated caches and servers) able to storeinstructions 2516. The term “machine-readable medium” shall also be taken to include any medium, or combination of multiple media, that is capable of storing instructions (e.g., instructions 2516) for execution by a machine (e.g., machine 2500), such that the instructions, when executed by one or more processors of the machine 2500 (e.g., processors 2510), cause themachine 2500 to perform any one or more of the methodologies described herein. Accordingly, a “machine-readable medium” refers to a single storage apparatus or device, as well as “cloud-based” storage systems or storage networks that include multiple storage apparatus or devices. The term “machine-readable medium” shall accordingly be taken to include, but not be limited to, one or more data repositories in the form of a solid-state memory (e.g., flash memory), an optical medium, a magnetic medium, other non-volatile memory (e.g., Erasable Programmable Read-Only Memory (EPROM)), or any suitable combination thereof. The term “machine-readable medium” specifically excludes non-statutory signals per se. - The I/
O components 2550 include a wide variety of components to receive input, provide output, produce output, transmit information, exchange information, capture measurements, and so on. It will be appreciated that the I/O components 2550 may include many other components that are not shown inFIG. 25 . The I/O components 2550 are grouped according to functionality merely for simplifying the following discussion and the grouping is in no way limiting. In various example embodiments, the I/O components 2550 includeoutput components 2552 andinput components 2554. Theoutput components 2552 include visual components (e,g., a display such as a plasma display panel (PDP), light emitting diode (LED) display, a liquid crystal display (LCD), a projector, or a cathode ray tube (CRT)), acoustic components e.g., speakers), haptic components (e.g., a vibratory motor), other signal generators, and so forth. Theinput components 2554 include alphanumeric input components (e.g., a keyboard, a touch screen configured to receive alphanumeric input, a photo-optical keyboard, or other alphanumeric input components), point based input components (e.g., a mouse, a touchpad, a trackball, a joystick, a motion sensor, or other pointing instrument), tactile input components (e.g., a physical button, a touch screen that provides location and force of touches or touch gestures, or other tactile input components), audio input components (e.g., a microphone), and the like. - In some further example embodiments, the I/
O components 2550 includebiometric components 2556,motion components 2558,environmental components 2560, orposition components 2562 among a wide array of other components. For example, thebiometric components 2556 include components to detect expressions (e.g., hand expressions, facial expressions, vocal expressions, body gestures, or eye tracking), measure biosignals (e.g., blood pressure, heart rate, body temperature, perspiration, or brain waves), identify a person (e.g., voice identification, retinal identification, facial identification, fingerprint identification, or electroencephalogram based identification), and the like. Themotion components 2558 include acceleration sensor components (e.g., accelerometer), gravitation sensor components, rotation sensor components (e,g., gyroscope), and so forth. Theenvironmental components 2560 include, for example, illumination sensor components (e,g., photometer), temperature sensor components (e.g., one or more thermometer that detect ambient temperature), humidity sensor components, pressure sensor components (e.g., barometer), acoustic sensor components (e.g., one or more microphones that detect background noise), proximity sensor components (e.g., infrared sensors that detect nearby objects), gas sensors (e,g., machine olfaction detection sensors, gas detection sensors to detection concentrations of hazardous gases for safety or to measure pollutants in the atmosphere), or other components that may provide indications, measurements, or signals corresponding to a surrounding physical environment. Theposition components 2562 include location sensor components (e.g., a Global Position System (GPS) receiver component), altitude sensor components (e.g., altimeters or barometers that detect air pressure from which altitude may be derived), orientation sensor components (e.g., magnetometers), and the like. - Communication may be implemented using a wide variety of technologies. The I/
O components 2550 may includecommunication components 2564 operable to couple themachine 2500 to anetwork 2580 ordevices 2570 viacoupling 2582 andcoupling 2572, respectively. For example, thecommunication components 2564 include a network interface component or another suitable device to interface with thenetwork 2580. In further examples,communication components 2564 include wired communication components, wireless communication components, cellular communication components, Near Field Communication (NFC) components, Bluetooth® components (e.g., Bluetooth® Low Energy), Wi-Fi® components, and other communication components to provide communication via other modalities. Thedevices 2570 may be another machine or any of a wide variety of peripheral devices (e,g., a peripheral device coupled via a Universal Serial Bus (USB)). - Moreover, in some implementations, the
communication components 2564 detect identifiers or include components operable to detect identifiers. For example, thecommunication components 2564 include Radio Frequency identification (RFID) tag reader components, NFC smart tag detection components, optical reader components (e.g., an optical sensor to detect one-dimensional bar codes such as Universal Product Code (UPC) bar code, multi-dimensional bar codes such as Quick Response (QR) code, Aztec code, Data Matrix, Dataglyph, MaxiCode, PDF417, Ultra Code, UCC RSS-2D bar code, and other optical codes), acoustic detection components (e.g., microphones to identify tagged audio signals), or any suitable combination thereof. In addition, a variety of information can be derived via thecommunication components 2564, such as, location via Internet Protocol (IP) geo-location, location via Wi-Fit signal triangulation, location via detecting a NFC beacon signal that may indicate a particular location, and so forth. - In various example embodiments, one or more portions of the
network 2580 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 wide area network (WAN), a wireless WAN (WWAN), a metropolitan area network (MAN), the Internet, a portion of the Internet, a portion of the Public Switched Telephone Network (PSTN), a plain old telephone service (POTS) network, a cellular telephone network, a wireless network, a Wi-Fi® network, another type of network, or a combination of two or more such networks. For example, thenetwork 2580 or a portion of thenetwork 2580 may include a wireless or cellular network and thecoupling 2582 may be a Code Division Multiple Access (CDMA) connection, a Global System for Mobile communications (GSM) connection, or other type of cellular or wireless coupling. In this example, thecoupling 2582 may implement any of a variety of types of data transfer technology, 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) networks, Universal Mobile Telecommunications System (UMTS), High Speed Packet Access (HSPA), Worldwide Interoperability for Microwave Access (WiMAX), Long Term Evolution (LTE) standard, others defined by various standard setting organizations, other long range protocols, or other data transfer technology. - In example embodiments, the
instructions 2516 are transmitted or received over thenetwork 2580 using a transmission medium via a network interface device (e.g., a network interface component included in the communication components 2564) and utilizing any one of a number of well-known transfer protocols (e.g., hypertext transfer protocol (HTTP)). Similarly, in other example embodiments, theinstructions 2516 are transmitted or received using a transmission medium via the coupling 2572 (e.g., a peer-to-peer coupling) todevices 2570. The term “transmission medium” shall be taken to include any intangible medium that is capable of storing, encoding, or carryinginstructions 2516 for execution by themachine 2500, and includes digital or analog communications signals or other intangible medium to facilitate communication of such software. - Furthermore, the machine-
readable medium 2538 is non-transitory (in other words, not having any transitory signals) in that it does not embody a propagating signal. However, labeling the machine-readable medium 2538 as “non-transitory” should not be construed to mean that the medium is incapable of movement; the medium should be considered as being transportable from one physical location to another. Additionally, since the machine-readable medium 2538 is tangible, the medium may be considered to be a machine-readable device. - Throughout this specification, plural instances may implement components, operations, or structures described as a single instance. Although individual operations of one or more methods are illustrated and described as separate operations, one or more of the individual operations may be performed concurrently, and nothing requires that the operations be performed in the order illustrated. Structures and functionality presented as separate components in example configurations may be implemented as a combined structure or component. Similarly, structures and functionality presented as a single component may be implemented as separate components. These and other variations, modifications, additions, and improvements fall within the scope of the subject matter herein.
- Although an overview of the inventive subject matter has been described with reference to specific example embodiments, various modifications and changes may be made to these embodiments without departing from the broader scope of embodiments of the present disclosure. Such embodiments of the inventive subject matter may be referred to herein, individually or collectively, by the term “invention” merely for convenience and without intending to voluntarily limit the scope of this application to any single disclosure or inventive concept if more than one is, in fact, disclosed.
- The embodiments illustrated herein are described in sufficient detail to enable those skilled in the art to practice the teachings disclosed. Other embodiments may be used and derived therefrom, such that structural and logical substitutions and changes may be made without departing from the scope of this disclosure. The Detailed Description, therefore, is not to be taken in a limiting sense, and the scope of various embodiments is defined only by the appended claims, along with the full range of equivalents to which such claims are entitled.
- As used herein, the term “or” may be construed in either an inclusive or exclusive sense. Moreover, plural instances may be provided for resources, operations, or structures described herein as a single instance. Additionally, boundaries between various resources, operations, modules, engines, and data stores are somewhat arbitrary, and particular operations are illustrated in a context of specific illustrative configurations. Other allocations of functionality are envisioned and may fall within a scope of various embodiments of the present disclosure. In general, structures and functionality presented as separate resources in the example configurations may be implemented as a combined structure or resource. Similarly, structures and functionality presented as a single resource may be implemented as separate resources. These and other variations, modifications, additions, and improvements fall within a scope of embodiments of the present disclosure as represented by the appended claims. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.
Claims (20)
1. A system comprising:
an attribute module to receive attribute data associated with a user from a plurality of attribute sources;
an item module to extract demand indications from the attribute data, the demand indications being indicative of anticipatory demand by the user for a particular item;
an analysis module, implemented by a hardware processor of a machine, to identify a pertinent item from the attribute data based on the extracted demand indications;
a characteristic module to infer user characteristics pertaining to the user from the attribute data; and
an order module to determine transaction parameters for a suggested transaction associated with the pertinent item based, at least in part, on the user characteristics and facilitating the suggested transaction according to the determined transaction parameters.
2. The system of claim 1 , wherein the at least one order parameter includes at least one of a quantity, a delivery time, a payment time, a delivery method, a delivery destination, a merchant, or a product.
3. A method comprising:
receiving attribute data associated with a user from a plurality of attribute sources;
extracting demand indications from the attribute data, the demand indications being indicative of anticipatory demand by the user for a particular item;
identifying, using a hardware processor of a machine, a commerce item from the attribute data based on the extracted demand indications;
inferring user characteristics pertaining to the user from the attribute data;
determining order parameters for a user purchase associated with the commerce item based, at least in part, on the inferred user characteristics; and
facilitating the user purchase according to the determined order parameters.
4. The method of claim 3 , wherein the at least one order parameter includes at least one of a quantity, a delivery time, a payment time a delivery method, a delivery destination, a merchant, or a product.
5. The method of claim 3 , further comprising:
extracting a current inventory level of the commerce item from the attribute data;
determining an inventory threshold for the commerce item by modeling usage of the commerce item based on the extracted current inventory level and the inferred user characteristics;
identifying a mismatch between the inventory threshold and the current inventory level; and
based on the mismatch, automatically performing the user purchase on behalf of the user.
6. The method of claim 3 , further comprising:
identifying a purchase motive of the user for the commerce item by analyzing the inferred user characteristics, the purchase motive corresponding to a motive time;
determining temporal order parameters, included in the order parameters, based on the motive time; and
facilitating the user purchase according to the determined temporal order parameters.
7. The method of claim 3 , further comprising:
identifying similar users, from among a plurality of other users, that are similar to the user based on the inferred user characteristics and respective user characteristics of the plurality of other users; and
determining the order parameters based on the user characteristics of the identified similar users.
8. The method of claim 3 , further comprising:
accessing purchase criteria corresponding to the user; and
automatically purchasing the commerce item on behalf of the user according to the purchase criteria.
9. The method of claim 8 , wherein the purchase criteria include at least one criterion corresponding to a budget; and
wherein the automatically purchasing the commerce item on behalf of the user is based, at least in part, on the budget.
10. The method of claim 8 , further comprising:
determining an item category for the commerce item, the purchase criteria including criteria corresponding to the item category; and
facilitating the user purchase of the commerce item according to the purchase criteria corresponding to the determined item category.
11. The method of claim 3 , further comprising:
generating a notification that includes an option to make the user purchase, the notification including the determined order parameters;
causing presentation of the notification to the user;
receiving a user selection of the option to make the user purchase; and
responsive to receiving the user selection, performing the user purchase according to the determined order parameters.
12. The method of claim 11 , further comprising:
identifying presentation parameters for presentation of the notification to the user based on the inferred user characteristics, the presentation parameters including a presentation time and a presentation device; and
causing presentation of the notification according o the presentation. parameters.
13. The method of claim 11 , further comprising:
adapting the presentation of the notification to the user based, at least in part, on the inferred user characteristics.
14. The method of claim 1 further comprising:
detecting a trigger action of the user based on real-time data included in the attribute data; and
based on the detected trigger action, causing presentation of the notification to the user.
15. The method of claim 3 , further comprising:
calculating a demand metric for the commerce item based on the demand indications corresponding to the commerce item; and
facilitating the user purchase associated with the commerce item based, at least in part, on the demand metric.
16. The method of claim 15 , further comprising:
automatically performing the user purchase on behalf of the user based on the demand metric exceeding a threshold.
17. The method of claim 15 , further comprising:
based on demand metric exceeding a threshold, generating a notification providing the user an option to purchase the commerce item, the notification including the determined order parameters; and
causing presentation of the notification to the user.
18. A machine readable medium having no transitory signals and storing instructions that, when executed by at least one processor of a machine, cause the machine to perform operations comprising:
receiving attribute data associated with a user from a plurality of attribute sources;
extracting demand indications from the attribute data, the demand indications being indicative of anticipatory demand by the user for a particular item;
identifying an item from the attribute data based on the extracted demand indications;
inferring user characteristics pertaining to the user from the attribute data;
determining order parameters for a user purchase associated with the commerce item based, at least in part, on the inferred user characteristics; and
facilitating the user purchase according to the determined order parameters.
19. The machine-readable medium of claim 18 , wherein the at least one order parameter includes at least one of a quantity, a delivery time, a payment time, a deliver method, a delivery destination, a merchant, or a product.
20. The machine-readable medium of claim 18 , wherein the operations further comprise:
extracting a current inventory level of the commerce item from the attribute data;
determining an inventory threshold for the commerce item by modeling usage of the commerce item based on the extracted current inventory level and the inferred user characteristics;
identifying a mismatch between the inventory threshold and the current inventory level; and
based on the mismatch, automatically performing the user purchase on behalf of the user.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/459,115 US20150278912A1 (en) | 2014-03-25 | 2014-08-13 | Data mesh based zero effort shopping |
PCT/US2015/022318 WO2015148559A1 (en) | 2014-03-25 | 2015-03-24 | Data mesh platform |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201461970263P | 2014-03-25 | 2014-03-25 | |
US14/459,115 US20150278912A1 (en) | 2014-03-25 | 2014-08-13 | Data mesh based zero effort shopping |
Publications (1)
Publication Number | Publication Date |
---|---|
US20150278912A1 true US20150278912A1 (en) | 2015-10-01 |
Family
ID=54191029
Family Applications (14)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/449,126 Active US10304114B2 (en) | 2014-03-25 | 2014-07-31 | Data mesh based environmental augmentation |
US14/449,113 Active 2034-10-25 US9886710B2 (en) | 2014-03-25 | 2014-07-31 | Data mesh visualization |
US14/459,115 Abandoned US20150278912A1 (en) | 2014-03-25 | 2014-08-13 | Data mesh based zero effort shopping |
US14/498,326 Active 2034-10-10 US9576312B2 (en) | 2014-03-25 | 2014-09-26 | Data mesh-based wearable device ancillary activity |
US15/431,799 Active US10719866B2 (en) | 2014-03-25 | 2017-02-14 | Complementary activity based on availability of functionality |
US15/848,351 Active US10453111B2 (en) | 2014-03-25 | 2017-12-20 | Data mesh visualization |
US16/391,852 Active 2034-10-11 US11210723B2 (en) | 2014-03-25 | 2019-04-23 | Data mesh based environmental augmentation |
US16/575,619 Active US11100561B2 (en) | 2014-03-25 | 2019-09-19 | Data mesh visualization |
US16/890,760 Active US11120492B2 (en) | 2014-03-25 | 2020-06-02 | Device ancillary activity |
US17/369,183 Active US11810178B2 (en) | 2014-03-25 | 2021-07-07 | Data mesh visualization |
US17/391,651 Pending US20210358010A1 (en) | 2014-03-25 | 2021-08-02 | Device Ancillary Activity |
US17/538,491 Active US11657443B2 (en) | 2014-03-25 | 2021-11-30 | Data mesh based environmental augmentation |
US18/134,815 Active US11900437B2 (en) | 2014-03-25 | 2023-04-14 | Data mesh based environmental augmentation |
US18/525,676 Pending US20240095808A1 (en) | 2014-03-25 | 2023-11-30 | Data mesh based environmental augmentation |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/449,126 Active US10304114B2 (en) | 2014-03-25 | 2014-07-31 | Data mesh based environmental augmentation |
US14/449,113 Active 2034-10-25 US9886710B2 (en) | 2014-03-25 | 2014-07-31 | Data mesh visualization |
Family Applications After (11)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/498,326 Active 2034-10-10 US9576312B2 (en) | 2014-03-25 | 2014-09-26 | Data mesh-based wearable device ancillary activity |
US15/431,799 Active US10719866B2 (en) | 2014-03-25 | 2017-02-14 | Complementary activity based on availability of functionality |
US15/848,351 Active US10453111B2 (en) | 2014-03-25 | 2017-12-20 | Data mesh visualization |
US16/391,852 Active 2034-10-11 US11210723B2 (en) | 2014-03-25 | 2019-04-23 | Data mesh based environmental augmentation |
US16/575,619 Active US11100561B2 (en) | 2014-03-25 | 2019-09-19 | Data mesh visualization |
US16/890,760 Active US11120492B2 (en) | 2014-03-25 | 2020-06-02 | Device ancillary activity |
US17/369,183 Active US11810178B2 (en) | 2014-03-25 | 2021-07-07 | Data mesh visualization |
US17/391,651 Pending US20210358010A1 (en) | 2014-03-25 | 2021-08-02 | Device Ancillary Activity |
US17/538,491 Active US11657443B2 (en) | 2014-03-25 | 2021-11-30 | Data mesh based environmental augmentation |
US18/134,815 Active US11900437B2 (en) | 2014-03-25 | 2023-04-14 | Data mesh based environmental augmentation |
US18/525,676 Pending US20240095808A1 (en) | 2014-03-25 | 2023-11-30 | Data mesh based environmental augmentation |
Country Status (4)
Country | Link |
---|---|
US (14) | US10304114B2 (en) |
KR (4) | KR102379643B1 (en) |
CN (3) | CN115496556A (en) |
WO (1) | WO2015148559A1 (en) |
Cited By (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150220998A1 (en) * | 2012-10-26 | 2015-08-06 | Panasonic Intellectual Property Corporation Of America | Advertisement distribution method and advertisement distribution system |
US9576312B2 (en) | 2014-03-25 | 2017-02-21 | Ebay Inc. | Data mesh-based wearable device ancillary activity |
WO2017180612A1 (en) * | 2016-04-11 | 2017-10-19 | Ryan Aylward | Intelligent lighting control bulb detection apparatuses, systems, and methods |
US20180053153A1 (en) * | 2016-08-16 | 2018-02-22 | Xiao Ming Mai | Standalone inventory reordering system |
WO2018184899A1 (en) * | 2017-04-06 | 2018-10-11 | Philips Lighting Holding B.V. | Method and apparatus for monitoring usage of a lighting system |
US20190295148A1 (en) * | 2018-03-21 | 2019-09-26 | Amazon Technologies, Inc. | Order quantity and product recommendations based on sensor data |
US20190384990A1 (en) * | 2018-06-15 | 2019-12-19 | Samsung Electronics Co., Ltd. | Refrigerator, server and method of controlling thereof |
US10853870B2 (en) | 2018-03-22 | 2020-12-01 | Amazon Technologies, Inc. | Product and lid identification for sensor-based device |
US10878394B1 (en) | 2018-11-29 | 2020-12-29 | Square, Inc. | Intelligent inventory recommendations |
US20210027237A1 (en) * | 2019-07-23 | 2021-01-28 | Oath Inc. | Sensor-based object status determination |
US10909610B1 (en) | 2018-03-21 | 2021-02-02 | Amazon Technologies, Inc. | Method, system and computer-readable medium for automatic replenishment of items utilizing a sensor-based device |
US10909486B1 (en) | 2015-07-15 | 2021-02-02 | Square, Inc. | Inventory processing using merchant-based distributed warehousing |
US10949796B1 (en) | 2015-07-15 | 2021-03-16 | Square, Inc. | Coordination of inventory ordering across merchants |
US11010711B1 (en) | 2018-03-23 | 2021-05-18 | Amazon Technologies, Inc. | Test-enabled measurements for a sensor-based device |
US11017369B1 (en) | 2015-04-29 | 2021-05-25 | Square, Inc. | Cloud-based inventory and discount pricing management system |
US11023855B1 (en) | 2018-03-21 | 2021-06-01 | Amazon Technologies, Inc. | Managing electronic requests associated with items stored by automatic replenishment devices |
US11100464B1 (en) | 2018-03-21 | 2021-08-24 | Amazon Technologies, Inc. | Predictive consolidation system based on sensor data |
US11137479B1 (en) | 2018-03-20 | 2021-10-05 | Amazon Technologies, Inc. | Product specific correction for a sensor-based device |
US20210383311A1 (en) * | 2020-06-08 | 2021-12-09 | Walmart Apollo, Llc | Methods and apparatus for marketplace item updates |
US11210725B2 (en) | 2014-03-24 | 2021-12-28 | Square, Inc. | Determining pricing information from merchant data |
US11238113B2 (en) * | 2020-04-01 | 2022-02-01 | Grand Rounds Inc. | Systems and methods for machine learning models for search engine performance optimization |
US20220058710A1 (en) * | 2020-08-19 | 2022-02-24 | Toyota Jidosha Kabushiki Kaisha | Information processing device, information processing system, and information processing method |
US11321765B2 (en) * | 2015-06-11 | 2022-05-03 | Vivint, Inc. | Method, apparatus, and medium for product ordering using a home automation system |
US11349711B2 (en) * | 2014-10-13 | 2022-05-31 | Pismo Labs Technology Limited | Methods and systems for configuring a mobile router |
US11354617B1 (en) | 2018-03-12 | 2022-06-07 | Amazon Technologies, Inc. | Managing shipments based on data from a sensor-based automatic replenishment device |
US11361011B1 (en) | 2018-04-26 | 2022-06-14 | Amazon Technologies, Inc. | Sensor-related improvements to automatic replenishment devices |
US11537980B2 (en) | 2017-04-04 | 2022-12-27 | OrderGroove, Inc. | Consumable usage sensors and applications to facilitate automated replenishment of consumables via an adaptive distribution platform |
US11599931B2 (en) * | 2016-11-22 | 2023-03-07 | Ordergroove, Llc | Consumable usage sensors and applications to facilitate automated replenishment of consumables via an adaptive distribution platform |
US11640636B2 (en) | 2016-11-22 | 2023-05-02 | Ordergroove, Llc | Sensors and executable instructions to compute consumable usage to automate replenishment or service of consumables via an adaptive distribution platform |
US11763370B2 (en) | 2016-11-22 | 2023-09-19 | Ordergroove, Llc | Dynamic processing of electronic messaging data and protocols to automatically generate location predictive retrieval using a networked, multi-stack computing environment |
US11810066B2 (en) | 2017-04-04 | 2023-11-07 | Ordergroove, Llc | Electronic messaging to distribute items based on adaptive scheduling |
US11861579B1 (en) * | 2018-07-31 | 2024-01-02 | Block, Inc. | Intelligent inventory system |
US11900439B2 (en) | 2017-04-04 | 2024-02-13 | Ordergroove, Llc | Consumable usage sensors and applications to facilitate automated replenishment of consumables via an adaptive distribution platform |
Families Citing this family (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012119215A1 (en) | 2011-03-04 | 2012-09-13 | Eski Inc. | Devices and methods for providing a distributed manifestation in an environment |
US9345103B1 (en) * | 2013-01-07 | 2016-05-17 | Amazon Technologies, Inc. | Non-linear lighting system brightness control for a user device |
US9160729B2 (en) * | 2013-08-20 | 2015-10-13 | Paypal, Inc. | Systems and methods for location-based device security |
KR102156862B1 (en) | 2014-09-15 | 2020-09-16 | 후아웨이 테크놀러지 컴퍼니 리미티드 | Communication method, communication system and relevant device of wearable device |
KR102232583B1 (en) * | 2015-01-08 | 2021-03-26 | 삼성전자주식회사 | Electronic apparatus and web representation method thereof |
US10606221B2 (en) | 2015-02-11 | 2020-03-31 | International Business Machines Corporation | Identifying home automation correlated events and creating portable recipes |
US9536176B2 (en) * | 2015-03-23 | 2017-01-03 | International Business Machines Corporation | Environmental-based location monitoring |
CN108141903A (en) | 2015-08-05 | 2018-06-08 | 爱奇 | For the method and apparatus to communicate with receiving unit |
US10097968B2 (en) * | 2015-12-22 | 2018-10-09 | Elizabeth McHugh | Event-based interactive device system |
US10621213B2 (en) | 2015-12-23 | 2020-04-14 | Intel Corporation | Biometric-data-based ratings |
US9788152B1 (en) | 2016-04-01 | 2017-10-10 | Eski Inc. | Proximity-based configuration of a device |
US9936344B2 (en) * | 2016-06-10 | 2018-04-03 | Apple Inc. | Managing location sharing requests |
US10623250B1 (en) | 2016-06-24 | 2020-04-14 | United Services Automobile Association (Usaa) | Multi-device coordinated user experience |
US11171800B1 (en) | 2016-06-24 | 2021-11-09 | United Services Automobile Association (Usaa)) | Microservice based multi-device coordinated user experience |
CN109863543A (en) | 2016-09-07 | 2019-06-07 | 爱奇 | The optical projection system and correlation technique presented for distribution |
US11005859B1 (en) * | 2016-09-23 | 2021-05-11 | EMC IP Holding Company LLC | Methods and apparatus for protecting against suspicious computer operations using multi-channel protocol |
US9990830B2 (en) | 2016-10-06 | 2018-06-05 | At&T Intellectual Property I, L.P. | Spatial telemeter alert reconnaissance system |
US11095738B2 (en) | 2016-11-03 | 2021-08-17 | Apple Inc. | Push notifications for multiple user devices |
US10929818B2 (en) * | 2017-02-16 | 2021-02-23 | Seoul National University R&Db Foundation | Wearable sensor-based automatic scheduling device and method |
CN107213642A (en) * | 2017-05-12 | 2017-09-29 | 北京小米移动软件有限公司 | Virtual portrait outward appearance change method and device |
CN106991505A (en) * | 2017-05-15 | 2017-07-28 | 发联(上海)网络科技有限公司 | Management system for O&M electric medical treatment equipment |
CN107481086A (en) * | 2017-06-28 | 2017-12-15 | 北京小度信息科技有限公司 | Information processing method and device |
US11157562B2 (en) * | 2017-10-18 | 2021-10-26 | International Business Machines Corporation | Determining apparel-based recommendations for a user |
US10909266B2 (en) * | 2017-10-24 | 2021-02-02 | Merck Sharp & Dohme Corp. | Adaptive model for database security and processing |
US9996940B1 (en) * | 2017-10-25 | 2018-06-12 | Connectivity Labs Inc. | Expression transfer across telecommunications networks |
US20190197278A1 (en) * | 2017-12-13 | 2019-06-27 | Genista Biosciences Inc. | Systems, computer readable media, and methods for retrieving information from an encoded food label |
US10362357B1 (en) * | 2017-12-28 | 2019-07-23 | Rovi Guides, Inc. | Systems and methods for resuming media in different modes of playback based on attributes of a physical environment |
CN108614439A (en) * | 2018-05-07 | 2018-10-02 | 珠海格力电器股份有限公司 | A kind of method and device of information push |
US11169677B1 (en) | 2018-06-08 | 2021-11-09 | Wells Fargo Bank, N.A. | Future state graphical visualization generator |
CN110610545B (en) * | 2018-06-15 | 2023-07-14 | 浙江天猫技术有限公司 | Image display method, terminal, storage medium and processor |
US11212277B1 (en) * | 2018-07-02 | 2021-12-28 | Knwn Technologies, Inc. | System and method for securing, perfecting and accelerating biometric identification via holographic environmental data |
US10996846B2 (en) * | 2018-09-28 | 2021-05-04 | Snap Inc. | Neural network system for gesture, wear, activity, or carry detection on a wearable or mobile device |
US11362889B2 (en) * | 2018-10-15 | 2022-06-14 | Cdw Llc | System and method for automated information technology services management |
US11010974B2 (en) * | 2019-01-04 | 2021-05-18 | Vungle, Inc. | Augmented reality in-application advertisements |
CN110087195B (en) * | 2019-04-22 | 2021-12-10 | 希诺麦田技术(深圳)有限公司 | Method and device for transmitting data in wireless ad hoc network and storage medium |
US11043040B2 (en) * | 2019-05-21 | 2021-06-22 | Accenture Global Solutions Limited | Extended reality based positive affect implementation for product development |
US11295134B2 (en) * | 2019-07-02 | 2022-04-05 | Truist Bank | User scanning and one-way augmented reality viewing system |
USD916133S1 (en) * | 2019-09-08 | 2021-04-13 | Apple Inc. | Electronic device with icon |
US11586841B2 (en) | 2020-07-01 | 2023-02-21 | Wipro Limited | Method and system for generating user driven adaptive object visualizations using generative adversarial network models |
US11853933B1 (en) * | 2020-07-29 | 2023-12-26 | Wells Fargo Bank, N.A. | Systems and methods for an interactive customer interface utilizing customer device context |
US11893849B2 (en) * | 2021-09-13 | 2024-02-06 | Cisco Technology, Inc. | Providing physical access to a secured space based on high-frequency electromagnetic signaling |
US20230164073A1 (en) * | 2021-11-23 | 2023-05-25 | Google Llc | Systems and Methods for Tunneling Network Traffic to Apply Network Functions |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030073412A1 (en) * | 2001-10-16 | 2003-04-17 | Meade William K. | System and method for a mobile computing device to control appliances |
US20080015953A1 (en) * | 2001-08-16 | 2008-01-17 | Trans World New York Llc | User-personalized media sampling, recommendation and purchasing system using real-time inventory database |
US20080207220A1 (en) * | 2007-02-23 | 2008-08-28 | Aaron Jeffrey A | Methods, systems, and products for identity verification |
US20130214935A1 (en) * | 2011-08-22 | 2013-08-22 | Lg Electronics Inc. | Information management system for home appliance |
US20140136365A1 (en) * | 2012-11-09 | 2014-05-15 | Hyaqu, Inc. | Suggesting expenditures within a budget |
US20140279294A1 (en) * | 2013-03-14 | 2014-09-18 | Nordstrom, Inc. | System and methods for order fulfillment, inventory management, and providing personalized services to customers |
Family Cites Families (125)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5619709A (en) * | 1993-09-20 | 1997-04-08 | Hnc, Inc. | System and method of context vector generation and retrieval |
US6014661A (en) | 1996-05-06 | 2000-01-11 | Ivee Development Ab | System and method for automatic analysis of data bases and for user-controlled dynamic querying |
US6097386A (en) * | 1997-03-07 | 2000-08-01 | International Business Machines Corporation | Data processing system having context sensitive visual feedback for user interface controls and method therefor |
US6137499A (en) * | 1997-03-07 | 2000-10-24 | Silicon Graphics, Inc. | Method, system, and computer program product for visualizing data using partial hierarchies |
US6301579B1 (en) | 1998-10-20 | 2001-10-09 | Silicon Graphics, Inc. | Method, system, and computer program product for visualizing a data structure |
US6204763B1 (en) | 1999-03-22 | 2001-03-20 | Jujitsu Limited | Household consumable item automatic replenishment system including intelligent refrigerator |
US7630986B1 (en) | 1999-10-27 | 2009-12-08 | Pinpoint, Incorporated | Secure data interchange |
US7483964B1 (en) | 2000-02-25 | 2009-01-27 | Nortel Networks, Limited | System, device, and method for providing personalized services in a communication system |
US7260837B2 (en) * | 2000-03-22 | 2007-08-21 | Comscore Networks, Inc. | Systems and methods for user identification, user demographic reporting and collecting usage data usage biometrics |
US7809601B2 (en) | 2000-10-18 | 2010-10-05 | Johnson & Johnson Consumer Companies | Intelligent performance-based product recommendation system |
TW494691B (en) | 2000-11-21 | 2002-07-11 | Koninkl Philips Electronics Nv | Mobile device, auxiliary rendering device and arrangement |
US6778193B2 (en) * | 2001-02-07 | 2004-08-17 | International Business Machines Corporation | Customer self service iconic interface for portal entry and search specification |
US7623114B2 (en) * | 2001-10-09 | 2009-11-24 | Immersion Corporation | Haptic feedback sensations based on audio output from computer devices |
US20030229895A1 (en) | 2002-06-10 | 2003-12-11 | Koninklijke Philips Electronics N. V. Corporation | Anticipatory content augmentation |
US20040127198A1 (en) * | 2002-12-30 | 2004-07-01 | Roskind James A. | Automatically changing a mobile device configuration based on environmental condition |
US7908554B1 (en) | 2003-03-03 | 2011-03-15 | Aol Inc. | Modifying avatar behavior based on user action or mood |
US7676034B1 (en) * | 2003-03-07 | 2010-03-09 | Wai Wu | Method and system for matching entities in an auction |
GB0306875D0 (en) | 2003-03-25 | 2003-04-30 | British Telecomm | Apparatus and method for generating behavior in an object |
KR100680191B1 (en) * | 2003-09-05 | 2007-02-08 | 삼성전자주식회사 | Proactive user interface system with empathized agent |
WO2005059678A2 (en) * | 2003-12-11 | 2005-06-30 | Chau Minh Vuong | System and method for providing identification and search information |
US20070087313A1 (en) * | 2003-12-15 | 2007-04-19 | Vest Herb D | Method for improving relationship compatibility analysis based on the measure of psychological traits |
US20050131716A1 (en) | 2003-12-15 | 2005-06-16 | Hanan Martin D. | Method for determining compatibility |
BRPI0401465A (en) | 2004-04-20 | 2006-02-21 | Embria Informatica Ltda | system for managing interactions between users and software applications in a web environment |
US7581034B2 (en) | 2004-11-23 | 2009-08-25 | Microsoft Corporation | Sending notifications to auxiliary displays |
US8144853B1 (en) | 2005-02-02 | 2012-03-27 | At&T Intellectual Property Ii, L.P. | Methods, systems, and devices for providing contact information |
US7689681B1 (en) | 2005-02-14 | 2010-03-30 | David Scott L | System and method for facilitating controlled compensable use of a remotely accessible network device |
US7933897B2 (en) * | 2005-10-12 | 2011-04-26 | Google Inc. | Entity display priority in a distributed geographic information system |
US20070143250A1 (en) | 2005-12-20 | 2007-06-21 | Beckman Coulter, Inc. | Adaptable database system |
US20070174331A1 (en) * | 2006-01-06 | 2007-07-26 | Wolf Robert P | System and method for extending the business data associated with a network-based user collaboration tool to include spatial reference information for collaborative visualization |
US20070244844A1 (en) * | 2006-03-23 | 2007-10-18 | Intelliscience Corporation | Methods and systems for data analysis and feature recognition |
US8051468B2 (en) * | 2006-06-14 | 2011-11-01 | Identity Metrics Llc | User authentication system |
US7620610B2 (en) * | 2006-06-27 | 2009-11-17 | Microsoft Corporation | Resource availability for user activities across devices |
US8452978B2 (en) * | 2006-09-15 | 2013-05-28 | Identity Metrics, LLC | System and method for user authentication and dynamic usability of touch-screen devices |
WO2008038141A2 (en) | 2006-09-26 | 2008-04-03 | Seth Tropper | Coupon redeemable upon completion of a predetermined threshold of physical activity |
US8333641B2 (en) * | 2006-12-14 | 2012-12-18 | Sullivan C Bart | Wireless video game system and method |
US8200506B2 (en) * | 2006-12-19 | 2012-06-12 | Accenture Global Services Limited | Integrated health management platform |
US20080158222A1 (en) * | 2006-12-29 | 2008-07-03 | Motorola, Inc. | Apparatus and Methods for Selecting and Customizing Avatars for Interactive Kiosks |
US20090012841A1 (en) | 2007-01-05 | 2009-01-08 | Yahoo! Inc. | Event communication platform for mobile device users |
US20080183645A1 (en) * | 2007-01-31 | 2008-07-31 | Microsoft Corporation | Media continuity service between devices |
US20080222706A1 (en) * | 2007-03-06 | 2008-09-11 | Martin Renaud | Globally aware authentication system |
US8032472B2 (en) | 2007-04-04 | 2011-10-04 | Tuen Solutions Limited Liability Company | Intelligent agent for distributed services for mobile devices |
US20080249987A1 (en) * | 2007-04-06 | 2008-10-09 | Gemini Mobile Technologies, Inc. | System And Method For Content Selection Based On User Profile Data |
WO2008157687A1 (en) * | 2007-06-19 | 2008-12-24 | Timothy O'shaughnessy | User health status |
US8078698B2 (en) * | 2007-06-26 | 2011-12-13 | At&T Intellectual Property I, L.P. | Methods, systems, and products for producing persona-based hosts |
US8146005B2 (en) * | 2007-08-07 | 2012-03-27 | International Business Machines Corporation | Creating a customized avatar that reflects a user's distinguishable attributes |
US8190444B2 (en) | 2007-12-05 | 2012-05-29 | Microsoft Corporation | Online personal appearance advisor |
US8584024B2 (en) | 2008-02-01 | 2013-11-12 | International Business Machines Corporation | Avatar cloning in a virtual world |
KR101334066B1 (en) | 2008-02-11 | 2013-11-29 | 이점식 | Self-evolving Artificial Intelligent cyber robot system and offer method |
US9143573B2 (en) | 2008-03-20 | 2015-09-22 | Facebook, Inc. | Tag suggestions for images on online social networks |
US8024662B2 (en) * | 2008-05-30 | 2011-09-20 | International Business Machines Corporation | Apparatus for navigation and interaction in a virtual meeting place |
US8612363B2 (en) * | 2008-06-12 | 2013-12-17 | Microsoft Corporation | Avatar individualized by physical characteristic |
US7796190B2 (en) * | 2008-08-15 | 2010-09-14 | At&T Labs, Inc. | System and method for adaptive content rendition |
US8417481B2 (en) | 2008-09-11 | 2013-04-09 | Diane J. Cook | Systems and methods for adaptive smart environment automation |
US20100083139A1 (en) * | 2008-09-26 | 2010-04-01 | International Business Machines Corporation | Virtual universe avatar companion |
US9480919B2 (en) | 2008-10-24 | 2016-11-01 | Excalibur Ip, Llc | Reconfiguring reality using a reality overlay device |
US8060573B2 (en) * | 2008-11-20 | 2011-11-15 | MeetMyKind, LLC | Matching social network users |
US8340389B2 (en) * | 2008-11-26 | 2012-12-25 | Agilent Technologies, Inc. | Cellular- or sub-cellular-based visualization information using virtual stains |
US9741147B2 (en) | 2008-12-12 | 2017-08-22 | International Business Machines Corporation | System and method to modify avatar characteristics based on inferred conditions |
CA2747816C (en) | 2008-12-24 | 2015-03-24 | Chalk Media Service Corp. | A system, network and method for multi-platform publishing and synchronized content |
US8095432B1 (en) | 2009-01-30 | 2012-01-10 | Intuit Inc. | Recommendation engine for social networks |
US8264379B2 (en) * | 2009-03-10 | 2012-09-11 | Honeywell International Inc. | Methods and systems for correlating data sources for vehicle displays |
US9179847B2 (en) * | 2009-07-16 | 2015-11-10 | International Business Machines Corporation | System and method to provide career counseling and management using biofeedback |
US20110046805A1 (en) | 2009-08-18 | 2011-02-24 | Honeywell International Inc. | Context-aware smart home energy manager |
US20110093780A1 (en) | 2009-10-16 | 2011-04-21 | Microsoft Corporation | Advertising avatar |
US20110148607A1 (en) | 2009-12-17 | 2011-06-23 | Charles Timberlake Zeleny | System,device and method for providing haptic technology |
US20110153663A1 (en) | 2009-12-21 | 2011-06-23 | At&T Intellectual Property I, L.P. | Recommendation engine using implicit feedback observations |
US20110238482A1 (en) | 2010-03-29 | 2011-09-29 | Carney John S | Digital Profile System of Personal Attributes, Tendencies, Recommended Actions, and Historical Events with Privacy Preserving Controls |
US9230224B2 (en) | 2010-05-11 | 2016-01-05 | Salesforce.Com, Inc. | Providing a timeline control in a multi-tenant database environment |
JP2013528332A (en) * | 2010-05-27 | 2013-07-08 | エスエムエスシイ・ホールディングス・エス エイ アール エル | Seamless transfer of media streams |
KR101239096B1 (en) | 2010-08-26 | 2013-03-18 | (주)네오위즈게임즈 | Method, apparatus, and recorded medium for transmitting and receiving application usage information in social network system |
US8972498B2 (en) | 2010-08-24 | 2015-03-03 | Yahoo! Inc. | Mobile-based realtime location-sensitive social event engine |
US8620850B2 (en) | 2010-09-07 | 2013-12-31 | Blackberry Limited | Dynamically manipulating an emoticon or avatar |
US8473577B2 (en) | 2010-10-13 | 2013-06-25 | Google Inc. | Continuous application execution between multiple devices |
US20120116853A1 (en) | 2010-11-09 | 2012-05-10 | Samir Hanna Safar | System and process for evaluation of athlete performance |
GB201022128D0 (en) * | 2010-12-31 | 2011-02-02 | Foster Findlay Ass Ltd | Active contour segmentation |
US9245259B2 (en) * | 2011-01-14 | 2016-01-26 | Apple Inc. | Presenting E-mail on a touch device |
WO2012144776A2 (en) * | 2011-04-18 | 2012-10-26 | 엘지전자 주식회사 | Network system and method for controlling same |
WO2012155144A1 (en) | 2011-05-12 | 2012-11-15 | John Devecka | An interactive mobile-optimized icon-based profile display and associated social network functionality |
US20160270717A1 (en) * | 2011-06-10 | 2016-09-22 | Aliphcom | Monitoring and feedback of physiological and physical characteristics using wearable devices |
US20130198694A1 (en) * | 2011-06-10 | 2013-08-01 | Aliphcom | Determinative processes for wearable devices |
WO2012173446A2 (en) * | 2011-06-17 | 2012-12-20 | 성균관대학교산학협력단 | Context-specific experience sampling method and system |
WO2012178130A2 (en) | 2011-06-24 | 2012-12-27 | Monster Worldwide, Inc. | Social match platform apparatuses, methods and systems |
US8489715B2 (en) | 2011-06-29 | 2013-07-16 | Cisco Technology, Inc. | Identifying and downloading an application associated with a service registered in a home network |
US9460350B2 (en) | 2011-07-01 | 2016-10-04 | Washington State University | Activity recognition in multi-entity environments |
US8184067B1 (en) | 2011-07-20 | 2012-05-22 | Google Inc. | Nose bridge sensor |
KR101476613B1 (en) | 2011-10-31 | 2014-12-29 | 양동훈 | System for ubiquitous smart shopping |
US8892130B2 (en) | 2011-11-14 | 2014-11-18 | Robert P. Hudson | System for enabling interactive socialization of users at a location or geographic radius thereof |
JP2013103010A (en) * | 2011-11-15 | 2013-05-30 | Sony Corp | Image processing device, image processing method, and program |
US8541745B2 (en) | 2011-11-16 | 2013-09-24 | Motorola Mobility Llc | Methods and devices for clothing detection about a wearable electronic device |
KR20130068593A (en) * | 2011-12-15 | 2013-06-26 | 한국전자통신연구원 | Metaverse platform for fusing actual feeling and method for providing service using the same |
US10460350B2 (en) | 2011-12-30 | 2019-10-29 | Visa International Service Association | Digital concierge application |
US8463939B1 (en) * | 2012-01-24 | 2013-06-11 | Brian R. Galvin | System and method for optimized and distributed routing of interactions |
US9071547B2 (en) * | 2012-01-24 | 2015-06-30 | New Voice Media, Ltd. | Distributed constraint-based optimized routing of interactions |
US9109943B2 (en) | 2012-02-17 | 2015-08-18 | Qualcomm Incorporated | Weight-sensing surfaces with wireless communication for inventory tracking |
US10702773B2 (en) * | 2012-03-30 | 2020-07-07 | Videx, Inc. | Systems and methods for providing an interactive avatar |
US9118876B2 (en) | 2012-03-30 | 2015-08-25 | Verizon Patent And Licensing Inc. | Automatic skin tone calibration for camera images |
US9098357B2 (en) | 2012-04-11 | 2015-08-04 | Nokia Technologies Oy | Method and apparatus for activity management across multiple devices |
US10075334B1 (en) * | 2012-04-11 | 2018-09-11 | Google Llc | Systems and methods for commissioning a smart hub device |
US9438642B2 (en) * | 2012-05-01 | 2016-09-06 | Google Technology Holdings LLC | Methods for coordinating communications between a plurality of communication devices of a user |
US20130321446A1 (en) * | 2012-06-01 | 2013-12-05 | The Board Of Trustees Of The University Of Illinois | Methods And Systems For Visualizing Data |
US20140180595A1 (en) | 2012-12-26 | 2014-06-26 | Fitbit, Inc. | Device state dependent user interface management |
US8892697B2 (en) * | 2012-07-24 | 2014-11-18 | Dhana Systems Corp. | System and digital token for personal identity verification |
US10212046B2 (en) * | 2012-09-06 | 2019-02-19 | Intel Corporation | Avatar representation of users within proximity using approved avatars |
US10373230B2 (en) * | 2012-10-05 | 2019-08-06 | Raise Marketplace, Llc | Computer-implemented method for recommendation system input management |
KR20140062890A (en) | 2012-11-15 | 2014-05-26 | 삼성전자주식회사 | Wearable device and managing device for managing a status of user and methods thereof |
US10410180B2 (en) * | 2012-11-19 | 2019-09-10 | Oath Inc. | System and method for touch-based communications |
US9043887B2 (en) | 2012-12-31 | 2015-05-26 | Apple Inc. | Adaptive secondary authentication criteria based on account data |
US9524505B2 (en) * | 2013-04-01 | 2016-12-20 | International Business Machines Corporation | End-to-end effective citizen engagement via advanced analytics and sensor-based personal assistant capability (EECEASPA) |
WO2015013291A1 (en) | 2013-07-24 | 2015-01-29 | Pecabu, Inc. | Method and system for advertising prediction, improvement and distribution |
EP3042363A1 (en) * | 2013-09-04 | 2016-07-13 | Zero360, Inc. | Device for providing alerts via electric stimulation |
US20150088598A1 (en) * | 2013-09-24 | 2015-03-26 | International Business Machines Corporation | Cross-retail marketing based on analytics of multichannel clickstream data |
US20150120555A1 (en) | 2013-10-29 | 2015-04-30 | Elwha Llc | Exchange authorization analysis infused with network-acquired data stream information |
WO2015077280A2 (en) * | 2013-11-20 | 2015-05-28 | Evernote Corporation | Distributed application functionality and user interface for multiple connected mobile devices |
US9769522B2 (en) * | 2013-12-16 | 2017-09-19 | Echostar Technologies L.L.C. | Methods and systems for location specific operations |
US10110542B2 (en) * | 2013-12-31 | 2018-10-23 | Microsoft Technology Licensing, Llc | Wearable computing—augmented reality and presentation of social information |
US20160048019A1 (en) | 2014-08-12 | 2016-02-18 | Osterhout Group, Inc. | Content presentation in head worn computing |
KR102188266B1 (en) * | 2014-01-23 | 2020-12-08 | 엘지전자 주식회사 | A smart watch, a display device and the method of controlling thereof |
US20150253445A1 (en) | 2014-03-06 | 2015-09-10 | Westerngeco L.L.C. | Visualization of seismic attributes |
US9171434B2 (en) * | 2014-03-12 | 2015-10-27 | Google Inc. | Selectively redirecting notifications to a wearable computing device |
US20150269151A1 (en) | 2014-03-22 | 2015-09-24 | Andrew Wallace | Context Based Photograph Sharing Platform for Property Inspections |
US10304114B2 (en) | 2014-03-25 | 2019-05-28 | Ebay Inc. | Data mesh based environmental augmentation |
US20160012129A1 (en) | 2014-07-14 | 2016-01-14 | Microsoft Technology Licensing, Llc | Visualization suggestions |
US20160048595A1 (en) * | 2014-08-12 | 2016-02-18 | Lenovo (Singapore) Pte. Ltd. | Filtering Content Suggestions for Multiple Users |
US10728622B2 (en) * | 2017-08-25 | 2020-07-28 | Sony Interactive Entertainment LLC | Management of non-linear content presentation and experience |
US10657695B2 (en) * | 2017-10-30 | 2020-05-19 | Snap Inc. | Animated chat presence |
-
2014
- 2014-07-31 US US14/449,126 patent/US10304114B2/en active Active
- 2014-07-31 US US14/449,113 patent/US9886710B2/en active Active
- 2014-08-13 US US14/459,115 patent/US20150278912A1/en not_active Abandoned
- 2014-09-26 US US14/498,326 patent/US9576312B2/en active Active
-
2015
- 2015-03-24 KR KR1020207025223A patent/KR102379643B1/en active IP Right Grant
- 2015-03-24 WO PCT/US2015/022318 patent/WO2015148559A1/en active Application Filing
- 2015-03-24 CN CN202211165937.5A patent/CN115496556A/en active Pending
- 2015-03-24 CN CN201580027971.8A patent/CN106462825B/en active Active
- 2015-03-24 CN CN202211165952.XA patent/CN115496557A/en active Pending
- 2015-03-24 KR KR1020167029553A patent/KR20160137600A/en active Application Filing
- 2015-03-24 KR KR1020187012784A patent/KR102153803B1/en active IP Right Grant
- 2015-03-24 KR KR1020227009425A patent/KR20220041956A/en not_active Application Discontinuation
-
2017
- 2017-02-14 US US15/431,799 patent/US10719866B2/en active Active
- 2017-12-20 US US15/848,351 patent/US10453111B2/en active Active
-
2019
- 2019-04-23 US US16/391,852 patent/US11210723B2/en active Active
- 2019-09-19 US US16/575,619 patent/US11100561B2/en active Active
-
2020
- 2020-06-02 US US16/890,760 patent/US11120492B2/en active Active
-
2021
- 2021-07-07 US US17/369,183 patent/US11810178B2/en active Active
- 2021-08-02 US US17/391,651 patent/US20210358010A1/en active Pending
- 2021-11-30 US US17/538,491 patent/US11657443B2/en active Active
-
2023
- 2023-04-14 US US18/134,815 patent/US11900437B2/en active Active
- 2023-11-30 US US18/525,676 patent/US20240095808A1/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080015953A1 (en) * | 2001-08-16 | 2008-01-17 | Trans World New York Llc | User-personalized media sampling, recommendation and purchasing system using real-time inventory database |
US20030073412A1 (en) * | 2001-10-16 | 2003-04-17 | Meade William K. | System and method for a mobile computing device to control appliances |
US20080207220A1 (en) * | 2007-02-23 | 2008-08-28 | Aaron Jeffrey A | Methods, systems, and products for identity verification |
US20130214935A1 (en) * | 2011-08-22 | 2013-08-22 | Lg Electronics Inc. | Information management system for home appliance |
US20140136365A1 (en) * | 2012-11-09 | 2014-05-15 | Hyaqu, Inc. | Suggesting expenditures within a budget |
US20140279294A1 (en) * | 2013-03-14 | 2014-09-18 | Nordstrom, Inc. | System and methods for order fulfillment, inventory management, and providing personalized services to customers |
Non-Patent Citations (3)
Title |
---|
Chen et al "Real-time smartphone sensing and recommendations towards context-awareness shopping" Published Online: 6 December 2013, Springer-Verlag Berlin Heidelberg 2013, Pages: 61-72. * |
Park et al, "Location-Based Recommendation System Using Bayesian User's Preference Model in Mobile Devices", Springer-Verlag Berlin Heidelberg 2007UIC 2007, LNCS 4611, pp. 1130â1139, 2007 * |
Yeh et al "Intelligent service-integrated platform based on the RFID technology and software agent system" April 2011, journal homepage: www.elsevier.com/locate/eswa, Elsevier LTD, Volume 38, Issue 4, Pages: 3058-3068. , * |
Cited By (57)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10719853B2 (en) * | 2012-10-26 | 2020-07-21 | Panasonic Intellectual Property Corporation Of America | Advertisement distribution method and advertisement distribution system |
US20150220998A1 (en) * | 2012-10-26 | 2015-08-06 | Panasonic Intellectual Property Corporation Of America | Advertisement distribution method and advertisement distribution system |
US10984454B2 (en) * | 2012-10-26 | 2021-04-20 | Panasonic Intellectual Property Corporation Of America | Advertisement distribution method and advertisement distribution system |
US11210725B2 (en) | 2014-03-24 | 2021-12-28 | Square, Inc. | Determining pricing information from merchant data |
US11120492B2 (en) | 2014-03-25 | 2021-09-14 | Ebay Inc. | Device ancillary activity |
US9576312B2 (en) | 2014-03-25 | 2017-02-21 | Ebay Inc. | Data mesh-based wearable device ancillary activity |
US11210723B2 (en) | 2014-03-25 | 2021-12-28 | Ebay Inc. | Data mesh based environmental augmentation |
US11900437B2 (en) | 2014-03-25 | 2024-02-13 | Ebay Inc. | Data mesh based environmental augmentation |
US10304114B2 (en) | 2014-03-25 | 2019-05-28 | Ebay Inc. | Data mesh based environmental augmentation |
US11100561B2 (en) | 2014-03-25 | 2021-08-24 | Ebay Inc. | Data mesh visualization |
US11810178B2 (en) | 2014-03-25 | 2023-11-07 | Ebay Inc. | Data mesh visualization |
US10453111B2 (en) * | 2014-03-25 | 2019-10-22 | Ebay Inc. | Data mesh visualization |
US11657443B2 (en) | 2014-03-25 | 2023-05-23 | Ebay Inc. | Data mesh based environmental augmentation |
US10719866B2 (en) | 2014-03-25 | 2020-07-21 | Ebay Inc. | Complementary activity based on availability of functionality |
US20180189858A1 (en) * | 2014-03-25 | 2018-07-05 | Ebay Inc. | Data mesh visualization |
US11349711B2 (en) * | 2014-10-13 | 2022-05-31 | Pismo Labs Technology Limited | Methods and systems for configuring a mobile router |
US11017369B1 (en) | 2015-04-29 | 2021-05-25 | Square, Inc. | Cloud-based inventory and discount pricing management system |
US11321765B2 (en) * | 2015-06-11 | 2022-05-03 | Vivint, Inc. | Method, apparatus, and medium for product ordering using a home automation system |
US10949796B1 (en) | 2015-07-15 | 2021-03-16 | Square, Inc. | Coordination of inventory ordering across merchants |
US10909486B1 (en) | 2015-07-15 | 2021-02-02 | Square, Inc. | Inventory processing using merchant-based distributed warehousing |
US10034353B2 (en) * | 2016-04-11 | 2018-07-24 | Noon Home, Inc. | Intelligent lighting control bulb detection apparatuses, systems, and methods |
WO2017180612A1 (en) * | 2016-04-11 | 2017-10-19 | Ryan Aylward | Intelligent lighting control bulb detection apparatuses, systems, and methods |
US11013089B2 (en) * | 2016-04-11 | 2021-05-18 | Racepoint Energy, LLC | Intelligent lighting control bulb detection apparatuses, systems, and methods |
US20190141819A1 (en) * | 2016-04-11 | 2019-05-09 | Noon Home, Inc. | Intelligent lighting control bulb detection apparatuses, systems, and methods |
US20180053153A1 (en) * | 2016-08-16 | 2018-02-22 | Xiao Ming Mai | Standalone inventory reordering system |
US10402779B2 (en) * | 2016-08-16 | 2019-09-03 | Xiao Ming Mai | Standalone inventory reordering system |
US11640636B2 (en) | 2016-11-22 | 2023-05-02 | Ordergroove, Llc | Sensors and executable instructions to compute consumable usage to automate replenishment or service of consumables via an adaptive distribution platform |
US11599931B2 (en) * | 2016-11-22 | 2023-03-07 | Ordergroove, Llc | Consumable usage sensors and applications to facilitate automated replenishment of consumables via an adaptive distribution platform |
US11763370B2 (en) | 2016-11-22 | 2023-09-19 | Ordergroove, Llc | Dynamic processing of electronic messaging data and protocols to automatically generate location predictive retrieval using a networked, multi-stack computing environment |
US11537980B2 (en) | 2017-04-04 | 2022-12-27 | OrderGroove, Inc. | Consumable usage sensors and applications to facilitate automated replenishment of consumables via an adaptive distribution platform |
US11900439B2 (en) | 2017-04-04 | 2024-02-13 | Ordergroove, Llc | Consumable usage sensors and applications to facilitate automated replenishment of consumables via an adaptive distribution platform |
US11810066B2 (en) | 2017-04-04 | 2023-11-07 | Ordergroove, Llc | Electronic messaging to distribute items based on adaptive scheduling |
WO2018184899A1 (en) * | 2017-04-06 | 2018-10-11 | Philips Lighting Holding B.V. | Method and apparatus for monitoring usage of a lighting system |
US11741418B1 (en) | 2018-03-12 | 2023-08-29 | Amazon Technologies, Inc. | Managing shipments based on data from a sensor-based automatic replenishment device |
US11354617B1 (en) | 2018-03-12 | 2022-06-07 | Amazon Technologies, Inc. | Managing shipments based on data from a sensor-based automatic replenishment device |
US11137479B1 (en) | 2018-03-20 | 2021-10-05 | Amazon Technologies, Inc. | Product specific correction for a sensor-based device |
US10909610B1 (en) | 2018-03-21 | 2021-02-02 | Amazon Technologies, Inc. | Method, system and computer-readable medium for automatic replenishment of items utilizing a sensor-based device |
US20190295148A1 (en) * | 2018-03-21 | 2019-09-26 | Amazon Technologies, Inc. | Order quantity and product recommendations based on sensor data |
US11023855B1 (en) | 2018-03-21 | 2021-06-01 | Amazon Technologies, Inc. | Managing electronic requests associated with items stored by automatic replenishment devices |
US11100464B1 (en) | 2018-03-21 | 2021-08-24 | Amazon Technologies, Inc. | Predictive consolidation system based on sensor data |
US10846780B2 (en) * | 2018-03-21 | 2020-11-24 | Amazon Technologies, Inc. | Order quantity and product recommendations based on sensor data |
US10853870B2 (en) | 2018-03-22 | 2020-12-01 | Amazon Technologies, Inc. | Product and lid identification for sensor-based device |
US11010711B1 (en) | 2018-03-23 | 2021-05-18 | Amazon Technologies, Inc. | Test-enabled measurements for a sensor-based device |
US11361011B1 (en) | 2018-04-26 | 2022-06-14 | Amazon Technologies, Inc. | Sensor-related improvements to automatic replenishment devices |
US11521391B2 (en) * | 2018-06-15 | 2022-12-06 | Samsung Electronics Co., Ltd. | Refrigerator, server and method of controlling thereof |
US20190384990A1 (en) * | 2018-06-15 | 2019-12-19 | Samsung Electronics Co., Ltd. | Refrigerator, server and method of controlling thereof |
US11861579B1 (en) * | 2018-07-31 | 2024-01-02 | Block, Inc. | Intelligent inventory system |
US10878394B1 (en) | 2018-11-29 | 2020-12-29 | Square, Inc. | Intelligent inventory recommendations |
US11481749B1 (en) | 2018-11-29 | 2022-10-25 | Block, Inc. | Intelligent inventory recommendations |
US20210027237A1 (en) * | 2019-07-23 | 2021-01-28 | Oath Inc. | Sensor-based object status determination |
US11948125B2 (en) * | 2019-07-23 | 2024-04-02 | Verizon Patent And Licensing Inc. | Sensor-based object status determination |
US11640435B2 (en) * | 2020-04-01 | 2023-05-02 | Included Health, Inc. | Systems and methods for machine learning models for search engine performance optimization |
US20230244726A1 (en) * | 2020-04-01 | 2023-08-03 | Included Health, Inc. | Systems and methods for machine learning models for search engine performance optimization |
US20220156333A1 (en) * | 2020-04-01 | 2022-05-19 | Grand Rounds, Inc. | Systems and methods for machine learning models for search engine performance optimization |
US11238113B2 (en) * | 2020-04-01 | 2022-02-01 | Grand Rounds Inc. | Systems and methods for machine learning models for search engine performance optimization |
US20210383311A1 (en) * | 2020-06-08 | 2021-12-09 | Walmart Apollo, Llc | Methods and apparatus for marketplace item updates |
US20220058710A1 (en) * | 2020-08-19 | 2022-02-24 | Toyota Jidosha Kabushiki Kaisha | Information processing device, information processing system, and information processing method |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11810178B2 (en) | Data mesh visualization | |
US10146860B2 (en) | Biometric data based notification system | |
US20150058123A1 (en) | Contextually aware interactive advertisements | |
US20210264507A1 (en) | Interactive product review interface | |
US20230076209A1 (en) | Generating personalized banner images using machine learning | |
CN110785755B (en) | Context identification for content generation | |
AU2016101802A4 (en) | Data mesh platform |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: EBAY INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:MELCHER, RYAN;TAPLEY, JOHN;LEE, ROBERT;SIGNING DATES FROM 20140806 TO 20140812;REEL/FRAME:033530/0387 |
|
AS | Assignment |
Owner name: PAYPAL, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:EBAY INC.;REEL/FRAME:036171/0221 Effective date: 20150717 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |