IP Library Granted Patent US 9,935,904
Granted Patent B2
US 9,935,904 · App. 15/173,053 · Granted Apr 3, 2018

Virtual assistant system to enable actionable messaging

Inventors: Vishal Sharma (Los Altos, CA); Elhum Amjadi (Foster City, CA)
Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
H04L51/046H04L51/18H04L67/38H04L67/42H04W88/02
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,935,904
App. No.
15/173,053
Granted
Apr 3, 2018
Kind
B2
Abstract

A virtual assistant system to control external services via messaging includes a mobile device configured to participate in a messaging session between a plurality of other participants, to receive an input command from a user, to translate the received input command into a semantic atom, and to transmit the semantic atom via a message to the messaging session, and an assistant server configured to receive the semantic atom via the message, the assistant server including at least one plugin, the plugin corresponding to a respective external service and configured to generate a proprietary language command corresponding to the received semantic atom, the proprietary language command controlling the corresponding external service to perform a function corresponding to the input command.

Claims (67)

1. A virtual assistant system to control external services via messaging, the virtual assistant system comprising:

a mobile device configured to participate in a messaging session between a plurality of other participants, to receive an input command from a user, to translate the received input command into a semantic atom, and to transmit the semantic atom via an actionable message to the messaging session, the messaging session supporting a plurality of messaging functions including receiving, transmitting, and displaying messages targeted to one or more of the plurality of participants; and

an assistant server configured to receive the semantic atom via the actionable message, the assistant server including at least one plugin, the plugin corresponding to a respective external service and configured to generate a proprietary language command corresponding to the received semantic atom, the proprietary language command controlling the corresponding external service to perform an external function corresponding to the input command;

wherein the external function performed by each external service comprises a function other than the messaging functions supported by the messaging session.

2. The virtual assistant system of claim 1 , wherein the at least one plugin is further configured to receive output data from the corresponding external service as a result of performing the function, to convert the received output data to one or more semantic atoms representing the received output data, and to send the one or more semantic atoms representing the received output data via messages to the messaging session.

3. The virtual assistant system of claim 2 , wherein:

at least one of the plurality of participants has authority to issue commands to the at least one plugin; and

the at least one plugin sends the one or more semantic atoms representing the received output data to the at least one of the plurality of participants having authority to issue commands to the at least one plugin.

4. The virtual assistant system of claim 1 , wherein each of the plurality of participants in the messaging session receives the semantic atom via the message that is sent to the messaging session.

5. The virtual assistant system of claim 1 , wherein the plurality of participants includes at least one of the assistant server, another mobile device, and an external service.

6. The virtual assistant system of claim 5 , wherein an external service participates in the messaging session via a corresponding plugin.

7. The virtual assistant system of claim 1 , wherein the mobile device includes an assistant interface configured to receive the input command from the user and to translate the input command into the semantic atom.

8. The virtual assistant system of claim 1 , wherein at least one of the plurality of participants invites an external service to become a participant of the messaging session.

9. The virtual assistant system of claim 1 , wherein the assistant server stores credentials including data to authorize one or more participants of the messaging session to issue commands for the corresponding external service.

10. The virtual assistant system of claim 9 , wherein:

at least one of the participants of the messaging session is an external service; and

the plugin corresponding to the external service participating in the messaging session transmits one or more semantic atoms via messages only to participants of the messaging session having authority to issue commands to the external service.

11. The virtual assistant system of claim 9 , wherein:

at least one participant of the messaging session controls the assistant server to extend authority to input commands to the corresponding external service to at least one other participant of the messaging session.

12. The virtual assistant system of claim 9 , wherein:

a plurality of the participants of the messaging session control the assistant server to extend authority to input commands to the corresponding external service to each other.

13. The virtual assistant system of claim 1 , wherein a participant of the messaging session transmits the semantic atom representing the input command via a message to another messaging session between another plurality of participants.

14. The virtual assistant system of claim 1 , wherein:

at least one other participant of the messaging session adds data to the semantic atom.

15. The virtual assistant system of claim 1 , wherein the assistant server analyzes context information of the semantic atom to determine the function to be performed before generating the proprietary language command.

16. The virtual assistant system of claim 15 , wherein the context information analyzed by the assistant server includes at least one of a number of times the semantic atom has been transmitted between participants of the messaging session and content of messages transmitted in the messaging session.

17. The virtual assistant system of claim 16 , wherein the assistant server extends authority to issue commands to at least one external service to one or more participants of the messaging session based on the content of messages transmitted in the messaging session.

18. The virtual assistant system of claim 17 , wherein the content of the messages transmitted in the messaging session includes a request for authority to issue commands and a response to the request.

19. The virtual assistant system of claim 18 , wherein the response to the request is automated.

20. The virtual assistant system of claim 16 , wherein the assistant server extends authority to make transactions using payment credentials of a participant based on the content of messages transmitted in the messaging session.

