IP Library › Granted Patent US 9,575,736
Granted Patent B2
US 9,575,736 · App. 14/805,882 · Granted Feb 21, 2017

Advanced interactive command-line front-end for graph analysis systems

Inventors: Sungpack Hong (Palo Alto, CA); Korbinian Schmid (Munich, DE); Felix Kaser (San Francisco, CA); Hassan Chafi (San Mateo, CA)
Assignee: Oracle International Corporation
G06F8/41G06F8/443G06F8/30G06F8/441G06F8/445G06F9/4425
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 9,575,736
App. No.
14/805,882
Granted
Feb 21, 2017
Kind
B2
Abstract

Systems and methods for interactive front-end graph analysis are provided herein. According to one embodiment, a front-end application receives, from a compiler, first meta-information for a particular graph analysis procedure, where the first meta-information identifies a set of input parameters for passing graph information to the particular graph analysis procedure. The front-end application registers, using the first meta-information, the particular graph analysis procedure as an available command. The front-end application also receives second meta-information that identifies, for each respective graph object of a set of one or more graph objects, a respective set of graph characteristics. In response to receiving a request to apply the particular graph analysis procedure to the set of one or more graph objects, the front-end application enforces a set of one or more constraints based on the first meta-information and the second meta-information.

Claims (65)

1. A method comprising:

receiving, by a front-end application from a compiler, first meta-information and an executable for a particular graph analysis procedure;

wherein the first meta-information, identifies a set of one or more input parameters for passing graph information to the particular graph analysis procedure;

storing, by the front-end application, the executable for the particular graph analysis procedure and the first meta-information;

registering, using the first meta-information and after storing the executable, the particular graph analysis procedure as an available command within the front-end application;

receiving, by the front-end application, second meta-information for a set of one or more graph objects;

wherein the second meta-information identifies, for each respective graph object of the set of one or more graph objects, a respective set of graph characteristics;

receiving, by the front-end application, a request to apply the particular graph analysis procedure to the set of one or more graph objects; and

in response to receiving the request to apply the particular graph analysis procedure to the set of one or more graph objects, the front-end application performing:

enforcing a set of one or more constraints based on the first meta-information and the second meta-information, and

invoking the executable to apply the particular graph analysis procedure to the set of one or more graph objects.

2. The method of claim 1 , wherein the method is performed during runtime of the front-end application.

3. The method of claim 1 , wherein each respective set of graph characteristics includes a type of graph represented by the respective graph object, node properties for nodes included in the respective graph object, and edge properties for edges included in the respective graph object.

4. The method of claim 1 , further comprising:

receiving, by the front-end application before the first meta-information is received from the compiler, source code for the particular graph analysis procedure;

in response to receiving the source code for the particular graph analysis procedure, sending the source code to the compiler for compilation.

5. The method of claim 1 , wherein enforcing, by the front-end application, a set of one or more constraints based on the first meta-information and the second meta-information comprises: determining whether a value of a graph property is compatible with a parameter of the set of one or more input parameters.

6. The method of claim 1 , wherein enforcing, by the front-end application, a set of one or more constraints based on the first meta-information and the second meta-information comprises:

determining whether the set of one or more graph objects represents a type of graph that is compatible with the particular graph analysis procedure;

generating an error message in response to determining that the set of one or more graph objects represent a type of graph that is not compatible with the particular graph analysis procedure.

7. The method of claim 1 , wherein the first meta-information further defines a set of one or more output parameters for the particular graph analysis procedure and wherein enforcing, by the front-end application, a set of one or more constraints based on the first meta-information and the second meta-information comprises generating an error message in response to determining that an immutable property of a graph object is used as an argument for at least one output parameter of the set of one or more output parameters.

8. The method of claim 1 , wherein enforcing, by the front-end application, a set of one or more constraints based on the first meta-information and the second meta-information comprises:

determining whether a dependent graph object used as an argument belongs to a graph represented by a particular graph object in the set of one or more graph objects;

generating an error message in response to determining that the dependent graph object does not belong to the graph represented by the particular graph object in the set of one or more graph objects.

9. The method of claim 1 , wherein the request to apply the particular graph analysis procedure to the set of one or more graph objects includes an identification value for a dependent graph object; the method further comprising:

based on the second meta-information, retrieving a reference for the dependent graph object.

10. The method of claim 1 , further comprising:

performing, by the front-end application, coercion for a particular property of a graph object in the set of one or more graph objects;

