On-demand food delivery requires requesting users to request a menu item from menu listings of individual restaurants. The requests are processed by the restaurants themselves, which can either deliver the requested item after preparation, or the requesting user can coordinate with a third party to pick up the requesting item for personalized delivery.
The disclosure herein is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings in which like reference numerals refer to similar elements, and in which:
An on-demand delivery service (e.g., an on-demand food delivery service) can be managed by a network-based computing system by connecting requesting users, delivery drivers, and comestible item sources (e.g., restaurants) via designated applications specific to the on-demand delivery service. The network computer system can coordinate on-demand menu item delivery by providing a service application to requesting users that lists a set of available menu items from various food item sources throughout a given region. In various examples, the network computer system acts as a logistical optimizer that preempts menu item demand by coordinating delivery of pre-prepared food items in delivery vehicles and transporting the items to requesters on-demand in response to received item requests. In doing so, the network computer system can implement deep learning techniques to forecast item demand for individual food items (e.g., based on historical data and a variety of other factors, such as weather, time of week, time of day, etc.), provide real-time recommendations based on contextual user information (e.g., search inputs, location, historical preferences), and additional real-time demand optimization techniques to meet source supply from food item sources.
According to various examples, the network computer system can receive representations of a set of available food items (e.g., basic menu descriptions with an image of the food item) from various participating sources (e.g., restaurants). The network computer system can perform image analysis techniques (e.g., image or pattern recognition using convolutional neural network methods) on the images of food items, and extract a textual representation of the food item. It is contemplated that the textual extraction from the image analysis operation can be significantly more detailed than any basic description provided by the restaurant. Accordingly, the broader textual extraction from the image can be leveraged to generate a more personalized menu for users of the on-demand coordinated food delivery service.
In certain implementations, the textual extraction (e.g., a corpus of words comprising a detailed word representation of the food item as shown in the image) can be represented in vector form by the network computer system. For example, the network computer system can generate a word vector based on the textual extraction, where the word vector ultimately represents the food item. Accordingly, for a full menu of food items, the network computer system can generate a set of word vector representations for each menu item.
On the user side, the network computer system can generate a user profile for each user of the on-demand coordinated delivery system. The user profile can indicate the user's menu item preferences. In various implementations, the user preferences can be determined via direct query and/or learned from historical data. For example, the network computer system can collect, store, and analyze user interaction, selections, and behaviors in connection with the on-demand delivery service. For example, the selections may indicate that the user has a specific preference for Indian food, Thai food, or a general preference for spicy food. In certain examples, the network computer system can generate a highly detailed user preference profile for each user using deep learning techniques based on the user's activities, selections, views, content preferences, demographics, age, location, cultural background, and the like.
According to various embodiments, the user preferences of a respective user can be represented in vector form (e.g., indicating preferred ingredients, food characteristics, food restrictions, food type, origin, price, quality, and the like). At any given triggering instant (e.g., when the user initiates the service application), the network computer system can perform a vector or matrix factorization between the personal preference vector representing the user's personal preferences and each of the food item vectors representing the full menu of food items (e.g., items that are available at the time of the triggering instant). As described herein, the results of the factorization can comprise a match probability for the user, which the network computer system can generate as a menu item recommendation on the user interface of the on-demand delivery service, executed on the user's computing device.
Upon selection of a food item from the menu, the network computer system can coordinate the delivery of the selected food item by transmitting a delivery invitation to a driver that possesses an inventory of the selected food item. For example, the computer system can track the inventories and locations of each transport vehicle operating throughout a delivery service region (e.g., a metropolitan area), and select an optimal transport vehicle (e.g., based on distance, time, or other utility metrics) to rendezvous with the user and deliver the selected item.
Among other benefits, examples described herein achieve a technical effect of implementing deep learning and computational optimization techniques to provide both users and comestible item sources of an on-demand comestible item delivery service with more efficient and robust services. For example, the on-demand comestible item service can provide users with more personalized recommendations and or a personalized menu of comestible items based on the user's personal preferences, and further based on real-time contextual information received from the user's computing device (e.g., via an executing service application), real-time data from the comestible goods sources, and/or the real-time locations of delivery drivers, each of which can transport an inventory of comestible goods from one or multiple sources.
As used herein, a computing device refers to devices corresponding to desktop computers, cellular devices or smartphones, personal digital assistants (PDAs), laptop computers, virtual reality (VR) or augmented reality (AR) headsets, tablet devices, television (IP Television), etc., that can provide network connectivity and processing resources for communicating with the system over a network. A computing device can also correspond to custom hardware, in-vehicle devices, or on-board computers, etc. The computing device can also operate a designated application configured to communicate with the network service.
One or more examples described herein provide that methods, techniques, and actions performed by a computing device are performed programmatically, or as a computer-implemented method.
Programmatically, as used herein, means through the use of code or computer-executable instructions. These instructions can be stored in one or more memory resources of the computing device. A programmatically performed step may or may not be automatic.
One or more examples described herein can be implemented using programmatic modules, engines, or components. A programmatic module, engine, or component can include a program, a sub-routine, a portion of a program, or a software component or a hardware component capable of performing one or more stated tasks or functions. As used herein, a module or component can exist on a hardware component independently of other modules or components. Alternatively, a module or component can be a shared element or process of other modules, programs or machines.
Some examples described herein can generally require the use of computing devices, including processing and memory resources. For example, one or more examples described herein may be implemented, in whole or in part, on computing devices such as servers, desktop computers, cellular or smartphones, personal digital assistants (e.g., PDAs), laptop computers, VR or AR devices, printers, digital picture frames, network equipment (e.g., routers) and tablet devices. Memory, processing, and network resources may all be used in connection with the establishment, use, or performance of any example described herein (including with the performance of any method or with the implementation of any system).
Furthermore, one or more examples described herein may be implemented through the use of instructions that are executable by one or more processors. These instructions may be carried on a computer-readable medium. Machines shown or described with figures below provide examples of processing resources and computer-readable mediums on which instructions for implementing examples disclosed herein can be carried and/or executed. In particular, the numerous machines shown with examples of the invention include processors and various forms of memory for holding data and instructions. Examples of computer-readable mediums include permanent memory storage devices, such as hard drives on personal computers or servers. Other examples of computer storage mediums include portable storage units, such as CD or DVD units, flash memory (such as carried on smartphones, multifunctional devices or tablets), and magnetic memory. Computers, terminals, network enabled devices (e.g., mobile devices, such as cell phones) are all examples of machines and devices that utilize processors, memory, and instructions stored on computer-readable mediums. Additionally, examples may be implemented in the form of computer-programs, or a computer usable carrier medium capable of carrying such a program.
System Description
The network computer system 100 can include a content analyzer 110 that can parse images of the menu items from the sources 193 to determine a set of descriptive terms for each of the menu items. For example, the content analyzer 110 can perform image recognition techniques to generate a corpus representation of the menu item (e.g., on the order of tens or hundreds of descriptive words). This corpus can describe various aspects of the menu item, such as its type and origin (e.g., a full meal, side dish, salad, burger, sandwich, soup, burrito, Japanese, French, American, Mexican, Thai, Indian, etc.), its ingredients (e.g., type of meat, dressings, veggies, beans, sauces, rice, etc.), taste characteristics (e.g., spicy, mild, salty, sweet, savory, filling, heavy, light, bitter, tart, smoky, etc.), and/or texture characteristics (e.g., creamy, crunchy, greasy, crumbly, crispy, gooey, mushy, moist, rich, etc.). As provided herein, the user preferences indicated in the user preference profiles 147 stored in the user database 145 can utilize the same or similar listing of words.
In examples described herein, a particular menu item may be described by many sets of terms. Accordingly, in certain implementations, the content analyzer 110 can perform confidence links between individual terms that may be used to describe a particular menu item. Furthermore, in certain aspects, each of the descriptive terms may be represented by a vector in latent space (e.g., a graphical corpus of descriptive terms), and the average and/or factorization of the set of vectors representing the terms describing a particular menu item (e.g., in accordance with a factorization schema 122) can comprise the menu item vector or matrix representation of the menu item.
Still further, the content analyzer 110 can generate an ontological graph 173 that connects semantic aspects of menu items, such as cuisine type, country of origin, food subclass or category (e.g., rice noodles). The ontological graph 173 can further connect restaurants with semantic aspects of the menu items, and can incorporate and consolidate data sets from multiple sources, such as historical data from the on-demand delivery service, individual restaurants, and the like. In still further aspects, the content analyzer 110 can implement internationalization aspects to parse descriptive terms from multiple languages, enabling multi-language searching and localized searching in various international locations. Furthermore, the ontological graph 173 can also connect international descriptive terms with English words, which may then be represented by the same or similar vectors.
According to various examples, the ontological graph 173 can show relationships or connections between descriptive terms in the corpus representations of all comestible items in a given menu (e.g., a menu of available food items offered by multiple food item sources 193 in connection with the on-demand delivery service). Such relationships or connections can describe, for example, whether one descriptive term is a category, subclass, or other related aspect of another descriptive term. Furthermore, all descriptive terms of all possible comestible items can be organized graphically, with each descriptive term comprising a point in the ontological graph 173. Accordingly, each offered menu item can correspond to the menu item vector or matrix representation in latent space (e.g., in the corpus graph of the descriptive terms, and/or the ontological graph 173).
The network computer system 100 can further include a user device interface 125 that connects with user devices 195 executing an on-demand delivery application 196. Requesting users 197 can select from a menu of listed food items for on-demand delivery via a user interface of the delivery service application 196. According to various examples, the network computer system 100 can include a profiling engine 140 that stores and analyzes historical user data, behavioral user data, and/or past user selections to determine the general comestible item preferences of a given user 197 (e.g., favorite specific dishes, favorite type of food, such as Japanese or Indian, and/or favorite flavors).
The profiling engine 140 can parse the general user preferences of a given user 197 into a detailed word corpus that describes the user preferences with a set of descriptive terms (e.g., the same terms used to describe menu items). Based on the word corpus describing the user preferences (e.g., which can comprise on the order of tens, hundreds, or thousands of descriptive terms), the profiling engine 140 can enable a recommendation engine 120 to generate a personal preference word vector for the given user 197 (e.g., in the latent space of the word corpus in which each descriptive term is represented as a graphical point). For example, the profiling engine 140 can generate the personal preference word vector for the given user 197 on the word corpus of descriptive menu item terms, which can indicate which offered menu items most closely match the general user preferences (e.g., via a comparison between the vector representation of the user preferences, and the vector representations of each menu item).
In certain examples, the personal preference word vector can further be context-based (e.g., based on a real-time, current location of the user, time of day, day of week, search inputs, etc.). For example, the historical data in the user preference profile 147 of the user 197 can comprise metadata indicating the time of day (e.g., lunch time or dinner time), location, time of week, weather conditions, search terms, previous meal(s), subsequent meal(s), and the like, for each given meal selection by the given user 197. Thus, based on a current time and location of the user, the profiling engine 140 may determine a real-time, contextual set of user preferences, and enable the recommendation engine 120 to generate the personal preference word vector accordingly.
The recommendation engine 120 can vectorize the corpus representing each menu item and the corpus representing the general and/or contextual user preferences. The result can comprise a set of menu item vectors or matrices representing the menu of food items and the contextual user preference vector or matrix representing the predicted item preferences of the user 197. The recommendation engine 120 can perform a matrix or vector factorization of each comestible item vector and the personal preference vector—in accordance with a factorization schema 122—to output a quantity (e.g., a match probability) for each of the comestible items in the menu. A menu item or set of menu items having the highest match probabilities can be outputted by the recommendation engine 120 as recommended items on a personalized recommendation menu displayed on the user device 195 (e.g., of individual meals or a combination of meals that are determined to go well together).
In additional implementations, the source interface 105 can receive, from the menu item sources 193 data indicating source supply of each menu item from each comestible item source 193, or more granular information, such as the necessary ingredients for making each menu item, and a current supply of each ingredient from the sources 193. These supply data from the sources 193 can be parsed as additional input by the recommendation engine 120 in providing the recommendations to the users 197. For example, in addition to matching comestible item vectors with a user preference vector to generate menu item recommendations, the recommendation engine 120 can further add multipliers or weightings to current oversupplied or undersupplied menu items based on the supply data from the sources 193. As another example, the recommendation engine 120 can add multipliers or weightings to certain menu items based on ingredient supply indicated in the supply data. In such an example, the supply data may indicate an amount of each ingredient that is needed to make an individual menu item, and the total ingredient supply of the comestible item source. For each offered menu item of each source 193, the recommendation engine 120 can determine an oversupply or undersupply multiplier based on the total ingredient supply received from the source 193. Thus, in providing recommendations to the users 197, the recommendation engine 120 can generally weight oversupplied menu items over undersupplied menu items in the listed recommendations.
As described herein, each menu item provided by the sources 193 may be associated with a price. In various implementations, the profiling engine 140 can determine a price sensitivity metric for each user preference profile 147 of the users 197 (e.g., based on historical usage data of the on-demand delivery service). The recommendation engine 120 can further utilize this price sensitivity metric in generating recommendations for each of the users 197. For example, a set of vector matches may indicate several offered menu items that match the user's taste preferences (e.g., general preferences and/or taking into account real-time contextual information from the user 197). The recommendation engine 120 may then apply a multiplier to each matched menu item based on the supply data, as described above. Additionally or alternatively, the recommendation engine 120 may then apply the user's price sensitivity weighting to each matched menu item. In certain implementations, based on historical usage data, the user profile 147 may also indicate a time sensitivity metric for the user 197 (e.g., indicating whether the user prefers low rendezvous ETAs or is insensitive to ETA). In such implementations, the recommendation engine 120 may include a time sensitivity metric weighting to each matched menu item, based on the current ETA of each menu item to the user's current location. In certain example, the network computer system 100 can further determine a food rating sensitivity metric for the user 197, and factor the rating sensitivity metric into the recommendation calculation.
As an example scenario, the recommendation engine 120 can determine that a particular user 197 is not at all price sensitive or time sensitive. In this scenario, each offered menu item will have the same price sensitivity weighting and time sensitivity weighting, and the recommendation engine 120 can provide recommendations based on the other metrics (e.g., item or ingredient supply and vector matching). As another example, the recommendation engine 120 can determine that a particular user 197 is highly price sensitive, but not time sensitive. In this scenario, each offered menu item can have a price weighting based on the offered price for that menu item and the user's price sensitivity metric. Thus, higher priced items may be weighted with a comparatively low or fractional multiplier, whereas lower priced items may be weighted with higher multipliers and therefore end up more highly recommended, regardless of ETA. As yet another example, a user 197 may have some degree of price sensitivity and some degree of time sensitivity. Based on these levels of time and price sensitivity, the recommendation engine 120 can determine a current ETA and price of each offered menu item, and apply the appropriate time sensitivity weighting and price sensitivity weighting for each item. The result can comprise of a recommended list of menu items individual to the user 197, and based on user preference vector matching, ingredient or menu item supply, ETA of the menu item to the user's current location, and price of the menu item.
Upon selection of a menu item by the user 197 (whether recommended or not), a coordination engine 150 of the network computer system can communicate with drivers of transport vehicles 194 via an executing driver application 192 and a driver device interface 115 to coordinate the on-demand delivery of the selected menu item. For example, the requesting user 197 may make a selection on a menu item and confirm purchase via the on-demand service application 196 executing on the user's computing device 195. Request data indicating the selected menu item can be transmitted to the network computer system 100 over the one or more networks 180, and can be processed by the coordination engine 150. In various examples, the menu item request can include location information indicating the current location of the user 197, or the user 197 can input a rendezvous location to meet with a delivery driver.
The coordination engine 150 can further receive location data, via the driver device interface 115, from the driver devices 191 of drivers operating throughout the delivery service region (e.g., a metropolitan area). In certain examples, each transport vehicle 194 operated by a driver may also include an inventory of menu items being offered to the requesting users 197. Thus, in coordinating the on-demand delivery service, the network computing system 100 can take into account the inventory of menu items being currently transported in each transport vehicle 194. This is distinct from traditional delivery services, in which an item is requested by a person, and then packaged and delivered by a vehicle. The on-demand service described herein, can provide for more immediate on-demand delivery by forecasting menu item demand (e.g., based on historical data), coordinating the loading of inventory (e.g., comprising menu items from the sources 193) onto the transport vehicles 194 prior to receiving requests, and in some aspects, routing the transport vehicles 194 around the given service region with inventory on-board while receiving menu item requests from the user devices 195.
For each item request received from a requesting user 197, the coordination engine 150 can determine the current locations, current routes and upcoming deliveries, and/or the current inventory of proximate transport vehicles 194 to the current location of the requesting user 197 (e.g., within four miles). The coordination engine 150 can select a most optimal transport vehicle 194 based on distance, time, inventory, and/or additional utility metrics, such as transport vehicle supply, inventory supply and menu item demand within individual localities or sub-regions of the delivery service region. The coordination engine 150 may then transmit a delivery invitation to the driver device 191 of the driver of the optimal transport vehicle 194. The driver can accept or decline the invitation. If accepted, the coordination engine 150 can provide the driver device 191 with a shortest or most optimal route to the rendezvous location with the requesting user, or can add the delivery location to a current route and delivery schedule of the driver. If declined, the coordination engine 150 can repeat the optimization process of identifying a next most optimal transport vehicle 194, and transmit another delivery invitation to the driver of that vehicle 194—and repeat the sequence, if needed, until a driver accepts the delivery invitation.
User Computing Device
In response to a user input 218 by the user (e.g., the selection of an icon representing the delivery service application 232), the service application 232 can be executed by a processor 240, which can cause an application interface 222 to be generated on a display screen 220 of the computing device 200. In various implementations, the app interface 222 can enable the user to view recommended comestible items and other available menu items in a personalized food item menu on the display screen 220.
As provided herein, the service application 232 can further enable a communication link with a network computer system 290 over one or more networks 280, such as the network computer system 100 as shown and described with respect to
In various examples, the positioning module 260 can provide location data indicating the current location of the user to the network system 290 to, for example, enable the network computer system 290 coordinate on-demand delivery of a selected item. In examples described herein, the network computer system 290 can transmit content data to the communication interface 210 of the user computing device 200 over the network(s) 280. The content data can cause the executing service application 232 to display a listed set of menu items available for on-demand delivery, and/or a recommended set of menu items based on the user's preferences. Upon selection of a desired menu item, the service application 232 can cause the processor 240 to transmit an item request to the network computer system 290 to enable the computer system 290 to coordinate a transport vehicle, having inventory of the selected item, to rendezvous with the user at either the user's current location, or a selected rendezvous location.
User Interfaces
Referring to
In the example shown in
Accordingly, in real-time, the user interface 400 can display relevant matches for the user search as well as the user preferences based on the recommendation metrics. In certain aspects (e.g., if the user is highly time sensitive), the user interface can display a local offering portion 402 indicating the closest options. Each menu item can display the source, price, rating of the menu item or source (e.g., a star rating), an ETA for a nearest transport vehicle that includes the menu item in its inventory, and other information (e.g., a description of the menu item, a photo of the menu item, etc.). The local offering portion 402 can be scrollable (e.g., up to ten menu items) and can list the menu items matching the predictive search term that have the lowest ETA to the user's current location.
In various implementations, the user interface 400 can further display a recommendation interface feature 404, which can list recommended menu items based on all recommendation metrics described in connection with
Source Computing Device
In certain aspects, the computing device 500 can store a designated supplier application 532 in a local memory 530, enabling access and interaction with one or more host servers over one or more networks 580. In response to an input 518 by a supply manager (e.g., a restaurant manager), the supplier application 532 can be executed by a processor 240, which can cause a source interface 522 to be generated on the display screen 520 of the computing device 500. In various implementations, the source interface 522 can enable the supply manager to communicate offered menu items from the source to the network computer system 590.
As provided herein, the source computing device 500 can also enable the supply manager to provide supply data indicating menu item supply and/or ingredient supply from the source (e.g., a restaurant participating in the on-demand delivery service). In certain examples, the network computing system 590 can link directly with a supply management feature of the source to determine the supply of each offered menu item, and/or the supply of each ingredient utilized by the source to make each menu item.
In various examples, the network computer system 590 can transmit supply requests to the source computing device 500 for quantities of menu items, or the supply manager can communicate a supply quantity for each offered menu item. The network computer system 590 may then coordinate the pick-up and distribution of menu items from the source by transport vehicles providing the on-demand delivery service.
Example Source Interfaces
Methodology
Referring to
According to examples described herein, the network computer system 100 can detect a service application trigger from a user computing device 195, indicating the user 197 launching the service application 196 on the user's computing device 195. In certain implementations, the network computer system 100 or the executing service application 196 can monitor the user's interactions on the service application 196, such as eye gaze, scrolling, user inputs, and the location of the user (710). In certain aspects, the network computer system 100 can further determine the current time, weather conditions, and other real-time contextual information of the user. Based on the user's preference profile 147, indicating contextual and/or general comestible item preferences, the network computer system can generate a personal preference vector for the user 197 (e.g., in latent space comprising a corpus of descriptive terms for comestible goods) (720).
In various implementations, the network computer system 100 can receive offered menu items from various comestible goods sources (e.g., restaurants) in a delivery service region (725). For example, the sources can provide the network computer system 100 with menu listings, images, descriptions, an amount of supply, offered prices, etc., for each menu item. The network computer system 100 can parse item content for each menu item to determine the characteristics of the item (730). For example, the network computer system 100 can determine the flavor(s), consistency, origin, ingredients, calorie count, popularity, rating, and the like, of each menu item. The network computer system 100 may then generate an item corpus comprising a detailed word representation of the menu item (735), and generate a menu item vector (e.g., a word vector) for the menu item (e.g., in latent space comprising the corpus of descriptive terms for comestible goods) (740).
Based on the personal preference vector and the descriptive vector of each menu item, the network computer system 100 can determine a set of matching menu items for the user (745). For example, the network computer system 100 can perform Bayesian statistical inference to identify the set of matching menu items, or to determine a set of menu items that have a highest probability of satisfying the user's preferences. The network computer system 100 and/or the service application 196 executing on the user's computing device 195 may then display the matching set of menu items on a recommendation portion of the user interface 222. The network computer system 100 can receive, over one or more networks 180, a selection indication indicating that the user 197 has selected a menu item on the user interface 222 (750). The network computer system 100 may then coordinate on-demand delivery of the selected menu item, as described herein (755). In various implementations, the network computer system 100 can monitor user response to consumption of the delivered menu item (760). For example, for delivered menu items to the user 197, the network computer system 100 can receive satisfaction feedback from the user 1997, such as a satisfaction rating or score. Such ratings or scores may then be factored into the user's preference profile 147 for future recommendations.
In various examples, the network computer system 100 can adjust recommendation weightings for users 197 based on the supply data received from the sources 193 and/or the real-time demand from the users 197 (810). For example, the network computer system 100 can cause oversupplied menu items to be displayed more prominently or ranked higher in a recommendation list on the computing devices 195 of the users 197. Based on the real-time, adjusted weightings of the recommendation metrics for each user 197, the network computer system 100 can transmit display data to the user computing devices 195 to cause the user computing devices 195 to generate and display the ranked set of recommended menu items (815). Based on received selection data from the computing devices 195 of the users 197, the network computing system 100 can coordinate on-demand delivery of the selected items, as described herein (820).
For each delivered item to each user 197, the network computer system 100 can determine a user response to consumption of the menu item (825). For example, the network computer system 100 can receive feedback data indicating a rating or textual information. Based on the feedback data, the network computer system 100 can update the user's preference profile 147 for future recommendations (830). For example, the updated preference profile 147 can comprise adjusted weightings for recommendation metrics individual to the user 197. Additionally, the adjusted weightings can result in an updated personal preference vector for the user 197 for determining future menu item recommendations.
Hardware Diagram
In one implementation, the computer system 900 includes processing resources 910, a main memory 920, a read-only memory (ROM) 930, a storage device 940, and a communication interface 950. The computer system 900 includes at least one processor 910 for processing information stored in the main memory 920, such as provided by a random access memory (RAM) or other dynamic storage device, for storing information and instructions which are executable by the processor 910. The main memory 920 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by the processor 910. The computer system 900 may also include the ROM 930 or other static storage device for storing static information and instructions for the processor 910. A storage device 940, such as a magnetic disk or optical disk, is provided for storing information and instructions.
The communication interface 950 enables the computer system 900 to communicate with one or more networks 980 (e.g., cellular network) through use of the network link (wireless or wired). Using the network link, the computer system 900 can communicate with one or more computing devices, one or more servers, one or more databases, and/or one or more self-driving vehicles. In accordance with examples, the computer system 900 receives requests from mobile computing devices of individual users. The executable instructions stored in the memory 930 can include image analysis instructions 922, vectorization instructions 924, factorization instructions 926, profiling instructions 928, user preference profiles 932, and a real-time menu item inventory 934.
By way of example, the instructions and data stored in the memory 920 can be executed by the processor 910 to implement the functions of an example computer system 100 of
Examples described herein are related to the use of the computer system 900 for implementing the techniques described herein. According to one example, those techniques are performed by the computer system 900 in response to the processor 910 executing one or more sequences of one or more instructions contained in the main memory 920. Such instructions may be read into the main memory 920 from another machine-readable medium, such as the storage device 940. Execution of the sequences of instructions contained in the main memory 920 causes the processor 910 to perform the process steps described herein. In alternative implementations, hard-wired circuitry may be used in place of or in combination with software instructions to implement examples described herein. Thus, the examples described are not limited to any specific combination of hardware circuitry and software.
It is contemplated for examples described herein to extend to individual elements and concepts described herein, independently of other concepts, ideas or systems, as well as for examples to include combinations of elements recited anywhere in this application. Although examples are described in detail herein with reference to the accompanying drawings, it is to be understood that the concepts are not limited to those precise examples. As such, many modifications and variations will be apparent to practitioners skilled in this art. Accordingly, it is intended that the scope of the concepts be defined by the following claims and their equivalents. Furthermore, it is contemplated that a particular feature described either individually or as part of an example can be combined with other individually described features, or parts of other examples, even if the other features and examples make no mentioned of the particular feature. Thus, the absence of describing combinations should not preclude claiming rights to such combinations.
This application claims the benefit of priority to U.S. Provisional Application No. 62/576,621, titled “Food Item Recommendation Service for On-Demand Coordinated Food Delivery System,” filed on Oct. 24, 2017; which is hereby incorporated by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
62576621 | Oct 2017 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 16059483 | Aug 2018 | US |
Child | 17699516 | US |