IP Library Granted Patent US 10,191,734
Granted Patent B1
US 10,191,734 · App. 14/970,259 · Granted Jan 29, 2019

Method and system for software application optimization using natural language-based queries

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 10,191,734
App. No.
14/970,259
Granted
Jan 29, 2019
Kind
B1
Abstract

A method for software application optimization using natural language-based queries. The method includes obtaining a user-provided query. The user-provided query includes a constraint to be used for an identification of an application element that matches the constraint, from a set of application elements of a software application. The user-provided query is a string that includes a human language sentence. The method further includes deriving a formalized query from the user-provided query by translating the user-provided query into a syntactic construct of segmented sentence elements and obtaining the application element that matches the constraint. Obtaining the application element that matches the constraint includes deriving a pattern representation of the user-provided query from the formalized query and identifying the application element that matches the pattern representation of the user-provided query from the plurality of application elements.

Claims (82)

1. A method for software application optimization using natural language-based queries, comprising:

obtaining, by an application development engine executing on a computing device, a user-provided query input via a user interface,

wherein the user-provided query comprises at least one software application optimization constraint and an optimization action, the at least one software application optimization constraint including information for an identification of an application element that matches the at least one software application optimization constraint, as a candidate for the optimization action, from a plurality of application elements of a software application, and

wherein the user-provided query is a string comprising a human language sentence;

deriving, by the application development engine, a formalized query from the user-provided query by translating the user-provided query into a syntactic construct of segmented sentence elements;

obtaining, by the application development engine, the application element that matches the at least one software application optimization constraint from an application repository, comprising:

deriving a pattern representation of the user-provided query from the formalized query; and

identifying the application element that matches the pattern representation of the user-provided query from the plurality of application elements, including identifying the application element as the candidate for the optimization action; and

optimizing the software application, by the application development engine, by performing the optimization action, including performing a software application revision on the identified application element that matches the pattern representation of the user-provided query.

2. The method of claim 1 , wherein each of the plurality of application elements is a single unit of code that forms an object of the software application.

3. The method of claim 1 , wherein the at least one software application optimization constraint comprises a verb that specifies an action.

4. The method of claim 3 , wherein the at least one software application optimization constraint comprises an adjective that constrains the verb.

5. The method of claim 1 , wherein a format of the user-provided query is based on a context free grammar.

6. The method of claim 1 , wherein the syntactic construct is a syntax tree.

7. The method of claim 1 , wherein a Rete pattern matching algorithm is used to identify the application element that matches the pattern representation of the user-provided query, from the plurality of application elements.

8. The method of claim 1 further comprising:

reporting the application element that matches the at least one software application optimization constraint to a user.

9. The method of claim 8 further comprising:

after reporting the application element that matches the at least one software application optimization constraint to the user:

obtaining a revised application element from the user; and

updating the software application by replacing the identified application element with the revised application element.

10. The method of claim 1 ,

wherein the optimization action comprises instructions for revising the identified application element;

wherein a revised application element is obtained by revising the identified application element, based on the instructions; and

wherein the software application is optimized by replacing the identified application element with the revised application element.

11. The method of claim 1 , wherein the at least one software application optimization constraint specifies one or more criteria, the one or more criteria including:

unused,

null, or

usage.

12. A system for software application optimization using natural language-based queries, comprising:

a computer processor;

an application repository;

a user interface configured to:

obtain a user-provided query,

wherein the user-provided query comprises at least one software application optimization constraint and an optimization action, the at least one software application optimization constraint including information for an identification of an application element that matches the at least one software application optimization constraint, as a candidate for the optimization action, from a plurality of application elements of a software application, and

wherein the user-provided query is a string comprising a human language sentence;

a language processing engine, executing on the computer processor, and configured to:

derive a formalized query from the user-provided query by translating the user-provided query into a syntactic construct of segmented sentence elements;

an application querying engine, executing on the computer processor, and configured to:

obtain the application element that matches the at least one software application optimization constraint, comprising:

deriving a pattern representation of the user-provided query from the formalized query; and

