US20200236072A1 - Cross-Platform Messaging System - Google Patents
Cross-Platform Messaging System Download PDFInfo
- Publication number
- US20200236072A1 US20200236072A1 US16/254,485 US201916254485A US2020236072A1 US 20200236072 A1 US20200236072 A1 US 20200236072A1 US 201916254485 A US201916254485 A US 201916254485A US 2020236072 A1 US2020236072 A1 US 2020236072A1
- Authority
- US
- United States
- Prior art keywords
- message
- application
- chat application
- chat
- user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000009471 action Effects 0.000 claims abstract description 56
- 238000003058 natural language processing Methods 0.000 claims description 31
- 238000000034 method Methods 0.000 claims description 29
- 230000004044 response Effects 0.000 claims description 17
- 230000006870 function Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000009118 appropriate response Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
- H04L51/046—Interoperability with other network applications or services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
-
- G06F17/24—
-
- G06F17/2705—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
-
- H04L51/36—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/56—Unified messaging, e.g. interactions between e-mail, instant messaging or converged IP messaging [CPM]
Definitions
- This disclosure relates generally to chat messaging.
- chat messaging applications Users of computers and mobile devices use various chat messaging applications to communicate with one another. These users can use these messaging applications to send messages to other users on these messaging applications.
- the messages can include text, images, videos, files, and/or other information.
- the messages typically travel from a device of a first user to a chat server. The chat server then forwards the messages to a device of a second user.
- users are unable to use one chat messaging application to send chat messages to users on another chat messaging application.
- users are typically forced to use the same chat messaging application if they want to communicate with one another.
- a first user is using a chat messaging application and a second user is using a different chat messaging application, then these two users are unable to send chat messages to one another.
- This disclosure contemplates an unconventional system that allows users on different chat messaging applications to send chat messages to one another using their respective, but different chat messaging applications.
- the system includes a cross-platform messaging tool that performs natural language processing on chat messages and then communicates those messages or responses to those messages to other chat messaging applications.
- the tool is able to relay messages from one chat messaging application to other, different chat messaging applications.
- the tool reduces the load on the chat system (e.g., by removing certain words from messages, by preventing certain messages from being sent, and/or by generating automatic messages and/or responses).
- an apparatus includes a memory and a hardware processor.
- the memory stores natural language processing rules.
- the hardware processor receives a first message from a first chat application of a first user and parses the first message to determine a plurality of words in the first message.
- the processor determines, based on the plurality of words and the natural language processing rules, an intent of the first user and communicates a second message to the first chat application of the first user indicating the intent.
- the processor also receives a third message from the first chat application confirming the intent and in response to the third message, determines, based on the plurality of words, an action and an object.
- the processor further determines, based on the intent, a processing application and communicates a fourth message that includes the action and the object to the processing application.
- the processor also receives a fifth message from the processing application that indicates the results of performing the action on the object and communicates the fifth message to the first chat application.
- the processor receives a sixth message from a second chat application of a second user.
- the second chat application is a different chat application from the first chat application.
- the processor communicates the sixth message to the first chat application.
- a method includes storing, by a memory, natural language processing rules and receiving, by a hardware processor communicatively coupled to the memory, a first message from a first chat application of a first user.
- the method also includes parsing, by the hardware processor, the first message to determine a plurality of words in the first message and determining, by the hardware processor, based on the plurality of words and the natural language processing rules, an intent of the first user.
- the method further includes communicating, by the hardware processor, a second message to the first chat application of the first user indicating the intent and receiving, by the hardware processor, a third message from the first chat application confirming the intent.
- the method also includes in response to the third message, determining, by the hardware processor, based on the plurality of words, an action and an object and determining, by the hardware processor, based on the intent, a processing application.
- the method further includes communicating, by the hardware processor, a fourth message that includes the action and the object to the processing application and receiving, by the hardware processor, a fifth message from the processing application that indicates the results of performing the action on the object.
- the method also includes communicating, by the hardware processor, the fifth message to the first chat application and receiving, by the hardware processor, a sixth message from a second chat application of a second user.
- the second chat application is a different chat application from the first chat application.
- the method also includes communicating, by the hardware processor, the sixth message to the first chat application.
- a system includes a first device, a second device, a server, and a messaging tool.
- the first device of a first user executes a first chat application.
- the second device of a second user executes a second chat application.
- the second chat application is a different chat application than the first chat application.
- the server hosts a plurality of processing applications.
- the messaging tool stores natural language processing rules and receives a first message from the first chat application.
- the messaging tool parses the first message to determine a plurality of words in the first message and determines, based on the plurality of words and the natural language processing rules, an intent of the first user.
- the messaging tool also communicates a second message to the first chat application of the first user indicating the intent and receives a third message from the first chat application confirming the intent.
- the messaging tool further in response to the third message, determines, based on the plurality of words, an action and an object and determines, based on the intent, a processing application of the plurality of processing applications.
- the messaging tool also communicates a fourth message that includes the action and the object to the server and receives a fifth message from the server that indicates the results of performing the action on the object using the determined processing application.
- the messaging tool communicates the fifth message to the first chat application, receives a sixth message from the second chat application, and communicates the sixth message to the first chat application.
- an embodiment allows users on a first chat messaging application to send chat messages, using the first chat messaging application, to users on a second, different chat messaging application.
- an embodiment allows for message load to be reduced through natural language processing.
- Certain embodiments may include none, some, or all of the above technical advantages.
- One or more other technical advantages may be readily apparent to one skilled in the art from the figures, descriptions, and claims included herein.
- FIG. 1 illustrates an example system
- FIG. 2 illustrates an example cross-platform messaging tool of the system of FIG. 1 ;
- FIG. 3 is a flowchart illustrating a method for sending cross-platform chat messages using the system of FIG. 1 .
- FIGS. 1 through 3 of the drawings like numerals being used for like and corresponding parts of the various drawings.
- chat messaging applications Users of computers and mobile devices use various chat messaging applications to communicate with one another. These users can use these messaging applications to send messages to other users on these messaging applications.
- the messages can include text, images, videos, files, and/or other information.
- the messages typically travel from a device of a first user to a chat server. The chat server then forwards the messages to a device of a second user.
- users are unable to use one chat messaging application to send chat messages to users on another chat messaging application.
- users are typically forced to use the same chat messaging application if they want to communicate with one another.
- a first user is using a chat messaging application and a second user is using a different chat messaging application, then these two users are unable to send chat messages to one another.
- This disclosure contemplates an unconventional system that allows users on different chat messaging applications to send chat messages to one another using their respective, but different chat messaging applications.
- the system includes a cross-platform messaging tool that performs natural language processing on chat messages and then communicates those messages or responses to those messages to other chat messaging applications. In this manner, the tool is able to relay messages from one chat messaging application to other, different chat messaging applications.
- the tool reduces the load on the chat system (e.g., by removing certain words from messages, by preventing certain messages from being sent, and/or by generating automatic messages and/or responses).
- FIGS. 1 through 3 The system and the messaging tool will be described in more detail using FIGS. 1 through 3 .
- FIG. 1 illustrates an example system 100 .
- system 100 includes one or more users 105 , one or more devices 110 , a network 115 , a server 117 , and a cross-platform messaging tool 120 .
- system 100 allows users on different chat messaging applications to communicate with each other through their respective but different chat messaging applications.
- system 100 also performs natural language processing on messages to reduce the messaging load in system 100 .
- Users 105 use devices 110 to send chat messages to other users 105 .
- user 105 A may communicate messages to users 105 B or 105 C using a chat messaging application 110 A.
- Each user 105 may use any device that executes chat messaging applications to communicate with other users 105 .
- Devices 110 are used to execute chat messaging applications 112 .
- each user 105 has one or more devices 110 .
- user 105 A uses devices 110 A
- user 105 B uses devices 110 B
- user 105 C uses devices 110 C.
- Each device 110 executes its own respective chat messaging application 112 .
- device 110 A executes application 112 A
- device 110 B executes application 112 B
- device 110 C executes application 112 C.
- the chat messaging applications 112 may be used to send and receive messages to and from users 105 in system 100 . These messages may include text, images, videos, files and/or other information.
- chat messaging applications 112 may not be able to send and/or receive messages to and from other chat messaging applications 112 if those chat messaging applications 112 are different.
- user 105 A may be using a chat messaging application 112 A that communicates with a particular chat server. That chat server may not be configured to communicate messages to a different chat messaging application, such as chat messaging application 112 C of user 105 C.
- chat messaging application 112 C may not use chat messaging application 112 C to communicate messages to user 105 A or application 112 A.
- users 105 A and 105 C are not able to communicate with each other through their respective chat messaging applications 112 , because those chat messaging applications 112 are different from each other and communicate with different servers that are not capable of communicating with each other.
- Devices 110 include any appropriate device for communicating with components of system 100 over network 115 .
- devices 110 may be a telephone, a mobile phone, a computer, a laptop, a tablet, an automated assistant, and/or a cash register.
- This disclosure contemplates device 110 being any appropriate device for sending and receiving communications over network 115 .
- device 110 may be a computer, a laptop, a wireless or cellular telephone, an electronic notebook, a personal digital assistant, a tablet, or any other device capable of receiving, processing, storing, and/or communicating information with other components of system 100 .
- Device 110 may also include a user interface, such as a display, a microphone, keypad, or other appropriate terminal equipment usable by user 105 .
- an application executed by device 110 may perform the functions described herein.
- Network 115 facilitates communication between and amongst the various components of system 100 .
- This disclosure contemplates network 115 being any suitable network operable to facilitate communication between the components of system 100 .
- Network 115 may include any interconnecting system capable of transmitting audio, video, signals, data, messages, or any combination of the preceding.
- Network 115 may include all or a portion of a public switched telephone network (PSTN), a public or private data network, a local area network (LAN), a metropolitan area network (MAN), a wide area network (WAN), a local, regional, or global communication or computer network, such as the Internet, a wireline or wireless network, an enterprise intranet, or any other suitable communication link, including combinations thereof, operable to facilitate communication between the components.
- PSTN public switched telephone network
- LAN local area network
- MAN metropolitan area network
- WAN wide area network
- Server 117 hosts one or more processing applications 118 .
- applications 118 perform certain functions in response to messages communicated to server 117 .
- a message may identify a particular application 118 hosted by server 117 .
- the message may also include information that will allow the identified application 118 to perform a requested action.
- the application 118 may generate and communicate another message to indicate the results of the processing.
- application 118 A may determine the resource usage in system 100 . If a user, such as user 105 A, communicates a message requesting the resource usage in system 100 , that message may be communicated to application 118 A. In response to that message, application 118 A may initiate processes that determine resource usage in other components of system 100 .
- application 118 A may start processes on one more devices 110 , network 115 , and/or cross-platform messaging tool 120 to determine the resources that are being used in these components. For example, application 118 A may determine processor, memory and bandwidth usage in these components. After application 118 A determines the resource usage in system 100 , application 118 A may generate and communicate to user 105 A a message indicating the resource usage.
- Cross-platform messaging tool 120 generally allows different chat messaging applications 112 to communicate with each other. As seen in FIG. 1 , cross-platform messaging tool 120 includes processor 125 and memory 130 . This disclosure contemplates processor 125 and memory 130 being configured to perform any of the functions of cross-platform messaging tool 120 described herein. In certain embodiments, messaging tool 120 allows different applications 112 to communicate with each other and reduces the overall messaging load in system 100 through natural language processing.
- Processor 125 is any electronic circuitry, including, but not limited to microprocessors, application specific integrated circuits (ASIC), application specific instruction set processor (ASIP), and/or state machines, that communicatively couples to memory 130 and controls the operation of automation tool 125 .
- Processor 125 may be 8-bit, 16-bit, 32-bit, 64-bit or of any other suitable architecture.
- Processor 125 may include an arithmetic logic unit (ALU) for performing arithmetic and logic operations, processor registers that supply operands to the ALU and store the results of ALU operations, and a control unit that fetches instructions from memory and executes them by directing the coordinated operations of the ALU, registers and other components.
- ALU arithmetic logic unit
- Processor 125 may include other hardware and software that operates to control and process information. Processor 125 executes software stored on memory to perform any of the functions described herein. Processor 125 controls the operation and administration of messaging tool 120 by processing information received from devices 110 , network 115 , and memory 130 . Processor 125 may be a programmable logic device, a microcontroller, a microprocessor, any suitable processing device, or any suitable combination of the preceding. Processor 125 is not limited to a single processing device and may encompass multiple processing devices.
- Memory 130 may store, either permanently or temporarily, data, operational software, or other information for processor 125 .
- Memory 130 may include any one or a combination of volatile or non-volatile local or remote devices suitable for storing information.
- memory 130 may include random access memory (RAM), read only memory (ROM), magnetic storage devices, optical storage devices, or any other suitable information storage device or a combination of these devices.
- the software represents any suitable set of instructions, logic, or code embodied in a computer-readable storage medium.
- the software may be embodied in memory 130 , a disk, a CD, or a flash drive.
- the software may include an application executable by processor 125 to perform one or more of the functions described herein.
- Messaging tool 120 stores one more natural language processing rules 135 . These rules 135 may be used to determine the subject and/or intent of a message communicated by a chat application 112 . Rules 135 may also indicate the appropriate response to particular messages communicated by a chat application 112 . In some embodiments, rules 135 can also be used to filter words (e.g., profanity and gibberish) out of received messages and/or to edit words in received messages (e.g., correcting spelling and/or grammar). In certain embodiments, rules 135 can also be used to reject received messages, such as for example, when a particular user 105 sends too many messages in a certain period of time. In this manner, rules 135 can be used to reduce the messaging load on messaging tool 120 .
- rules 135 may be used to determine the subject and/or intent of a message communicated by a chat application 112 . Rules 135 may also indicate the appropriate response to particular messages communicated by a chat application 112 . In some embodiments, rules 135 can also be used to
- Messaging tool 120 implements a messaging queue 140 .
- Messaging queue 140 generally stores messages received from chat messaging applications 112 in the order that those messages are received. Messaging tool 120 can retrieve messages from queue 140 for processing in the order that the messages were received. In this manner, queue 140 allows messaging tool 120 to receive multiple messages without needing to process those messages at the same time. Rather, messaging tool 120 may process those messages sequentially and communicate responses to those messages sequentially. In this manner, messaging tool 120 is protected from being overflooded by messages in system 100 .
- Cross-platform messaging tool 120 receives a message 145 from a chat application 112 .
- Messaging tool 120 may retrieve message 145 from queue 140 .
- application 112 A communicates message 145 to messaging tool 120 .
- Message 145 enters queue 140 .
- Messaging tool 120 then retrieves message 145 from queue 140 .
- Message 145 may be a chat message generated by a user 105 .
- the message 145 may be intended for another user 105 in system 100 .
- Message 145 include any information such as text, image, videos, files and/or other information.
- Messaging tool 120 parses message 145 to determine one or more words 150 that are in message 145 .
- messaging tool 120 parses message 145 to determine words 150 A, 150 B, and 150 C. These words 150 may appear somewhere in message 145 .
- Messaging tool 120 may use a stored dictionary and/or rules 135 to determine which words 150 in message 145 are significant. Words 150 can be used and/or analyzed to determine how messages 145 should be processed and/or responded to.
- Messaging tool 120 may use rules 135 to analyze words 150 of message 145 . Based on this analysis, messaging tool 120 may determine an intent 155 of message 145 . For example, if message 145 requests resource usage in system 100 , messaging tool 120 may determine that the intent 155 of message 145 is to determine resource usage. In this instance, words 150 may include “resource,” “usage,” “processing,” “bandwidth,” “memory,” and/or “much.” Based on these words, messaging tool 120 can determine the intent 155 of message 145 .
- Messaging tool 120 may then generate message 160 to confirm the identified intent 155 .
- message 160 may ask whether the user is trying to determine resource usage.
- Messaging tool 120 may then communicate message 160 back to the user who sent message 145 and/or to the chat application 112 that communicated message 145 .
- Messaging tool 120 may receive message 165 confirming the determined intent 155 .
- Message 165 may be communicated by the user 105 or chat application 112 that communicated message 145 .
- message 165 may be received by messaging tool 120 and placed in queue 140 for subsequent processing. If message 165 does not confirm intent 155 , then messaging tool 120 may analyze words 150 again using rules 135 to determine another intent 155 . If message 165 confirms the determined intent 155 , then messaging tool 120 may proceed with the processing of message 145 .
- Messaging tool 120 may update rules 135 based on message 165 .
- messaging tool 120 may update rules 135 so that the same parsed words 150 do not subsequently result in the same, incorrect determination of intent 155 .
- Messaging tool 120 may also update rules 135 when message 165 indicates that the determined intent 155 was correct, so that future instances of words 150 will result in the correct determination of intent 155 .
- Messaging tool 120 may determine an action 170 and an object 175 based on words 150 .
- action 170 is one of the words 150 and object 175 is another one of the words 150 in message 145 .
- messaging tool 120 may determine a requested function to be performed.
- action 170 may be to determine resource usage and object 175 may be system 100 .
- This disclosure contemplates messaging tool determining any suitable action 170 and any suitable object 175 .
- action 170 is a function to be performed and object 175 is a component on which the function is to be performed.
- Messaging tool 120 may generate a message 180 that identifies action 170 and object 175 . Messaging tool 120 may then determine a processing application 118 based on intent 155 . For example, if intent 155 indicates that message 145 is requesting resource usage, message 180 may identify a processing application 118 that determines resource usage. Messaging tool 120 then communicates message 180 to server 117 and the determined application 118 . In some embodiments, message 180 may identify the determined application 118 so that server 117 can forward message 180 to the determined application 118 .
- Messaging tool 120 receives a response message 185 from server 117 indicating the results of performing the action 170 on object 175 indicated by message 180 .
- message 185 may indicate the resource usage of system 100 .
- Messaging tool 120 may then communicate message 185 to one or more chat applications 112 .
- messaging tool 120 may communicate message 185 to the chat application 112 that communicated message 145 .
- message 145 may indicate an intended recipient other than the sender of message 145 .
- Messaging tool 120 may communicate message 185 to the chat application 112 of the intended recipient.
- messaging tool 120 may relay a message to a different chat application.
- messaging tool 120 receives and retrieves a message 190 from queue 140 .
- Message 190 may have been communicated by chat application 112 A and user 105 A.
- Message 190 may indicate an intended recipient that is different from user 105 A and chat application 112 A.
- messaging tool 120 may forward message 190 to the intended recipient.
- messaging tool 120 sends message 190 to chat application 112 C of user 105 C.
- Chat application 112 C may be different from chat application 112 A.
- chat application 112 A may not normally be able to communicate message 190 to chat application 112 C.
- messaging tool 120 allows chat application 112 A to communicate message 190 to chat application 112 C.
- user 105 A can communicate with user 105 C through their respective chat applications 112 , even though those chat applications 112 are different from one another.
- messaging tool 120 may communicate message 190 to a different chat application 112 of the sending user.
- messaging tool 120 may communicate message 190 to a chat application 112 of user 105 that is different from chat application 112 A, which communicated message 190 to messaging tool 120 .
- a user such as user 105 A, is able to communicate messages from one chat application 112 to another different chat application 112 of user 105 A.
- chat applications 112 can communicate messages to one another. Additionally, messaging tool 120 may reduce the overall messaging load in system 100 by performing natural language processing on received messages. For example, certain responses may be generated and communicated to chat applications 112 by messaging tool 120 after they have been processed by applications 118 . In this manner, messages to and from other users may not be needed to respond to a message communicated by a chat application 112 .
- FIG. 2 illustrates an example cross platform messaging tool 120 of the system 100 of FIG. 1 .
- messaging tool 120 allows different chat applications to communicate messages to one another. Additionally, messaging tool 120 performs natural language processing on received messages to reduce the message load in system 100 .
- Messaging tool 120 implements queue 140 to manage incoming messages. As seen in FIG. 2 , messaging tool 120 may receive messages from one or more chat applications 205 A and 205 B. Application 205 A may be a different chat application than chat application 205 B. As a result, application 205 A may not normally be able to communicate messages to application 205 B. Messaging tool 120 allows application 205 A to communicate messages to application 205 B.
- Queue 140 receives messages from applications 205 A and 205 B. In the example of FIG. 2 , queue 140 receives message 145 A. Message 145 A may be a chat message that includes text, images, videos, files, and/or other information. Queue 140 may receive message 145 A from chat application 205 A or application 205 B. Generally, queue 140 stores messages in the order that they are retrieved so that messaging tool 120 can process those messages in the order that they are received.
- Messaging tool 120 parses message 145 A to determine one or more words 150 within message 145 A. In the example of FIG. 2 , messaging tool 120 determines that words 150 A, 150 B, and 150 C are in message 145 A. Messaging tool 120 may use these parsed words 150 to determine certain aspects of message 145 A.
- Messaging tool 120 may use stored rules 135 to analyze words 150 A, 150 B, and 150 C. Based on this analysis, messaging tool 120 may determine that message 145 A had an intent 155 A. Intent 155 A may indicate the purpose and/or the subject of message 145 A. Messaging tool 120 may then generate a message 160 A to confirm the determined intent 155 A. Messaging tool 120 may communicate message 160 A to application 205 A and/or application 205 B. In some instances, messaging tool 120 communicates message 160 A back to the application 205 that communicated message 145 A.
- Messaging tool 120 may receive, through queue 140 , a message 165 A that confirms or denies the determined intent 155 A indicated by message 160 A. If message 165 A denies or rejects the determined intent 155 A, messaging tool 120 may analyze words 150 A, 150 B, and 150 C, again, using rules 135 to determine another intent 155 . If message 165 A confirms the determined intent 155 messaging tool 120 may continue processing message 145 A.
- Messaging tool 120 determines an action 170 A and an object 175 A from words 150 A, 150 B, and 150 C.
- Action 170 A may indicate an action or function to be performed on object 175 A.
- messaging tool 120 may determine how to process message 145 A based on intent 155 A, action 170 A, and object 175 A.
- Messaging tool 120 may determine a processing application 118 to perform action 170 A on object 175 A. For example, if intent 155 A is to determine resource usage then messaging tool 120 may communicate a message to a processing application 118 that determines resource usage.
- Messaging tool 120 generates message 180 A to communicate action 170 A and object 175 A to a server 117 .
- message 180 A may identify a processing application 118 determined using intent 155 A.
- Messaging tool 120 may communicate message 180 A to server 117 .
- Server 117 may process message 180 A. For example, server 117 may forward message 180 A to an identified processing application 118 such as application 118 A. The processing application 118 then performs the identified action 170 A on object 175 A. After performing the requested action 170 A, application 118 A may generate and communicate message 185 A to messaging tool 120 . Messaging tool 120 may communicate message 185 A to one or more chat applications 205 . For example, messaging tool 120 may communicate message 185 A to application 205 A and/or application 205 B, even though application 205 A and application 205 B are different.
- Application 205 A and application 205 B may be executed by different devices and/or by different users. In some instances, applications 205 A and 205 B are run by the same device and/or the same user.
- Messaging tool 120 may perform natural language processing to reduce the message load on messaging tool 120 in some embodiments. As shown in the example of FIG. 2 , messaging tool 120 receives through queue 140 a message 145 B. Messaging tool 120 then parses message 145 B to determine words 150 D, 150 E, and 150 F. Messaging tool 120 may then apply rules 135 on words 150 D, 150 E, and 150 F to perform certain actions. For example, messaging tool 120 may remove or delete word 150 D based on rules 135 . This may occur because rule 150 D may be determined to be gibberish and/or profanity according to rules 135 .
- messaging tool 120 By removing word 150 D, messaging tool 120 reduces the number of words 150 to be analyzed and/or improves the accuracy of intent 155 B, action 170 B, and object 175 B.
- messaging tool 120 edits word 150 F based on rules 135 .
- messaging tool 120 may correct the spelling of word 150 F based on rules 135 .
- By correcting and/or editing word 150 F messaging tool 120 may improve the accuracy of determining intent, actions, and objects, based on words 150 D, 150 E, and 150 F. In this manner, the load on messaging tool 120 is reduced.
- Messaging tool 120 may then determine an intent 155 B for words 150 E and 150 F using rules 135 .
- the intent 155 B may indicate the purpose or subject of messages 145 B.
- Messaging tool 120 may then generate and communicate message 160 B to confirm the determined intent 155 B.
- Messaging tool 120 may communicate message 160 B to application 205 A and/or application 205 B.
- Messaging tool 120 receives messaging 165 B through queue 140 .
- Message 165 B may confirm or deny the determined intent 155 B. If message 165 B denies intent 155 B, messaging tool 120 may analyze words 150 E and 150 F, again, using rules 135 to determine another intent 155 B. If message 165 B confirms intent 155 B, messaging tool 120 may continue processing message 145 B.
- Messaging tool 120 determines action 170 B and object 175 B based on words 150 E and 150 F. Messaging tool 120 may also determine a processing application based on the confirmed intent 155 B. Messaging tool 120 may then generate messages 180 B, identifying action 170 B, and object 175 B. Message 180 D may also identify the identified processing application. Messaging tool 120 communicates message 180 B to server 117 . Server 117 forwards message 180 B to the identified application 118 . The application 118 then performs the action 170 B on object 175 B. Server 117 generates message 185 B that identifies the results of performing action 170 B on object 175 B. Server 117 communicates message 185 B to messaging tool 120 . Messaging tool 120 communicates message 185 B to one or more of application 205 A and/or 205 B.
- messaging tool 120 may reject a received message based on rules 135 .
- messaging tool 120 receives message 145 C through queue 140 .
- Rules 135 may indicate that message 145 C should be rejected, and in response, messaging tool 120 rejects message 145 C.
- rules 135 may limit the number of messages that a particular application 205 may communicate to messaging tool 120 in a certain period of time. Message 145 C may exceed the number of messages in that period of time, and so, messaging tool 120 rejects message 145 C.
- rules 135 may indicate that messages containing certain words, such as profanity, should be rejected. In response, messaging tool 120 may reject message 145 C because it contains profanity.
- FIG. 3 is a flow chart illustrating a method 300 for sending cross-platform chat messages using the system 100 of FIG. 1 .
- messaging tool 120 performs method 300 .
- messaging tool 120 allows different chat messaging applications to communicate with one another and reduces the messaging load on the system.
- Messaging tool 120 begins by storing natural language processing rules in step 305 .
- messaging tool 120 receives a first message from a first chat application of a first user. The first message may request a certain action be performed on a certain object.
- Messaging tool 120 parses the first message in step 315 . By parsing the first message, messaging tool 120 may identify one or more words in the first message.
- messaging tool 120 determines an intent of the first user. Messaging tool 120 may determine the intent by using the words parsed from the first message and the natural language processing rules.
- Messaging tool 120 communicates a second message indicating the intent in step 325 .
- the second message may be communicated to the first chat application.
- messaging tool 120 receives a third message confirming the intent.
- Messaging tool 120 determines an action and an object using the words parsed from the first message in step 335 .
- messaging tool 120 determines a processing application based on the determined intent.
- messaging tool 120 communicates a fourth message to the processing application indicating the action and the object.
- the processing application may be hosted by a server that is separate from messaging tool 120 .
- the fourth message may be communicated to the server and the server may forward the message to the determined processing application.
- messaging tool receives a fifth message indicating the result of performing the action on the object.
- the fifth message may be generated by the server that hosted the processing application.
- Messaging tool 120 communicates the fifth message to the first chat application in step 355 .
- messaging tool 120 receives a sixth message from a second chat application of a second user.
- the second chat application may be a different chat application than the first chat application. Normally, the second chat application cannot communicate messages to the first chat application and vice versa.
- messaging tool 120 communicates that sixth message to the first chat application. In this manner, messages from the second chat application are relayed to the first chat application.
- Method 300 may include more, fewer, or other steps. For example, steps may be performed in parallel or in any suitable order. While discussed as messaging tool 120 performing the steps, any suitable component of system 100 , such as device(s) 110 for example, may perform one or more steps of the methods.
Abstract
Description
- This disclosure relates generally to chat messaging.
- Users of computers and mobile devices use various chat messaging applications to communicate with one another.
- Users of computers and mobile devices use various chat messaging applications to communicate with one another. These users can use these messaging applications to send messages to other users on these messaging applications. The messages can include text, images, videos, files, and/or other information. The messages typically travel from a device of a first user to a chat server. The chat server then forwards the messages to a device of a second user.
- In existing implementations, users are unable to use one chat messaging application to send chat messages to users on another chat messaging application. In other words, users are typically forced to use the same chat messaging application if they want to communicate with one another. As a result, if a first user is using a chat messaging application and a second user is using a different chat messaging application, then these two users are unable to send chat messages to one another.
- This disclosure contemplates an unconventional system that allows users on different chat messaging applications to send chat messages to one another using their respective, but different chat messaging applications. The system includes a cross-platform messaging tool that performs natural language processing on chat messages and then communicates those messages or responses to those messages to other chat messaging applications. In this manner, the tool is able to relay messages from one chat messaging application to other, different chat messaging applications. By performing natural language processing on received messages, the tool reduces the load on the chat system (e.g., by removing certain words from messages, by preventing certain messages from being sent, and/or by generating automatic messages and/or responses).
- According to an embodiment, an apparatus includes a memory and a hardware processor. The memory stores natural language processing rules. The hardware processor receives a first message from a first chat application of a first user and parses the first message to determine a plurality of words in the first message. The processor determines, based on the plurality of words and the natural language processing rules, an intent of the first user and communicates a second message to the first chat application of the first user indicating the intent. The processor also receives a third message from the first chat application confirming the intent and in response to the third message, determines, based on the plurality of words, an action and an object. The processor further determines, based on the intent, a processing application and communicates a fourth message that includes the action and the object to the processing application. The processor also receives a fifth message from the processing application that indicates the results of performing the action on the object and communicates the fifth message to the first chat application. The processor receives a sixth message from a second chat application of a second user. The second chat application is a different chat application from the first chat application. The processor communicates the sixth message to the first chat application.
- According to another embodiment, a method includes storing, by a memory, natural language processing rules and receiving, by a hardware processor communicatively coupled to the memory, a first message from a first chat application of a first user. The method also includes parsing, by the hardware processor, the first message to determine a plurality of words in the first message and determining, by the hardware processor, based on the plurality of words and the natural language processing rules, an intent of the first user. The method further includes communicating, by the hardware processor, a second message to the first chat application of the first user indicating the intent and receiving, by the hardware processor, a third message from the first chat application confirming the intent. The method also includes in response to the third message, determining, by the hardware processor, based on the plurality of words, an action and an object and determining, by the hardware processor, based on the intent, a processing application. The method further includes communicating, by the hardware processor, a fourth message that includes the action and the object to the processing application and receiving, by the hardware processor, a fifth message from the processing application that indicates the results of performing the action on the object. The method also includes communicating, by the hardware processor, the fifth message to the first chat application and receiving, by the hardware processor, a sixth message from a second chat application of a second user. The second chat application is a different chat application from the first chat application. The method also includes communicating, by the hardware processor, the sixth message to the first chat application.
- According to yet another embodiment, a system includes a first device, a second device, a server, and a messaging tool. The first device of a first user executes a first chat application. The second device of a second user executes a second chat application. The second chat application is a different chat application than the first chat application. The server hosts a plurality of processing applications. The messaging tool stores natural language processing rules and receives a first message from the first chat application. The messaging tool parses the first message to determine a plurality of words in the first message and determines, based on the plurality of words and the natural language processing rules, an intent of the first user. The messaging tool also communicates a second message to the first chat application of the first user indicating the intent and receives a third message from the first chat application confirming the intent. The messaging tool further in response to the third message, determines, based on the plurality of words, an action and an object and determines, based on the intent, a processing application of the plurality of processing applications. The messaging tool also communicates a fourth message that includes the action and the object to the server and receives a fifth message from the server that indicates the results of performing the action on the object using the determined processing application. The messaging tool communicates the fifth message to the first chat application, receives a sixth message from the second chat application, and communicates the sixth message to the first chat application.
- Certain embodiments provide one or more technical advantages. For example, an embodiment allows users on a first chat messaging application to send chat messages, using the first chat messaging application, to users on a second, different chat messaging application. As another example, an embodiment allows for message load to be reduced through natural language processing. Certain embodiments may include none, some, or all of the above technical advantages. One or more other technical advantages may be readily apparent to one skilled in the art from the figures, descriptions, and claims included herein.
- For a more complete understanding of the present disclosure, reference is now made to the following description, taken in conjunction with the accompanying drawings, in which:
-
FIG. 1 illustrates an example system; -
FIG. 2 illustrates an example cross-platform messaging tool of the system ofFIG. 1 ; -
FIG. 3 is a flowchart illustrating a method for sending cross-platform chat messages using the system ofFIG. 1 . - Embodiments of the present disclosure and its advantages are best understood by referring to
FIGS. 1 through 3 of the drawings, like numerals being used for like and corresponding parts of the various drawings. - Users of computers and mobile devices use various chat messaging applications to communicate with one another. These users can use these messaging applications to send messages to other users on these messaging applications. The messages can include text, images, videos, files, and/or other information. The messages typically travel from a device of a first user to a chat server. The chat server then forwards the messages to a device of a second user.
- In existing implementations, users are unable to use one chat messaging application to send chat messages to users on another chat messaging application. In other words, users are typically forced to use the same chat messaging application if they want to communicate with one another. As a result, if a first user is using a chat messaging application and a second user is using a different chat messaging application, then these two users are unable to send chat messages to one another.
- This disclosure contemplates an unconventional system that allows users on different chat messaging applications to send chat messages to one another using their respective, but different chat messaging applications. The system includes a cross-platform messaging tool that performs natural language processing on chat messages and then communicates those messages or responses to those messages to other chat messaging applications. In this manner, the tool is able to relay messages from one chat messaging application to other, different chat messaging applications. By performing natural language processing on received messages, the tool reduces the load on the chat system (e.g., by removing certain words from messages, by preventing certain messages from being sent, and/or by generating automatic messages and/or responses). The system and the messaging tool will be described in more detail using
FIGS. 1 through 3 . -
FIG. 1 illustrates anexample system 100. As seen inFIG. 1 ,system 100 includes one or more users 105, one or more devices 110, anetwork 115, aserver 117, and across-platform messaging tool 120. Generally,system 100 allows users on different chat messaging applications to communicate with each other through their respective but different chat messaging applications. In certain embodiments,system 100 also performs natural language processing on messages to reduce the messaging load insystem 100. - Users 105 use devices 110 to send chat messages to other users 105. For example,
user 105A may communicate messages tousers chat messaging application 110A. Each user 105 may use any device that executes chat messaging applications to communicate with other users 105. - Devices 110 are used to execute chat messaging applications 112. In
system 100, each user 105 has one or more devices 110. For example,user 105A usesdevices 110A,user 105B usesdevices 110B, anduser 105C usesdevices 110C. Each device 110 executes its own respective chat messaging application 112. For example,device 110A executesapplication 112A,device 110B executesapplication 112B, anddevice 110C executesapplication 112C. The chat messaging applications 112 may be used to send and receive messages to and from users 105 insystem 100. These messages may include text, images, videos, files and/or other information. - In existing implementations, chat messaging applications 112 may not be able to send and/or receive messages to and from other chat messaging applications 112 if those chat messaging applications 112 are different. For example,
user 105A may be using achat messaging application 112A that communicates with a particular chat server. That chat server may not be configured to communicate messages to a different chat messaging application, such aschat messaging application 112C ofuser 105C. Similarly,user 105C may not usechat messaging application 112C to communicate messages touser 105A orapplication 112A. As a result,users - Devices 110 include any appropriate device for communicating with components of
system 100 overnetwork 115. For example, devices 110 may be a telephone, a mobile phone, a computer, a laptop, a tablet, an automated assistant, and/or a cash register. This disclosure contemplates device 110 being any appropriate device for sending and receiving communications overnetwork 115. As an example and not by way of limitation, device 110 may be a computer, a laptop, a wireless or cellular telephone, an electronic notebook, a personal digital assistant, a tablet, or any other device capable of receiving, processing, storing, and/or communicating information with other components ofsystem 100. Device 110 may also include a user interface, such as a display, a microphone, keypad, or other appropriate terminal equipment usable by user 105. In some embodiments, an application executed by device 110 may perform the functions described herein. -
Network 115 facilitates communication between and amongst the various components ofsystem 100. This disclosure contemplatesnetwork 115 being any suitable network operable to facilitate communication between the components ofsystem 100.Network 115 may include any interconnecting system capable of transmitting audio, video, signals, data, messages, or any combination of the preceding.Network 115 may include all or a portion of a public switched telephone network (PSTN), a public or private data network, a local area network (LAN), a metropolitan area network (MAN), a wide area network (WAN), a local, regional, or global communication or computer network, such as the Internet, a wireline or wireless network, an enterprise intranet, or any other suitable communication link, including combinations thereof, operable to facilitate communication between the components. -
Server 117 hosts one or more processing applications 118. Generally, applications 118 perform certain functions in response to messages communicated toserver 117. For example, a message may identify a particular application 118 hosted byserver 117. The message may also include information that will allow the identified application 118 to perform a requested action. After the identified application 118 performs the requested action, the application 118 may generate and communicate another message to indicate the results of the processing. For example,application 118A may determine the resource usage insystem 100. If a user, such asuser 105A, communicates a message requesting the resource usage insystem 100, that message may be communicated toapplication 118A. In response to that message,application 118A may initiate processes that determine resource usage in other components ofsystem 100. For example,application 118A may start processes on one more devices 110,network 115, and/orcross-platform messaging tool 120 to determine the resources that are being used in these components. For example,application 118A may determine processor, memory and bandwidth usage in these components. Afterapplication 118A determines the resource usage insystem 100,application 118A may generate and communicate touser 105A a message indicating the resource usage. -
Cross-platform messaging tool 120 generally allows different chat messaging applications 112 to communicate with each other. As seen inFIG. 1 ,cross-platform messaging tool 120 includesprocessor 125 andmemory 130. This disclosure contemplatesprocessor 125 andmemory 130 being configured to perform any of the functions ofcross-platform messaging tool 120 described herein. In certain embodiments,messaging tool 120 allows different applications 112 to communicate with each other and reduces the overall messaging load insystem 100 through natural language processing. -
Processor 125 is any electronic circuitry, including, but not limited to microprocessors, application specific integrated circuits (ASIC), application specific instruction set processor (ASIP), and/or state machines, that communicatively couples tomemory 130 and controls the operation ofautomation tool 125.Processor 125 may be 8-bit, 16-bit, 32-bit, 64-bit or of any other suitable architecture.Processor 125 may include an arithmetic logic unit (ALU) for performing arithmetic and logic operations, processor registers that supply operands to the ALU and store the results of ALU operations, and a control unit that fetches instructions from memory and executes them by directing the coordinated operations of the ALU, registers and other components.Processor 125 may include other hardware and software that operates to control and process information.Processor 125 executes software stored on memory to perform any of the functions described herein.Processor 125 controls the operation and administration ofmessaging tool 120 by processing information received from devices 110,network 115, andmemory 130.Processor 125 may be a programmable logic device, a microcontroller, a microprocessor, any suitable processing device, or any suitable combination of the preceding.Processor 125 is not limited to a single processing device and may encompass multiple processing devices. -
Memory 130 may store, either permanently or temporarily, data, operational software, or other information forprocessor 125.Memory 130 may include any one or a combination of volatile or non-volatile local or remote devices suitable for storing information. For example,memory 130 may include random access memory (RAM), read only memory (ROM), magnetic storage devices, optical storage devices, or any other suitable information storage device or a combination of these devices. The software represents any suitable set of instructions, logic, or code embodied in a computer-readable storage medium. For example, the software may be embodied inmemory 130, a disk, a CD, or a flash drive. In particular embodiments, the software may include an application executable byprocessor 125 to perform one or more of the functions described herein. -
Messaging tool 120 stores one more natural language processing rules 135. Theserules 135 may be used to determine the subject and/or intent of a message communicated by a chat application 112.Rules 135 may also indicate the appropriate response to particular messages communicated by a chat application 112. In some embodiments,rules 135 can also be used to filter words (e.g., profanity and gibberish) out of received messages and/or to edit words in received messages (e.g., correcting spelling and/or grammar). In certain embodiments,rules 135 can also be used to reject received messages, such as for example, when a particular user 105 sends too many messages in a certain period of time. In this manner, rules 135 can be used to reduce the messaging load onmessaging tool 120. -
Messaging tool 120 implements amessaging queue 140.Messaging queue 140 generally stores messages received from chat messaging applications 112 in the order that those messages are received.Messaging tool 120 can retrieve messages fromqueue 140 for processing in the order that the messages were received. In this manner,queue 140 allowsmessaging tool 120 to receive multiple messages without needing to process those messages at the same time. Rather,messaging tool 120 may process those messages sequentially and communicate responses to those messages sequentially. In this manner,messaging tool 120 is protected from being overflooded by messages insystem 100. -
Cross-platform messaging tool 120 receives amessage 145 from a chat application 112.Messaging tool 120 may retrievemessage 145 fromqueue 140. In the example ofFIG. 1 ,application 112A communicatesmessage 145 tomessaging tool 120.Message 145 entersqueue 140.Messaging tool 120 then retrievesmessage 145 fromqueue 140.Message 145 may be a chat message generated by a user 105. Themessage 145 may be intended for another user 105 insystem 100.Message 145 include any information such as text, image, videos, files and/or other information. -
Messaging tool 120 parsesmessage 145 to determine one or more words 150 that are inmessage 145. In the example ofFIG. 1 ,messaging tool 120 parsesmessage 145 to determinewords message 145.Messaging tool 120 may use a stored dictionary and/orrules 135 to determine which words 150 inmessage 145 are significant. Words 150 can be used and/or analyzed to determine howmessages 145 should be processed and/or responded to. -
Messaging tool 120 may userules 135 to analyze words 150 ofmessage 145. Based on this analysis,messaging tool 120 may determine anintent 155 ofmessage 145. For example, ifmessage 145 requests resource usage insystem 100,messaging tool 120 may determine that theintent 155 ofmessage 145 is to determine resource usage. In this instance, words 150 may include “resource,” “usage,” “processing,” “bandwidth,” “memory,” and/or “much.” Based on these words,messaging tool 120 can determine theintent 155 ofmessage 145. -
Messaging tool 120 may then generatemessage 160 to confirm the identifiedintent 155. Using the previous example,message 160 may ask whether the user is trying to determine resource usage.Messaging tool 120 may then communicatemessage 160 back to the user who sentmessage 145 and/or to the chat application 112 that communicatedmessage 145. -
Messaging tool 120 may receivemessage 165 confirming thedetermined intent 155.Message 165 may be communicated by the user 105 or chat application 112 that communicatedmessage 145. In some embodiments,message 165 may be received bymessaging tool 120 and placed inqueue 140 for subsequent processing. Ifmessage 165 does not confirm intent 155, then messagingtool 120 may analyze words 150 again usingrules 135 to determine anotherintent 155. Ifmessage 165 confirms thedetermined intent 155, then messagingtool 120 may proceed with the processing ofmessage 145.Messaging tool 120 may updaterules 135 based onmessage 165. For example, ifmessage 165 indicates that thedetermined intent 155 was incorrect,messaging tool 120 may updaterules 135 so that the same parsed words 150 do not subsequently result in the same, incorrect determination ofintent 155.Messaging tool 120 may also updaterules 135 whenmessage 165 indicates that thedetermined intent 155 was correct, so that future instances of words 150 will result in the correct determination ofintent 155. -
Messaging tool 120 may determine anaction 170 and anobject 175 based on words 150. In some instances,action 170 is one of the words 150 andobject 175 is another one of the words 150 inmessage 145. By determining theaction 170 and theobject 175,messaging tool 120 may determine a requested function to be performed. Using the previous example,action 170 may be to determine resource usage and object 175 may besystem 100. This disclosure contemplates messaging tool determining anysuitable action 170 and anysuitable object 175. Generally,action 170 is a function to be performed andobject 175 is a component on which the function is to be performed. -
Messaging tool 120 may generate amessage 180 that identifiesaction 170 andobject 175.Messaging tool 120 may then determine a processing application 118 based onintent 155. For example, ifintent 155 indicates thatmessage 145 is requesting resource usage,message 180 may identify a processing application 118 that determines resource usage.Messaging tool 120 then communicatesmessage 180 toserver 117 and the determined application 118. In some embodiments,message 180 may identify the determined application 118 so thatserver 117 can forwardmessage 180 to the determined application 118. -
Messaging tool 120 receives aresponse message 185 fromserver 117 indicating the results of performing theaction 170 onobject 175 indicated bymessage 180. For example,message 185 may indicate the resource usage ofsystem 100. -
Messaging tool 120 may then communicatemessage 185 to one or more chat applications 112. For example,messaging tool 120 may communicatemessage 185 to the chat application 112 that communicatedmessage 145. As another example,message 145 may indicate an intended recipient other than the sender ofmessage 145.Messaging tool 120 may communicatemessage 185 to the chat application 112 of the intended recipient. - In some instances,
messaging tool 120 may relay a message to a different chat application. In the example ofFIG. 1 ,messaging tool 120 receives and retrieves amessage 190 fromqueue 140.Message 190 may have been communicated bychat application 112A anduser 105A.Message 190 may indicate an intended recipient that is different fromuser 105A andchat application 112A. In these instances,messaging tool 120 may forwardmessage 190 to the intended recipient. In the example ofFIG. 1 ,messaging tool 120 sendsmessage 190 to chatapplication 112C ofuser 105C.Chat application 112C may be different fromchat application 112A. As a result,chat application 112A may not normally be able to communicatemessage 190 to chatapplication 112C. However,messaging tool 120 allowschat application 112A to communicatemessage 190 to chatapplication 112C. As a result,user 105A can communicate withuser 105C through their respective chat applications 112, even though those chat applications 112 are different from one another. In some instances,messaging tool 120 may communicatemessage 190 to a different chat application 112 of the sending user. Using the example ofFIG. 1 ,messaging tool 120 may communicatemessage 190 to a chat application 112 of user 105 that is different fromchat application 112A, which communicatedmessage 190 tomessaging tool 120. In this manner, a user, such asuser 105A, is able to communicate messages from one chat application 112 to another different chat application 112 ofuser 105A. - In certain embodiments, by using
messaging tool 120, different chat applications 112 can communicate messages to one another. Additionally,messaging tool 120 may reduce the overall messaging load insystem 100 by performing natural language processing on received messages. For example, certain responses may be generated and communicated to chat applications 112 bymessaging tool 120 after they have been processed by applications 118. In this manner, messages to and from other users may not be needed to respond to a message communicated by a chat application 112. -
FIG. 2 illustrates an example crossplatform messaging tool 120 of thesystem 100 ofFIG. 1 . Generally,messaging tool 120 allows different chat applications to communicate messages to one another. Additionally,messaging tool 120 performs natural language processing on received messages to reduce the message load insystem 100. -
Messaging tool 120 implementsqueue 140 to manage incoming messages. As seen inFIG. 2 ,messaging tool 120 may receive messages from one ormore chat applications Application 205A may be a different chat application thanchat application 205B. As a result,application 205A may not normally be able to communicate messages toapplication 205B.Messaging tool 120 allowsapplication 205A to communicate messages toapplication 205B. -
Queue 140 receives messages fromapplications FIG. 2 ,queue 140 receivesmessage 145A.Message 145A may be a chat message that includes text, images, videos, files, and/or other information. Queue 140 may receivemessage 145A fromchat application 205A orapplication 205B. Generally, queue 140 stores messages in the order that they are retrieved so thatmessaging tool 120 can process those messages in the order that they are received. -
Messaging tool 120 parsesmessage 145A to determine one or more words 150 withinmessage 145A. In the example ofFIG. 2 ,messaging tool 120 determines thatwords message 145A.Messaging tool 120 may use these parsed words 150 to determine certain aspects ofmessage 145A. -
Messaging tool 120 may use storedrules 135 to analyzewords messaging tool 120 may determine thatmessage 145A had an intent 155A. Intent 155A may indicate the purpose and/or the subject ofmessage 145A.Messaging tool 120 may then generate amessage 160A to confirm thedetermined intent 155A.Messaging tool 120 may communicatemessage 160A toapplication 205A and/orapplication 205B. In some instances,messaging tool 120 communicatesmessage 160A back to the application 205 that communicatedmessage 145A. -
Messaging tool 120 may receive, throughqueue 140, amessage 165A that confirms or denies thedetermined intent 155A indicated bymessage 160A. Ifmessage 165A denies or rejects thedetermined intent 155A,messaging tool 120 may analyzewords rules 135 to determine anotherintent 155. Ifmessage 165A confirms thedetermined intent 155messaging tool 120 may continue processingmessage 145A. -
Messaging tool 120 determines anaction 170A and anobject 175A fromwords Action 170A may indicate an action or function to be performed onobject 175A. Generally,messaging tool 120 may determine how to processmessage 145A based onintent 155A,action 170A, and object 175A.Messaging tool 120 may determine a processing application 118 to performaction 170A onobject 175A. For example, ifintent 155A is to determine resource usage then messagingtool 120 may communicate a message to a processing application 118 that determines resource usage. -
Messaging tool 120 generatesmessage 180A to communicateaction 170A and object 175A to aserver 117. In some embodiments,message 180A may identify a processing application 118 determined using intent 155A.Messaging tool 120 may communicatemessage 180A toserver 117. -
Server 117 may processmessage 180A. For example,server 117 may forwardmessage 180A to an identified processing application 118 such asapplication 118A. The processing application 118 then performs the identifiedaction 170A onobject 175A. After performing the requestedaction 170A,application 118A may generate and communicatemessage 185A tomessaging tool 120.Messaging tool 120 may communicatemessage 185A to one or more chat applications 205. For example,messaging tool 120 may communicatemessage 185A toapplication 205A and/orapplication 205B, even thoughapplication 205A andapplication 205B are different. -
Application 205A andapplication 205B may be executed by different devices and/or by different users. In some instances,applications -
Messaging tool 120 may perform natural language processing to reduce the message load onmessaging tool 120 in some embodiments. As shown in the example ofFIG. 2 ,messaging tool 120 receives through queue 140 amessage 145B.Messaging tool 120 then parsesmessage 145B to determinewords Messaging tool 120 may then applyrules 135 onwords messaging tool 120 may remove or deleteword 150D based onrules 135. This may occur becauserule 150D may be determined to be gibberish and/or profanity according torules 135. By removingword 150D,messaging tool 120 reduces the number of words 150 to be analyzed and/or improves the accuracy ofintent 155B,action 170B, and object 175B. As another example,messaging tool 120edits word 150F based onrules 135. For example,messaging tool 120 may correct the spelling ofword 150F based onrules 135. By correcting and/orediting word 150 F messaging tool 120 may improve the accuracy of determining intent, actions, and objects, based onwords messaging tool 120 is reduced. -
Messaging tool 120 may then determine an intent 155B forwords 150 F using rules 135. The intent 155B may indicate the purpose or subject ofmessages 145B.Messaging tool 120 may then generate and communicatemessage 160B to confirm thedetermined intent 155B.Messaging tool 120 may communicatemessage 160B toapplication 205A and/orapplication 205B. -
Messaging tool 120 receives messaging 165B throughqueue 140.Message 165B may confirm or deny thedetermined intent 155B. Ifmessage 165B denies intent 155B,messaging tool 120 may analyzewords rules 135 to determine another intent 155B. Ifmessage 165B confirms intent 155B,messaging tool 120 may continue processingmessage 145B. -
Messaging tool 120 determinesaction 170B and object 175B based onwords Messaging tool 120 may also determine a processing application based on the confirmed intent 155B.Messaging tool 120 may then generatemessages 180B, identifyingaction 170B, and object 175B. Message 180D may also identify the identified processing application.Messaging tool 120 communicatesmessage 180B toserver 117.Server 117forwards message 180B to the identified application 118. The application 118 then performs theaction 170B onobject 175B.Server 117 generatesmessage 185B that identifies the results of performingaction 170B onobject 175B.Server 117 communicatesmessage 185B tomessaging tool 120.Messaging tool 120 communicatesmessage 185B to one or more ofapplication 205A and/or 205B. - In some embodiments,
messaging tool 120 may reject a received message based onrules 135. In the example ofFIG. 2 ,messaging tool 120 receivesmessage 145C throughqueue 140.Rules 135 may indicate thatmessage 145C should be rejected, and in response,messaging tool 120 rejectsmessage 145C. For example, rules 135 may limit the number of messages that a particular application 205 may communicate tomessaging tool 120 in a certain period of time.Message 145C may exceed the number of messages in that period of time, and so,messaging tool 120 rejectsmessage 145C. As another example, rules 135 may indicate that messages containing certain words, such as profanity, should be rejected. In response,messaging tool 120 may rejectmessage 145C because it contains profanity. -
FIG. 3 is a flow chart illustrating amethod 300 for sending cross-platform chat messages using thesystem 100 ofFIG. 1 . In certain embodiments,messaging tool 120 performsmethod 300. By performingmethod 300,messaging tool 120 allows different chat messaging applications to communicate with one another and reduces the messaging load on the system. -
Messaging tool 120 begins by storing natural language processing rules instep 305. Instep 310,messaging tool 120 receives a first message from a first chat application of a first user. The first message may request a certain action be performed on a certain object.Messaging tool 120 parses the first message instep 315. By parsing the first message,messaging tool 120 may identify one or more words in the first message. Instep 320,messaging tool 120 determines an intent of the first user.Messaging tool 120 may determine the intent by using the words parsed from the first message and the natural language processing rules. -
Messaging tool 120 communicates a second message indicating the intent instep 325. The second message may be communicated to the first chat application. Instep 330,messaging tool 120 receives a third message confirming the intent.Messaging tool 120 determines an action and an object using the words parsed from the first message instep 335. Instep 340,messaging tool 120 determines a processing application based on the determined intent. - In
step 345,messaging tool 120 communicates a fourth message to the processing application indicating the action and the object. The processing application may be hosted by a server that is separate frommessaging tool 120. The fourth message may be communicated to the server and the server may forward the message to the determined processing application. Instep 350, messaging tool receives a fifth message indicating the result of performing the action on the object. The fifth message may be generated by the server that hosted the processing application.Messaging tool 120 communicates the fifth message to the first chat application instep 355. - In
step 360,messaging tool 120 receives a sixth message from a second chat application of a second user. The second chat application may be a different chat application than the first chat application. Normally, the second chat application cannot communicate messages to the first chat application and vice versa. Instep 365,messaging tool 120 communicates that sixth message to the first chat application. In this manner, messages from the second chat application are relayed to the first chat application. - Modifications, additions, or omissions may be made to
method 300 depicted inFIG. 3 .Method 300 may include more, fewer, or other steps. For example, steps may be performed in parallel or in any suitable order. While discussed asmessaging tool 120 performing the steps, any suitable component ofsystem 100, such as device(s) 110 for example, may perform one or more steps of the methods. - Although the present disclosure includes several embodiments, a myriad of changes, variations, alterations, transformations, and modifications may be suggested to one skilled in the art, and it is intended that the present disclosure encompass such changes, variations, alterations, transformations, and modifications as fall within the scope of the appended claims.
Claims (21)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/254,485 US10735357B1 (en) | 2019-01-22 | 2019-01-22 | Cross-platform messaging system |
US16/921,544 US11088974B2 (en) | 2019-01-22 | 2020-07-06 | Cross-platform messaging system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/254,485 US10735357B1 (en) | 2019-01-22 | 2019-01-22 | Cross-platform messaging system |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/921,544 Continuation US11088974B2 (en) | 2019-01-22 | 2020-07-06 | Cross-platform messaging system |
Publications (2)
Publication Number | Publication Date |
---|---|
US20200236072A1 true US20200236072A1 (en) | 2020-07-23 |
US10735357B1 US10735357B1 (en) | 2020-08-04 |
Family
ID=71608480
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/254,485 Active US10735357B1 (en) | 2019-01-22 | 2019-01-22 | Cross-platform messaging system |
US16/921,544 Active US11088974B2 (en) | 2019-01-22 | 2020-07-06 | Cross-platform messaging system |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/921,544 Active US11088974B2 (en) | 2019-01-22 | 2020-07-06 | Cross-platform messaging system |
Country Status (1)
Country | Link |
---|---|
US (2) | US10735357B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11115373B1 (en) * | 2020-06-11 | 2021-09-07 | Movius Interactive Corporation | Multi-channel engagement platform converter |
US20220345436A1 (en) * | 2019-08-16 | 2022-10-27 | Saint John Group Llc | Cross-platform message management system |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050114533A1 (en) * | 2003-11-26 | 2005-05-26 | Hullfish Keith C. | Electronic message forwarding |
US20050283726A1 (en) * | 2004-06-17 | 2005-12-22 | Apple Computer, Inc. | Routine and interface for correcting electronic text |
US20150358259A1 (en) * | 2012-04-19 | 2015-12-10 | Strongview Systems, Inc. | Open channel application progamming interface |
US20170293922A1 (en) * | 2016-04-11 | 2017-10-12 | Facebook, Inc. | Techniques for messaging agent coordination |
US20180174222A1 (en) * | 2016-12-16 | 2018-06-21 | Paypal, Inc. | Accessing chat sessions via chat bots for cart generation |
US20180331980A1 (en) * | 2017-05-12 | 2018-11-15 | Telia Company Ab | Methods and apparatuses for cross platforms conversations through a bot framework |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6182059B1 (en) | 1997-04-03 | 2001-01-30 | Brightware, Inc. | Automatic electronic message interpretation and routing system |
CA2704344C (en) | 2010-05-18 | 2020-09-08 | Christopher A. Mchenry | Electronic document classification |
US8631153B2 (en) | 2011-01-06 | 2014-01-14 | Verizon Patent And Licensing Inc. | System and method for processing, assigning, and distributing electronic requests |
US9008283B2 (en) | 2013-03-15 | 2015-04-14 | Genesys Telecommunications Laboratories, Inc. | Customer portal of an intelligent automated agent for a contact center |
US9742916B1 (en) | 2013-12-19 | 2017-08-22 | Amazon Technologies, Inc. | Customer service agent to customer connection |
-
2019
- 2019-01-22 US US16/254,485 patent/US10735357B1/en active Active
-
2020
- 2020-07-06 US US16/921,544 patent/US11088974B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050114533A1 (en) * | 2003-11-26 | 2005-05-26 | Hullfish Keith C. | Electronic message forwarding |
US20050283726A1 (en) * | 2004-06-17 | 2005-12-22 | Apple Computer, Inc. | Routine and interface for correcting electronic text |
US20150358259A1 (en) * | 2012-04-19 | 2015-12-10 | Strongview Systems, Inc. | Open channel application progamming interface |
US20170293922A1 (en) * | 2016-04-11 | 2017-10-12 | Facebook, Inc. | Techniques for messaging agent coordination |
US20180174222A1 (en) * | 2016-12-16 | 2018-06-21 | Paypal, Inc. | Accessing chat sessions via chat bots for cart generation |
US20180331980A1 (en) * | 2017-05-12 | 2018-11-15 | Telia Company Ab | Methods and apparatuses for cross platforms conversations through a bot framework |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220345436A1 (en) * | 2019-08-16 | 2022-10-27 | Saint John Group Llc | Cross-platform message management system |
US11115373B1 (en) * | 2020-06-11 | 2021-09-07 | Movius Interactive Corporation | Multi-channel engagement platform converter |
US20210392107A1 (en) * | 2020-06-11 | 2021-12-16 | Movius Interactive Corporation | Multi-channel engagement platform converter |
US11563711B2 (en) * | 2020-06-11 | 2023-01-24 | Movius Interactive Corporation | Multi-channel engagement platform converter |
US20230118108A1 (en) * | 2020-06-11 | 2023-04-20 | Movius | Multi-channel engagement platform converter |
Also Published As
Publication number | Publication date |
---|---|
US10735357B1 (en) | 2020-08-04 |
US20200336445A1 (en) | 2020-10-22 |
US11088974B2 (en) | 2021-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10742691B2 (en) | Managing mid-dialog session initiation protocol (SIP) messages | |
CN112311841B (en) | Information pushing method and device, electronic equipment and computer readable medium | |
CN109154968B (en) | System and method for secure and efficient communication within an organization | |
US11088974B2 (en) | Cross-platform messaging system | |
US20180046707A1 (en) | Providing searching strategy in connection with answering question in message | |
US10721331B2 (en) | Using an integration service to facilitate interactions between software systems | |
CN111600772A (en) | Network distribution content detection processing device, method, system and electronic equipment | |
CN109949806B (en) | Information interaction method and device | |
US9294372B2 (en) | Status determination in computer network-based communications system | |
US11108712B2 (en) | Automatically determining and selecting a suitable communication channel to deliver messages to recipient | |
CN116303937A (en) | Reply method, reply device, electronic equipment and readable storage medium | |
US10938931B1 (en) | Central subscription platform | |
US11347884B2 (en) | Data security tool | |
US10929237B2 (en) | Error handling tool | |
US20130212371A1 (en) | System Property Manipulation | |
CN114826803B (en) | Conference state processing method and device, electronic equipment and medium | |
US11743218B2 (en) | Message capture in a multi channel communication environment | |
US11882232B2 (en) | Tiered audio notifications based on surrounding context | |
CN109889590B (en) | Message processing method, device, client and computer readable medium | |
CN113722449A (en) | Information processing method, device, electronic equipment and computer readable medium | |
CN114553806A (en) | Instant messaging optimization method, device, equipment and storage medium | |
CN115564455A (en) | Intelligent customer service interaction method, device, equipment, storage medium and program product | |
JP2019128746A (en) | Information processing device, and system and program for distributing data | |
CN113360939A (en) | Control method and device for security access | |
CN116701449A (en) | Data processing method, device, electronic equipment and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: BANK OF AMERICA CORPORATION, NORTH CAROLINA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:PHILIP, CHARLES CHANDY;PULAVARTI, JAYA PRAKASH;YADAV, PRIYA BIRENDRA;SIGNING DATES FROM 20181231 TO 20190102;REEL/FRAME:048096/0288 |
|
FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |