Patent ID: 12248974

DETAILED DESCRIPTION

In the Summary above and in this Detailed Description, and the claims below, and in the accompanying drawings, reference is made to particular features of the invention. It is to be understood that the disclosure of the invention in this specification includes only some of the possible combinations of such particular features.

Where reference is made herein to a method comprising two or more defined steps, the defined steps may be carried out in any order or simultaneously (except where the context excludes that possibility), and the method can include one or more other steps which are carried out before any of the defined steps, between two of the defined steps, or after all the defined steps (except where the context excludes that possibility). In the following detailed description, numerous specific details are set forth in order to provide a more thorough understanding of the one or more embodiments described herein. However, it will be apparent to one of ordinary skills in the art that the invention may be practiced without these specific details. In other instances, well-known features have not been described in detail to avoid unnecessarily complicating the description.

As used herein, “retail items” and “consumer goods” or “consumer items” refers generally to items such as clothing and accessories which may include but not limited to items such as dresses, suits, jeans, shirts, skirts, hats, belts, and scarves and footwear such as shoes, boots, and sandals. “Retail items” may include electronics which may include but are not limited to items such as smartphones, laptops, TVs, cameras, headphones, and various accessories for these devices. “Retail items” may include groceries which may include but are not limited to items such as food and beverage items, fresh produce, dairy products, meats, canned goods, snacks, beverages, and baking ingredients.

As used herein, “retail items” and “consumer goods” or “consumer items may include health and beauty products which may include but not limited to items such as cosmetics, skincare products, perfumes, hair care products, soaps, and over-the-counter medicines. “Retail items” may include home and garden supplies which may include but are not limited to items such as furniture, home decor, gardening tools, plants, kitchenware, and bedding items are part of this category. “Retail items” may include toys and games which may include but are not limited to items such as board games, video games, action figures, dolls, and educational toys.

As used herein, “retail items” and “consumer goods” or “consumer items” may include books and stationery which may include but not limited to items such as novels, textbooks, magazines, notebooks, pens, and other office supplies are included here. “Retail items” may include sports and outdoor equipment which may include but are not limited to items such as sports gear, camping equipment, bicycles, fitness equipment, and outdoor apparel are part of this category. “Retail items” may include watches and jewelry and may include but not limited to items such as necklaces, bracelets, earrings, rings, and a variety of watches.

As used herein, “retail items” and “consumer goods” or “consumer items may include automotive which may include but not limited to items such as car parts, accessories, tools, and maintenance items for vehicles fall under this category”. Retail items” may include pet items which may include but are not limited to items such as food, toys, grooming tools, and health care products for pets are included here. “Retail items” may include music, movies, and video games which may include but are not limited to items such as CDs, vinyl records, DVDs, Blu-ray discs, and related accessories. “Retail items” may include craft and hobbies which may include but not limited to items such as Items for crafting, like yarn, fabric, paints, and tools for hobbies such as model building and scrapbooking.

In addition, “vendor,” as used herein, refers generally to merchants, users, or other parties that offer consumer goods for sale online. Moreover, “seller” may further refer to merchants, vendors, other users, or other entities that have a relationship that have their consumer goods searched for sale and are searchable from recommendation application110.

Turning toFIG.1,FIG.1depicts a block diagram of an embodiment of the present invention for a recommendation system100that provides a computer browser extension which finds resale sellers of fashion items being viewed on a firsthand seller site or uploaded by a user. The system uses a web crawler to maintain a database of resale consumer items on partner websites or the entirety of the internet and then uses artificial intelligence algorithms to enhance matching results. In some embodiments, the system can isolate a single consumer item from a person's outfit by receiving a text prompt or with trained models. The plugin then searches its database for the same item available from a resale seller. Recommendation system100is illustrated as a simplified block architecture diagram consistent with the embodiments of the present disclosure.

