IP Library Granted Patent US 11,593,353
Granted Patent B2
US 11,593,353 · App. 16/830,671 · Granted Feb 28, 2023

Managing data objects for graph-based data structures

Inventors: Ralph A. Korpman (Nashville, TN); Rudy R. Hilado (Leesburg, VA); W. Randal Clegg (Yucalpa, CA); Cindy A. Post (Colton, CA)
Assignee: UnitedHealth Group Incorporated
G06F16/2379G06F9/54G06F9/541G06F16/23G06F16/2358G06F16/244G06F16/245G06F16/288G06F16/367G06F16/81G06F16/9024G06F16/9027G06F16/90335G06F16/9577G06F16/986G06F21/31G06F40/205G06F40/295G06F40/30
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,593,353
App. No.
16/830,671
Granted
Feb 28, 2023
Kind
B2
Abstract

Various embodiments provide methods, systems, apparatus, computer program products, and/or the like for managing, ingesting, monitoring, updating, and/or extracting/retrieving information/data associated with an electronic record (ER) stored in an ER data store and/or accessing information/data from the ER data store, wherein the ERs are generated, updated/modified, and/or accessed via a graph-based domain ontology.

Claims (84)

1. A method for updating an existing graph-based domain ontology by inserting a new node in the existing graph-based domain ontology, the method comprising:

accessing the existing graph-based domain ontology;

after accessing the existing graph-based domain ontology, receiving, by a computing entity, a data artifact packet data object, wherein (a) the data artifact packet data object is generated based at least in part on an observable packet data object, and (b) the observable packet data object is an XML document generated based at least in part on parsing a message received from a source system;

automatically generating, by the computing entity, a container tree data structure comprising a data artifact packet container node as a root node, wherein (a) the container tree data structure is generated based at least in part on the data artifact packet data object, and (b) the container tree data structure comprises a plurality of container nodes that are descendants of the root node based at least in part on the data artifact packet data object;

automatically identifying, by a computing entity, a first container node of the container tree data structure by traversing the container tree data structure in a depth-first traversal, wherein (a) the plurality of container nodes comprises the first container node, and (b) the first container node comprises an observable;

generating, by the computing entity, a data transfer object for the first container node;

invoking, by the computing entity, programmatic reasoning logic to determine an ontology concept identifier for the observable of the first container node based at least in part on a graph-based domain ontology;

querying, by the computing entity and using the programmatic reasoning logic, a data store to identify the ontology concept identifier for the observable of the first container node; and

receiving, by the computing entity and using the programmatic reasoning logic, a response to the query, wherein the response to the query comprises one of (a) the ontology concept identifier, or (b) a false response; and

responsive to the response to the query comprising the false response:

(a) generating, by the computing entity, a description for the observable,

(b) determining, by the computing entity, a relationship between the description and a first class of the existing graph-based domain ontology,

(c) updating, by the computing entity, the existing graph-based domain ontology by inserting a new node in the graph-based domain ontology for the observable based at least in part on the description, and

(d) storing, by the computing entity, the existing graph-based domain ontology with the new node.

2. The method of claim 1 , wherein the query is submitted to one of (a) a cache data store, or (b) the existing graph-based domain ontology.

3. The method of claim 1 , wherein the programmatic reasoning logic is invoked from another process.

4. The method of claim 1 , wherein each of the plurality of container nodes comprises an observable-value pair.

5. The method of claim 1 , wherein generating the container tree data structure comprises:

determining a type of container node for an observable-value pair of a plurality of observable-value pairs based at least in part on the existing graph-based domain ontology;

determining whether a container node having the determined type is present in the container tree data structure; and

responsive to determining that a container node having the determined type is present in the container tree data structure, storing the observable-value pair in the container node.

6. The method of claim 1 , wherein generating the container tree data structure comprises:

determining a type of container node for an observable-value pair of a plurality of observable-value pairs based at least in part on the existing graph-based domain ontology;

determining whether a container node having the determined type is present in the container tree data structure; and

responsive to determining that a container node having the determined type is not present in the container tree data structure:

(a) constructing the container node having the determine type,

(b) inserting the container node into an appropriate position in the container tree data structure, wherein the appropriate position in the container tree data structure is determined based at least in part on the existing graph-based domain ontology, and

(c) storing the observable-value pair in the container node.

7. A system comprising one or more processors, one or more memory storage areas comprising program code, the one or more memory storage areas and the program code configured to, with the one or more processors, cause the system to at least:

access the existing graph-based domain ontology;

after accessing the existing graph-based domain ontology, receive a data artifact packet data object, wherein (a) the data artifact packet data object is generated based at least in part on an observable packet data object, and (b) the observable packet data object is an XML document generated based at least in part on parsing a message received from a source system;

automatically generate a container tree data structure comprising a data artifact packet container node as a root node, wherein (a) the container tree data structure is generated based at least in part on the data artifact packet data object, and (b) the container tree data structure comprises a plurality of container nodes that are descendants of the root node based at least in part on the data artifact packet data object;

automatically identify a first container node of the container tree data structure by traversing the container tree data structure in a depth-first traversal, wherein (a) the plurality of container nodes comprises the first container node, and (b) the first container node comprises an observable;

generate a data transfer object for the first container node;

invoke programmatic reasoning logic to determine an ontology concept identifier for the observable of the first container node based at least in part on the existing graph-based domain ontology;

query, using the programmatic reasoning logic, a data store to identify the ontology concept identifier for the observable of the first container node; and