wherein performing comprises generating a temporary property that is associated with a different data type than the particular property; and

copying values of the particular property of the graph object to the temporary property.

11. One or more non-transitory storage media storing instructions which, when executed by one or more computing devices, cause performance of operations comprising:

receiving, by a front-end application from a compiler, first meta-information and an executable for a particular graph analysis procedure;

wherein the first meta-information, identifies a set of one or more input parameters for passing graph information to the particular graph analysis procedure;

storing, by the front-end application, the executable for the particular graph analysis procedure and the first meta-information;

registering, using the first meta-information and after storing the executable, the particular graph analysis procedure as an available command within the front-end application;

receiving, by the front-end application, second meta-information for a set of one or more graph objects;

wherein the second meta-information identifies, for each respective graph object of the set of one or more graph objects, a respective set of graph characteristics;

receiving, by the front-end application, a request to apply the particular graph analysis procedure to the set of one or more graph objects; and

in response to receiving the request to apply the particular graph analysis procedure to the set of one or more graph objects, the front-end application performing:

enforcing a set of one or more constraints based on the first meta-information and the second meta-information, and

invoking the executable to apply the particular graph analysis procedure to the set of one or more graph objects.

12. The one or more non-transitory storage media of claim 11 , wherein the operations are performed during runtime of the front-end application.

13. The one or more non-transitory storage media of claim 11 , wherein each respective set of graph characteristics includes a type of graph represented by the respective graph object, node properties for nodes included in the respective graph object, and edge properties for edges included in the respective graph object.

14. The one or more non-transitory storage media of claim 11 ,

wherein the instructions further cause operations comprising:

receiving, by the front-end application before the first meta-information is received from the compiler, source code for the particular graph analysis procedure;

in response to receiving the source code for the particular graph analysis procedure, sending the source code to the compiler for compilation.

15. The one or more non-transitory storage media of claim 11 , wherein

instructions for enforcing, by the front-end application, a set of one or more constraints based on the first meta-information and the second meta-information comprise instructions for:

determining whether a value of a graph property is compatible with a parameter of the set of one or more input parameters.

16. The one or more non-transitory storage media of claim 11 , wherein

instructions for enforcing, by the front-end application, a set of one or more constraints based on the first meta-information and the second meta-information comprise instructions for:

determining whether the set of one or more graph objects represents a type of graph that is compatible with the particular graph analysis procedure;

generating an error message in response to determining that the set of one or more graph objects represent a type of graph that is not compatible with the particular graph analysis procedure.

17. The one or more non-transitory storage media of claim 11 , wherein the first meta-information further defines a set of one or more output parameters for the particular graph analysis procedure and wherein instructions for enforcing, by the front-end application, a set of one or more constraints based on the first meta-information and the second meta-information comprise instructions for generating an error message in response to determining that an immutable property of a graph object is used as an argument for at least one output parameter of the set of one or more output parameters.

18. The one or more non-transitory storage media of claim 11 , wherein

instructions for enforcing, by the front-end application, a set of one or more constraints based on the first meta-information and the second meta-information comprise instructions for:

determining whether a dependent graph object used as an argument belongs to a graph represented by a particular graph object in the set of one or more graph objects;

generating an error message in response to determining that the dependent graph object does not belong to the graph represented by the particular graph object in the set of one or more graph objects.

19. The one or more non-transitory storage media of claim 11 , wherein the request to apply the particular graph analysis procedure to the set of one or more graph objects includes an identification value for a dependent graph object, the instructions further causing operations comprising:

based on the second meta-information, retrieving a reference for the dependent graph object.

20. The one or more non-transitory storage media of claim 11 , wherein the instructions further cause operations comprising:

performing, by the front-end application, coercion for a particular property of a graph object in the set of one or more graph objects;

wherein performing comprises generating a temporary property that is associated with a different data type than the particular property; and

copying values of the particular property of the graph object to the temporary property.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2016
From: SCHMID, KORBINIAN
To: ORACLE DEUTSCHLAND B.V. & CO. KG
Reel/Frame 038187/0719 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2016
From: ORACLE DEUTSCHLAND B.V. & CO. KG
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 038187/0727 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 18, 2016
From: HONG, SUNGPACK; KASER, FELIX; CHAFI, HASSAN
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 037770/0958 →
Continuity (1)
Related Publication 20170024192A1 · Jan 26, 2017