A user101may be any type of user browsing the internet or other network. A user device102may be any device that includes a computer including, but not limited to, any non-transitory computer-readable medium such as a personal computer, a desktop computer, a laptop computer, a computer notebook, a computer tablet, a smartphone, or other computing device under the philosophy of the internet of things. In some embodiments, browsing the internet may be performed using a graphical user interface (GUI)103accessed from user device102. User interface103may have a plurality of buttons or icons that are selectable by user101to perform particular processes in response to the selections. User interface103may have conventional GUI interface devices such as a title bar, text boxes, toolbars, pull-down menus, tabs, scroll bars, context help, dialog boxes, operating buttons (icons) and status bar that enable user navigation throughout the display.

Recommendation application110may be an application program or extension (Chrome, Firefox, Safari, Edge, Arc) that might be using frameworks like Next.js or Plasmo, respectively, and that is stored and delivered over the Internet through a browser interface as an extension or other method. User101may access recommendation system100by using a web browser to navigate to an application or URL associated with recommendation system100.

Application server114acts as a host or container for business logic while facilitating access to and performance of the application. As illustrated, recommendation system100may include one or more servers capable of storing/and or processing information of resale consumer sites. The servers may be web servers, database servers, or any other server capable of processing and/or storing information. The servers may be located remotely, such as when coupled via a computer network or cloud-based network, including the Internet, and/or locally, including on an electronic device (e.g., computer, mobile phone, or any other portable or non-portable electronic device). The servers may include a virtual computer, dedicated physical computing device, shared physical computer or computers, or computer service daemon, for example.

Cloud serverless infrastructure104may be a collection of hardware and software elements needed to enable cloud computing and serverless architecture. Cloud serverless infrastructure104can include computing power, networking, storage, and interface for user access. A virtual private cloud is an on-demand configurable pool of shared computing resources allocated within a public cloud environment, providing a certain level of isolation between the different organizations and users. Cloud serverless infrastructure104may auto-scale based on demand, and focus on event-driven, fine-grained functions. Cloud serverless infrastructure104allows recommendation system100to build and deploy processes with reduced operational overhead and efficiency.

Application server114and cloud serverless infrastructure104may be connected to a database116that represents a series of data that is managed by a database management system, also called electronic database, and are structured to facilitate the storage, retrieval, modification, and deletion of data in conjunction with various data-processing operations. Database116is an organized collection of data, generally stored and accessed electronically from a computer system. Database116may physically or logically be divided into one or more separate databases. Database116may include user account information with the recommendation application110, saved searches and/or lists of potential matches, unsuccessful search requests, logs of suitable matches, stored images (e.g., stored subject images and/or sellers images of items offered for sale associated with particular sellers).

In some embodiments, database116may be integrated into application server114. For example, application server114may include one or more hard disk drives. In other embodiments, database116is external to application server114and may be accessed by application server114. For example, database116may include multiple storage units such as configuration. Database116may include a storage area network (SAN) and/or a network attached storage (NAS) system.

Application server114and cloud serverless infrastructure104may include a processor for executing instructions. Instructions may be stored in databases116, for example. The processor may include one or more processing units (e.g., in a multi-core configuration). Processor124is operatively coupled to a communication interface such that application server114or cloud serverless infrastructure104is capable of communicating with a remote device such as user device102, the internet or other networks, or other servers. For example, the communication interface may receive requests from user device102via the Internet, as illustrated inFIG.1.

Application server114may include a front-end web server that is coupled to user device102and other devices via a network such as Internet. Application server114may include a front-end web server to provide services to user101. Application server114may include a back-end web server that is coupled to a user device via the Internet. The back-end web server may be on the same network or the same machine as a database server. The database server may process and/or store user and/or asset information.

Application server114and cloud serverless infrastructure104may be configured to communicate with user device102associated with a user101. User device102is configured to execute and display a recommendation application110, which enables communication between user101and application server114, including transmitting search requests to and receiving potential matches from application server114.

Control panel106represents a backend monitoring and management dashboard of the application and users in the database. Control panel106may be used internally to troubleshoot support issues File storage108represents a method for storing data in the cloud that provides servers and applications access to data through a shared file system.

Load balancer112sits between user devices102and backend servers to improve application availability and responsiveness and prevent server overload. Elastic load balancing automatically distributes incoming application traffic across multiple targets, containers, and IP addresses.