identifying the application element that matches the pattern representation of the user-provided query, from the plurality of application elements, including identifying the application element as the candidate for the optimization action; and

an application updating engine, executing on the computer processor, and configured to:

optimize the software application by performing the optimization action, including performing a software application revision on the identified application element that matches the pattern representation of the user-provided query.

13. The system of claim 12 , wherein each of the plurality of application elements is a single unit of code that forms an object of the software application.

14. The system of claim 12 , wherein the user interface is further configured to report the application element that matches the at least one software application optimization constraint to a user.

15. The system of claim 14 , wherein the user interface is further configured to, after reporting the application element that matches the at least one software application optimization constraint to the user:

obtain a revised application element from the user; and

wherein the application updating engine is configured to:

update the software application by replacing the identified application element with the revised application element.

16. The system of claim 12 ,

wherein the optimization action comprises instructions for revising the identified application element;

wherein the application updating engine generates a revised application element by revising the identified application element, based on the instructions; and

wherein the application updating engine optimizes the software application by replacing the identified application element with the revised application element.

17. The system of claim 12 , wherein the at least one software application optimization constraint specifies one or more criteria, the one or more criteria including:

unused,

null, or

usage.

18. A non-transitory computer readable medium (CRM) storing instructions for software application optimization using natural language-based queries, the instructions for software application optimization using natural language-based queries comprising functionality for:

obtaining a user-provided query based on user interaction with a user interface,

wherein the user-provided query comprises at least one software application optimization constraint and an optimization action, the at least one software application optimization constraint including information for an identification of an application element that matches the at least one software application optimization constraint, as a candidate for the optimization action, from a plurality of application elements of a software application, and

wherein the user-provided query is a string comprising a human language sentence;

deriving a formalized query from the user-provided query by translating the user-provided query into a syntactic construct of segmented sentence elements;

obtaining the application element that matches the at least one software application optimization constraint from an application repository, comprising:

deriving a pattern representation of the user-provided query from the formalized query; and

identifying the application element that matches the pattern representation of the user-provided query from the plurality of application elements, including identifying the application element as the candidate for the optimization action; and

optimizing the software application by performing the optimization action, including performing a software application revision on the identified application element that matches the pattern representation of the user-provided query.

19. The non-transitory CRM of claim 18 , wherein each of the plurality of application elements is a single unit of code that forms an object of the software application.

20. The non-transitory CRM of claim 18 , wherein the instructions for software application optimization using natural language-based queries further comprise functionality for reporting the application element that matches the at least one software application optimization constraint to a user.

21. The non-transitory CRM of claim 20 , wherein the instructions for software application optimization using natural language-based queries further comprise functionality for,

after reporting the application element that matches the at least one software application optimization constraint to the user:

obtaining a revised application element from the user; and

optimizing the software application by replacing the identified application element with the revised application element.

22. The non-transitory CRM of claim 18 ,

wherein the optimization action comprises instructions for revising the identified application element; and

wherein the instructions for software application optimization using natural language-based queries further comprise functionality for:

obtaining a revised application element by revising the identified application element, based on the instructions for revising the identified application element; and

optimizing the software application by replacing the identified application element with the revised application element.

23. The non-transitory CRM of claim 18 , wherein the at least one software application optimization constraint specifies one or more criteria, the one or more criteria including:

unused,

null, or

usage.

Assignments (7)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: EMC CORPORATION
To: OPEN TEXT CORPORATION
Reel/Frame 041141/0022 →
RELEASE OF SECURITY INTEREST Recorded Jan 23, 2017
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC CORPORATION
Reel/Frame 041073/0443 →
PATENT RELEASE (REEL:40134/FRAME:0001) Recorded Jan 23, 2017
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: EMC CORPORATION, AS GRANTOR
Reel/Frame 041073/0136 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 8, 2016
From: TOTALE, SACHIN GOPALDAS; LAMBA, HARKIRAT SINGH; KISHNANI, DEEPALI; MANOCHA, PULKIT; VAIDYA, SAMIR Y; SALVI, ROSHAN PRAKASH
To: EMC CORPORATION
Reel/Frame 037688/0073 →
Cited By (1)
US 12,417,095