IP Library › Granted Patent US 11,240,179
Granted Patent B2
US 11,240,179 · App. 15/661,607 · Granted Feb 1, 2022

Internet cloud-hosted natural language interactive messaging system with virtual database

Inventors: Shailendra Mishra (Fremont, CA); Anand Srinivasan (Bangalore, IN); Sangameswaran Viswanathan (Saratoga, CA)
Assignee: ORACLE INTERNATIONAL CORPORATION
H04L51/02G06F16/248G06F16/2457G06F16/2471G06F16/273G06F16/3329G06F16/951G06F16/9535G06F40/295G06F40/30G06F40/35H04L67/02H04L67/2852G06F16/3344H04L51/04
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 11,240,179
App. No.
15/661,607
Granted
Feb 1, 2022
Kind
B2
Abstract

Provided are methods, systems, and computer-program products for responding to a natural language communication, sending a response to request additional information from a user, and exposing an invocable method for accessing a virtual database. Some examples relate to a bot server that can respond to natural-language messages (e.g., questions or comments) through a messaging application using natural-language messages. Other examples relate to storage of event data associated with a web page or a mobile application. Event data can describe one or more actions performed in relation to the web page and/or the mobile application. Other examples relate to behavioral analytics of the event data.

Claims (49)

1. A method comprising:

receiving, by a server with a uniform resource identifier (URI) from a source, a hypertext transfer protocol (HTTP) post call message directed to the URI and comprising event data including a message from a user;

storing the event data in a location in a local database, wherein the server includes the local database, and wherein

the event data is deleted from the location according to a first schedule;

after storing the event data in the location, storing the event data in a remote database according to a second schedule, wherein the remote database is separate from the server, and wherein the first schedule is less often than the second schedule;

defining a virtual database comprising a union of the local database and the remote database;

exposing, to a client application, an application programming interface to receive a query from a user for accessing the virtual database, wherein receiving the query invokes a first invocable method for querying the virtual database;

calculating, by the server, a first summary value from the event data of the source, the first summary value quantifying particular actions performed at the source by one or more users, the first summary value being used to generate a materialized view of analytics associated with the source;

incrementally updating, by the server, the first summary value as new event data is received, the first summary value being updated independent from accessing the event data of the local database and the remote database;

calculating, by the server, a second summary value based at least in part on identifying that a particular action has taken place with respect to a particular user based at least in part on identifying, from a plurality of individual events including the event data received by the server and one or more instances of event data retrieved from the virtual database, that a plurality of required actions associated with the particular action have occurred in accordance with a predefined sequence and within a predefined amount of time of one another; and

exposing, to the client application, a second invocable method for accessing the first summary value and the second summary value.

2. The method of claim 1 , wherein the source is a mobile application or a web page.

3. The method of claim 1 , wherein the first summary value is incrementally updated by the server having the URI on receipt of the HTTP post call message without having to query a database.

4. The method of claim 1 , wherein the first summary value is incrementally updated according to a third schedule, and wherein the first schedule is less often than the third schedule.

5. The method of claim 1 , wherein the first summary value is based on data that is currently stored in the local database and data that is currently stored in the remote database.

6. The method of claim 1 , wherein the first summary value is based on data from a period of time corresponding to a partition of the local database, the period of time occurring prior to a current time.

7. A system comprising:

one or more processors; and

a non-transitory computer-readable medium containing instructions that, when executed by the one or more processors, cause the one or more processors to perform operations including:

receive, by a server with a uniform resource identifier (URI) from a source, a hypertext transfer protocol (HTTP) post call message directed to the URI and comprising event data including a message from a user;

store the event data in a location in a local database, wherein the system includes the local database, and wherein

the event data is deleted from the location according to a first schedule;

after storing the event data in the location, store the event data in a remote database according to a second schedule, wherein the remote database is separate from the system, and wherein the first schedule is less often than the second schedule;