Processor machine learning system134may include a series of algorithms and training models consistent with the embodiments of this disclosure include supervised classification steps and procedures which uses rules and assumptions that the inputs are independent. After applying a sequence of defined instructions, the model processor learns based on past experiences and performs a computation that is useful in making a prediction. As the database of information and data sets increase, the corresponding prediction value increases. Further information about processor machine learning system134will be discussed later.

During initialization and continuously cloud serverless infrastructure104may be integrated directly into resale websites to search inventory. Cloud serverless infrastructure104may retrieve the link and the item characteristics associated with each accessed seller image before analysis of the corresponding image uploaded or found by the user. Cloud serverless infrastructure104may crawl an entire website, a subset of pages, or even search engines and image-sharing platforms. The parsing may include but not limited to HyperText Markup Language (HTML) parsing, text extraction, link analysis. Some web pages may include structured data in formats like JSON, XML, or CSV or microdata. This data can be parsed and used to extract product details, reviews, or other information.

In one non-limiting embodiment, cloud serverless infrastructure104may start by using a list of initial URLs (seed URLs) as starting point. Cloud serverless infrastructure104may send HTTP requests to these URLs to download web pages. Cloud serverless infrastructure104may then use the HTML content of the web pages to extract links to other pages and images. Cloud serverless infrastructure104may then follow the links to other pages and repeat the process. For each web page, application server114may then identify and collect image URLs and other relevant data.

Heuristics and Large Language Models (LLMs) may be used to clean up data by automating the process of identifying and rectifying errors, inconsistencies, and other issues in datasets. Heuristics may be used to define rules and checks for data validation whereby data from resale websites may be stored in a specific format. Heuristics may also verify that the data types of values in the dataset match the expected data types whereby the process may be repeated or data eliminated if it deviates too far from the expected types.

LLMs may be used to correct spelling and grammatical errors in textual data as well as corrections for typos, missing words, or incorrect grammar. LLMs may identify and standardize consumer entities such as names of people, brands and companies, types of outfits and brands. LLMs may be used to predict and impute missing values or fields based on patterns and relationships within the dataset such as a missing consumer brand or dimensions based on historical data. Heuristics and LLMs may identify and remove duplicate entries of consumer items from resale websites whereby they may compare records based on specific attributes and determine if two records are identical or there is some deviation such as a person selling a dress for eighty dollars on a first consumer site while selling the same dress for eighty dollars on a second consumer goods website. During this operation LLMs may utilize a caching process whereby frequently accessed data such as specific websites or sells may be stored in easily accessible locations such as a cache or database, in order to reduce the time and resources required to fetch the data from a slower, primary storage location.

Resale websites may be kept tracked and monitored for changes every day which is important since ingesting into the search index is very expensive. Cloud serverless infrastructure104may include inventory management in which the system maintains a data warehouse that keeps track of the inventory changes every day or over a different time period such as but not limited to an hour, week, or month. This is important since ingesting into the search index is very expensive. Cloud serverless infrastructure104may monitor and indicate which items are new and have to be added to the search index, which items have updated metadata and have to be edited in the search index, and which items are sold out and should be removed from the search index. During crawling, application server114may implement strategies to manage large-scale crawling, including rate limiting to avoid overloading websites, handling different types of pagination, and handling duplicate content.

Cloud serverless infrastructure104may natively have Optical Character Recognition (OCR) technology (one or more of the computer vision technologies) that may detect and recognize one or more types of objects from the content received and may use any technology currently implemented or known by those of ordinary skill in the art. For example, in some embodiments OCR is a task in computer vision that involves identifying the presence, location, and type of one or more objects in the given image.

In some embodiments, cloud serverless infrastructure104may analyze the image metadata (e.g., alt text, title attributes) then utilizing image recognition algorithms or APIs (e.g., Google Cloud Vision, Amazon Recognition). Cloud serverless infrastructure104may also apply pattern matching or regular expressions to detect image URLs. Cloud serverless infrastructure104may then store the results by saving the image URLs, along with any relevant metadata or contextual information, in a structured format such as a database, CSV file, or JSON file.

