Search

US-12619589-B2 - Technologies for performing time constrained queries for real-time event flow visualizations and analytics

US12619589B2US 12619589 B2US12619589 B2US 12619589B2US-12619589-B2

Abstract

A method for performing time constrained queries for event sequence visualization may include receiving an event sequence dataset including event sequences. Each event sequence includes at least two sequentially occurring events. The method further includes generating a forward index having event pattern sets that include pattern occurrence data for each event sequence positioned according to a fixed positional order. The method includes generating a time constraint search structure, such as a B−tree, B+tree, or table, that includes keys and pointer values. The method also includes inserting, into the search structure, a sequence identifier corresponding to each event sequence based on the fixed positional order and time interval data for the at least two sequentially occurring events of each event sequence. The method may also include searching the search structure to identify key values satisfying a received time interval constraint, and outputting the sequence identifiers corresponding to the identified key values.

Inventors

  • Ankit Pat
  • Maciej DABROWSKI

Assignees

  • GENESYS CLOUD SERVICES, INC.

Dates

Publication Date
20260505
Application Date
20240731

Claims (20)

  1. 1 . A method for performing time constrained queries for real-time event sequence visualization, the method comprising: retrieving, by a computing system, an event sequence dataset, wherein the event sequence dataset includes data for a plurality of event sequences and a plurality of events, and wherein each event sequence of the plurality of event sequences includes at least two sequentially occurring events; generating, by the computing system, a forward search index including a plurality of event pattern sets, wherein each event pattern set corresponds to a respective pattern of events derived from the plurality of event sequences and includes pattern occurrence data for each event sequence of the plurality of event sequences, and wherein the pattern occurrence data for each event sequence is positioned within each event pattern set according to a fixed positional order; identifying, by the computing system, the fixed positional order of each event sequence positioned within each event pattern set of the plurality of event pattern sets of the forward search index; generating, by the computing system, a time constraint search structure including a plurality of keys and a plurality of pointer values, wherein each pointer value of the plurality of pointer values is associated with one or more key values of the plurality of key values; inserting, by the computing system, a sequence identifier corresponding to each event sequence of the plurality of event sequences into the time constraint search structure as a pointer value of the plurality of pointer values, wherein the sequence identifier corresponding to each event sequence is indicative of the fixed positional order of the event sequence within each of the plurality of event patterns sets of the forward search index; and inserting, by the computing system, time interval data for the at least two sequentially occurring events of each event sequence into the time constraint search structure as a key value associated with a respective pointer value for the corresponding event sequence, wherein the time interval data for the at least two sequentially occurring events of each event sequence is indicative of an amount of time elapsed between an occurrence of each of the at least two sequentially occurring events of the event sequence.
  2. 2 . The method of claim 1 , further comprising: receiving, by the computing system, a search request including a time interval constraint; searching, by the computing system, the time constraint search structure to identify one or more key values of the plurality of key values that satisfy the time interval constraint; determining, by the computing system and within the time constraint search structure, one or more pointer values associated with the one or more key values of the plurality of key values that satisfy the time interval constraint; and outputting, by the computing system, the sequence identifier associated with each of the determined one or more pointer values.
  3. 3 . The method of claim 2 , wherein outputting the sequence identifier associated with each of the determined one or more pointer values comprises outputting a result set including data indicative of whether the event sequence corresponding to each sequence identifier is associated with a key value that satisfies the time interval constraint.
  4. 4 . The method of claim 3 , wherein the result set is encoded as a bit vector.
  5. 5 . The method of claim 1 , wherein generating the time constraint search structure including the plurality of keys and the plurality of pointer values comprises generating a B−tree including a plurality of keys and a plurality of pointer values.
  6. 6 . The method of claim 1 , wherein generating the time constraint search structure including the plurality of keys and the plurality of pointer values comprises generating a B+tree including a plurality of keys and a plurality of pointer values.
  7. 7 . The method of claim 1 , further comprising sorting, by the computing system, the plurality of key values based on interval length.
  8. 8 . The method of claim 1 , wherein each event of the plurality of events is associated with one or more attributes.
  9. 9 . A system for performing time constrained queries for real-time event sequence visualization, the system comprising: at least one processor; and at least one memory comprising a plurality of instructions stored thereon that, in response to execution by the at least one processor, causes the system to: retrieve an event sequence dataset, wherein the event sequence dataset includes data for a plurality of event sequences and a plurality of events, and wherein each event sequence of the plurality of event sequences includes at least two sequentially occurring events; generate a forward search index that includes a plurality of event pattern sets, wherein each event pattern set corresponds to a respective pattern of events derived from the plurality of event sequences and includes pattern occurrence data for each event sequence of the plurality of event sequences, and wherein the pattern occurrence data for each event sequence is positioned within each event pattern set according to a fixed positional order; identify the fixed positional order of each event sequence positioned within each event pattern set of the plurality of event pattern sets of the forward search index; generate a time constraint search structure that includes a plurality of keys and a plurality of pointer values, wherein each pointer value of the plurality of pointer values is associated with one or more key values of the plurality of key values; insert a sequence identifier that corresponds to each event sequence of the plurality of event sequences into the time constraint search structure as a pointer value of the plurality of pointer values, wherein the sequence identifier that corresponds to each event sequence is indicative of the fixed positional order of the event sequence within each of the plurality of event patterns sets of the forward search index; and insert time interval data for the at least two sequentially occurring events of each event sequence into the time constraint search structure as a key value associated with a respective pointer value for the corresponding event sequence, wherein the time interval data for the at least two sequentially occurring events of each event sequence is indicative of an amount of time elapsed between an occurrence of each of the at least two sequentially occurring events of the event sequence.
  10. 10 . The system of claim 9 , wherein the plurality of instructions further causes the system to: receive a search request that includes a time interval constraint; search the time constraint search structure to identify one or more key values of the plurality of key values that satisfy the time interval constraint; determine, within the time constraint search structure, one or more pointer values associated with the one or more key values of the plurality of key values that satisfy the time interval constraint; and output the sequence identifier associated with each of the determined one or more pointer values.
  11. 11 . The system of claim 10 , wherein to output the sequence identifier associated with each of the determined one or more pointer values comprises to output a result set that includes data indicative of whether the event sequence corresponding to each sequence identifier is associated with a key value that satisfies the time interval constraint.
  12. 12 . The system of claim 11 , wherein the result set is encoded as a bit vector.
  13. 13 . The system of claim 9 , wherein to generate the time constraint search structure that includes the plurality of keys and the plurality of pointer values comprises to generate a B−tree that includes a plurality of keys and a plurality of pointer values.
  14. 14 . The system of claim 9 , wherein to generate the time constraint search structure that includes the plurality of keys and the plurality of pointer values comprises to generate a B+tree that includes a plurality of keys and a plurality of pointer values.
  15. 15 . The system of claim 9 , wherein the plurality of instructions further causes the system to sort the plurality of key values based on interval length.
  16. 16 . The system of claim 9 , wherein each event of the plurality of events is associated with one or more attributes.
  17. 17 . One or more non-transitory machine-readable storage media comprising a plurality of instructions stored thereon that, in response to execution by a computing system, causes the computing system to: retrieve an event sequence dataset, wherein the event sequence dataset includes data for a plurality of event sequences and a plurality of events, and wherein each event sequence of the plurality of event sequences includes at least two sequentially occurring events; generate a forward search index that includes a plurality of event pattern sets, wherein each event pattern set corresponds to a respective pattern of events derived from the plurality of event sequences and includes pattern occurrence data for each event sequence of the plurality of event sequences, and wherein the pattern occurrence data for each event sequence is positioned within each event pattern set according to a fixed positional order; identify the fixed positional order of each event sequence positioned within each event pattern set of the plurality of event pattern sets of the forward search index; generate a time constraint search structure that includes a plurality of keys and a plurality of pointer values, wherein each pointer value of the plurality of pointer values is associated with one or more key values of the plurality of key values; insert a sequence identifier that corresponds to each event sequence of the plurality of event sequences into the time constraint search structure as a pointer value of the plurality of pointer values, wherein the sequence identifier that corresponds to each event sequence is indicative of the fixed positional order of the event sequence within each of the plurality of event patterns sets of the forward search index; insert time interval data for the at least two sequentially occurring events of each event sequence into the time constraint search structure as a key value associated with a respective pointer value for the corresponding event sequence, wherein the time interval data for the at least two sequentially occurring events of each event sequence is indicative of an amount of time elapsed between an occurrence of each of the at least two sequentially occurring events of the event sequence; receive a search request that includes a time interval constraint; search the time constraint search structure to identify one or more key values of the plurality of key values that satisfy the time interval constraint; determine, within the time constraint search structure, one or more pointer values associated with the one or more key values of the plurality of key values that satisfy the time interval constraint; and output the sequence identifier associated with each of the determined one or more pointer values.
  18. 18 . The one or more non-transitory machine-readable storage media of claim 17 , wherein to generate the time constraint search structure that includes the plurality of keys and the plurality of pointer values comprises to generate a B−tree that includes a plurality of keys and a plurality of pointer values.
  19. 19 . The one or more non-transitory machine-readable storage media of claim 17 , wherein to generate the time constraint search structure that includes the plurality of keys and the plurality of pointer values comprises to generate a B+tree that includes a plurality of keys and a plurality of pointer values.
  20. 20 . The one or more non-transitory machine-readable storage media of claim 19 , wherein to output the sequence identifier associated with each of the determined one or more pointer values comprises to output a result set that includes data indicative of whether the event sequence corresponding to each sequence identifier is associated with a key value that satisfies the time interval constraint.

