IP Library Granted Patent US 11,954,112
Granted Patent B2
US 11,954,112 · App. 17/062,445 · Granted Apr 9, 2024

Systems and methods for data processing and enterprise AI applications

Inventors: Thomas M. Siebel (Woodside, CA); Edward Y. Abbo (Woodside, CA); Houman Behzadi (San Francisco, CA); John Coker (Atherton, CA); Scott Kurinskas (San Mateo, CA); Thomas Rothwein (San Jose, CA); David Tchankotadze (Sunnyvale, CA)
Assignee: C3.ai, Inc.
G06F16/254G06F8/10G06F8/35G06F8/77G06F9/54G06F16/283G06F16/288G06N20/00H04L67/10H04L67/565H04L67/5651
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,954,112
App. No.
17/062,445
Filed
Oct 2, 2020
Granted
Apr 9, 2024
Kind
B2
Art Unit
2442
USPC
709/217
Abstract

Systems, methods, and devices for a cyberphysical (IoT) software application development platform based upon a model driven architecture and derivative IoT SaaS applications are disclosed herein. The system may include concentrators to receive and forward time-series data from sensors or smart devices. The system may include message decoders to receive messages comprising the time-series data and storing the messages on message queues. The system may include a persistence component to store the time-series data in a key-value store and store the relational data in a relational database. The system may include a data services component to implement a type layer over data stores. The system may also include a processing component to access and process data in the data stores via the type layer, the processing component comprising a batch processing component and an iterative processing component.

Claims (40)

1. A method, comprising:

providing a system comprising a plurality of types, wherein each type of the plurality of types comprises a respective data field definition and a respective method definition, and wherein at least one type of the plurality of types provides a configurable interface across disparate programming languages, protocols, and storage elements,

wherein a first type of the plurality of types defines a subset of the plurality of types, and wherein the subset of the plurality of types excludes the first type,

wherein the subset of the plurality of types abstract storage elements and computing services from an application, wherein the storage elements include any of database structure, database language, or storage format,

wherein each respective type of the subset of the plurality of types identifies (i) respective data and (ii) at least one respective machine learning service for application to the respective data;

implementing the system on a remote computing service comprising a plurality of computing resources; and

executing, by a plurality of computing resources, the application using the subset of the plurality of types.

2. The method of claim 1 , further comprising storing the storage elements of the respective data and the computing services in metadata in at least a second type of the subset of the plurality of types.

3. The method of claim 2 , wherein the metadata of the second type of the subset of the plurality of types comprises the respective data field definition and the respective method definition of the respective type corresponding to the second type.

4. The method of claim 2 , further comprising updating the second type of the subset of the plurality of types by updating the metadata of the second type.

5. The method of claim 4 , wherein the metadata of the second type comprises validation rules.

6. The method of claim 1 , wherein the subset of the plurality of types abstract one or more data stores in which the respective data is stored.

7. The method of claim 6 , wherein the plurality of types abstract one or more methods for accessing the one or more data stores.

8. The method of claim 6 , wherein the one or more data stores comprise a key-value store and a relational database.

9. The method of claim 8 , wherein the key-value store is configured to store time-series data and the relational database is configured to store non-time-series data.

10. The method of claim 8 , further comprising implementing the key-value store and the relational database on one or more of the plurality of computing resources.

11. The method of claim 1 , wherein a second type of the plurality of types is associated with a graphical element in a visual analytics designer.

12. The method of claim 1 , wherein the plurality of computing resources comprises virtual machines.

13. The method of claim 1 , further comprising provisioning additional computing resources to accommodate increasing computing demand or releasing a subset of the plurality of computing resources to accommodate decreasing computing demand.

14. The method of claim 1 , wherein the subset of the plurality of types represent physical objects, and wherein the subset of the plurality of types abstract storage elements of the physical objects.

15. The method of claim 14 , wherein the physical objects comprise one or more of a customer, a facility, a sensor, a computing system, or a mobile communication device.

