IP Library › Granted Patent US 12,299,020
Granted Patent B2
US 12,299,020 · App. 18/331,655 · Granted May 13, 2025

Self-executing protocol generation from natural language text

Inventors: Jaya Prakash Narayana Gutta (New York, NY); Sharad Malhautra (New York, NY); Lalit Gupta (Bangalore, IN)
Assignee: DSilo Inc.
G06F16/3344G06F16/31G06F16/3347G06F16/355G06F40/186G06F40/279G06F40/295G06N20/20G06Q50/18
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,299,020
App. No.
18/331,655
Filed
Jun 8, 2023
Granted
May 13, 2025
Kind
B2
Examiner
TRAN, TAM T
Art Unit
2174
USPC
715/256
Abstract

A process includes obtaining a document, determining a set of vectors based on a count of n-grams of the document, and determining a first set of information based on the document using a first set of neural networks. The process includes selecting a text section of the natural language document using a second set of neural networks and a code template of a plurality of code templates based on the text section based on the first set of information and the text section. The process includes determining an entity identifier, a value of a conditional statement, a second set of information, and a third set of information based on the text section, the first set of information, and the code template. The process includes generating a first set of program code based on the entity identifier, the value, the second set of information, and the third set of information.

Claims (97)

1. A method of deploying program code based on a natural language document, the method comprising:

obtaining, by a natural language processing (NLP) computer system, an unstructured natural language document comprising text sections;

extracting, by the NLP computer system from the unstructured natural language document, document feature information, the document feature information comprising sets of features and feature values extracted from text sections of the unstructured natural language document;

determining, by the NLP computer system from the text sections of the unstructured natural language document, a set of one or more text sections as having not yet been encoded into self-executing program code;

selecting, by the NLP computer system in response to determining the set of one or more text sections as having not yet been encoded into self-executing program code, a text section of the set of one or more text sections as a candidate text section of the unstructured natural language document;

determining, by the NLP computer system, a set of candidate feature information associated with the candidate section, the set of candidate feature information comprising features and feature values of the document feature information extracted from the candidate section;

determining, by the NLP computer system based on the set of candidate feature information, a program code template, the program code template comprising a set of code template fields, the set of code template fields comprising:

a first parameter value field; and

a second parameter value field;

determining, by the NLP computer system using a deep learning model, code parameters corresponding to the set of code template fields, the code parameters comprising:

a first feature value corresponding to the first parameter value field; and

a second feature value corresponding to the second parameter value field;

generating, by the NLP computer system, self-executing program code, the generating of the self-executing program code comprising populating the set of code template fields with corresponding values of the set of candidate feature information, the populating of the set of code template fields with corresponding values of the set of candidate feature information comprising:

populating the first parameter value field with the first feature value; and

populating the second parameter value field with the second feature value,

wherein the self-executing program code is configured to execute an operation relating to the second feature value responsive to occurrence of a condition related to the populated value of the first parameter value field;

deploying, by the NLP computer system, the program code on a distributed ledger database of a peer-to-peer network;

determining that the condition related to the populated value of the first parameter value field occurs; and

executing, in response to determining that the condition related to the populated value of the first parameter value field occurs, the self-executing program code deployed on the distributed ledger database to cause the operation relating to the second feature value in response to the occurrence of the condition related to the populated value of the first parameter value field.

2. The method of claim 1 , further comprising segmenting, using a second deep learning model, the unstructured natural language document into the set of text sections.

3. The method of claim 1 , wherein the text sections comprise structured text sections of the natural language document defined by formatting of textual elements of the text sections, and

wherein the method further comprises determining, by the NLP computer system, the text sections based on the formatting of the textual elements of the unstructured natural language document.

4. The method of claim 1 , wherein the text sections comprise sequences of textual elements, and wherein extracting sets of features and feature values from text sections of the unstructured natural language document comprises:

determining, by the NLP computer system, n-grams corresponding to the sequences of textual elements;

determining, by the NLP computer system, a count of the n-grams, the count of the n-grams comprising, for each of different n-grams, a count of the number of times the n-gram appears in the sequences of textual elements;

determining, by the NLP computer system and based on the count of n-grams, vectors of the unstructured natural language document; and

determining, by the NLP computer system based on the vectors of the unstructured natural language document, document feature information comprising the sets of features and feature values extracted from text sections of the unstructured natural language document.

5. The method of claim 1 , wherein the second feature value comprises an identity of an entity and the operation comprises an operation relating to the entity.

6. The method of claim 1 , wherein the unstructured natural language document comprises a document outlining contract terms, and wherein the program code defines a contract incorporating the contract terms.

