DETAILED ACTION
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 .
Status of Claims
Claims 1-20 are pending of which claims 1, 8 and 15 are in independent form.
Claims 3-4, and 9-11 objected to.
Claims 2 and 12 are rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph.
Claims 1, 2, 5-8, and 12-20 are rejected under 35 U.S.C. 103.
Examiner’s Note
Claims 1, 8 and 15 are not directed to an abstract idea because, when considered as a whole, the claims recite specific technological implementation for performing regular expression matching rather than merely using a computer to analyze or organize information. In particular, the claims require identifying portions of text without utilizing a RegEx engine and selective utilizing the RegEx engine to identify other portions of text without providing previously identified portions to the engine, with claims 1 and 8 further reciting decomposition of a pattern component into specified subcomponents. These limitations define a particular manner of performing computer based pattern matching and reflect and improvement in computer functionality rather than simply applying an abstract idea using a generic computer. Accordingly, claims 1, 8, and 15 do not warrant rejection under 35 USC 101.
Claim Rejections - 35 USC § 112
The following is a quotation of 35 U.S.C. 112(b):
(b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention.
The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph:
The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention.
Claims 2 and 12 are rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor (or for applications subject to pre-AIA 35 U.S.C. 112, the applicant), regards as the invention.
Regarding claims 2 and 12, the claims recite “the second pattern component”; however, there is insufficient antecedent basis for this limitation. Claim 1, from which claim 2 depends, recites decomposing the first pattern components into “a first pattern subcomponent, a third literal component, and a second pattern subcomponent”, but does not recite a “second pattern component”. Accordingly, it is unclear whether the recited “second pattern components” is intended to refer to previously recited “second pattern subcomponents” or to a different component.
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-20 are rejected on the ground of nonstatutory double patenting as being unpatentable over claims 1=2- of U.S. Patent No. US 12481721 B2. Although the claims at issue are not identical, they are not patentably distinct from each other.
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(s) 1, 2, 5, 6, 8, 12-20 are rejected under 35 U.S.C. 103 as being unpatentable over Cruanes; Thierry et al. (US 20230084069 A1) [Cruanes] in view of Sofer; Oded et al. (US 20210365802 A1) [Sofer].
Regarding claims 1, 8 and 15, Cruanes discloses, a system, comprising: a processor circuit; and a memory that stores program code structured to cause the processor circuit (See Fig. 1) to:
determine a first literal component in a regular expression; determine a second literal component subsequent to the first literal component in the regular expression (A query directed at a source table organized into a set of batch units is received. The query comprises a regular expression search pattern. The regular expression search pattern is converted to a pruning index predicate comprising a set of substring literals extracted from the regular expression search pattern. A set of N-grams is generated based on the set of substring literals extracted from the regular expression search pattern [Abstract]. Also see ¶ [0031], [0032], Also see ¶ [0033]-[0034], [0142], [0145], [0150]-[0152], [0167]. [0168]);
determine a first pattern component subsequent to the first literal component and prior to the second literal component in the regular expression (regular expression search pattern ¶ [0032]-[0036]. A regular expression search pattern comprises a sequence of characters in which each character is either a literal character or a metacharacter with special meaning ¶ [0141], [0144]-[0145], [0162]. Character class, metacharacters and bracket expression maybe interpreted as pattern component);
decompose the first pattern component into a first pattern subcomponent, a third literal component, and a second pattern subcomponent (At operation 1205, the compute service manager 108 decomposes a data item into multiple segments ¶ [0132]. The compute service manager 108 splits the search pattern into segments at the wild card positions ¶ [0115]);
identify without utilizing a regular expression engine: a first portion of text in first data that matches the first literal component (At operation 1305, the compute service manager 108 converts the regular expression search pattern to a pruning index predicate comprising a set of substring literals extracted from the regular expression search pattern. Each substring literal corresponds to a portion of a string of literal characters specified by the regular expression search pattern ¶ [0142], [0149]. Also see [Abstract], ¶ [0031], [0145]-[0146]. At operation 1320, the compute service manager 108 uses the set of N-grams generated based on the set of substring literals extracted from the regular expression search pattern to identify a subset of micro-portions of the source table to scan based on the pruning index. The compute service manager 108 may identify the subset of micro-partitions by comparing the set of fingerprints to values included in the pruning index (e.g., fingerprints of stored data values in the source table), and identifying one or more values in the pruning index that match one or more fingerprints in the set of fingerprints generated based on the N-grams of the search pattern ¶ [0150]-[0152], [0167]),
a second portion of text in the first data subsequent to the first portion of text that matches the second literal component (Each of the pruning index predicates corresponds to a substring literal extracted from the regular expression search pattern (e.g., a portion of a string included in the regular expression search pattern) ¶ [0031], [0142]. Also see [Abstract], ¶ [0145]-[0146]), and
a third portion of text in the first data subsequent to the first portion of text and prior to the second portion of text that matches the third literal component (At operation 1320, the compute service manager 108 uses the set of N-grams generated based on the set of substring literals extracted from the regular expression search pattern to identify a subset of micro-portions of the source table to scan based on the pruning index. The compute service manager 108 may identify the subset of micro-partitions by comparing the set of fingerprints to values included in the pruning index (e.g., fingerprints of stored data values in the source table), and identifying one or more values in the pruning index that match one or more fingerprints in the set of fingerprints generated based on the N-grams of the search pattern ¶ [0150]-[0152], [0167]);
However, Cruanes does not explicitly facilitate utilize the regular expression engine, without providing the first portion of text, the second portion of text, and the third portion of text to the regular expression engine, to identify: a fourth portion of text subsequent to the first portion of text and prior to the third portion of text that matches the first pattern subcomponent, and a fifth portion of text subsequent to the third portion of text and prior to the second portion of text that matches the second pattern subcomponent.
Sofer discloses, utilize the regular expression engine, without providing the first portion of text, the second portion of text, and the third portion of text to the regular expression engine, to identify: a fourth portion of text subsequent to the first portion of text and prior to the third portion of text that matches the first pattern subcomponent, and a fifth portion of text subsequent to the third portion of text and prior to the second portion of text that matches the second pattern subcomponent (According to embodiments of the invention, a system and method for optimizing execution of regular expressions, each comprising a plurality of sections, may include: executing, by a processor, the sections against a data sample; measuring, by a processor, a probability of matches for each section in a data sample, and the processing time of every section; and finding, by a processor, an order of executing the regular expressions to minimize the total run time, according to the probability of each of the sections, the processing time of each of the sections, and the number of regular expression rules that include each of the sections ¶ [0015]; also see ¶ [0035], [0039]-[0041], [0051], [0053], [0056]).
It would have been obvious to one ordinary skilled in the art at the time of the present invention to combine the teachings of the cited references because Sofer's system would have allowed Cruanes to facilitate utilize the regular expression engine, without providing the first portion of text, the second portion of text, and the third portion of text to the regular expression engine, to identify: a fourth portion of text subsequent to the first portion of text and prior to the third portion of text that matches the first pattern subcomponent, and a fifth portion of text subsequent to the third portion of text and prior to the second portion of text that matches the second pattern subcomponent. The motivation to combine is apparent in Cruanes' reference, because there is a need to improve classifying data in a computerized or digital database, and specifically to classifying data in a database by regular expression rules.
Regarding claims 2 and 16, the combination of Cruanes, and Sofer discloses, wherein to decompose the first pattern component, the program code is further structured to cause the processor circuit to: identify a portion of the first pattern component as the third literal component, the third literal component subsequent to the first pattern subcomponent and prior to the second pattern component in the regular expression (Cruanes: At operation 1205, the compute service manager 108 decomposes a data item into multiple segments ¶ [0132]. The compute service manager 108 splits the search pattern into segments at the wild card positions ¶ [0115]).
Regarding claims 5 and 19, the combination of Cruanes, and Sofer discloses, generate a call comprising the fourth portion of text and the first pattern subcomponent; and provide the call to the regular expression engine, causing the regular expression engine to determine the fourth portion of text satisfies the first pattern subcomponent (Cruanes: To provide pruning index support to queries with regular expression predicates, the database system converts a regular expression search pattern to one or more pruning index predicates used to query the pruning index. Each of the pruning index predicates corresponds to a substring literal extracted from the regular expression search pattern (e.g., a portion of a string included in the regular expression search pattern). For some embodiments, the one or more pruning index predicates correspond to a Boolean expression of substring literals that must match a subject text from a source table. For some embodiments, the Boolean expression is represented as an expression tree, which is a tree data structure of pruning index predicates, each of which represents substring literals from the regular expression search pattern. The database system decomposes the substring literals into N-grams and uses the N-grams to search against the pruning index to prune partitions from the scan set. For some embodiments, prior to decomposing the substring literals into N-grams, the database system may perform one or more enhancements on the expression tree to optimize pruning functionality provided by the pruning index ¶ [0031]-[0036]; also see ¶ [0145]-[0146], [0150]-[0152], [0155]).
Regarding claims 6, the combination of Cruanes, and Sofer discloses, determine the fifth portion of text satisfies the second pattern subcomponent (Cruanes: The result of converting the regular expression search pattern to the pruning index predicate may be a simple sequence of substrings (e.g., separated by “%”) or a complex predicate composed of AND and OR predicates if the regular expression search pattern comprises ‘|’ or ‘[ ]’ metacharacters. As an example of the latter, the regular expression ‘str1(str2|str3)str4’ can be converted to LI(‘str1’) AND (LI(‘str2’) OR LI(‘str3’)) AND LI(‘str4’). Accordingly, in converting the regular expression search pattern to the pruning index predicate, the compute service manager 108 may, in some instances, convert the regular expression search pattern to a Boolean expression of substring literals, which, for some embodiments, is represented by an expression tree generated by the computer service manager 108 based on the regular expression search pattern, as will be discussed in further detail below. Additional examples for converting the regular search pattern to a pruning index predicate are provided below in reference to TABLE 3 ¶ [0145]-[0146], [0150]-[0152]).
Regarding claims 12 and 18, the combination of Cruanes, and Sofer discloses, identifying a portion of the first pattern component as the third literal component, the third literal component subsequent to the first pattern subcomponent and prior to the second pattern component in the regular expression (Cruanes: At operation 1205, the compute service manager 108 decomposes a data item into multiple segments ¶ [0132]. The compute service manager 108 splits the search pattern into segments at the wild card positions ¶ [0115]).
Regarding claims 13 and 20, the combination of Cruanes, and Sofer discloses, attempting to identify the third portion of text utilizing string matching based on the third literal component (Cruanes: At operation 1320, the compute service manager 108 uses the set of N-grams generated based on the set of substring literals extracted from the regular expression search pattern to identify a subset of micro-portions of the source table to scan based on the pruning index. The compute service manager 108 may identify the subset of micro-partitions by comparing the set of fingerprints to values included in the pruning index (e.g., fingerprints of stored data values in the source table), and identifying one or more values in the pruning index that match one or more fingerprints in the set of fingerprints generated based on the N-grams of the search pattern ¶ [0150]-[0152], [0167]).
Regarding claims 14, the combination of Cruanes, and Sofer discloses, attempting to identify the third portion of text utilizing string matching based on the third literal component (Cruanes: Pruning index support for regular expression search, specifically, enables pruning of table partitions that cannot match the regular expression pattern, potentially achieving significant speedups compared to the conventional approaches that require a full table scan to run a possibly expensive regular expression match against a subject text in all rows of a table ¶ [0042]. In addition, the compute service manager 108 may remove a node based on a length of the corresponding substring failing to satisfy a length constraint ¶ [0162])
Regarding claims 17, the combination of Cruanes, and Sofer discloses, determining a third pattern component subsequent to the first literal component in the regular expression; and decomposing the third pattern component into the first pattern component, the second literal component, and the second pattern component (Cruanes: At operation 1205, the compute service manager 108 decomposes a data item into multiple segments ¶ [0132]. The compute service manager 108 splits the search pattern into segments at the wild card positions ¶ [0115]).
Claim(s) 7 is rejected under 35 U.S.C. 103 as being unpatentable over Cruanes; Thierry et al. (US 20230084069 A1) [Cruanes] in view of HUANG; Zicheng et al. (US 20200117742 A1) [Huang] in view of Sofer; Oded et al. (US 20210365802 A1) [Sofer].
Regarding claims 7, the combination of Cruanes, and Sofer teaches all the limitations of claim 1.
However, neither Cruanes, nor Sofer explicitly facilitate receive, from the regular expression engine, a response indicating a first location of the fourth portion of text in the first data and a second location of the fifth portion of text in the first data.
Huang discloses, receive, from the regular expression engine, a response indicating a first location of the fourth portion of text in the first data and a second location of the fifth portion of text in the first data ( The capture table specifies capture entries that are decodable for tracking position information for a sequence of characters of the data stream matching a capture sub-expression of the regular expression ¶ [0011]-[0013]).
It would have been obvious to one ordinary skilled in the art at the time of the present invention to combine the teachings of the cited references because Huang's system would have allowed Cruanes and Sofer to facilitate receive, from the regular expression engine, a response indicating a first location of the fourth portion of text in the first data and a second location of the fifth portion of text in the first data.. The motivation to combine is apparent in the Cruanes and Sofer's reference, because there is a need to improve dynamically suppress a candidate query answer designated for inclusion in search results includes instantiating a plurality of filtering rules for assessing suppression of a candidate query answer.
Allowable Subject Matter
Claims 3-4, and 9-11 objected to as being dependent upon a rejected base claim, but would be allowable if rewritten in independent form including all of the limitations of the base claim and any intervening claims.
Conclusion
The examiner requests, in response to this Office action, support be shown for language added to any original claims on amendment and any new claims. That is, indicate support for newly added claim language by specifically pointing to page(s) and line no(s) in the specification and/or drawing figure(s). This will assist the examiner in prosecuting the application.
When responding to this office action, Applicant is advised to clearly point out the patentable novelty which he or she thinks the claims present, in view of the state of the art disclosed by the references cited or the objections made. He or she must also show how the amendments avoid such references or objections See 37 CFR 1.111(c).
Any inquiry concerning this communication or earlier communications from the examiner should be directed to MOHAMMAD S ROSTAMI whose telephone number is (571)270-1980. The examiner can normally be reached Mon-Fri From 9 a.m. to 5 p.m..
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, Boris Gorney can be reached at (571)270-5626. 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.
8/21/2026
/MOHAMMAD S ROSTAMI/ Primary Examiner, Art Unit 2154