IP Library › Granted Patent US 12,019,621
Granted Patent B2
US 12,019,621 · App. 17/819,217 · Granted Jun 25, 2024

Bot extensibility infrastructure

Inventor: Eduardo Ribeiro Rodrigues (Redwood City, CA)
Assignee: Oracle International Corporation
G06F16/2379G06F16/219H04L51/02
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,019,621
App. No.
17/819,217
Granted
Jun 25, 2024
Kind
B2
Abstract

The present disclosure relates generally to techniques for extending or customizing base skills (e.g., chatbots). According to certain embodiments, a bot extension infrastructure is provided to facilitate customization and/or extension of base skills, separately tracking different versions of the base skills and the extensions, applying an extension to different versions of a base skill, or applying different versions of extensions to a same base skill. The extensions to the base skills include JSON extensions indicating modifications to metadata of the base skills. A base skill (e.g., downloaded from a skills store) can be extended or customized by applying a JSON extension that describes the changes to be made to the metadata of the base skill.

Claims (86)

1. A computer-implemented method comprising:

obtaining, from a database storing a plurality of skills, a base skill, the base skill including:

implementation data for the base skill; and

obtaining a first JavaScript Object Notation (JSON) file including base metadata associated with the base skill;

obtaining, from the database, a second JSON file including an extended skill of the base skill;

comparing the first JSON file to the second JSON file to determine a difference between the base skill and the extended skill;

determining that the second JSON file has a conflict with the first JSON file in response to determining the difference between the base skill and the extended skill;

resolving the conflict between the second JSON file and the first JSON file;

applying changes to the first JSON file using the second JSON file to generate extended metadata associated with the extended skill, wherein the second JSON file indicates a change between the base metadata and the extended metadata;

implementing the extended skill based on the implementation data for the base skill and the extended metadata associated with the extended skill; and

determining that the extended skill is backwards compatible with the base skill; and

in response to determine that the extended skill is backwards compatible, storing, in the database storing the plurality of skills, the extended skill with a version identifier.

2. The computer-implemented method of claim 1 , wherein the plurality of skills and the extended skill are chatbot applications.

3. The computer-implemented method of claim 1 , wherein the base metadata includes at least one of: configuring, training, testing, or executing the base skill.

4. The computer-implemented method of claim 1 , wherein the base metadata includes at least one of an intent, an entity, an utterance, a custom component, or a conversation flow of the base skill.

5. The computer-implemented method of claim 1 , further comprising:

obtaining, from the database, a third JSON file describing changes to the metadata associated with the extended skill;

applying the changes to the metadata associated with the extended skill described in the third JSON file to generate metadata associated with a second extended skill; and

implementing the second extended skill based on the implementation data of the base skill and the metadata associated with the second extended skill.

6. The computer-implemented method of claim 1 , further comprising:

obtaining, from the database, a second skill, the second skill including:

implementation data for the second skill; and

a third JSON file including metadata associated with the second skill;

applying the changes to the first JSON file described in the second JSON file to the third JSON file to generate metadata associated with a second extended skill; and

implementing the second extended skill based on the implementation data for the second skill and the metadata associated with the second extended skill.

7. The computer-implemented method of claim 1 , wherein the database includes:

a first repository storing implementation data of the plurality of skills; and

a second repository storing the first JSON file and the second JSON file.

8. A non-transitory computer-readable storage medium storing computer-executable instructions that, when executed by one or more processors of a computing system, causing the one or more processors to perform operations including:

obtaining, from a database storing a plurality of skills, a base skill, the base skill including:

implementation data for the base skill; and

obtaining a first JavaScript Object Notation (JSON) file including base metadata associated with the base skill;

obtaining, from the database, a second JSON file associated with an extended skill of the base skill;

comparing the first JSON file to the second JSON file to determine a difference between the base skill and the extended skill;

determining that the second JSON file has a conflict with the first JSON file in response to the difference;

resolving the conflict between the second JSON file and the first JSON file;

applying changes to the first JSON file using the second JSON file to generate metadata associated with the extended skill, wherein the second JSON file indicates a change between the base metadata and the metadata;

implementing the extended skill based on the implementation data for the base skill and the metadata associated with the extended skill; and

determining that the extended skill is backwards compatible with the base skill; and

