IP Library › Granted Patent US 12,737,159
Granted Patent B2
US 12,737,159 · App. 17/979,833 · Granted Sep 15, 2026

Data science workflow execution platform with automatically managed code and graph-based data job management

Inventor: Abraham Naim Lerman (Denver, CO)
Assignee: Exploratory Sciences, Inc.
G06F8/35G06F8/34G06F8/70
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 12,737,159
App. No.
17/979,833
Filed
Nov 3, 2022
Granted
Sep 15, 2026
Kind
B2
Art Unit
2199
USPC
717/104
Abstract

In an embodiment, the disclosure provides a special-purpose computer system executing operations that allow drag-and-drop input to perform data science operations using visual and graphically enabled data analysis, engineering, and modeling. Using the visual techniques of the disclosure, computer systems are programmed to support rapid creation of data science models and automatic generation of output program code, such as dynamically generated Python, to implement a data science project. In this manner, business-savvy users who are not programmers can execute the system to parse through their data and make useful decisions based on the data, with a focus toward results interpretation and away from computer programming.

Claims (49)

1 . A computer-implemented data processing method comprising:

using a server computer executing an application layer and a persistent data storage layer, importing, through the application layer, and storing in non-volatile memory, custom, user-specific business logic that is programmed to one or more business data transformation operations;

the importing of the custom, user-specific business logic comprising serializing the custom, user-specific business logic to text with one or more in-memory dependencies detected using a linting program, programmatically calling one or more network calls to send the serialized form of text associated with the custom, user-specific business logic into the application layer; encapsulating the serialized form of text with the dependencies as an instance of a functional representation type, implementing on the instance one or more security controls configured for secure sharing of the instance, and logging the importing as an auditable event; and storing the serialized form of text and any associated metadata in a repository configured as a functioning programming library with install requirements and versioning, wherein the metadata comprises at least a location of the functioning programming library, the location being configured for loading of the functioning programming library;

storing, in at least one of main memory of the server computer or, through the persistent data storage layer, a back-end database, one or more Tiles respectively corresponding to one or more data sources, each Tile being associated with a plurality of metadata including at least permissions metadata, usage metadata, and version metadata;

storing, in main memory, one or more Edges respectively corresponding to one or more data transformation operations, each Edge being associated with a plurality of metadata including at least permissions metadata, usage metadata, and version metadata;

receiving graphical input that graphically arranges, in a graphical user interface, visual representations in the graphical user interface of the one or more Tiles and the one or more Edges into a Mosaic, the Mosaic forming a directed acyclic graph, and storing the Mosaic in non-volatile memory in association with a project name;

programmatically traversing the one or more Tiles and the one or more Edges comprising the Mosaic, including executing the one or more data transformation operations, to produce a final data set, and storing the final data set in non-volatile memory associated with the project name;

at least one of the Edges that is stored in main memory being an Edge Instance of an imported business data transformation operation;

transforming one or more program objects, one or more of the Edges, and the Mosaic into a serialized form of text using a particular serialization method from among a plurality of different serialization methods based on (1) an object type of the one or more program objects, (2) one or more of the Edges, and (3) the Mosaic, including serializing the one or more of the Edges without decorators or annotations and serializing the Mosaic as a containerization configuration file.

2 . The method of claim 1 , the Edge Instance being associated with edge type metadata partly defined by a number of inputs accepted and a number of outputs produced by the Edge Instance.

3 . The method of claim 1 , at least one Edge of the Mosaic comprising a machine learning classification function;

the method further comprising traversing the one or more tiles and the one or more Edges comprising the Mosaic to produce the final data set by dividing model input data into one or more training segments and one or more test segments for executing the machine learning classification function using random sampling, rolling validation, or walk forward validation.

4 . The method of claim 3 , further comprising causing to display, in the graphical user interface, at least one of a validation curve, a learning curve, a calibration curve, or a precision and recall curve related to execution of the machine learning classification function, wherein the machine learning classification function comprises a random forest classifier.

5 . The method of claim 1 , further comprising generating Python program code by:

selecting one of a user-defined Edge comprising a user-defined data transformation operation or a user-defined Edge Queue comprising a plurality of user-defined data transformation operations;

extracting user-defined logic, in the form of Python code, from the selected user-defined Edge or user-defined Edge Queue;