21. The virtual assistant system of claim 1 , wherein the assistant server provides the received atom to a plurality of plugins to generate a corresponding plurality of proprietary language commands.

22. The virtual assistant system of claim 1 , wherein the assistant server provides the received semantic atom to a plurality of plugins to perform a corresponding plurality of functions.

23. The virtual assistant system of claim 1 , wherein the assistant server comprises a plurality of server devices, the plurality of server devices being configured to transmit semantic atoms between each other via a corresponding message via the messaging session.

24. The virtual assistant system of claim 23 , wherein the plurality of server devices comprises:

a main server device configured to communicate with the mobile device; and

one or more subordinate server devices configured to communicate with the main server device.

25. The virtual assistant system of claim 23 , wherein:

one or more of the server devices stores one or more plugins, each of the one or more plugins corresponding to a different external service; and

each of the server devices, upon receiving a semantic atom representing an input command corresponding to a function to be performed at an external service, transmits the semantic atom via a message to the server device storing the plugin corresponding to the external service.

26. The virtual assistant system of claim 23 , wherein one or more of the plurality of server devices are participants in the messaging session.

27. The virtual assistant system of claim 23 , wherein:

one of the plurality of server devices stores credentials including data to authorize one or more participants of the messaging session to issue commands for the one or more external services; and

the server device storing the credentials sends a semantic atom including the stored credentials to another of the plurality of server devices.

28. The virtual assistant system of claim 1 , wherein the assistant server is a participant in the messaging session.

29. The virtual assistant system of claim 1 , wherein the messaging session is a virtual reality (VR) session.

30. A server device to communicate via messaging, the server device comprising:

a storage system to store semantic atoms which can be shared between a plurality of external services and mobile devices, the storage system further including a library of commands to perform external functions at the plurality of external services;

a plurality of plugins, each plugin corresponding to a respective one of the plurality of external services, each plugin being configured to translate between semantic atoms and a respective proprietary language of the corresponding external service; and

a platform configured to share semantic atoms between the plurality of external services and mobile devices via messaging, the platform sharing semantic atoms with the plurality of external services using the proprietary language translated at the respective plugins and sharing semantic atoms with the plurality of mobile devices in which commands to perform any of the external functions are initially input and transmitted to the platform as sematic atoms, each of the external functions comprising a function other than messaging functions associated with the messaging.

31. The server device of claim 30 , wherein the server device participates in a messaging session between a plurality of other participants, the plurality of participants including at least one of an external service and a mobile device.

32. The server device of claim 30 , wherein the platform is configured to directly control external services via messaging by providing semantic atoms to respective plugins corresponding to the external services to generate proprietary language commands.

33. The server device of claim 30 , wherein the server device adds data to a semantic atom and transmits the semantic atom to an external service or mobile device via a message.

34. The server device of claim 30 , further comprising a plurality of server devices, the plurality of server devices being configured to transmit semantic atoms between each other via corresponding messages.

35. The virtual assistant system of claim 34 , wherein the plurality of server devices comprises:

a main server device configured to communicate with the mobile device; and

one or more subordinate server devices configured to communicate with the main server device.

36. The virtual assistant system of claim 34 , wherein:

one or more of the server devices stores one or more plugins, each of the one or more plugins corresponding to a different external service; and

each of the server devices, upon receiving a semantic atom representing an input command corresponding to a function to be performed at an external service, transmits the semantic atom via a message to the server device storing the plugin corresponding to the external service.

37. The virtual assistant system of claim 34 , wherein:

one of the plurality of server devices stores credentials including data to authorize one or more participants of a messaging session to issue commands for the one or more external services; and

the server device storing the credentials sends a semantic atom including the stored credentials to another of the plurality of server devices.

38. A mobile device, comprising:

a user interface to receive an input command from a user; and

an assistant interface to translate the received input command into a semantic atom representing the message, and to transmit the semantic atom via a message to a messaging session to be received at an external server to perform a function corresponding to the input command via a corresponding plugin or to receive a semantic atom including proprietary language of one or more external services to directly perform the function at the one or more external services.

39. The mobile device of claim 38 , wherein the assistant interface is configured to transmit the semantic atom to at least one of another mobile device and a server device via a message to a messaging session.

40. The mobile device of claim 38 , wherein the assistant interface is configured to directly perform the function at a selected external service by transmitting a semantic atom via a message to the selected external service.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 14, 2017
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 044402/0248 →
MERGER Recorded Dec 8, 2017
From: WAND LABS, INC.
To: MICROSOFT CORPORATION
Reel/Frame 044338/0698 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 21, 2016
From: SHARMA, VISHAL; AMJADI, ELHUM
To: WAND LABS, INC.
Reel/Frame 039204/0337 →
Continuity (3)
Continuation 14966212 · Dec 11, 2015
Provisional Application 62090786 · Dec 11, 2014
Related Publication 20170230316A1 · Aug 10, 2017