7. The method of claim 1 , wherein the program code defines a self-executing contract that executes responsive to the occurrence of the condition related to the populated value of the first parameter value field.

8. The method of claim 7 , wherein the contract comprises a self-executing contract specifying an exchange of monetary funds in response to the occurrence of the condition related to the populated value of the first parameter value field, and wherein execution of the program code deployed on the distributed ledger database causes the exchange of the monetary funds in response to the occurrence of the condition related to the populated value of the first parameter value field.

9. The method of claim 8 , wherein the second feature value comprises an identity of an entity, the operation comprises an operation relating to the entity, and the exchange of monetary funds comprises payment of monetary funds to or receipt of monetary funds from the entity.

10. The method of claim 1 , wherein determining the program code template comprises selecting, based on the set of candidate feature information, the program code template from a set of predetermined program code templates.

11. A system for deploying program code based on a natural language document, the system comprising:

a computer processor; and

non-transitory computer-readable storage medium comprising program instructions stored thereon that are executable by the computer processor to cause the following operations:

obtaining an unstructured natural language document comprising text sections;

extracting, by a natural language processing (NLP) computer system from the unstructured natural language document, document feature information, the document feature information comprising sets of features and feature values extracted from text sections of the unstructured natural language document;

determining, by the NLP computer system from the text sections of the unstructured natural language document, a set of one or more text sections as having not yet been encoded into self-executing program code;

selecting, by the NLP computer system in response to determining the set of one or more text sections as having not yet been encoded into self-executing program code, a text section of the set of one or more text sections as a candidate text section of the unstructured natural language document;

determining, by the NLP computer system, a set of candidate feature information associated with the candidate section, the set of candidate feature information comprising features and feature values of the document feature information extracted from the candidate section;

determining, by the NLP computer system and based on the set of candidate feature information, a program code template, the program code template comprising a set of code template fields, the set of code template fields comprising:

a first parameter value field; and

a second parameter value field;

determining, by the NLP computer system using a deep learning model, code parameters corresponding to the set of code template fields, the code parameters comprising:

a first feature value corresponding to the first parameter value field; and

a second feature value corresponding to the second parameter value field;

generating, by the NLP computer system, self-executing program code, the generating of the self-executing program code comprising populating the set of code template fields with corresponding values of the set of candidate feature information, the populating of the set of code template fields with corresponding values of the set of candidate feature information comprising:

populating the first parameter value field with the first feature value; and

populating the second parameter value field with the second feature value,

 wherein the self-executing program code is configured to execute an operation relating to the second feature value responsive to occurrence of a condition related to the populated value of the first parameter value field; and

deploying, by the NLP computer system, the program code on a distributed ledger database of a peer-to-peer network for execution responsive to occurrence of the condition related to the populated value of the first parameter value field.

12. The system of claim 11 , the operations further comprising segmenting, using a second deep learning model, the unstructured natural language document into the set of text sections.

13. The system of claim 11 , wherein the text sections comprise structured text sections of the natural language document defined by formatting of textual elements of the text sections, and

wherein the operations further comprises determining, by the NLP computer system, the text sections based on the formatting of the textual elements of the unstructured natural language document.

14. The system of claim 11 , wherein the text sections comprise sequences of textual elements, and wherein extracting sets of features and feature values from text sections of the unstructured natural language document comprises:

determining, by the NLP computer system, n-grams corresponding to the sequences of textual elements;

determining, by the NLP computer system, a count of the n-grams, the count of the n-grams comprising, for each of different n-grams, a count of the number of times the n-gram appears in the sequences of textual elements;

determining, by the NLP computer system and based on the count of n-grams, vectors of the unstructured natural language document; and

determining, by the NLP computer system based on the vectors of the unstructured natural language document, document feature information comprising the sets of features and feature values extracted from text sections of the unstructured natural language document.

15. The system of claim 11 , wherein the second feature value comprises an identity of an entity and the operation comprises an operation relating to the entity.

16. The system of claim 11 , wherein the unstructured natural language document comprises a document outlining contract terms, and wherein the program code defines a contract incorporating the contract terms.

17. The system of claim 11 , wherein the program code defines a self-executing contract configured to execute responsive to occurrence of the condition related to the populated value of the first parameter value field.

18. The system of claim 17 , wherein the program code defines a self-executing contract specifying an exchange of monetary funds in response to occurrence of the condition related to the populated value of the first parameter value field, and wherein the execution of the program code deployed on the distributed ledger database causes the exchange of the monetary funds in response to the occurrence of the condition related to the populated value of the first parameter value field.

