IP Library Granted Patent US 12,197,895
Granted Patent B2
US 12,197,895 · App. 17/552,592 · Granted Jan 14, 2025

Dialogue- and machine learning-facilitated code development

Inventors: Beat Buesser (Ashtown, IE); Yufang Hou (Dublin, IE); Akihiro Kishimoto (Setagaya, JP); Radu Marinescu (Dublin, IE)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F8/33G06F16/243G06N20/00
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,197,895
App. No.
17/552,592
Granted
Jan 14, 2025
Kind
B2
Abstract

One or more systems, devices, computer program products and/or computer-implemented methods of use provided herein relate to facilitating code development by predicting one or more code attributes and/or code portions for use in a project code to be written. A system can comprise a memory that stores computer executable components, and a processor that executes the computer executable components stored in the memory, wherein the computer executable components can comprise a dialogue component that generates a query based on a natural language request comprising a code-related attribute, and a prediction component that predicts another attribute or a code portion to satisfy the request. In an embodiment, an input dataset employed to support the influence mapping can comprise time-stamped tuple data comprising a state, an action and a reward. The code-related attribute can at least partially define a project code, of code to be written.

Claims (60)

1. A system, comprising:

a memory that stores computer executable components; and

a processor that executes at least one of the computer executable components that:

provides, using a machine learning model and an interactive dialogue with a user developing a program, source code to the user to perform a functionality of a portion of the program, wherein the providing comprises iteratively, until the source code satisfying the functionality is provided:

receiving, from the user, a natural language (NL) input comprising one or more code-related attributes associated with the functionality;

generating, using the machine learning model, a query based on the natural language (NL) input;

receiving results from execution of the query;

identifying, using the machine learning model, whether the results comprise a code portion that satisfies the functionality;

in response to identifying that the results do not comprise any code portions that satisfy the functionality, presenting a clarification query to the user to elicit additional code-related attributes associated with the functionality; and

in response to identifying that the results comprise the code portion that satisfies the functionality, providing the code portion to the user.

2. The system of claim 1 , wherein the identifying that the results comprise the code portion that satisfies the functionality comprises:

identifying, using the machine learning model, a result of the results that comprises candidate source code that can be modified into the code portion that satisfies the functionality.

3. The system of claim 2 , wherein the identifying that the results comprise the code portion that satisfies the functionality further comprises:

modifying, using the machine learning model, based upon the one or more code-related attributes, the candidate source code into the code portion that satisfies the functionality.

4. The system of claim 1 , wherein the identifying that the results comprise the code portion that satisfies the functionality comprises:

identifying, using the machine learning model, the code portion based on metadata associated with one or more labels of the code portion.

5. The system of claim 1 , wherein the presenting the clarification query to the user comprises:

generating, using the machine learning model, the clarification query based on the one or more code-related attributes and the results from the execution of the query.

6. The system of claim 1 , wherein the presenting the clarification query to the user comprises:

generating, using the machine learning model, a dialogue plan comprising clarification queries for eliciting the additional code-related attributes associated with the functionality.

7. The system of claim 1 , wherein the at least one of the computer executable components further:

trains the machine learning model on one or more code languages.

8. A computer-implemented method, comprising:

providing, by a system operatively coupled to a processor, using a machine learning model and an interactive dialogue with a user developing a program, source code to the user to perform a functionality of a portion of the program, wherein the providing comprises iteratively, until the source code satisfying the functionality is provided:

receiving, from the user, a natural language (NL) input comprising one or more code-related attributes associated with the functionality;

generating, using the machine learning model, a query based on the natural language (NL) input;

receiving results from execution of the query;

identifying, using the machine learning model, whether the results comprise a code portion that satisfies the functionality;

in response to identifying that the results do not comprise any code portions that satisfy the functionality, presenting a clarification query to the user to elicit additional code-related attributes associated with the functionality; and

in response to identifying that the results comprise the code portion that satisfies the functionality, providing the code portion to the user.

9. The computer-implemented method of claim 8 , wherein the identifying that the results comprise the code portion that satisfies the functionality comprises:

identifying, using the machine learning model, a result of the results that comprises candidate source code that can be modified into the code portion that satisfies the functionality.

10. The computer-implemented method of claim 9 , wherein the identifying that the results comprise the code portion that satisfies the functionality further comprises:

modifying, using the machine learning model, based upon the one or more code-related attributes, the candidate source code into the code portion that satisfies the functionality.

11. The computer-implemented method of claim 8 , wherein the identifying that the results comprise the code portion that satisfies the functionality comprises:

identifying, using the machine learning model, the code portion based on metadata associated with one or more labels of the code portion.

12. The computer-implemented method of claim 8 , wherein the presenting the clarification query to the user comprises:

generating, using the machine learning model, a dialogue plan comprising clarification queries for eliciting the additional code-related attributes associated with the functionality.

13. The computer-implemented method of claim 8 , wherein the presenting the clarification query to the user comprises:

generating, using the machine learning model, the clarification query based on the one or more code-related attributes and the results from the execution of the query.

14. A computer program product facilitating a process to facilitate code development, the computer program product comprising a non-transitory computer readable medium having program instructions embodied therewith, the program instructions executable by a processor to cause the processor to:

provide, using a machine learning model and an interactive dialogue with a user developing a program, source code to the user to perform a functionality of a portion of the program, wherein the providing comprises iteratively, until the source code satisfying the functionality is provided:

receiving, from the user, a natural language (NL) input comprising one or more code-related attributes associated with the functionality;

