DETAILED ACTION
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA . This office action is in response to communication filed on 12/19/2025. Claims 17-20 were not rejected over abstract idea under 101 in the first Non-Final office action, and are rejected over abstract idea under 101 in this office action, and the rejections are not necessitated by amendment, therefore this office action is second non-final.
The instant application having application No. 18/400,607 filed on December 29, 2023, presents claims 1-21 for examination. The instant application has no priority data.
Status of the Claims
Claims 6, and 17-20 are amended, claims 1-21 are currently pending in the application.
Response to Amendment
(A). Regarding spec objection: Applicant’s amendments to the spec appropriately addressed the objection, the objection is withdrawn.
(B). Regarding claim objection: Applicant’s amendments to the claims appropriately addressed the objection to claim 6, the objection is withdrawn.
(C). Regarding 101 signal per se rejections: Applicant’s amendments to the claims appropriately addressed the signal per se rejections to claims 17-20, the rejections are withdrawn. However, similar to other claims, claims 17-20 are now subject to 101 abstract idea rejections as set forth below.
(D). Regarding 101 abstract idea rejections: Applicant did not amend the claims to address the abstract idea rejections. The claims are still abstract idea without significantly more, the 101 abstract idea rejections are maintained, see response to arguments for details.
(E). Regarding art rejection: In regards to pending claims, Applicant's arguments are not persuasive, the art rejections are maintained, see response to arguments for details.
Examiner Notes
Examiner cites particular columns, paragraphs, figures 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 their entirety 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.
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 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.
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-21 are rejected under 35 U.S.C. 101 because the claimed invention is directed to an abstract idea without significantly more.
With respect to claim 1, This claim is within at least one of the four categories of patent eligible subject matter as it is directed to a method claim under Step 1.
Under Prong 1, Step 2A:
However, the limitations of claim 1,
“responsive to determining, by a computing system, that a current version of an application is different from a prior version of the application installed at a computing device, generating, by the computing system, a first graph for the current version of the application and a second graph for the prior version of the application, wherein the first graph includes nodes indicative of data structures in the current version and edges indicative of references in the current version, and wherein the second graph includes nodes indicative of data structures in the prior version and edges indicative of references in the prior version;
pairing, by the computing system and using an algorithm, uniquely matching nodes between the first graph and the second graph, wherein the algorithm is configured to iteratively hash the first graph and the second graph, and wherein a set of unpaired nodes are updated incrementally with hashes of the paired uniquely matching nodes;
generating, by the computing system and using the algorithm, a control file including a plurality of encoded step functions based on edges associated with the set of unpaired nodes; and
generating, by the computing system and using the plurality of encoded step functions included in the control file, a mutated prior version of the application.”
as drafted, are functions that, under its broadest reasonable interpretation, cover performance of the limitation in the mind but for the recitation of a generic computing system. That is, other than reciting “by a computing system” nothing in the claim element “responsive to determining …” preclude the steps from practically being performed in the mind. E.g. but for the “by a computing system” language, “determining” in the context of this claim encompasses the user manually determining that a current version of an application is different from a prior version as defined in the claim, and manually generating graphs as defined in the claim. Similarly, other than reciting “by the computing system and using an algorithm” nothing in the claim element “pairing …” preclude the step from practically being performed in the mind. E.g. but for the “by the computing system and using an algorithm” language, “pairing” in the context of this claim encompasses the user manually pairing nodes as defined in the claim; and hash is mathematical concept. The above analysis applies to the “generating” processes. That is, but for the “by the computing system and using the algorithm” or “by the computing system and using the plurality of encoded step functions included in the control file” language, “generating” in the context of this claim encompasses the user manually generating a control file or manually generating a mutated prior version of the application. Thus these claim limitations fall within the “Mental Processes” grouping of abstract ideas under Prong 1 Step 2A
Under Prong 2, Step 2A:
The judicial exception is not integrated into a practical application. The claim recites the following additional element
“a computing system”,
Wherein the computing system is recited at a high-level of generality (i.e. as a generic computing system performing generic computer functions) such that it amounts to no more than mere instructions to apply the judicial exception using a generic computer component. Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea.
Under Step 2B:
The claim does 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 element “a computing system”, that is mere use of generic computer to implement the abstract idea, thus, is not an inventive concept. Accordingly, the claim does not appear to be patent eligible under 35 USC 101.
With respect to claim 9, This claim is within at least one of the four categories of patent eligible subject matter as it is directed to a computing system under Step 1.
This claim recites a computing system to implement a method that is disclosed in claim 1 and therefore recites the same abstract idea as claim 1, please see the office action analysis regarding claim 1.
Claim 9 recites more additional elements that are not recited in claim 1, i.e. “a memory” and “one or more processors” but these elements are recited at a high-level of generality (i.e. as generic computer components) such that it amounts to no more than mere instructions to apply the judicial exception using a generic computer component.
With respect to claim 17, This claim is within at least one of the four categories of patent eligible subject matter as it is directed to A non-transitory computer-readable storage medium under Step 1.
This claim recites A non-transitory computer-readable storage medium to implement a method that is disclosed in claim 1 and therefore recites the same abstract idea as claim 1, please see the office action analysis regarding claim 1.
Claim 17 recites more additional elements that are not recited in claim 1, i.e. “A non-transitory computer-readable storage medium”, “a computing system” and “one or more processors” but these elements are recited at a high-level of generality (i.e. as generic computer components) such that it amounts to no more than mere instructions to apply the judicial exception using a generic computer component.
With respect to claim 21, This claim is within at least one of the four categories of patent eligible subject matter as it is directed to a method under Step 1.
Under Prong 1, Step 2A:
However, the limitations of claim 21,
“applying, by the computing device and using the control file, the patch to the prior version to reproduce a mutated prior version previously generated by the computing system; and
applying, by the computing device and using an algorithm, the patch to the reproduced mutated prior version to generate the current version.”
as drafted, are functions that, under its broadest reasonable interpretation, cover performance of the limitation in the mind but for the recitation of a generic computing system. That is, other than reciting “by the computing device and using the control file” nothing in the claim element “applying …” preclude the steps from practically being performed in the mind. E.g. but for the “by the computing device and using the control file” language, “applying” in the context of this claim encompasses the user manually applying the patch to reproduce a mutated prior version as defined in the claim. Similarly, but for the “by the computing device and using an algorithm” language, “applying” in the context of this claim encompasses the user manually applying the patch to the reproduced mutated prior version to generate the current version. Thus these claim limitations fall within the “Mental Processes” grouping of abstract ideas under Prong 1 Step 2A
Under Prong 2, Step 2A:
The judicial exception is not integrated into a practical application. The claim recites the following additional element
“a computing device”,
“receiving, by a computing device and from a computing system, a patch and a control file, wherein the control file includes a plurality of encoded step functions indicating one or more differences between a prior version of an application installed at the computing device and a current version of the application;“
Wherein the computing device and the computing system are recited at a high-level of generality (i.e. as a generic computing system performing generic computer functions) such that it amounts to no more than mere instructions to apply the judicial exception using a generic computer. Accordingly, these additional element do not integrate the abstract idea into a practical application because they do not impose any meaningful limits on practicing the abstract idea. The “receiving …” process is insignificant extra-solution activity such as gathering data, see MPEP § 2106.05(g).
Under Step 2B:
The claim does 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 “a computing device” and “a computing system”, that are mere use of generic computer to implement the abstract idea, thus, are not an inventive concept. The “receiving” limitation is insignificant extra-solution activity such as gathering data which is recognized as well-understood, routine, and conventional activity, see MPEP § 2106.05(d)(II). Accordingly, the claim does not appear to be patent eligible under 35 USC 101.
With respect to claims 2 and 10, “wherein generating the mutated prior version further comprises applying the plurality of encoded step functions to the references in the prior version.” The claim further defines a generating process of claim 1 or 9, and is the same abstract idea, e.g. the user can manually apply the step functions as defined in the claim.
With respect to claims 3 and 11, “wherein the plurality of encoded step functions indicates one or more differences between the references in the prior version of the application and the references in the current version of the application.” as drafted, is merely indicating a field of use or technological environment in which to apply a judicial exception, and does not amount to significantly more than the exception itself, and cannot integrate a judicial exception into a practical application. See MPEP § 2106.05(h).
With respect to claims 4 and 12, “wherein the algorithm is a first algorithm, the method further comprising:
applying, by the computing system, a second algorithm to the mutated prior version and the current version to generate a patch; and
sending, to the computing device, the patch and the control file.” Wherein the algorithm is mathematical concept. The “applying” limitations as drafted, are functions that, under its broadest reasonable interpretation, cover performance of the limitation in the mind but for the recitation of a generic computing system. That is, other than reciting “by the computing system” nothing in the claim element “applying …” precludes the step from practically being performed in the mind. E.g. but for the “by the computing system” language, “applying” in the context of this claim encompasses the user manually applying a second algorithm as defined in the claim. The “sending” limitation is insignificant extra-solution activity such as transmitting data which is recognized as well-understood, routine, and conventional activity, see MPEP § 2106.05(d)(II). “the computing system” and “the computing device” are recited at a high-level of generality (i.e. as a generic computer) such that it amounts to no more than mere instructions to apply the judicial exception using a generic computer.
With respect to claims 5 and 13, “wherein the control file further includes information for reproducing the mutated prior version.” as drafted, is merely indicating a field of use or technological environment in which to apply a judicial exception, and does not amount to significantly more than the exception itself, and cannot integrate a judicial exception into a practical application. See MPEP § 2106.05(h).
With respect to claims 6 and 14, “wherein the first algorithm is a matching algorithm, wherein second algorithm is a general-purpose patching algorithm, and wherein the second algorithm is configured to encode one or more differences not between the references in the prior version and the references in the current version.” as drafted, is merely indicating a field of use or technological environment in which to apply a judicial exception, and does not amount to significantly more than the exception itself, and cannot integrate a judicial exception into a practical application. See MPEP § 2106.05(h).
With respect to claims 7 and 15, “further comprising:
applying, by the computing system, a parser to the prior version and the current version to generate the first graph and the second graph, wherein each of the first graph and the second graph is a directed acyclic graph for file formats.” as drafted, are functions that, under its broadest reasonable interpretation, cover performance of the limitation in the mind but for the recitation of a generic computing system. That is, other than reciting “by the computing system” nothing in the claim element “applying …” precludes the step from practically being performed in the mind. E.g. but for the “by the computing system” language, “applying” in the context of this claim encompasses the user manually applying a parser to the application to generate graphs as defined in the claim. “the computing system” is recited at a high-level of generality (i.e. as a generic computer) such that it amounts to no more than mere instructions to apply the judicial exception using a generic computer.
With respect to claims 8, 16, and 20, “wherein applying the algorithm to the first graph and the second graph to pair uniquely matching nodes further comprises:
pairing, by the computing system and using the algorithm, at least two unpaired nodes with uniquely matching successors; and
pairing, by the computing system and using the algorithm, at least two unpaired successors of at least two paired uniquely matching nodes.” Further defines the pairing limitation of the independent claims, e.g. claim 1, and therefore recites the same abstract idea as the limitation in claim 1, please refer to the analysis for claim 1 above.
With respect to claim 18, it recites same features as claims 2 and 3, please see the analysis regarding claims 2 and 3 above.
With respect to claim 19, “wherein the algorithm is a first algorithm, and wherein the one or more processors are further configured to:
apply a second algorithm to the mutated prior version and the current version to generate a patch, wherein the second algorithm is a patching algorithm, and wherein the second algorithm is configured to encode one or more differences not between the references in the prior version and the references in the current version; and
send, to the computing device, the patch and the control file.” Wherein the algorithms are mathematical concepts. The “applying” limitations as drafted, are functions that, under its broadest reasonable interpretation, cover performance of the limitation in the mind but for the recitation of a generic computing system. That is, other than reciting “one or more processors are further configured to” nothing in the claim element “apply …” precludes the step from practically being performed in the mind. E.g. but for the “one or more processors are further configured to” language, “apply” in the context of this claim encompasses the user manually apply a second algorithm as defined in the claim. The “sending” limitation is insignificant extra-solution activity such as transmitting data which is recognized as well-understood, routine, and conventional activity, see MPEP § 2106.05(d)(II). “one or more processors” are recited at a high-level of generality (i.e. as a generic computer) such that it amounts to no more than mere instructions to apply the judicial exception using a generic computer.
Claim Rejections - 35 USC § 103
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 of this title, 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-7, 9-15, and 17-19 are rejected under 35 U.S.C. 103 as being unpatentable over Yuan et al. (US 20100088676 A1, hereinafter “Yuan”) in view of BAINVILLE et al. (US 20190155598 A1, hereinafter “BAINVILLE”) and Zizka et al. (US 20190205479 A1, hereinafter “Zizka”).
With respect to claim 1, Yuan discloses A method comprising:
responsive to determining, by a computing system, that a current version of an application is different from a prior version of the application installed at a computing device (para [0022], “… In the example scenario, a software vendor initially produces `version 1` of the code for an application package that includes a set of customizable XML documents. …. A customer purchases version 1 of the application package and, …. The vendor then decides to enhance the application package by adding new functionality, some of which will be implemented through updates to the customizable XML documents. The vender's code for the updated version of the application, `version 2`, is based on version 1.” Wherein version 1 reads on a prior version of the application installed at a computing device), generating, by the computing system, a first graph for the current version of the application and a second graph for the prior version of the application, wherein the first graph includes nodes indicative of data structures in the current version and edges indicative of references in the current version, and wherein the second graph includes nodes indicative of data structures in the prior version and edges indicative of references in the prior version (para [0026], “In the present exemplary embodiment, deserializer 112 is configured to deserialize each of the three input documents to generate and store a memory model representation of each input document into memory model 140. Each memory model representation takes the form of a hierarchical, node-labeled tree data structure. A tree data structure, which is an acyclic and connected graph having a set of linked nodes, …” wherein the link between nodes reads on edges and indicative of references in the documents. And wherein the customized base data model representation 132b or the updated data model representation 134b reads on a first graph for the current version of the application, and base data model representation 130a reads on a second graph for the prior version of the application);
pairing, by the computing system and using an algorithm, uniquely matching nodes between the first graph and the second graph, wherein the algorithm is configured to iteratively [hash the first graph and the second graph], and wherein a set of unpaired nodes are updated incrementally with hashes of the paired uniquely matching nodes (e.g. para [0036], “… To compare two documents and identify information regarding the differences therebetween, comparator 116 can be implemented to access memory model 140 and repeatedly perform exemplary process 200 to compare each element in one document being compared with each element in the other document being compared. …” para [0038], “If it is determined either at decision block 220 or at decision block 230 that the respective unique identifiers for the nodes corresponding to the two elements being compared are the same, the two elements being compared are counterpart elements, …” wherein counterpart elements read on pairing. Para [0035], “… Comparator 1 16 can perform these comparisons to update memory model 140 to include information regarding the following differences identified by comparing each pair of the three input documents: (1) elements that exist in one document but not the other (that is, elements that have been deleted or added); (2) counterpart elements having children elements that are in differing orders in the two documents (when the semantic constraints for the documents specify that order matters for these elements); (3) counterpart elements having attributes that have the same values in the two documents; (4) counterpart elements having different values for attributes that are not part of the unique identifiers for the nodes corresponding to the elements; and (5) counterpart elements having different numbers of attributes that are not part of the unique identifiers for the nodes corresponding to the elements (that is, attributes that have been added or deleted). …”);
generating, by the computing system and using the algorithm, [a control file] including a plurality of encoded step functions based on edges associated with the set of unpaired nodes (e.g. Para [0035], “… Comparator 1 16 can perform these comparisons to update memory model 140 to include information regarding the following differences identified by comparing each pair of the three input documents: (1) elements that exist in one document but not the other (that is, elements that have been deleted or added); (2) counterpart elements having children elements that are in differing orders in the two documents (when the semantic constraints for the documents specify that order matters for these elements); (3) counterpart elements having attributes that have the same values in the two documents; (4) counterpart elements having different values for attributes that are not part of the unique identifiers for the nodes corresponding to the elements; and (5) counterpart elements having different numbers of attributes that are not part of the unique identifiers for the nodes corresponding to the elements (that is, attributes that have been added or deleted). …” the identified differences read on encoded step functions);
generating, by the computing system and using the plurality of encoded step functions included [in the control file], a mutated prior version of the application (e.g. Para [0035], “… Comparator 1 16 can perform these comparisons to update memory model 140 to include information regarding the following differences identified by comparing each pair of the three input documents: (1) elements that exist in one document but not the other (that is, elements that have been deleted or added); (2) counterpart elements having children elements that are in differing orders in the two documents (when the semantic constraints for the documents specify that order matters for these elements); (3) counterpart elements having attributes that have the same values in the two documents; (4) counterpart elements having different values for attributes that are not part of the unique identifiers for the nodes corresponding to the elements; and (5) counterpart elements having different numbers of attributes that are not part of the unique identifiers for the nodes corresponding to the elements (that is, attributes that have been added or deleted). …” wherein the updated memory model including some or all the identified differences reads on a mutated prior version of the application).
Yuan does not appear to explicitly disclose
… hash the first graph and the second graph,
(generating, by the computing system and using the algorithm), a control file including a plurality of encoded step functions based on edges associated with the set of unpaired nodes; and
(generating, by the computing system and using the plurality of encoded step functions included) in the control file, (a mutated prior version of the application).
However, in analogous art, BAINVILLE discloses
(generating, by the computing system and using the algorithm), a control file including a plurality of encoded step functions based on edges associated with the set of unpaired nodes (e.g. Fig. 6, step 612, para [0084], “… at step 612, an update package generation module generates a patch file which includes at least (1) the update script, (2) each code delta, retrieved from the local cache memory, that is specified in the update script, …” wherein the update script reads on a control file, and code delta reads on a plurality of encoded step functions based on edges associated with the set of unpaired nodes); and
(generating, by the computing system and using the plurality of encoded step functions included) in the control file, (a mutated prior version of the application) (e.g. para [0084] as cited above, wherein the update script reads on a control file).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the invention of Yuan with the invention of BAINVILLE because it provides techniques that can both minimize computational resource costs while also quickly and efficiently deliver patch files to a variety of different client computing devices so that users of the application/operating system can use an up-to-date version of the application/operating system that includes minimal defects. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of providing techniques that can both minimize computational resource costs while also quickly and efficiently deliver patch files to a variety of different client computing devices so that users of the application/operating system can use an up-to-date version of the application/operating system that includes minimal defects as suggested by BAINVILLE (see para [0010-0013]).
Yuan as modified by BAINVILLE does not appear to explicitly disclose
… hash the first graph and the second graph, However, this is taught in analogous art, Zizka (e.g. para [0017], “… For example, the module migration manager may select a node associated with a module and determine whether a hash value of that module matches the hash values associated with other modules in the graph. …”)
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the invention of Zizka because it provides techniques for effectively determining matching module using hash. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of providing techniques for effectively determining matching module using hash as suggested by Zizka (see para [0017]).
With respect to claim 2, Yuan discloses wherein generating the mutated prior version further comprises applying the plurality of encoded step functions to the references in the prior version (e.g. Para [0035], “… Comparator 1 16 can perform these comparisons to update memory model 140 to include information regarding the following differences identified by comparing each pair of the three input documents: (1) elements that exist in one document but not the other (that is, elements that have been deleted or added); (2) counterpart elements having children elements that are in differing orders in the two documents (when the semantic constraints for the documents specify that order matters for these elements);. …” wherein the updated memory model including some or all the identified differences reads on a mutated prior version of the application, and the identified differences read on encoded step functions, the identified differences are about references in the versions of documents/files, i.e. the identified differences which are step functions are applied to the references in the prior version).
With respect to claim 3, Yuan discloses wherein the plurality of encoded step functions indicates one or more differences between the references in the prior version of the application and the references in the current version of the application (e.g. Para [0035], “… Comparator 1 16 can perform these comparisons to update memory model 140 to include information regarding the following differences identified by comparing each pair of the three input documents: (1) elements that exist in one document but not the other (that is, elements that have been deleted or added); (2) counterpart elements having children elements that are in differing orders in the two documents (when the semantic constraints for the documents specify that order matters for these elements);. …” the identified differences read on encoded step functions which indicate differences between the references of prior version and current version, e.g. in (1) when elements exist in one document but not the other indicates the references are different).
With respect to claim 4, Yuan as modified by BAINVILLE and Zizka discloses The method of claim 1, Yuan discloses wherein the algorithm is a first algorithm (e.g. para [0036], “… To compare two documents and identify information regarding the differences therebetween, comparator 116 can be implemented to access memory model 140 and repeatedly perform exemplary process 200 to compare each element in one document being compared with each element in the other document being compared. …” wherein repeatedly perform comparison suggests the first algorithm), BAINVILLE discloses the method further comprising:
applying, by the computing system, a second algorithm to the mutated prior version and the current version to generate a patch (e.g. Fig. 6, step 610, para [0084], “… a delta file generation module generates an update script that includes separate instruction groups for each code delta corresponding to the at least two different previous versions of the file, as detailed at step 610. …” wherein one of the previous versions of the file reads on the mutated prior version, and each code delta reads on a patch. For motivation to combine, please refer to office action regarding claim 1 above); and
sending, to the computing device, the patch and the control file (e.g. para [0084], “… at step 614, the server computing device communicates the patch file, over a data network, to separate client computing devices to enable each client computing device to install the latest version of the file.” Fig. 6, step 612 discloses the patch file includes the update script which reads on the control file and each code delta which reads on the patch. For motivation to combine, please refer to office action regarding claim 1 above).
With respect to claim 5, Yuan as modified by BAINVILLE and Zizka discloses The method of claim 4, BAINVILLE further discloses wherein the control file further includes information for reproducing the mutated prior version (e.g. par a[0052], “… For instance, with reference now to a file update script generation process 218 depicted in FIG. 2D, the delta file generation module 112 generates a file update script 220 that includes instructions for the client computing device to, among other things, (1) add one or more files for the application using the file 202, (2) remove one or more files for the application using the file 202, and/or (3) modify one or more files for the application using the file 202, which naturally includes the file 202.” Wherein the update script reads on the control file, and the processes in (1-3) indicate reproducing the mutated prior version. For motivation to combine, please refer to office action regarding claim 1 above).
With respect to claim 6 (Currently Amended), Yuan as modified by BAINVILLE and Zizka discloses The method of claim 4, Yuan discloses wherein the first algorithm is a matching algorithm (e.g. para [0036], “… To compare two documents and identify information regarding the differences therebetween, comparator 116 can be implemented to access memory model 140 and repeatedly perform exemplary process 200 to compare each element in one document being compared with each element in the other document being compared. …” wherein repeatedly perform comparison suggests the first algorithm is a matching algorithm), BAINVILLE further discloses wherein the second algorithm is a general-purpose patching algorithm, and wherein the second algorithm is configured to encode one or more differences not between the references in the prior version and the references in the current version (e.g. Fig. 6, step 610, para [0084], “… a delta file generation module generates an update script that includes separate instruction groups for each code delta corresponding to the at least two different previous versions of the file, as detailed at step 610. …” wherein generating an update script suggests a second algorithm and the second algorithm is a general purpose patching algorithm. par a[0052], “… For instance, with reference now to a file update script generation process 218 depicted in FIG. 2D, the delta file generation module 112 generates a file update script 220 that includes instructions for the client computing device to, among other things, (1) add one or more files for the application using the file 202, (2) remove one or more files for the application using the file 202, and/or (3) modify one or more files for the application using the file 202, which naturally includes the file 202.” Wherein the update script reads on the control file, and the processes in (1-3) are about encoding differences of nodes between versions of documents/files but not between the references/edges between versions of documents/files. For motivation to combine, please refer to office action regarding claim 1 above).
With respect to claim 7, Yuan discloses further comprising:
applying, by the computing system, a parser to the prior version and the current version to generate the first graph and the second graph, wherein each of the first graph and the second graph is a directed acyclic graph for file formats (para [0026], “In the present exemplary embodiment, deserializer 112 is configured to deserialize each of the three input documents to generate and store a memory model representation of each input document into memory model 140. Each memory model representation takes the form of a hierarchical, node-labeled tree data structure. A tree data structure, which is an acyclic and connected graph having a set of linked nodes, …” wherein the deserializer reads on a parser, it works for the file format of the documents).
Regarding claim 9, it is directed to a computing system to implement the method disclosed in claim 1, please see the rejections directed to claim 1 above which also cover the limitations recited in claim 9. Note that, Yuan teaches A computing system comprising: a memory; and one or more processors configured to (e.g. Fig. 5):
Regarding claim 10, it recites same features as claim 2, and is rejected for the same reason.
Regarding claim 11, it recites same features as claim 3, and is rejected for the same reason.
Regarding claim 12, it recites same features as claim 4, and is rejected for the same reason.
Regarding claim 13, it recites same features as claim 5, and is rejected for the same reason.
Regarding claim 14, it recites same features as claim 6, and is rejected for the same reason.
Regarding claim 15, it recites same features as claim 7, and is rejected for the same reason.
Regarding claim 17, it is directed to a computer-readable storage medium to implement the method disclosed in claim 1, please see the rejections directed to claim 1 above which also cover the limitations recited in claim 17. Note that, Yuan teaches A computer-readable storage medium encoded with instructions that, when executed by one or more processors of a computing system, cause the one or more processors to (e.g. Fig. 5):
Regarding claim 18, it recites same features as claims 2 and 3, and is rejected for the same reason.
Regarding claim 19, it recites same features as claims 4 and 6, and is rejected for the same reason.
Claims 8, 16, and 20 are rejected under 35 U.S.C. 103 as being unpatentable over Yuan in view of BAINVILLE and Zizka as applied to claims 1, 9, and 17 respectively, in further view of CHEN et al. (US 20240184558 A1, hereinafter “CHEN”) and REN et al. (US 20200201828 A1, hereinafter “REN”).
With respect to claim 8, Yuan as modified by BAINVILLE and Zizka discloses The method of claim 1, but does not appear to explicitly discloses wherein applying the algorithm to the first graph and the second graph to pair uniquely matching nodes further comprises:
pairing, by the computing system and using the algorithm, at least two unpaired nodes with uniquely matching successors; and
pairing, by the computing system and using the algorithm, at least two unpaired successors of at least two paired uniquely matching nodes.
However, in analogous art, CHEN discloses wherein applying the algorithm to the first graph and the second graph to pair uniquely matching nodes further comprises:
pairing, by the computing system and using the algorithm, at least two unpaired nodes with uniquely matching successors (e.g. para [0019], “… A Relation ID, which the program code can calculate for a given node by applying a hash algorithm to its ancestor submissive nodes' image identifiers, uniquely matches an image to a layer. …” wherein the ancestor reads on an unpaired node, the submissive nodes read on successors, and the relation ID uniquely matches an image indicates pairing of the ancestor nodes by uniquely marching successors/submissive nodes);
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the invention of CHEN because it provides techniques for automatically generating and deploying applications on-demand through container images and techniques for identifying images. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of providing techniques for automatically generating and deploying applications on-demand through container images and techniques for identifying images as suggested by CHEN (see para [0002, 0019]).
Yuan as modified by BAINVILLE, Zizka and CHEN does not appear to explicitly disclose
pairing, by the computing system and using the algorithm, at least two unpaired successors of at least two paired uniquely matching nodes.
However, this is taught in analogous art, REN (e.g. para [0059], “Simple determination of commonality or similarity between the file nodes 404, 406, 410, 412,
416, 420, 422 of the data tree 400 and the file nodes 454, 456, 462, 466, 470, 472,
474 of the data tree 450 may be determined based on file names and full paths of file nodes. …” and Table 1, wherein (fname1, T1) pairs with (fname1, T2), in which the full path is root node R, and fname1 is a successor of root node R, hence the pairing the successors of the two paired uniquely matching nodes.)
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the invention of REN because it provides techniques for tree delta encoding which reduces the amount of information needed to be exchanged to update a file. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of providing techniques for tree delta encoding which reduces the amount of information needed to be exchanged to update a file as suggested by REN (see para [0003, 0036]).
Regarding claim 16, it recites same features as claim 8, and is rejected for the same reason.
Regarding claim 20, it recites same features as claim 8, and is rejected for the same reason.
Claim Rejections - 35 USC § 102
The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless –
(a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale or otherwise available to the public before the effective filing date of the claimed invention.
Claim 21 is rejected under 35 U.S.C. 102 (a) (1) as being anticipated by BAINVILLE.
Regarding claim 21, BAINVILLE anticipates A method comprising:
receiving, by a computing device and from a computing system, a patch and a control file, wherein the control file includes a plurality of encoded step functions indicating one or more differences between a prior version of an application installed at the computing device and a current version of the application (e.g. Fig. 6, para [0084], “… Finally, at step 614, the server computing device communicates the patch file, over a data network, to separate client computing devices to enable each client computing device to install the latest version of the file.” Step 612 discloses a patch file includes (1) update script, (2) each code delta, and (3) an archived code section; and code delta reads on step functions indicating one or more differences between the versions of the file specified in the update script, the code delta and archived code section also read on a patch. also see step 606.);
applying, by the computing device and using the control file, the patch to the prior version to reproduce a mutated prior version previously generated by the computing system (e.g. par a[0052], “… For instance, with reference now to a file update script generation process 218 depicted in FIG. 2D, the delta file generation module 112 generates a file update script 220 that includes instructions for the client computing device to, among other things, (1) add one or more files for the application using the file 202, (2) remove one or more files for the application using the file 202, and/or (3) modify one or more files for the application using the file 202, which naturally includes the file 202.” Wherein the update script reads on the control file, and the processes in (1-3) indicate reproducing the mutated prior version.); and
applying, by the computing device and using an algorithm, the patch to the reproduced mutated prior version to generate the current version. (e.g. Fig. 7, step 708, para [0086], “… at step 708, the client computing device updates the file to the latest version of the file based at least in part on (1) the contents of the patch file and (2) the previous version of the file. ...”)
Response to Arguments
Applicant's arguments with respect to 101 abstract idea rejections and art rejections filed 12/19/2025 have been fully considered but they are not persuasive.
At p10 second paragraph to p14 second paragraph of the Remarks, Applicant argued that “the elements of claim 1 are recited in a manner as to realize the technical improvement discussed in Applicant's specification”. Particularly, at p13 second from the last paragraph of the Remarks, Applicant argued that “As such, Applicant asserts that the improvements to computer functionality, as provided by the description of the invention in Applicant's specification, are appropriately claimed in claims 1, 12, 17, and 21, and it would be apparent to a person of ordinary skill in the art that claims 1, 12, 17, and 21 reflect an improvement to computer functionality.”
Examiner respectfully disagrees, because, as set forth in the office action above, the claim limitations “pairing, by the computing system and using an algorithm, uniquely matching nodes between the first graph and the second graph, wherein the algorithm is configured to iteratively hash the first graph and the second graph, and wherein a set of unpaired nodes are updated incrementally with hashes of the paired uniquely matching nodes; generating, by the computing system and using the algorithm, a control file including a plurality of encoded step functions based on edges associated with the set of unpaired nodes; and generating, by the computing system and using the plurality of encoded step functions included in the control file, a mutated prior version of the application.” are functions that, under its broadest reasonable interpretation, cover performance of the limitation in the mind but for the recitation of a generic computing system. That is, other than reciting “by the computing system and using an algorithm” nothing in the claim element “pairing … uniquely matching nodes …” preclude the steps from practically being performed in the mind. E.g. but for the “by the computing system and using an algorithm” language, “pairing” in the context of this claim encompasses the user manually pairing nodes as defined in the claim. The algorithm and hash are mathematical concepts. A set of unpaired nodes are updated incrementally with hashes of the paired uniquely matching nodes is mental process because human can manually update the unpaired nodes as defined in the claim. that a current version of an application is different from a prior version as defined in the claim, and manually generating graphs as defined in the claim. The above analysis applies to the “generating” processes. That is, but for the “by the computing system and using the algorithm” or “by the computing system and using the plurality of encoded step functions included in the control file” language, “generating” in the context of this claim encompasses the user manually generating a control file or manually generating a mutated prior version of the application. Thus these claim limitations fall within the “Mental Processes” grouping of abstract ideas under Prong 1 Step 2A. These claim elements do not affect computer functionality as the computer functions the same as it would before the instant case, and thus do not improve computer functionality.
At p13 last to p14 first paragraph of the Remarks, Applicant argued that “The claimed subject matter provides a solution to the initial problem … such that "the amount of network utilization required for the installation of updates for a set of applications installed on a computing device, which may be connected to a data-limited network connection (e.g., a mobile data network), may be reduced."
Examiner respectfully disagrees, because, as explained above, the solution is abstract idea of mental processes. The solution results in reduced amount of network utilization, which indicates that the solution is efficient in terms of network utilization, but it does not affect computer functionality or any technology.
At p14 second paragraph of the Remarks, Applicant argued that “Thus, Applicant's specification provides details that make it apparent to a person of ordinary skill in the art that independent claims 1, 12, 17, and 21 reflect an improvement to computer functionality, in accordance with MPEP §2106.06(b), such that independent claims 1, 12, 17, and 21 do not need to undergo the full eligibility analysis, as their eligibility is self- evident…."
Examiner respectfully disagrees, because, as explained above, the claims provide a solution to the problem, but the solution is abstract idea of mental processes. The solution results in reduced amount of network utilization, which indicates that the solution requires less use of resources, but it does not affect computer functionality or any technology.
At p14 under title “Step 2A -Prong One: Does the Claim Recite an Abstract Idea, Law of Nature, or Natural Phenomenon?” to p17 third paragraph of the Remarks, Applicant argued that “the Examiner did not explicitly evaluate the subject matter of independent claims 1, 12, 17, and 21 under Point C.” Particularly, at p15 last to p16 first paragraph of the Remarks, Applicant argued that “in light of the specification, independent claims 1, 12, 17, and 21 clearly and explicitly require a computer, as independent claims 1, 12, 17, and 21 include claim elements that cannot be practically performed in the human mind, e.g., the steps reciting "generating, by the computing system, a first graph for the current version of the application and a second graph for the prior version of the application, wherein the first graph includes nodes indicative of data structures in the current version and edges indicative of references in the current version, and wherein the second graph includes nodes indicative of data structures in the prior version and edges indicative of references in the prior version" and "pairing, by the computing system and using an algorithm, uniquely matching nodes between the first graph and the second graph, wherein the algorithm is configured to iteratively hash the first graph and the second graph, and wherein a set of unpaired nodes are updated incrementally with hashes of the paired uniquely matching nodes." That is, in light of Applicant's specification, the steps recited by independent claims 1, 12, 17, and 21 are not mental processes merely performed on a generic computer, in a computer environment, or by using a computer as a tool to perform the claim elements.”
Examiner respectfully disagrees, because, as set forth in the office action and as explained above, the claim limitation “generating, by the computing system, a first graph for the current version of the application and a second graph for the prior version of the application, wherein the first graph includes nodes indicative of data structures in the current version and edges indicative of references in the current version, and wherein the second graph includes nodes indicative of data structures in the prior version and edges indicative of references in the prior version", as drafted, are functions that, under its broadest reasonable interpretation, cover performance of the limitation in the mind but for the recitation of a generic computing system. That is, other than reciting “by the computing system” nothing in the claim element “generating, by the computing system, a first graph for the current version …” preclude the steps from practically being performed in the mind. E.g. but for the “by the computing system” language, “generating” in the context of this claim encompasses the user manually generating a first graph and a second graph as defined in the claim. The computing system is merely used as a tool to implement the judicial exception. Similar analysis applies to the limitation “pairing, by the computing system and using an algorithm, uniquely matching nodes …, and wherein a set of unpaired nodes are updated incrementally with hashes of the paired uniquely matching nodes.” Please refer to response in paragraph 47 above. Thus the steps recited by independent claims 1, 12, 17, and 21 are mental processes and the computing system is merely used as a tool to perform the claim elements.
At p16 last to p17 first paragraph of the Remarks, Applicant argued that “A human mind cannot practically generate graphs based on "several large data segments or structures composed entirely of intra-file references (by byte offset or element index)," and thus cannot practically perform the steps that aim to solve the technical problem of "[reducing] the patch size of application 130, which may comprise strongly structured data with a high density of unstable intra-file references," and may be "on the order of multiple gigabytes - e.g., several to tens of gigabytes, multiple megabytes - e.g., hundreds of megabytes, etc."
Examiner respectfully disagrees, because, as explained above, human mind can practically analyze large data segments/structures and generate graphs based on the analysis, and thus can practically perform the steps that aim to solve the technical problem of "[reducing] the patch size of application. The large size of the data file makes the human manual solution inefficient, thus use of a computer to implement the mental process is to gain efficiency. However, the computer is merely used as a tool, it’s functionality is not affected, i.e. no technology is affected. Further, Examiner would like to point out that the claims are read in light of the specification, but the limitations of the specification are not read into claims.
At p17 second paragraph of the Remarks, Applicant argued that “As such, according to MPEP 2106.04, independent claims 1, 12, 17, and 21 do not recite a mental process and are not directed to an abstract idea.”
Examiner respectfully disagrees, because, as explained above, the claims are abstract idea without significantly more.
At p17 third paragraph of the Remarks, Applicant argued that “For at least these reasons, independent claims 1, 12, 17, and 21 are not directed to a judicial exception and, instead, satisfies the Step 2A - Prong One analysis as being directed to statutory subject matter. Accordingly, for at least the reasons noted above, independent claims 1, 12, 17, and 21 recite patentable subject matter under 35 U.S.C. § 101, and the rejection of independent claims 1, 12, 17, and 21 under 35 U.S.C. § 101 is in error. Applicant respectfully requests withdrawal of this rejection.”
Examiner respectfully disagrees, because, as set forth in the office action and as explained above, the claims are directed to abstract idea without significantly more. The 101 abstract idea rejections are maintained.
At p17 under title “Claim Rejection Under 35 U.S.C. § 103 ” to p15 second paragraph of the Remarks, Applicant argued with respect to 103 art rejections that “The applied references, alone or in any combination, fail to teach or suggest all of the features defined by Applicant's claims”. Particularly, at p17 last to p18 first paragraph of the Remarks, Applicant argued that “the cited portions of Yuan and Zizka, considered alone or in any combination with Bainville, do not teach or suggest this feature of claim 1.”
Examiner respectfully disagrees, because, as set forth in the office action, Yuan teaches, (see para [0038] of Yuan as cited in the office action), comparing unique identifiers of the nodes to identify counterpart elements which reads on pairing nodes. Yuan also teaches, (see para [0035] of Yuan as cited in the office action), updating memory model to include information regarding differences identified by comparing each pair of the input documents, wherein the memory model reads on the graph of an application version, (see para [0026] of Yuan, “Each memory model representation takes the form of a hierarchical, node-labeled tree data structure”, wherein the node-labeled tree data structure reads on a graph.) The information regarding differences includes: “(1) elements that exist in one document but not the other (that is, elements that have been deleted or added);. …” wherein elements that exist in one document but not the other indicate these elements are not paired, i.e. updating the memory model with the element information reads on a set of unpaired nodes are updated. Yuan further teaches, (see para [0036] of Yuan as cited in the office action), “To compare two documents and identify information regarding the differences therebetween, comparator 116 can be implemented to access memory model 140 and repeatedly perform exemplary process 200 to compare each element in one document being compared with each element in the other document being compared. …” wherein repeatedly perform exemplary process 200, and thus, the memory model is repeatedly updated, i.e. the set of unpaired nodes are repeatedly updated, and repeatedly reads on incrementally. Yuan does not appear to explicitly teach hashing the graphs. But in analogous art, Zizka teaches hashing a graph, (see para [0017] of Zizka as cited in the office action), “For example, the module migration manager may select a node associated with a module and determine whether a hash value of that module matches the hash values associated with other modules in the graph. …”. Thus the combination of Yuan and Zizka teaches the claim feature under discussion.
At p18 second paragraph of the Remarks, Applicant argued that “Rather than teaching such features of claim 1, Yuan, at paragraph [0028], describes "[t]o generate the unique identifier of each node context, deserializer 112 employs a repository of identifier determination rules that are applied to each of the XMIL elements according to the values of one or more attributes of the element." In paragraph [0036], cited by the Examiner, Yuan further describes "[t]o compare two documents and identify information regarding the differences there between, comparator 116 can be implemented to access memory model 140 and repeatedly perform exemplary process 200 to compare each element in one document being compared with each element in the other document being compared." That is, Yuan describes generating identifiers "according to the values of one or more attributes"18 and "compar[ing] each element in one document ... with each element in the other document...."”
Examiner respectfully disagrees, because, Applicant argued about some selected features from Yuan which are not closely relevant to the claim features. Applicant is advised to read para 61 above where Examiner explained features that Yuan teaches which are mapped to the claim features under discussion.
At p18 third and fourth paragraphs of the Remarks, Applicant argued that “However, even when considering the teachings of Bainville, Yuan's teaching of generating identifiers "according to the values of one or more attributes" in combination with Zizka's teaching of "whether a hash value of that module matches the hash values associated with other modules" does not teach or even suggest "wherein the algorithm is configured to iteratively hash the first graph and the second graph, and wherein a set of unpaired nodes are updated incrementally with hashes of the paired uniquely matching nodes," as recited in claim 1.
Examiner respectfully disagrees, because, as explained above, Applicant argued about some selected features from Yuan which are not closely relevant to the claim features. Applicant is advised to read para 61 above where Examiner explained features that Yuan teaches which are mapped to the claim features under discussion.
At p18 last to p19 first paragraph of the Remarks, Applicant argued that “Further, the cited portions of the applied references also fail to disclose the combination of "generating, by the computing system, a first graph for the current version of the application and a second graph for the prior version of the application, wherein the first graph includes nodes indicative of data structures in the current version and edges indicative of references in the current version, and wherein the second graph includes nodes indicative of data structures in the prior version and edges indicative of references in the prior version," "pairing, by the computing system and using an algorithm, uniquely matching nodes between the first graph and the second graph," "wherein a set of unpaired nodes are updated incrementally with hashes of the paired uniquely matching nodes," "generating, by the computing system and using the algorithm, ... a plurality of encoded step functions based on edges associated with the set of unpaired nodes," and "generating, by the computing system and using the plurality of encoded step functions... a mutated prior version of the application," as recited by Applicant's claim 1.”
Examiner respectfully disagrees, because, as set forth in the office action, Yuan teaches “generating, by the computing system, a first graph for the current version of the application and a second graph for the prior version of the application, wherein the first graph includes nodes indicative of data structures in the current version and edges indicative of references in the current version, and wherein the second graph includes nodes indicative of data structures in the prior version and edges indicative of references in the prior version,”, see para [0026] of Yuan as cited in the office action, “In the present exemplary embodiment, deserializer 112 is configured to deserialize each of the three input documents to generate and store a memory model representation of each input document into memory model 140. Each memory model representation takes the form of a hierarchical, node-labeled tree data structure. A tree data structure, which is an acyclic and connected graph having a set of linked nodes, …” wherein a node in the tree data structure is indicative of a data structure, (see para [0027] of Yuan, “Each such tree node has a context that contains: (a) the attributes of the corresponding XML element;” wherein XML element reads on a data structure), the link between nodes reads on edges and indicative of references in the documents, (see para [0027] of Yuan, “Each such tree node has a context that contains: … (b) all descendent XML elements (and their respective attributes) of the corresponding element;” wherein the XML elements and the descendent XML elements indicate a link between them and the link reads on the edge and the descendent indicates references). And wherein the customized base data model representation 132b or the updated data model representation 134b reads on a first graph for the current version of the application, and base data model representation 130a reads on a second graph for the prior version of the application. Yuan also teaches "pairing, by the computing system and using an algorithm, uniquely matching nodes between the first graph and the second graph," see para [0036] of Yuan as cited in the office action, “… To compare two documents and identify information regarding the differences therebetween, comparator 116 can be implemented to access memory model 140 and repeatedly perform exemplary process 200 to compare each element in one document being compared with each element in the other document being compared. …” wherein the memory model takes the form of a hierarchical, node-labeled tree data structure, see para [0026] of Yuan as cited above. Thus, to compare documents is to compare tree data structures which read on graphs. Para [0038] of Yuan teaches “If it is determined either at decision block 220 or at decision block 230 that the respective unique identifiers for the nodes corresponding to the two elements being compared are the same, the two elements being compared are counterpart elements, …” wherein counterpart elements read on pairing. Yuan further teaches "wherein a set of unpaired nodes are updated incrementally with hashes of the paired uniquely matching nodes," for detailed explanation, please refer to paragraph 61 above. Yuan also teaches "generating, by the computing system and using the algorithm, ... a plurality of encoded step functions based on edges associated with the set of unpaired nodes," see para [0035] of Yuan as cited in the office action, “… Comparator 116 can perform these comparisons to update memory model 140 to include information regarding the following differences identified by comparing each pair of the three input documents: (1) elements that exist in one document but not the other (that is, elements that have been deleted or added); (2) counterpart elements having children elements that are in differing orders in the two documents (when the semantic constraints for the documents specify that order matters for these elements); (3) counterpart elements having attributes that have the same values in the two documents; (4) counterpart elements having different values for attributes that are not part of the unique identifiers for the nodes corresponding to the elements; and (5) counterpart elements having different numbers of attributes that are not part of the unique identifiers for the nodes corresponding to the elements (that is, attributes that have been added or deleted). …” wherein the identified differences read on a plurality of encoded step functions, the counterpart element reads on a node, and the counterpart elements with different attribute values read on unpaired nodes, the counterpart elements with children elements that are in differing order indicate that the edges between the counterpart elements are different, i.e. the difference (reads on step function) is generated based on edges associated with the set of unpaired nodes. Yuan further teaches "generating, by the computing system and using the plurality of encoded step functions... a mutated prior version of the application,", see para [0035] of Yuan as cited in the office action and as cited above, wherein the updated memory model including some or all the identified differences reads on a mutated prior version of the application.
At p19 second paragraph of the Remarks, Applicant argued that “Examiner stated, "[Yuan's] link between nodes reads on edges and indicative of references in the documents," Yuan is silent regarding "references," and thus Yuan does not teach "edges indicative of references" and "generating, by the computing system and using the algorithm, ... a plurality of encoded step functions based on edges associated with the set of unpaired nodes," as recited by Applicant's claim 1.”
Examiner respectfully disagrees, because, as explained above, see paragraph 67 above, see para [0027] of Yuan, “Each such tree node has a context that contains: … (b) all descendent XML elements (and their respective attributes) of the corresponding element;” wherein the XML elements and the descendent XML elements indicate a link between them and the link reads on the edge and the descendent indicates references between the element and all descendent elements.
At p19 last two paragraphs to p20, Applicant cited sections from Yuan and compared with the section of the instant spec that describes the “references” recited by claim 1 at p21 first two paragraphs. And argued at p21 third paragraph, that “That is, Yuan's alleged "link between nodes" reads on "a hierarchical structure of elements in which the structure is generally defined by tags (that is, sequences of characters in the document" and does not teach or suggest Applicant's "edges indicative of references.”"
Examiner respectfully disagrees, because, as explained above, see paragraph 67 and 69 above. Yuan teaches (see Para [0027] of Yuan), “Each such tree node has a context that contains: … (b) all descendent XML elements (and their respective attributes) of the corresponding element;” wherein the XML elements and the descendent XML elements indicate a link between them and the link reads on the edge and the descendent indicates references between the element and all descendent elements.
At p21 third paragraph, Applicant also argued that “Yuan does not teach or suggest generating graphs based on "several large data segments or structures composed entirely of intra-file references (by byte offset or element index)," and thus does not aim to solve the same technical problem identified by Applicant's specification, e.g., "[reducing] the patch size of application 130, which may comprise strongly structured data with a high density of unstable intra-file references."
Examiner respectfully disagrees, because, as set forth in the office action, and as explained above, Yuan teaches the claim features that Applicant argued about. Examiner would like to point out that although claims are read in light of the spec, the limitations in spec are not read into the claims.
At p21 last paragraph of the Remarks, Applicant argued that “Thus, Yuan does not teach or suggest "generating, by the computing system, a first graph for the current version of the application and a second graph for the prior version of the application, wherein the first graph includes... edges indicative of references in the current version, and wherein the second graph includes... edges indicative of references in the prior version; generating, by the computing system and using the algorithm, ... a plurality of encoded step functions based on edges associated with the set of unpaired nodes; and generating, by the computing system and using the plurality of encoded step functions included in the control file, a mutated prior version of the application," as recited by Applicant's claim 1. For at least these reasons, claim 1 is patentable over Yuan.”
Examiner respectfully disagrees, because, as explained above, specifically, see paragraphs 61, 67 and 69 above, Yuan teaches the claim features that Applicant argued about. Thus, claim 1 is not patentable over Yuan.
At p22 first paragraph of the Remarks, Applicant argued that Applicant disagrees with Examiner. Particularly, at p22 second paragraph of the Remarks, Applicant argued that “Examiner stated, "the update script reads on a control file, and code delta reads on a plurality of encoded step functions based on edges associated with the set of unpaired nodes."36 However, Applicant's claim 1 recites, "generating, by the computing system and using the algorithm, a control file including a plurality of encoded step functions based on edges associated with the set of unpaired nodes; and generating, by the computing system and using the plurality of encoded step functions included in the control file, a mutated prior version of the application."”
Examiner respectfully disagrees, and points out that Examiner’s comment that "the update script reads on a control file” is not proper, instead, Examiner should have commented that the patch file of Bainville reads on a control file, and code delta reads on a plurality of encoded step functions. Yuan teaches a plurality of encoded step functions based on edges associated with the set of unpaired nodes; see response in paragraph 67 above. Yuan also teaches generating, by the computing system and using the plurality of encoded step functions included in the control file, a mutated prior version of the application. See response in paragraph 67 above.
At p22 second paragraph of the Remarks, Applicant also argued that “Bainville merely teaches, "the delta calculation engine 110 includes the functionality to identify file differences (e.g., using binary file comparison procedures) between at least two or more different versions of a particular file." Bainville is silent regarding "encoded step functions." Instead, Bainville describes, "In some scenarios, the code delta 208 includes a respective set of program code that specifies that a first number of bytes can be added to a second number of bytes from the previous version 202-2 to produce the latest version file 202-1."”
Examiner respectfully disagrees, because, the step function, according to claim 3, indicates differences between references of different versions of the application, the code delta of Bainville contains differences between different versions of a file, thus, code delta of Bainville is analogous to the step function of the claim.
At p23 last to p24 first paragraph of the Remarks, Applicant argued that “Thus, Bainville's "patch file" containing an "update script" and "code deltas" (byte-level differences) fails to teach or suggest the specific structure and function of the claimed control file. That is, Bainville's "patch file" containing an "update script" and "code deltas" does not teach or suggest "a control file including a plurality of encoded step functions based on edges associated with the set of unpaired nodes," in which the "the plurality of encoded step functions included in the control file" are used to "[generate]... a mutated prior version of the application." For at least these reasons, Applicant's independent claims 1, 12, and 17 are patentable over Bainville.”
Examiner respectfully disagrees, because, as explained above that Examiner’s comment that "the update script reads on a control file” is not proper, instead, Examiner should have commented that the patch file of Bainville reads on a control file, and code delta reads on a plurality of encoded step functions. Further Yuan teaches details of the step function as explained in response in paragraph 67 above, Yuan also teaches "[generate]... a mutated prior version of the application." as explained in response in paragraph 67 above. Thus, the combination of Bainville and Yuan teaches the claim features under discussion, and the independent claims 1, 12, and 17 are not patentable over Bainville.
At p24 last paragraph of the Remarks, Applicant argued that “Thus, Yuan and Bainville, alone or in combination, do not teach or suggest "generating, by the computing system, a first graph for the current version of the application and a second graph for the prior version of the application, wherein the first graph includes nodes indicative of data structures in the current version and edges indicative of references in the current version, and wherein the second graph includes nodes indicative of data structures in the prior version and edges indicative of references in the prior version; pairing, by the computing system and using an algorithm, uniquely matching nodes between the first graph and the second graph,... wherein a set of unpaired nodes are updated incrementally with hashes of the paired uniquely matching nodes; generating, by the computing system and using the algorithm, a control file including a plurality of encoded step functions based on edges associated with the set of unpaired nodes; and generating, by the computing system and using the plurality of encoded step functions included in the control file, a mutated prior version of the application," as recited by Applicant's claim 1 (with emphasis added).”
Examiner respectfully disagrees, because, as explained above, the cited references Yuan and Bainville in combination teaches the claim features recited in claim 1 under discussion.
At p25 first two paragraphs of the Remarks, Applicant argued that “The other cited references, e.g., Zizka, Chen, and Ren, do not overcome the deficiencies in the Examiner's reliance on Yuan and Bainville. Yuan and Bainville, alone or in any proper combination with the other cited references, do not reasonably teach or suggest the subject matter recited by independent claims 1, 12, or 17, or by claims 2-11, 13-16, and 18-20, which ultimately depend from their respective independent claims. The applied combinations of references do not support a prima facie case of unpatentability of any pending claim under 35 U.S.C. § 103.
Applicant respectfully requests reconsideration and withdrawal of the rejections under 35 U.S.C. § 103.”
Examiner respectfully disagrees, because, as explained above, the cited references in combination teaches the claim features recited in independent claims 1, 12, or 17, the art rejections to independent claims are maintained. Similarly, the art rejections to claims 2-11, 13-16, and 18-20 are maintained.
At p25 third to last paragraphs of the Remarks, Applicant argued with respect to 102 art rejections. Particularly, at p25 third from the last paragraph of the Remarks, Applicant argued that “Bainville merely teaches, "the delta calculation engine 110 includes the functionality to identify file differences (e.g., using binary file comparison procedures) between at least two or more different versions of a particular file." Bainville is silent regarding "encoded step functions." Thus, Bainville does not teach or suggest all limitations of Applicant's claim 21.”
Examiner respectfully disagrees, because, as set forth in the office action, the code delta of Bainville reads on the encoded step functions, because code delta is about the differences between the latest version of the file and each of the at least two different previous versions of the file. Thus, Bainville anticipates claim 21.
At p25 last two paragraphs of the Remarks, Applicant argued that “For at least these reasons, Bainville does not support a prima facie case of anticipation of independent claim 21.
Applicant respectfully requests reconsideration and withdrawal of the rejection under 35 U.S.C. § 102.”
Examiner respectfully disagrees, because, as explained above, specifically paragraph 87 above, Bainville anticipates claim 21, the 102 art rejection to claim 21 is maintained.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure. For example, Wang et al. US 10802815 B1 teaches Managing Upgrades Of Clients Having Different Installed Versions Of A Software Product.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to Zengpu Wei whose telephone number is 571-270-1302. The examiner can normally be reached on Monday to Friday from 8:00AM to 5:00 PM.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Bradley Teets, can be reached on 571-272-3338. 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 the Patent Application Information Retrieval (PAIR) system. Status information for published applications may be obtained from either Private PAIR or Public PAIR. Status information for unpublished applications is available through Private PAIR only. For more information about the PAIR system, see http://portal.uspto.gov/external/portal. 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) at http://www.uspto.gov/interviewpractice.
/ZENGPU WEI/
Examiner, Art Unit 2197