Once stored the images may then be converted into numerical vectors that can be used for various machine learning and computer vision tasks. Images may be resized to a consistent resolution to have consistent dimensions. Pixel values may be scaled to a common range (e.g., [0, 1] or [−1, 1]) to have similar intensity characteristics. During the process of modifying the image into a vector the pixel values of the image may be flattened to be used as a vector whereby the intensity of each pixel becomes an element in the vector. The histograms of pixel intensity values may then be computed for different color channels (e.g., red, green, blue) or color spaces.

Processor machine learning system134may utilize any number of deep learning models which can be trained to automatically extract hierarchical features from images and convert them into embedding vectors that can be used for the search algorithm. This deep learning system could be an encoder-only or an encoder-decoder neural network. The input to the encoder may be any number of images in different formats. The encoder may include Convolutional Neural Network (CNN) or a Transformer architecture for processing images, capturing spatial hierarchies, and extracting features. The layers of the CNN (convolutional layers, pooling layers) or Transformer (attention layers, fully-connected layers) may progressively reduce the spatial dimensions of the image while increasing the depth of the feature maps. The output of the encoder may be a compact representation of the input image in the form of a context vector which encodes its significant features. Optionally, there could be a decoder that transforms the encoded information into a new format, e.g. The decoder may be a transformer that generates a textual description of the image in a standardized format such that it may be compared to other consumer items.

The machine learning model may be based on the CLIP (Contrastive Language-Image Pretraining) architecture and loss function that learns a joint embedding space for language and image. This enables searching across both domains in the same search index, e.g., using text inputs (e.g., natural language search queries) to retrieve from a search index of images or using image inputs to retrieve from a search index of text. Moreover, the machine learning model may be a foundation model that is pre-trained on millions or even billions of data points. In the case of CLIP, it would be a large dataset of both images and captions. In addition, the machine learning model can be fine-tuned specifically for the fashion domain by collecting a dataset of fashion images and corresponding descriptions that enables the model to have a better representation of fashion concepts like brand, material or category. The captions for the images could be synthetically generated from the partner data. The fine-tuning may use the CLIP loss function or any other loss function that is compatible with the choice of machine learning model architecture. Users101may initially register to become a registered member associated with recommendation system100or may operate on recommendation system100without login credentials. Recommendation system100may be downloadable and installable on user devices102through an API extension or application. In one example embodiment of user session by a user101, application server114receives a search request from a user device102. This may be performed automatically by selecting a selectable user interface element that is presented on a firsthand consumer goods website having one or more specific firsthand consumer items. In some embodiments the selectable user interface element may appear after the user performs a specific movement such as moving the cursor upward to open another tab selectable icon or the search window. In some embodiments the selectable user interface element may only appear after a predesignated amount of time or if the user has already viewed that specific firsthand consumer goods item. such that it is only visible when the user is interested in firsthand consumer items. In further embodiments, recommendation system100may be integrated into the firsthand website as a sidebar presented on a left, bottom, or right side of the screen.

The search request may include a subject image of a subject consumer item that user101wishes to identify resale consumer goods available for sale. User101may capture a subject image of a subject consumer item that they are interested in. For example, user101sees an individual wearing a consumer item or a consumer item is for sale at a store they are interested in purchasing and captures a subject image thereof. The subject image may be captured using a camera integral to user device102and/or may be captured using a separate computing device (e.g., a digital camera) and later downloaded to user device102.

Additionally, or alternatively, user101may have an existing subject image of a consumer item (e.g., an image found online on a website or a social media platform) that they wish to find potential matches for. Recommendation application110may automatically analyze any consumer images that are currently displayed on a website or social media platform or uploaded by the user to transmit the subject image to the application server114with a search request.

Application server114receives a search request from user device102. The search request may include a subject image of a subject consumer item that user101wishes to receive resale alternatives. The search request may additionally or alternatively include one or more search filters to narrow the field of the search implemented by user device102. Application server114may store the subject image and/or the search request in a file location in database116associated with user101. Application server114then may perform image recognition or analysis on the subject image using object character recognition as well as sorting, standardization, and translation into vectors previously discussed for the resale consumer items on the resale seller websites.