define a virtual database comprising a union of the local database and the remote database;

expose, to a client application, an application programming interface to receive a query from a user for accessing the virtual database, wherein receiving the query invokes a first invocable method for querying the virtual database;

calculate a first summary value from the event data of the source, the first summary value quantifying particular actions performed at the source by one or more users, the first summary value being used to generate a materialized view of analytics associated with the source; and

incrementally update, by the server, the first summary value as new event data is received, the first summary value being updated independent from accessing the event data of the local database and the remote database;

calculate, by the server, a second summary value based at least in part on identifying that a particular action has taken place with respect to a particular user based at least in part on identifying, from a plurality of individual events including the event data received by the server and one or more instances of event data retrieved from the virtual database, that a plurality of required actions associated with the particular action have occurred in accordance with a predefined sequence and within a predefined amount of time of one another;

expose, to the client application, a second invocable method for accessing the first summary value and the second summary value.

8. The system of claim 7 , wherein the source is a mobile application or a web page.

9. The system of claim 7 , wherein the first summary value is incrementally updated by the server having the URI on receipt of the HTTP post call message without having to query a database.

10. The system of claim 7 , wherein the first summary value is incrementally updated according to a third schedule, and wherein the first schedule is less often than the third schedule.

11. The system of claim 7 , wherein the first summary value is based on data that is currently stored in the local database and data that is currently stored in the remote database.

12. The system of claim 7 , wherein the first summary value is based on data from a period of time corresponding to a partition of the local database, the period of time occurring prior to a current time.

13. A computer-program product tangibly embodied in a non-transitory machine-readable storage medium, including instructions that, when executed by one or more processors, cause the one or more processors to:

receive, by a server associated with a uniform resource identifier (URI) from a source, a hypertext transfer protocol (HTTP) post call message directed to the URI and comprising event data including a message from a user;

store the event data in a location in a local database, wherein the server includes the local database, and wherein

the event data is deleted from the location according to a first schedule;

after storing the event data in the location, store the event data in a remote database according to a second schedule, wherein the remote database is separate from the server, and wherein the first schedule is less often than the second schedule;

define a virtual database comprising a union of the local database and the remote database;

expose, to a client application, an application programming interface to receive a query from a user for accessing the virtual database, wherein receiving the query invokes a first invocable method for querying the virtual database;

calculate, by the server, a summary value from the event data of the source, a first summary value quantifying particular actions performed at the source by one or more users, the first summary value being used to generate a materialized view of analytics associated with the source;

incrementally update the first summary value as new event data is received, the first summary value being updated independent from accessing the event data of the local database and the remote database;

calculate, by the server, a second summary value based at least in part on identifying that a particular action has taken place with respect to a particular user based at least in part on identifying, from a plurality of individual events including the event data received by the server and one or more instances of event data retrieved from the virtual database, that a plurality of required actions associated with the particular action have occurred in accordance with a predefined sequence and within a predefined amount of time of one another; and

expose, to the client application, a second invocable method for accessing the first summary value and the second summary value.

14. The computer-program product of claim 13 , wherein the source is a mobile application or a web page.

15. The computer-program product of claim 13 , wherein the first summary value is incrementally updated by the server upon receipt of the HTTP post call message without having to query a database.

16. The computer-program product of claim 13 , wherein the first summary value is incrementally updated according to a third schedule, and wherein the first schedule is less often than the third schedule.

17. The computer-program product of claim 13 , wherein the first summary value is based on data that is currently stored in the local database and data that is currently stored in the remote database.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 6, 2017
From: MISHRA, SHAILENDRA; SRINIVASAN, ANAND; VISWANATHAN, SANGAMESWARAN
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 043804/0600 →
Priority Claims (1)
IN 201641031569 · Sep 16, 2016 · national
Continuity (1)
Related Publication 20180081950A1 · Mar 22, 2018
Cited By (1)
US 12,572,738