# US 2020/0401607 A1 · Knowledge-intensive data processing system

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2020/0401607 A1
- Document ID: US20200401607A1
- Status: Published application
- Kind: A1
- Application number: 16/917,468
- Filed: 2020-06-30
- Published: 2020-12-24
- Earliest claimed: 2013-04-11
- Assignees: Oracle International Corporation
- Applicants: Oracle International Corporation
- Inventors: Eric S. Chan; Dieter Gawlick; Adel Ghoneimy; Zhen Hua Liu
- Web page: https://patentgrep.com/patent/US20200401607A1

## CPC

- G06F 16/285: {Clustering or classification}
- G06F 11/3006: {where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems (multiprogramming arrangements G06F9/46; allocation of resources G06F9/50)}
- G06F 11/3442: {for planning or managing the needed capacity}
- G06F 16/219: {Managing data history or versioning (querying versioned data G06F16/2474; querying temporal data G06F16/2477)}
- G06F 16/273: {Asynchronous replication or reconciliation}
- G06F 16/9535: Search customisation based on user profiles and personalisation
- G06F 16/9536: Search customisation based on social or collaborative filtering
- G06F 11/3452: {Performance evaluation by statistical analysis}
- G06F 11/3466: {Performance evaluation by tracing or monitoring}
- G06F 2201/84: Using snapshots, i.e. a logical point-in-time copy of the data
- G06F 2201/865: Monitoring of software
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Embodiments of the invention provide systems and methods for managing and processing large amounts of complex and high-velocity data by capturing and extracting high-value data from low value data using big data and related technologies. Illustrative database systems described herein may collect and process data while extracting or generating high-value data. The high-value data may be handled by databases providing functions such as multi-temporality, provenance, flashback, and registered queries. In some examples, computing models and system may be implemented to combine knowledge and process management aspects with the near real-time data processing frameworks in a data-driven situation aware computing system.

## Claims

### Claim 1

A method comprising:
receiving, at a computer system, one or more updates for data stored in the computer system;
determining, by the computer system, a valid time for each of the one or more received data updates;
updating, by the computer system, one or more multi-temporal data items based at least in part on the received updates, wherein updating the multi-temporal data items includes storing the determined valid time and a separate transaction time for each of the one or more received data updates;
determining that at least a first filter query is configured to compute a result based at least in part on a set of underlying data that includes at least some of the updated multi-temporal data items, wherein the determination of the first filter query is based at least on the in part on the valid times determined for the received data updates; and
based at least in part on the determination that the result of the first filter query is based at least in part on the updated multi-temporal data items:
(a) performing a first execution of the first filter query using multi-temporal data corresponding to a current time;
(b) performing a second execution of the first filter query using multi-temporal data corresponding to a previous time, the previous time corresponding to a previous execution of the first filter query;
(c) determining a difference between a first result of the first execution of the first filter query using the multi-temporal data corresponding to the current time and a second result of the second execution of the first filter query using the multi-temporal data corresponding to the previous execution time;
(d) comparing the difference to a threshold, the threshold determined based at least in part on a change in a value of one or more objects within the multi-temporal data, and the threshold used to determine a second invocation of the first data transformation process; and
(e) upon determining that the difference is greater than the threshold, invoking a first transformative action on a first data object, the first transformative action associated with the first filter query.

### Claim 2 (depends on 1)

The method of claim 1, wherein the first transformative action is performed by a data transformation loop application executing within a compute node of a HADOOP data processing cluster.

### Claim 3 (depends on 2)

The method of claim 2, wherein the first transformative action includes one or more of a machine learning process, a classification of raw data process, a Support Vector Machine, Naive Bayes classifier, Neural Network, Clustering, Association Rule, Decision Tree, Univariate Seasonal and linear Trend, Multivariate State Estimation Technique, Cognitive computing, Bayesian Belief Network, Least-Squares Optimization or Regression of solutions for inverse problem, Influence Diagrams, Dempster-Shafer theory, Decision Trees, Prognosis of Remaining Useful Life, script, plan, schedule, BPEL workflow, and business process in BPMN.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
storing a second data object corresponding to the result of the first transformative action on the first data object;
determining a difference between the second data object and a different data object of the same type as the second data object, wherein the different data object was generated by a previous invocation of the first transformative action; and
invoking a second transformative action on the second data object based at least in part on a determination that the difference between second data object and the different data object is greater than a second threshold.