generating, using the machine learning model, a query based on the natural language (NL) input;

receiving results from execution of the query;

identifying, using the machine learning model, whether the results comprise a code portion that satisfies the functionality;

in response to identifying that the results do not comprise any code portions that satisfy the functionality, presenting a clarification query to the user to elicit additional code-related attributes associated with the functionality; and

in response to identifying that the results comprise the code portion that satisfies the functionality, providing the code portion to the user.

15. The computer program product of claim 14 , wherein the identifying that the results comprise the code portion that satisfies the functionality comprises:

identifying, using the machine learning model, a result of the results that comprises candidate source code that can be modified into the code portion that satisfies the functionality.

16. The computer program product of claim 15 , wherein the identifying that the results comprise the code portion that satisfies the functionality comprises:

modifying, using the machine learning model, based upon the one or more code-related attributes, the candidate source code into the code portion that satisfies the functionality.

17. The computer program product of claim 14 , wherein the identifying that the results comprise the code portion that satisfies the functionality comprises:

identify, using the machine learning model, the code portion based on metadata associated with one or more labels of the code portion.

18. The computer program product of claim 14 , wherein the presenting the clarification query to the user comprises:

generate, using the machine learning model, a dialogue plan comprising clarification queries for eliciting the additional code-related attributes associated with the functionality.

19. The computer program product of claim 14 , wherein the presenting the clarification query to the user comprises:

generate, using the machine learning model, the clarification query based on one or more the one or more code-related attributes and the results from the execution of the query.

20. The computer program product of claim 14 , wherein the program instructions are further executable by the processor to cause the processor to:

train the machine learning model on one or more code languages.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 16, 2021
From: BUESSER, BEAT; HOU, YUFANG; KISHIMOTO, AKIHIRO; MARINESCU, RADU
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 058405/0435 →
Continuity (1)
Related Publication 20230195427A1 · Jun 22, 2023
References Cited (35)
US 5671416A · Elson · 1997 [cited by applicant]
US 8566789B2 · Siddaramappa et al. · 2013 [cited by applicant]
US 8972372B2 · Elbaum et al. · 2015 [cited by applicant]
US 9064005B2 · Stensmo · 2015 [cited by applicant]
US 9171542B2 · Gandrabur et al. · 2015 [cited by applicant]
US 9946786B2 · Allen et al. · 2018 [cited by applicant]
US 10754885B2 · Yao · 2020 [cited by applicant]
US 11036728B2 · Torres et al. · 2021 [cited by applicant]
US 11100407B2 · Alkan et al. · 2021 [cited by applicant]
US 11652755B1 · Mritunjai · 2023 [cited by examiner]
US 20070061294A1 · Parnell et al. · 2007 [cited by applicant]
US 20100169871A1 · Villadsen et al. · 2010 [cited by applicant]
US 20140165032A1 · Balasubramanian et al. · 2014 [cited by applicant]
US 20190066660A1 · Liang et al. · 2019 [cited by applicant]
US 20190347363A1 · Kishimoto et al. · 2019 [cited by applicant]
US 20200012954A1 · Botea et al. · 2020 [cited by applicant]
US 20210027771A1 · Hall et al. · 2021 [cited by applicant]
US 20210182283A1 · Carney · 2021 [cited by examiner]
US 20210232393A1 · Muddakkagari · 2021 [cited by examiner]
US 20220121884A1 · Zadeh · 2022 [cited by examiner]
US 20220138240A1 · Bahrami · 2022 [cited by examiner]
US 20220215023A1 · Cheng · 2022 [cited by examiner]
US 20230109681A1 · Gotmare · 2023 [cited by examiner]
US 20230128200A1 · Clement · 2023 [cited by examiner]
CA 3040108A1 · 2020 [cited by examiner]
Ye et al., “Probing Semantic Grounding in Language Models of Code with Representational Similarity Analysis,” arXiv, 2021, 22pg. (Year: 2021). [cited by examiner]
Iyer, et al., “Summarizing source code using a neural attention model.” In Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (vol. 1: Long Papers), pp. 2073-2083. 2016. [cited by applicant]
Alon, et al., “code2seq: Generating sequences from structured representations of code.” arXiv preprint arXiv:1808.01400 (2018). [cited by applicant]
Lachaux, et al., “Unsupervised Translation of Programming Languages.” arXiv:2006.03511v3 [cs.CL] Sep. 22, 2020. [cited by applicant]
Husain, et al., “Codesearchnet challenge: Evaluating the state of semantic code search.” arXiv preprint arXiv:1909.09436, arXiv:1909.09436v3 [cs.LG] Jun. 8, 2020. [cited by applicant]
Github, Copilot https://copilot.github.com/, GitHub Inc. © 2021, Retrieved from the Internet: Nov. 4, 2021. [cited by applicant]
Github, “elastic/elasticsearch,” https://github.com/elastic/elasticsearch, GitHub Inc. © 2021, Retrieved from the Internet: Nov. 4, 2021. [cited by applicant]
Botea et al., “Generating Dialogue Agents via Automated Planning”, arXiv:1902.00771v1 [cs.AI] Feb. 2, 2019. [cited by applicant]
IBM, https://w3.ibm.com/w3publisher/ibm-research/stories/in-conversation-with-researchers/ruchir-puri, Retrieved from the Internet: Nov. 4, 2021. [cited by applicant]
Mell et al., “The NIST Definition of Cloud Computing,” Recommendations of the National Institute of Standards and Technology, NIST Special Publication 800-145, Sep. 2011, 7 pages. [cited by applicant]