packaging and storing, in memory, the user-defined logic extracted in the form of Python code in a portable and installable Python library.

6 . A computer system, comprising:

one or more processors;

a memory comprising a set of instructions which when executed causes the one or more processors to execute a method, the method comprising:

using a server computer executing an application layer and a persistent data storage layer, importing, through the application layer, and storing in non-volatile memory, custom, user-specific business logic that is programmed to one or more business data transformation operations;

the importing of the custom, user-specific business logic comprising serializing the custom, user-specific business logic to text with one or more in-memory dependencies detected using a linting program, programmatically calling one or more network calls to send the serialized form of text associated with the custom, user-specific business logic into the application layer; encapsulating the serialized form of text with the dependencies as an instance of a functional representation type, implementing on the instance one or more security controls configured for secure sharing of the instance, and logging the importing as an auditable event; and storing the serialized form of text and any associated metadata in a repository configured as a functioning programming library with install requirements and versioning, wherein the metadata comprises at least a location of the functioning programming library, the location being configured for loading of the functioning programming library;

storing, in at least one of main memory of the server computer or, through the persistent data storage layer, a back-end database, one or more Tiles respectively corresponding to one or more data sources, each Tile being associated with a plurality of metadata including at least permissions metadata, usage metadata, and version metadata;

storing, in main memory, one or more Edges respectively corresponding to one or more data transformation operations, each Edge being associated with a plurality of metadata including at least permissions metadata, usage metadata, and version metadata;

receiving graphical input that graphically arranges, in a graphical user interface, visual representations in the graphical user interface of the one or more Tiles and the one or more Edges into a Mosaic, the Mosaic forming a directed acyclic graph, and storing the Mosaic in non-volatile memory in association with a project name;

programmatically traversing the one or more Tiles and the one or more Edges comprising the Mosaic, including executing the one or more data transformation operations, to produce a final data set, and storing the final data set in non-volatile memory associated with the project name;

at least one of the Edges that is stored in main memory being an Edge Instance of an imported business data transformation operation;

transforming one or more program objects, one or more of the Edges, and the Mosaic into a serialized form of text using a particular serialization method from among a plurality of different serialization methods based on (1) an object type of the one or more program objects, (2) one or more of the Edges, and (3) the Mosaic, including serializing the one or more of the Edges without decorators or annotations and serializing the Mosaic as a containerization configuration file.

7 . The computer system of claim 6 , at least one Edge of the Mosaic comprising a machine learning classification function;

the method further comprising traversing the one or more tiles and the one or more Edges comprising the Mosaic to produce the final data set by dividing model input data into one or more training segments and one or more test segments for executing the machine learning classification function using random sampling, rolling validation, or walk forward validation.

8 . The computer system of claim 7 , the method further comprising causing to display, in the graphical user interface, at least one of a validation curve, a learning curve, a calibration curve, or a precision and recall curve related to execution of the machine learning classification function, wherein the machine learning classification function comprises a random forest classifier.

9 . The computer system of claim 6 , the method further comprising generating program code in Python by:

selecting one of a user-defined Edge comprising a user-defined data transformation operation or a user-defined Edge Queue comprising a plurality of user-defined data transformation operations;

extracting user-defined logic, in the form of Python code, from the selected user-defined Edge or user-defined Edge Queue;

packaging and storing, in memory, the user-defined logic extracted in the form of Python code in a portable and installable Python library.

10 . A computer-implemented auto-packaging of user-defined function method, using a server computer, comprising:

automatically extracting a user-defined function written in a development environment;

selecting one of a user defined Edge comprising a user-defined data transformation operation or a user-defined Edge Queue comprising a plurality of user-defined data transformation operations;

serializing the user-defined function along with any dependencies detected using a linting program to a string/textual data;

encapsulating the string/textual data along with any dependencies as an instance of a functional representation;

implementing one or more security controls on the instance, wherein the security controls are configured for secure sharing of the instance;

logging the extracting of the user-defined function as an auditable event;

instantiating an installable package from a portable and installable library based on the serialized form of string/textual data of the user-defined function along with any dependencies;

writing, in the portable and installable library, the serialized form of string/textual data of the user-defined function;

