IP Library › Granted Patent US 12,505,091
Granted Patent B2
US 12,505,091 · App. 17/960,365 · Granted Dec 23, 2025

Index-based modification of a query

Inventors: Anurag Garg (Cupertino, CA); Jack Randall Smiley (Flower Mound, TX)
Assignee: Oracle International Corporation
G06F16/242G06F16/22
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,505,091
App. No.
17/960,365
Granted
Dec 23, 2025
Kind
B2
Abstract

Techniques for modifying a query based on a data index of nodes in a data set are disclosed. A system modifies queries based on query terms associated with indexed data. The system modifies queries to include query terms based on indexed data or to obtain values for query terms that are not associated with indexed node properties. The system adds query terms, that reference indexed data, to a query in response to determining that none of a query's terms reference indexed data. The system derives values for query terms that are not associated with indexed node properties using a logical or mathematical formula. The system traverses parent nodes of a child node to identify values for query terms that are not associated with the child node in a data index, but are inherited from a parent node.

Claims (80)

1 . A non-transitory computer readable medium comprising instructions which, when executed by one or more hardware processors, causes performance of operations comprising:

receiving a query to identify one or more target nodes in a plurality of nodes corresponding to a respective plurality of entities, each node among the plurality of nodes including corresponding node properties from among a set of node properties,

wherein a first subset of node properties, of the set of node properties, comprises a set of indexed node properties included in a data index,

wherein each particular node property of the indexed node properties, in the data index, is mapped to a corresponding subset of nodes of the plurality of nodes that are associated with the particular node property,

wherein a second subset of the node properties, of the set of node properties, comprises a set of non-indexed node properties that are not included in the data index;

determining that the query includes a set of query terms that correspond to at least a first node among the plurality of nodes;

determining that the set of query terms does not include any query term corresponding to the set of indexed node properties included in the data index;

responsive to determining that the set of query terms does not include any query term corresponding to the set of indexed node properties in the data index:

accessing information in a document stored in the first node to determine a pre-defined relationship between a first query term included in the set of query terms and an indexed node property;

determining a second query term comprising the indexed node property from the set of indexed node properties;

modifying the query to include the second query term comprising the indexed node property from the set of indexed node properties; and

executing the modified query at least by:

identifying via the data index a particular subset of nodes, from among the plurality of nodes, mapped to the indexed node property in the data index;

querying the particular subset of nodes to determine the one or more target nodes; and

storing or transmitting a response to the query based on the one or more target nodes.

2 . The non-transitory computer readable medium of claim 1 , wherein modifying the query to include the second query term comprising the indexed node property is further responsive to at least one of: determining an estimated execution time for the query exceeds a threshold value or determining that the query fails a performance criteria.

3 . The non-transitory computer readable medium of claim 1 , wherein modifying the query comprises:

requesting user input comprising third query term that corresponds to any indexed node property in the data index;

obtaining user input including the third query term; and

creating the modified query using the third query term.

4 . The non-transitory computer readable medium of claim 1 , wherein the modified query comprises one or more query terms and the second query term.

5 . The non-transitory computer readable medium of claim 1 , wherein the operations further comprise:

prior to modifying the query: recommending the second query term for modifying the query based on the second query term being associated with the indexed node property of the set of indexed node properties.

6 . The non-transitory computer readable medium of claim 1 , wherein the query is modified to include the second query term independent of any user input.

7 . The non-transitory computer readable medium of claim 6 , wherein modifying the query comprises: applying a machine learning model to a third query term of the query to identify a fourth query term comprising the indexed node property.

8 . The non-transitory computer readable medium of claim 1 , wherein the operations further comprise:

determining that the first query term in the query is associated with a stored proposed modification to a first node property of a first node among the plurality of nodes; and

including a value, based on the proposed modification to the first node, among a set of query results returned by the modified query.

9 . The non-transitory computer readable medium of claim 1 , wherein the plurality of nodes is organized in a hierarchy based on relationships among the respective plurality of entities.

10 . The non-transitory computer readable medium of claim 1 ,

wherein modifying the query to include the second query term associated with the indexed node property of the set of indexed node properties is further responsive to at least one of:

determining an estimated execution time for a query exceeds a threshold value or

determining that the query fails a performance criteria,

wherein the modified query comprises the one or more query terms and the second query term.

11 . A method comprising:

receiving a query to identify one or more target nodes in a plurality of nodes corresponding to a respective plurality of entities, each node among the plurality of nodes including corresponding node properties from among a set of node properties,