Description

BACKGROUND Call centers and other contact centers are used by many organizations to provide technical and other support to their end users. The end user may interact with human and/or virtual agents of the contact center by establishing electronic communications via one or more communication technologies including, for example, telephone, email, web chat, Short Message Service (SMS), dedicated software application(s), and/or other technologies. In particular, the end user may interact with an interactive voice response (IVR) system of the contact center that uses a series of predefined prompts and user responses to determine how to address the user's concerns, for example, by leveraging one or more bot flows defined by a contact center administrator. SUMMARY One embodiment is directed to a unique system, components, and methods performing time constrained queries for real-time event sequence visualization and analytics. Other embodiments are directed to apparatuses, systems, devices, hardware, methods, and combinations thereof for performing time constrained queries for real-time event sequence visualization and analytics. According to an embodiment, a method for performing time constrained queries for real-time event sequence visualization may include retrieving, by a computing system, an event sequence dataset, wherein the event sequence dataset includes data for a plurality of event sequences and a plurality of events, and wherein each event sequence of the plurality of events sequences includes at least two sequentially occurring events. The method further includes generating, by the computing system, a forward search index including a plurality of event pattern sets, wherein each event pattern set corresponds to a respective pattern of events derived from the plurality of event sequences and includes pattern occurrence data for each event sequence of the plurality of event sequences, and wherein the pattern occurrence data for each event sequence is positioned within each event pattern set according to a fixed positional order. The method also includes identifying, by the computing system, the fixed positional order of each event sequence positioned within each event pattern set of the plurality of event pattern sets of the forward search index, and generating, by the computing system, a time constraint search structure including a plurality of keys and a plurality of pointer values, wherein each pointer value of the plurality of pointer values is associated with one or more key values of the plurality of key values. The method also includes inserting, by the computing system, a sequence identifier corresponding to each event sequence of the plurality of event sequences into the time constraint search structure as a pointer value of the plurality of pointer values, wherein the sequence identifier corresponding to each event sequence is indicative of the fixed positional order of the event sequence within each of the plurality of event patterns sets of the forward search index, and inserting, by the computing system, time interval data for the at least two sequentially occurring events of each event sequence into the time constraint search structure as a key value, wherein the time interval data for the at least two sequentially occurring events of each event sequence is indicative of an amount of time elapsed between an occurrence of each of the at least two sequentially occurring events of the event sequence. In some embodiments, the method may further include receiving, by the computing system, a search request including a time interval constraint, searching, by the computing system, the time constraint search structure to identify one or more key values of the plurality of key values that satisfy the time interval constraint, determining, by the computing system and within the time constraint search structure, one or more pointer values associated with the one or more key values of the plurality of key values that satisfy the time interval constraint, and outputting, by the computing system, the sequence identifier associated with each of the determined one or more pointer values. In some embodiments, outputting the sequence identifier associated with each of the determined one or more pointer values may include outputting a result set having data indicative of whether the event sequence corresponding to each sequence identifier is associated with a key value that satisfies the time interval constraint. In some embodiments, the result set is encoded as a bit vector. In some embodiments, generating the time constraint search structure including the plurality of keys and the plurality of pointer values may include generating a B−tree having a plurality of keys and a plurality of pointer values. In some embodiments, generating the time constraint search structure including the plurality of keys and the plurality of pointer values may include generating a B+tree having a plurality of keys and a pluralit