IP Library Granted Patent US 9,361,341
Granted Patent B2
US 9,361,341 · App. 12/706,154 · Granted Jun 7, 2016

Functional-form queries

Inventors: Qiming Chen (Cupertino, CA); Meichun Hsu (Los Altos Hills, CA)
Assignee: Hewlett Packard Enterprise Development LP
G06F17/30489G06F17/30442G06F17/30477G06F17/3046G06F17/30958
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,361,341
App. No.
12/706,154
Filed
Feb 16, 2010
Granted
Jun 7, 2016
Kind
B2
Art Unit
2162
USPC
707/769
Abstract

Middleware is integrated within a database engine. The middleware is to execute a functional-form query representing a dataflow graph comprising queries and relation valued functions. The middleware is to interact with the database engine to cause the database engine to execute the queries. Each relation valued function receives a plurality of first relations as input and generates a second relation as output.

Claims (44)

1. A computing system comprising:

hardware;

a database engine implemented by the hardware; and,

middleware integrated within the database engine and implemented by the hardware to execute a functional-form query representing a dataflow graph comprising a plurality of queries and a plurality of relation valued functions,

wherein the middleware is to interact with the database engine to cause the database engine to execute the queries, and

wherein each relation valued function receives a plurality of first relations as input and generates a second relation as output.

2. The computing system of claim 1 , wherein the dataflow graph is a non-tree dataflow graph.

3. The computing system of claim 1 , wherein each first relation and the second relation of each relation valued function is defined as a schema.

4. The computing system of claim 1 , wherein each relation valued function further receives one or more variables as input.

5. The computing system of claim 1 , wherein each relation valued function defines a function to generate the second relation from the first relations.

6. The computing system of claim 1 , wherein the functional-form query is a query that includes an expression denoting a function based on other functions that are parameters within the expression.

7. The computing system of claim 1 , wherein the functional-form query is expressed within a functional-form query framework comprising a plurality of objects, each object comprising one of a relation, a query variable, and a sequence of elements,

and wherein a query variable is a query that is bound to one or more specific relations.

8. The computing system of claim 7 , wherein each element comprises one of an object, an undefined element, a logical value of true, a logical value of false, and an empty element.

9. The computing system of claim 7 , wherein the functional-form query framework further comprises a plurality of functions, each function mapping one of the objects to another of the objects, each function being one of a query function, a relation valued function, a construct primitive, and a combination of one or more of a query function, a relation valued function, and a construction primitive,

wherein a query function is applied to a sequence of relations,

and wherein a construction primitive defines how a function is applied to one or more variables.

10. The computing system of claim 9 , wherein the functional-form query framework further comprises:

an apply meta-operator to apply a function to an object;

a set of functional form primitives to combine existing functions to create new functions; and,

a set of definitions that define the existing functions.

11. The computing system of claim 1 , wherein the middleware comprises a first component to extend functionality of the database engine to support the relation valued functions to integrate applications into the queries that are evaluated by the database engine.

12. The computing system of claim 11 , wherein the middleware comprises a second component to extend functionality of the database engine to support the functional-form query that expresses the dataflow graph.

13. The computing system of claim 12 , wherein the second component is to store results of execution of the queries by the database engine within memory contexts of the queries, such that results of a first query is stored within a memory context of the first query, and such that a second query that is a duplicate of a first query uses the results of the first query by reference to the memory context.

14. The computing system of claim 12 , wherein where the functional-form query permits the queries to be evaluated in parallel, the second component is to evaluate the queries in parallel.

15. The computing system of claim 12 , wherein the second component is to provide for dataflow during evaluation of the functional-form query by passing references to objects of the functional-form query without duplicating the objects.

16. A method comprising:

receiving, by middleware integrated within a database engine and as executed by a processor, a functional-form query representing a dataflow graph comprising a plurality of queries and a plurality of relation valued functions; and,

evaluating, by the middleware as executed by the processor, the functional-form query, by interacting with the database engine to cause the database engine to execute the queries,

wherein each relation valued function receives a plurality of first relations as input and generates a second relation as output.

17. The method of claim 16 , wherein evaluation of the functional-form query results in output, and wherein the method further comprises providing the output to a user.

18. The method of claim 16 , wherein the functional-form query is a query that includes an expression denoting a function based on other functions that are parameters within the expression.

19. The method of claim 16 , wherein the functional-form query is expressed within a functional-form query framework comprising:

a plurality of objects, each object comprising one of a relation, a query variable, and a sequence of elements, where a query variable is a query that is bound to one or more specific relations;

a plurality of functions, each function mapping one of the objects to another of the objects, each function being one of a query function, a relation valued function, a construct primitive, and a combination of one or more of a query function, a relation valued function, and a construction primitive;

an apply meta-operator to apply a function to an object;

a set of functional form primitives to combine existing functions to create new functions; and,

a set of definitions that define the existing functions,

wherein a query function is a function that is applied to a sequence of relations,

and wherein a construction primitive defines how a function is applied to one or more variables.

20. A non-transitory computer-readable storage medium having a computer program for execution by a processor, wherein execution of the computer program by the processor results in a method being performed, the method comprising:

integrating middleware within a database engine, the middleware to execute a functional-form query representing a dataflow graph comprising a plurality of queries and a plurality of relation valued functions,

wherein the middleware is to interact with the database engine to cause the database engine to execute the queries, and

wherein each relation valued function receives a plurality of first relations as input and generates a second relation as output.

Assignments (9)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 28, 2026
From: MICRO FOCUS LLC
To: ROCKET SOFTWARE, INC.
Reel/Frame 075795/0114 →
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0718 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC); BORLAND SOFTWARE CORPORATION; MICRO FOCUS (US), INC.; SERENA SOFTWARE, INC; ATTACHMATE CORPORATION; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062746/0399 →
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0577 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC)
Reel/Frame 063560/0001 →
CHANGE OF NAME Recorded Aug 8, 2019
From: ENTIT SOFTWARE LLC
To: MICRO FOCUS LLC
Reel/Frame 050004/0001 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ATTACHMATE CORPORATION; BORLAND SOFTWARE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE, INC.; ENTIT SOFTWARE LLC; ARCSIGHT, LLC; SERENA SOFTWARE, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0718 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ENTIT SOFTWARE LLC; ARCSIGHT, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0577 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2017
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
To: ENTIT SOFTWARE LLC
Reel/Frame 042746/0130 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 16, 2010
From: CHEN, QIMING; HSU, MEICHUN
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 023945/0118 →
Continuity (1)
Related Publication 20110202550A1 · Aug 18, 2011