### Claim 5 (depends on 4)

The method of claim 4, wherein the first and second transformative actions are part of a continuous data transformation loop application, the method further comprising:
receiving one or more additional updates for the multi-temporal data stored in the computer system;
updating the set of multi-temporal data items based at least in part on the received additional updates;
performing a third execution of the first filter query using the additional updates for the multi-temporal data;
performing a fourth execution of the first filter query using multi-temporal data corresponding to a previous execution time of the first filter query;
determining a difference between a result of the third execution of the first filter query and a result of the fourth execution of the first filter query;
comparing the difference to the threshold; and
upon determining that the difference is greater than the threshold, re-invoking the first transformative action.

### Claim 6 (depends on 1)

The method of claim 1, wherein the set of updated multi-temporal data items are bi-temporal data items including a transaction time and a valid time for each data item.

### Claim 7 (depends on 1)

The method of claim 1, wherein identifying the first query comprises accessing a filter table in the computer system, the filter table containing a plurality of queries each corresponding to a different transformative action, the filter table further containing data for each of the plurality of queries identifying a set of underlying data upon which the query result is based.

### Claim 8 (depends on 1)

The method of claim 1, wherein identifying the first filter query, performing the first and second execution of the first filter query, and comparing the difference between first and second execution of the first filter query to the threshold are performed outside of and asynchronously from a first transaction as the updating of the set of multi-temporal data items, and wherein the invocation of the first transformative action on the first data object is performed outside of and asynchronously from the first transaction.

### Claim 9 (depends on 1)

The method of claim 1, wherein determining the valid time for the received data updates comprises at least one of receiving the valid time within each of the one or more received data updates or dynamically determining the valid time for each of the one or more received data updates using an orchestration engine of the computer system.

### Claim 10 (depends on 1)

The method of claim 1, further comprising:
after invoking the first transformative action associated with the first filter query, receiving a request to determine a set of data updates causing the first transformative action;
in response to the request, retrieving a plurality of multi-temporal data items from the computer system, including the one or more updated multi-temporal data items;
determining which of the plurality of multi-temporal data items caused the first transformative action, wherein said determining is based at least in part on the valid times and the separate transaction times for the retrieved plurality of multi-temporal data items; and
transmitting a response to the received request, including data identifying the determined multi-temporal data items that caused the first transformative action.

### Claim 11 (depends on 10)

The method of claim 10, wherein determining which of the plurality of multi-temporal data items caused the first transformative action comprises:
determining that a first updated data item within the plurality of multi-temporal data items has a valid time prior to the invocation of the first transformative action, and a transaction time after the invocation of the first transformative action; and
determining that the first updated data item is not within the set of data updates that caused the first transformative action, based at least in part on the determination that the transaction time of the first updated data item is after the invocation of the first transformative action.

### Claim 12 (depends on 10)

The method of claim 10, wherein determining which of the plurality of multi-temporal data items caused the first transformative action comprises:
determining that a first updated data item within the plurality of multi-temporal data items has a valid time after the invocation of the first transformative action; and
determining that the first updated data item is not within the set of data updates that caused the first transformative action, based at least in part on the determination that the valid time of the first updated data item is after the invocation of the first transformative action.

### Claim 13 (depends on 1)

The method of claim 1, wherein determining that the first filter query is configured to compute a result based at least in part on the set of underlying data that includes at least some of the updated multi-temporal data items comprises determining that the received data updates definitively change the result of the first filter query.

### Claim 14 (depends on 1)

The method of claim 1, wherein determining that the first filter query is configured to compute a result based at least in part on the set of underlying data that includes at least some of the updated multi-temporal data items comprises determining that the received data updates potentially but not definitively change the result of the first filter query.

### Claim 15