When viewing a consumer item on a first-hand consumer goods website, application server114is designed to scrape all the relevant product information from the website including product images title, description, size, color, category, price. Hard-coded scraping solutions are typically too expensive to maintain since they require a custom integration for each website. To overcome this problem, recommendation system100implements two heuristics that extract information based on different common metadata standards in the header then combine the extracted metadata from multiple sources into one single source.

In conjunction with the heuristics, recommendation system100may utilize modern language models (LLMs) like Llama-7B to extract structured JSON data from the unstructured website content by instruction-based prompting (language model prompts), few-shot prompting (provide the model with a well-chosen set of examples), and fine-tuned model (whereby the model is trained on a small dataset of example websites and JSON outputs).

Additional optimization may also be used to streamline the scraping process when such as whenever a request is made to the language model to extract the structured data from the firsthand website, application server114may match it against the document object model (DOM), the programming interface for web documents where each node of the DOM corresponds to a part of the web page, such as elements, attributes, and text. Application server114then finds the selectors (e.g., x-path) of the HTML tags containing the structured metadata. These identifiers may be stored in databases116and, thereby, provide a cache that will be able to extract the metadata automatically for all websites that have already been visited much cheaper and faster. Application server114may then check and determine whether the firsthand website has updated its structure (which happens quite frequently due to design updates, sales, new collections, and different locales) or user101visits a new website and the cached selectors don't match the DOM, LLM-based extraction logic (previously described) may then once again be applied.

In some situations, the product images on first-hand websites may include more than just the product, e.g., a model that wears an entire outfit around the product or a background image. These can be distracting to the image model and therefore create a lot of false-positive matches. Thus, recommendation system100may provide a method to automatically crop all images based on the contextual data the website provides.

In doing this application server114may utilize the previously collected and extracted metadata (title, description, URL) and the LLM-based classification mechanism, to generate a product category. This is an advantage that the present invention has for collecting the entire website context over pure image-based approaches such as Google Lens. Using this extracted product category, application server114may use a foundation model (e.g., Segment Anything Model or Grounding DINO) based on the previous training to automatically generate a bounding box around the correct fashion piece from the image and the category label as well as the user101input of what they are looking for.

Then, application server114may crop the image to just this subsection of the image. In addition, this mechanism is run on a very efficient serverless architecture to reduce the search latency. In further embodiments, recommendation system100may allow user101to position a lasso or box around the desired consumer item whereby the box will be used as a cropping mechanism to determine the appropriate consumer that user101wishes to have resale consumer item recommendations for. When multiple images are present on the firsthand website, recommendation system100may determine which image represents the product best, using size & website heuristics (such as the bigger picture among smaller thumbnails). Similarly, user101may lasso or crop which image they wish to see resale results for using a point and drag or boxing method.

Application server114may then retrieves the closest vector from the search index for both the image and text vectors whereby recommendation system100utilizes a hierarchical navigable small world algorithm as a data model and search algorithm to approximate nearest neighbor search in high-dimensional spaces based on the image received and analyzed on the firsthand seller website. The system then applies a set of filters based on our extracted metadata (category, size, price, brand). This search may be performed in parallel using multiple product images, text vectors, and multiple filter sets to retrieve multiple result sets which are fused in the next step. Application server114may perform foundation model-based classification and intelligent color detection which may automatically find the closest color word (rouge to burgundy) describing a fashion piece using a combination of segmentation foundation models, clustering algorithm, and color space mapping.

