DETAILED ACTION
Claims 1-20 are presented for examination.
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Information Disclosure Statement
The information disclosure statement (IDS) submitted on 5/14/2024 is considered by the examiner.
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 1-20 are rejected under 35 U.S.C. 103 as being unpatentable over Bedadala et al. (US 2021/0133234 A1) in view of Yu et al. (Generative artificial intelligence empowers educational reform: current status, issues, and prospects) further in view of Higgins et al. (US 2025/0094386 A1).
As to claim 1, Bedadala teaches a system (system 100; Fig. 1C and paragraph [0094]) comprising:
a first computing device (storage manager 140 is itself a computing device that performs the functions described herein; Fig. 3 and paragraph [0097]) comprising one or more hardware processors and non-transitory computer-readable storage media comprising first computer programming instructions, which, when executed by the one or more hardware processors configure the first computing device to (Any given computing device comprises one or more processors (e.g., CPU and/or single-core or multi-core processors), as well as corresponding non-transitory computer memory (e.g., random-access memory (RAM)) for storing computer programs which are to be executed by the one or more processors; paragraphs [0067] and [351]):
receive a first message from a second computing device that executes second computer programming instructions (“a human can ask his or her computer to “show large emails from December 2016,” and a data agent on the computer can receive the voice request”; paragraph [0282] and “a human 302 who uses human speech 303 to communicate with a mobile device 304, client computing devices 102 (FIG. 1), and/or a voice recognition device 305 that includes a voice data agent 307.”; paragraph [0294] and “the storage manager 140 can send instructions to the voice-recognition device 305 to install a program that enables the voice-recognition device 305 to access the storage manager 140, install a list of vocabulary terms specific to database management so that the device identifies these terms, or send REST API requests to cloud computing systems. For example, a client computer running Cortana® can enable a user to send commands and queries to a database management system”; paragraph [0296]);
use chatbot and/or machine learning (AI or artificial intelligent) that is part of the first computer programing instructions to determine that at least part of the first message is about subject matter that is associated with a data storage management system (the chatbot engine data agent 310 allows users to interact with a chatbot for the database management through the mobile device 304 and/or the client computing devices 102. The chatbot engine data agent 310 can also be referred to as the “chatbot”, and it can live locally on a mobile device or computer. The administrative assistant data agent 312 allows users to interact with an administrative assistant from the mobile device 304, the client computing devices 102, and the voice-recognition device 305. Continuing with FIG. 3, the translator database 314 stores corpus documents, rules, and translation tables, all of which are used in translating natural language into a database system query. Corpus documents can include technical documents with definitions, actions, parameters, and other relevant technical commands for carrying out database operations. For example, Commvault® provides technical documentation on its website for customers using its database management software (http://documentation.commvault.com/commvault/). The storage manager 140 can train the data agents and store vocabulary to assist the software in answering queries.; paragraphs [0299]-[0300]),
wherein the data storage management system (databases, data storages; see Figs. 1C and 3) is in communication with the first computing device (storage manager 140) and lacks communications with the second computing device (device 304; Fig. 3);
use the chatbot and/or machine learning (paragraphs [0305]-[0306]) that is part of the first computer programing instructions, to, based on the first message, generate one or more application programming interface (API) calls to one or more corresponding components of the data storage management system (“At operation 415, the data agent communicates with a storage manager to translate the natural language query to a domain language query. In some implementations, the storage manager 140 executes this operation by using a translator database such as translator database 314”; paragraph [0319] and “At operation 420, a storage manager translates a domain language query to a database software query. In some implementations, a data agent can convert indices, functions (e.g., call functions), syntax or variable names into proprietary database language. The data agent can convert queries by using an interpreter or lookup table in a translator database. The lookup table can include rules or operations for converting a domain query to a database software query”; paragraph [0320]);
receive one or more responses to the one or more API calls (The computer can determine a response to the database management query locally or by accessing a database management system in the cloud; paragraph [0282] and “At operation 435, the storage manager determines a response to the query. The storage manager executes the required actions provided on its database management system described in FIGS. 1A-1H and FIGS. 2A-C. Some examples of operations include back up, deduplication, look up, reporting status of a job, providing a user with a link to a document, archiving, creating a virtual machine, deleting a virtual machine, taking a snapshot, moving a document or data from one location to another, performing disaster recover for a failed drive or media, and other similar database operations”; paragraph [0322]);
generate a second message that is responsive to the first message and transmit the second message to the second computing device (“At operation 440, the data agent responds to the user with an answer or executes a command based to the query. The data agent can provide a mobile application, graphical user interface, or web browser with instructions for displaying the answer or confirmation that action has been completed. For example, a mobile application can respond to a user that asked for large emails from December 2016 by providing a list of 10 emails that were sent or received on or after Dec. 1, 2016 and that have more than 2 gigabytes”; paragraph [0323] and “At operation 520, the chatbot engine data agent communicates with the storage manager to carry out the actions required to complete the query. For example, if a user requested to create a subclient, the storage manager can locate a link to technical documents regarding creating a subclient and begin to execute the required actions to create a subclient. Once the actions are complete or while still in process, at operation 525, the chatbot can provide a response to the user's query. For example, the chatbot can display a confirmation that a subclient was created and the associated parameters (e.g., name and location) of the subclient”; paragraph [0330]);
wherein prior to receiving the first message from the second computing device, the first computing device used a training corpus to train the generative artificial intelligence that is part of the first computer programing instructions, wherein the training corpus comprises: (i) one or more specifications for one or more APIs that were used for generating the one or more API calls (Translator Agent 308 can train using any of the known machine learning methods. Types of machine learning methods include supervised machine learning, unsupervised machine learning, and semi-supervised machine learning. These methods are described below. Supervised machine learning algorithms apply learned rules to new data by using labeled examples to predict future events. Supervised machine learning algorithms analyze a “known” training dataset, and then produces an inferred function to predict output values. Unsupervised machine learning algorithms draw inferences from datasets to describe hidden structures from unlabeled data. Unsupervised machine learning algorithms are implemented if the data for training is not classified or labeled. Semi-supervised machine learning algorithms use both labeled and unlabeled data for training. The systems that use these types of algorithms can improve learning efficiency considerably; paragraphs [0303]-[0306]), and (ii) metadata stored at the data storage management system, wherein the metadata was generated by secondary copy operations performed by the data storage management system (The data agent can convert queries by using an interpreter or lookup table in a translator database. The lookup table can include rules or operations for converting a domain query to a database software query”; paragraph [0320] and [0298]).
Bedadala does not teach generative artificial intelligence; identify sensitive information within the one or more responses to the one or more API calls; and remove the sensitive information from at least one of the one or more responses, resulting in scrubbed information that is responsive to the one or more API calls.
However, Yu teaches generative artificial intelligence is a form of artificial intelligent that utilizes machine learning and deep learning to generate new data (page 1, section 1. Introduction). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to apply the teaching of Yu to the system of Bedadala because Yu teaches generative AI has the ability to autonomously generate new data, including images, music, and text. The key component of generative AI is the generative model, which models the potential data distribution and generates new data that is similar to the original data. The applications of generative AI are wide-ranging, including image generation, natural language processing, and music generation. For image generation, the generative adversarial network (GAN) is a commonly used generative model that can create images that are highly similar to real images. In the field of natural language processing, models such as the recurrent neural network (RNN) and transformer network can be used to generate new textual data.
Higgins teaches remove the sensitive information from at least one of the one or more responses, resulting in scrubbed information that is responsive to the one or more API calls (functions to identify and remove sensitive or confidential information from returned results; paragraph [0063]). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to apply the teaching of Higgins to the system of Bedadala as modified by Yu because Higgins teaches a method that improves the integrity of the data.
As to claim 2, Bedadala as modified by Yu and Higgins teaches the system of claim 1, wherein the training corpus further comprises: a schema corresponding to a management database of the data storage management system (see Higgins: The data to be queried is preferably stored in a NOSQL format such as Apache Parquet, JavaScript Object Notation (JSON), or another columnar format that does not require a formal relational database construct with tables or external schema; paragraph [0020]), wherein the management database comprises preferences for managing secondary copy operations within the data storage management system (see Bedadala: system 100 includes one or more secondary storage computing devices 106 and one or more secondary storage devices 108 configured to create and store one or more secondary copies 116 of primary data 112 including its associated metadata. The secondary storage computing devices 106 and the secondary storage devices 108 may be referred to as secondary storage subsystem 118; paragraphs [0082]-[0086]).
As to claim 3, Bedadala as modified by Yu and Higgins teaches the system of claim 2, wherein the training corpus further comprises information about secondary copy operations extracted from the management database (see Bedadala: the translator database 314 stores corpus documents, rules, and translation tables, all of which are used in translating natural language into a database system query. Corpus documents can include technical documents with definitions, actions, parameters, and other relevant technical commands for carrying out database operations. The storage manager 140 can train the data agents and store vocabulary to assist the software in answering queries; paragraph [0300]).
As to claim 4, Bedadala as modified by Yu and Higgins teaches the system of claim 1, wherein the training corpus further comprises: a schema corresponding to an index of the data storage management system, wherein the index comprises indexing information obtained from secondary copies generated by the secondary copy operations performed by the data storage management system (see Bedadala: Secondary storage computing devices 106 may index secondary copies 116 (e.g., using a media agent 144), enabling users to browse and restore at a later time and further enabling the lifecycle management of the indexed data. After creation of a secondary copy 116 that represents certain primary data 112, a pointer or other location indicia (e.g., a stub) may be placed in primary data 112, or be otherwise associated with primary data 112, to indicate the current location of a particular secondary copy 116. Since an instance of a data object or metadata in primary data 112 may change over time as it is modified by application 110 (or hosted service or the operating system), system 100 may create and manage multiple secondary copies 116 of a particular data object or metadata, each copy representing the state of the data object in primary data 112 at a particular point in time; paragraph [0085] and “Database 146 may include a management index 150 (or “index 150”) or other data structure(s) that may store: logical associations between components of the system; user preferences and/or profiles (e.g., preferences regarding encryption, compression, or deduplication of primary data or secondary copies; preferences regarding the scheduling, type, or other aspects of secondary copy or other operations; mappings of particular information management users or user accounts to certain computing devices or other components, etc.; management tasks; media containerization; other useful data; and/or any combination thereof. For example, storage manager 140 may use index 150 to track logical associations between media agents 144 and secondary storage devices 108 and/or movement of data to/from secondary storage devices 108. For instance, index 150 may store data associating a client computing device 102 with a particular media agent 144 and/or secondary storage device 108, as specified in an information management policy 148”; paragraph [0114]).
As to claim 5, Bedadala as modified by Yu and Higgins teaches the system of claim 4, wherein the training corpus further comprises information extracted from the index, which indexes one or more of: metadata about the secondary copies, and content of the secondary copies (“Database 146 may include a management index 150 (or “index 150”) or other data structure(s) that may store: logical associations between components of the system; user preferences and/or profiles (e.g., preferences regarding encryption, compression, or deduplication of primary data or secondary copies; preferences regarding the scheduling, type, or other aspects of secondary copy or other operations; mappings of particular information management users or user accounts to certain computing devices or other components, etc.; management tasks; media containerization; other useful data; and/or any combination thereof. For example, storage manager 140 may use index 150 to track logical associations between media agents 144 and secondary storage devices 108 and/or movement of data to/from secondary storage devices 108. For instance, index 150 may store data associating a client computing device 102 with a particular media agent 144 and/or secondary storage device 108, as specified in an information management policy 148”; paragraph [0114]).
As to claim 6, Bedadala as modified by Yu and Higgins teaches the system of claim 1, wherein the first message received from the second computing device is not structured according to the one or more APIs that were used for generating the one or more API calls (see Bedadala: “a human 302 who uses human speech 303 to communicate with a mobile device 304, client computing devices 102 (FIG. 1), and/or a voice recognition device 305 that includes a voice data agent 307.”; paragraph [0294] and “the storage manager 140 can send instructions to the voice-recognition device 305 to install a program that enables the voice-recognition device 305 to access the storage manager 140, install a list of vocabulary terms specific to database management so that the device identifies these terms, or send REST API requests to cloud computing systems. For example, a client computer running Cortana® can enable a user to send commands and queries to a database management system”; paragraph [0296]).
As to claim 7, Bedadala as modified by Yu and Higgins teaches the system of claim 1, wherein the first computer programming instructions further configure the first computing device to: discard the sensitive information removed from the at least one of the one or more responses (see Higgins: functions to identify and remove sensitive or confidential information from returned results; paragraph [0063]).
As to claim 8, Bedadala as modified by Yu and Higgins teaches the system of claim 1, wherein the first computer programming instructions further configure the first computing device to: determine that the first message further comprises instructions for formatting the second message; and format the second message to the second computing device based on the instructions for formatting (see Bedadala: a human can ask his or her computer to “show large emails from December 2016,” and a data agent on the computer can receive the voice request, convert audio associated with the voice request to words in a natural language, convert that natural language into a domain specific language (e.g., SQL query), and convert the domain specific language query into a database management query. The computer can determine a response to the database management query locally or by accessing a database management system in the cloud. After the response is determined by the database management system, the computer provides the response to the user. For example, the computer displays a graphical user interface (GUI) with 10 emails that are 2 gigabytes or larger from December 2016; paragraph [0282]).
As to claim 9, Bedadala as modified by Yu and Higgins teaches the system of claim 1, wherein the second computer programming instructions comprise generative artificial intelligence that is configured to process the second message (see Bedadala: the chatbot engine data agent 310 allows users to interact with a chatbot for the database management through the mobile device 304 and/or the client computing devices 102; paragraph [0299]) and (see Yu: generative artificial intelligence is a form of artificial intelligent that utilizes machine learning and deep learning to generate new data; page 1, section 1. Introduction).
As to claim 10, Bedadala as modified by Yu and Higgins teaches the system of claim 1, wherein the first computer programming instructions further configure the first computing device to: generate an audit trail associated with the second message, wherein the audit trail comprises one or more of: the one or more API calls, the first message, and the second message (see Bedadala: Translator and Action Database Agent 308 can use any of the methods described above or other known machine learning methods, to amend the translator database. The Translator and Action Database Agent 308 can access logs of prior requests or job lists to learn of patterns in the requests; paragraph [0308]).
As to claim 11, Bedadala as modified by Yu and Higgins teaches the system of claim 1, wherein the first computer programming instructions further configure the first computing device to: generate an audit trail associated with the second message, wherein the audit trail comprises one or more of: a log of operations performed at the first computing device responsive to the first message, the scrubbed information, and a log of one or more analyses, associated with responding to the first message, that were performed by the generative artificial intelligence that is part of the first computer programing instructions (see Bedadala: Translator and Action Database Agent 308 can use any of the methods described above or other known machine learning methods, to amend the translator database. The Translator and Action Database Agent 308 can access logs of prior requests or job lists to learn of patterns in the requests; paragraph [0308]).
As to claim 12, Bedadala as modified by Yu and Higgins teaches the system of claim 1, wherein the second message comprises a summary of the scrubbed information, wherein the summary is generated by the generative artificial intelligence that is part of the first computer programing instructions (see Bedadala: a mobile application can respond to a user that asked for large emails from December 2016 by providing a list of 10 emails that were sent or received on or after Dec. 1, 2016 and that have more than 2 gigabytes”; paragraph [0323]) and (see Higgins: functions to identify and remove sensitive or confidential information from returned results; paragraph [0063]). Thus, when apply the teaching of Higgins to Bedadala, the second message does not include sensitive data.
As to claim 13, Bedadala as modified by Yu and Higgins teaches the system of claim 1, wherein the second message generated by the generative artificial intelligence that is part of the first computer programing instructions comprises one or more acknowledgments of operations completed by the data storage management system in response to the one or more API calls (see Bedadala: the storage manager determines a response to the query. The storage manager executes the required actions provided on its database management system described in FIGS. 1A-1H and FIGS. 2A-C. Some examples of operations include back up, deduplication, look up, reporting status of a job, providing a user with a link to a document, archiving, creating a virtual machine, deleting a virtual machine, taking a snapshot, moving a document or data from one location to another, performing disaster recover for a failed drive or media, and other similar database operations; paragraph [0322]).
As to claim 14, see rejection of claim 1 above.
Behahala further teaches a computer-implemented method comprising: by a first computing device comprising one or more hardware processors and non-transitory computer-readable storage media comprising first computer programming instructions that are executed by the one or more hardware processors (Any given computing device comprises one or more processors (e.g., CPU and/or single-core or multi-core processors), as well as corresponding non-transitory computer memory (e.g., random-access memory (RAM)) for storing computer programs which are to be executed by the one or more processors; paragraphs [0067] and [351]).
As to claim 15, see rejections of claims 2-3 above.
As to claim 16, see rejections of claims 4-5 above.
As to claim 17, see rejection of claim 6 above.
As to claim 18, see rejection of claim 8 above.
As to claim 19, see rejection of claim 10 above.
As to claim 20, see rejection of claim 11 above.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Sharma (US 2023/0129050 A1) teaches method and system for artificial-intelligence based techniques for programmatically generating and integrating API.
Bakshi et al. (US 2023/0267018 A1) teaches method and system for dynamically generating an API.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to DIEM K CAO whose telephone number is (571)272-3760. The examiner can normally be reached Monday-Friday 8:00am-4:00pm.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, April Blair can be reached at 571-270-1014. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/DIEM K CAO/Primary Examiner, Art Unit 2196
DC
July 28, 2026