receive, using the programmatic reasoning logic, a response to the query, wherein the response to the query comprises one of (a) the ontology concept identifier, or (b) a false response; and

responsive to the response to the query comprising the false response:

(a) generate a description for the observable,

(b) determine a relationship between the description and a first class of the existing graph-based domain ontology,

(c) update the existing graph-based domain ontology by inserting a new node in the graph-based domain ontology for the observable based at least in part on the description, and

(d) store the existing graph-based domain ontology with the new node.

8. The system of claim 7 , wherein the query is submitted to one of (a) a cache data store, or (b) the existing graph-based domain ontology.

9. The system of claim 7 , wherein the programmatic reasoning logic is invoked from another process.

10. The system of claim 7 , wherein each of the plurality of container nodes comprises an observable-value pair.

11. The system of claim 7 , wherein generating the container tree data structure comprises:

determining a type of container node for an observable-value pair of a plurality of observable-value pairs based at least in part on the existing graph-based domain ontology;

determining whether a container node having the determined type is present in the container tree data structure; and

responsive to determining that a container node having the determined type is present in the container tree data structure, storing the observable-value pair in the container node.

12. The system of claim 7 , wherein generating the container tree data structure comprises:

determining a type of container node for an observable-value pair of a plurality of observable-value pairs based at least in part on the existing graph-based domain ontology;

determining whether a container node having the determined type is present in the container tree data structure; and

responsive to determining that a container node having the determined type is not present in the container tree data structure:

(a) constructing the container node having the determine type,

(b) inserting the container node into an appropriate position in the container tree data structure, wherein the appropriate position in the container tree data structure is determined based at least in part on the existing graph-based domain ontology, and

(c) storing the observable-value pair in the container node.

13. A computer program product comprising at least one non-transitory computer-readable storage medium having computer-readable program code stored therein, the computer-readable program code configured to at least:

access the existing graph-based domain ontology;

after accessing the existing graph-based domain ontology, receive a data artifact packet data object, wherein (a) the data artifact packet data object is generated based at least in part on an observable packet data object, and (b) the observable packet data object is an XML document generated based at least in part on parsing a message received from a source system;

automatically generate a container tree data structure comprising a data artifact packet container node as a root node, wherein (a) the container tree data structure is generated based at least in part on the data artifact packet data object, and (b) the container tree data structure comprises a plurality of container nodes that are descendants of the root node based at least in part on the data artifact packet data object;

automatically identify a first container node of the container tree data structure by traversing the container tree data structure in a depth-first traversal, wherein (a) the plurality of container nodes comprises the first container node, and (b) the first container node comprises an observable;

generate a data transfer object for the first container node;

invoke programmatic reasoning logic to determine an ontology concept identifier for the observable of the first container node based at least in part on the existing graph-based domain ontology;

query, using the programmatic reasoning logic, a data store to identify the ontology concept identifier for the observable of the first container node; and

receive, using the programmatic reasoning logic, a response to the query, wherein the response to the query comprises one of (a) the ontology concept identifier, or (b) a false response; and

responsive to the response to the query comprising the false response:

(a) generate a description for the observable,

(b) determine a relationship between the description and a first class of the existing graph-based domain ontology,

(c) update the existing graph-based domain ontology by inserting a new node in the graph-based domain ontology based for the observable at least in part on the description, and

(d) store the existing graph-based domain ontology with the new node.

14. The computer program product of claim 13 , wherein the query is submitted to one of (a) a cache data store, or (b) the existing graph-based domain ontology.

15. The computer program product of claim 13 , wherein the programmatic reasoning logic is invoked from another process.

16. The computer program product of claim 13 , wherein each of the plurality of container nodes comprises an observable-value pair.

17. The computer program product of claim 13 , wherein generating the container tree data structure comprises:

determining a type of container node for an observable-value pair of a plurality of observable-value pairs based at least in part on the existing graph-based domain ontology;

determining whether a container node having the determined type is present in the container tree data structure; and

responsive to determining that a container node having the determined type is present in the container tree data structure, storing the observable-value pair in the container node.

18. The computer program product of claim 13 , wherein generating the container tree data structure comprises:

determining a type of container node for an observable-value pair of a plurality of observable-value pairs based at least in part on the existing graph-based domain ontology;

determining whether a container node having the determined type is present in the container tree data structure; and

responsive to determining that a container node having the determined type is not present in the container tree data structure:

(a) constructing the container node having the determine type,

(b) inserting the container node into an appropriate position in the container tree data structure, wherein the appropriate position in the container tree data structure is determined based at least in part on the existing graph-based domain ontology, and

(c) storing the observable-value pair in the container node.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 26, 2020
From: KORPMAN, RALPH A.; HILADO, RUDY R.; CLEGG, W. RANDAL; POST, CINDY A.
To: UNITEDHEALTH GROUP INCORPORATED
Reel/Frame 052233/0860 →
Continuity (12)
Provisional Application 62874638 · Jul 16, 2019
Provisional Application 62873217 · Jul 12, 2019
Provisional Application 62860050 · Jun 11, 2019
Provisional Application 62860031 · Jun 11, 2019
Provisional Application 62860047 · Jun 11, 2019
Provisional Application 62845109 · May 8, 2019
Provisional Application 62845089 · May 8, 2019
Provisional Application 62845084 · May 8, 2019
Provisional Application 62845085 · May 8, 2019
Provisional Application 62828526 · Apr 3, 2019
Provisional Application 62828517 · Apr 3, 2019
Related Publication 20200320061A1 · Oct 8, 2020