Once the approximate nearest neighbors are determined to the consumer item on the firsthand consumer seller website, application server114may generate a list of potential resale recommendations of the firsthand consumer item. In one embodiment, resale consumer items that match the firsthand consumer item with a confidence score higher than a predetermined threshold are automatically added to the list of potential matches or all matches and nearest neighbors may be displayed as a list, on a grid, on a drop down menu. Each potential match may include an image of the resale consumer item and a link to the resale seller webpage at which user101may purchase the consumer item picture. In further embodiments, only resale consumer items that are priced below the firsthand consumer item may be generated and viewed whereby some websites may be restricted (ones that charge more or have a lower amount reviews) while when an item is sold out or has dropped below a predetermined threshold of stock on the firsthand consumer page or resale sites all pricing options may be viewed including the websites that were restricted may be presented.

Application server114may store the list of potential matches and/or a log of the search request and/or search results at databases116in a file location associated with user101. Application server114returns the list of potential matches to user device102. User device102executes consumer goods application118to display the list of potential matches to user101.

The list may include differentiators if the match is a second hand good, used good, deadstock, or overstock item whereby these matches may be filtered to these categories to narrow the results. Depending on the user's previous purchases the specific category may be prioritized.

User device102transmits to application server114any identification of a suitable match from user101from user input on user interface103. In one embodiment, if any identification of a suitable match is received, the search is indicated as successful (e.g., by indexing the stored log of the search in database116with a “successful” tag). If no such identification is received, the search is indicated as unsuccessful. Application server114is configured to re-run unsuccessful searches periodically.

User101may be presented with the identification command corresponding to any potential match to identify that potential match as a suitable match. In some embodiments, upon such a selection, recommendation application110may prompt user101to specify whether the suitable match is an exact match or whether user101has selected a different potential match as a suitable match because, for example, no exact match was found, or user101preferred that consumer item over the exact match.