in response to determine that the extended skill is backwards compatible, storing, in the database storing the plurality of skills, the extended skill with a version identifier.

9. The non-transitory computer-readable storage medium of claim 8 , wherein the plurality of skills and the extended skill are chatbot applications.

10. The non-transitory computer-readable storage medium of claim 8 , wherein the base metadata includes at least one of: configuring, training, testing, or executing the base skill.

11. The non-transitory computer-readable storage medium of claim 8 , wherein the base metadata includes at least one of: an intent, an entity, an utterance, a custom component, or a conversation flow of the base skill.

12. The non-transitory computer-readable storage medium of claim 8 , further comprising:

obtaining, from the database, a third JSON file describing changes to the metadata associated with the extended skill;

applying the changes to the metadata associated with the extended skill described in the third JSON file to generate metadata associated with a second extended skill; and

implementing the second extended skill based on the implementation data of the base skill and the metadata associated with the second extended skill.

13. The non-transitory computer-readable storage medium of claim 8 , further comprising:

obtaining, from the database, a second skill, the second skill including:

implementation data for the second skill; and

a third JSON file including metadata associated with the second skill;

applying the changes to the first JSON file described in the second JSON file to the third JSON file to generate metadata associated with a second extended skill; and

implementing the second extended skill based on the implementation data for the second skill and the metadata associated with the second extended skill.

14. The non-transitory computer-readable storage medium of claim 8 , wherein the database includes:

a first repository storing implementation data of the plurality of skills; and

a second repository storing the first JSON file and the second JSON file.

15. A computer system comprising:

one or more processors; and

a non-transitory computer-readable storage medium storing computer-executable instructions that, when executed by the one or more processors, causing the one or more processors to perform operations including:

obtaining, from a database storing a plurality of skills, a base skill, the base skill including:

implementation data for the base skill; and

obtaining a first JavaScript Object Notation (JSON) file including base metadata associated with a base skill;

obtaining, from the database, a second JSON file associated with an extended skill of the base skill;

comparing the first JSON file to the second JSON file to determine a difference between the base skill and the extended skill;

determining that the second JSON file has a conflict with the first JSON file in response to the difference;

resolving the conflict between the second JSON file and the first JSON file;

applying changes to the first JSON file using the second JSON file to generate metadata associated with the extended skill, wherein the second JSON file indicates a change between the base metadata and the metadata;

implementing the extended skill based on the implementation data for the base skill and the metadata associated with the extended skill; and

determining that the extended skill is backwards compatible with the base skill; and

in response to determine that the extended skill is backwards compatible, storing, in the database storing the plurality of skills, the extended skill with a version identifier.

16. The computer system of claim 15 , wherein the plurality of skills and the extended skill are chatbot applications.

17. The computer system of claim 15 , wherein the base metadata includes at least one of: configuring, training, testing, or executing the base skill.

18. The computer system of claim 15 , wherein the base metadata includes at least one of: an intent, an entity, an utterance, a custom component, or a conversation flow of the base skill.

19. The computer system of claim 15 , further comprising:

obtaining, from the database, a third JSON file describing changes to the metadata associated with the extended skill;

applying the changes to the metadata associated with the extended skill described in the third JSON file to generate metadata associated with a second extended skill; and

implementing the second extended skill based on the implementation data of the base skill and the metadata associated with the second extended skill.

20. The computer system of claim 15 , further comprising:

obtaining, from the database, a second skill, the second skill including:

implementation data for the second skill; and

a third JSON file including metadata associated with the second skill;

applying the changes to the first JSON file described in the second JSON file to the third JSON file to generate metadata associated with a second extended skill; and

implementing the second extended skill based on the implementation data for the second skill and the metadata associated with the second extended skill.

21. The computer system of claim 15 , wherein the database includes:

a first repository storing implementation data of the plurality of skills; and

a second repository storing the first JSON file and the second JSON file.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 11, 2022
From: RODRIGUES, EDUARDO RIBEIRO
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 060788/0910 →
Continuity (3)
Continuation 16827191 · Mar 23, 2020
Provisional Application 62839585 · Apr 26, 2019
Related Publication 20220382745A1 · Dec 1, 2022
Cited By (1)
US 12,724,601