16. The method of claim 1 , wherein the machine learning services include machine learning classifiers for the respective data.

17. The method of claim 1 , wherein the machine learning services include a K-means clustering service for the respective data, and wherein the respective data includes sensor data.

18. The method of claim 1 , wherein the executing the application using the subset of the plurality of types utilizes the configurable interface to integrate disparate data from natively incompatible storage elements.

19. The method of claim 18 , wherein utilizing the configurable interface further integrates disparate data from natively incompatible programming languages.

20. The method of claim 1 , wherein the types enable the application to process data from disparate data sources independent of knowledge of the database structure, database language, or storage format.

21. The method of claim 20 , wherein the disparate data sources are natively incompatible.

22. A system comprising:

one or more processors; and

memory storing instructions that, when executed by the one or more processors, cause the system to perform:

providing a system comprising a plurality of types, wherein each type of the plurality of types comprises a respective data field definition and a respective method definition, and wherein at least one type of the plurality of types provides an interface across different programming languages,

wherein a first type of the plurality of types defines a subset of the plurality of types, and wherein the subset of the plurality of types excludes the first type,

wherein the subset of the plurality of types abstract storage elements of data and computing services from an application, wherein the storage elements include any of database structure, database language, or storage format,

wherein each respective type of the subset of the plurality of types identifies (i) respective data and (ii) at least one respective machine learning service for application to the respective data;

storing the storage elements of the data and the computing services in metadata in at least a second type of the subset of the plurality of types, wherein the metadata of the second type of the subset of the plurality of types comprises the respective data field definition and the respective method definition of the second type;

providing access to the subset of the plurality of types to a remote computing service comprising a plurality of computing resources;

executing, by the plurality of computing resources, the application using the subset of the plurality of types; and

updating, subsequent to executing the application, the second type of the subset of the plurality of types.

23. The system of claim 22 , wherein the updating the second type of the subset of the plurality of types comprises updating the metadata of the second type.

24. The system of claim 23 , wherein updating the metadata of the second type comprises updating the respective data field definition and the respective method definition of the respective type corresponding to the second type.

Assignments (4)
CORRECTIVE ASSIGNMENT TO CORRECT THE TITLE IN THE ASSIGNMENT DOCUMENT PREVIOUSLY RECORDED AT REEL: 059516 FRAME: 0213. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT . Recorded Aug 25, 2022
From: SIEBEL, THOMAS M.; ABBO, EDWARD Y.; BEHZADI, HOUMAN; COKER, JOHN; KURINSKAS, SCOTT; ROTHWEIN, THOMAS; TCHANKOTADZE, DAVID
To: C3, INC.
Reel/Frame 061327/0053 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 6, 2022
From: SIEBEL, THOMAS M.; ABBO, EDWARD Y.; BEHZADI, HOUMAN; COKER, JOHN; KURINSKAS, SCOTT; ROTHWEIN, THOMAS; TCHANKOTADZE, DAVID
To: C3, INC.
Reel/Frame 059518/0213 →
CHANGE OF NAME Recorded Apr 6, 2022
From: C3, INC.
To: C3 IOT, INC.
Reel/Frame 059651/0712 →
CHANGE OF NAME Recorded Apr 6, 2022
From: C3 IOT, INC.
To: C3.AI, INC.
Reel/Frame 059652/0601 →
Continuity (5)
Continuation 15890867 · Feb 7, 2018
Continuation 15028340
Provisional Application 62172012 · Jun 5, 2015
Provisional Application 62107262 · Jan 23, 2015
Related Publication 20210263945A1 · Aug 26, 2021
Cited By (16)
US 12,309,148 US 12,361,220 US 12,406,084 US 12,437,447 US 12,468,758 US 12,517,725 US 12,524,809 US 12,524,813 US 12,566,957 US 12,572,551 US 12,602,033 US 12,639,158 US 12,639,757 US 12,664,498 US 12,717,968 US 12,719,812