wherein a first subset of node properties, of the set of node properties, comprises a set of indexed node properties included in a data index,

wherein each particular node property of the indexed node properties, in the data index, is mapped to a corresponding subset of nodes of the plurality of nodes that are associated with the particular node property,

wherein a second subset of the node properties, of the set of node properties, comprises a set of non-indexed node properties that are not included in the data index;

determining that the query includes a set of query terms that correspond to at least a first node among the plurality of nodes;

determining that the set of query terms does not include any query term corresponding to the set of indexed node properties included in the data index;

responsive to determining that the set of query terms does not include any query term corresponding to the set of indexed node properties in the data index:

accessing information in a document stored in the first node to determine a pre-defined relationship between a first query term included in the set of query terms and an indexed node property;

determining a second query term comprising the indexed node property from the set of indexed node properties;

modifying the query to include the second query term comprising the indexed node property from the set of indexed node properties; and

executing the modified query at least by:

identifying via the data index a particular subset of nodes, from among the plurality of nodes, mapped to the indexed node property in the data index;

querying the particular subset of nodes to determine the one or more target nodes; and

storing or transmitting a response to the query based on the one or more target nodes.

12 . The method of claim 11 , wherein modifying the query to include the second query term comprising the indexed node property is further responsive to at least one of: determining an estimated execution time for the query exceeds a threshold value or determining that the query fails a performance criteria.

13 . The method of claim 11 , wherein modifying the query comprises:

requesting user input comprising third query term that corresponds to any indexed node property in the data index;

obtaining user input including the third query term; and

creating the modified query using the third query term.

14 . The method of claim 11 , wherein the modified query comprises one or more query terms and the second query term.

15 . The method of claim 11 , further comprising:

prior to modifying the query: recommending the second query term for modifying the query based on the second query term being associated with the indexed node property of the set of indexed node properties.

16 . The method of claim 11 , wherein the query is modified to include the second query term independent of any user input.

17 . The method of claim 16 , wherein modifying the query comprises: applying a machine learning model to a third query term of the query to identify a fourth query term comprising the indexed node property.

18 . The method of claim 11 , further comprising:

determining that the first query term in the query is associated with a stored proposed modification to a first node property of the first node among the plurality of nodes; and

including a value, based on the proposed modification to the first node, among a set of query results returned by the modified query.

19 . The method of claim 11 , wherein the plurality of nodes is organized in a hierarchy based on relationships among the respective plurality of entities.

20 . 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 operations comprising:

receiving a query to identify one or more target nodes in a plurality of nodes corresponding to a respective plurality of entities, each node among the plurality of nodes including corresponding node properties from among a set of node properties,

wherein a first subset of node properties, of the set of node properties, comprises a set of indexed node properties included in a data index,

wherein each particular node property of the indexed node properties, in the data index, is mapped to a corresponding subset of nodes of the plurality of nodes that are associated with the particular node property,

wherein a second subset of the node properties, of the set of node properties, comprises a set of non-indexed node properties that are not included in the data index;

determining that the query includes a set of query terms that correspond to at least a first node among the plurality of nodes;

determining that the set of query terms does not include any query term corresponding to the set of indexed node properties included in the data index;

responsive to determining that the set of query terms does not include any query term corresponding to the set of indexed node properties in the data index:

accessing information in a document stored in the first node to determine a pre-defined relationship between a first query term included in the set of query terms and an indexed node property;

determining a second query term comprising the indexed node property from the set of indexed node properties;

modifying the query to include the second query term comprising the indexed node property from the set of indexed node properties; and

executing the modified query at least by:

identifying via the data index a particular subset of nodes, from among the plurality of nodes, mapped to the indexed node property in the data index;

querying the particular subset of nodes to determine the one or more target nodes; and

storing or transmitting a response to the query based on the one or more target nodes.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 5, 2022
From: GARG, ANURAG; SMILEY, JACK RANDALL
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 061319/0888 →
Continuity (2)
Provisional Application 63298907 · Jan 12, 2022
Related Publication 20230222117A1 · Jul 13, 2023
References Cited (6)
US 20060149724A1 · Ritter · 2006 [cited by examiner]
US 20130346068A1 · Solem · 2013 [cited by examiner]
US 20150310073A1 · Chakrabarti · 2015 [cited by examiner]
US 20160063115A1 · Ayan · 2016 [cited by examiner]
US 20180349377A1 · Verma · 2018 [cited by examiner]
US 20200134070A1 · Sidoti · 2020 [cited by examiner]