Embodiments of the present disclosure relate generally to mobile computing technology and, more particularly, but not by way of limitation, to consumable personalization.
An almost infinite variety of consumables such as wine, coffee, and cannabis are available to consumers. For instance, there are 738 documented cannabis strains as of this writing. In addition, there are up to 85 compounds found in cannabis. The differing attributes between the strains may range from subtle to profound. Conventionally, experienced connoisseurs make recommendations to consumers. However, each consumer has a unique physiology and preferences that may result in ill-advised recommendations even from experienced connoisseurs.
Various ones of the appended drawings merely illustrate example embodiments of the present disclosure and should not be considered as limiting its scope.
The description that follows includes systems, methods, techniques, instruction sequences, and computing machine program products that embody illustrative embodiments of the disclosure. In 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.
Example embodiments provide systems and methods for consumable personalization. The term “consumable,” as used herein, is intended to include a cannabis, wine, beer, chocolate, tea, coffee, and so forth. Each consumable can come in many different forms and variations. Each variation has different attributes that users experience differently. For consumables such as cannabis, a consumer's differing experience is beyond mere preference as different consumers can experience different psychoactive effects from the active ingredient. Identifying which consumable a consumer may prefer is a challenge given the vast variety available to choose from.
To assist users in identifying consumables, in various example embodiments, a personalization system receives a request to identify consumables similar to a first consumable. For example, a user may indicate a desire to find consumables that provide similar physical or psychoactive effects as the first consumable. After the personalization system receives the request to identify the similar consumables, the personalization system accesses consumable data corresponding to a plurality of consumables. The consumable data includes attributes of respective consumable of the plurality of consumables. The attributes include potency data for a first active ingredient of the first consumable. The personalization system identifies a second consumable among the plurality of consumables by comparing attributes of the first consumable with the attributes of the respective consumables. For instance, the personalization system can compare potencies of active ingredients or ratios of potencies of active ingredients in the consumables. After the personalization system identifies the second consumable, the personalization system causes presentation of the second consumable on a user interface of the user device.
As shown in
As shown in
The client device(s) 110 can execute conventional web browser applications or applications (also referred to as “apps”) that have been developed for a specific platform to include any of a wide variety of mobile computing devices and mobile-specific operating systems (e.g., IOS™, ANDROID™, WINDOWS® PHONE). In an example, the client device(s) 110 are executing the client application(s) 112. The client application(s) 112 can provide functionality to present information to a user 106 and communicate via the network 104 to exchange information with the personalization servers 130. Each of the client device(s) 110 can comprise a computing device that includes at least a display and communication capabilities with the network 104 to access the personalization servers 130. The client device(s) 110 comprise, but are not limited to, remote devices, work stations, computers, general purpose computers, Internet appliances, hand-held devices, wireless devices, portable devices, wearable computers, cellular or mobile phones, personal digital assistants (PDAs), smart phones, tablets, ultrabooks, netbooks, laptops, desktops, multi-processor systems, microprocessor-based or programmable consumer electronics, game consoles, set-top boxes, network PCs, mini-computers, and the like. User(s) 106 can be a person, a machine, or other means of interacting with the client device(s) 110. In some embodiments, the user(s) 106 interact with the personalization servers 130 via the client device(s) 110.
As shown in
The application logic layer 126 includes various application logic module(s) 150, which, in conjunction with the interface module(s) 140, generate various user interfaces with data retrieved from various data sources or data services in the data layer 128. Individual application logic module(s) 150 may be used to implement the functionality associated with various applications, services, and features of the personalization servers 130. For instance, a consumable personalization, tracking, and recommendation application can be implemented with one or more of the application logic module(s) 150. The application provides a data exchange mechanism for users of the client device(s) 110 to exchange consumable data (e.g., a history of consumable use by the user or recommended consumables for the user). Of course, other applications and services may be separately embodied in their own application server module(s) 150.
As illustrated in
The communication module 210 provides various communications functionality. For example, the communication module 210 receives requests to identify consumables, preference selections from the user, user consumption data, and so forth. The communication module 210 exchanges network communications with the database server(s) 134, the client device(s) 110, and the third party server(s) 120. The information retrieved by the communication module 210 includes data associated with the user (e.g., a list of stored consumables for the user) or other data to facilitate the functionality described herein.
The presentation module 220 provides various presentation and user interface functionality operable to interactively present information to and receive information from the user. For instance, the presentation module 220 is utilizable to interactively present a list of identified consumables to the user. In various embodiments, the presentation module 220 presents or causes presentation of information (e.g., visually displaying information on a screen, acoustic output, haptic feedback). The process of interactively presenting information is intended to include the exchange of information between a particular device and the user. The user may provide input to interact with the user interface in many possible manners, such as alphanumeric, point based (e.g., cursor), tactile, or other input (e.g., touch screen, tactile sensor, light sensor, infrared sensor, biometric sensor, microphone, gyroscope, accelerometer, or other sensors). The presentation module 220 provides many other user interfaces to facilitate functionality described herein. The term “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 match module 230 provides functionality to identify consumables. For instance, the match module 230 identifies consumables based on a comparison of consumable attributes (e.g., active ingredient potency), user data (e.g., historical consumption logs, user preferences, or a user activity), or user data of another user (e.g., historical consumption logs of a particular user that is similar to the user).
The dosage module 240 provides functionality to determine consumption quantity recommendations. For example, the dosage module 240 performs an analysis of historical consumption data (e.g., a log of the user consumption sessions that includes consumable dosage data and a rating of the consumption session) to determine a recommended dose for a particular session. The dosage module 240 may account for a variety of factors when determining the recommended dose such as time of day, time of year, user activity, current weather, age of the consumable, potency of active ingredients in the consumable or similar consumables, and so forth. In another example, the dosage module 240 determines the recommended dosage or a recommended consumption quantity based on a previously consumption of another consumable. For instance, the dosage module 240 analyzes the concentrations or potencies of various compounds in the previously consumed consumable to determine a consumption quantity to achieve a recommended consumption quantity for a different consumable. The analysis module 240 may determine the recommended consumption quantity such that a similar physical or psychoactive effect results from the recommended consumption quantity for a particular consumable as compared with a previous consumption session.
The data module 250 provides various data functionality such as exchanging information with databases or servers. For example, the data module 250 accesses data from the third party server(s) 120, the database(s) 134, and the client device(s) 110. In a specific example, the data module 250 accesses consumable data corresponding to a plurality of consumables. The consumable data includes, for example, chemical composition data (e.g., active ingredient or passive ingredient potencies or concentrations), reviews, ratings, description, names, and so forth. In another example, the data module 250 accesses inventory data for a consumable from a particular third party server (e.g., an inventory level for a particular consumable at a particular dispensary or merchant). In further embodiments, the data module 250 tracks, or otherwise monitors, and stores consumption by the user. For example, the communication module 210 may receive consumption data of the user (e.g., a quantity consumed by the user during a consumption session). In a specific example, the data module 250 stores consumption data received from a scale (e.g., a smart scale communicatively coupled to the user device), or another detection device or sensor, that detects a consumption quantity of the consumable.
Turning now to
In some embodiments, the user device 320 is a location enable smart phone that can provide a current geolocation to the personalization system 160. In these embodiments, certain features of the personalization system are enabled, or activated, based on the current geolocation of the user. For example, government regulation for cannabis-based consumables differs by state. In various embodiments, some features of the personalization system 160 may be disable based on the current location being within a particular state.
At operation 410, the communication module 210 receives, from a user device of a user, a request to identifying similar consumables that are similar to a first consumable. In some embodiments, the request includes consumable data corresponding to the first consumable such as a consumable identifier (e.g., a name), consumable description, chemical composition (e.g., active ingredient concentration), and so on.
In an example embodiment, the user initiates the request at the user device and the request is received at the communication module 210. For example, the user can perform a touch-based gesture on the user device to initiate the request, as further discussed below in connection with
At operation 420, the data module 250 accesses consumable data corresponding to a plurality of consumables. In various embodiments, the consumable data includes attributes of respective consumables of the plurality of consumables. In these embodiments, the attributes include potency data for a first active ingredient. In further embodiments, the consumable data includes consumable descriptions, ratings, reviews, chemical composition, and other information. The data module 250 accesses the consumable data, for example, from the databases 134 or the third party servers 120.
At operation 430, the match module 230 identifies a second consumable, or multiple second consumables, among the plurality of consumables by comparing attributes of the first consumable with the attributes of the respective consumables of the plurality of consumables. In various embodiments, the attributes of consumables include, for example, chemical composition (e.g., active ingredients or a ratio of active ingredients), ratings or reviews, price, availability, name, description, an image of the consumable, and so forth. For example, the attribute of a particular consumable can comprise a chemical composition such as a concentration or potency of an active ingredient. In an example embodiment, the match module 230 scores candidate consumables among the plurality of consumables. For instance, if an attribute of the candidate consumable is the same or similar to the attribute of the first consumable, the candidate consumable may correspond to a higher score. In these embodiments, the match module 230 ranks the candidate consumables by their respective scores. In an embodiment, the match module 230 identifies the second consumable as being the highest scoring candidate consumable among the plurality of consumables. In another embodiment, the match module 230 identifies multiple matching second consumables (e.g., top 10 scoring candidate consumables).
At operation 440, the presentation module 220 causes presentation of the second consumable on a user interface of the user device. For example, the presentation module 220 causes presentation of data associated with the second consumable on the user device such as a consumable name, description, image, etc. In embodiments where the match module 230 identifies multiple consumables, the presentation module 220 can present a list of the identified multiple consumables (e.g., a list ranked by a score, alphabetically, or by consumable category).
In further example embodiments, the presentation module 220 converts an attribute description into a commonplace description. For example, scientific names for compounds can be translated or converted into “street names” or a common place name. To illustrate, a particular strain of cannabis or beer hops can contain myrcene, which is characterized by an earthy, fruity clove-like smell. The presentation module 220 can convert an attribute description that includes myrcene to a commonplace attribute description that includes, for example, earthy, fruity clove-like. In an example embodiment, the presentation module 220 accesses chemical composition data of a particular consumable, converts a scientific name included in the chemical composition data to a commonplace name, and causes presentation of the commonplace name on the user interface of the user device.
At operation 610, the match module 230 identifies a similar user, or multiple similar users, from among a plurality of users that is similar to the user. In some embodiments, the match module 230 identifies the similar user based on user data of the user and user data of the similar user. In an example, the match module 230 identifies similar users of the user based on demographic information (e.g., same or similar age, socio-economic status, gender, marital status, or occupation) or other user information (e.g., medical conditions, user hobbies, user activities, consumable preferences, body weight, body height, or another physical characteristic of the user).
At operation 620, the match module 230 identifies the second consumable, or multiple second consumables, based on the user data of the identified similar user. In these embodiments, the user data includes consumable preference of the user (e.g., review, ratings, or notes pertaining to specific consumables), consumption log data (e.g., a number of time a particular user has used a particular consumable), and so forth.
In some embodiments, the match module 230 identifies the second consumable based on user data from multiple identified similar users. For example, the match module 230 can identify a first similar user that is similar to the user with respect to activities and hobbies and a second similar user that is similar to the user with respect to body size and physical activity level. In this example, the match module 230 can identify a consumable using the user data from the first similar user and the second similar user (e.g., identify a consumable with psychoactive affects based on the first similar user and with a potency of activity ingredients based on the second similar user).
At operation 710, the communication module 210 receives, from the user device, an indication of a user activity of the user. For example, the user may input or specify a user activity into the user device from a list of activities. In another example, the communication module 210 receives a current geolocation of the user (e.g., via a GPS component of the user device) and the match module 230 infers a user activity based on the current geolocation.
At operation 720, the match module 230 identifies the second consumable based, in part, on the user activity of the user. In an example embodiment, the match module 230 analyzes consumable data that includes consumption logs of a plurality of users. In an embodiment, the match module 230 can rank consumables with respect to a particular activity and identify a highest ranking consumable. For instance, if a particular consumable is frequently associated with a particular activity, the match module 230 may rank the particular consumable higher than another consumable that is less frequently associated with the particular activity.
At operation 810, the data module 250 accesses inventory data of a third party for the second consumable from a third party server. The inventory data indicates an inventory level of the second consumable. In a specific example, the data module 250 identifies availability of the consumable to the user. For instance, the data module 250 may identify merchants or dispensaries that are within a radius of the user and access inventor data for the identified merchants. The inventory data indicates whether the particular consumable is in stock at the identified merchants.
At operation 820, the presentation module 220 causes presentation of a notification indicating the inventory level of the second consumable on the user interface of the user device. For instance, the presentation module 220 causes presentation of a local dispensary or merchant that has the second consumable in stock on the user device of the user.
Subsequent to the match module 230 identifying the second consumable, at the operation 810, the data module 250 accesses inventory data for the second consumable. The inventory data can be accessed from, for example, third party server 906. At operation 920, the third party servers communicate the inventory data to the communication module 210 and the data module 250. In some implementations, the inventory data is stored by the personalization system 160, for example, in the databases 134, and is periodically updated with queries to third party servers.
Once the inventory data is retrieved at the operation 810, at the operation 820, the presentation module 220 causes presentation the second consumable (e.g., consumable data associated with the second consumable) and the inventory data. For example, the presentation module 220 transmits the consumable data and the inventory data to the user device 902 and at operation 930, the user device presents the consumable data and the inventory data to the user.
At operation 1010, the communication module 210 receives an indication of a consumption quantity corresponding to the first consumable from the user device. For example, the user can specify a particular consumption quantity (e.g., a number of grams consumed) of the first consumable into a user interface of the user device. In another example, the dosage module 240 determines a probably consumption quantity, such as an average consumption quantity, for the first consumable based on a consumption log data (e.g., a log that includes dosages for consumption sessions). In further embodiments, the indication of the consumption quantity is received from a measurement device (e.g., a connected or smart scale) that includes sensors operable to detect a consumption quantity (see
At operation 1020, the dosage module 240 calculates a consumption score for the first consumable based on the consumption quantity corresponding to the first consumable and potency data for the first consumable. In an example embodiment, the dosage module 240 calculates the consumption score based on the consumption quantity and attributes of the first consumable. In a specific instance, the dosage module 240 computes the consumption score by multiplying the consumption quantity by a potency of a particular active ingredient in the first consumable. Where there are multiple active ingredients, the dosage module 240 can calculate the consumption score based on the multiple active ingredients. For example, if the consumable is cannabis, the dosage module 240 calculates the consumption score as the consumption quantity multiplied by a ratio of tetrahydrocannabinol (TCH) to cannabidiol (CBD).
At operation 1030, the dosage module 240 determines a recommended consumption quantity for the second consumable based on the consumption score for the first consumable and potency data for the second consumable. In an example embodiment, when the dosage module 240 calculates the consumption score for the first consumable using a ratio of active ingredients, the dosage module 240 determines the recommended consumption quantity for the second consumable by calculating a ratio of active ingredients for the second consumable and then dividing the consumption score by the ratio of the second consumable as described below in connection with
At operation 1040, the presentation module 220 causes presentation of the recommended consumption quantity to the user. For instance, the communication module 210 transmits the recommended consumption quantity for the second consumable to the user device and the user device presents the recommended consumption quantity on a display of the user device.
In some embodiments, the operations of
Diagram 1110 shows an example for calculating a recommended consumption quantity 1116 from a consumption score 1112 (e.g., the consumption score 1106 discussed above) and second consumable THC/CBD ratio 1114. In the diagram 1110, the recommended consumption quantity 1116 is calculated by dividing the consumption score 1112 by the second consumable THC/CBD ratio 1114.
Diagram 1120 of
Diagram 1130 shows an example for calculating a recommended consumption quantity 1136 from consumption score 1132 (e.g., the consumption score 1126 discussed above) and a second consumable THC potency 1134. In the diagram 1130, the recommended consumption quantity 1136 is calculated by dividing the consumption score 1132 by the second consumable THC potency 1134.
The UI 1310 and 1320 provides the user with user interface elements to input information pertaining to a particular consumable. In the UI 1310, the user can specify a category for a particular consumable such as flowers, edibles, concentrates, or compounds. In the UI 1320, the user can specify a phenotype for the consumable such as saliva, saliva dominant hybrid, indica, or indica dominant hybrid.
Certain embodiments are described herein as including logic or a number of components, modules, or mechanisms. Modules can constitute either software modules (e.g., code embodied on a machine-readable medium) or hardware modules. A “hardware module” is a tangible unit capable of performing certain operations and can 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) can 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 can be implemented mechanically, electronically, or any suitable combination thereof. For example, a hardware module can include dedicated circuitry or logic that is permanently configured to perform certain operations. For example, a hardware module can 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 can include software executed by a general-purpose processor or other programmable processor. Once configured by such software, hardware modules become specific machines (or specific components of a machine) uniquely tailored to perform the configured functions and are no longer general-purpose processors. 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) can 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 accordingly configures 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 can be regarded as being communicatively coupled. Where multiple hardware modules exist contemporaneously, communications can 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 can perform an operation and store the output of that operation in a memory device to which it is communicatively coupled. A further hardware module can then, at a later time, access the memory device to retrieve and process the stored output. Hardware modules can 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 can 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 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 can 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 can 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 sonic example embodiments, the processors or processor-implemented modules can 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 are distributed across a number of geographic locations.
The modules, methods, applications and so forth described in conjunction with
Software architectures are used in conjunction with hardware architectures to create devices and machines tailored to particular purposes. For example, a particular hardware architecture coupled with a particular software architecture will create a mobile device, such as a mobile phone, tablet device, and the like. Not all combinations of such software and hardware architectures are presented here as those of skill in the art can readily understand how to implement the invention in different contexts from the disclosure contained herein.
In the example architecture of
The operating system 3014 may manage hardware resources and provide common services. The operating system 3014 may include, for example, a kernel 3028, services 3030, and drivers 3032. The kernel 3028 may act as an abstraction layer between the hardware and the other software layers. For example, the kernel 3028 may be responsible for memory management, processor management (e.g., scheduling), component management, networking, security settings, and so on. The services 3030 may provide other common services for the other software layers. The drivers 3032 may be responsible for controlling or interfacing with the underlying hardware. For instance, the drivers 3032 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 depending on the hardware configuration.
The libraries 3016 may provide a common infrastructure that may be utilized by the applications 3020 or other components or layers. The libraries 3016 typically provide functionality that allows other software modules to perform tasks in an easier fashion than to interface directly with the underlying operating system 3014 functionality (e.g., kernel 3028, services 3030 or drivers 3032). The libraries 3016 may include system 3034 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, the libraries 3016 may include API libraries 3036 such as media libraries (e.g., libraries to support presentation and manipulation of various media format such as MPREG4, H.264, MP3, AAC, AMR, JPG, or PNG), graphics libraries (e.g., an OpenGL framework that may be used to render 2D and 3D in a graphic content on a display), database libraries (e.g., SQLite that may provide various relational database functions), web libraries (e.g., WebKit that may provide web browsing functionality), and the like. The libraries 3016 may also include a wide variety of other libraries 3038 to provide many other APIs to the applications 3020 and other software components/modules.
The frameworks 3018 (also sometimes referred to as middleware) provide a higher-level common infrastructure that may be utilized by the applications 3020 or other software components/modules. For example, the frameworks 3018 may provide various graphic user interface (GUI) functions, high-level resource management, high-level location services, and so forth. The frameworks 3018 may provide a broad spectrum of other APIs that may be utilized by the applications 3020 or other software components/modules, some of which may be specific to a particular operating system or platform.
The applications 3020 include built-in applications 3040, third party applications 3042, or a consumable application 3043 that can implement a portion of the personalization system 160. Examples of representative built-in applications 3040 may include, but are not limited to, a contacts application, a browser application, a book reader application, a location application, a media application, a messaging application, or a game application. Third party applications 3042 may include any of the built-in applications as well as a broad assortment of other applications. In a specific example, the third party application 3042 (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, the third party application 3042 may invoke the API calls 3024 provided by the mobile operating system such as operating system 3014 to facilitate functionality described herein.
The applications 3020 may utilize built-in operating system functions (e.g., kernel 3028, services 3030 or drivers 3032), libraries (e.g., system 3034, APIs 3036, and other libraries 3038), frameworks/middleware 3018 to create user interfaces to interact with users of the system. Alternatively, or additionally, in some systems interactions with a user may occur through a presentation layer, such as presentation layer 3044. In these systems, the application/module “logic” can be separated from the aspects of the application/module that interact with a user.
Some software architectures utilize virtual machines. In the example of
The machine 3100 can include processors 3110, memory/storage 3130, and I/O components 3150, which can be configured to communicate with each other such as via a bus 3102. In an example embodiment, the processors 3110 (e.g., a Central Processing Unit (CPU), a Reduced Instruction Set Computing (RISC) processor, a Complex Instruction Set Computing (CISC) processor, a Graphics Processing Unit (GPU), a Digital Signal Processor (DSP), an Application Specific integrated Circuit (ASIC), a Radio-Frequency Integrated Circuit (RFIC), another processor, or any suitable combination thereof) can include, for example, processor 3112 and processor 3114 that may execute instructions 3116. The term “processor” is intended to include multi-core processor that may comprise two or more independent processors (sometimes referred to as “cores”) that can execute instructions contemporaneously. Although
The memory/storage 3130 can include a memory 3132, such as a main memory, or other memory storage, and a storage unit 3136, both accessible to the processors 3110 such as via the bus 3102. The storage unit 3136 and memory 3132 store the instructions 3116 embodying any one or more of the methodologies or functions described herein. The instructions 3116 can also reside, completely or partially, within the memory 3132, within the storage unit 3136, within at least one of the processors 3110 (e.g., within the processor's cache memory), or any suitable combination thereof, during execution thereof by the machine 3100. Accordingly, the memory 3132, the storage unit 3136, and the memory of the processors 3110 are examples of machine-readable media.
As used herein, the term “machine-readable medium” means a device able to store instructions and data temporarily or permanently and may include, but is not be limited to, random-access memory (RAM), read-only memory (ROM), buffer memory, flash memory, optical media, magnetic media, cache memory, other types of storage (e.g., Erasable Programmable Read-Only Memory (EEPROM)) or any suitable combination thereof. 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 3116. 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 3116) for execution by a machine (e.g., machine 3100), such that the instructions, when executed by one or more processors of the machine 3100 (e.g., processors 3110), cause the machine 3100 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” excludes signals per se.
The I/O components 3150 can include a wide variety of components to receive input, provide output, produce output, transmit information, exchange information, capture measurements, and so on. The specific I/O components 3150 that are included in a particular machine will depend on the type of machine. For example, portable machines such as mobile phones will likely include a touch input device or other such input mechanisms, while a headless server machine will likely not include such a touch input device. It will be appreciated that the I/O components 3150 can include many other components that are not shown in
In further example embodiments, the I/O components 3150 can include biometric components 3156, motion components 3158, environmental components 3160, or position components 3162 among a wide array of other components. For example, the biometric components 3156 can 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 3158 can include acceleration sensor components (e.g., an accelerometer), gravitation sensor components, rotation sensor components (e.g., a gyroscope), and so forth. The environmental components 3160 can include, for example, illumination sensor components (e.g., a photometer), temperature sensor components (e.g., one or more thermometers that detect ambient temperature), humidity sensor components, pressure sensor components (e.g., a 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 sensor components (e.g., machine olfaction detection sensors, gas detection sensors to detect 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. The position components 3162 can include location sensor components (e.g., a Global Positioning 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 can be implemented using a wide variety of technologies. The I/O components 3150 may include communication components 3164 operable to couple the machine 3100 to a network 3180 or devices 3170 via a coupling 3182 and a coupling 3172, respectively. For example, the communication components 3164 include a network interface component or other suitable device to interface with the network 3180. In further examples, communication components 3164 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 3170 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, the communication components 3164 can detect identifiers or include components operable to detect identifiers. For example, the communication components 3164 can 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 a Universal Product Code (UPC) bar code, multi-dimensional bar codes such as a Quick Response (QR) code, Aztec Code, Data Matrix, Dataglyph, MaxiCode, PDF417, Ultra Code, Uniform Commercial Code Reduced Space Symbology (UCC RSS)-2D bar codes, 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 the communication components 3164, such as location via Internet Protocol (IP) geo-location, location via WI-FI® signal triangulation, location via detecting a BLUETOOTH® or NFC beacon signal that may indicate a particular location, and so forth.
In various example embodiments, one or more portions of the network 3180 can 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, the network 318( )or a portion of the network 3180 may include a wireless or cellular network, and the coupling 3182 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, the coupling 3182 can 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 (UNITS), High Speed Packet Access (HSPA), Worldwide Interoperability for Microwave Access (WiMAX), Long Term Evolution (UTE) standard, others defined by various standard setting organizations, other long range protocols, or other data transfer technology.
The instructions 3116 can be transmitted or received over the network 3180 using a transmission medium via a network interface device (e.g., a network interface component included in the communication components 3164) and utilizing any one of a number of well-known transfer protocols (e.g., Hypertext Transfer Protocol (MIT)). Similarly, the instructions 3116 can be transmitted or received using a transmission medium via the coupling 3172 (e.g., a peer-to-peer coupling) to devices 3170. The term “transmission medium” shall be taken to include any intangible medium that is capable of storing, encoding, or carrying the instructions 3116 for execution by the machine 3100, and includes digital or analog communications signals or other intangible medium to facilitate communication of such software.
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.
This application is a division of U.S. patent application Ser. No. 14/681,927, filed Apr. 8, 2015, which application claims the priority benefit, under Section 119(4 to U.S. Provisional Application No. 61/977,018, entitled “CONSUMABLE PERSONALIZATION,” filed Apr. 8, 2014, which applications and publications are incorporated herein by reference in their entirety.
Number | Date | Country | |
---|---|---|---|
61977018 | Apr 2014 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 14681927 | Apr 2015 | US |
Child | 15863387 | US |