Personalized event integration robot
By integrating and prioritizing event data structures in electronic calendars using machine learning computer models in data processing systems, the problem of time-consuming and high error rates of manual cross-reference and conflict resolution when managing multiple electronic calendars in the prior art is solved, and efficient and accurate event management is achieved.
Patent Information
- Application Number
- CN202411409455.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-10-11
- Filing Date
- 2024-10-10
- Publication Date
- 2025-04-11
AI Technical Summary
Prior art requires manual cross-reference scheduling and conflict resolution when managing multiple electronic calendars, resulting in time-consuming and error-prone.
Provides a method and system to integrate event data structures in electronic calendars in a data processing system using machine learning computer models. The method includes receiving event data structures from event resources, extracting features, and classifying event data structures through machine learning models, merging duplicate event data structures, and prioritizing conflicting event data structures.
Achieve seamless event integration, reduces the time and error rate of manual operations, and improves the efficiency and accuracy of event management.
Smart Images

Figure CN119809589A_ABST
Abstract
Description
Technical Field
[0001] The present application generally relates to an improved data processing apparatus and method, and more particularly to an improved computing tool and improved computing tool operation / functionality for providing a personalized event integration robot (PECB) for seamless event integration and efficient planning and execution. Background Art
[0002] Event management often requires the management of multiple different calendars, which may include both physical and electronic calendars. The management of multiple calendars involves manual cross-referencing of schedules and manual conflict resolution, which is a time-consuming process and prone to errors due to the limitations of human mental capabilities. That is, it is difficult for a person to keep various events and information about each event, etc. in their head with any sense of order and arrangement, especially when such events and information may be maintained in different sources (e.g., different calendars), and the different calendars may not store the same events. Often information will be missed, conflicts between events represented in different calendars will not be identified, differences and / or conflicts in event information about events may not be easily identified and resolved, etc., even if a person attempts to perform manual cross-referencing and manual conflict resolution. Summary of the invention
[0003] This summary is provided to introduce some concepts in a simplified form that are further described in the detailed description herein. This summary is not intended to identify key factors or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
[0004] In one illustrative embodiment, a method for integrating event data structures in an electronic calendar in a data processing system is provided. The method includes receiving an event data structure of an event from an event resource, and extracting features from the event data structure and at least one other event data structure having an overlapping time position in the electronic calendar. The method also includes applying at least one first machine learning computer model to the extracted features to classify the event data structure as to whether the event data structure is a duplicate of at least one other event data structure. In addition, the method includes rendering at least one integrated event data structure corresponding to the event data structure and at least one other event data structure in the electronic calendar based on the classification of the event data structure. Rendering at least one integrated event data structure includes: in response to the classification indicating that the event data structure is a duplicate of at least one other event data structure, merging the event data structure with the at least one other event data structure to generate at least one integrated event data structure.
[0005] In other illustrative embodiments, a computer program product is provided that includes a computer usable or readable medium having a computer readable program. When executed on a computing device, the computer readable program causes the computing device to perform various and combinations of the operations outlined above with respect to the method illustrative embodiment.
[0006] In yet another illustrative embodiment, a system / apparatus is provided. The system / apparatus may include one or more processors and a memory coupled to the one or more processors. The memory may include instructions that, when executed by the one or more processors, cause the one or more processors to perform various operations and combinations of operations in the operations outlined above with respect to the method illustrative embodiment.
[0007] These and other features and advantages of the present invention will be described in the following detailed description of exemplary embodiments of the present invention or will become apparent to those of ordinary skill in the art in view of the following detailed description of exemplary embodiments of the present invention. BRIEF DESCRIPTION OF THE DRAWINGS
[0008] The invention, together with the preferred mode of use and further objects and advantages thereof, will be best understood by reference to the following detailed description of illustrative embodiments when read in conjunction with the accompanying drawings in which:
[0009] Figure 1 is an example diagram of an electronic calendar display showing representations of duplicate and conflicting events;
[0010] Figure 2 is an exemplary diagram of a distributed data processing system environment in which aspects of the illustrative embodiments may be implemented and in which at least some of the computer code involved in performing the methods of the present invention may be executed;
[0011] Figure 3 is an example block diagram illustrating major operational components of a Personalized Event Integration Bot (PECB) framework according to one illustrative embodiment;
[0012] Figure 4 is an example flow chart illustrating the operation and interaction of components of a PECB framework according to one illustrative embodiment;
[0013] Figure 5 is an example diagram of an event data structure in which duplicate events exist and a corresponding merged event data structure according to an illustrative embodiment;
[0014] Figure 6 is an example diagram of an event data structure and a prioritized event list layout in which conflicting events exist according to one illustrative embodiment; and
[0015] Figure 7is a flow chart outlining the overall operation of a personalized event integration bot according to one illustrative embodiment. DETAILED DESCRIPTION
[0016] The illustrative embodiments provide an improved computing tool and improved computing tool operations / functionality for providing a personalized event consolidation robot (PECB) for seamless event integration and efficient planning and execution. The "bot" in the illustrative embodiments is an artificial intelligence (AI) computing tool that automatically operates on event data structures that may exist in the same or different event information data sources (e.g., electronic calendars, etc.), and applies AI computer models to the event data structures to perform event consolidation, which includes event cross-referencing, event conflict resolution, and other event management operations, as described in more detail below.
[0017] The following description provides examples of embodiments of the present disclosure, and variations and substitutions may be made in other embodiments.Several examples will now be provided to further illustrate various aspects of the present disclosure.
[0018] Example 1: A method for integrating event data structures in an electronic calendar in a data processing system is provided. The method includes receiving an event data structure of an event from an event resource. The method also includes extracting features from the event data structure and at least one other event data structure having overlapping time positions in the electronic calendar. The method also includes applying at least one first machine learning computer model to the extracted features to classify the event data structure as to whether the event data structure is a duplication of at least one other event data structure. In addition, the method includes rendering at least one integrated event data structure corresponding to the event data structure and at least one other event data structure in the electronic calendar based on the classification of the event data structure. The method may also include rendering at least one integrated event data structure including, in response to the classification indicating that the event data structure is a duplication of at least one other event data structure, merging the event data structure with at least one other event data structure to generate at least one integrated event data structure.
[0019] The above restrictions advantageously enable the integration of event data structures that may duplicate or conflict with each other, which allows the integration of event data structures from various different event data sources, minimizing duplicate or conflicting representations in graphical user interface outputs (such as electronic calendar outputs). The resulting graphical user interface output has fewer confusing elements, making the graphical user interface more user-friendly.
[0020] Example 2: According to the limitations of any of Examples 1 and 3-16, wherein rendering at least one integrated event data structure includes: in response to a classification indicating that the event data structure is not a duplicate of at least one other event data structure, generating a relative priority score for the event data structure relative to the at least one other event data structure, and rendering the at least one integrated event data structure as a relative rendering of the event data structure and the at least one other event data structure depicting the relative priority scores. The above limitations advantageously provide automatic prioritization of conflicting event data structures relative to each other to help a user determine which conflicting events the user may wish to focus their attention on. This allows the user to determine which events are most important for the user to consider in the event that the user cannot attend or participate in every conflicting event.
[0021] Example 3: According to the limitations of any of Examples 1-2 and 4-16, generating a relative priority score for the event data structure includes: applying at least one second machine learning computer model to the extracted features to generate a priority score for the event data structure and at least one other event data structure. When events conflict with each other, the above limitations advantageously provide automatic intelligent determination of the priority of the events based on machine learning of features indicating priority. The automatic determination of priority alleviates the user from having to investigate the details of each conflicting event data structure to determine which events should have a higher priority than other events. The automatic machine learning computer model assists the user by providing recommendations regarding the priority that the user should apply to each conflicting event data structure.
[0022] Example 4: According to the limitation of any of Examples 1-3 and 5-16, wherein the at least one second machine learning computer model includes a second machine learning computer model that determines the purpose of the event data structure and the purpose of at least one other event data structure based on the extracted features, and wherein the relative priority score is based on the determined purpose of the event data structure and the purpose of at least one other event data structure. The above limitation advantageously can automatically and intelligently determine the priority of conflicting event data structures based on the purpose of the event. This helps the user determine what event data structure corresponds to the event that provides the highest impact for the purpose that is important to the user.
[0023] Example 5: According to the limitations of any one of Examples 1-4 and 6-16, the method further includes retrieving a user profile of a user associated with the electronic calendar, and wherein the user profile specifies one or more event resources to be integrated from a plurality of event resources and one or more types of event data structures to be integrated. In addition, the method further includes determining whether the event data structure of the event comes from an event resource that matches one or more event resources specified in the user profile. In response to receiving an event data structure from an event resource that matches one or more event resources, determining whether the type of the event data structure matches one or more types of event data structures to be integrated specified in the user profile. In response to the type of the event data structure matching one or more types of event data structures to be integrated, performing execution and rendering operations.
[0024] The above-described restrictions advantageously provide a mechanism by which a user can specify the source of an event data structure and the type of events that the user wishes to integrate. Thus, selective integration of event data structures is facilitated. Thus, when an event data structure is determined to be a duplicate or conflicting event data structure, the user can specify the specific event data structure source that the user wishes to process using the integration of the event data structure. In addition, the user can specify which types of events should have their event data structures processed for integration by integrating duplicate event data structures and / or prioritizing conflicting event data structures.
[0025] Example 6: According to the limitations of any of Examples 1-5 and 7-16, the method also includes training at least one first machine learning computer model on training data, the training data including existing samples of event data structures and ground truth classifications of the existing samples. The training includes, for each sample in the training data: processing the sample in the training data to generate a classification result, the classification result specifies whether the sample represents a duplicate event data structure or a conflicting data structure; comparing the classification result with the corresponding ground truth classification to determine the loss; and modifying the operating parameters of the at least one first machine learning computer model based on the determined loss. The above limitations advantageously provide automatic computer intelligence that is specifically trained through a machine learning process on specific event data structure samples to learn patterns of event data structure features that indicate specific types of classifications, and in particular whether the event data structures are duplicates of each other or conflicting event data structures. In this way, automatic classification of event data structures through specific machine learning is made possible.
[0026] Example 7: According to the limitations of any of Examples 1-6 and 8-16, wherein the sample is a captured instance of a previous manual integration of an event data structure by a user associated with an electronic calendar. The above limitations advantageously enable machine learning training to be performed based on actual user input to integrate the event data structure, and therefore, the machine learning is customized or specific to a particular user. That is, the sample on which the machine learning training is performed reflects the particular user's classification of the event data structure and its corresponding integration operation. This information is used as training data so that the resulting machine learning computer model reflects the user's classification and the resulting integration operation.
[0027] Example 8: According to the limitation of any one of Examples 1-7 and 9-16, the method also includes receiving user input to a user interface associated with the electronic calendar, wherein the user input specifies acceptance or rejection of at least one integrated event data structure, and dynamically updating the operating parameters of at least one first machine learning computer model based on the user input specifying acceptance or rejection of at least one integrated event data structure. The above limitation advantageously implements dynamic machine learning of the computer model when the user provides feedback via the user interface regarding the correctness or incorrectness of the results generated by the trained machine learning computer model. That is, the user's acceptance of at least one integrated event data structure indicates the correctness of the training of the machine learning computer model, and the rejection of at least one integrated event data structure indicates an incorrect result of the machine learning computer model. For example, the feedback can be used to adjust operating parameters, such as weights of nodes in the machine learning computer model. The weights can be adjusted with respect to the nodes that provide the greatest impact on the final result of the machine learning computer model, or the weights can be adjusted through other machine learning training operations (such as linear regression, etc.).
[0028] Example 9: According to the limitations of any of Examples 1-8 and 10-16, the method is performed in response to receiving user input to a human-computer interaction (HCI) environment of the data processing system and performing natural language processing on the user input, wherein the natural language processing determines the intent of the user input as being associated with event integration. The above limitations advantageously allow the user to interact with the HCI environment using natural language input, and the mechanisms of the illustrative embodiments can operate on these user inputs to determine whether to integrate the event data structure. Therefore, the mechanisms of the illustrative embodiments are configured to operate in conjunction with the natural language processing mechanisms of the HCI environment that are more user-friendly and natural for user interaction.
[0029] Example 10: According to the limitation of any of Examples 1-9 and 11-16, wherein the HCI environment is a chatbot application, and the user input is a natural language sentence input into the chatbot application, and wherein rendering at least one integrated event data structure also includes outputting a natural language response to the user input via the chatbot application. The above limitations advantageously allow the mechanisms of the illustrative embodiments to be integrated with natural language-based user interfaces (such as those of chatbots, etc.), where natural language responses are provided to the user. This helps to improve human-computer interaction with the user and make the user experience more user-friendly.
[0030] Example 11: According to the limitations of any one of Examples 1-10 and 12-16, wherein the extracted features include event title, event date, event time, event location, and event participants. The above limitations advantageously allow the determination of whether an event data structure is a duplication of another event data structure or a conflicting event data structure based on specific elements of the event data structure (i.e., event title, event date, event time, event location, and event participants). These elements are highly indicative of whether the event data structure is a duplicate or a conflict. However, the evaluation allows differences in these features, but in the case where the differences are not significant enough to indicate that the event data structures point to different events, the event data structure is still determined to be a duplicate.
[0031] Example 12: According to the limitations of any of Examples 1-11 and 13-16, wherein merging the event data structure with at least one other event data structure includes executing an integration strategy rule or algorithm that specifies logic for combining event descriptions, merging participant lists, and updating event attributes to accommodate attributes of the event data structure and at least one other event data structure. The above limitations advantageously allow different types of integration strategies to be specified for performing a particular type of integration of event data structures based on determination of event data structure duplication and / or conflicting event data structures.
[0032] Example 13: According to the limitations of any of Examples 1-12 and 14-16, wherein merging the event data structure with at least one other event data structure includes implementing an integration policy rule or algorithm that specifies logic for resolving conflicting attributes of the event data structure and at least one other event data structure. The above limitations advantageously allow the integration policy rules or algorithms to be defined and implemented based on the classification of event data structures as to whether they are duplicates or conflicting. The integration policy rules or algorithms can be implemented to automatically perform specific merge operations, taking into account differences in the data of the event data structures so that information in different event data structures is not lost due to the merge.
[0033] Example 14: A limitation according to any of Examples 1-13 and 15-16, wherein generating a relative priority score for the event data structure includes applying one or more user-specified priority criteria specified in a user profile of a user associated with the electronic calendar. The above limitations allow a user to customize the manner in which conflicting event data structures are prioritized relative to each other. In this manner, a user can specify which types of events are more important to the user, wherein these customizations are automatically applied by the mechanisms of the illustrative embodiments when prioritizing the event data structures relative to each other.
[0034] Example 15: According to the limitations of any of Examples 1-14 and 16, wherein one or more user-specified priority criteria include at least one enforceable rule, at least one enforceable rule specifies a condition and a modification of the priority score of the corresponding event data structure in response to the condition being satisfied, and wherein the condition is based on an event participant accepting an invitation associated with the corresponding event data structure. The above limitations advantageously allow a user to specify how to modify the priority of an event data structure based on other participant responses to the event invitation. That is, if an event is not actively responded to by other participants, the event may have a lower priority to the user than other events with relatively high participant active responses. Therefore, priority sorting can be initially performed based on various attributes of the event data structure, and can then be modified based on the participant's response to the event invitation, thereby dynamically updating the priority of the event data structure.
[0035] Example 16: According to the limitations of any of Examples 1-15, wherein rendering at least one integrated event data structure also includes generating a reminder or notification of at least one integrated event data structure based on reminder or notification settings associated with the event data structure and at least one other event data structure. The above limitations advantageously allow notifications to be generated for the integrated event data structure based on notifications associated with the integrated event data structure. In this way, details of the notifications of each event data structure can be reflected in the notifications associated with the integrated event data structure.
[0036] Example 17: A computer program product, comprising a computer-readable storage medium having a computer-readable program stored therein, wherein the computer-readable program, when executed on a computing device, causes the computing device to implement a method according to any one of Examples 1-16. The above limitations advantageously enable a computer program product having program instructions to be configured to cause one or more processors to execute and achieve the advantages described with respect to Examples 1-16.
[0037] Example 18: An apparatus comprising at least one processor and at least one memory coupled to the at least one processor, wherein the at least one memory comprises instructions that, when executed by the at least one processor, cause the at least one processor to implement a method according to any one of Examples 1-16. The above limitations advantageously enable an apparatus comprising one or more processors to perform and achieve the advantages described with respect to Examples 1-16.
[0038] Example 19: A method for integrating event data structures in an electronic calendar in a data processing system is provided. The method includes receiving an event data structure of an event from an event resource. The method also includes extracting features from the event data structure and at least one other event data structure having an overlapping time position in the electronic calendar. The method also includes subjecting the extracted features to at least one first machine learning computer model to classify the event data structure as to whether the event data structure is a duplicate of at least one other event data structure. In addition, the method includes rendering at least one integrated event data structure corresponding to the event data structure and the at least one other event data structure in the electronic calendar based on the classification of the event data structure. The method may also include rendering at least one integrated event data structure including: in response to the classification indicating that the event data structure is a duplicate of at least one other event data structure, merging the event data structure with the at least one other event data structure to generate at least one integrated event data structure. Rendering at least one integrated event data structure includes: in response to the classification indicating that the event data structure is not a duplicate of at least one other event data structure, generating a relative priority score of the event data structure relative to the at least one other event data structure, and rendering the at least one integrated event data structure as a relative rendering depicting the relative priority scores of the event data structure and the at least one other event data structure.
[0039] The above restrictions advantageously achieve the benefits described above with respect to Examples 1 and 2. The above restrictions advantageously provide an automated computer mechanism that integrates event data structures based on the classification of event data structures that duplicate or conflict with each other. In this way, a graphical user interface representation of event data structures from various event data structure sources can be presented with minimal duplication and conflict. This improves the usability of the graphical user interface and reduces the manual effort of trying and resolving duplication and conflicts between event data structures from various sources.
[0040] To illustrate the advantages of the various illustrative embodiments, it should be understood that it has been recognized that while electronic calendars have helped organize information about events, they have limited event management capabilities because they only display information and do not have the appropriate intelligence for performing event management operations. Event management is a dynamic and multifaceted field involving the planning, organization, and execution of various types of events. Event management covers a wide range of events, from small social gatherings to large conferences, festivals, weddings, corporate events, etc. One goal of event management is to create a memorable and successful experience for attendees while achieving the goals set by the event organizers.
[0041] The practice of event management has evolved significantly over the past few years, influenced by societal changes, technological advances, and the growing demand for professionally organized events. Event management presents unique challenges, such as budget constraints, logistical complexities, ensuring attendee satisfaction, risk management, and adapting to changing trends. In view of these challenges, various event management computer tools have been developed to assist humans in creating, managing, and tracking events using electronic calendar applications. These event management computer tools may provide the ability to send electronic invitations to event participants, may manage the sending of invitations via e-mail and the processing of responses to such invitations, may provide the ability to electronically display a calendar on a computer display and event information organized and represented in an electronic calendar display, and so on. In some cases, these event management computer tools may even be capable of displaying such event information in a manner that can be used to identify potential conflicts between events (see discussion below). Figure 1 ). However, these event management computing tools do not include the intelligence to resolve such conflicts or prioritize events for a particular user in an automated manner. Furthermore, such event management computing tools do not include the intelligence to resolve such conflicts from multiple different event information data sources and determine whether and when to merge event entries.
[0042] For example, Figure 1 As shown, an electronic calendar application with an event management tool may allow multiple event entries in the electronic calendar for the same event, such as Figure 1 110 . For example, multiple parties may send calendar invitations for the same event through an electronic calendar application. Each of these will be displayed in a manner that they appear to conflict with each other, e.g., displayed side by side at the same day / time. If a user manually deletes one of these duplicate entries in the electronic calendar, the deletion action may trigger a “decline” response that is sent back to the user who sent the invitation to the event, erroneously indicating a decline of the event itself. As a result, confusion may occur on the part of the recipient of the decline response, as the recipient may interpret the decline response as a decline of the event, when in fact the user may be attending the event, but merely deleting the duplicate entry in their electronic calendar.
[0043] In other instances, such as Figure 1 As shown in 120, a user can receive invitations to events scheduled on the same day / time or overlapping days / times. Existing electronic calendar applications allow for events such as Figure 1 Such events are arranged and represented in the electronic calendar display shown. To solve this problem, the user needs to manually open each scheduled event and determine which event to attend. There is no ability in the prior art of electronic calendar applications to intelligently resolve conflicts in event entries, determine which events to prioritize, and determine which events to merge. In addition, there is no ability in the prior art of electronic calendar applications to perform subsequent actions to resolve these conflicts by removing / merging duplicate event entries, and to communicate with the source of event data based on the prioritization of conflicting events.
[0044] To address the limitations of existing electronic calendar applications and event management tools, illustrative embodiments provide improved computing tools and improved computing tool operations / functions, including a personalized event consolidation robot (PECB). The PECB includes a computer framework, a computer application, a data structure, and an artificial intelligence (AI) computer model that is specifically configured and trained to perform operations that automate and streamline the process of consolidating events across multiple event information data sources (e.g., electronic calendars, etc.). The PECB of the illustrative embodiment is used to actively merge duplicate event data structures for the same event into a single event data structure, intelligently prioritize different events that may conflict with each other based on the event data and the user's personal needs / preferences, and render event information in an electronic calendar display and event list based on the merging of the event data structures and the prioritization of the events. The resulting electronic calendar and event list can be interacted with by a user via a human-computer interface (HCI) environment, and user feedback on the correctness / incorrectness of the merging / prioritization can be obtained through the HCI, so that the training of the AI computer model can be dynamically updated based on user feedback.
[0045] The PECB of the illustrative embodiment provides computing tools and functions for the user to configure settings, such as which event information data sources to integrate, what types of events to integrate, event integration thresholds and criteria, settings for representing event information in graphical representations, and settings for event integration, merging, and prioritization. The PECB of the illustrative embodiment provides various configuration files and data structures for configuring various computing tools of the PECB framework and for specifying computer-implementable rules for implementing some operations of the PECB. The PECB of the illustrative embodiment also includes one or more machine learning computer models, i.e., AI computer models, such as neural networks (e.g., convolutional neural networks (CNNs), deep learning neural networks (DNNs), etc.), random forest computer models, decision tree computer models, etc., which are trained and operated on existing data samples (e.g., existing data samples of event data structures and corresponding merging / prioritization actions to be performed with these event data structures) to learn the user's merging and prioritization of these data samples, thereby learning how to predict or classify new data samples with respect to merging and prioritization.
[0046] The learning performed by one or more machine learning computer models can be used to implement various integration and prioritization strategies when performing event integration operations. For example, one or more machine learning computer models can operate on a new event data structure to identify duplicate events based on the similarity of features extracted from the event data structure. The identification of duplicate events can be used with a set of integration algorithms to determine which event data structure instance to maintain, and which event data structure instance to remove / merge into the selected event data structure instance, so as to integrate and remove duplicates from the event data structure. One or more machine learning computer models can also operate to identify conflicting event data structures, and evaluate and classify event data structures with respect to the event purpose of the event data structure. Similarly, these machine learning computer models can operate in conjunction with a set of prioritization algorithms, which operate to prioritize conflicting event data structures with respect to the event purpose of the conflicting event data structure. These machine learning computer models can undergo initial training based on training data, which includes a sample of the event data structure and the corresponding user-specified integration / prioritization of the event data structure. Thereafter, the training of the machine learning computer model can be dynamically updated based on user feedback on correctness / incorrectness and / or user-specified coverage of automatically determined integration / prioritization results.
[0047] The PECB computing tool and PECB operation / function of the illustrative embodiments solve the problems associated with existing electronic calendar applications and their event management tools by providing intelligent computing tools, implementing machine learning computer models and other computer intelligence to automatically perform event integration and prioritization when presenting conflicting event data structures from the same or different event information data sources. The conflicting event data structures can be for the same event (duplicate event data structures) or different events (conflicting event data structures with respect to time and / or location). The PECB computing tool is an improvement over existing event management tools in that, rather than being limited to displaying event information only in calendar form and leaving it to the user to decide whether to investigate duplicate and / or conflicting events, the illustrative embodiments specifically perform automatic machine learning and artificial intelligence based resolution of duplicate and / or conflicting events before presenting the rendering of event information to the user. Therefore, no user intervention is required to perform the resolution of duplicate and / or conflicting events. Although in some illustrative embodiments, user feedback may be requested in order to improve the machine learning training of the PECB computing tool, the operation of the PECB computing tool does not require such user feedback.
[0048] It should be understood that, utilizing the mechanism of the illustrative embodiment, the event data structure that is the subject of the integrated operation performed by the improved computing tool and improved computing tool function of the present invention can be obtained from multiple different event resources or source applications / computing systems. Each of these event resources can have their own formatting of event data that may be incompatible with each other. This incompatibility of event data structure from one event resource to another event resource makes it impossible for existing systems to easily determine whether the event from event resource A is the same event as the event from event resource B, or whether event A conflicts with event B. That is, because the format and content of the event data structure can vary and may be inconsistent with each other, for example, different calendar applications, for example, can use their own formats for various attributes of events (including date, time, title, description and file extension), so existing systems cannot distinguish which event data structures are for the same event or which event data structures represent potential conflicts, because each electronic calendar application and event management tool expects to see data structures formatted according to their specific encodings. For example, for the date of an event, the date format may vary across calendar applications, such as different formats of MM / DD / YYYY (e.g., 12 / 31 / 2023), DD / MM / YYYY (e.g., 31 / 12 / 2023), YYYY / MM / DD (e.g., 2023 / 12 / 31). The time format may vary with respect to whether a 12-hour clock or a 24-hour clock is utilized, the level of precision of the clock utilized, etc., such as a 12-hour clock with AM / PM (e.g., 03:30PM), a 24-hour clock (e.g., 15:30), a 24-hour clock including seconds (e.g., 15:30:45), etc. The length and format of the title may vary across calendar applications, and the length and format of the description or body text may differ across calendar applications, some of which allow rich text formatting, including lists, links, and attachments, while others may require a simple text description. The location, available options, and format of metadata for calendar events, which may specify, for example, location, participants, recurrence mode, and event category, may also vary across calendar applications. Thus, with the proliferation of various electronic calendar applications and event management tools from various sources (e.g., electronic calendars from IBM, Google, Samsung, Huawei, Microsoft, etc.), it becomes more difficult to integrate events across these various event resources.
[0049] The illustrative embodiments provide an automated AI-based machine learning model that is capable of identifying duplicate and conflicting event data structures from a variety of different event resources, regardless of the specific format of the particular event resource. The AI-based machine learning model looks for patterns of features in the event data structures based on specific training and learning performed by the AI-based machine learning model as a mechanism for classifying events with respect to whether they are duplicates or conflicting and with respect to the prioritization of events relative to each other. As a result, cross-compatibility of event data structures across multiple different event resources (e.g., different electronic calendar applications with different event data structure formats and content) is achieved through the mechanisms of the illustrative embodiments and the ability to integrate and prioritize such event data structures across various electronic calendar applications.
[0050] Before proceeding to discuss various aspects of the illustrative embodiments and the improved computer operations performed by the illustrative embodiments, it should first be understood that throughout the specification, the term "mechanism" will be used to refer to elements of the present invention that perform various operations, functions, etc. The term "mechanism" as used herein can be an implementation of a function or aspect of the illustrative embodiments in the form of a device, a process, or a computer program product. In the case of a process, the process is implemented by one or more devices, devices, computers, data processing systems, etc. In the case of a computer program product, the logic represented by the computer code or instructions embodied in or on the computer program product is implemented by one or more hardware devices to implement the functions associated with a specific "mechanism" or perform operations associated with a specific "mechanism". Therefore, the mechanisms described herein can be implemented as dedicated hardware, software implemented on hardware to thereby configure the hardware to implement the dedicated functions of the present invention that the hardware is not originally capable of performing, software instructions stored on a medium so that the instructions can be easily implemented by the hardware to thereby specifically configure the hardware to perform the functions and specific computer operations described herein, a process or method for performing a function, or any combination of the above.
[0051] This specification and claims may use the terms "one," "at least one," and "one or more" with respect to particular features and elements of the illustrative embodiments. It should be understood that these terms and phrases are intended to illustrate that there is at least one particular feature or element in a particular illustrative embodiment, but more than one may be present. That is, these terms / phrases are not intended to limit the specification or claims to the presence of a single feature / element or to require the presence of a plurality of such features / elements. Rather, these terms / phrases require only at least a single feature / element, wherein a plurality of such features / elements may be within the scope of the specification and claims.
[0052] In addition, it should be understood that the use of the term "engine", if used herein with respect to describing embodiments and features of the present invention, is not intended to limit any specific technical implementation for implementing and / or executing actions, steps, processes, etc. that can be attributed to the engine and / or performed by the engine, but is limited to the "engine" being implemented in computer technology, and its actions, steps, processes, etc. are not performed as mental processes or by manual effort, even if the engine can work in conjunction with manual input or can provide output for manual or mental consumption. The engine is implemented as one or more of software implemented on hardware, dedicated hardware and / or firmware, or any combination thereof, which is specifically configured to perform a specified function. The hardware may include, but is not limited to, the use of a processor in combination with appropriate software loaded or stored in a machine-readable memory and implemented by the processor, thereby specifically configuring the processor for a dedicated purpose including one or more functions of one or more embodiments of the present invention. In addition, unless otherwise specified, any name associated with a particular engine is for the purpose of convenient reference and is not intended to limit a particular implementation. In addition, any function attributed to an engine can be performed equally by multiple engines, incorporated into the functions of another engine of the same or different type and / or combined with the functions of another engine of the same or different type, or distributed on one or more engines of various configurations.
[0053] In addition, it should be understood that the following description uses a number of various examples of various elements of the illustrative embodiments to further illustrate example implementations of the illustrative embodiments and to help understand the mechanisms of the illustrative embodiments. These examples are intended to be non-limiting and are not an exhaustive list of various possibilities for implementing the mechanisms of the illustrative embodiments. In view of this specification, it will be apparent to one of ordinary skill in the art that many other alternative implementations of these various elements may be utilized in addition to or in place of the examples provided herein without departing from the spirit and scope of the present invention.
[0054] Various aspects of the present disclosure are described by narrative text, flow charts, block diagrams of computer systems, and / or block diagrams of machine logic included in computer program product (CPP) embodiments. With respect to any flow chart, depending on the technology involved, the operations may be performed in an order different from the order shown in a given flow chart. For example, again depending on the technology involved, two operations shown in consecutive flow chart blocks may be performed in reverse order, as a single integrated step, simultaneously, or in a manner that at least partially overlaps in time.
[0055] Computer program product embodiments ("CPP embodiments" or "CPP") are terms used in this disclosure to describe any collection of one or more storage media (also referred to as "media") collectively included in a collection of one or more storage devices that collectively include machine-readable code corresponding to instructions and / or data for performing the computer operations specified in a given CPP claim. A "storage device" is any tangible device that can retain and store instructions for use by a computer processor. Without limitation, a computer-readable storage medium may be an electronic storage medium, a magnetic storage medium, an optical storage medium, an electromagnetic storage medium, a semiconductor storage medium, a mechanical storage medium, or any suitable combination of the foregoing. Some known types of storage devices that include these media include: magnetic disks, hard disks, random access memories (RAM), read-only memories (ROM), erasable programmable read-only memories (EPROM or flash memory), static random access memories (SRAM), compact disk read-only memories (CD-ROM), digital versatile disks (DVD), memory sticks, floppy disks, mechanical encoding devices (such as punch cards or pits / ridges formed in a major surface of a disk), or any suitable combination of the foregoing. As the term is used in this disclosure, computer-readable storage media should not be construed as storage in the form of transient signals themselves, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides, light pulses through fiber-optic cables, electrical signals transmitted through wires, and / or other transmission media. As will be appreciated by those skilled in the art, data is typically moved at some occasional point in time during the normal operation of the storage device, such as during access, defragmentation, or garbage collection, but this does not make the storage device transient because the data is not transient when stored.
[0056] It should be understood that, for the sake of clarity, certain features of the present invention described in the context of separate embodiments may also be provided in combination in a single embodiment. On the contrary, for the sake of brevity, the various features of the present invention described in the context of a single embodiment may also be provided separately or in any suitable sub-combination.
[0057] The present invention may be a specially configured computing system configured with hardware and / or software that is itself specially configured to implement the specific mechanisms and functions described herein, a method implemented by a specially configured computing system, and / or a computer program product including software logic loaded into a computing system to specially configure the computing system to implement the mechanisms and functions described herein. Regardless of the system, method described as a computer program product, it should be understood that the illustrative embodiments described herein specifically relate to improved computing tools and methods implemented by the improved computing tools. In particular, the improved computing tools of the illustrative embodiments specifically provide a personalized event integration robot (PECB) framework with a PECB server component that operates with a PECB client component on one or more data processing systems. The improved computing tool implements mechanisms and functions such as identifying, evaluating, and modifying event information data structures from the same or different event information data sources to perform event management that requires integration of duplicate events and prioritization of conflicting events based on machine learning artificial intelligence computer model operations that cannot be actually performed by humans outside of or with the help of a technical environment (such as a mental process, etc.). The improved computing tool provides practical application of the method, at least in that the improved computing tool is capable of consolidating and prioritizing events in an electronic calendar-based computer system, thereby resolving duplicate and conflicting events, and presenting event information in a streamlined and more user-friendly manner than existing electronic calendar-based computer systems.
[0058] Figure 2 2 is an example diagram of a distributed data processing system environment in which aspects of the illustrative embodiments may be implemented and at least some of the computer codes involved in performing the methods of the present invention may be executed. That is, the computing environment 200 includes an example of an environment for executing at least some of the computer codes involved in performing the methods of the present invention, such as one or more components of a personalized event consolidation robot (PECB) 300. Thus, the computing environment 200 may include a PECB server and / or a PECB client. According to one or more illustrative embodiments, the PECB client 310 may be installed on a client computing device, such as in the form of an application or a plug-in to an existing electronic calendar application, and operates to monitor incoming events and send requests to the PECB server 320 to consolidate and prioritize events. The PECB server 320 may operate on a server computing device and may respond to PECB client 310 event consolidation / prioritization requests and return consolidated / prioritized events for rendering by the PECB client 310. It should be understood that in some illustrative embodiments, the PECB server 320 and the PECB client 310 may exist on the same computing device, and in other illustrative embodiments, they may be distributed to different computing devices.
[0059] In addition to the PECB 300, the computing environment 200 includes, for example, a computer 201, a wide area network (WAN) 202, an end-user device (EUD) 203, a remote server 204, a public cloud 205, and a private cloud 206. In this embodiment, the computer 201 includes a processor set 210 (including a processing circuit 220 and a cache 221), a communication structure 211, a volatile memory 212, a persistent storage device 213 (including an operating system 222 and the PECB 300, as described above), a peripheral device set 214 (including a user interface (UI), a device set 223, a storage device 224, and an Internet of Things (IoT) sensor set 225), and a network module 215. The remote server 204 includes a remote database 230. The public cloud 205 includes a gateway 240, a cloud orchestration module 241, a host physical machine set 242, a virtual machine set 243, and a container set 244.
[0060] Computer 201 may take the form of a desktop computer, laptop computer, tablet computer, smart phone, smart watch or other wearable computer, mainframe computer, quantum computer, or any other form of computer or mobile device now known or to be developed in the future that is capable of running programs, accessing a network, or querying a database (such as remote database 230). As is well understood in the field of computer technology, and depending on the technology, the execution of the computer-implemented method may be distributed among multiple computers and / or among multiple locations. On the other hand, in this presentation of computing environment 200, the detailed discussion focuses on a single computer (specifically, computer 201) to keep the presentation as simple as possible. Computer 201 may be located in the cloud, even if it is not in the cloud. Figure 2 On the other hand, except to any extent that may be indicated with certainty, computer 201 need not be in the cloud.
[0061] Processor set 210 includes one or more computer processors of any type known now or developed in the future. Processing circuit 220 can be distributed over multiple packages (e.g., multiple coordinated integrated circuit chips). Processing circuit 220 can implement multiple processor threads and / or multiple processor cores. Cache 221 is a memory located in (one or more) processor chip packages, and is generally used for data or code that should be available for rapid access by threads or cores running on processor set 210. Cache memory is generally organized into multiple levels according to relative proximity to the processing circuit. Alternatively, some or all of the caches for the processor set may be located "off chip". In some computing environments, processor set 210 may be designed to work with quantum bits and perform quantum computing.
[0062] Computer readable program instructions are typically loaded onto the computer 201 to cause the processor set 210 of the computer 201 to perform a series of operating steps to implement a computer-implemented method, such that the instructions so executed will instantiate the method specified in the flowchart and / or narrative description of the computer-implemented method included in this document (collectively, the "inventive method"). These computer readable program instructions are stored in various types of computer readable storage media, such as cache 221 and other storage media discussed below. The program instructions and associated data are accessed by the processor set 210 to control and direct the execution of the inventive method. In the computing environment 200, at least some of the instructions for performing the inventive method may be stored in the PECB 300 in the persistent storage device 213.
[0063] Communications fabric 211 is the signaling pathways that allow the various components of computer 201 to communicate with each other. Typically, the fabric is made of switches and conductive pathways, such as those that make up a bus, a bridge, physical input / output ports, etc. Other types of signal communication pathways may be used, such as fiber optic communication pathways and / or wireless communication pathways.
[0064] The volatile memory 212 is any type of volatile memory now known or developed in the future. Examples include dynamic type random access memory (RAM) or static type RAM. Typically, volatile memory is characterized by random access, but this is not required unless explicitly indicated. In the computer 201, the volatile memory 212 is located in a single package and is internal to the computer 201, but alternatively or additionally, the volatile memory can be distributed over multiple packages and / or located externally relative to the computer 201.
[0065] The persistent storage device 213 is any form of non-volatile storage device for a computer now known or to be developed in the future. The non-volatility of the storage device means that the stored data is maintained regardless of whether power is supplied to the computer 201 and / or directly to the persistent storage device 213. The persistent storage device 213 can be a read-only memory (ROM), but typically at least a portion of the persistent storage device allows data to be written, deleted, and rewritten. Some common forms of persistent storage devices include magnetic disks and solid-state storage devices. The operating system 222 can take several forms, such as various known proprietary operating systems or open source portable operating system interface type operating systems using a kernel. The code included in the PECB 300 typically includes at least some of the computer code involved in executing the method of the present invention.
[0066] The peripheral device set 214 includes a peripheral device set of the computer 201. The data communication connection between the peripheral device and other components of the computer 201 can be implemented in various ways, such as a Bluetooth connection, a near field communication (NFC) connection, a connection by a cable (such as a universal serial bus (USB) type cable), a plug-in type connection (e.g., a secure digital (SD) card), a connection through a local area network, and even a connection through a wide area network such as the Internet. In various embodiments, the UI device set 223 may include components such as display screens, speakers, microphones, wearable devices (such as goggles and smart watches), keyboards, mice, printers, touchpads, game controllers, and tactile devices. The storage device 224 is an external storage device (such as an external hard drive) or a pluggable storage device (such as an SD card). The storage device 224 can be persistent and / or volatile. In some embodiments, the storage device 224 can take the form of a quantum computing storage device for storing data in the form of quantum bits. In embodiments where computer 201 needs to have a large amount of storage (e.g., computer 201 locally stores and manages a large database), the storage may be provided by a peripheral storage device designed to store very large amounts of data, such as a storage area network (SAN) shared by multiple geographically distributed computers. IoT sensor set 225 consists of sensors that can be used in IoT applications. For example, one sensor may be a thermometer, while another sensor may be a motion detector.
[0067] The network module 215 is a collection of computer software, hardware, and firmware that allows the computer 201 to communicate with other computers via the WAN 202. The network module 215 may include hardware such as a modem or a Wi-Fi signal transceiver, software for packetizing and / or depacketizing data for communication network transmission, and / or web browser software for transmitting data via the Internet. In some embodiments, the network control function and the network forwarding function of the network module 215 are executed on the same physical hardware device. In other embodiments (e.g., embodiments utilizing software defined networks (SDN)), the control function and the forwarding function of the network module 215 are executed on physically separated devices, so that the control function manages several different network hardware devices. Computer-readable program instructions for executing the method of the present invention can generally be downloaded to the computer 201 from an external computer or an external storage device via a network adapter card or a network interface included in the network module 215.
[0068] WAN 202 is any wide area network (e.g., the Internet) capable of transmitting computer data over non-local distances by any technology now known or to be developed in the future for transmitting computer data. In some embodiments, the WAN may be replaced and / or supplemented by local area networks (LANs) designed to transmit data between devices located in a local area (such as a Wi-Fi network). WANs and / or LANs typically include computer hardware such as copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers, and edge servers.
[0069] End-user device (EUD) 203 is any computer system used and controlled by an end-user (e.g., a customer of an enterprise operating computer 201), and may take any of the forms discussed above in connection with computer 201. EUD 203 typically receives helpful and useful data from the operation of computer 201. For example, in the hypothetical case where computer 201 is designed to provide recommendations to an end-user, the recommendations would typically be transmitted from network module 215 of computer 201 to EUD 203 via WAN 202. In this manner, EUD 203 may display or otherwise present the recommendations to the end-user. In some embodiments, EUD 203 may be a client device, such as a thin client, a heavy client, a mainframe computer, a desktop computer, etc.
[0070] Remote server 204 is any computer system that provides at least some data and / or functionality to computer 201. Remote server 204 may be controlled and used by the same entity that operates computer 201. Remote server 204 represents a machine(s) that collects and stores helpful and useful data for use by other computers, such as computer 201. For example, in the hypothetical case where computer 201 is designed and programmed to provide recommendations based on historical data, then that historical data may be provided to computer 201 from remote database 230 of remote server 204.
[0071] The public cloud 205 is any computer system available to multiple entities that provides on-demand availability of computer system resources and / or other computer capabilities, particularly data storage (cloud storage) and computing capabilities, without direct active management by users. Cloud computing typically utilizes the sharing of resources to achieve consistency and economies of scale. The direct and active management of the computing resources of the public cloud 205 is performed by computer hardware and / or software of the cloud orchestration module 241. The computing resources provided by the public cloud 205 are typically implemented by virtual computing environments running on various computers that constitute the host physical machine set 242, which is the totality of physical computers in and / or available for the public cloud 205. The virtual computing environment (VCE) is typically in the form of a virtual machine from a virtual machine set 243 and / or a container from a container set 244. It should be understood that these VCEs can be stored as images and can be transferred between various physical machine hosts as images or after instantiation of the VCE. The cloud orchestration module 241 manages the transmission and storage of images, deploys new instantiations of VCEs, and manages active instantiations of VCE deployments. Gateway 240 is a collection of computer software, hardware, and firmware that allows public cloud 205 to communicate over WAN 202 .
[0072] Some further explanation of virtualized computing environments (VCEs) will now be provided. A VCE can be stored as an "image". A new active instance of a VCE can be instantiated from an image. Two common types of VCEs are virtual machines and containers. Containers are VCEs that use operating system-level virtualization. This refers to an operating system feature in which the kernel allows the existence of multiple isolated user space instances called containers. From the perspective of the programs running in them, these isolated user space instances typically behave like real computers. Computer programs running on a normal operating system can utilize all of the resources of that computer, such as connected devices, files and folders, network shares, CPU capabilities, and quantifiable hardware capabilities. However, programs running within a container can only use the contents of the container and the devices assigned to the container, a feature known as containerization.
[0073] Private cloud 206 is similar to public cloud 205, except that the computing resources are only available to a single enterprise. Although private cloud 206 is depicted as communicating with WAN 202, in other embodiments, the private cloud can be completely disconnected from the Internet and accessible only through a local / private network. A hybrid cloud is a combination of multiple clouds of different types (e.g., private, community, or public cloud types), typically implemented by different vendors. Each of the multiple clouds remains a separate and discrete entity, but the larger hybrid cloud architecture is tied together by standardized or proprietary technologies that enable orchestration, management, and / or data / application portability between multiple constituent clouds. In this embodiment, both public cloud 205 and private cloud 206 are part of a larger hybrid cloud.
[0074] like Figure 2 As shown, one or more computing devices, such as computer 201 or remote server 204, may be specifically configured to implement a portion of PECB 300, which may include one or both of a PECB server and a PECB client. Configuration of the computing device may include providing dedicated hardware, firmware, and the like to facilitate the execution of operations and generation of outputs described herein with respect to the illustrative embodiments. Configuration of the computing device may also or alternatively include providing a software application stored in one or more storage devices and loaded into a memory of a computing device (such as computer 201 or remote server 204) for causing one or more hardware processors of the computing device to execute the software application, which configures the processor to perform operations and generate outputs described herein with respect to the illustrative embodiments. Furthermore, any combination of dedicated hardware, firmware, software applications executed on hardware, and the like may be used without departing from the spirit and scope of the illustrative embodiments.
[0075] It should be understood that once a computing device is configured in one of these ways, the computing device becomes a special-purpose computing device that is specifically configured to implement the mechanisms of the illustrative embodiments, and is not a general-purpose computing device. In addition, as described below, implementation of the mechanisms of the illustrative embodiments improves the functionality of the computing device and provides useful and specific results that facilitate personalized event consolidation and prioritization of event data structures from the same or different event information data sources.
[0076] Figure 3 is an example block diagram illustrating major operational components of a Personalized Event Integration Bot (PECB) framework in accordance with one illustrative embodiment. Figure 3The operating components shown in can be implemented as dedicated computer hardware components, computer software executed on computer hardware (which is then configured to perform specific computer operations attributed to the component), or any combination of dedicated computer hardware and computer software configured computer hardware. It should be understood that these operating components automatically perform the attribution operations without human intervention, even though the input can be provided by a human, for example, an event data structure can be created by a human and added to an electronic calendar, an event invitation communication can be drafted and sent by a human, which can result in the event being added to an electronic calendar, etc., and the resulting output can assist the human. The present invention specifically relates to automatically operating computer components, which relate to improving the way in which event data structures are integrated and prioritized in an automatic manner using machine learning artificial intelligence computer models, and providing specific solutions to the limitations of the above-mentioned existing electronic calendar applications and computing systems regarding duplicate and conflicting event data structures.
[0077] like Figure 3 As shown, PECB framework 300 includes PECB client 310 and PECB server 320. In some illustrative embodiments, PECB client 310 and PECB server 320 may be implemented on the same computing device or computing system, such as Figure 2 201 in the computer 201. In other illustrative embodiments, the PECB client 310 and the PECB server 320 may be implemented on different computing devices / systems, such as in a distributed data processing system environment, where the client computing device on which the PECB client 310 may be executed may communicate with one or more PECB servers 320 via one or more wired / wireless data networks. In the distributed computing environment illustrative embodiment, the PECB server 320 may service requests from multiple different PECB client 310 instances executed on multiple different client computing devices. The PECB client 310 may be implemented on the client computing device as a separately installed application executed on the client computing device, or as a plug-in component of another application executed on the client computing device, such as a plug-in of an electronic calendar application, etc.
[0078] The PECB framework 300 operates in conjunction with event resources 360. Event resources 360 may be a collection of calendar and event resources, such as personal calendars, corporate calendars, public event websites, online calendar services, etc., that provide functionality for creating events, sending invitations to potential event attendees, etc. Event resources 360 may represent different electronic calendar applications or computing devices / systems from which event information data structures may be obtained by the PECB framework 300. Event information data structures may be associated with specific users of the PECB framework 300 and may be associated with these users in order to identify duplicate / conflicting events and resolve such duplications and conflicts in accordance with one or more illustrative embodiments. For example, in one illustrative embodiment, event resources 360 may include one or more local electronic calendar computer applications, such as IBM Calendar, available from International Business Machines (IBM) Corporation. Windows available from Microsoft and Microsoft Apple Computer, available from Apple Inc., executed on a client computing device (e.g., a mobile smartphone, a desktop computer, a laptop computer, etc.) and associated with a user. One or more organizational electronic calendars hosted by an organizational computing system (such as the user's employer), one or more online electronic calendars, such as hosted by the open source collaboration platform NextCloud GmbH Provided electronic calendars, etc. Event resource 360 provides an event data structure that provides details of events associated with various electronic calendars, which may include event information such as event name, event organizer identification, date / time information, participant / invitee information, location information, event status information (e.g., confirmed / tentative), reminder notification settings, links for virtual attendance of the event, and any other information that describes the event and can be used by the electronic calendar to represent the event in the electronic calendar and its corresponding graphical user interface. Such event data structures and electronic calendar applications and computing systems are generally known in the art, and therefore, no more detailed explanation is required herein.
[0079] However, it should be understood that because the event resource 360 can represent the source of various different types of electronic calendar and event data structures, these event data structures can vary significantly from one another in terms of the type of data or content present in the event data structure, the location of the various types of data or content, the metadata included, the formatting of the various data and metadata, etc., as described above. Therefore, the PECB 300 as described herein provides a cross-platform event resource integration mechanism that utilizes artificial intelligence and machine learning mechanisms to identify duplicate and conflicting event data structures across different electronic calendar and event management tools, and to determine how to integrate these event data structures and prioritize them relative to each other for rendering in an integrated view of an electronic calendar.
[0080] The PECB server 320 may retrieve event data structures for a registered user from a specified event resource 360. The user's registration information and the identification of the event resource 360 from which the event data structure is retrieved may be specified in the user profile 334. The event data structures may also include event data structures obtained from a client computing device (not shown) on which the PECB client 310 is being executed, such as when a user of the client computing device uses a local electronic calendar application to create an event. The event data structures may be retrieved by the PECB server 320 and processed according to one or more illustrative embodiments to identify, consolidate, and prioritize duplicate and conflicting event data structures. Such identification, consolidation, and prioritization may be performed automatically when the PECB server 320 retrieves a new event data structure from the event resource 360, or may be performed specifically in response to a PECB request received from the PECB client 310.
[0081] The PECB client 310 includes a PECB monitor 312 and a PECB rendering engine 314, which can be implemented as the engines defined above. The PECB client 310 can be a standalone application or a plug-in component of an existing electronic calendar application implemented on a client computing device. The PECB client 310 is installed at the application layer and operates to consolidate incoming recurring events, prioritize conflicting events, and render consolidated / prioritized events on top of a human-computer interface (HCI) environment. The HCI environment can be any suitable HCI environment in which a human interacts with an application of a computing device (such as a chatbot, an electronic calendar application, an electronic communication application, an electronic desktop of a computing device, etc.). The PECB client 310 can request operations of the PECB server 320 to perform consolidation and / or prioritization, and can render the results at the local client computing device for output as part of a graphical user interface of the HCI environment, for example, as part of a displayed electronic calendar, chatbot interface, etc.
[0082] For example, in some illustrative embodiments, the PECB client 310 may operate in conjunction with a chatbot application through which natural language interactions are performed. In doing so, the PECB client 310 may detect a user's request for event information, for example, via the PECB monitor 312, and in response, event consolidation / prioritization may be initiated by the PECB server 320. The PECB client 310 may then respond to the user via a natural language conversation output of the chatbot that specifies the results of the consolidation / prioritization performed by the PECB server 320 and transmitted as a result to the PECB client 310. The PECB client 310 may also interface with a local electronic calendar application to graphically and textually represent events in an electronic calendar format, such as via the PECB rendering engine 314.
[0083] Thus, the PECB monitor 312 includes computer-implemented logic for monitoring users requesting event information, creating events through client computing devices, and in some cases, incoming events from other event resources 360, such as event invitations from other users of other devices, and in such cases sending requests to the PECB server 320 to perform event consolidation and prioritization. The PECB rendering engine 314 provides computer-implemented logic that operates to graphically and textually represent consolidated and / or prioritized events by representing their priority order and their merged or consolidated event data structure for user convenience.
[0084] The PECB server 320 includes a PECB manager 330, a PECB adjuster 340, and a PECB monitor 350. These components of the PECB server 320 and their subcomponents may be implemented as various engines as defined above. The PECB server 320 receives a request from a PECB client 310 for event consolidation / prioritization, and returns the consolidation / prioritization event data and layout information for use by the PECB rendering engine 314 to render a graphical user interface representation of the consolidation / prioritization event data, such as in the form of a consolidation / prioritization calendar graphical user interface, a priority list of events, etc.
[0085] The PECB manager 330 of the PECB server 320 provides a user interface for allowing a user to configure PECB settings and PECB criteria, such as which event resources 360 to monitor, such as personal calendars, company calendars, public event platforms, customer management systems, etc., which types of events (e.g., work meetings, phone calls, web conferences, etc.) are of interest, and which parts of event information to evaluate when performing consolidation and / or prioritization, such as event name, agenda, time, duration, location, call number, host name, key speakers, participant names, agenda, etc. The PECB settings and criteria may also specify merge thresholds, such as a threshold similarity metric required to merge two duplicate event data structures, layout priority colors or other graphical features used to represent event data structures of different priorities, such as red for high priority, blue for medium priority, etc., which consolidation policies are enabled / disabled, etc.
[0086] The PECB manager 330 has subcomponents including a PECB service profile memory (memory such as a memory, solid state drive, hard disk, etc.) 332, a user profile memory 334, a PECB data structure memory 336, and a PECB criteria memory 338. The PECB service profile memory 332 stores configuration files for saving configured PECB settings for different registered users, i.e., users having corresponding user profiles in the user profile memory 334. The PECB service profile memory 332 associates the PECB service profiles with corresponding PECB data structures in the PECB data structure memory 336. It should be noted that hereinafter, for ease of explanation, when referring to a specific data structure to be stored in the corresponding memory, the description may refer to the figure numerals in the figures, for example, the user profile 334 refers to the user profile data structure of the user stored in the user profile memory 334. Similarly, other references to data structures, algorithms, etc. implemented in various depicted elements may be referenced by the same figure numbers as the depicted elements, for example, the following description may reference the integration / prioritization policy 346, which is actually a policy implemented in and by the integration / prioritization policy engine 346.
[0087] The PECB data structures in the PECB data structure memory 336 include data defining a special PECB data structure for tracking events in an electronic calendar and specifying a mapping between one or more original events in an original event list and one or more consolidated / prioritized events in a layout event list, where the layout event list is a list of consolidated / prioritized events. For example, in some illustrative embodiments, the PECB data structure in the memory 336 may be of the following type: PECB_Data (UserID, CalendarID, Timeslot, OriginalEventList[EventID][EventData], LayoutEventList[EventID][EventTitle][Purpose][Priority]), where userID specifies a specific user and can be used to map the PECB data structure to the user profile 334; calendarID specifies a specific electronic calendar, which is the principle electronic calendar from which the original event data structure was obtained and with which other event data from the same or different event resources 360 was consolidated; timeslot specifies a specific date / time in the electronic calendar from which the PECB data structure was generated; the original event list specifies the event identifier and event data of the original event in the principle electronic calendar that preceded the original event. Multiple PECB data structures may be provided for users and different electronic calendars of users, such as one PECB data structure for each original event, so that a set of PECB data structures may be presented for each user and each electronic calendar of each user. A PECB data structure is a dedicated data structure that stores attributes used to analyze, merge, and prioritize events, thereby consolidating events that are determined to be duplicates or conflicting.
[0088] The user profile storage 334 includes a user profile data structure that not only stores information about a particular registered user, such as a user identifier, security information such as a password and other general user account information, but also stores or links the user profile with PECB criteria in the PECB criteria storage 338, which will be used when performing integration and prioritization of the event data structure for the electronic calendar events of the user. The PECB criteria in the PECB criteria storage 338 associated with the user profile may include specifications for a set of rules for defining the PECB services provided to a particular user. The specifications for the set of rules may include basic variables such as event resources to be monitored (e.g., personal calendars, corporate calendars, customer management systems, and public event platforms), event data used as a basis for integration / prioritization (e.g., event name, agenda, time, duration, location, call number, host name, key speakers, participant names, agenda), merge thresholds, layout priority colors and sections, and which integration policies are enabled / disabled, etc. The PECB criteria can be customized for each registered user in the user profile storage 334 to meet the personal preferences and needs of these users.
[0089] PECB adjuster 340 includes computer-implemented logic to perform adjustments to the integration policies in integration policy storage 346 to apply to duplicate and / or conflicting events. The integration policies themselves may be implemented as computer-implemented integration policy rules and / or algorithms that are enforced on duplicate or conflicting event data structures, which may be identified by PECB monitor 350. PECB adjuster 340 may also operate on information obtained from PECB manager 330, such as user profiles in user profile storage 334 that specify enabling / disabling of particular integration policies, PECB data structures in PECB data structure storage 336 that specify settings for PECB services for that user, and the like.
[0090] like Figure 3As shown, the PECB adjuster 340 has subcomponents including a PECB machine learning (ML) engine 342 and an integration / prioritization strategy engine 346. The PECB ML engine 342 includes logic for performing machine learning operations based on existing merge and prioritization samples (such as samples provided by users and / or administrators) to define and update integration strategies for identifying and merging similar events, prioritizing events, and handling event conflicts. For example, the PECB ML engine 342 may receive 1,000 merge samples that were manually merged by a user based on similarities in title, content, participants, etc., and the PECBML engine 342 includes logic for parsing these samples, extracting features from these samples, and learning from the samples the patterns of features and the resulting operations performed (e.g., merge, prioritization, and conflict resolution operations) to learn a mapping of feature patterns to corresponding operations. Based on this mapping from these existing samples, an integration strategy may be automatically generated that specifies feature patterns as conditions and specifies integration operations as the resulting operations to be performed when such feature patterns are encountered.
[0091] The consolidation / prioritization strategy (hereinafter collectively referred to as the consolidation strategy) 346 includes a set of computer-implemented rules or algorithms that operate to resolve duplicate event data structures and / or conflicting event data structures. It should be understood that duplicate event data structures need not be identical, but rather are determined to be sufficiently similar in their features through the application of one or more trained machine learning models (as discussed below) that they are considered to represent the same event. Conflicting event data structures are event data structures for different events, i.e., events that do not have sufficiently similar features but have a degree of overlap in date / time and / or location such that it may be impractical for a user to participate in each event, e.g., not being present at a family event in Dallas, Texas, and not being present at a work meeting in Tulsa, Oklahoma, at approximately the same time on the same day.
[0092] Integration policies 346 may vary and may be applied to different portions of the event data structure in different ways. The specific integration policy 346 to be applied will depend on the user profile 334's enablement of different integration policies, if any (note that a default set of integration policies may be applied unless overridden by the user in their user profile), the specific portions of the event data structure to be evaluated for merging / prioritization, the specific PECB service settings specified in the PECB data structure 336, etc. For example, an integration policy may include a collection of computer-implemented rules and / or algorithms for event attribute comparison, merging event details, handling conflict details, prioritizing event resources, participant handling, conflict resolution, update reminders and notifications, and data validation.
[0093] With respect to event attribute comparison, the integration strategy 346 operates to compare extracted features of the event data structures, such as title, date, time, location, and participants, where the extracted features may be extracted by natural language processing (NLP) and other parsing logic of the PECB monitor 350, as described below. A threshold level of similarity or a threshold similarity metric may be specified in the PECB service profile 332, for example, as part of the PECB data structure 336, to identify duplicate events, such that events having a determined degree of similarity that meets or exceeds the threshold similarity metric may be considered duplicates and integrated by merging their event data structures.
[0094] With respect to merging event details, the integration strategy 346 includes a set of rules and / or algorithms for merging related details from each repeating event data structure into a single entry. This may include combining event descriptions, merging lists of participants, and updating event attributes, such as duration or location.
[0095] With respect to the handling of conflicting details, such as in the case of duplicate event data structures having different details but determined to be for the same event, the integration strategy includes a set of rules and / or algorithms for resolving the conflicting details. For example, if two events have different start times but overlapping durations, the integration strategy may select a new start time that accommodates both durations.
[0096] With respect to prioritizing event resources, the integration strategy 346 includes a collection of rules and / or algorithms for evaluating the importance or relevance of the event resources 360 from which the event data structure is received, so as to give different levels of priority to the event data structure based on the source of the event data structure. The rules / algorithms can evaluate various indicators of the source of the event data structure, including an event organizer identifier, a specific electronic calendar from which the event data structure is received, other participants invited to the event, an event priority specified by the event organizer, and / or other features of the event data structure that indicate the importance of the event relative to other events. This prioritization can be used not only to determine the relative priority of conflicting events, but can also be used with other integration strategies, such as handling conflicting details or merging event details, to determine which details to retain or prioritize during the integration process.
[0097] Regarding participant handling, integration strategy 346 includes a set of rules and / or algorithms to handle participants of duplicate events when there are overlapping participants to ensure that they are only included once in the integrated event. The rules / algorithms include logic for handling participant conflicts or differences, such as using the most recent or authoritative participant list.
[0098] With respect to conflict resolution strategies, integration strategies 346 include a collection of rules and / or algorithms for resolving conflicts that arise when integrating events, which may include determining which event's details take precedence, providing alternative options to participants, or seeking user input to manually resolve conflicts. These may be conflicts between duplicate event data structures, for example, to determine which details to include in a merged event data structure generated as a result of integrating duplicate event data structures, to determine how to modify details to include details of two event data structures that may conflict with each other, etc. These may also be conflicts between different event data structures for different events that conflict in date / time and / or location, where the integration strategy operates to determine which event data structure should be given higher priority.
[0099] With respect to updating reminders and notifications, the integration strategy 346 includes a set of rules and / or algorithms that operate such that if an integrated event has a reminder or notification associated with it, the rules and / or algorithms ensure that they are adjusted or merged accordingly. The rules / algorithms are used to update notification settings based on the attributes of the integrated (merged) event to avoid duplication or confusion. For example, the NLP summary feature can be applied to all notifications of the event data structure, and new notifications can be generated. For example, assume there are three events, such as, Event 1: You have a dental appointment at 10 a.m., Event 2: Please note that there is a dental appointment scheduled at 10 a.m., and Event 3: Reminder - There is a dental appointment at 400 Main Street at 10 a.m. Using this example, the integration strategy 346 can implement NLP summary logic to generate new notifications of the following type and corresponding settings (e.g., notification 30 minutes before the event): Subject - Dental Appointment Reminder, Notification: You have a dental appointment scheduled at 400 Main Street at 10 a.m.
[0100] With respect to data validation, the integration strategy 346 includes a set of rules and / or algorithms that operate to implement validation checks to ensure the integrity and consistency of the integrated (merged) event data structure. The validation check may involve sending a confirmation request to the user and / or other participant of the event to accept the integrated event data structure with a tracking record to track which users / participants have accepted the integrated event data structure. If the user accepts the integrated event data structure, it is validated and indicates that the integration of the event data structure was performed correctly. If the user rejects the integrated event data structure, the integration may be automatically rolled back or undone. The integration strategy 346 may further verify that all necessary attributes are populated and that the integrated event complies with any predefined rules or constraints.
[0101] For example, these integration policies 346 may be applied by the PECB merge engine 356 and the PECB prioritization engine 358 of the PECB monitor 350 when performing integration or merging of duplicate event data structures and when prioritizing conflicting event data structures. Thus, based on these integration policies 346 and the user-specified settings and criteria associated with the event data structures in the PECB data structures 336 and the PECB criteria 338, duplicate and conflicting event data structures may be integrated into merged event data structures and prioritized event data structures having corresponding layout specifications for use by the PECB rendering engine 314 at the PECB client 310 when presenting event information via an electronic calendar graphical user interface and / or a prioritized event list interface. It should be understood that in some cases, for a given event data structure, the integration operation may require integration of duplicate event data structures and prioritization of the resulting merged event data structure with other event data structures that are determined to conflict with the merged event data structure.
[0102] The PECB monitor 350 includes computer-implemented logic for monitoring event data structures obtained from event resources 360 and / or client computing devices on which the PECB client 310 is operating, and classifying the event data structures relative to other event data structures of overlapping time periods (e.g., date / time and / or possible location) present in the same or different electronic calendars of various event resources 360 and client computing devices. That is, for an input event data structure identified by the PECB monitor 350, the PECB monitor 350 identifies other event data structures of the same user in the same electronic calendar, and any other electronic calendars specified by the user profile 334 will be monitored, for example, as specified in the user's PECB criteria 338. The PECB monitor 350 may perform feature extraction logic 353 on the identified potentially duplicate or conflicting event data structures to extract features from each of these event data structures. The feature extraction logic 353 may operate separately on different portions of the event information in the event data structure (e.g., on the event name, on the event description, on the invitee or participant list, etc.) to extract corresponding features indicative of that portion of the event data structure. Feature extraction logic 353 may utilize natural language processing (NLP) algorithms to parse natural language text of portions of event information to extract key terms / phrases, etc. that may be used to compare extracted features with other event data structures to determine similarity.
[0103] When feature extraction is performed, the extracted features can be used to generate a vector representation of the extracted features, which is used as an input to one or more machine learning computer models (e.g., PECB duplicate identifier 352 and PECB purpose analyzer 354) for classification. That is, each event data structure can have feature extraction performed on it to generate a corresponding feature vector. The pairing of feature vectors can be input to one or more machine learning computer models, which then classify the feature vector pairs with respect to predefined classifications (e.g., similar or dissimilar in the case of PECB duplicate identifier 352). In some cases, each vector representation can be analyzed separately by one or more machine learning computer models to classify the vector representation with respect to a set of predefined classifications (e.g., classification of predetermined event purposes in the case of PECB purpose analyzer 354). The resulting classifications can be output to the corresponding PECB merging engine 356 and PECB prioritization engine 358 to perform their functions based on these classifications.
[0104] Thus, in some illustrative embodiments, the PECB duplicate identifier 352 includes one or more machine learning computer models for analyzing extracted features of a plurality of event data structures and identifying duplicate events, the features representing event data for the events. Features representing event data may include event names, agendas, times, durations, locations, call numbers, host names, key speakers, participant names, or any other event data that may be present in an event data structure and may be used as a basis for determining a similarity metric between event data structures. While analyzing the extracted features of the event data structures, the PECB duplicate identifier 352 generates a similarity metric between the extracted features, for example, a vector similarity metric using vector similarity analysis, which may then be compared to a predefined threshold similarity level to determine whether the events are similar enough to warrant integration or merging of their event data structures. That is, if the feature vectors of the event data structures have a similarity metric that is equal to or higher than the predefined threshold similarity metric, then the event data structures are similar enough to warrant integration / merging. If the feature vectors of the event data structures do not have a similarity metric that is equal to or higher than the predefined threshold similarity, then these event data structures may not be duplicates, but may be considered to be associated with potentially conflicting events.
[0105] The PECB duplicate identifier 352 includes computer-implemented logic for training one or more machine learning computer models (e.g., neural networks, etc.) to specifically classify event data structures as duplicate event data structures based on feature vector representations of the event data structures. When training the one or more machine learning computer models, a training data set including training event data structures and their corresponding feature vectors is used to train the one or more machine learning computer models to identify patterns of features of event data structures that indicate duplicate events. The training event data structures and feature vectors have corresponding ground truth data that specifies whether two (or more) event data structures are actually duplicates or not. The machine learning training process involves processing the feature vector representations of the event data structures and generating a predictive classification of whether the event data structures are duplicates, wherein a corresponding similarity metric or metric is generated to indicate how similar the feature vectors are to each other, such as a vector similarity metric. The result is compared to the ground truth, and the comparison results in determining an error or loss value. The machine learning algorithm (e.g., linear regression or other curve fitting regression type learning) then uses the error or loss value to adjust the operating parameters of the machine learning computer model in an attempt to reduce the error or loss. This is done on a large amount of training data until the error / loss is below a given threshold or until a predetermined number of epochs or iterations have been performed. In this way, the PECB repeat identifier 352 learns the correspondence between feature patterns in the input feature vectors and the corresponding similarity measures and the results of whether the feature vectors indicate a repeating event data structure.
[0106] In a similar manner, one or more machine learning computer models of the PECB purpose analyzer 354 may be trained using a machine learning algorithm and a training data set of feature vectors of event data structures. In contrast to the PECB repeat identifier 352, the machine learning computer model of the PECB purpose analyzer 354 may operate on the feature vectors of a single event data structure and determine the classification of the event data structure with respect to one of a plurality of possible predefined purpose classifications. That is, there may be a predetermined set of 100 different identifiable purposes for an event. The machine learning computer model of the PECB purpose analyzer 354 is trained to generate probability values for each of these possible classifications based on an analysis of the features of the event data structure indicated in the input feature vector. The probability values indicate which classification is most likely to represent the purpose of the event, e.g., the highest probability value is associated with the predicted purpose of the event. When performing machine learning training, the training data set will have ground truth data that specifies what the true purpose of the event is, and it can be compared with the predicted purpose to determine the error / loss, and the machine learning algorithm is implemented to reduce the error / loss by modifying the operating parameters of the machine learning computer model in a manner similar to the PECB repeat identifier 352 described above.
[0107] For example, the PECB repeat identifier 352 may use similarity of event data (event name, agenda, time, duration, location, call number, host name, speaker, participant names, etc.) to identify repeating events. Event descriptions may be used to analyze event purposes (e.g., customer support meeting, education, project status meeting, invention discussion with co-inventors, 1×1 meeting with friends, etc.), and the event purpose may be digitized (0-10) for use in prioritizing the order of events and how to represent events in the layout of an electronic calendar and / or prioritized event list.
[0108] Based on the classification of the PECB duplicate identifier 352, the PECB merge engine 356 implements computer logic for merging the duplicated events into a single event data structure and an updated event list. The PECB merge engine 356 may invoke various strategies in the integration strategies 346 discussed above to resolve any conflicts in the content of the event data structures when performing the merge of the event data structures, and to remove or at least minimize any duplication of information, participants, etc. associated with the event data structures being merged. In some cases, adjustments to the start times may be made to accommodate the start times and durations of the multiple event data structures being merged, so as to provide a new start time for the merged event data structure that is different from at least one of the start times of the event data structures being merged, and may be different from all of the start times of the event data structures being merged.
[0109] Based on the purpose classification from the PECB purpose analyzer 358, the PECB prioritization engine 358 implements computer logic that prioritizes the conflicting event data structures according to the event purpose and the integration strategy 346 that specifies relative priority rankings for various purposes. The PECB prioritization engine 358 can also evaluate additional factors in addition to the predicted purpose of the conflicting event data structure in order to determine the relative priority of the conflicting event data structure. For example, the user's association with the event organizer, other participants, etc. can be used to evaluate the relative priority of the event data structure. For example, if the event data structure has the purpose of a project status meeting and the event organizer is the user's supervisor, the event data structure can have a higher priority than a 1×1 meeting with a friend. As another example, the history of previous event data structures and user feedback on whether they attended the event or canceled the event can be used as a basis for prioritizing other event data structures with similarly classified events. For example, if the user routinely cancels an event with a 1×1 event type to meet a friend, if there is a current conflict and one of the events is of this type, it can be selected to have a lower priority than other conflicting event data structures. However, in other cases, if the same event is routinely canceled by the user and has been canceled more than a threshold number of times, it may be a basis for raising the priority of the event data structure to a higher priority, for example, if the user has canceled a meeting with a friend, it may be important to raise the priority to avoid ruining the friendship.
[0110] Users and administrators can establish various factors for prioritization in user profiles 334 and / or PECB service profiles 332 or PECB criteria 338, which can be implemented by the PECB prioritization engine 358 when determining the prioritization of events. These factors can include conditional factors rather than just static independent values. As an example, a user can specify that if the first attendee (name 1) and the second attendee (name 2) in the attendee list of the event have accepted the invitation to the event, the event priority can be raised to the highest priority. In another example, a user can specify rules or logic for evaluating conditions and dynamically modify the priority of an event based on dynamic changes to the state of the event. For example, a user can set a priority rule that specifies that the priority score of the event is increased by 1% for each participant in the user's client list, or for each participant who accepts the event invitation, or any other suitable condition.
[0111] Based on the processing results of the PECB merging engine 356 and the PECB prioritization engine 358, a merged / integrated event data structure is generated and a prioritized event data structure of conflicting events is generated and provided back to the PECB server 320 logic for creating a layout of the electronic calendar and / or a prioritized list of events. The PECB server 320 generates a layout as a data structure that specifies how to render the merged / integrated event data structure and the prioritized event data structure in the associated electronic calendar of the client computing device on which the PECB client 310 is operating. The PECB server 320 then returns the layout and prioritized event data structure to the PECB client 310 as a response to its original request.
[0112] The PECB rendering engine 314 of the PECB client 310 then operates with the local electronic calendar application or event management application to represent the event data structure according to the layout provided by the PECB server 320. The presentation of such an event data structure in the local electronic calendar application or event management application can, for example, overlay the event data onto a calendar graphical user interface so that the event is depicted at the appropriate date and time represented in the electronic calendar display. In addition, the event data structure can modify its representation by coloring, shading, highlighting, different fonts, or any other mechanism to represent the relative priority of the conflicting event data structures in the graphical user interface. In addition, a pop-up window or a separate graphical user interface can be provided to present a prioritized list of conflicting event data structures, thereby suggesting to the user which events have a relatively higher priority than other events. The prioritized event list can utilize colors, shading, highlighting, fonts, etc. similar to the colors, shading, highlighting, fonts, etc., of the representation of the conflicting events in the electronic calendar itself. These representations of events in the electronic calendar and / or event list may include user-manipulatable user interface elements by which the user may indicate that they accept or reject a particular result generated by the mechanisms of the illustrative embodiments, thereby providing user feedback to the PECB server 320 via the PECB client 310, which feedback may be used to dynamically update the operating parameters of one or more machine learning computer models of the PECB server 320 to reduce error. For example, user input to the user interface elements may be used as ground truth for determining error and modifying the operating parameters of the machine learning computer model (e.g., the weights of the nodes, etc.), thereby adjusting its operation and performance to be more accurate for the user.
[0113] Figure 4 is an example flow chart showing the operation and interaction of components of the PECB framework according to an illustrative embodiment. Figure 3 Elements discussed Similar elements are in Figure 4 Similar reference numerals are used to indicate the same. Figure 4 As shown, a user 420 interacts with an electronic calendar application (or simply calendar) 410 on a client computing device 430, which also implements the PECB client 310. The electronic calendar 410 may compile event data structures from one or more event resources 360, which again may be other electronic calendar event data structure sources, such as a work electronic calendar, a public event computing system, another user's electronic calendar, an electronic communication specifying an event invitation, etc., which may be provided by a different computing system and a different application than the calendar 410. Event data structures are pulled / pushed from these event resources 360 and received at the client computing device for presentation in the graphical user interface of the electronic calendar 410. As such, some of these event data structures from the event resources 360 may be duplicates, or may conflict with dates / times and / or locations of other scheduled events, and the event data structures may have varying content, formatting, metadata, etc. based on the particular source from which the event data structure was obtained.
[0114] When these event data structures are received from the event resources 360, the PECB monitor 312 monitors these event data structures and invokes the PECB server 320 to perform integration and prioritization of the event data structures by sending requests to the PECB server 320. In addition, the PECB monitor 312 can monitor user feedback in response to the results of the integration and prioritization input to the calendar 410 via the user 420, for example, the user changing the priority of the event data structure by interfacing with the graphical user interface (GUI) elements of the calendar 410 will cause the user feedback to be provided to the PECB adjuster 340, which can then adjust one or more of the PECB service profile 332, the user profile 334, the PECB criteria 338, etc., and the PECB learner 342 can then learn modifications to the integration strategy 346 based on the user feedback.
[0115] The PECB duplicate identifier 352 receives a request from the PECB monitor 312 and evaluates whether the event data structure is a duplicate of another event data structure having a similar date / time and / or location specified in the calendar 410. If the event data structure is determined to be a duplicate, the PECB merge engine 356 is called to merge the event data structure determined to be a duplicate. Thereafter, or if the event data structure is not determined to be a duplicate, it is determined whether there are multiple event data structures or entries that conflict with each other in date / time and / or location. If so, the PEDB purpose analyzer 354 and the PECB prioritization engine 358 are called to evaluate the purpose of the multiple event data structures and prioritize the multiple event data structures relative to each other. The results of the operations of the PECB merge engine 356 and the PECB prioritization engine 358 are then used to generate a layout and prioritized event list 440, which is returned to the PECB client 310. At the PECB client 310, the PECB rendering engine 314 updates the graphical user interface of the electronic calendar 410 using the layout and prioritized event list 440 to represent recurring event data structures as a single merged event data structure, and to graphically / textually represent the relative priorities of conflicting event data structures in the electronic calendar 410, and in some cases as separate prioritized event lists.
[0116] As described above, the illustrative embodiments operate to identify recurring event data structures for electronic calendar events by evaluating various features extracted from the event data structures using a machine learning computer model. Figure 5 is an example diagram of an event data structure in which duplicate events exist and a corresponding merged event data structure according to an illustrative embodiment. Figure 5 The data structures shown in are exemplary only, and any suitable data structure formats and contents for representing events may be used without departing from the spirit and scope of the invention.
[0117] Figure 5 The data structure shown in is organized by date / time as represented on the left hand side of the table, so that events at the same date / time are represented in the same row of the data structure. Figure 5As shown, there is a first column 510 for a timeline, a second column 520 for specifying the user to which the event data structure corresponds, a third column 530 for specifying which electronic calendar the event data structure is associated with, a fourth column 540 for specifying the time slot in the electronic calendar with which the event is associated, a fifth column 550 in which the raw event list is presented, and a sixth column 560 in which the layout event list is presented. In this example, the raw event list 550 specifies the event and its corresponding extracted features, such as event title, location, etc., by "EventID". The layout event list represents the merged event data structure after performing the consolidation of the duplicate event data structures.
[0118] like Figure 5 As shown, there are 3 event data structures, namely, EventID=Evt001, EventID=Evt002 and EventID=Evt003. Each of these events has a similar title and location. The similarity of the event data structures can be evaluated by the trained machine learning computer model of the PECB duplicate identifier engine 352 based on the extracted features, such as natural language processing on the title, evaluation of location similarity, etc., which can be represented as a feature vector. Therefore, when features are extracted from these events and the similarity between the events is evaluated, as described above, the similarity of the title and location will lead to the discovery that the event data structures Evt001, Evt002 and Evt003 are all for the same event and therefore repeat each other. As a result, an integrated event data structure as shown in column 560 can be generated, wherein the integrated event data structure represents the merging of the separate event data structures in column 550 into a single event data structure.
[0119] Thus, through operation of the present invention, the three event data structures are merged into a single event data structure that replaces the duplicate event data structure and is therefore given EventID=Evt001 in column 560. The merged event data structure retains the title of the original event data structure and also includes a predicted classification of the event purpose and a corresponding priority. The predicted purpose classification can be generated by operation of the machine learning computer model of the PECB purpose analyzer 354 to classify the extracted features of the event data structure into predetermined purpose classifications and generate a probability value or score for each predetermined purpose classification. The priority of the event data structure can be determined by the PECB prioritization engine 358 by applying an appropriate integration strategy 346 to the purpose classification and other factors to determine the relative priority of the event data structure.
[0120] It should be understood that event data structures do not need to have exactly the same title, location, or other attributes, but can still be considered similar enough to represent the same event. As described above, the vector representation of the extracted features of the event data structure can be used in conjunction with a vector similarity determination, where a similarity threshold is used to determine whether two or more vectors are similar enough to each other to represent the same event. For example, assume that there are two events with the same title and location but different content / descriptions, for example, Event 1: "Thank you for registering to participate in the Web broadcast. Login will be available 30 minutes before the event start time. We look forward to your participation in the broadcast"; Event 2: Thank you for your registration, please log in on time. Based on NLP feature extraction and meaning analysis, there are no key differences between the two events in time, location, subject, and object, as can be represented by the vector embedding of the features extracted from the event data structure. Therefore, the two events are determined to point to the same event and can be merged into the integrated event data structure.
[0121] Figure 6 is an example diagram of an event data structure and a prioritized event list layout in which conflicting events exist in accordance with an illustrative embodiment. Figure 6 Columns 610-660 in are similar to Figure 5 However, it is worth noting that the event data structure in the original event list 650 includes features indicating that the events are not duplicates and are actually conflicting events scheduled at the same time slot 640. For example, as shown in column 650, the first event (Evt001) has a different title, a different location, and different content than the other events, and vice versa. Therefore, the events cannot be merged into a single consolidated event data structure and are actually conflicting events. Figure 5 As in the example in , events are evaluated via the PECB purpose analyzer 354 and the PECB prioritization engine 358 to generate predicted purpose classifications and relative priorities. In this instance, the priority evaluation is based on a function of the priority of the predicted event purpose classification relative to the sum of the event purpose classification priorities of other conflicting event data structures. Thus, for example, assume that the priority score of the first event is 8, the priority score of the second event is 6, and the priority score of the third event is 4, where these priority scores are assigned according to the integration strategy based on the evaluation of the predicted purpose classifications and possible other factors, as previously mentioned above. In the depicted example, the integration strategy assigns a value of 8 to Customer Support events, a value of 6 to Education events, a value of 5 to Status Meeting events, a value of 4 to Invention Discussion events, and a value of 3 to 1×1 Meeting events.
[0122] use Figure 6The example formula shown in , then the relative priorities of the events are calculated as 44.4%, 33.3%, and 22.3%, respectively. Thus, the first event data structure has the highest priority, the second event data structure has the second highest priority, and the third event data structure has the third highest priority. These relative priorities can be represented in the prioritized event list data structure and as different graphical / text features of the event data structure when rendering the events as part of an electronic calendar.
[0123] Thus, the illustrative embodiments provide improved computing tools and improved computing tool operations / functionality for automatically resolving duplicate and conflicting event data structures that may be received from various sources. The illustrative embodiments provide mechanisms based on machine learning and artificial intelligence for evaluating event data structures to determine which event data structures may be duplicates of each other and which event data structures conflict with each other. The illustrative embodiments further provide automated computing tools and computing tool operations / functionality for merging duplicate event data structures into a single combined event data structure, and for prioritizing conflicting event data structures based on a predicted purpose classification of each of the conflicting event data structures. The illustrative embodiments also provide mechanisms for generating layouts and prioritized event lists for rendering event data structures in an electronic calendar and for consolidating / merging event data structures.
[0124] Figure 7 A flowchart outlining an example operation of elements of the present invention with respect to one or more illustrative embodiments is presented. It should be understood that Figure 7 The operations outlined in the description are specifically performed automatically by the improved computer tools of the illustrative embodiments and are not intended to and cannot actually be performed by humans as mental processes or through organized human activities. On the contrary, although humans may initiate the Figure 7 Execution of the operations described in , and in some cases can be used as Figure 7 The result is the result of the operation described in Figure 7 The operations themselves are specifically performed in an automatic manner by improved computing tools.
[0125] Figure 7 is a flow chart outlining the overall operation of a personalized event integration robot according to one illustrative embodiment. Figure 7As shown, the operation begins by receiving a new event data structure into an electronic calendar application associated with a personalized event consolidation robot (PECB) client (step 710). A request is sent to the PECB server to perform event consolidation and prioritization of the received event data structure relative to other event data structures already associated with the electronic calendar (step 720). A first determination is made as to whether the event data structure is a duplicate of at least one other event data structure (step 730). If so, the event data structure is merged with the at least one other event data structure (step 740).
[0126] Thereafter, or if the event data structure is not a duplicate event data structure, a second determination is made as to whether there are still multiple event data structures associated with the same date / time as the received event data structure (step 750). If so, then a determination is made as to whether there are conflicting event data structures and a purpose classification for each of the conflicting event data structures is predicted (step 760). Based on the predicted purpose classification of the event data structure and optionally other factors indicating the relative priority of the event, a relative priority score for the event data structure is generated (step 770). Based on the consolidation / merging of the event data structures (if any) and the priority ranking of the event data structures, a layout and prioritized event list is generated and sent back to the PECB client (step 780). The PECB client then renders the event data structure in the electronic calendar based on the merged / integrated event data structure and the priority ranking of the event data structures relative to each other (step 790). The operation then terminates.
[0127] The description of the present invention has been presented for the purpose of illustration and description, and is not intended to be exhaustive or to limit the invention to the disclosed form. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The embodiments are selected and described in order to best explain the principles of the invention, the practical application, and to enable others of ordinary skill in the art to understand the various embodiments of the invention with various modifications suitable for the intended specific use. The terms used herein are selected in order to best explain the principles of the embodiments, the practical application, or the technical improvements to the technology found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.
Claims
1. A method for integrating event data structures in an electronic calendar in a data processing system, the method comprising: An event data structure that receives events from an event resource; extracting features from the event data structure and at least one other event data structure having overlapping temporal locations in the electronic calendar; subjecting the extracted features to at least one first machine learning computer model to classify the event data structure as to whether the event data structure is a duplicate of the at least one other event data structure; as well as Based on the classification of the event data structure, at least one integrated event data structure corresponding to the event data structure and the at least one other event data structure is rendered in the electronic calendar, wherein rendering the at least one integrated event data structure includes: in response to the classification indicating that the event data structure is a duplicate of the at least one other event data structure, merging the event data structure with the at least one other event data structure to generate the at least one integrated event data structure.
2. The method according to claim 1, wherein: Rendering the at least one integrated event data structure includes: in response to the classification indicating that the event data structure is not a duplicate of the at least one other event data structure, generating a relative priority score for the event data structure relative to the at least one other event data structure, and rendering the at least one integrated event data structure as a relative rendering of the event data structure and the at least one other event data structure depicting the relative priority score.
3. The method according to claim 2, wherein: Generating a relative priority score for the event data structure includes subjecting the extracted features to at least one second machine learning computer model to generate priority scores for the event data structure and the at least one other event data structure.
4. The method according to claim 3, wherein: The at least one second machine learning computer model comprises a second machine learning computer model that determines a purpose of the event data structure and a purpose of the at least one other event data structure based on the extracted features, and wherein the relative priority score is based on the determined purpose of the event data structure and the purpose of the at least one other event data structure.
5. The method according to claim 1, further comprising: retrieving a user profile of a user associated with the electronic calendar, wherein the user profile specifies one or more event resources to be integrated from a plurality of event resources and one or more types of event data structures to be integrated; determining whether an event data structure for the event is from an event resource that matches the one or more event resources specified in the user profile; In response to receiving the event data structure from an event resource that matches the one or more event resources, determining whether a type of the event data structure matches one or more types of event data structures specified in the user profile to be integrated; as well as In response to the type of the event data structure matching one or more types of event data structures to be integrated, the execution and rendering operations are performed.
6. The method of claim 1 , further comprising training the at least one first machine learning computer model on training data, the training data comprising existing samples of event data structures and ground truth classifications of the existing samples, wherein the training comprises, for each sample in the training data: processing samples in the training data to generate classification results, the classification results specifying whether the samples represent duplicate event data structures or conflicting data structures; comparing the classification result to the corresponding ground truth classification to determine a loss; as well as An operating parameter of the at least one first machine learning computer model is modified based on the determined loss.
7. The method according to claim 6, wherein: The sample is a captured instance of a previous manual integration of an event data structure by a user associated with the electronic calendar.
8. The method according to claim 1, further comprising: receiving user input to a user interface associated with the electronic calendar, wherein the user input specifies acceptance or rejection of the at least one consolidated event data structure; as well as Based on user input specifying acceptance or rejection of the at least one integrated event data structure, operating parameters of the at least one first machine learning computer model are dynamically updated.
9. The method according to claim 1, wherein: The method is performed in response to receiving user input to a human-computer interaction (HCI) environment of the data processing system and performing natural language processing on the user input, wherein the natural language processing determines an intent of the user input as being associated with event integration.
10. The method according to claim 9, wherein: The HCI environment is a chatbot application, and the user input is a natural language sentence input into the chatbot application, and wherein rendering at least one integrated event data structure further comprises outputting a natural language response to the user input via the chatbot application.
11. The method according to claim 1, wherein: The extracted features include event title, event date, event time, event location, and event participants.
12. The method according to claim 1, wherein: Merging the event data structure with the at least one other event data structure includes executing a consolidation policy rule or algorithm that specifies logic for combining event descriptions, merging participant lists, and updating event attributes to accommodate attributes of the event data structure and the at least one other event data structure.
13. The method according to claim 1, wherein: Merging the event data structure with the at least one other event data structure includes enforcing a consolidation policy rule or algorithm that specifies logic for resolving conflicting attributes of the event data structure and the at least one other event data structure.
14. The method according to claim 2, wherein: Generating a relative priority score for the event data structure includes applying one or more user-specified priority criteria specified in a user profile of a user associated with the electronic calendar.
15. The method according to claim 14, wherein: The one or more user-specified priority criteria include at least one enforceable rule that specifies a condition and a modification of a priority score of a corresponding event data structure in response to the condition being satisfied, and wherein the condition is based on an event participant accepting an invitation associated with the corresponding event data structure.
16. The method according to claim 1, wherein: Rendering the at least one consolidated event data structure further includes generating a reminder or notification of the at least one consolidated event data structure based on reminder or notification settings associated with the event data structure and the at least one other event data structure.
17. A computer program product comprising a computer readable program, wherein: The computer readable program, when executed on a computing device, causes the computing device to implement the method according to any one of claims 1-16.
18. An apparatus comprising: at least one processor; as well as At least one memory coupled to the at least one processor, wherein the at least one memory comprises instructions which, when executed by the at least one processor, cause the at least one processor to implement the method according to any one of claims 1-16.