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 .
DETAILED ACTION
This action is in response to the application filed on 02/27/2024.
Claims 1-20 are pending.
Examiner’s Note
Please note that Examiner cites particular columns and line numbers in the references as applied to the claims below for the convenience of the applicant. Although the specified citations are representative of the teachings in the art and are applied to the specific limitations within the individual claim, other passages and figures may apply as well. It is respectfully requested that, in preparing responses, the applicant fully consider the references in entirely as potentially teaching all or part of the claimed invention, as well as the context of the passage as taught by the prior art or disclosed by the examiner.
Claim Rejections - 35 USC § 112
The following is a quotation of 35 U.S.C. 112(b):
(b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention.
The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph:
The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention.
Claims 3-5, 10-12 and 17-19 rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor (or for applications subject to pre-AIA 35 U.S.C. 112, the applicant), regards as the invention.
Claim 3 recites the limitation "the other library" in line 2. There is insufficient antecedent basis for this limitation in the claim.
Claim 4 recites the limitation "the other library" in line 7. There is insufficient antecedent basis for this limitation in the claim.
Claim 5 depends from claims 4 and thus suffers the similar deficiency as claim 4.
Claim 10 recites the limitation "the other library" in line 3. There is insufficient antecedent basis for this limitation in the claim.
Claim 11 recites the limitation "the other library" in line 7. There is insufficient antecedent basis for this limitation in the claim.
Claim 12 depends from claims 11 and thus suffers the similar deficiency as claim 4.
Claim 17 recites the limitation "the other library" in line 3. There is insufficient antecedent basis for this limitation in the claim.
Claim 18 recites the limitation "the other library" in line 7. There is insufficient antecedent basis for this limitation in the claim.
Claim 19 recites the limitation "the other library" in line 3. There is insufficient antecedent basis for this limitation in the claim.
Clarification and/or correction is required.
Claim Rejections – 35 USC § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
Claims 1-20 are rejected under 35 U.S.C. 101 because the claimed invention is directed to non-statutory subject matter.
Claim 1, this claim is within at least one of the four categories of patent eligible subject matter as it is directing to a method claim under Step 1.
1. A computer-implemented method comprising:
receiving, by a processor set, requests to publish multiple libraries to a public library repository, the requests including specifications of respective sets of one or more dependencies of the multiple libraries and respective validation scripts;
building, by the processor set, a dependency version tree that includes the specifications of the respective sets of one or more dependencies;
receiving, by the processor set, a request to upload a new version of a library to the public library repository, the library being included in the multiple libraries; and
validating, by a validation component and using the dependency version tree and the validation scripts, a compatibility between the library and one or more libraries dependent upon the library.
Regarding claim 1, the limitations “building…, a dependency version tree that includes the specifications of the respective sets of one or more dependencies,” and “validating, by a validation component and using the dependency version tree and the validation scripts, a compatibility between the library and one or more libraries dependent upon the library” as drafted, are functions that, under its broadest reasonable interpretation, recite the abstract idea of a mental process.
For example, a person is capable of building a dependency version tree by incorporating the set of dependencies which are included in the given specification set. In the same manner, a person is capable of with the aid of pen and paper validating the compatibility between the libraries which depends on those dependencies. Therefore, these limitations encompass a human mind carrying out the function through observation, evaluation judgment and /or opinion, or even with the aid of pen and paper. Thus, these limitations recite and falls within the “Mental Processes” grouping of abstract ideas under Prong 1.
Under Prong 2, the additional elements “by a processor set” is recited at a high-level of generality such that such that it amounts no more than mere instructions to apply the exception using generic computer, and/or mere computer components. Accordingly, the additional elements do not integrate the recited judicial exception into a practical application and the claim is therefore directed to the judicial exception. See MPEP 2106.05(g). For the additional elements “receiving…, requests to publish multiple libraries to a public library repository, the requests including specifications of respective sets of one or more dependencies of the multiple libraries and respective validation scripts,” and “receiving…, a request to upload a new version of a library to the public library repository, the library being included in the multiple libraries” do nothing more than to add insignificant extra solution activity to the judicial exception of merely storing/gathering data for automation. See MPEP § 2106.05(h).
Under Step 2B, the claims do not include additional elements that are sufficient to amount to significantly more than the judicial exception. As discussed above with respect to integration of the abstract idea into a practical application, the additional elements of “by a processor set” amount to no more than mere instructions, or generic computer and/or computer components to carry out the exception, thus, cannot amount to an inventive concept. See MPEP 2105.06(f). For the additional elements “receiving…, requests to publish multiple libraries to a public library repository, the requests including specifications of respective sets of one or more dependencies of the multiple libraries and respective validation scripts,” and “receiving…, a request to upload a new version of a library to the public library repository, the library being included in the multiple libraries” the courts have recognized storing and retrieving information in memory (i.e., repository) as a well‐understood, routine, and conventional functions in a merely generic manner (e.g., at a high level of generality) or an insignificant extra-solution activity. See MPEP 2106.05(d).II.iv. Accordingly, the claims are not patent eligible under 35 USC 101.
2. The method of claim 1, wherein the validating includes: identifying the one or more libraries dependent upon the library by using the dependency version tree; and verifying the compatibility between the library and the one or more libraries dependent upon the library by invoking one or more validation scripts associated with the one or more libraries, the one or more validation scripts being included in the respective validation scripts, wherein the invoking the one or more validation scripts includes verifying whether or not the library is compatible with the one or more libraries.
The limitations for this claim further recite an additional mental process under prong 1.
3. The method of claim 1, further comprising:
receiving, by the processor set, a request to install another library, the other library being dependent upon the new version of the library; downloading, by the processor set, the other library and the dependency version tree; installing, by the processor set and based on the downloaded dependency version tree, one or more dependent libraries that are dependent upon the other library and subsequently installing, by the processor set, the other library; and
using the installed other library with an assurance of a compatibility between the other library and the one or more dependent libraries and with a minimized likelihood of a conflict between the other library and any one of the one or more dependent libraries.
The limitations for this claim further recite an additional insignificant extra solution activity under prong 2.
4. The method of claim 1, further comprising:
determining, by the processor set, that the validating by the validation component indicates a successful validation of the compatibility between the library and another library included in the one or more libraries; and based on the successful validation of the compatibility, updating, by the processor set, the dependency version tree to include the new version in an extended range of versions to which the other library is mapped.
The limitations for this claim further recite an additional mental process under prong 1.
5. The method of claim 4, further comprising:
recursively validating, by the validation component, a compatibility of the other library with one or more other libraries dependent upon the other library, wherein the recursively validating includes traversing a path in the dependency version tree by moving from a node of the dependency version tree indicating the other library to a root node of the dependency version tree.
The limitations for this claim further recite an additional mental process under prong 1.
6. The method of claim 1, further comprising:
receiving, by the processor set, an upload of the new version of the library to the public library repository; and detecting, by the validation component, the upload of the new version, wherein the validating the compatibility between the library and the one or more libraries is performed in response to the detecting.
The limitations detecting, by the validation component, the upload of the new version, wherein the validating the compatibility between the library and the one or more libraries is performed in response to the detecting is an additional mental process under prong 1. For the limitations receiving, by the processor set, an upload of the new version of the library to the public library repository is an additional insignificant extra solution activity under prong 2.
7. The method of claim 1, further comprising:
receiving, by the processor set, multiple requests for upgrading respective libraries in the public library repository; determining, by the processor set, respective nodes in the dependency version tree that are associated with the requests; determining a sequence of the respective nodes based on distances between each of the respective nodes and a root node of the dependency version tree; determining a queue of the multiple requests according to the sequence based on the distances; and validating the respective libraries in an order specified by the queue, so that a validation of one library associated with one request in the queue of the multiple requests is completed before a beginning of a processing and a validation of a next library associated with a next request in the queue of the multiple requests.
The limitations determining, by the processor set, respective nodes in the dependency version tree that are associated with the requests; determining a sequence of the respective nodes based on distances between each of the respective nodes and a root node of the dependency version tree; determining a queue of the multiple requests according to the sequence based on the distances; and validating the respective libraries in an order specified by the queue, so that a validation of one library associated with one request in the queue of the multiple requests is completed before a beginning of a processing and a validation of a next library associated with a next request in the queue of the multiple requests is an additional mental process under prong 1. For the limitations receiving, by the processor set, multiple requests for upgrading respective libraries in the public library repository is an additional insignificant extra solution activity under prong 2.
Claim 8, this claim is within at least one of the four categories of patent eligible subject matter as it is directing to a system claim under Step 1.
8. A computer system comprising:
a processor set;
a set of one or more computer-readable storage media; and
program instructions, collectively stored in the set of one or more computer-readable storage media, for causing the processor set to perform the following computer operations:
receive requests to publish multiple libraries to a public library repository, the requests including specifications of respective sets of one or more dependencies of the multiple libraries and respective validation scripts;
build a dependency version tree that includes the specifications of the respective sets of one or more dependencies;
receive a request to upload a new version of a library to the public library repository, the library being included in the multiple libraries; and
validate, by using the dependency version tree and the validation scripts, a compatibility between the library and one or more libraries dependent upon the library.
Regarding claim 8, the limitations “build a dependency version tree that includes the specifications of the respective sets of one or more dependencies,” and “validate, by using the dependency version tree and the validation scripts, a compatibility between the library and one or more libraries dependent upon the library” as drafted, are functions that, under its broadest reasonable interpretation, recite the abstract idea of a mental process. For example, a person is capable of building a dependency version tree by incorporating the set of dependencies which are included in the given specification set. In the same manner, a person is capable of with the aid of pen and paper validating the compatibility between the libraries which depends on those dependencies. Therefore, these limitations encompass a human mind carrying out the function through observation, evaluation judgment and /or opinion, or even with the aid of pen and paper. Thus, these limitations recite and falls within the “Mental Processes” grouping of abstract ideas under Prong 1.
Under Prong 2, the additional elements “A computer system comprising: a processor set; a set of one or more computer-readable storage media; and program instructions, collectively stored in the set of one or more computer-readable storage media, for causing the processor set to perform the following computer operations:” is recited at a high-level of generality such that such that it amounts no more than mere instructions to apply the exception using generic computer, and/or mere computer components. Accordingly, the additional elements do not integrate the recited judicial exception into a practical application and the claim is therefore directed to the judicial exception. See MPEP 2106.05(g). For the additional elements “receive requests to publish multiple libraries to a public library repository, the requests including specifications of respective sets of one or more dependencies of the multiple libraries and respective validation scripts,” and “receive a request to upload a new version of a library to the public library repository, the library being included in the multiple libraries” do nothing more than to add insignificant extra solution activity to the judicial exception of merely storing/gathering data for automation. See MPEP § 2106.05(h).
Under Step 2B, the claims do not include additional elements that are sufficient to amount to significantly more than the judicial exception. As discussed above with respect to integration of the abstract idea into a practical application, the additional elements of “A computer system comprising: a processor set; a set of one or more computer-readable storage media; and program instructions, collectively stored in the set of one or more computer-readable storage media, for causing the processor set to perform the following computer operations:” amount to no more than mere instructions, or generic computer and/or computer components to carry out the exception, thus, cannot amount to an inventive concept. See MPEP 2105.06(f). For the additional elements “receive requests to publish multiple libraries to a public library repository, the requests including specifications of respective sets of one or more dependencies of the multiple libraries and respective validation scripts,” and “receive a request to upload a new version of a library to the public library repository, the library being included in the multiple libraries” the courts have recognized storing and retrieving information in memory (i.e., repository) as a well‐understood, routine, and conventional functions in a merely generic manner (e.g., at a high level of generality) or an insignificant extra-solution activity. See MPEP 2106.05(d).II.iv. Accordingly, the claims are not patent eligible under 35 USC 101.
9. The computer system of claim 8, wherein the computer operation of validate the dependency version tree includes the following additional computer operations:
identify the one or more libraries dependent upon the library by using the dependency version tree; and verify the compatibility between the library and the one or more libraries dependent upon the library by invoking one or more validation scripts associated with the one or more libraries, the one or more validation scripts being included in the respective validation scripts, wherein the invoking the one or more validation scripts includes verifying whether or not the library is compatible with the one or more libraries.
The limitations for this claim further recite an additional mental process under prong 1.
10. The computer system of claim 8, wherein the program instructions cause the processor set to perform the following additional computer operations: receive a request to install another library, the other library being dependent upon the new version of the library; download the other library and the dependency version tree; install, based on the downloaded dependency version tree, one or more dependent libraries that are dependent upon the other library and subsequently install the other library; and use the installed other library with an assurance of a compatibility between the other library and the one or more dependent libraries and with a minimized likelihood of a conflict between the other library and any one of the one or more dependent libraries.
The limitations for this claim further recite an additional insignificant extra solution activity under prong 2.
11. The computer system of claim 8, wherein the program instructions cause the processor set to perform the following additional computer operations: determine that a performance of the computer operation of validate the compatibility indicates a successful validation of the compatibility between the library and another library included in the one or more libraries; and based on the successful validation of the compatibility, update the dependency version tree to include the new version in an extended range of versions to which the other library is mapped.
The limitations for this claim further recite an additional mental process under prong 1.
12. The computer system of claim 11, wherein the program instructions cause the processor set to perform the following additional computer operations: recursively validate, using the validation component, a compatibility of the other library with one or more other libraries dependent upon the other library, wherein the computer operation of recursively validate the compatibility includes the computer operation of traverse a path in the dependency version tree by moving from a node of the dependency version tree indicating the other library to a root node of the dependency version tree.
The limitations for this claim further recite an additional mental process under prong 1.
13. The computer system of claim 8, wherein the program instructions cause the processor set to perform the following additional computer operations: receive an upload of the new version of the library to the public library repository; and detect the upload of the new version, wherein the computer operation of validate the compatibility between the library and the one or more libraries is performed in response to detecting the upload of the new version.
The limitations detect the upload of the new version, wherein the computer operation of validate the compatibility between the library and the one or more libraries is performed in response to detecting the upload of the new version is an additional mental process under prong 1. For the limitations receive an upload of the new version of the library to the public library repository is an additional insignificant extra solution activity under prong 2.
14. The computer system of claim 8, wherein the program instructions cause the processor set to perform the following additional computer operations: receive multiple requests for upgrading respective libraries in the public library repository; determine respective nodes in the dependency version tree that are associated with the requests;
determine a sequence of the respective nodes based on distances between each of the respective nodes and a root node of the dependency version tree; determine a queue of the multiple requests according to the sequence based on the distances; and validate the respective libraries in an order specified by the queue, so that a validation of one library associated with one request in the queue of the multiple requests is completed before a beginning of a processing and a validation of a next library associated with a next request in the queue of the multiple requests.
The limitations determine respective nodes in the dependency version tree that are associated with the requests; determine a sequence of the respective nodes based on distances between each of the respective nodes and a root node of the dependency version tree; determine a queue of the multiple requests according to the sequence based on the distances; and validate the respective libraries in an order specified by the queue, so that a validation of one library associated with one request in the queue of the multiple requests is completed before a beginning of a processing and a validation of a next library associated with a next request in the queue of the multiple requests is an additional mental process under prong 1. For the limitations receive multiple requests for upgrading respective libraries in the public library repository is an additional insignificant extra solution activity under prong 2.
Claim 15, this claim is within at least one of the four categories of patent eligible subject matter as it is directing to a computer program product claim under Step 1.
15. A computer program product comprising:
a set of one or more computer-readable storage media; and
program instructions, collectively stored in the set of one or more computer-readable storage media, for causing a processor set to perform the following computer operations:
receive requests to publish multiple libraries to a public library repository, the requests including specifications of respective sets of one or more dependencies of the multiple libraries and respective validation scripts;
build a dependency version tree that includes the specifications of the respective sets of one or more dependencies;
receive a request to upload a new version of a library to the public library repository, the library being included in the multiple libraries; and
validate, by using a validation component, the dependency version tree, and the validation scripts, a compatibility between the library and one or more libraries dependent upon the library.
Regarding claim 15, the limitations “build a dependency version tree that includes the specifications of the respective sets of one or more dependencies,” and “validate, by using a validation component, the dependency version tree, and the validation scripts, a compatibility between the library and one or more libraries dependent upon the library” as drafted, are functions that, under its broadest reasonable interpretation, recite the abstract idea of a mental process. For example, a person is capable of building a dependency version tree by incorporating the set of dependencies which are included in the given specification set. In the same manner, a person is capable of with the aid of pen and paper validating the compatibility between the libraries which depends on those dependencies. Therefore, these limitations encompass a human mind carrying out the function through observation, evaluation judgment and /or opinion, or even with the aid of pen and paper. Thus, these limitations recite and falls within the “Mental Processes” grouping of abstract ideas under Prong 1.
Under Prong 2, the additional elements “A computer program product comprising: a set of one or more computer-readable storage media; and program instructions, collectively stored in the set of one or more computer-readable storage media, for causing a processor set to perform the following computer operations:” is recited at a high-level of generality such that such that it amounts no more than mere instructions to apply the exception using generic computer, and/or mere computer components. Accordingly, the additional elements do not integrate the recited judicial exception into a practical application and the claim is therefore directed to the judicial exception. See MPEP 2106.05(g). For the additional elements “receive requests to publish multiple libraries to a public library repository, the requests including specifications of respective sets of one or more dependencies of the multiple libraries and respective validation scripts,” and “receive a request to upload a new version of a library to the public library repository, the library being included in the multiple libraries” do nothing more than to add insignificant extra solution activity to the judicial exception of merely storing/gathering data for automation. See MPEP § 2106.05(h).
Under Step 2B, the claims do not include additional elements that are sufficient to amount to significantly more than the judicial exception. As discussed above with respect to integration of the abstract idea into a practical application, the additional elements of “A computer program product comprising: a set of one or more computer-readable storage media; and program instructions, collectively stored in the set of one or more computer-readable storage media, for causing a processor set to perform the following computer operations:” amount to no more than mere instructions, or generic computer and/or computer components to carry out the exception, thus, cannot amount to an inventive concept. See MPEP 2105.06(f). For the additional elements “receive requests to publish multiple libraries to a public library repository, the requests including specifications of respective sets of one or more dependencies of the multiple libraries and respective validation scripts,” and “receive a request to upload a new version of a library to the public library repository, the library being included in the multiple libraries” the courts have recognized storing and retrieving information in memory (i.e., repository) as a well‐understood, routine, and conventional functions in a merely generic manner (e.g., at a high level of generality) or an insignificant extra-solution activity. See MPEP 2106.05(d).II.iv. Accordingly, the claims are not patent eligible under 35 USC 101.
16. The computer program product of claim 15, wherein the computer operation of validate the dependency version tree includes the following additional computer operations: identify the one or more libraries dependent upon the library by using the dependency version tree; and verify the compatibility between the library and the one or more libraries dependent upon the library by invoking one or more validation scripts associated with the one or more libraries, the one or more validation scripts being included in the respective validation scripts, wherein the invoking the one or more validation scripts includes verifying whether or not the library is compatible with the one or more libraries.
The limitations for this claim further recite an additional mental process under prong 1.
17. The computer program product of claim 15, wherein the program instructions cause the processor set to perform the following additional computer operations: receive a request to install another library, the other library being dependent upon the new version of the library; download the other library and the dependency version tree; install, based on the downloaded dependency version tree, one or more dependent libraries that are dependent upon the other library and subsequently install the other library; and use the installed other library with an assurance of a compatibility between the other library and the one or more dependent libraries and with a minimized likelihood of a conflict between the other library and any one of the one or more dependent libraries.
The limitations for this claim further recite an additional insignificant extra solution activity under prong 2.
18. The computer program product of claim 15, wherein the program instructions cause the processor set to perform the following additional computer operations:
determine that a performance of the computer operation of validate the compatibility indicates a successful validation of the compatibility between the library and another library included in the one or more libraries; and based on the successful validation of the compatibility, update the dependency version tree to include the new version in an extended range of versions to which the other library is mapped.
The limitations for this claim further recite an additional mental process under prong 1.
19. The computer program product of claim 18, wherein the program instructions cause the processor set to perform the following additional computer operations: recursively validate, using the validation component, a compatibility of the other library with one or more other libraries dependent upon the other library, wherein the computer operation of recursively validate the compatibility includes the computer operation of traverse a path in the dependency version tree by moving from a node of the dependency version tree indicating the other library to a root node of the dependency version tree.
The limitations for this claim further recite an additional mental process under prong 1.
20. The computer program product of claim 15, wherein the program instructions cause the processor set to perform the following additional computer operations: receive an upload of the new version of the library to the public library repository; and detect the upload of the new version, wherein the computer operation of validate the compatibility between the library and the one or more libraries is performed in response to detecting the upload of the new version.
The limitations detect the upload of the new version, wherein the computer operation of validate the compatibility between the library and the one or more libraries is performed in response to detecting the upload of the new version is an additional mental process under prong 1. For the limitations receive an upload of the new version of the library to the public library repository is an additional insignificant extra solution activity under prong 2.
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.
Claim(s) 1-3, 4, 6, 8-11, 13, 15-18 and 20 is/are rejected under 35 U.S.C. 103 as being unpatentable over USPN 20150268948 to Plate in view of USPN 20210374558 to Tommasi.
Per claim 1:
Plate discloses:
1. A computer-implemented method comprising:
receiving, by a processor set, requests to publish multiple libraries to a public library repository (Paragraph [0147,0149] “Human and software agents may potentially use multiple (public or private) repositories to publish and read constraints… management tool 403 may represent human and software agents that publish library… in a public repository or a private repository… retrieve library constraints from a public repository or a private repository to check a given application archive”), the requests including specifications of respective sets of one or more dependencies of the multiple libraries (Paragraph [0147] “public repositories may be used to store library constraints that are applicable in many contexts (e.g., in case of a vulnerability check) and may be accessible to a general public… private repositories may be used to store context-specific checks (e.g., ones that ensure adherence to a software vendor's specific license strategy or quality guidelines)”);
building, by the processor set, a dependency version tree that includes the specifications of the respective sets of one or more dependencies (Paragraph [0069, 0071] “dynamically dependent on component “u” u11 216 or u12 218 (e.g., with different versions… FIG. 2, note that the dependency hierarchy 200 of cross-referencing manifest files may be represented as a tree whose root corresponds to a manifest file of a software component under analysis, and whose leafs correspond to manifest files without further dependencies” note that here building a hierarchy dependency tree/graph from manifest, including dependencies and version specifications);
receiving, by the processor set, a request to upload a new version of a library to the public library repository, the library being included in the multiple libraries (Paragraph [0038,0039] “at least one processor 110 to manage software component dependencies 145 for building one or more additional software versions of the applications… at least one processor 110 to manage software component dependencies 145 for deployment of the applications”); and
validating, by a validation component and using the dependency version tree, a compatibility between the library and one or more libraries dependent upon the library (Paragraph [0039-0042] “in case of static dependency violations, deployment of the applications may be suspended, and an error message may be displayed to a user… manage software component dependencies 145 for licensing the applications, where library checks including software dependency checks may be performed at one or more of deployment time, application run-time, and/or a time that a user subscribes to at least one of the applications… declarative language that may be configured to allow specification of constraints (e.g., checks) to detect dependency on undesirable libraries, e.g., libraries that may meet certain criteria”).
Plate does not explicitly disclose validation scripts.
However, Tommasi discloses in an analogous computer system validation script (Paragraph [0016] “automatic software library search, each candidate library may be analyzed and validate that the candidate library is compatible with any other part of an application (e.g., software code (it fits), computationally efficient and with a defined budget constraint, along with being void of any licensing restrictions)… intelligent library management”).
Therefore, it would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention was made to incorporate the method of having validation script as taught by Tommasi into the method of software dependencies management as taught by Plate. The modification would be obvious because of one of ordinary skill in the art would be motivated to add/incorporate the features of having validation script to provide an efficient technique for optimizing the system specially in in a variety of physical devices or products for assisting in improvements to the quality of life and appropriate living accommodations as suggested by Tommasi (paragraph [0002]).
Per claim 2:
Plate discloses:
2. The method of claim 1, wherein the validating includes:
identifying the one or more libraries dependent upon the library by using the dependency version tree (Paragraph [0019] “software applications may increasingly depend on third-party software libraries, which may depend on other libraries”).
Plate does not explicitly disclose verifying the compatibility between the library and the one or more libraries dependent upon the library by invoking one or more validation scripts associated with the one or more libraries, the one or more validation scripts being included in the respective validation scripts, wherein the invoking the one or more validation scripts includes verifying whether or not the library is compatible with the one or more libraries.
However, Tommasi discloses in an analogous computer system verifying the compatibility between the library and the one or more libraries dependent upon the library by invoking one or more validation scripts associated with the one or more libraries (Paragraph [0016] “automatic software library search, each candidate library may be analyzed and validate that the candidate library is compatible with any other part of an application (e.g., software code (it fits), computationally efficient and with a defined budget constraint, along with being void of any licensing restrictions)”), the one or more validation scripts being included in the respective validation scripts, wherein the invoking the one or more validation scripts includes verifying whether or not the library is compatible with the one or more libraries (Paragraph [0017] “compatibility model that holds the compatibility information among all the software libraries (e.g. a machine learning model understands/knows that ACME software version 2.0 will not work with ABCD software version 0.8) may be trained. The trained compatibility model may include software pairs that match as compared with software pairs that do not match. Using the compatibility model, the compatibility may be predicted between/across application/software pairs even for application/software pairs that have previously been unseen (e.g., an unknown software) using machine learning”).
The feature of providing verifying the compatibility between the library and the one or more libraries dependent upon the library by invoking one or more validation scripts associated with the one or more libraries, the one or more validation scripts being included in the respective validation scripts, wherein the invoking the one or more validation scripts includes verifying whether or not the library is compatible with the one or more libraries would be obvious for the reasons set forth in the rejection of claim 1.
Per claim 3:
Plate discloses:
3. The method of claim 1, further comprising:
receiving, by the processor set, a request to install another library, the other library being dependent upon the new version of the library (Paragraph [0019] “dynamic dependencies may be replaced by a reference to separate manifests, whereby release ranges may be resolved by interacting with internal and/or third-party software repositories.”);
downloading, by the processor set, the other library and the dependency version tree (downloading component/repositories for dependency resolution, see Paragraph [0120]);
installing, by the processor set and based on the downloaded dependency version tree, one or more dependent libraries that are dependent upon the other library and subsequently installing, by the processor set, the other library (Paragraph [0117] “nested manifest 314 (input) may be transformed into a set of flat manifests 320 (output), which may be achieved by flattening of static dependencies, and/or by resolution of dynamic dependencies”); and
using the installed other library with an assurance of a compatibility between the other library and the one or more dependent libraries and with a minimized likelihood of a conflict between the other library and any one of the one or more dependent libraries (Paragraph [0120] “resolution of dynamic dependencies may occur iteratively, whereby component after component may be downloaded and examined until no dynamic dependencies exist any longer”).
Per claim 4:
The rejection of claim 1 is incorporated and further, Plate does not explicitly discloses determining, by the processor set, that the validating by the validation component indicates a successful validation of the compatibility between the library and another library included in the one or more libraries; and based on the successful validation of the compatibility, updating, by the processor set, the dependency version tree to include the new version in an extended range of versions to which the other library is mapped.
However, Tommasi discloses in an analogous computer system determining, by the processor set, that the validating by the validation component indicates a successful validation of the compatibility between the library and another library included in the one or more libraries (Paragraph [0117] “compatibility model that holds the compatibility information among all the software libraries (e.g. a machine learning model understands/knows that ACME software version 2.0 will not work with ABCD software version 0.8)”); and based on the successful validation of the compatibility, updating, by the processor set, the dependency version tree to include the new version in an extended range of versions to which the other library is mapped (Paragraph [0020] “recommend upgrading the selected software library to version 0.25.0 (e.g., recommending a most recent application/software version)… importing an alternative software library and version such as, for example, numpy version 1.15.4, which works best and is more compatible with the selected software library and version (e.g., pandas 0.23.4)” note here the dependency version tree is seen on the version numbers).
The feature of providing determining, by the processor set, that the validating by the validation component indicates a successful validation of the compatibility between the library and another library included in the one or more libraries; and based on the successful validation of the compatibility, updating, by the processor set, the dependency version tree to include the new version in an extended range of versions to which the other library is mapped would be obvious for the reasons set forth in the rejection of claim 1.
Per claim 6:
The rejection of claim 1 is incorporated and further, Plate does not explicitly discloses receiving, by the processor set, an upload of the new version of the library to the public library repository; and detecting, by the validation component, the upload of the new version, wherein the validating the compatibility between the library and the one or more libraries is performed in response to the detecting.
However, Tommasi discloses in an analogous computer system receiving, by the processor set, an upload of the new version of the library to the public library repository (Paragraph [0020] “recommend upgrading the selected software library to version 0.25.0 (e.g., recommending a most recent application/software version)”); and detecting, by the validation component, the upload of the new version, wherein the validating the compatibility between the library and the one or more libraries is performed in response to the detecting (Paragraph [0073] “recommendation component 404, in association with the library component 408 and/or the training/learning component 406, may rank the list of recommended libraries according to the degree of relevance or compatibility for implementation, integration, or replacements of one or more sections of the one or more application projects”).
The feature of providing receiving, by the processor set, an upload of the new version of the library to the public library repository; and detecting, by the validation component, the upload of the new version, wherein the validating the compatibility between the library and the one or more libraries is performed in response to the detecting would be obvious for the reasons set forth in the rejection of claim 1.
Claims 8-11 and 13 is/are the apparatus/system claim corresponding to method claims 1-4 and 6 respectively, and rejected under the same rational set forth in connection with the rejection of claims 1-4 and 6 respectively, as noted above.
Claims 15-18 and 20 is/are the medium/product claim corresponding to method claims 1-4 and 6 respectively, and rejected under the same rational set forth in connection with the rejection of claims 1-4 and 6 respectively, as noted above.
Allowable Subject Matter
Claims 5, 7, 12, 14 and 19 objected to as being dependent upon a rejected base claim, but would be allowable if rewritten in independent form including all of the limitations of the base claim and any intervening claims. Please note that the claims are only allowable if applicants overcome the 101 and/or 112 rejections above.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Related cited arts:
Foo, Darius, et al. "Efficient static checking of library updates." Proceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering. 2018. pp. 791-796.
Westrip, Simon P. "publCIF: software for editing, validating and formatting crystallographic information files." Applied Crystallography 43.4 (2010): pp. 920-925.
Okur, Semih, and Danny Dig. "How do developers use parallel libraries?." Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering. 2012. pp. 1-11.
USPN 8776047 discloses a virtual installation map, and method involving installing a software functionality using the same, the virtual installation map including a first software installation map including a plurality of software elements representative of a related software file, the software elements also including at least one dependency to another software element. The virtual installation map further including a second software installation map also including a second plurality of software elements representative of related software file along with related dependencies. The first and second software installation maps may be hosted in separate databases and may relate to software products provided by different vendors. One or both software installation maps may include a pointer or other reference to the other installation map thereby providing a virtual installation map, in one example.
USPN 20210311926 discloses an example operation includes one or more of receiving a request associated with a software library, identifying metadata of the software library, determining, via chaincode, whether data of the software library has been previously stored on a blockchain, and in response to a determination that the software library has not been previously stored, storing the identified metadata of the software library and a notarization value generated by the chaincode within the blockchain.
USPN 20080244550 discloses deterministically resolving cycles in a library tree is disclosed. Resolving cycles supports certain processes such as safe library initialization. Cycles in the library tree are identified; at least one soft link in each identified cycle is identified; and the at least one soft link in each identified cycle is broken. If a cycle has no soft links, notification is provided indicating that the cycle cannot be broken. Identifying at least one soft link in each identified cycle comprises, for each link in the cycle, determining the dependent and supporting libraries; and determining if one or more functions in the supporting library are required for initializing the dependent library.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to Satish Rampuria whose telephone number is 571-272-3732. The examiner can normally be reached on Monday-Friday from 8:30 AM to 5:00 PM.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Chat Do, can be reached at telephone number 571-272-3721. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of an application may be obtained from Patent Center and the Private Patent Application Information Retrieval (PAIR) system. Status information for published applications may be obtained from Patent Center or Private PAIR. Status information for unpublished applications is available through Patent Center and Private PAIR for authorized users only. Should you have questions about access to the Private PAIR system, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free).
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) Form at https://www.uspto.gov/patents/uspto-automated- interview-request-air-form.
/Satish Rampuria/ Primary Examiner, Art Unit 2193