DETAILED ACTION
Remarks
The present application was filed 18 July 2024.
Claims 1-20 are pending.
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 .
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.
Specification
The disclosure is objected to because of the following informalities:
It uses the trademarks JAVASCRIPT in paragraph [0087] without capitalizing every letter of the mark or, or, where appropriate, include a proper symbol indicating use in commerce such as ™, SM, or ® following the term. See M.P.E.P. § 608.01(v).
Drawings
The drawings are objected to as failing to comply with 37 CFR 1.84(p)(5) because they include the following reference character(s) not mentioned in the description: 155 (Fig. 1), 202 (Fig. 2A), 408, 410 (Fig. 4), 132 (Fig. 6).
The drawings are objected to as failing to comply with 37 CFR 1.84(p)(4) because:
reference character “100” has been used to designate both the system of Figure 1 and the e-commerce platform of Figure 6;
reference character “110” has been used to designate both the client device of Figure 1 and the channels of Figure 6;
reference character “120” has been used to designate both the network of Figure 1 and the payments of Figure 6;
reference character “140” has been used to designate both the worker node of Figure 1 and the interfaces of Figure 6; and
reference character “150” has been used to designate both the debug server of Figure 1 and the user device of Figure 6.
Corrected drawing sheets in compliance with 37 CFR 1.121(d), and/or amendment to the specification in compliance with 37 CFR 1.121(b) are required in reply to the Office action to avoid abandonment of the application. Any amended replacement drawing sheet should include all of the figures appearing on the immediate prior version of the sheet, even if only one figure is being amended. Each drawing sheet submitted after the filing date of an application must be labeled in the top margin as either “Replacement Sheet” or “New Sheet” pursuant to 37 CFR 1.121(d). If the changes are not accepted by the examiner, the applicant will be notified and informed of any required corrective action in the next Office action. The objection to the drawings will not be held in abeyance.
Claim Rejections - 35 USC § 112
The following is a quotation of 35 U.S.C. 112(d):
(d) REFERENCE IN DEPENDENT FORMS.—Subject to subsection (e), a claim in dependent form shall contain a reference to a claim previously set forth and then specify a further limitation of the subject matter claimed. A claim in dependent form shall be construed to incorporate by reference all the limitations of the claim to which it refers.
The following is a quotation of pre-AIA 35 U.S.C. 112, fourth paragraph:
Subject to the following paragraph [i.e., the fifth paragraph of pre-AIA 35 U.S.C. 112], a claim in dependent form shall contain a reference to a claim previously set forth and then specify a further limitation of the subject matter claimed. A claim in dependent form shall be construed to incorporate by reference all the limitations of the claim to which it refers.
Claims 6-9 are rejected under 35 U.S.C. 112(d) or pre-AIA 35 U.S.C. 112, 4th paragraph, as being of improper dependent form for failing to further limit the subject matter of the claim upon which it depends, or for failing to include all the limitations of the claim upon which it depends. Applicant may cancel the claim(s), amend the claim(s) to place the claim(s) in proper dependent form, rewrite the claim(s) in independent form, or present a sufficient showing that the dependent claim(s) complies with the statutory requirements.
As to claims 6-9, all limitations of these claims are contingent limitations because they all further describe the contingent step of “formatting the error message to indicate the generic template code error” of method claim 1. Under the broadest reasonable interpretation, contingent steps are not required by the claim. See M.P.E.P. § 2111.04(II). Thus, under the broadest reasonable interpretation, claims 6-9 do not further limit their respective parent claims.
To address this issue, examiner suggests perhaps amending claim 1 to require generating both a first error message for a first error in the custom code section and a second error message for a second error in the template code section.
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 a judicial exception without significantly more.
As to claim 1, the claim recites:
a computer-implemented method, comprising:
obtaining a stack trace associated with an error detected in connection with execution of a computer program by a processor;
determining a location of the error within source code of the computer program based on the stack trace, wherein the source code contains a template code section and a custom code section;
generating an error message for the error, wherein the generating includes:
in response to determining that the error is located in the custom code section, appending a first representation of the stack trace to the error message; and
in response to determining that the error is located in the template code section, formatting the error message to indicate a generic template code error, and
presenting the error message via a computing device.
Although a process is claimed (Step 1), under the broadest reasonable interpretation in light of the specification the above underlined elements recite a mental process because they describe a process performable by the human mind with aid of pen and paper. The claim therefore recites an abstract idea. (Step 2A Prong 1).
None of the additional elements integrate the judicial exception into a practical application. (Step 2A Prong 2).
Reference to the method as “computer-implemented” and presenting the error message “via a computing device” only amounts to mere instructions to implement the abstract idea on a computer. See M.P.E.P. § 2106.05(f).
Looking at the claim limitations as an ordered combination yields the same conclusion as that reached when looking at the elements individually. Their collective function is merely to implement the abstract idea using a generic computer.
The claim does not include additional elements that amount to significantly more than the judicial exception for substantially the same reasons discussed above with respect to a practical application. (Step 2B).
As to claims 2-4, and 6-10, the features of these claims do not integrate the abstract idea into a practical application or amount to significantly more at least because they only further describe steps performable by the human mind with aid of pen and paper and therefore only further describe the abstract idea itself.
As to claim 5¸ the features of this claim do not integrate the abstract idea into a practical application or amount to significantly more at least because storing the information recited in memory is only a nominal or tangential addition to the claims, i.e., extra-solution activity. Storing information in memory is also recognized by courts as well-understood, routine and conventional. See M.P.E.P. §2106.05(d)(II).
As to claim 11, the claim recites the same abstract idea as claim 1 and does not include additional elements that integrate abstract idea into a practical application or amount to significantly more than the abstract idea for substantially the same reasons. The addition of “a processor, a memory coupled to the processor, the memory storing processor-executable instructions that, when executed by the processor, configure the processor to” perform the operations only amounts to mere instructions to implement this step of the abstract idea using a generic computer. See M.P.E.P. § 2106.05(f).
As to claims 12-19, the features of this claim do not integrate the abstract idea into a practical application or amount to significantly more for reasons substantially the same as those set forth above with respect to claims 2-3 and 5-10.
As to claim 20, the claim recites the same abstract idea as claim 1 and does not include additional elements that integrate abstract idea into a practical application or amount to significantly more than the abstract idea for substantially the same reasons. The addition of “a non-transitory, computer-readable medium storing instructions that, when executed by a processor, configure the processor to” perform the steps only amounts to mere instructions to implement this step of the abstract idea using a generic computer. See M.P.E.P. § 2106.05(f).
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, 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, 11 and 20 are rejected under 35 U.S.C. 103 as being unpatentable over Antony “A Deep Dive into Flask Templates” (art made of record – hereinafter Antony) in view of Brunkhorst et al. (US 2012/0284698) (art made of record – hereinafter Brunkhorst) and Poudel “Hacking the Debugging Pin of a Flash Application” (art made of record – hereinafter Poudel).
As to claim 1, Antony discloses a computer-implemented method, comprising:
obtaining a stack trace associated with an error detected in connection with execution of a computer program by a processor; (e.g., Antony, p. 28 “Template testing and debugging…Interactive debugger”: Flash ships with an interactive debugger called Werkzeug. If an unhandled exception occurs when a template is being rendered, the debugger prints a stack trace pinpointing the cause of the issue)
wherein the source code contains a template code section and a custom code section; (e.g., Antony, p. 4, “An Introduction to Flask Templates”: one of the key features of Flash is its powerful templating engine, which enables us to separate the presentation logic from the application logic in our web applications. Flask templates are built on the Jinja2 template engine. They enable us to create interactive web pages by combining HTML [template code section] and Python code [custom code section])
generating an error message for the error, (see below) wherein the generating includes:
in response to determining that the error is located in the template code section, formatting the error message to indicate a generic template code error, (e.g., Antony, p 28 “Template testing and debugging”: Flask ships with an interactive debugger called Werkzeug. If an unhandled exception occurs when a template is being rendered, the debugger is automatically activated in the browser and prints a stack trace pinpointing the cause of the issue [generic at least because it is applicable to any template error and not limited to specific template errors]) and
presenting the error message via a computing device. (e.g., Antony, p 28 “Template testing and debugging”: The debugger prints a stack trace pinpointing the cause of the issue).
Antony does not explicitly disclose determining a location of the error within source code of the computer program based on the stack trace, or in response to determining that the error is located in the custom code section, appending a first representation of the stack trace to the error message.
However, in an analogous art, Brunkhorst discloses:
determining a location of the error within source code of the computer program based on the stack trace, (e.g., Brunkhorst, par. [0030]: the stack storage area 214 may store one or more thread stacks that support operation of applications. A thread stack may be analyzed to identify code sections of interest associated with detected errors; par. [0055]: stack analysis may be used to identify application code sections and locations of errors that have been detected).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify to modify the debugging and stack trace of Antony, to include determining a location of the error within source code of the computer program based on the stack trace, as taught by Brunkhorst, as Brunkhorst would provide the advantage of a means of determining a debug entry point of the error. (See Brunkhorst, par. [0052]).
Further, in an analogous art, Poudel discloses:
in response to determining that the error is located in the custom code section, appending a first representation of the stack trace to the error message (e.g., Poudel, p. 1 last 2 lines and figure on following page: typically, an error looks like this in your application if you have debugger mode active [see figure, the error message includes a traceback (stack trace) and the last entry of the traceback indicates the error is in test.py, a python file (custom code section)]).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify to modify the debugging and stack trace of Antony, to include in response to determining that the error is located in the custom code section, appending a first representation of the stack trace to the error message, as taught by Poudel, as Poudel would provide the advantage of a means of identifying the location of a custom code bug. (See Poudel, p. 2 first figure).
As to claim 11, it is system claim having limitations substantially the same as those of claim 1. Accordingly, it is rejected for substantially the same reasons. Further limitations, disclosed by Brunkhorst include:
a computing system, (see immediately below) comprising:
a processor; (see immediately below)
a memory coupled to the processor, the memory storing processor-executable instructions that, when executed by the processor configure the processor to perform the method (e.g., Brunkhorst, par. [0076]: computer program instructions may be provided to a processor of a computer, such that the instructions, which execute via the processor of the computer, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks; par. [0077]: these instructions may be stored in a computer-readable medium; par. [0072]: examples of a computer readable storage medium would include random access memory).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify the method of Antony, to include a computer system comprising a processor and a memory coupled to the processor, storing processor-executable instructions that, executed by the processor configure the processor to perform the process, as taught by Brunkhorst, as Brunkhorst would provide the advantage of a means of performing the process automatically on a general purpose computer. (See Brunkhorst, par. [0076]). Antony also suggests the combination because Antony describes software, which is necessarily stored in memory and executed via a processor.
As to claim 20, it is medium claim having limitations substantially the same as those of claim 1. Accordingly, it is rejected for substantially the same reasons. Further limitations, disclosed by Brunkhorst include:
a non-transitory, computer-readable medium storing instructions that, when executed by a processor, configure the processor to perform the method (e.g., Brunkhorst, par. [0076]: computer program instructions may be provided to a processor of a computer, such that the instructions, which execute via the processor of the computer, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks; par. [0077]: these instructions may be stored in a computer-readable medium; par. [0072]: examples of a computer readable storage medium would include random access memory).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify the method of Antony, to include a non-transitory, computer-readable medium storing instructions that, when executed by a processor, configure the processor to perform the method, as taught by Brunkhorst, as Brunkhorst would provide the advantage of a means of performing the process automatically on a general purpose computer. (See Brunkhorst, par. [0076]). Antony also suggests the combination because Antony describes software, which is necessarily stored in a non-transitory medium and executed via a processor.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure. In particular, the Johnson document is cited because it describes presenting a stack trace for template errors at pp. 10 and 14.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to TODD AGUILERA whose telephone number is (571)270-5186. The examiner can normally be reached M-F 11AM - 7:30PM EST.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Hyung S Sough can be reached at (571)272-6799. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/TODD AGUILERA/Primary Examiner, Art Unit 2192