A system comprising:
a processing unit comprising one or more processors; and
memory coupled with and readable by the processing unit and storing therein a set of instructions which, when executed by the processing unit, causes the processing unit to:
receive one or more updates for data stored in a computer system;
determine a valid time for each of the one or more received data updates;
update, in the computer system, one or more multi-temporal data items based at least in part on the received updates, wherein updating the multi-temporal data items includes storing the determined valid time and a separate transaction time for each of the one or more received data updates;
evaluate a plurality of filter queries stored by the computer system and determine that at least a first filter query is configured to compute a result based at least in part on a set of underlying data that includes at least some of the updated multi-temporal data items, wherein the determination of the first filter query is based at least on the in part on the valid times determined for the received data updates; and
based at least in part on the determination that the result of the first filter query is based at least in part on the updated multi-temporal data items:
(a) perform a first execution of the first filter query using multi-temporal data corresponding to a current time;
(b) perform a second execution of the first filter query using multi-temporal data corresponding to a previous time, the previous time corresponding to a previous execution of the first filter query;
(c) determine a difference between a first result of the first execution of the first filter query using the multi-temporal data corresponding to the current time, and a second result of the second execution of the first filter query using the multi-temporal data corresponding to the previous execution time;
(d) compare the difference to a threshold, the threshold determined based at least in part on a change in a value of one or more objects within the multi-temporal data, and the threshold used to determine a second invocation of the first data transformation process; and
(e) upon determining that the difference is greater than the threshold, invoke a first transformative action on a first data object, the first transformative action associated with the first filter query.

### Claim 16 (depends on 16)

The system of claim 16, the memory storing therein further instructions which, when executed by the processing unit, causes the processing unit to:
store a second data object corresponding to the result of the first transformative action on the first data object;
determine a difference between the second data object and a different data object of the same type as the second data object, wherein the different data object was generated by a previous invocation of the first transformative action; and
invoke a second transformative action on the second data object based at least in part on a determination that the difference between second data object and the different data object is greater than a second threshold.

### Claim 17 (depends on 17)

The system of claim 17, wherein the first and second transformative actions are part of a continuous data transformation loop application, and wherein the memory stores therein further instructions which, when executed by the processing unit, causes the processing unit to:
receive one or more additional updates for the multi-temporal data stored in the computer system;
update the set of multi-temporal data items based at least in part on the received additional updates;
perform a third execution of the first filter query using the additional updates for the multi-temporal data;
perform a fourth execution of the first filter query using multi-temporal data corresponding to a previous execution time of the first filter query;
determine a difference between a result of the third execution of the first filter query and a result of the fourth execution of the first filter query;
compare the difference to the threshold; and
upon determining that the difference is greater than the threshold, re-invoke the first transformative action.

### Claim 18

A non-transitory computer-readable memory comprising a set of computer-executable instructions stored therein which, when executed by a processor, causes the processor to:
receive one or more updates for data stored in a computer system;
determine a valid time for each of the one or more received data updates;
update, in the computer system, one or more multi-temporal data items based at least in part on the received updates, wherein updating the multi-temporal data items includes storing the determined valid time and a separate transaction time for each of the one or more received data updates;
evaluate a plurality of filter queries stored by the computer system and determine that at least a first filter query is configured to compute a result based at least in part on a set of underlying data that includes at least some of the updated multi-temporal data items, wherein the determination of the first filter query is based at least on the in part on the valid times determined for the received data updates; and
based at least in part on the determination that the result of the first filter query is based at least in part on the updated multi-temporal data items:
(a) perform a first execution of the first filter query using multi-temporal data corresponding to a current time;
(b) perform a second execution of the first filter query using multi-temporal data corresponding to a previous time, the previous time corresponding to a previous execution of the first filter query;
(c) determine a difference between a first result of the first execution of the first filter query using the multi-temporal data corresponding to the current time, and a second result of the second execution of the first filter query using the multi-temporal data corresponding to the previous execution time;
(d) compare the difference to a threshold, the threshold determined based at least in part on a change in a value of one or more objects within the multi-temporal data, and the threshold used to determine a second invocation of the first data transformation process; and
(e) upon determining that the difference is greater than the threshold, invoke a first transformative action on a first data object, the first transformative action associated with the first filter query.

### Claim 19 (depends on 19)

The non-transitory computer-readable memory of claim 19, wherein identifying the first filter query, performing the first and second execution of the first filter query, and comparing the difference between first and second execution of the first filter query to the threshold are performed outside of and asynchronously from a first transaction as the updating of the set of multi-temporal data items, and wherein the invocation of the first transformative action on the first data object is performed outside of and asynchronously from the first transaction.