Application server114may store a log of all suitable matches identified by selection of an identification command in, for example, databases116whereby user101may access and be presented previous searches and results from a tabbed section. Application server114may use the log of suitable matches to further train the algorithm. In some embodiments, each link may be configured as an identification command. More specifically, selection by user101of a link may be considered identification of the corresponding potential match as a suitable match, by application server. A score (track purchases at second-hand partners may be created by clicks from user101whereby they may be awarded points redeemable for consumer goods and discounts.

Recommendation system100not only provides resale consumer goods results to the user but also builds upon the definition of a favorable search outcome. Factors such as matching color, brand, category, price range, material, and affordability play crucial roles. However, there are situations where these factors may conflict, such as when there is no perfect match—e.g., the same brand with a different color versus a different brand with the same color. Additionally, complexities arise due to the interplay between these factors; for example, preferring a different brand with the same color may depend on whether both brands fall within a similar price range. User preference is another essential aspect to consider. Different users may have varying preferences, where the importance of factors like brand can vary based on individual personality and circumstances, such as whether they are shopping for themselves or others.

Traditional methods require the integration of diverse ranking factors, either through the use of a rank-fusion algorithm (e.g., reciprocal rank fusion) or the training of a multi-factor scoring model (e.g., logistic regression). The objective is to combine multiple ranking criteria into a unified ranking score based on a dataset of ranked preferences. However, these methods fall short in addressing the intricate interactions among these factors comprehensively. Furthermore, they struggle to adapt to varying user preferences. An effective approach to cater to a wide range of user preferences involves employing not just a single scoring mechanism but a mixture of different results based on the specific context. For instance, this may entail presenting one result with a different brand but the same color and another result with the same brand but a different color. The suitability of such an approach heavily depends on the unique context at hand, which can encompass a multitude of product categories, each presenting distinct scenarios.

Recommendation system100may have an LLM-based preference-aware reranking which uses a language model to curate the final result set based on multiple lists of pre-ranked results. Here three strategies may be implemented. 1. Instructing the language model to make context-aware decisions and verbally express a complex user utility function (e.g., what are the different trade-offs, what is important/what is less important, how to ideally curate a varied and relevant set of results). 2. Succinctly express relevant information to the language model (e.g., image similarity scores of given result sets, what are the ranking factors behind different result sets). 3. Allowing the user to verbally express their own preferences and incorporate that into the overall re-ranking prompt. Using this method, the user may write a brief sentence, e.g. “Today, I really care that my clothing has the same material but I don't really care about color, also it should only show premium brands from roughly the same price range”. These allow for much more fine-grained communication about the user's preferences in a way that classical filters don't allow.

In this illustrated embodiment, user101may interact to narrow the field of search (to be conducted by application server114) and/or to narrow the list of potential matches (to be generated by application server114) before it is presented to user101. User101may be presented with a text window interface whereby user101may enter their desires for resale consumer goods. Once the updated rankings are determined application server114may generate a list of potential resale recommendations of the firsthand consumer item. Each new potential recommendation may include an image of the resale consumer item and a link to the resale seller webpage at which user101may purchase the consumer item picture.

Recommendation system100may have a centralized dashboard having product analytics, DAU, MAU, churn, track various actions (signups, opens, searches), viral analytic, referral conversion, K score, # referrals, and post-purchase analytics, average order cost, average order payout, number of repeat purchasers.

One or more embodiments of user devices102are further detailed inFIG.7. User devices102may include hardware components that allow access to edit and query recommendation system100. User devices102may include one or more input devices such as input devices365that provide input to a CPU (processor) such as CPU360notifying it of actions. The actions may be mediated by a hardware controller that interprets the signals received from input devices365and communicates the information to CPU360using a communication protocol. Input devices365may include but are not limited to a mouse, a keyboard, a touchscreen, an infrared sensor, a touchpad, a wearable input device, a camera- or image-based input device, a microphone, or other user input devices known by those of ordinary skill in the art.

CPU360may be a single processing unit or multiple processing units in a device or distributed across multiple devices. CPU360may be coupled to other hardware devices, such as one or more memory devices with the use of a bus, such as a PCI bus or SCSI bus. CPU360may communicate with a hardware controller for devices, such as for a display370. Display370may be used to display text and graphics. In some examples, display370provides graphical and textual visual feedback to a user.

In one or more implementations, display370may include an input device365as part of display370, such as when input device365is a touchscreen or is equipped with an eye direction monitoring system. In some implementations, display370is separate from input device365. Examples of display370include but are not limited to: an LCD display screen, an LED display screen, a projected, holographic, virtual reality display, or augmented reality display (such as a heads-up display device or a head-mounted device), wearable device electronic glasses, contact lenses capable of computer-generated sensory input and displaying data, and so on. Other I/O devices such as I/O devices375may also be coupled to the processor, such as a network card, video card, audio card, USB, FireWire or other external device, camera, printer, speakers, CD-ROM drive, DVD drive, disk drive, or Blu-Ray device.

CPU360may have access to a memory such as memory380. Memory380may include one or more of various hardware devices for volatile and non-volatile storage and may include both read-only and writable memory. For example, memory380may comprise random access memory (RAM), CPU registers, read-only memory (ROM), and writable non-volatile memory, such as flash memory, hard drives, floppy disks, CDs, DVDs, magnetic storage devices, tape drives, device buffers, and so forth. A memory380is not a propagating signal divorced from underlying hardware; a memory is thus non-transitory.

Memory380may include program memory such as program memory382capable of storing programs and software, such as an operating system such as operating system384, API such as API386, and other computerized programs or application programs such as application programs388. Memory380may also include data memory such as data memory390that may include database query results, configuration data, settings, user options or preferences, etc., which may be provided to program memory382or any element of user devices102.

User devices102may in some embodiments be mobile computing devices such as an iPhone, Android-based phone, or Windows-based phone, however, this is non-limiting and they may be any computing device such as a tablet, television, desktop computer, laptop computer, gaming system, wearable device electronic glasses, networked router, networked switch, networked, bridge, or any computing device capable of executing instructions with sufficient processor power and memory capacity to perform operations of ser devices102while in communication with a network. User devices102may have location tracking capabilities such as Mobile Location Determination System (MLDS) or Global Positioning System (GPS) whereby they may include one or more satellite radios capable of determining the geographical location of a computing device.

The embodiments were chosen and described in order to best explain the principles of the invention and the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated. The present invention according to one or more embodiments described in the present description may be practiced with modification and alteration within the spirit and scope of the appended claims. Thus, the description is to be regarded as illustrative instead of restrictive of the present invention.