Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
DETAILED ACTION
This action is in response to the communication filed on 04/01/2024.
Claims 1-20 are pending and addressed in the Action.
Double Patenting
The nonstatutory double patenting rejection is based on a judicially created doctrine grounded in public policy (a policy reflected in the statute) so as to prevent the unjustified or improper timewise extension of the “right to exclude” granted by a patent and to prevent possible harassment by multiple assignees. A nonstatutory double patenting rejection is appropriate where the conflicting claims are not identical, but at least one examined application claim is not patentably distinct from the reference claim(s) because the examined application claim is either anticipated by, or would have been obvious over, the reference claim(s). See, e.g., In re Berg, 140 F.3d 1428, 46 USPQ2d 1226 (Fed. Cir. 1998); In re Goodman, 11 F.3d 1046, 29 USPQ2d 2010 (Fed. Cir. 1993); In re Longi, 759 F.2d 887, 225 USPQ 645 (Fed. Cir. 1985); In re Van Ornum, 686 F.2d 937, 214 USPQ 761 (CCPA 1982); In re Vogel, 422 F.2d 438, 164 USPQ 619 (CCPA 1970); In re Thorington, 418 F.2d 528, 163 USPQ 644 (CCPA 1969).
A timely filed terminal disclaimer in compliance with 37 CFR 1.321(c) or 1.321(d) may be used to overcome an actual or provisional rejection based on nonstatutory double patenting provided the reference application or patent either is shown to be commonly owned with the examined application, or claims an invention made as a result of activities undertaken within the scope of a joint research agreement. See MPEP § 717.02 for applications subject to examination under the first inventor to file provisions of the AIA as explained in MPEP § 2159. See MPEP § 2146 et seq. for applications not subject to examination under the first inventor to file provisions of the AIA . A terminal disclaimer must be signed in compliance with 37 CFR 1.321(b).
The filing of a terminal disclaimer by itself is not a complete reply to a nonstatutory double patenting (NSDP) rejection. A complete reply requires that the terminal disclaimer be accompanied by a reply requesting reconsideration of the prior Office action. Even where the NSDP rejection is provisional the reply must be complete. See MPEP § 804, subsection I.B.1. For a reply to a non-final Office action, see 37 CFR 1.111(a). For a reply to final Office action, see 37 CFR 1.113(c). A request for reconsideration while not provided for in 37 CFR 1.113(c) may be filed after final for consideration. See MPEP §§ 706.07(e) and 714.13.
The USPTO Internet website contains terminal disclaimer forms which may be used. Please visit www.uspto.gov/patent/patents-forms. The actual filing date of the application in which the form is filed determines what form (e.g., PTO/SB/25, PTO/SB/26, PTO/AIA /25, or PTO/AIA /26) should be used. A web-based eTerminal Disclaimer may be filled out completely online using web-screens. An eTerminal Disclaimer that meets all requirements is auto-processed and approved immediately upon submission. For more information about eTerminal Disclaimers, refer to www.uspto.gov/patents/apply/applying-online/eterminal-disclaimer.
Claims 1, 11, 16 are provisionally rejected on the ground of nonstatutory double patenting as being unpatentable over claims 1-20 of copending Application No. 18/517,395 (reference application: Pat. Pub. No. US20250165229A1, submitted in IDS dated 07/02/2025). Although the claims at issue are not identical, they are not patentably distinct from each other because:
Current Application
App. 18/517,395 (Pat. Pub US20250165229A1)
1. A computer-implemented method comprising:
receiving computer program instructions for execution by a machine, the computer program instructions being defined using a predetermined syntax, the computer program instructions comprising an
expression to access a variable having a plurality of fields, the expression comprising a special symbol sequence to reference a field of the variable based on the expression, the special symbol sequence comprising a special symbol followed by an ordinal number indicating a position within the expression, the special symbol sequence enabling selecting fields from the variable without specifying a name of a selected field of the variable;
executing, by the machine, the computer program instructions; and
causing presentation on a computer display of a result from executing the computer program instructions.
1. A computer-implemented method comprising:
receiving computer program instructions for execution by a machine, the computer program instructions being defined using a predetermined syntax, the computer program instructions including
[4. The method as recited in claim 1, wherein the predetermined syntax comprises a special symbol sequence to reference fields within the input, the special symbol sequence enabling field selection without specifying a name of a selected field of the input.]
at least one pipe operation, wherein the pipe operation in the predetermined syntax includes passing an input to a function and the function returning an output equal to a transformation of the input performed by the function, wherein the predetermined syntax provides a character selector to identify a field in the input to transform a value of the field in the input, wherein the character selector enables identifying the field in the input without using a name of the input;
executing, by the machine, the computer program instructions; and
causing presentation on a computer display of a result from executing the computer program instructions.
- Claims 11 and 16 of current Application are directed to a system and a non-transitory a non-transitory machine-readable storage medium and they recite the limitations having functionality corresponding to the method of claim 1 above.
Therefore, it would be obvious to one of ordinary skills in the art before the effective filing of the invention to modify or to alter current claims (as seen in the compared table above) from the US patent claims for extending coverage, where double patenting rejection is applied because the patentably indistinct claims have not in fact been patented.
The claims in current application would overcome the double rejection if filing approved Terminal Disclaimer or amending the claims distinct from claims in its copending application.
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.
Claim 1-9, 11-20 are rejected under 35 U.S.C. 103 as being unpatentable over
Haverbeke, “Eloquent JavaScript”, Chapter 9: Regular Expression, 3rd edition 2018, Retrieve from https://eloquentjavascript.net/3rd_edition/Eloquent_JavaScript.pdf, pp. i-x, 143-166,
in view of Stack Overflow, “Regex101 vs JavaScript String.match disagreement”, 2017, retrieved from http://stackoverflow.com:80/questions/28920384/regex101-vs-javascript-string-match-disagreement/ , 2 pages.
As per Claim 1: Haverbeke discloses the limitations in bold as below:
1. A computer-implemented method comprising:
receiving computer program instructions for execution by a machine, the computer program instructions being defined using a predetermined syntax,
(See P. 143, in the third para., “Regular expressions are both terribly awkward and extremely useful. Their syntax is cryptic, and the programming interface JavaScript provides for them is clumsy. But they are a powerful tool for inspecting and processing strings.”. See in p. 164, the regular expressions. Reading ‘a predetermined syntax.’ Such as /abc/ - sequence of characters, or /x?/ - zero or one occurrence, etc.
See in p.150-151, in ‘Choice Patterns’, a JavaScript instruction:
* let animalCount = /\b\d+ (pig|cow|chicken)s?\b/;
console.log(animalCount.test("15 pigs"));
// → true
console.log(animalCount.test("15 pigchickens"));
// → false
Thus, in the JavaScript instructions, a chain of ‘predetermined syntaxes’ in regular expression: “\b\d+ (pig|cow|chicken)s?\b/”
See in p. 154:
** console.log("Liskov, Barbara\nMcCarthy, John\nWadler, Philip".replace(/(\w+), (\w+)/g, "$2 $1"));),
‘predetermined syntaxes’ in regular expression: “/(\w+), (\w+)/g, "$2 $1") ),
the computer program instructions comprising an expression to access a variable having a plurality of fields,
(per above * : expression /\b\d+ (pig|cow|chicken)s?\b/; accessed to a variable ‘ (pig|cow|chicken), in this manner fields are pig|cow|chicken)
the expression comprising a special symbol sequence to reference a field of the variable based on the expression,
(per above * with expression /\b\d+ (pig|cow|chicken)s?\b/; : \b\d+ ..\b/ is special symbol sequence used to reference ‘pig|cow|chicken’ )
the special symbol sequence comprising a special symbol followed by an ordinal number indicating a position within the expression,
(per above * with / \b\d+ ..\b/ is special symbol sequence , \b ..\b/ indicate boundaries , start /end: See in p. 164 : / \ b/ A word boundary.
In this manner the sequence reads ordinal number as the word boundary:
The above * is an expression used to express a matching method.
The expression might include various methods/operations
See in p. 158: using The LastIndex Property:
“The exec method similarly does not provide a convenient way to start searching from a given position in the string. But it does provide an inconvenient way. Regular expression objects have properties.
Per above ** , expression /(\w+), (\w+)/g, "$2 $1")); the fields are separated by the comma for defining replacing method console. log("Liskov, Barbara\nMcCarthy, John\nWadler, Philip".replace(/(\w+), (\w+)/g, "$2 $1"));
it includes $1 or $2 ordinal numbers in expression for replacing positions first or second, the fields in the expression) )
the special symbol sequence enabling selecting fields from the variable without specifying a name of a selected field of the variable;
[executing, by the machine, the computer program instructions; and
causing presentation on a computer display of a result from executing the computer program instructions.]
(with regards to the limitations above; per above * : expression /\b\d+ (pig|cow|chicken)s?\b/;
Within p. 150-151: last line in 150 console.log(animalCount.test("15 pigs")); when expression is applied in the “15 pigs”, it matches the field pig s? within a word boundary of the expression; the execution return true/
Second line in 151: log(animalCount.test("15 pigchickens"));") ; when expression is applied in the “15 pigchickens”, it cannot find wthin a word boundary of either filed in the expression; the execution return false)
Haverbeke does not explicitly show the limitations of:
“executing, by the machine, the computer program instructions; and
causing presentation on a computer display of a result from executing the computer program instructions.”
Stack Overflow discloses the limitation of
“executing, by the machine, the computer program instructions; and
causing presentation on a computer display of a result from executing the computer program instructions.”
(Stack Overflow: See the framework in p. 1 with the execution of match method for select \w words in {} of the string and to display the matching results in the Chrome console the words in the string include )
It has been known that all programming languages could be implemented in an GUI, that allows the instruction to compile and to execute. Displaying is a necessity employed to visualize the results of the execution and thus helps to understand the semantic of the instructions or to debug the code.
Therefore, it would be obvious to an ordinary of skills in the art before the effective filing of the application to combine the analysis of operations in the programing instruction with predetermined syntax of Haverbeke with the execution and display the passing result of the operation in Stack Overflow. The combination would yield predictable results because displaying results part of coding for visualizing and understanding the instruction operations.
As per Claim 2: Incorporating claim 1 with Haverbeke and Stack Overflow in combining,
where Haverbeke further discloses:
2. The method as recited in claim 1, wherein the expression comprises an anchoring sequence for referencing a field of the variable based on the expression,
(per above * , the expression /\b\d+ (pig|cow|chicken)s?\b/ ; \b is an anchor referenced for boundary of pig/cow/chicken.
Per above **, $ is and anchor where $1 first field, and $2 second field).
the anchoring sequence being a fixed text sequence, wherein the anchoring sequence refers to the field in the expression having a highest ordinal number before the anchoring sequence.
(per above ** in claim 1, “$2 $1” is a fixed text sequence to replace method for “Liskov, Barbara\nMcCarthy, John\nWadler, Philip” referred to fields /(\w+), (\w+)/.
See para. below the console.log in p. 154 “The $1 and $2 in the replacement string refer to the parenthesized groups in the pattern. $1 is replaced by the text that matched against the first group, $2 by the second, and so on, up to $9. The whole match can be referred to with$&.”
Thus, it is the choice of user to draft the expressions. In this replacement method the anchor $ allows highest ordinal number is the nineth )
As per Claim 3: Incorporating claim 2 with Haverbeke and Stack Overflow in combining,
where Haverbeke further discloses:
3. The method as recited in claim 2, wherein the expression includes a first anchoring sequence and a second anchoring sequence, wherein the first anchoring sequence and the second anchoring sequence have a same name but refer to different fields of the variable.
(per above ** in claim 1, for replacement method $1 for first field and $2 for second field, and the anchor is the same with “$”)
As per Claim 4: Incorporating claim 1 with Haverbeke and Stack Overflow in combining,
where Haverbeke further discloses:
4. The method as recited in claim 1, wherein the expression comprises a pipe operation (Interpreting pipe operation as a chain of operations. In programming, ‘pipe operation’ is of the operations that pass data sequentially. In p. 150 second para., the para. below ‘Choice patterns’ : “The pipe character ( | ) denotes a choice between the pattern to its left and the pattern to its right.” ),
wherein the pipe operation passes an input to a function that returns an output equal to a transformation of the input performed by the function.
(per above * in claim 1, it shows a passing input to method “test” as “15 pigs”, and according the ‘test’, it requires a match of either pig, cow, or chicken with \s?\b if found in the variable “15 pigs”. The return is “true” as the requirement of the ‘test’. It could be understood as the transformation of “pig” field has been output from the string variable ‘animalCount’ applied in dot notation with test( “15 pigs” ) in the pipe operator ‘ | ’. It should be noted that in JavaScript, there are various string operations, the ‘|’ is only among the pipe operators.)
As per Claim 5: Incorporating claim 4 with Haverbeke and Stack Overflow in combining,
where Haverbeke further discloses:
5. The method as recited in claim 4, wherein the output is equal to one of the input, the input after one or more values in the input are modified, or a selection of all or part of the input.
(See in p.155, the JavaScript instructions with the operation of string s in ‘a small example’:
*** let s = “the cia and fbi” ;
console.log(s.replace(/\b(fbi|cia)\b/g, str => str.toUpperCase()));
Pipe operation is fbi|cia. The cia and fbi are returned as the outputs in the method s.replace, and they become the inputs for the string operation .toUpperCase() within the same instruction to become uppercase words).
As per Claim 6: Incorporating claim 1 with Haverbeke and Stack Overflow in combining,
where Haverbeke further discloses:
6. The method as recited in claim 4, wherein the expression comprises a chain of several pipe operations, where each function associated with a respective pipe operation receives the input after the input is transformed by a previous function in the chain.
(Per above * in claim 1, with (pig|cow|chicken), has two pipe operations. Note: it could be more pipe operations depending on the user draft choice)
As per Claim 7: Incorporating claim 1 with Haverbeke and Stack Overflow in combining,
where Haverbeke further discloses:
7. The method as recited in claim 1, wherein the expression comprises a select and transform operation that selects a field of the variable and assigns a new value to the selected field of the variable.
(Per above *** as in claim 5, with (cia|fbi), selection of cia or fbi is in “s = "the cia and fbi"”, transformed in to uppercase letters )
As per Claim 8: Incorporating claim 1 with Haverbeke and Stack Overflow in combining,
where Haverbeke further discloses:
8. The method as recited in claim 1, wherein the expression includes a condition to select one or more fields from the variable based on the condition.
(Per above * in claim 1, it is within the expression to include, ….\d+ (pig|cow|chicken)s?... The symbol “ | ” expresses the condition selection of pip or cow or chicken that is matched. If matched, result // → true, if not matched, result // → false )
As per Claim 9: Haverbeke and combining Stack Overflow,
Haverbeke does not discloses limitations in italics below;
9. The method as recited in claim 1, further comprising:
providing a user interface (UI) to enter the expression.
Stack Overflow discloses limitations of “providing a user interface (UI) to enter the computer program instructions.” (Stack Overflow: See the screenshot Chrome console in p.1).
Therefore, it would be obvious to an ordinary of skills in the art before the effective filing of the application to further combine a user interface as the Chrome console in Stack Overflow and the JavaScript instructions with expression operations of Haverbeke, The combination would yield predictable results because UI is part computer program developments for helping programmer to ease code generation.
As per claims 11-15: The claims are directed to a system and recite the limitations having functionality corresponding to the method of claims 1-5 above. The claims are rejected with the same rationales addressed in claims 1-5.
As per claims 16-20: The claims are directed to a non-transitory machine-readable storage medium and recite the limitations having functionality corresponding to the method of claims 1-5 above. The claims are rejected with the same rationales addressed in claims 1-5.
Claim 10 is rejected under 35 U.S.C. 103 as being unpatentable over
Haverbeke, “Eloquent JavaScript”, Chapter 9: Regular Expression, 3rd edition 2018, Retrieve from https://eloquentjavascript.net/3rd_edition/Eloquent_JavaScript.pdf, pp. i-x, 143-166,
in view of Stack Overflow, “Regex101 vs JavaScript String.match disagreement”, 2017, retrieved from http://stackoverflow.com:80/questions/28920384/regex101-vs-javascript-string-match-disagreement/ , 2 pages, and in further view of Bowman et at., US Patent No. US 12,073,457 B1.
As per Claim 10: Incorporating claim 1 with Haverbeke and Stack Overflow in combining, Stack Overflow in the manner of claim 9, discloses UI for displaying, but does not discloses the limitations in italics below :
10. The method as recited in claim 9, wherein [the UI includes an option for entering a filter and fields for entering values for the filter].
Bowman discloses the limitations of
“the UI includes an option for entering a filter and fields for entering values for the filter” (Bowman: See abstract : “Each UI element is further configured to perform a second action comprising filtering the other information screen using one of the set of filter responses.”. In Col. 8, line 67 to Col. 9, line 2: “A filter response can be a query, search string, regular expression, image, sound, or other type of data as would be appreciated by a person of ordinary skill in the art.”)
Filter element is common in programing using UI, since it is only a code that make conditions to exclude certain features, texts etc.
Therefore, it would be obvious to an ordinary of skills in the art before the effective filing of the application to include a UI elements as of the string expression in the teaching of Bowman with the UI interface of a Chrome console of Stack Overflow, which is combined Haverbeke. The combination would yield predictable results because it helps the user to exclude displaying results that not required or unwanted, where the fillers are available in every programming language and the user would be selected for use.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to Ted T Vo whose telephone number is (571)272-3706. The examiner can normally be reached 8am-4:30pm ET.
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, Wei Y Mui can be reached at (571) 272-3708. 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.
TTV
February 6, 2026
/Ted T. Vo/
Primary Examiner, Art Unit 2191