19. The system of claim 18 , wherein the second feature value comprises an identity of an entity, the operation comprises an operation relating to the entity, and the exchange of monetary funds comprises payment of monetary funds to the entity or receipt of monetary funds from the entity.

20. The system of claim 11 , wherein determining the program code template comprises selecting, based on the set of candidate feature information, the program code template from a set of predetermined program code templates.

21. A non-transitory computer-readable storage medium comprising program instructions stored thereon that are executable by a computer processor to cause the following operations for deploying program code based on a natural language document:

obtaining, by a natural language processing (NLP) computer system, an unstructured natural language document comprising text sections;

extracting, by the NLP computer system from the unstructured natural language document, document feature information, the document feature information comprising sets of features and feature values extracted from text sections of the unstructured natural language document;

determining, by the NLP computer system from the text sections of the unstructured natural language document, a set of one or more text sections as having not yet been encoded into self-executing program code;

selecting, by the NLP computer system in response to determining the set of one or more text sections as having not yet been encoded into self-executing program code, a text section of the set of one or more text sections as a candidate text section of the unstructured natural language document;

determining, by the NLP computer system, a set of candidate feature information associated with the candidate section, the set of candidate feature information comprising features and feature values of the document feature information extracted from the candidate section;

determining, by the NLP computer system based on the set of candidate feature information, a program code template, the program code template comprising a set of code template fields, the set of code template fields comprising:

a first parameter value field; and

a second parameter value field;

determining, by the NLP computer system using a second deep learning model, code parameters corresponding to the set of code template fields, the code parameters comprising:

a first feature value corresponding to the parameter value field; and

a second feature value corresponding to the second parameter value field;

generating, by the NLP computer system, self-executing program code, the generating of the self-executing program code comprising populating the set of code template fields with corresponding values of the set of candidate feature information, the populating of the set of code template fields with corresponding values of the set of candidate feature information comprising:

populating the first parameter value field with the first feature value; and

populating the second parameter value field with the second feature value,

 wherein the self-executing program code is configured to execute an operation relating to the second feature value responsive to occurrence of a condition related to the populated value of the first parameter value field; and

deploying, by the NLP computer system, the program code on a distributed ledger database of a peer-to-peer network for execution responsive to occurrence of the condition related to the populated value of the first parameter value field.

22. The medium of claim 21 , the operations further comprising segmenting, using a second deep learning model, the unstructured natural language document into the set of text sections.

23. The medium of claim 21 , wherein the text sections comprise structured text sections of the natural language document defined by formatting of textual elements of the text sections, and

wherein the operations further comprise determining, by the NLP computer system, the text sections based on the formatting of the textual elements of the unstructured natural language document.

24. The medium of claim 21 , wherein the text sections comprise sequences of textual elements, and wherein extracting sets of features and feature values from text sections of the unstructured natural language document comprises:

determining, by the NLP computer system, n-grams corresponding to the sequences of textual elements;

determining, by the NLP computer system, a count of the n-grams, the count of the n-grams comprising, for each of different n-grams, a count of the number of times the n-gram appears in the sequences of textual elements;

determining, by the NLP computer system and based on the count of n-grams, vectors of the unstructured natural language document; and

determining, by the NLP computer system based on the vectors of the unstructured natural language document, document feature information comprising the sets of features and feature values extracted from text sections of the unstructured natural language document.

25. The medium of claim 21 , wherein the second feature value comprises an identity of an entity and the operation comprises an operation relating to the entity.

26. The medium of claim 21 , wherein the unstructured natural language document comprises a document outlining contract terms, and wherein the program code defines a contract incorporating the contract terms.

27. The medium of claim 21 , wherein the program code defines a self-executing contract configured to execute responsive to occurrence of the condition related to the populated value of the first parameter value field.

28. The medium of claim 27 , wherein the program code defines a self-executing contract specifying an exchange of monetary funds in response to occurrence of the condition related to the populated value of the first parameter value field, and wherein the execution of the program code deployed on the distributed ledger database causes the exchange of the monetary funds in response to the occurrence of the condition related to the populated value of the first parameter value field.

29. The medium of claim 28 , wherein the second feature value comprises an identity of an entity, the operation comprises an operation relating to the entity, and the exchange of monetary funds comprises payment of monetary funds to the entity or receipt of monetary funds from the entity.

