A Game Plan for Improved Decision-Making
Patent Information
- Application Number
- JP2024531462
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2021-11-24
- Filing Date
- 2022-11-23
- Publication Date
- 2025-12-02
AI Technical Summary
Existing decision-making processes are often chaotic and ad hoc, leading to suboptimal outcomes due to the difficulty in integrating and balancing rational, emotional, and social aspects of decision-making, and the challenges of accessing and combining data from multiple sources while respecting content providers' control over their content.
The GamePlanner system provides an interactive game plan document that integrates data from multiple sources using personal semantic extraction, allowing users to combine and score options based on hierarchically weighted criteria, consider emotional and social inputs, and share decision-making strategies.
Enhances decision-making by providing a transparent and structured approach that balances rational, emotional, and social factors, leading to more informed and confident choices, while respecting content providers' control over their data.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
[Technical field]
[0001] [Priority claim] This application claims the benefit of U.S. Provisional Patent Application No. 63 / 282,582, entitled "GAMEPLANS FOR IMPROVED DECISION MAKING," by Cheyer et al., filed November 24, 2021, the entire contents of which are incorporated herein by reference. [Background technology]
[0002] Decisions are very important, and a person can be seen as the sum of all the decisions that he or she has made in their life. People have decided where to live, what career to pursue, which partner to share their life with, how much to exercise, what shirt to wear today, and so on. The cumulative decisions that a person makes can predict what kind of person they will become in the future. However, despite the cumulative importance of such decisions, most people have a very ad-hoc and chaotic approach to decision making, leading to less than optimal results. As a result, many people believe that they would certainly live more satisfying lives and be more successful in their professional goals if they could use computer software to significantly improve the outcomes of the many decisions they make in their lives and / or work.
[0003] When people were interviewed about how they make decisions, big and small, a pattern emerged in their answers: Most people open a web browser, access their preferred search engine, enter a keyword or question, and view the search results in multiple browser tabs as they research different points related to their decision. Some people make quick notes on paper or in a notepad application on their smartphone, but most keep the accumulated information to themselves.
[0004] As the process progresses, they interact with others as necessary to solicit input on search results at various levels of detail. Each person appears to have a rough allotment of time to make a decision. Once they feel they have considered enough options, are satisfied that the number of perspectives from others is sufficient, and the allotted time has elapsed, most people will select the best option they have identified at that point in the decision-making process. [Brief description of the drawings]
[0005] [Figure 1] 1 is a flowchart illustrating an example method for a game plan for improved decision making, under an embodiment. [Diagram 2] FIG. 1 illustrates an example game plan document with extracted data records for a game plan for improved decision making under an embodiment. [Diagram 3] FIG. 1 illustrates an example of adjusting candidate scores using hierarchically weighted decision criteria for a game plan for improved decision making, under an embodiment. [Figure 4] FIG. 13 illustrates an example drag handle for reordering options in order of emotional preference for a game plan for improved decision making, under one embodiment. [Diagram 5] FIG. 13 illustrates an example emotional boost for a calculated score for a game plan for improved decision making under an embodiment. [Figure 6] FIG. 13 illustrates example aggregated responses showing the mean ranking and variance across participants regarding game plans for improved decision making under one embodiment. [Figure 7] FIG. 1 illustrates an example modal autocomplete widget for a game plan for improved decision making, under an embodiment. [Figure 8] FIG. 1 illustrates an example filter pane and quick search widget for a game plan for improved decision making under an embodiment. [Figure 9] FIG. 1 illustrates an example list view for a game plan for improved decision making, under an embodiment. [Figure 10] FIG. 1 illustrates an example gallery view of a game plan for improved decision making under one embodiment. [Figure 11] FIG. 1 illustrates an example view editor for a game plan for improved decision making, under an embodiment. [Figure 12] FIG. 1 illustrates an example two-slot component view of a game plan for improved decision making, under an embodiment. [Figure 13] FIG. 1 illustrates an example mini-gallery view of a game plan for improved decision making under one embodiment. [Figure 14] FIG. 1 illustrates an example middle gallery view of a game plan for improved decision making under one embodiment. [Figure 15] FIG. 1 illustrates an exemplary large gallery view of a game plan for improved decision making under one embodiment. [Figure 16] FIG. 1 illustrates an example mid-list view for a game plan for improved decision making under an embodiment. [Figure 17] FIG. 1 illustrates an example mini-map view of a game plan for improved decision making under one embodiment. [Figure 18] FIG. 1 is a block diagram of an example system for a game plan for improved decision making, under an embodiment. [Figure 19] FIG. 1 is a block diagram illustrating an exemplary hardware device in which the subject matter can be implemented. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0006] Although multiple challenges are highlighted by the above decision-making process, they are summarized as mainly related to the integration and balance within and between the rational, emotional, and social aspects of decision-making. Taking the rational aspect as an example of one type of deliberation mechanism, many people rely on information such as data, regulations, laws, and constraints that are spread and trapped in many different sources or websites, making it difficult to integrate and get a complete picture of the situation. For example, when choosing which solar panel system to buy or lease, one may look at various solar panel characteristics such as size, output potential, and aging, as well as related key technologies such as batteries, inverters or microinverters, and tracking systems.
[0007] The person can then attempt to comprehensively understand which solar panel systems have selected characteristics associated with which technology, which companies are selling these systems, the ratings and reviews of these companies, the financial stability of each company to ensure that they will be in business to address the issue 15 or 20 years from now, federal and state tax incentives for solar power systems, etc. Because no website or data source has all the data to be considered in one easy-to-integrate location, many people will open many browser tabs, attempt to identify many specific products or companies on each site, and then attempt to integrate all the information about all these products and companies across each website. This is a complex task and beyond the ability of most people to perform optimally, making it more likely that the person will make a suboptimal decision when the decision-making time clock runs out.
[0008] To illustrate the emotional aspect of decision making as one type of deliberation mechanism, when a person considers various options, many emotions related to the decision arise, some conflicting and some complementary. For example, when a person considers whether to leave their current job to take a more prestigious position in a new company, many people might express emotions such as: "I'm excited about the new role, but I'm a little worried that I might not be able to perform the duties. I would really like the additional income, but my direct manager is quite strict and I'm worried that I won't be able to do it well. I'm happy with my current role and company, but I feel like I've hit a plateau and that my skills aren't growing." With all these potentially conflicting emotions, many people are faced with the challenge of choosing what to do.
[0009] To illustrate the social aspect of decision making as one type of deliberation mechanism, people often benefit from interacting with others to learn from the perspectives of friends, family, experts, or other stakeholders who may be affected by the decision. Some challenges include finding people, who may be called recommenders, with whom one can convincingly interact on a given decision topic, and getting more than just top-level suggestions from the recommenders. Because a person may merge and integrate recommendations from multiple recommenders without understanding the full rationale behind each recommendation, the person may not fully understand how or why they agree or disagree with a recommender. When choosing which college to attend, someone important to the person may have a set of preferred school options, their mother may have another set of options, and their high school guidance counselor may have a different opinion about each of these options. Many people want to convincingly integrate such potentially useful information to move their decision-making process forward.
[0010] Not only are there challenges to integrate and balance competing, conflicting, and complementary information within each of the rational, emotional, and social aspects of decision making, but also challenges for individuals to integrate and balance ideas across these three aspects of decision making. For example, when choosing whether and where to move to a new location within a country, rational data may point a person in one direction, important people in the person's life may say another, and the person's heart and emotions may be pointing toward an entirely different option. Most people want to balance such aspects in their decision-making process, reach a conclusion that satisfies them, and feel confident that they are making the right decision. Many also want to continue to make better decisions throughout their lives by learning from how they have made decisions and optimizing this process when making similar decisions in the future.
[0011] Additional challenges exist because content providers such as Yelp, MovieTickets, Linkedln, and Zillow are reluctant to provide content sources, such as live web services, web crawlers, data files, and data feeds, that offer their own content for use by others. While this use may be compelling for business reasons such as license fees or because third parties bring a large user base of potential traffic to their own websites, content providers typically do not like to allow third parties to present their content in a way that the content provider cannot control the user experience or adequately represent their brand. Content providers do not want to be disintermediated by being cut off from the end user experience. For example, if a person types "movies in Palo Alto" into a web search engine, that person may select a link from the search engine results that takes them to a content provider's website that contains content about upcoming movie showtimes in the city of Palo Alto.
[0012] However, in many cases, the first page of search engines' curated results directly answers a person's query, without the person selecting a link to the originating content provider's content or advertisements displayed in the search results. Content providers may perceive search engines as trusting the content provider's content when a person gets an answer to a query without selecting a link to the content provider's content. Also, minimizing the number of users browsing the content provider's website and viewing the advertisements undermines the advertising revenue model of the originating content provider's website. Furthermore, content providers do not like to allow their content to be redistributed to non-human, web crawling robots that access their websites, because this defeats the purpose of advertising, which is the content provider's primary source of revenue.
[0013] To address these and other challenges, the GamePlanner system provides game plans, which may be defined as interactive documents containing text and structured data elements and tools that help system users comprehensively understand their options and make improved decisions. The purpose of the GamePlanner system is not only to help system users arrive at the decisions that are right for them, but also to help them understand how those decisions were arrived at, what trade-offs were made, what data and logic supported those outcomes, and how the emotional and social aspects of the decision-making influenced the rational aspects of the decision-making process. By capturing a fully transparent description of all aspects of how decisions were made, not just the original options and the options selected, the GamePlanner system allows system users to review past decisions and learn how to improve their decision-making process over time by reviewing the completed game plan document. Not only can system users learn from their own past experiences, but game plans from other decision-making experts and content creators can be shared, published, and discovered by system users, allowing the entire community of system users to increase their collective ability to make the best decisions for themselves.
[0014] An embodiment of the present disclosure provides a game plan for improved decision making. A system receives a request from a user for options for a decision and provides a game plan document suggesting accessing a first data source and a second data source to gather the options. The system extracts a first set of data records from a first content copied by the user from the first data source and inserts the first set of data records into a first table in the game plan document. The system extracts a second set of data records from a second content copied by the user from the second data source and inserts the second set of data records into a second table in the game plan document.
[0015] The system inserts a combined data record set, in which the first data record set and the second data record set are combined, into a combined data table in the game plan document. In the combined data record set, the system allows the user to identify candidates for selection in response to commands entered by the user. The system determines an overall score corresponding to the candidates based on applying the criteria scored by the user to each candidate. The system outputs a set of candidates ranked based at least on the corresponding scores as selections for the decision.
[0016] For example, when a system user requests assistance finding a California home to purchase, stay in during vacations, or rent out as an AirBnb property, the GamePlanner system provides a game plan document that suggests accessing a real estate website that lists California homes for sale and an investment website that calculates return on investment data for potential AirBnb properties. When the user applies smart copy and paste commands to a portion of the content of the real estate website, the system extracts data for several California homes for sale and inserts this real estate data into a game plan document table. Similarly, when the user applies smart copy and paste commands to a portion of the content of the investment website, the system extracts data for several potential AirBnb homes in California and inserts this investment data into another game plan document table.
[0017] In response to a user inputting a command to join tables storing real estate data and tables storing investment data, the system joins the real estate data and the investment data into a joined data table. When a user inputs a command to sort the data in the joined data table using return on investment data, the system outputs data sorted by homes that are for sale and identified as having good return on investment and are therefore potential purchases for the user. In response to a user inputting weighted criteria scores for the potential homes, the system determines an overall score for each of the potential homes, outputs a map of homes with the highest overall scores, and suggests the homes with the highest scores as best choices for the user.
[0018] 1 is a flowchart illustrating a method for game planning for improved decision making, under one embodiment. Flowchart 100 illustrates operations of the method shown as flowchart blocks of particular steps occurring at and / or between clients 1802-1808, a Game Planner application 1824, and / or a server 1810, which may be referred to as a Game Planner system 1810 in FIG.
[0019] A request for decision making options is received from a user (block 102). The system receives the user request for options that will improve the decision making process. For example, but not by way of limitation, this may include the GamePlanner system 1810 receiving a request from a smartphone 1806 registered to a system user named Alice for assistance in finding a home in Southern California to purchase as a vacation home that can also be rented out as an AirBnb property when Alice is not using it during her vacation.
[0020] A request may be a command to the computer to provide information or perform another function. A user may be a person operating a computer. A choice may be an alternative, a possibility, a course of action. A decision may be a conclusion or solution reached after consideration.
[0021] In response to receiving the request for options for decision making, a game plan document is provided that suggests accessing a first data source and a second data source to gather options (block 104). The system identifies and then provides a game plan document that may help identify options that improve the user's decision making process. For example, but not limited to, this may include the GamePlanner system 1810 responding to Alice's request by providing a game plan document that suggests accessing Zillow.com, a website that lists homes for sale, and Mashvisor.com, a website that performs advanced analytics to calculate the return on investment of potential AirBnb properties, to gather property purchasing options. While this example describes a game plan for improved decision making by ranking options, other types of game plans may improve two decisions based on whether a system user should take a particular course of action, and improve value decisions based on the amount of resources the system user should expend on an effort. The game plan document may be an electronic data structure that stores information for the strategy. The data source may be an asset accessible via the Internet.
[0022] The GamePlanner system 1810 uses a natural language processor to understand the user's request and understands, for example, that a request referring to purchasing an electric vehicle can be partially satisfied by a game plan document suggesting access to the Tesla website. As part of the rational aspect of decision making, when the natural language processor understands the user's request, the GamePlanner system 1810 searches a database of existing game plan documents to identify which, if any, of the game plan documents suggest accessing data sources to gather options that best satisfy the user's request for options. If only one game plan document meets the suitability threshold for the user's request, the GamePlanner system 1810 provides that game plan document to the user. Even if a game plan document just barely exceeds the suitability threshold, the user may be able to modify the game plan document to meet the user's needs more easily than if the user were to create the game plan document entirely on their own, especially if the GamePlanner system 1810 suggests adding additional data sources to the game plan document that would increase the suitability of the game plan document. Although the example describes a game plan document that proposes accessing two data sources to gather options, a game plan document could propose accessing more than two data sources to gather options.
[0023] If the game plan document does not meet the suitability threshold for the user request, the Game Planner system 1810 can provide suggestions to access specific data sources used by existing game plan documents that address different parts of the user request, thereby assisting the user in creating their own game plan document. If multiple game plan documents meet the suitability threshold for the user request, the Game Planner system 1810 can provide the user with all game plan documents or a shortened list of the most suitable game plan documents, depending on the number of related game plan documents. The Game Planner system 1810 can select one of the sufficiently related game plan documents created by creators that have subscribers that follow the game plan document of the game plan creator, including the requesting user.
[0024] Data sources may include any of the following: websites, data files, data feeds, live web services, and / or web crawlers. A website may be a set of related digital pages located under a single domain name, usually created by a single person or organization. A data file may be a digital structure that stores information. A data feed may be a mechanism by which a user receives updated information from an information source. A live web service may be any software that is available over the Internet and uses a standardized XML messaging system. A web crawler may be a robot, bot, or spider bot that systematically browses sites on the Internet.
[0025] Many content providers offer live web services or APIs (Application Programmer Interfaces) that allow the GamePlanner system 1810 to access content. These live web services and APIs are particularly useful for the GamePlanner system 1810 to access data that changes frequently, as they allow for rapid, programmatic updates of the latest content. Web search engine providers such as Google and Microsoft typically use robots that crawl the World Wide Web to build search indexes of aggregated content to provide search result recommendations. In addition to building unstructured indexes, most of these engines perform structured extraction on the content identified by the web crawling robots to build aggregated knowledge graphs of structured content. These search engines often surface content in one-box results, allowing the GamePlanner system 1810 to use the knowledge graph to query appropriate results from a structured cache when the GamePlanner system 1810 can infer the intent of the system user.
[0026] As an example involving the social aspect of decision making, one way the GamePlanner system 1810 may collect options is by allowing the system user to ask others who may be stakeholders with the user to provide their own ideas on options. The GamePlanner system 1810 may merge and deduplicate these proposed options to generate a list of options in a game plan document for the system user to consider. The GamePlanner system 1810 may collect options simply through manual input by the system user listing the options, which is applicable when the set of potential options known in advance by the system user is small.
[0027] Continuing with the illustrative example, after selecting the link to Zillow.com in the game plan document, Alice accesses the Zillow.com website and begins entering search criteria, such as the California county in which the home of interest is located, the maximum price she is willing to pay for the home, and applies filters for other desired attributes, such as amenities, the number of bedrooms and bathrooms in the home, etc. The Zillow.com website responds to the search criteria and filters entered by Alice by listing properties that match those criteria and filters. After searching on the Zillow website, Alice selects the content displayed by the Zillow webpage, applies a standard copy command to save the selected content to her operating system clipboard, and then executes a paste command to paste the selected content into the game plan document.
[0028] To further this example, Alice was not aware of Mashvisor until she selected a link to the Mashvisor.com website with her game plan document. As such, Alice fulfills the requirements to access the website's data by registering as a user and begins specifying search criteria and filters to search Southern California neighborhoods for homes of interest. The Mashvisor.com website responds to Alice's specified search criteria and filters by analyzing price and occupancy data in Alice's specified neighborhoods, as well as mortgage costs associated with purchasing a home. After searching on the Mashvisor website, Alice selects the content displayed by the Mashvisor web page, applies a standard copy command to save the selected content to her operating system clipboard, and then executes a paste command to paste the selected content into her game plan document.
[0029] After the first data source is suggested, a first set of data records is extracted from the content copied by the user from the first data source (block 106). The system extracts the user's data from the data sources accessed directly by the user. In an embodiment, this may include the GamePlanner system 1810 extracting data for a San Diego County house listing for sale that is currently displayed by the Zillow web page and is within the content to which Alice applied the smart copy and paste command. The smart copy and paste command identifies the labels and content of all tables in the data source, determines which tables store data related to the game plan document, and generates extraction rules that target the relevant data in the tables of the data source. If any of the tables of the data source are missing labels, the smart copy and paste command automatically infers the missing labels of the tables based on similar tables that have been accessed in the past. The extraction may include removing associated semantic records from the content copied by the system user instead of removing raw Hypertext Markup Language (HTML) text.
[0030] The smart copy and paste command also infers missing types for columns based on similar columns accessed in the past. The smart copy and paste command then presents the possible labels and column types to the user and allows them to accept or not accept them. If the user accepts the possible labels and column types, this approval causes these revised definitions to be saved to the data source. Once the game plan document is published with the extraction rules and the label and column type revisions, the publisher can accept or reject the label and column type revisions. The publisher attempts to establish a common terminology for the same type of labels and column types by encouraging users to adopt standardized labels to share ideas about labels and column types. When a data source such as a website is revised, an auto-learning feature attempts to detect newer versions of previously referenced tables and columns.
[0031] A set may be a collection of distinct entities. A data record may be multiple related information items treated as a unit. Content may be information made available by a website or other electronic medium. A related semantic record may be multiple related information items treated as a unit and having an applicable meaning. HyperText Markup Language may be a standard text encoding system for documents designed to be displayed in a web browser. Text may be data in the form of words or alphabetic characters.
[0032] When enabling the generation of game plan documents, the GamePlanner system 1810 uses personal semantic extraction, which is a novel solution to the content provider problems described above. This personal semantic extraction avoids many of these described problems and instead provides content providers with a number of benefits that they highly value. The GamePlanner system 1810 drives new traffic to the content provider's web site, where human users consume all of the revenue generating services such as branding services, advertising, sign-ups, premium charges, etc.
[0033] Without suffering from any of the other disadvantages discussed above, personal semantic extraction adds value to the content available at a content provider's website by enabling new use cases to be created by combining the content provider's data with that of other content providers. Personal semantic extraction allows a system user browsing a website and selecting content displayed on a web page to extract the structured elements that the web page displays and paste these elements into a game plan document that can be combined with other data from other content providers, sorted, searched, and filtered. When a system user visits a website, enters search criteria, applies filters, and views search results, the system user is consuming the advertising and branding displayed by the website.
[0034] The GamePlanner system 1810 uses personal semantic extraction to extract relevant semantic records from content copied from a webpage, rather than extracting all the raw HTML text. If the webpage contains multiple pages of query results, the system user can navigate to the next webpage and copy selected content from the next webpage, which triggers the GamePlanner system 1810 to extract additional relevant semantic records. The system user can also perform a smart copy and paste command by selecting content from a webpage, dragging the content to the game plan document, and dropping the selected content into the game plan document. Instead of the smart copy and paste command, the system user can use a browser extension that not only extracts relevant semantic records from the content selected to be copied from the webpage, but also automatically detects next page links on the webpage and enables the ability to page through structured content for all webpages that display query results from the current search query. Compared to the smart copy / paste method, the browser extension method requires more advance preparation for system users to install, but offers the added advantage of simplifying the process of navigating multiple web pages to extract relevant semantic records from all query results.
[0035] Following the extraction of the first set of data records, the first set of data records is inserted into a first table in the game plan document (block 108). The system inserts the user's data extracted from the data source into the game plan document tables provided to the user. For example, but not limited to, this may include the GamePlanner system 1810 inserting the data of a San Diego County home listing for sale currently displayed by the Zillow web page and within the content to which Alice applied smart copy and paste commands into a spreadsheet-type structured table in the game plan document. The GamePlanner system 1810 uses personal semantic extraction to insert the relevant semantic records, rather than the raw HTML text, from the content copied from the web page into the table in the game plan document. The GamePlanner system 1810 then discards all unstructured content copied from the Zillow web page. The table may be a data structure stored by a computer system.
[0036] After the second data source is suggested, a second set of data records is extracted from the second content copied by the user from the second data source (block 110). The system extracts the user's data from data sources directly accessed by the user. For example, but not limited to, this may include the GamePlanner system 1810 extracting data of possible AirBnb home listings in San Diego County that are currently displayed by the Mashvisor web page and are within the content to which Alice applied smart copy and paste commands. The GamePlanner system 1810 used personal semantic extraction to extract relevant semantic records from the content copied from the Mashvisor web page, rather than extracting all the raw HTML text.
[0037] Once the second set of data records is extracted, the second set of data records is inserted into a second table in the game plan document (block 112). The system inserts the user's data extracted from the data source into the game plan document tables provided to the user. In an embodiment, this can include the Game Planner system 1810 inserting data of potential AirBnb home listings in San Diego County currently displayed by the Mashvisor web page and within the content to which Alice has applied smart copy and paste commands into a spreadsheet-type structured table in the game plan document. The Game Planner system 1810 uses personal semantic extraction to insert the relevant semantic records, rather than the raw HTML text from the content copied from the Mashvisor web page, into a table in the game plan document, discarding all unstructured content copied from the Mashvisor web page.
[0038] After again performing personal semantic extraction, the system user will have two spreadsheet-like tables in their game plan document: one table containing Zillow property data for a specified area, and the other table containing Mashvisor's analysis of properties in that same area. Figure 2 shows a game plan document 200 with extracted data records, such as user-selected data 202 from the Zillow.com website and user-selected data 204 from the Mashvisor.com website.
[0039] After inserting the first and second data record sets into the game plan document, a combined data record set based on the combined first and second data record sets is inserted into a combined data table in the game plan document (block 114). The system combines all the extracted data records. For example, but not by way of limitation, this may include the GamePlanner system 1810 combining data from the Zillow.com game plan document table and data from the Mashvisor.com game plan document table in response to Alice selecting a join table command from the Zillow table with an argument identifying the Mashvisor table into a single game plan document table that can be sorted, searched, filtered, and visualized using columns from both original game plan document tables. If either the first or second table is designated as a combined data table, the combined data table is populated with additional data upon completion of the join table command, resulting in a new table called a combined data table. The combined set may be a collection of separate entities from different sources. A binding data table can be a binding information structure stored by a computer.
[0040] Each game plan document table is optionally associated with an innovative command acceleration bar that allows fast access to all commands available in the context of the game plan document table. From the command acceleration bar, the system user can select to browse all top-level commands, including join, sort, search, filter, etc. As the system user enters text, the command acceleration bar filters the initially displayed commands to display only those commands that match the entered text. The following description of the command acceleration bar provides further information regarding its functionality.
[0041] Following the insertion of the combined data record set, the user is enabled to identify potential selections in the combined data record set in response to commands entered by the user (block 116). The system identifies potential selections from the combined data. For example, but not limited to, this may include the GamePlanner system 1810 outputting data for eight Riverside County homes from homes listed on the Zillow and Mashvisor web pages as the eight homes with the highest return on investment and therefore the eight best candidates for purchasing as vacation homes / AirBnb properties in response to Alice entering a command from the Mashvisor web page to sort the homes listed by both web pages by the return on investment column. Because the Zillow website has data on homes for sale but not return on investment data for homes, and the Mashvisor website has data on return on investment data for homes but not data on homes for sale, the GamePlanner system 1810 is enabled to combine data from both websites to identify eight Riverside County homes listed as homes for sale with high return on investment.
[0042] The command entered by the user may be a sort command, a filter command, and / or a search command. Candidates may be those deemed suitable or likely to receive a particular treatment or ranking. A command may be an instruction that causes a computer to perform one of the basic functions. A sort command may be an instruction that causes a computer to rearrange data in a specified order. A filter command may be an instruction that causes a computer to remove unwanted records. A search command may be an instruction that causes a computer to systematically retrieve information.
[0043] A system user may wish to narrow down a long list of combined data from multiple websites to a few identified candidates for options worthy of serious consideration. Using the sort, search and filter commands available from the graphical user interface or command acceleration bar, the system user can view the combined data in the Game Plan Documents table in various ways and apply filters to narrow down the combined data to identify candidates. When the system user selects a column header in the Game Plan Documents table, the Game Planner system 1810 can cycle through three sorting states: ascending sort, descending sort and no sort. When the Game Planner system 1810 sorts a table, empty rows at the bottom of the table columns remain fixed in place so that the system user can continue to add new data there.
[0044] Once the candidates are identified, an overall score corresponding to the candidates is determined based on applying the user-scored criteria to each candidate (block 118). The system scores the candidate options using the weighted criteria. In an embodiment, this may include the GamePlanner system 1810 determining an overall score for each of the eight candidate homes in Riverside County by allowing Alice to input the component scores of the decision criteria that are hierarchically weighted. The overall score may be a number that represents the overall superiority by comparison to accumulated points and / or criteria. The criteria may be a principle or standard by which something can be judged.
[0045] A system user can consider the decision to be made, list the most important criteria, and either accept the existing criteria in the game plan document or apply a combination of the existing listed criteria and score the candidates on these criteria. Because some of the criteria may be more important than others, the system user can use the Game Planner system 1810 to assign each criterion a relative weight indicating how much each criterion contributes to the overall score of each of the candidates. Given a list of candidates, the system user can choose to use hierarchically weighted decision criteria, which is a powerful method that the Game Planner system 1810 can use to compare the candidates. As a result, some criteria can be top-level criteria with lower-level criteria contributing to the score of the top-level criteria, with each lower-level criterion corresponding to its own lower-level weight.
[0046] Thus, the criteria scored by the system user may include hierarchically weighted decision criteria including a first criterion corresponding to a first criterion weight and a second criterion corresponding to a second criterion weight, the first criterion including a first sub-criterion corresponding to a first sub-criterion weight and a second sub-criterion corresponding to a second sub-criterion weight. Hierarchically weighted decision criteria are criteria by which something is judged, adjusted by a factor that takes into account the relative importance level and arranged according to the relative importance level. The weight of a criterion may be a coefficient used to adjust the criteria by which something is judged taking into account the relative importance. The sub-criterion may be a criterion at or from a lower level or position by which something can be judged. The weight of a sub-criterion may be a coefficient used to adjust the criteria by which something can be judged taking into account the relative importance level by which something can be judged taking into account the relative importance level by which something can be judged.
[0047] For example, when Alice considers what is personally important to her in purchasing a home that she can also rent out as an AirBnb property for the holidays, she creates a list of the goals listed below, such as an interior with luxury amenities, a spacious exterior, suitability for hosting friends, and a favorable location. Some of Alice's criteria are more important than others, and some have sub-criteria; for example, a location score is calculated based on a combination of the convenience of the location, the safety of the location, and the quality of the school district. Overall score Interior (60%) 〇Natural light (5%) 〇High ceilings (15%) Master bedroom, bathroom and closet (60%) 〇Main living space (20%) Spacious exterior (10%) · Ability to entertain friends (5%) ·Good location (15%) 〇Convenience (60%) 〇Safety (15%) Quality of school district (25%) Price & Value (10%)
[0048] The process of scoring candidates involves the system user examining each criterion and any sub-criterion in the hierarchically weighted decision criteria and assigning a score, sometimes referred to as a decision criterion score, for each criterion and any sub-criterion, respectively. The decision criterion scores are assigned consistent values so that they can be combined, such as assigning a numerical value between 1, the lowest possible score, and 10, the highest possible score, or a real number between 0.0 and 1.0, with 0.5 being the default neutral, or a score scaled to a consistent scoring mechanism, such as a Likert scale from 1 to 5. Similarly, each criterion and any sub-criterion is assigned a consistent weight, such as a scale from 0.0 to 1.0, and the sum of the assigned weights can be a particular value that gives a basis of comparison, such as 1.0. The decision criterion scores are distinct from data values and are used to rank data values. For example, an offer to purchase a house has a data value of $6.35 million, and the system user assigns this data value a decision criterion score of 0.1. This data value establishes the home as one of the more valuable homes that is a candidate for system users.
[0049] The GamePlanner system 1810 can automatically calculate the decision criterion score by using the distribution from the minimum to the maximum value in the distribution set. For example, a candidate home with a maximum offer price of $11 million can be assigned a score of 0.0, and a candidate home with a minimum offer price of $1 million can be assigned a score of 1.0. However, the minimum price does not always represent the best option for the user. For example, when a user is shopping for a car, the user does not want to purchase a car that costs only $100. Therefore, the GamePlanner system 1810 can automatically calculate the decision criterion score based on the closeness to a user-specified target value that is between the minimum and maximum values in the distribution set. For example, the automatically calculated decision criterion score increases as the cost of the car increases from a minimum cost of $100 to a target value of $30,000, and the automatically calculated decision criterion score increases as the cost of the car decreases from a maximum cost of $200,000 to a target cost of $30,000. The GamePlanner system 1810 may also use a relative ranker that applies a uniform distribution of N terms between 0.0 and 1.0 to the data values, such as by assigning a uniformly distributed number to the ranked distance of each house to the beach, whereby a relatively high score initially assigned to the second of the first two candidate houses scored that is closest to the beach is replaced with a relatively lower score as additional candidate houses closer to the beach are identified. In addition to calculating decision criterion scores, the GamePlanner system 1810 may also use a learned function that provides estimated weights for decision criterion scores manually entered by a system user or automatically calculated decision criterion scores.
[0050] The GamePlanner system 1810 can provide explanatory text to assist the system user in manually assigning each decision criterion score. The GamePlanner system 1810 can also assist the system user by suggesting the addition of criteria to game plan documents. For example, the GamePlanner system 1810 may determine that many of the other game plan documents that include purchasing a home also include a criterion called "suitability for hosting," and may determine that Alice's game plan document includes purchasing a home but does not include this criterion, and may suggest to Alice that she add the criterion "suitability for hosting" to her game plan document.
[0051] When proposing the addition of a criterion to the game plan document, the Game Planner system 1810 may also suggest automatically calculating a decision criterion score for the proposed criterion. For example, the Game Planner system 1810 may suggest submitting an Internet query for both the city name in which the candidate home is located and the word "hospitality" and counting the number of records in the query results as an indication of whether the candidate home is suitable for hosting. Thus, the automatically calculated decision criterion score may range from a minimum to a maximum value in the query results, for example, assigning a score of 0.0 to a candidate home in a city with the fewest query results for "hospitality" and a score of 1.0 to a candidate home in a city with the most query results for "hospitality."
[0052] Various design elements may be used to allow the system user to set the value of the decision criterion score, such as a numeric value entered, a slider (no numeric value), a Likert scale with various emoji expressions (0.10, 0.30, 0.50, 0.70, 0.90), or icons representing degrees of like and dislike. To make manual assignment of scores quicker and easier, if the user selects the Super Like icon, sometimes also called the Love icon, as the decision criterion score, the corresponding candidate is assigned a special maximum value, such as greater than 1.0 on a scale of 0.0 to 1.0, so that the candidate is ranked at the top of the candidate list. Similarly, if the user selects the Super Dislike icon, sometimes also called the Hate icon, as the decision criterion score, the corresponding candidate is assigned a special minimum value, such as less than 0.0 on a scale of 0.0 to 1.0, so that the candidate is ranked at the bottom of the candidate list.
[0053] Once the system user has gone through each candidate and assigned a score for each criterion and any sub-criteria, an overall score is calculated by adding up the weighted scores for each criterion, where some criterion scores are based on scoring each of the criterion's corresponding sub-criterion, applying the sub-weighting corresponding to each sub-criterion, adding up each weighted sub-criterion score, applying the weighting corresponding to each criterion, and adding up each weighted criterion score. An exemplary formula for calculating an overall score from the criteria and sub-criteria and their corresponding weightings listed above is as follows: Score=Weight1*CriteriaScore1(sub-weight A *Sub-criterion A +sub-weight B *sub-criteria B +sub-weight C *sub-criteria C +sub-weight D *sub-criteriaD ) +Weight2*CriteriaScore2 +Weight3*CriteriaScore3 +Weight4*CriteriaScore4(sub-weight E *sub-criteria E +sub-weight F *sub-criteria F +sub-weight G *sub-criteria G ) +Weight5*CriteriaScore5
[0054] Weights are shared among all candidates, but the system user may assign an unweighted or base score at each level of the hierarchy to each candidate. Because the system user may score as many criteria and sub-criteria as the system user desires, if the system user does not assign a required score to a criterion or sub-criterion, the GamePlanner system 1810 may assign a default midpoint score, such as 5 on a scale of 1 to 10, or may automatically assign a score using a relative ranker or distribution from minimum to maximum within a distribution set, as described above.
[0055] As the system user assigns scores at various levels of the criteria hierarchy, design affordances can show how these scores trickle up to adjust the overall score. If the GamePlanner system 1810 sorts the candidates by overall score, as the system user assigns each element score, the GamePlanner system 1810 moves each candidate to their sorted ranking based on the calculated overall score. In addition, if the system user adjusts the weights, for example reducing the weight of an internal criterion by 60%, the GamePlanner system 1810 resorts the candidates to the order of results. This interactive and immediate feedback helps the system user to consider individual candidates against each other and allows reflection on the relative importance of each criterion and sub-criterion by adjusting the weights. Figure 3 shows an example of adjusting candidate scores using hierarchical weighted decision criteria.
[0056] After the candidates are scored, the user is allowed to change the ranking of the candidates based on at least one preference corresponding to at least one candidate, optionally input by the user (block 120). The system adjusts the ranking of the candidates based on the user's emotional preferences. For example, but not limited to, this includes the GamePlanner system 1810 moving the third highest scoring candidate's house from the third position in the ranking to the first position in the ranking because Alice finds the house to be great and grabs the drag handle of the house and drags the data record of the house from the third position to the first position (see FIG. 4). In another example, the GamePlanner system 1810 moves the first ranked candidate from the first position in the ranking to the third position in the ranking because Alice finds the restaurant near the house less appealing and adds a negative boost score to the overall score of the house, lowering the overall score of the house from the highest overall score to the third highest score (see FIG. 5). Ranking may be an order on a scale of achievement or status. Preference may be the preference of one option over another.
[0057] For high-stakes decisions, it may be a powerful and effective decision tool for the system user to specify different criteria for each candidate. However, this scoring process may require significant time and effort to complete. For a quick decision, exploring details about the candidates and reaching an emotional gestalt may also be a satisfying approach for the system user. For example, the system user may conclude that "I prefer this candidate over that one" based on his emotional reaction to a photo of the candidate's house.
[0058] The GamePlanner system 1810 can provide affordances to facilitate the ranking of candidates, such as allowing the system user to drag a candidate's data record up or down in the list of candidates, allowing the system user to quickly move the best candidate above a weaker candidate, etc. (see FIG. 4). A voting affordance is another way for the system user to indicate that the system user has considered the candidates and selected a particular candidate as the highest ranked candidate from among them. A further way to facilitate the ranking of candidates is to allow the system user to initially rank the candidates by candidate group. For example, the candidate houses could be initially ranked into a "yes" group, a "maybe" group, and a "no" group, and once the user has determined that the "yes" group is large enough, only the candidates in the "yes" group need to be ranked.
[0059] The GamePlanner system 1810 can integrate rational scoring and emotional rankings using the concepts of boosts and emotional overrides. The GamePlanner system 1810 activates boosts when a given score is calculated based on the canned calculations described above, and some of the scoring hierarchy may be expanded with relative increases or decreases in scores, indicating that in this respect the overall score of a criterion or the scores of a sub-criterion does not adequately record how the system user feels about the strength of that criterion or sub-criterion. Figure 5 shows the boost affordances that exist for any calculated score based on a criterion and / or sub-criterion.
[0060] In this example, the overall score is composed of a linearly weighted combination of the scores from the ..., price, and restaurant sub-criteria, with the boost affordance allowing the overall score to be increased or decreased by adding a boost factor to the calculated score that allows for special factors not captured by the sub-criteria. Although this example describes adding a negative boost score to the highest level of the hierarchically weighted decision criteria, a negative or positive boost score can be added at any level of the hierarchy. When individual sub-criteria or the relative weights of the sub-criteria are adjusted, the boost is added to the calculated score so that the positive or negative boost factor is maintained.
[0061] Overrides are useful when the system user has assigned a portion of the score that contributes to the calculated result, but concludes that the system user does not want to take the time to assign all of the criterion or sub-criteria scores to generate an accurate score. Instead, since the system user can score as many criteria and sub-criteria as the system user desires, the system user assigns an emotional score as an override to a particular criterion and / or sub-criteria, effectively replacing the partially calculated score with his / her own emotional scoring. In this way, the calculated overall score may be a hybrid where some criteria and / or sub-criteria are calculated by a formula and the system user assigns an emotional summary score to other criteria and / or sub-criteria. Figure 5 shows an exemplary emotional boost based on the calculated overall score.
[0062] Following the scoring of the candidates, the user is optionally allowed to change the ranking of the candidates based on at least one score corresponding to at least one candidate determined by at least one other user (block 122). The system adjusts the ranking of the candidates based on the scores of the other users. For example, but not limited to, this may include the GamePlanner system 1810 sorting the list of these eight candidates by the average ranking calculated from the five recommenders invited to assign their own scores to these eight candidates using the same hierarchically weighted decision criteria that Alice used to score the eight Riverside County houses. As shown in FIG. 6, each score displays five colored squares representing the level of agreement (green) to the level of disagreement (red) between the scores of the five recommenders and Alice's score. The score may be a number representing superiority in accumulated points and / or in comparison to a standard.
[0063] To explain the social aspect of decision making, system users consider what others think about the candidates they are considering. Many decisions usually involve other stakeholders, and it is appropriate to share with these stakeholders their views on the decision or parts of the decision.
[0064] The approach to integrating perspectives from other people depends on the key idea. The system user selects other people as recommenders who go through the same decision-making process as the system user, and the GamePlanner system 1810 aggregates and integrates the recommenders' decisions, visually highlighting where there is agreement and where and to what extent there is disagreement. If the system user and the selected recommender agree on one part of the decision, they do not need to spend any more time discussing that part, whereas if there is significant disagreement on another part of the decision, they need to carefully consider that part and possibly reach a consensus through further discussion. The system user can accept the disagreement and choose one side, which effectively means saying, "I understand that you don't agree with this part of the decision, but as the person who makes the final decision, I have listened to and considered your opinion and I am going to go in a different direction because..."
[0065] To gather feedback from other stakeholders, team members, experts, or others, a system user can use three types of social polling: A system user can ask other people to provide options to be considered by users of the GamePlanner system 1810. Once options are submitted by recommenders selected by the system user, these options can be deduplicated, merged, and evaluated into a candidate set for consideration.
[0066] When identifying which criteria are important for generating a candidate's score, it is often advantageous to ask colleagues, stakeholders, or experts which criteria they believe are important. The system user can also gather input regarding which criteria are most important in the recommender's judgment and what the relative weighting of the criteria should be. An invited recommender can begin scoring the candidates by using the same criteria and weightings that the system user used to determine the overall score, but in some embodiments the recommender can use different criteria and / or different weightings and determine the overall score by grabbing the candidate's drag handle and dragging and dropping the candidate into a new ranking, in the same way that the system user did to reflect an emotional ranking.
[0067] In response to the system user's review of the candidates, the recommenders selected by the system user can provide their emotional ranking, their comments, and their scores / rankings using the methods described above. When creating a social poll, the system user can specify a data table that will receive the results from the selected recommenders, a set of instructions that will be presented to the recipients of the poll to let them know what is expected of them, and possibly an expiration date and time that sets a reminder notification to encourage all participants to submit their answers within the expected time limit. The created social poll is a link that is delivered to the selected recommenders, and when the recommenders access this link, they receive the instructions and the data necessary to make their recommendations. Once all selected recommenders have submitted their recommendations or the specified expiration date has been reached, the system user receives a notification informing the system user that the recommendations may be evaluated.
[0068] The columns and rows present in the relevant data table comprise the structure used to receive recommendations from the social poll. In the case of choice gathering polling, the GamePlanner system 1810 generates a form that allows the stakeholder to manually enter values for all of the relevant columns in the table, allowing the stakeholder to enter one or more rows representing the choices to be considered. In the case of collecting criteria and weights, the selected recommender can review the existing column types vote, rank, or score and suggest the addition of missing criteria, which the GamePlanner system 1810 can add to the table as columns. The recommender can also review the relative weights presented for each of the hierarchical score criteria and / or sub-criteria and suggest changes to them.
[0069] Finally, for score and rank polls, selected recommenders can review the candidates stored as rows in a table and rank the candidates using emotional rankings, rational scoring, or a hybrid of emotional rankings and rational scoring. Data received from each poll respondent is recorded as having been entered by that particular respondent. This allows system users to see individual submissions from each poll respondent or alternatively, an aggregate showing the combined data from all poll responders.
[0070] When presenting an aggregate view, the GamePlanner system 1810 displays two elements. The first display element is the average score, which can be used to sort the candidates in terms of what most people think about the candidate listed in the corresponding row. Meanwhile, the second display element is the variance score, which indicates how much disagreement there is among the respondents regarding the candidate. In a situation where half of the respondents think that a particular candidate is the best option and the other half think that same candidate is the worst option, the average will be a moderate score, but no one will think that this candidate is a moderate option because half of the respondents like the candidate very much and half of the respondents dislike the candidate very much. Without the variance, this important candidate would likely get lost in the middle of the other ranked candidates. One way of conveying the average and variance components is displayed in FIG. 6.
[0071] The GamePlanner system 1810 can sort the list of candidates by average ranking calculated from multiple social participants using hierarchically weighted decision criteria. This decision process moves the candidates with the best average to the top, but with a color score (dark green = very like, red = very dislike) that provides the range of opinions of the recommenders selected by the system user. For example, the majority of the selected recommenders rated candidate #2 very highly, while one recommender was not satisfied with candidate #2 at all.
[0072] By looking at the color bars next to the hierarchical criteria, it is easy to visually understand where there is agreement and where there is no agreement. Figure 6 shows an example of aggregated responses showing the average ranking and variance among participants. A system user who requests a game plan document, scores the criteria to generate an overall score, and invites recommenders who use the game plan document to generate and share their own overall scores can have the Game Planner system 1810 process the system user's scores as if the system user were just another recommender, aggregate the overall scores, and generate an average ranking based on the aggregated overall scores.
[0073] The system outputs a set of candidates ranked based at least on the corresponding scores as options for decision making (block 124). The system outputs the candidate(s) identified as having the highest scores as options for consideration in the decision making. In an embodiment, this involves the GamePlanner system 1810 outputting a map of some of the eight Riverside County homes for sale that are predicted to provide a good return on investment, with the highest scoring home displayed at the top of the list ranked by overall score and suggested as a potential purchase for Alice. When the GamePlanner system 1810 outputs a list of ranked candidates available for the system user to consider as options, each option may be described in detail to assist the system user in deciding whether to select the highest ranking candidate or any of the candidates that are approximately equally highly ranked.
[0074] The ranked list of candidates output by the GamePlanner system 1810 may be ranked, sorted and / or filtered based on the highest overall score, such as the best return on investment balanced with the best home price, generated by scoring and weighting the criteria scores, followed by filtering and sorting the criteria scores, or may be ranked, sorted and / or filtered based on filtering and sorting data record values, such as the cheapest home price with a sufficient return on investment. The GamePlanner system 1810 may group the scored candidates into groups and score these groups. For example, the GamePlanner system 1810 may group the scored candidate homes based on county, score the groups of homes based on the data aggregated for each county, and then rank the groups based on the scores for each county, e.g., ranking the homes in Riverside County higher than the homes in San Diego County and the homes in Los Angeles County based on the average overall score of these groups of homes.
[0075] Once the system user has completed the scoring process and found an equilibrium that appears to be correct, the Game Plan document displays an ordered list of preliminary options as well as the highest scoring option that is the decision answer. After viewing the overall scores of the candidates, the system user selects the Decide button, which indicates the final decision, and the Game Planner system 1810 freezes all of the data records, scores, and rankings to generate a summary of the decision-making process, as the scores and weights generate an explainable and inspectable interface for the decision. As a result, the system user has a clear and precise understanding of how the decision-making process arrived at the answer. If the system user is not yet ready to make a decision, the system user can revisit the data source to refresh the data or select the Update button to refresh the data until the system user is ready to make a decision or chooses not to select any of the system user's candidates.
[0076] If the system user discovers that his or her highest scoring option is no longer available after the GamePlanner system 1810 has frozen all of the data records, scores and rankings to generate a summary of the decision-making process, the system user can instruct the GamePlanner system 1810 to unfreeze and refresh all of the data records, scores and rankings so that the system user can identify and select the remaining option that now has the highest overall score. The GamePlanner system 1810 learns from every decision made by the system user, including a decision to make no decision on any of the candidates, and uses this learning to suggest revisions to the criteria and / or weightings for the current game plan document and / or future game plan documents that pertain to the current system user. For example, after learning that Alice assigned one of the lowest weights to the criterion for the purchase price of a house, if Alice requests a game plan document that involves purchasing a car, the GamePlanner system 1810 reduced the weight of the criterion in the game plan document for the purchase price of the car.
[0077] 1 illustrates blocks 102-124 being performed in a particular order, blocks 102-124 may be performed in other orders, in other implementations, each of blocks 102-124 may be performed in combination with other blocks, and / or some blocks may be divided into different sets of blocks.
[0078] The approach to decision making involves balancing and aligning different views across emotional, rational and social dimensions. One innovative technique that supports this objective is an automatic weight optimization algorithm that can automatically make optimal weight adjustments that best align two different rankings based on the hierarchically weighted decision criteria described above. Such rankings can be generated by rational scoring of the emotional preference rankings, by rankings provided by different people, or by rankings calculated at different times (e.g., a system user may weight criteria differently in retrospect than they did initially). For example, given a list of candidates, the system user can go through them one at a time, examine the candidates, score the multiple criteria and sub-criteria presented, and then drag the candidate above or below the other candidates depending on how the system user judges the candidate overall compared to the other candidates, moving the candidate that the system user perceives as the best to the top of the ranking and the candidate that the system user perceives as the worst to the bottom of the ranking. After completing this process for all the candidates, all of them have a score in each criterion and sub-criterion, as well as an overall ranking relative to the other candidates.
[0079] Using the hierarchically weighted decision criteria, the GamePlanner system 1810 can generate a second ranking of the candidates. In some cases, the two ranked lists will match perfectly and the decision will be clear. However, the two rankings may reflect different values, such that the hierarchical decision criteria represent a bottom-up or analytical ranking and the preference ranking represents a top-down or emotional ranking. The algorithm can use a stochastic gradient descent search or similar method to determine what minimal clarifying changes can be made to the weights of the hierarchically weighted decision criteria to bring the two rankings into agreement as much as possible through the weights. Highlighting the weighted criteria that should be changed is crucial to clarifying why the two rankings do not match.
[0080] For example, a system user may have driven a motorcycle in the past, but now has a family and desires a more purposeful and safe mode of transportation. To score a number of potential cars, the system user creates three decision criteria: safety, style, and price, and weights them according to how important the system user should consider these three criteria, with safety being weighted as the most important criterion, followed by the style criterion, and finally the price criterion. As the system user reviews each potential car purchase, he assigns a score for the three criteria, and then ranks the candidates based on which he feels best suits his needs, based on his emotions. At the end of this process, the GamePlanner system 1810 calculates a ranking from the system user's scores and weights, compares this new ranking to the system user's emotional ranking, and learns that the rankings are significantly different.
[0081] When the system user ran the automatic weight optimization algorithm, the iterative algorithm determined that the rational "bottom-up" ranking could be more closely aligned with the emotional "top-down" ranking if the safety criterion was given a lower weight. Given this information, the system user would understand that while they originally wanted a safe car, their emotions only favored faster cars that were less safe, i.e., their heads and hearts were not really aligned. A clear decision was then required to either recognize that safety was more important and move the faster cars lower in the rankings, or take a risk and make a conscious decision to lower the priority of the safety criterion.
[0082] The automatic weight optimization algorithm for matching can be a useful tool that enables an iterative "bottom-up" process and an iterative "top-down" process that helps the user refine the "rational" and "emotional" rankings, respectively, in a way that allows the user to reach a conclusion decision that captures all of the user's requirements and intuition. The "bottom-up" process can be considered as a rational process in which the user selects important criteria and weights, and generates a ranking from a mathematical calculation of hierarchically weighted decision criteria. The "top-down" process can be considered as an emotional process in which the user ranks the items as a whole by intuition, without knowing exactly which criteria contributed to this ranking.
[0083] As an example, insights can be gained from a basketball coach first loading statistics of all the greatest basketball players of all time into a game plan table. The coach strongly believes that the top three basketball players of all time are Michael Jordan, LeBron James, and Kareem Abdul Jabbar, in that order, and so places these three players at the top of the list in the table. However, the coach may not be sure why these three players are at the top of the list. The coach can then run an automatic weights optimization algorithm for alignment to automatically determine which criteria and weights will most simply result in that ranking order.
[0084] The implementation algorithm determines that if the coach selects points per game, plus / minus score, and win shares with appropriate weighting, these are the metrics that best represent the coach's selected player's ranking. However, based on these statistics alone, Karl Malone would be ranked as the fourth best player of all time, which does not match the coach's emotional ranking of Malone among the best basketball players of all time. Also, the coach strongly believes that winning an NBA championship must be part of the definition of greatness in basketball, since the purpose of the sport is to win an NBA championship.
[0085] Not wanting to disrupt the work that has been accomplished so far, the coach "locked" the first three players and three criteria selected so far so that the top three rankings and top three criteria would not be disrupted by the automatic weight optimization algorithm for consistency. Since a great player needs to be able to shoot well, the coach added NBA championship statistics and free throw shooting statistics as additional criteria and reviewed the newly calculated rankings. The newly calculated rankings seem more appropriate, but there is still some problem further down the list because James Harden does not play defense so maybe he should not be ranked in the top 10 of all time. So the coach added "All-Defensive Team Selection" as a weighted criterion, which resulted in a more appropriate top 10.
[0086] The coach can constrain the algorithm by locking his sub's decision at this point. However, in the coach's estimation, Larry Bird should be above Tim Duncan and Kobe Bryant, so the coach moves Bird up the list based on his emotional ranking. The automatic weight optimization algorithm for alignment iterates to identify appropriate weights that best match the rational and emotional factors provided by the basketball coach.
[0087] Through this iterative process, the coach developed a selection sequence that balances "top-down" emotional feelings, such as identifying "Michael Jordan is the best," with "bottom-up" rational demands, such as "an NBA championship is important." If both the "bottom-up" and "top-down" aspects are judged to be correct, the basketball coach now has a concrete mathematical explanation that provides the satisfaction of having analyzed the problem from all angles. The coach now has a rational understanding of why and how this decision was reached, what was important, and how he can move forward with the confidence that he reached his optimal decision.
[0088] The algorithm does not tell the system user which option to choose, since this choice is made by the system user. However, the algorithm can help a lot by highlighting which challenge(s) should be addressed. By prompting the system user to make a clear decision, this insight provided by the algorithm gives the system user a sense of accomplishment that he / she has now considered the car-buying decision from several different angles, thought about what was important, and now knows exactly what the basis of his / her decision was. If the system user later reconsiders the decision with such hindsight, he / she can learn how to make better decisions over time, such as "I should have listened to my heart more" or vice versa.
[0089] Different types of decisions require different actions. Some important decisions, like buying a house or choosing a college, require a lot of thought and deliberation. In these cases, many of the above points are directly relevant. However, some high frequency use cases, like deciding what to have for dinner tonight, choosing a movie, etc., require a faster decision process because no one wants to waste a lot of time on a decision that will have trivial consequences even if they are not the optimal choice. Nevertheless, high frequency decisions provide an opportunity to learn personalized statistics about the system user, and the system can provide value to this user by leveraging this learning to make predictions that make the decision process even faster and easier for the system user.
[0090] In a use case that occurs every night, the system user needs to decide what to have for dinner. In this case, the system user has a fixed set of recipes to choose from, or the option to occasionally eat out or add new recipes. A recipe can be an entry in a data table with the following information: dish name, cooking style, main ingredients, and cooking time. Every night, the system user uses the system to predict what they will have for dinner. The system's user interface presents the predicted dish and gives the system user the option to accept the predicted dish or skip to the next best choice predicted by the system.
[0091] One approach that could be tried is to use traditional machine learning techniques, such as extending a recurrent neural network with a time loop to learn patterns over time. Genetic algorithms can also be used for this type of prediction. However, all of these techniques require huge samples of data that are not relevant to this type of problem, perhaps hundreds of thousands or millions. What is needed is a method that works with very few training or feedback samples.
[0092] The method relies on statistics across individual items and across learned rules. The method works as follows: initially, all options, such as current recipes, restaurants, and new recipes, are given equal probability and there are no rules. Thus, each option is as likely to be predicted by the system as another option.
[0093] As options are selected over time, the Game Planner system 1810 counts how many times each predicted option is selected, and this is balanced with the number of times an option that was not predicted is selected. For example, the first time the Game Planner system 1810 makes a prediction, i.e., if there are no previously selected options, the Game Planner system 1810 will randomly select an option that has not been previously selected, since in this case all probabilities are equal since the rules have not yet been learned. The second time, the Game Planner system 1810 will assign 50% probability to the previously selected option and 50% probability to any of the options that have not yet been selected.
[0094] The GamePlanner system 1810 looks at the sequence patterns of previous choices that came before it, as well as external criteria such as the day of the week, to learn rules for adjusting across selected choices. Examples of the types of rules the GamePlanner system 1810 might learn include: Fridays are very frequently attributed to (main ingredient=fish), (main ingredient=fish) never occurs two days in a row, (cooking style=Mexican) is usually followed two days later by (cooking style=Italian), a new recipe is selected on average every 45 days, etc.
[0095] As the GamePlanner system 1810 learns the rules, it keeps statistics for the rules to determine how often the rules are likely to be true. The GamePlanner system 1810 applies rules to increase or decrease the probability of outcomes from a set of previously selected choices, based primarily on statistics. The GamePlanner system 1810 also applies rules to boost the probability of unseen choices whose probabilities are randomly selected because there is no previous probability. As time passes, more data becomes available and predictions become better and better, saving the system user valuable decision time.
[0096] The purpose of the command acceleration bar is to provide a discoverable interface that allows the system user to progress toward accomplishing a task while preventing user error, and to provide handrails that move the system user through the task in a graphical manner. The auto-complete interface can be used to broaden the system user's understanding of what is possible with the services and data sources available in the GamePlanner system 1810, and can constrain the system user's input to what is actually actionable. Command acceleration bars can be used in several places within a graphical user interface, such as the main header pane of the GamePlanner system 1810 website, embedded action elements inserted into a game plan document, context menus in table elements, etc.
[0097] When a top-level autocomplete in the main header pane is used to perform an action that returns a document, the Game Planner system 1810 opens the document in a new top-level tab. If the action performed returns a table, the Game Planner system 1810 creates a new document in the top-level tab containing the returned table. If an action is performed from within a document, an embedded action component, or a context menu, and the action returns a document, the Game Planner system 1810 inserts the document context into the existing document at the closest point below where the action was performed. If an action is performed from within a document, an embedded action component, or a context menu, and the action refines the current table associated with the embedded autocomplete or context menu, the Game Planner system 1810 updates the table in place and adds the action to the table's history. If an action is performed from within a document, an embedded action component, or a context menu, and the action references a new table, the Game Planner system 1810 inserts the new table into the document at the closest point below where the action was performed.
[0098] The following descriptions distinguish between items that are accessible from the command acceleration bar's auto-complete menu and items that are not accessible from the command acceleration bar's auto-complete menu: Documents are accessible by name from the command acceleration bar's auto-complete menu. Undefined documents are not indexed and therefore are not accessible from the command acceleration bar's auto-complete menu. Similarly, documents and content stored under archived folders are not accessible from the command acceleration bar's auto-complete menu.
[0099] When a table is created in a document by a system user and given a name other than "Undefined", the table is in the document's table of contents and is searchable via the command acceleration bar. If a table is created with an automatically generated header, for example, a header selected as a result of an action that copies selected items to a new table, or a header generated as a result of a service invocation such as "Yelp Restaurant Search", it does not constitute a named table unless the system user changes the name to one of the system user's choosing. After selecting a table name, the system user can continue to autocomplete with column filters as subconstraints.
[0100] Additional items accessible from the autocomplete menu in the command acceleration bar include Providers, Services, Actions, and Tags. Providers are companies that offer services and actions, such as Yelp or Google or GamePlanner. Services are optional intermediate categories between providers and actions. For example, Google is a provider that offers multiple services, such as Gmail and Google Maps, and actions are organized under each service, such as directions in Google Maps.
[0101] Actions include both the provider name and the action name, such as Yelp Restaurant Search or Yelp Restaurant Reservation. After selecting an action, the system user can continue to autocomplete on pre-search input and post-search table columns. Tags can be autocompleted on both the tag name, such as in-folder, and the typed tag value, such as "game plan." The GamePlanner system 1810 can use tags to filter and refine other resources, such as tables, services, and documents, during search or autocomplete. Typed terms perform a full-text search to match documents containing the term, and then provide an explanation of the match in the form of an excerpt.
[0102] The command acceleration bar allows a user of the GamePlanner system 1810 to effectively execute commands, such as by typing characters into the autocomplete field and selecting from the suggested command options shown below the autocomplete field. When the cursor is within the autocomplete field, the list below the autocomplete field provides a set of commands and queries that can be selected at that time. The set of commands is ordered based on a notion of likelihood, as calculated by a frequency measure or some manual indicator.
[0103] Each command shown includes hierarchical information, and the user can select from any level of the command hierarchy. As shown below, an exemplary command acceleration bar prompts the user to enter characters into an autocomplete field or select from some of the most frequently executed commands, which are identified by home, work, and marketplace (MktPl) at a first hierarchical level, and food, movies, startup, and travel at a second hierarchical level. A command including food at the second hierarchical level can be used from both the home command and the marketplace at the first hierarchical level.
[0104] [Table 1]
[0105] As shown by the command acceleration bar below, when a system user begins typing letters, such as the letter Re, the command acceleration bar filters candidates that match the first letters of words, such as recipe, restaurant, and reserve, based on the letters typed.
[0106] [Table 2]
[0107] The system user can select any level of the hierarchy of commands or queries. If the system user selects Food in the example list above, the system user sees all results that match MktPl>Food, e.g., all folders and resources below. When the system user selects an action, the GamePlanner system 1810 adds a button to the command bar that compactly represents the action, such as Yelp, and all selected constraints shown in parentheses in the button label, such as (0).
[0108] As shown in the command acceleration bar below, service names such as Yelp Find Restaurant are listed as links in the autocomplete popup menu along with the number of constraints added, such as (0). Below the link, all constraints such as near, cuisine, price, and serving are displayed to help you find all that are available. Arguments for options such as location, style, op, price range, and dish are shown in italics, while required arguments are in normal font.
[0109] [Table 3]
[0110] At this point, the system user can use the mouse to select the constraints or begin selecting the constraints that the system user wants to add. When the system user types the letter "c" as shown in the command accelerator bar below, the choices are filtered out. If only one command remains, such as cuisine, <tab>Selecting results in that command being selected and the display moving to the next step.
[0111] [Table 4]
[0112] When the system user selects a constraint, such as cuisine, the GamePlanner system 1810 adds a constraint button, such as a cuisine button, to the text entry field and lists the values to autocomplete if the first argument is of type "enum". Continue typing, such as the letter "i", filters the list to matching items, such as Italian. If only one command remains, such as Italian, as shown in the command acceleration bar below: <tab>The command is selected and the next step is started.
[0113] [Table 5]
[0114] Constraint values are specified, <tab>Once confirmed using, the constraint disappears from the text entry box, the number of constraints added is incremented from (0) to (1), and the Game Planner system 1810 removes the selected constraint from the constraint list in the menu, as shown in the command accelerator bar below. The system user can repeat this process as many times as the system user likes to add any additional constraints the system user requires.
[0115] [Table 6]
[0116] If the system user wishes to view or edit previous constraints, the system user selects the Yelp button or (1 constraint) link in the menu and a second menu is displayed listing all previous constraints such as recipes and servings, etc. This is shown in the command acceleration bar below.
[0117] [Table 7]
[0118] Selecting an X removes the corresponding constraint and all hierarchical children under that constraint. As shown in the command acceleration bar below, selecting a particular constraint such as cuisine offers that constraint in auto-complete and allows you to change the value of the constraint to something like Mexican, French, American, Italian, Chinese, or Japanese.
[0119] [Table 8]
[0120] When the system user is ready to execute a request, <enter>If a single data source or service is selected by the autocomplete criteria, a grid of data sources is added to the appropriate document or a service is executed that prompts the system user to enter missing required arguments in a modal form, and then displays the results of the executed request in the appropriate document. If multiple data sources or services match the criteria, a modal box requires the system user to select a single data source or service. The action behavior and target depend on the type of result returned. If the result of the executed request is to generate or refine a document, for example by typing "help", then the document is opened or selected in the top level tab view.
[0121] Tables can be created or refined as a result of an action autocomplete. If an action creates a table for the first time, the GamePlanner system 1810 inserts an associated autocomplete bar in front of the table to allow successive refinements if one does not already exist. The GamePlanner system 1810 sets the name of the table tab to the name of the data source or language from the top level autocomplete used to launch a service such as Yelp restaurant search. If the action refines an existing table, the GamePlanner system 1810 adds the action to a history list of tables visible by system users.
[0122] To join two tables, a system user can start with one of the tables, select View Context Menu, and select More Actions to display the modal autocomplete widget. Figure 7 shows an example modal autocomplete widget 700 for a game plan for improved decision making under one embodiment. The GamePlanner system 1810 displays the modal autocomplete widget after selecting more actions from the table context menu.
[0123] System users <resource-name>If you select to add, the GamePlanner system 1810 returns all columns by table or service as columns to the source table, adds the data record as a new row, and, whenever possible, performs a JOIN operation to identify rows from the source table and rows from the destination table that refer to the same row and merge the two rows into one when appropriate. <resource-name>from<column-name(s)> will produce the same result, but will hide columns in the destination table except for the requested columns.
[0124] It is important that the system user can easily create columns or groups of columns that can be made visible or hidden to prevent combined rows from becoming too long. Furthermore, it is desirable to be able to freeze columns so that the frozen columns are always shown as the system user scrolls horizontally over other columns. If filters or inputs are set in the first table and may be reused when loading the destination table from a service or discoverable table, the filters are carried over to select the results that are added more accurately in the destination table. Selecting a column header toggles the sort mode between three states: sort ascending, sort descending, and default sort order. In sort ascending, blank values in that column are sorted to the bottom, and in sort descending, blank values are sorted to the top.
[0125] After a join operation, the default sort of the joined DataTable is defined as follows: the joined list with the results from both tables is listed first, preserving the relative order of the data records from the first source table, followed by the rows of the source table that could not be joined in their relative order before the join operation, followed by the rows of the destination table that could not be joined in the relative order returned from the action call.
[0126] To allow differentiation between columns in the source table(s) and the destination table, the column names in the header tab are displayed in different colors for each source. A legend showing which sources are involved in the table merge and which colors are associated with each source is accessible; the GamePlanner system 1810 places the legend in a modal popup inside the table property affordance in each table, although the legend can be placed elsewhere. To perform the join, columns with the property identity are used to perform identity inference to determine if two rows from two different tables refer to the same entity. The inference process is as follows:
[0127] First, any identity (ID) columns in the source table are matched as much as possible with identity (ID) columns in the destination table. Equality, such as "address" = "address", or substrings, such as "Restaurant Name" = "Name", may be used. Similarity can be used to join data records, for example, joining the data records for "Joe's bar" and "Joe's Restaurant", or "123 Main St." and "123 Main Road". However, similarity may not be used to join columns such as a Trip Advisor rating column and an Expedia rating column.
[0128] The column types of the two matching columns must be identical. If a column is not explicitly marked as having the identity property, the first (left-most) column found in the Game Plan Documents table is marked as the identity column. Based on the type of the column pair, a calculation is made to determine if the value in the source row matches the value in the destination row. If all identity columns match, the rows are auto-joined.
[0129] Fuzzy comparisons using Hamming distance will give greater than 75% matches, or whatever number works well in practice. Locations such as addresses and latitude / longitude pairs should be accurate to within a mile, or whatever distance works well in practice. Phone numbers should match exactly when all non-numeric characters are removed. All other types should match exactly.
[0130] The GamePlanner system 1810 attempts to accurately determine when two rows from different sources are the same, but perfect results are not possible. Thus, system users can link two rows that were not identified as relating to the same concept, or sever a link that was mistakenly established between two unrelated concepts. These are performed by the join autocomplete action (taking two selected rows as arguments) and the dissociate autocomplete action (taking a single row as an argument). The lookup action searches for a particular row in all tables that have been specifically joined. There is a limit of 10 lookup actions per table per source to minimize overuse of this feature.
[0131] If the system user wishes to verify that the join was performed correctly, the GamePlanner system 1810 provides an interface to help efficiently compare source and destination rows. Some interface, including a tree view of an AG Grid, that aligns A and B rows vertically to facilitate comparison, may suffice. The system user may select a column freeze function from the command acceleration bar, which allows the system user to lock the leftmost column or columns so that the system user will not lose focus on the leftmost column or columns when subsequently scrolling to view other table columns.
[0132] A system user can filter rows in the game plan documents table by selecting a quick search, which scans all data for a given search string, or by opening a graphic pane from the left side of the table and adding specific constraints on searchable table columns to filter the rows. Figure 8 shows an example filter pane 800 and quick search widget 802 for a game plan for improved decision making under one embodiment. In Figure 8, the filter pane 804 is open on the left side of the table and the quick search widget 802 is in the top right corner of the table.
[0133] The default view for the Game Plan Documents table is a grid, but other views are possible depending on the table's contents. View options include a calendar view if the table rows contain date / time columns, a map view if the table rows contain latitude and longitude columns or address columns, and a chart view if the table rows contain numeric data columns. View options also include a form view, if defined for a table row, that is used to collect polling data from system user recommenders, a gallery view that presents a summary view in which each card provides access to a data record and details of the data record, and a list view that presents the data in a way that can be presented in a long list.
[0134] When a system user inserts a table into a game plan document, the table has a tab layout component surrounding it. Then, when the system user creates additional views of the table, such as a chart view, the system user can use the layout component to adjust how both the grid view and the chart view are shown, such as in tabs or other layouts. Once a table grid is inserted into a game plan document, it cannot be resized because its fixed height is designed to occupy only a small portion of the game plan document's view height. A maximize button can allow the tab pane layout to expand to the full window size so that the system user can more fully examine the data and associated views.
[0135] Horizontal cards stacked into a vertical list view can show summaries of data records. When any type of system user clicks on the down arrow, the card opens to show the details of the data record in an expanded toggle that alternates between showing and hiding the details of the data record. Figure 9 illustrates an example list view 900 for a game plan for improved decision making under one embodiment.
[0136] The gallery view may be a horizontal gallery view of cards with summary slots for data records, or may be presented on a bare-bones visual view. As the system user slides the gallery view horizontally, selected cards expand and deselected cards shrink. Selecting the lower area of a card opens a detail view of the corresponding data record.
[0137] 10 shows an example gallery view for a game plan for improved decision making under one embodiment. By default, various card views have some predefined slots, and an algorithm tries to determine which columns of the corresponding game plan document table should be assigned to these predefined slots. However, if a system user wants to customize the card views, a simple view editor allows the system user to specify the user interface components for the card views and which data record columns to map to the slots or fields of the card views.
[0138] To launch the view editor, a system user can select Edit View from the Table menu under the Views submenu. Figure 11 shows an example view editor 1100 for a game plan for improved decision making under one embodiment. The first part of the view editor 1100 is a pull-down 1102 that shows views that can be edited, such as List View: Medium, Gallery View: Small, Gallery View: Medium, Gallery View: Large, and Map View: Small. Using the view editor 1100, a system user can define a view based on a width in pixels 1104, a transition 1106, and a list of user interface components, along with an association to a particular column in the game plan document table of data records. The view editor 1100 can show a live preview of the corresponding view using the first row from the table of data records.
[0139] The transition box indicates how other system users can transition from the current view to another view. The transition type can have three values: no transition, button transition, and hover transition. For button transition and hover transition, the system user can use the view editor 1100 to specify the name of another view to transition to. For example, a small gallery view uses a hover transition to transition to display a medium gallery view, and the medium gallery view uses a button transition to transition to display a large gallery view.
[0140] A system user can add a list of user interface components using the view editor 1100 to define any view. The image left 1108 user interface component is a left aligned image panel that can be added next to the main text content for any view. If the system user does not select an image left 1108 user interface component for a view using the view editor 1100, all other non-image user interface components will be displayed within a text panel. Adding an image left 1108 user interface component to a view using the view editor 1100 also adds an associated column mapper, listing all of the table columns of type imageColumn for association.
[0141] When a system user uses the view editor 1100 to add an image-top interface component to the top of the main text content in a view, the view editor 1100 adds one associated column mapper, listing all table columns of image column type for association. A system user can use the view editor 1100 to create a view that includes both an image-top and an image-left user interface component, as shown by the following example block:
[0142] [Table 9]
[0143] After a system user creates an image left 1108 user interface component for a view using the view editor 1100, the view editor 1100 does not display an option to create another image left user interface component for the same view. Similarly, after a system user creates one image top user interface component for a view using the view editor 1100, the view editor 1100 does not display an option to create another image top user interface component for the same view.
[0144] The system user uses the view editor 1100 to set the title 1110 of the name to the title 1112, which may be displayed in a horizontal weighted slot spanning the entire width of the text pane. A column of type nameColumn is available in the associated column selector. The system user uses the view editor 1100 to select longText 1114 as a text field three lines high spanning the width of the text pane horizontally. A column of type longTextColumn is available in the associated column selector.
[0145] The system user uses the view editor 1100 to select two slots 1116 to be the horizontally left aligned slot and the right aligned slot. Columns that match most other types of columns are displayed in two associated column selectors, such as columns that are long text, anything except images or identifiers, dates and times, numbers, currency, etc. The system user can use the view editor 1100 to select one of the slots to be the left aligned slot.
[0146] With each slot definition associated with a component there is a Display Label checkbox. If this checkbox is checked for a column, the slot is filled with the column name:<row value>. If the checkbox is not checked, the slot displays only the row value. For example, a system user uses the View Editor 1100 to define two Slot 1116 components, where the Popularity 1118 column is checked but the Rating column is not checked. This definition is shown below:
[0147] [Table 10]
[0148] This definition produces something similar to that shown in Figure 12, which illustrates an example two-slot component view of a game plan for improved decision making under one embodiment. The Popularity Display Labels checkbox is set to true, but the Rating (PG-13) checkbox is not set to true.
[0149] 13-17 show exemplary view definitions for current views. FIG. 13 shows an exemplary small gallery view 1300 for a game plan for improved decision making under one embodiment, with view set to gallery small, width set to 100 pixels, transition set to hover to medium gallery view, image top user interface component set to poster uniform resource locator (URL), and name set to title 1302. FIG. 14 shows an exemplary medium gallery view 1400 for a game plan for improved decision making under one embodiment, with view set to medium gallery, width set to 200 pixels, transition set to button transition to large gallery view, image top user interface component set to poster URL, name set to title 1402, and one slot set to publication date 1404.
[0150] Figure 15 illustrates an exemplary large gallery view 1500 for a game plan for improved decision making, with view set to gallery large, width set to 300 pixels, transition set to none, image top user interface component set to poster url, name set to title 1500, long text set to overview 1500, one slot set to popularity 1500, and one slot set to categories 1500, under one embodiment. Figure 16 illustrates an exemplary medium list view 1600 for a game plan for improved decision making, with view set to medium list, width set to 300 pixels, transition set to none, image left user interface component set to poster url, name set to title 1602, long text set to overview 1604, and two slots set to popularity 1606 and categories 1608, under one embodiment. FIG. 17 shows an example small map view 1700 for a game plan for improved decision making under one embodiment, with the view set to map small, width set to 150 pixels, transition set to none, image top user interface component set to photo 1702, name set to property name 1704, one slot set to Sq Ft 1706, and another slot set to type 1708.
[0151] Figure 18 illustrates a system 1800 for a game plan for improved decision making, under an embodiment. As shown in Figure 18, the system 1800 can illustrate a cloud computing environment in which data, applications, services, and other application resources are stored and distributed through a shared data center and appear as a single access point for users. The system 1800 can also represent any other type of distributed computer network environment in which a server controls the storage and distribution of application resources and services for various client users.
[0152] In one embodiment, system 1800 represents a cloud computing system including a first client 1802, a second client 1804, a third client 1806, and a fourth client 1808, and a server 1810, a storage array 1812, and a cloud tier 1814, which may be provided by a hosting company. The storage array 1812 may include a first disk 1816, a second disk 1818, and a third disk 1820. The clients 1802-1808, the server 1810, the storage array 1812, and the cloud tier 1814 communicate over a network 1822.
[0153] 18 illustrates a first client 1802 as a laptop computer 1802, a second client 1804 as a personal computer 1804, a third client 1806 as a smartphone 1806, and a fourth client 1808 as a server 1808, although each of the clients 1802-1808 can be any type of computer. Although FIG. 18 illustrates a system 1800 with four clients 1802-1808, one server 1810, one storage array 1812, one cloud tier 1814, three disks 1816-1820, and one network 1822, the system 1800 can include any number of clients 1802-1808, any number of servers 1810, any number of storage arrays 1812, any number of cloud tiers 1814, any number of disks 1816-1820, and any number of networks 1822. Each of the clients 1802-1808 and the server 1810 can be substantially similar to the system 1900 shown in FIG. 19 and described below.
[0154] The server 1810 includes a Game Planner application 1824 that can provide, execute, and manage game plans for improved decision making. Although FIG. 18 shows one Game Planner application 1824 residing entirely on the server 1810, any number of Game Planner applications 1824 can be partially or completely residing on the server 1810, on another server not shown in FIG. 18, on the cloud tier 1814, on disks 1816-1820, and on the clients 1802-1808, in any combination. When executing the Game Planner application 1824, the server 1810 may be referred to as a Game Planner system 1810.
[0155] An exemplary hardware device in which the subject matter may be implemented is described. Those skilled in the art will appreciate that the elements shown in FIG. 19 may vary depending on the implementation of the system. Referring to FIG. 19, an exemplary system for implementing the subject matter disclosed herein includes a hardware device 1900 including a processing unit 1902, a memory 1904, a storage 1906, a data entry module 1908, a display adapter 1910, a communication interface 1912, and a bus 1914 coupling the elements 1904-1912 to the processing unit 1902.
[0156] The bus 1914 may include any type of bus architecture. For example, the bus 1914 may include a memory bus, a peripheral bus, a local bus, etc. The processing unit 1902 is an instruction execution machine, apparatus, or device and may include a microprocessor, a digital signal processor, a graphic processing unit, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), etc. The processing unit 1902 may be configured to execute program instructions stored in the memory 1904 and / or storage 1906 and / or received via the data entry module 1908.
[0157] The memory 1904 may include a read only memory (ROM) 1916 and a random access memory (RAM) 1918. The memory 1904 may be configured to store program instructions and data during operation of the device 1900. In various embodiments, the memory 1904 may include any of a wide variety of memory technologies, such as static random access memory (SRAM) or dynamic RAM (DRAM), including variations such as dual data rate synchronous DRAM (DDR SDRAM), error correction code synchronous DRAM (ECC SDRAM), or RAMBUS DRAM (RDRAM). The memory 1904 may also include non-volatile memory technologies, such as non-volatile flash RAM (NVRAM) or ROM. It is contemplated that in some embodiments, the memory 1904 may include a combination of the above technologies, as well as other technologies not specifically mentioned. When the subject matter is implemented in a computer system, a basic input / output system (BIOS) 1920, containing the basic routines that help to transfer information between elements within the computer system, such as during start-up, is stored in the ROM 1916.
[0158] Storage 1906 may include a flash memory data storage device for reading from and writing to flash memory, a hard disk drive for reading from and writing to a hard disk, a magnetic disk drive for reading from and writing to a removable magnetic disk, and / or an optical disk drive for reading from and writing to a removable optical disk, such as a CD ROM, DVD or other optical media. The drives and their associated computer-readable media provide non-volatile storage of computer-readable instructions, data structures, program modules, and other data for the hardware device 1900.
[0159] It should be noted that the methods described herein may be embodied in executable instructions stored on a computer-readable medium for use by or in connection with an instruction execution machine, apparatus, or device, such as a computer-based or processor-containing machine, apparatus, or device. Those skilled in the art will appreciate that for some embodiments, other types of computer-readable media capable of storing data accessible by a computer, such as magnetic cassettes, flash memory cards, digital video disks, Bernoulli cartridges, RAM, ROM, etc., may also be used in the exemplary operating environment. As used herein, "computer-readable medium" includes one or more of any suitable medium for storing executable instructions of a computer program in one or more of electrical, magnetic, optical, and electromagnetic formats such that an instruction execution machine, system, apparatus, or device can read (or fetch) the instructions from the computer-readable medium and execute the instructions to perform the methods described. A non-exhaustive list of conventional exemplary computer readable media includes portable computer diskettes, RAM, ROM, erasable programmable read-only memory (EPROM or flash memory), and optical storage devices including portable compact discs (CDs), portable digital video discs (DVDs), high definition DVDs (HD-DVD™), Blu-ray discs, and the like.
[0160] A number of program modules, including an operating system 1922, one or more application programs 1924, program data 1926, and other program modules 1928, may be stored in the storage 1906, the ROM 1916, or the RAM 1918. A user may enter commands and information into the hardware device 1900 via a data entry module 1908. The data entry module 1908 may include mechanisms such as a keyboard, a touch screen, a pointing device, and the like. Other external input devices (not shown) are connected to the hardware device 1900 via an external data entry interface 1930. By way of example and not limitation, the external input devices may include a microphone, a joystick, a game pad, a satellite dish, a scanner, and the like. In some embodiments, the external input devices may include a video or audio input device, such as a video camera, a still camera, and the like. The data entry module 1908 may be configured to receive input from one or more users of the device 1900 and transmit such input to the processing unit 1902 and / or the memory 1904 via the bus 1914.
[0161] A display 1932 is also connected to the bus 1914 via a display adapter 1910. The display 1932 can be configured to display the output of the device 1900 to one or more users. In some embodiments, a device such as a touch screen, for example, can function as both the data entry module 1908 and the display 1932. An external display device may also be connected to the bus 1914 via an external display interface 1934. Other peripheral output devices (not shown), such as speakers or printers, may also be connected to the hardware device 1900.
[0162] The hardware device 1900 can operate in a networked environment using logical connections to one or more remote nodes (not shown) via the communication interface 1912. The remote node can be another computer, a server, a router, a peer device, or other common network node, and typically includes many or all of the elements previously described in connection with the hardware device 1900. The communication interface 1912 can interface with wireless and / or wired networks. Examples of wireless networks include, for example, BLUETOOTH networks, wireless personal area networks, wireless 802.11 local area networks (LANs), and / or wireless telephone networks (e.g., cellular, PCS, or GSM networks). Examples of wired networks include, for example, LANs, fiber optic networks, wired personal area networks, telephone networks, and / or wide area networks (WANs). Such networking environments are commonplace in intranets, the Internet, offices, enterprise-wide computer networks, and the like. In some embodiments, the communication interface 1912 can include logic configured to support direct memory access (DMA) transfers between the memory 1904 and other devices.
[0163] In a networked environment, program modules depicted relative to the hardware device 1900, or portions thereof, may be stored in a remote storage device, such as a server, for example. It will be appreciated that other hardware and / or software for establishing communications links between the hardware device 1900 and other devices may also be used.
[0164] It should be understood that the configuration of the hardware device 1900 shown in FIG. 19 is just one possible embodiment, and that other configurations are possible. It should also be understood that the various system components (and means) defined in the claims, described below, and illustrated in the various block diagrams represent logical components configured to perform the functions described herein. For example, one or more of these system components (and means) may be realized, in whole or in part, by at least some of the components illustrated in the arrangement of the hardware device 1900.
[0165] Also, at least one of these components may be implemented, at least in part, as electronic hardware components to form a machine, while other components may be implemented in software, hardware, or a combination of software and hardware. More particularly, at least one component defined by the claims may be implemented, at least in part, as electronic hardware components, such as an instruction-executing machine (e.g., a processor-based or processor-containing machine), and / or as a dedicated circuit or circuit portion (e.g., discrete logic gates interconnected to perform a dedicated function) such as that shown in FIG.
[0166] Other components may be implemented in software, hardware, or a combination of software and hardware. Moreover, some or all of these other components may be combined, some may be omitted entirely, and components may be added, while achieving the functionality described herein. Thus, the subject matter described herein may be embodied in many different variations, and all such variations are contemplated to be within the scope of the claims.
[0167] In the above description, unless otherwise indicated, the subject matter has been described with reference to symbolic representations of acts or operations performed by one or more devices. Thus, while such acts and operations are described as being performed by a computer in some cases, it should be understood that they include manipulation by a processing unit of data in a structured form. This manipulation transforms the data or maintains the data in locations within the memory system of the computer, reconfiguring or otherwise altering the operation of the device in a manner well understood by those skilled in the art. The data structures in which the data is maintained are physical locations of memory that have certain characteristics defined by the format of the data. However, while the subject matter has been described in a certain context, this is not meant to be limiting, and those skilled in the art will appreciate that some of the acts and operations described below may also be implemented in hardware.
[0168] To facilitate understanding of the subject matter described above, many aspects are described in terms of sequences of acts. At least one of these aspects defined by the claims is performed by electronic hardware components. For example, it will be recognized that various acts can be performed by dedicated circuitry or circuitry, by program instructions executed by one or more processors, or by a combination of both. The description of any sequence of acts herein does not imply that the execution of the sequence must follow the particular order described. All methods described herein can be performed in any suitable order unless otherwise indicated herein or clearly contradicted by context.
[0169] Although one or more embodiments have been described in terms of specific embodiments by way of example, it is to be understood that the one or more embodiments are not limited to the disclosed embodiments. On the contrary, it is intended to cover various modifications and similar arrangements that will be apparent to those skilled in the art. Therefore, the scope of the appended claims should be accorded the broadest interpretation so as to encompass all such modifications and similar arrangements. < / enter> < / tab> < / tab> < / tab>
Claims
1. 1. A system for improved decision making, comprising: one or more processors; a non-transitory computer-readable medium having a plurality of instructions stored thereon; The instructions, when executed, cause the one or more processors to: extracting a first set of structured data from first content in response to a request for decision options, the first content being copied by the user from results of at least one of a user searching or filtering on a first third-party web data source identified within the interactive document; inserting the first set of structured data into a first data structure within the interactive document; extracting a second set of structured data from second content, the second content being copied by the user from results of at least one of searching or filtering by the user on a second third-party web data source identified within the interactive document; inserting the second set of structured data into a second data structure within the interactive document; inserting a combined set of structured data, the combined set of structured data being the first set of structured data and the second set of structured data, into one of the first data structure, the second data structure, or a third data structure within the interactive document; identifying candidate decision alternatives in the combined set of structured data in response to a first input entered by a user; determining, in response to a second input entered by a user, for each candidate an overall score corresponding to the candidate based on applying at least a first weight to a first score corresponding to a first criterion and a second weight to a second score corresponding to a second criterion; locking a ranking of at least one of the candidates based on a user selection of the at least one candidate in the combined set of structured data; outputting a set of ranked candidates as the decision-making options, ranked based at least on corresponding overall scores, wherein a ranking of at least one of the locked candidates is maintained within the set of ranked candidates; Execute system.
2. The system of claim 1 , wherein at least one of the first third-party web data source and the second third-party web data source comprises at least one of a website, a data file, a data feed, a live web service, or a web crawler.
3. 10. The system of claim 1, wherein extracting includes removing structured data from the content copied by the user, rather than removing all of the raw HyperText Markup Language (HTML) text.
4. The system of claim 1 , wherein the first input entered by a user includes at least one of a sort command, a filter command, or a search command.
5. 2. The system of claim 1, wherein the first criterion includes a first sub-criterion and a second sub-criterion, and the first weight applied to the first score is based on a first sub-criterion weight applied to a first sub-criterion score corresponding to the first sub-criterion and a second sub-criterion weight applied to a second sub-criterion score corresponding to the second sub-criterion.
6. 2. The system of claim 1, wherein the instructions, when executed, further cause the one or more processors to: allow a user to modify the set of ranked candidates based on at least one preference, the at least one preference being input by a user and corresponding to at least one candidate.
7. 2. The system of claim 1, wherein the instructions, when executed, further cause the one or more processors to: allow a user to modify the set of ranked candidates based on at least one score, the at least one score being determined by at least one other user and corresponding to at least one candidate.
8. 1. A computer-implemented method for improved decision making, comprising: extracting a first set of structured data from first content in response to a request for decision options, the first content being copied by the user from results of at least one of a user searching or filtering on a first third-party web data source identified within the interactive document; inserting the first set of structured data into a first data structure within the interactive document; extracting a second set of structured data from second content, the second content being copied by the user from results of at least one of searching or filtering by the user on a second third-party web data source identified within the interactive document; inserting the second set of structured data into a second data structure within the interactive document; inserting a combined set of structured data, the combined set of structured data being the first set of structured data and the second set of structured data, into one of the first data structure, the second data structure, or a third data structure within the interactive document; identifying candidate decision alternatives in the combined set of structured data in response to a first input entered by a user; determining, in response to a second input entered by a user, for each candidate an overall score corresponding to the candidate based on applying at least a first weight to a first score corresponding to a first criterion and a second weight to a second score corresponding to a second criterion; locking a ranking of at least one of the candidates based on a user selection of the at least one candidate in the combined set of structured data; outputting a set of ranked candidates as the decision-making options, ranked based at least on corresponding overall scores, wherein a ranking of at least one of the locked candidates is maintained within the set of ranked candidates; 11. A computer-implemented method comprising:
9. 9. The computer-implemented method of claim 8, wherein at least one of the first third-party web data source and the second third-party web data source comprises at least one of a website, a data file, a data feed, a live web service, or a web crawler.
10. 10. The computer-implemented method of claim 8, wherein extracting includes removing associated semantic records from the content copied by the user rather than removing raw HyperText Markup Language (HTML) text.
11. The computer-implemented method of claim 8 , wherein the first input entered by the user includes at least one of a sword command, a filter command, or a search command.
12. 9. The computer-implemented method of claim 8, wherein the criteria include user-scored, hierarchically weighted decision criteria, the decision criteria including: a first criterion corresponding to a first criterion weight, the first criterion including a first sub-criterion corresponding to a first sub-criterion weight and a second sub-criterion corresponding to a second sub-criterion weight; and a second criterion corresponding to a second criterion weight.
13. 10. The computer-implemented method of claim 8, further comprising: allowing a user to modify the set of ranked candidates based on at least one preference, the at least one preference being input by a user and corresponding to at least one candidate.
14. 10. The computer-implemented method of claim 8, further comprising: allowing a user to modify the set of ranked candidates based on at least one score, the at least one score being determined by at least one other user and corresponding to at least one candidate.
15. 1. A computer program product comprising a non-transitory computer-readable medium having computer-readable program code embodied thereon for execution by one or more processors, the program code comprising: extracting a first set of structured data from first content in response to a request for decision options, the first content being copied by the user from results of at least one of a user searching or filtering on a first third-party web data source identified within the interactive document; inserting the first set of structured data into a first data structure within the interactive document; extracting a second set of structured data from second content, the second content being copied by the user from results of at least one of searching or filtering by the user on a second third-party web data source identified within the interactive document; inserting the second set of structured data into a second data structure within the interactive document; inserting a combined set of structured data, the combined set of structured data being the first set of structured data and the second set of structured data, into one of the first data structure, the second data structure, or a third data structure within the interactive document; identifying candidate decision alternatives in the combined set of structured data in response to a first input entered by a user; determining, in response to a second input entered by a user, for each candidate an overall score corresponding to the candidate based on applying at least a first weight to a first score corresponding to a first criterion and a second weight to a second score corresponding to a second criterion; locking a ranking of at least one of the candidates based on a user selection of the at least one candidate in the combined set of structured data; outputting a set of ranked candidates as the decision-making options, ranked based at least on corresponding overall scores, wherein a ranking of at least one of the locked candidates is maintained within the set of ranked candidates; A computer program product comprising instructions for performing
16. At least one of the first third-party web data source and the second third-party web data source includes at least one of a website, a data file, a data feed, a live web service, or a web crawler, and extracting includes removing associated semantic records from the content copied by the user rather than removing raw HyperText Markup Language (HTML) text.
16. A computer program product according to claim 15.
17. 16. The computer program product of claim 15, wherein the first input entered by the user includes at least one of a sort command, a filter command, or a search command.
18. 16. The computer program product of claim 15, wherein the criteria include user-scored, hierarchically weighted decision criteria, the decision criteria including: a first criterion corresponding to a first criterion weight, the first criterion including a first sub-criterion corresponding to a first sub-criterion weight and a second sub-criterion corresponding to a second sub-criterion weight; and a second criterion corresponding to a second criterion weight.
19. 16. The computer program product of claim 15, wherein the program code further comprises instructions for enabling a user to modify the set of ranked candidates based on at least one preference, the at least one preference being input by a user and corresponding to at least one candidate.
20. 16. The computer program product of claim 15, wherein the program code further comprises instructions for enabling a user to modify the set of ranked candidates based on at least one score, the at least one score being determined by at least one other user and corresponding to at least one candidate.