transforming (1) one or more program objects, and (2) the selected user-defined Edge or the selected user-defined Edge Queue into a serialized form of text using a particular serialization method from among a plurality of different serialization methods based on (1) an object type of the one or more program objects, and (2) the selected user-defined Edge or the selected user-defined Edge Queue.

11 . The method of claim 10 , wherein the user-defined function, the installable package, and the portable and installable library comprise PYTHON computer program code.

12 . The method of claim 10 , further comprising automatically packaging the user-defined function in a human-readable language capable of interpretation or compilation, as part of automated library composition.

13 . The method of claim 10 , further comprising automatically packaging the user-defined function in PYTHON as part of automated library composition.

14 . The method of claim 10 , the installable package in the portable and installable library comprising an auto-generated installation file that allows for the installable package to be installed into an arbitrary environment.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 8, 2022
From: LERMAN, ABRAHAM NAIM
To: EXPLORATORY SCIENCES, INC.
Reel/Frame 061693/0138 →
Continuity (3)
Continuation In Part PCTUS2021030114 · Apr 30, 2021
Provisional Application 63021464 · May 7, 2020
Related Publication 20230108808A1 · Apr 6, 2023
References Cited (26)
US 10719301B1 · Dasgupta · 2020 [cited by examiner]
US 11244249B2 · Goldfarb · 2022 [cited by examiner]
US 11403006B2 · Biswas · 2022 [cited by examiner]
US 11537935B2 · Rugel · 2022 [cited by examiner]
US 20050251789A1 · Peck et al. · 2005 [cited by applicant]
US 20050257193A1 · Falk · 2005 [cited by examiner]
US 20110060704A1 · Rubin · 2011 [cited by examiner]
US 20140068771A1 · Hsiung et al. · 2014 [cited by applicant]
US 20150317129A1 · Falk et al. · 2015 [cited by applicant]
US 20180137093A1 · Goldfarb · 2018 [cited by examiner]
US 20200183664A1 · Lee · 2020 [cited by examiner]
US 20200285977A1 · Brebner · 2020 [cited by examiner]
US 20200380301A1 · Siracusa · 2020 [cited by examiner]
US 20210042110A1 · Basyrov · 2021 [cited by examiner]
US 20210110288A1 · Poothiyot · 2021 [cited by examiner]
US 20230108808A1 · Lerman · 2023 [cited by examiner]
EP 1143357A2 · 2001 [cited by applicant]
KR 101588592B1 · 2016 [cited by applicant]
Mccaffrey, James, Microsoft Azure: Introduction to Machine Learning Studio, Microsoft (Jul. 1, 2015) retrieved from https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/september/microsoft-azure-introduction-to-… [cited by examiner]
McKerns, Mike, Serialize a python function with dependencies, Stackoverflow.com (Oct. 15, 2014) retrieved from https://stackoverflow.com/questions/26389981/serialize-a-python-function-with-dependencies on Aug. 23, 2025 … [cited by examiner]
International Searching Authority, International Search Report and Written Opinion for International Application No. PCT/US2021/030114, Mailed Aug. 5, 2021, 7 Pages. [cited by applicant]
Hoisl, Bernhard, Supplemental Partial European Search Report; For International Application No. PCT/US2021/030114, Published by: European Patent Office, mailed Apr. 29, 2024, Munich, Germany, 12 pages. [cited by applicant]
Keith, Mark, “Azure Machine Learning Studio: Introduction to prediction,” Sep. 22, 2017, XP093153413, Retrieved from the Internet: https://www.youtube.com/watch?v=NQjYflhlPgk _channel=MarkKeith, time scale: 0:01 *0:05-0… [cited by applicant]
Hoisl, Bernhard, Extended European Search Report for International Application No. PCT/US2021/030114, Published by: European Patent Office, mailed Jul. 22, 2024, Munich, Germany, 10 pages. [cited by applicant]
Xu Qiang, Written Opinion for Singapore Application No. 11202254736P, dated May 27, 2025, 7 pages, The Intellectual Property Office of Singapore, Singapore. [cited by applicant]
Savin, Daniela, Office Action for Canadian Application No. 3176677, dated Apr. 27, 2026, 4 pages, Canadian Intellectual Property Office, Gatineau, Quebec. [cited by applicant]