30. The medium of claim 21 , wherein determining the program code template comprises selecting, based on the set of candidate feature information, the program code template from a set of predetermined program code templates.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 14, 2023
From: GUTTA, JAYA PRAKASH NARAYANA; MALHAUTRA, SHARAD; GUPTA, LALIT
To: DSILO INC.
Reel/Frame 064258/0753 →
Continuity (5)
Continuation 17877264 · Jul 29, 2022
Provisional Application 63227796 · Jul 30, 2021
Provisional Application 63227790 · Jul 30, 2021
Provisional Application 63227793 · Jul 30, 2021
Related Publication 20230315770A1 · Oct 5, 2023
References Cited (82)
US 9280908B2 · Isensee et al. · 2016 [cited by applicant]
US 10509860B2 · Zhang et al. · 2019 [cited by applicant]
US 10817650B2 · McCann et al. · 2020 [cited by applicant]
US 10861456B2 · Tran et al. · 2020 [cited by applicant]
US 10997503B2 · Dohan et al. · 2021 [cited by applicant]
US 11113479B2 · Tran et al. · 2021 [cited by applicant]
US 11138248B2 · Parameshwara et al. · 2021 [cited by applicant]
US 11216618B2 · Feng et al. · 2022 [cited by applicant]
US 11288295B2 · Fan et al. · 2022 [cited by applicant]
US 11423068B2 · Faruqui et al. · 2022 [cited by applicant]
US 11431660B1 · Leeds et al. · 2022 [cited by applicant]
US 11520815B1 · Gutta et al. · 2022 [cited by applicant]
US 11580150B1 · Gutta et al. · 2023 [cited by applicant]
US 11615249B2 · McCann et al. · 2023 [cited by applicant]
US 11860916B2 · Gutta et al. · 2024 [cited by applicant]
US 20060074900A1 · Nanavati et al. · 2006 [cited by applicant]
US 20100223276A1 · Al-Shameri et al. · 2010 [cited by applicant]
US 20110320498A1 · Flor · 2011 [cited by applicant]
US 20140067368A1 · Yih et al. · 2014 [cited by applicant]
US 20160041980A1 · Mungi et al. · 2016 [cited by applicant]
US 20160203152A1 · Burukhin et al. · 2016 [cited by applicant]
US 20160358094A1 · Fan et al. · 2016 [cited by applicant]
US 20170061250A1 · Gao et al. · 2017 [cited by applicant]
US 20180365201A1 · Hunn et al. · 2018 [cited by applicant]
US 20190012373A1 · Malik et al. · 2019 [cited by applicant]
US 20190034404A1 · Anderson et al. · 2019 [cited by applicant]
US 20190130248A1 · Zhong et al. · 2019 [cited by applicant]
US 20200034611A1 · Hosabettu · 2020 [cited by examiner]
US 20200042649A1 · Bakis et al. · 2020 [cited by applicant]
US 20200250747A1 · Padmanabhan · 2020 [cited by applicant]
US 20200293874A1 · Ji et al. · 2020 [cited by applicant]
US 20200294133A1 · Cella · 2020 [cited by applicant]
US 20200380624A1 · Turgman et al. · 2020 [cited by applicant]
US 20210004540A1 · Harper et al. · 2021 [cited by applicant]
US 20210004794A1 · Kumar Kumaresan et al. · 2021 [cited by applicant]
US 20210034966A1 · Qian · 2021 [cited by applicant]
US 20210056150A1 · Karandish et al. · 2021 [cited by applicant]
US 20210065304A1 · Greene et al. · 2021 [cited by applicant]
US 20210109995A1 · Mihindukulasooriya et al. · 2021 [cited by applicant]
US 20210256069A1 · Grail et al. · 2021 [cited by applicant]
US 20210294970A1 · Bender et al. · 2021 [cited by applicant]
US 20210295822A1 · Tomkins et al. · 2021 [cited by applicant]
US 20210312302A1 · Gaur et al. · 2021 [cited by applicant]
US 20210342847A1 · Shachar et al. · 2021 [cited by applicant]
US 20210406225A1 · Akhoury et al. · 2021 [cited by applicant]
US 20210406772A1 · Shillingford · 2021 [cited by examiner]
US 20220086131A1 · Kinai et al. · 2022 [cited by applicant]
US 20220188885A1 · Blackman · 2022 [cited by examiner]
US 20230037077A1 · Gutta et al. · 2023 [cited by applicant]
US 20230038529A1 · Gutta et al. · 2023 [cited by applicant]
US 20230096857A1 · Gutta et al. · 2023 [cited by applicant]
US 20230195767A1 · Gutta et al. · 2023 [cited by applicant]
US 20240028629A1 · Gutta et al. · 2024 [cited by applicant]
Maximillan Wohrer et al., Domain Specific Language for Smart Contract Development, May 1, 2020, IEEE International Conference on Blockchain and Cryptocurrency, pp. 1-9 (Year: 2020). [cited by examiner]
Emanuel Regnath et al., SmaCoNat: Smart Contracts in Natural Language, Sep. 1, 2018, Forum on Specification and Design Language, pp. 5-16 (Year: 2018). [cited by examiner]
Notice of Allowance issued in U.S. Appl. No. 18/108,116, dated Jan. 24, 2024, pp. 1-9. [cited by applicant]
“Bayes classifier,” Wikipedia, https://en.wikipedia.org/w/index.php?title=Bayes_classifier&oldid=1094620681, Jun. 23, 2022, pp. 1-3. [cited by applicant]
Montantes, James, “BERT Transformers—How Do They Work?,” Becoming Human: Artificial Intelligence Magazine, Apr. 12, 2021, pp. 1-20. [cited by applicant]
Sharma, Akshay, “Brief Introduction to N-gram and TF-IDF | Tokenization,” Feb. 1, 2021, pp. 1-5. [cited by applicant]
“Deep learning vs. machine learning in Azure Machine Learning,” Microsoft Docs, Apr. 2, 2022, https://docks.microsoft.com/en-us/azure/machine-learning/concept-deep-learning-vs-machine-learning, pp. 1-9. [cited by applicant]
“Extract N-Gram Features from Text component reference,” Azure Machine Learning, Apr. 11, 2021, pp. 1-8. [cited by applicant]
“How to use CountVectorizer for n-gram analysis,” Practical Data Science, Dec. 24, 2021, pp. 1-15. [cited by applicant]
“n-gram,” Wikipedia, https://en.wikipedia.org/w/index.php?title=N-gram&oldid=1091994341, Jun. 7, 2022, pp. 1-10. [cited by applicant]
“N-Grams,” DeepAI, https://deepai.org/machine-learning-glossary-and-terms/n-gram, Jul. 29, 2022, pp. 1-3. [cited by applicant]
Tf-Idf, Wikipedia, https://en.wikipedia.org/w/index.php?title=Tf-id&oldid=1098671947, Jul. 16, 2022, pp. 1-7. [cited by applicant]
Ibanez, Daniel, “Transformer Text Embeddings,” https://www.baeldung.com/cs/transformer-text-embeddings, May 7, 2021, pp. 1-21. [cited by applicant]
Vector space model, Wikipedia, https://en.wikipedia.org/w/index.php?title=Vector_space_model&oldid=108409508, Apr. 22, 2022, pp. 1-5. [cited by applicant]
“Deep Learning,” IBM Cloud Education, https://www.ibm.com/cloud/watson-studio/deep-learning, May 1, 2022, pp. 1-9. [cited by applicant]
Wang et al., “GLUE: A Multi-Task Benchmark and Analysis Platform for Natural Language Understanding”, 2018, pp. 1-9. [cited by applicant]
Mik, Eliza, “Smart contracts: Terminology, technical limitations and real world complexity”, Oct. 2017, Law, Innovation and Technology, pp. 1-26. [cited by applicant]
“template”, Free On-Line Dictionary of Computing, Oct. 14, 2007, foldoc.org, pp. 1-2. [cited by applicant]
Clack et al., “Smart Contract Templates: foundations, design landscape and research directions”, Mar. 15, 2017, Barclays Bank, pp. 1-15. [cited by applicant]
Non-Final Office Action for U.S. Appl. No. 17/877,321, dated Oct. 13, 2022, pp. 1-24. [cited by applicant]
Non-Final Office Action for U.S. Appl. No. 17/877,264, dated Oct. 18, 2022, pp. 1-20. [cited by applicant]
Notice of Allowance in U.S. Appl. No. 17/877,365 dated Sep. 21, 2022, pp. 1-21. [cited by applicant]
Corrected Notice of Allowance in U.S. Appl. No. 17/877,365 dated Oct. 6, 2022, pp. 1-14. [cited by applicant]
Notice of Allowance in related U.S. Appl. No. 17/877,321 dated Dec. 14, 2022, pp. 1-16. [cited by applicant]
Corrected Notice of Allowability in related U.S. Appl. No. 17/877,321 dated Jan. 5, 2023, pp. 1-12. [cited by applicant]
Non-Final Office Action in related U.S. Appl. No. 18/073,815, dated Apr. 25, 2023, pp. 1-11. [cited by applicant]
Notice of Allowance in related U.S. Appl. No. 17/877,264, dated Jun. 1, 2023, pp. 1-10. [cited by applicant]
Final Office Action in related U.S. Appl. No. 17/877,264, dated Mar. 7, 2023, pp. 1-19. [cited by applicant]
Notice of Allowance in related U.S. Appl. No. 18/073,815, dated Jun. 27, 2023, pp. 1-10. [cited by applicant]