Prosecution Insights
Last updated: October 02, 2026
Application No. 18/497,799

APPLICATION PROGRAMMING INTERFACE OBFUSCATION SYSTEMS AND METHODS

Non-Final OA §103§DOUBLEPATENT
Filed
Oct 30, 2023
Priority
Oct 14, 2021 — continuation of 11/829,812
Examiner
SEYE, ABDOU K
Art Unit
2198
Tech Center
2100 — Computer Architecture & Software
Assignee
Boost SubscriberCo LLC
OA Round
3 (Non-Final)
83%
Grant Probability
Favorable
3-4
OA Rounds
4m
Est. Remaining
99%
With Interview

Examiner Intelligence

Grants 83% — above average
83%
Career Allowance Rate
492 granted / 595 resolved
+27.7% vs TC avg
Strong +27% interview lift
Without
With
+27.0%
Interview Lift
resolved cases with interview
Typical timeline
3y 3m
Avg Prosecution
19 currently pending
Career history
629
Total Applications
across all art units

Statute-Specific Performance

§101
20.2%
-19.8% vs TC avg
§103
58.0%
+18.0% vs TC avg
§102
2.7%
-37.3% vs TC avg
§112
13.0%
-27.0% vs TC avg
Black line = Tech Center average estimate • Based on career data from 595 resolved cases

Office Action

§103 §DOUBLEPATENT
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 . Continued Examination Under 37 CFR 1.114 A request for continued examination under 37 CFR 1.114, including the fee set forth in 37 CFR 1.17(e), was filed in this application after final rejection. Since this application is eligible for continued examination under 37 CFR 1.114, and the fee set forth in 37 CFR 1.17(e) has been timely paid, the finality of the previous Office action has been withdrawn pursuant to 37 CFR 1.114. Applicants’ submission filed on January 28, 2026, has been entered. Response to Amendment This Non-Final Office Action is in response to the applicant’s remarks and arguments filed on January 20, 2026. Claims 1, 8 and 15 were amended. Claims 1-20 remain pending in the application. Claims 1-20 are being considered on the merits. Response to Arguments Double Patenting Rejection Applicant argues that: “Claims 1-20 are rejected on the ground of non-statutory obviousness-type double patenting as being unpatentable over claim 1-15 of U.S. Patent No. 11,829,812. The Applicant elects not to file a terminal disclaimer at this time, but reserves the right to file a terminal disclaimer and/or traverse the double patenting rejections once the other substantive issues have been resolved.”. Examiner respectfully disagree and submit that: In view of the amendment and applicant’s remarks, the rejection of claims under the judicially created doctrine of double patenting, previously set forth in the Non-Final Office Action mailed on, 12/17/2025, has been maintained and reiterated below for applicant’s convenience. Response to the Section 103 Rejections Applicant argues that: “Claims 1-4, 9-11 and 16-18 are rejected under 35 U.S.C. 103 as being unpatentable over the combination of Gregoire, Chen, and Hornbeck. Applicant respectfully traverses these rejections and submits that the cited disclosure of Gregoire, Chen, and Hornbeck and Liu does not disclose all the elements of the claims at least as amended..”. selecting, from a polarization library, a second industry category that is distinct from the first industry category based on a similarity scale of the polarization library indicating one or more keywords associated with the second industry category are different from one or more keywords associated with the first industry category Examiner respectfully disagree and submit that: Gregoire teaches selecting a second industry category that is distinct from the first industry category based on one or more keywords associated with the second industry category being-are different from one or more keywords associated with the first industry category ( see rejection of claim 1 below) and Lawson et al (US 9,720,925) teaches a polarization library, selecting from the polarization library, based on a similarity scale of the polarization library indicating keywords (see rejection of claim1 below). Thus, 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 teachings of Gregoire with those of Lawson because both references are directed to related systems addressing similar technical problems within the same field and seek to improve system performance, reliability, and efficiency. Therefore Applicant’s arguments with respect to the newly added limitations have been considered but are moot because the arguments do not apply to the reference Gregoire et al (US 2006/0026114) and Lawson (US 9,720,925, Lawson hereinafter) being used in the current rejection. 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 §§ 706.02(l)(1) - 706.02(l)(3) 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 USPTO Internet website contains terminal disclaimer forms which may be used. Please visit www.uspto.gov/patent/patents-forms. The 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/process/file/efs/guidance/eTD-info-I.jsp. Claims 1-20 are rejected on the ground of nonstatutory obviousness-type double patenting as being unpatentable over claim 1-15 of U.S. Patent No. 11,829,812 in view of LIU et al (US 2020/0372088). Although the conflicting claims are not identical, they are not patentably distinct from each other. See below for a detail comparison and explanation: Current Application 18/497,799 U.S. Patent 11,829,812 1A method for obfuscating an application programming interface (API), the method comprising: identifying a first industry category for a root API; randomly selecting, from a polarization library, a website that is in a second industry category that is distinct from the first industry category; creating an obfuscator API with an API structure of the root API using website endpoints and website endpoint parameters from the website that match the API structure of the root API; and mapping the website endpoints of the obfuscator API to corresponding endpoints of the root API. selecting, from a polarization library, a second industry category that is distinct from the first industry category based on a similarity scale of the polarization library indicating one or more keywords associated with the second industry category being-are different from one or more keywords associated with the first industry category 1 A method for obfuscating an application programming interface (API), the method comprising: creating a polarization library, the polarization library including for each of a plurality of websites: website endpoints, corresponding website endpoint parameters, and assigned industry categories; extracting an API structure of a root API to be obfuscated, including root endpoints and corresponding root endpoint parameters; identifying a first industry category for the root API; selecting a website from the polarization library that is in an industry category that is distinct from the first industry category by randomly selecting a second industry category that is different than the first industry category; and creating an obfuscator API with the API structure using website endpoints and website endpoint parameters from the selected website that match the API structure of the root API. 5. The method of claim 1, further comprising mapping the endpoints of the obfuscator API to the corresponding matching of the root API. 2. The method of claim 1, further comprising: identifying website keywords contained in each of a plurality of websites; assigning an industry category to each of the plurality of websites based on corresponding identified website keywords; extracting website endpoints and corresponding website endpoint parameters associated with each of the plurality of websites; and storing the website endpoints, the corresponding website endpoint parameters, the corresponding identified website keywords, and the assigned industry category for each website in the polarization library. 3. The method of claim 1, further comprising: creating the polarization library, the polarization library including for each of a plurality of websites: website endpoints, corresponding website endpoint parameters, and assigned industry categories. . 3. The method of claim 1, wherein creating the polarization library comprises: identifying website keywords contained in each of the plurality of websites; assigning the industry category to each of the plurality of websites based on the corresponding identified website keywords; extracting the website endpoints and the corresponding website endpoint parameters associated with each of the plurality of websites; and storing the website endpoints, corresponding website endpoint parameters, website keywords, and the assigned industry category for each website in the polarization library. 4. The method of claim 1, wherein identifying the first industry category for the root API comprises identifying root keywords contained in the root API and comparing the identified root keywords to website keywords stored in the polarization library. 4. The method of claim 3, wherein identifying the first industry category for the root API comprises identifying root keywords contained in the root API and comparing the identified root keywords to the website keywords stored in the polarization library.. 5. The method of claim 1, wherein selecting the website from the polarization library comprises arranging industry categories on a circular scale of 0 to 360 degrees in order of similarity and selecting the second industry category that is diametrically opposite the first industry category 6. The method of claim 1, wherein selecting the website from the polarization library comprises arranging industry categories on a spherical scale in order of similarity on lines of longitude from 0 to 360 degrees and selecting the second industry category that is polar opposite the first industry category. 7. The method of claim 6, wherein each website in each industry category is arranged on a line of latitude corresponding to a size of a company associated with each website 2. The method of claim 1, wherein selecting the website from the polarization library that is in the industry category distinct from the first industry category comprises arranging the assigned industry categories on a circular scale of 0 to 360 degrees in order of similarity and selecting the second industry category that is diametrically opposite the first industry category. 8. A system comprising: one or more processors; and one or more memories storing instructions that, when executed by the one or more processors, cause the system to perform a process for obfuscating an application programming interface (API), the process comprising: identifying a first industry category for a root API; selecting, from a polarization library, a second industry category that is distinct from the first industry category based on a similarity scale of the polarization library indicating one or more keywords associated with the second industry category being-are different from one or more keywords associated with the first industry category; creating an obfuscator API with an API structure of the root API using website endpoints and website endpoint parameters from the website that match the API structure of the root API; and mapping the website endpoints of the obfuscator API to corresponding endpoints of the root API. 9. The system according to claim 8, wherein the process further comprises: identifying website keywords contained in each of a plurality of websites; assigning an industry category to each of the plurality of websites based on corresponding identified website keywords; extracting website endpoints and corresponding website endpoint parameters associated with each of the plurality of websites; and storing the website endpoints, the corresponding website endpoint parameters, the corresponding identified website keywords, and the assigned industry category for each website in the polarization library. 10. The system according to claim 8, wherein the process further comprises: creating the polarization library, the polarization library including for each of a plurality of websites: website endpoints, corresponding website endpoint parameters, and assigned industry categories. 11. The system according to claim 8, wherein identifying the first industry category for the root API comprises identifying root keywords contained in the root API and comparing the identified root keywords to website keywords stored in the polarization library. 12. The system according to claim 8, wherein selecting the website from the polarization library comprises arranging industry categories on a circular scale of 0 to 360 degrees in order of similarity and selecting the second industry category that is diametrically opposite the first industry category. 13. The system according to claim 8, wherein selecting the website from the polarization library comprises arranging industry categories on a spherical scale in order of similarity on lines of longitude from 0 to 360 degrees and selecting the second industry category that is polar opposite the first industry category. 14. The system according to claim 13, wherein each website in each industry category is arranged on a line of latitude corresponding to a size of a company associated with each website. 15. A non-transitory computer-readable medium storing instructions that, when executed by a computing system, cause the computing system to perform operations for obfuscating an application programming interface (API), the operations comprising: identifying a first industry category for a root API; selecting, from a polarization library, a second industry category that is distinct from the first industry category based on a similarity scale of the polarization library indicating one or more keywords associated with the second industry category being-are different from one or more keywords associated with the first industry category; creating an obfuscator API with an API structure of the root API using website endpoints and website endpoint parameters from the website that match the API structure of the root API; and mapping the website endpoints of the obfuscator API to corresponding endpoints of the root API. 16. The non-transitory computer-readable medium of claim 15, wherein the operations further comprise: identifying website keywords contained in each of a plurality of websites; assigning an industry category to each of the plurality of websites based on corresponding identified website keywords; extracting website endpoints and corresponding website endpoint parameters associated with each of the plurality of websites; and storing the website endpoints, the corresponding website endpoint parameters, the corresponding identified website keywords, and the assigned industry category for each website in the polarization library. 17. The non-transitory computer-readable medium of claim 15, wherein the operations further comprise: creating the polarization library, the polarization library including for each of a plurality of websites: website endpoints, corresponding website endpoint parameters, and assigned industry categories. 18. The non-transitory computer-readable medium of claim 15, wherein identifying the first industry category for the root API comprises identifying root keywords contained in the root API and comparing the identified root keywords to website keywords stored in the polarization library. 19. The non-transitory computer-readable medium of claim 15, wherein selecting the website from the polarization library comprises arranging industry categories on a circular scale of 0 to 360 degrees in order of similarity and selecting the second industry category that is diametrically opposite the first industry category. 20. The non-transitory computer-readable medium of claim 15, wherein selecting the website from the polarization library comprises arranging industry categories on a spherical scale in order of similarity on lines of longitude from 0 to 360 degrees and selecting the second industry category that is polar opposite the first industry category, and wherein each website in each industry category is arranged on a line of latitude corresponding to a size of a company associated with each website. 6. A system for obfuscating an application programming interface (API), the system comprising: one or more processors; and one or more memory devices having stored thereon instructions that when executed by the one or more processors cause the one or more processors to: create a polarization library, the polarization library including for each of a plurality of websites: website endpoints, corresponding website endpoint parameters, and assigned industry categories; extract an API structure of a root API to be obfuscated, including root endpoints and corresponding root endpoint parameters; identify a first industry category for the root API; select a website from the polarization library that is in an industry category that is distinct from the first industry category by randomly selecting a second industry category that is different than the first industry category; and create an obfuscator API with the API structure using website endpoints and website endpoint parameters from the selected website that match the API structure of the root API. 7. The system of claim 6, wherein selecting the website from the polarization library that is in the industry category distinct from the first industry category comprises arranging the assigned industry categories on a circular scale of 0 to 360 degrees in order of similarity and selecting the second industry category that is diametrically opposite the first industry category. 8. The system of claim 6, wherein creating the polarization library comprises: identifying website keywords contained in each of the plurality of websites; assigning the industry category to each of the plurality of websites based on corresponding identified website keywords; extracting the website endpoints and the corresponding website endpoint parameters associated with each of the plurality of websites; and storing the website endpoints, corresponding website endpoint parameters, website keywords, and the assigned industry category for each website in the polarization library. 9. The system of claim 8, wherein identifying the first industry category for the root API comprises identifying root keywords contained in the root API and comparing the identified root keywords to the website keywords stored in the polarization library. 10. The system of claim 6, wherein the one or more memory devices have stored thereon further instructions that, when executed by the one or more processors, cause the one or more processors to map the endpoints of the obfuscator API to the corresponding matching endpoints of the root API. 11. A non-transitory processor readable memory device, comprising instructions stored thereon that when executed by one or more processors, cause the one or more processors to: create a polarization library, the polarization library including for each of a plurality of websites: website endpoints, corresponding website endpoint parameters, and assigned industry categories; extract an API structure of a root API to be obfuscated, including root endpoints and corresponding root endpoint parameters; identify a first industry category for the root API; select a website from the polarization library that is in an industry category that is distinct from the first industry category by randomly selecting a second industry category that is different than the first industry category; and create an obfuscator API with the API structure using website endpoints and website endpoint parameters from the selected website that match the API structure of the root API. 12. The non-transitory processor readable memory device of claim 11, wherein selecting the website from the polarization library that is in the industry category distinct from the first industry category comprises arranging the assigned industry categories on a circular scale of 0 to 360 degrees in order of similarity and selecting the second industry category that is diametrically opposite the root API industry category. 13. The non-transitory processor readable memory device of claim 11, wherein creating the polarization library comprises: identifying website keywords contained in each of the plurality of websites; assigning the industry category to each of the plurality of websites based on corresponding identified website keywords; extracting the website endpoints and the corresponding website endpoint parameters associated with each of the plurality of websites; and storing the website endpoints, corresponding website endpoint parameters, website keywords, and the assigned industry category for each website in the polarization library. 14. The non-transitory processor readable memory device of claim 13, wherein identifying the first industry category for the root API comprises identifying root keywords contained in the root API and comparing the identified root keywords to the website keywords stored in the polarization library. 15. The non-transitory processor readable memory device of claim 11, further comprising instructions that, when executed by the one or more processors, cause the one or more processors to map the endpoints of the obfuscator API to the corresponding matching endpoints of the root API. As to claims of claims 1-20 of the current application, the only differences between the current application and claims 1-15 No. 11,829812 is the limitation of: “selecting, from a polarization library, a second industry category that is distinct from the first industry category based on a similarity scale of the polarization library indicating one or more keywords associated with the second industry category being-are different from one or more keywords associated with the first industry category”. However, Lawson teaches selecting, from a polarization library, a second industry category that is distinct from the first industry category based on a similarity scale of the polarization library indicating one or more keywords (see rejection of claim 1 below) . Thus, it would have been obvious to one of ordinary skill in the art at the time of the invention to further modify the patent No. 11,720,396 by adopting the teachings of Lowson as shown below to enable “two programs are compared, such common libraries will increase their similarity score. This is not always desirable, especially when similarity search is used to find code theft. ” (see Lawson, in col. 33, lines 64-67). As to System claims 9-16 the only differences between the current application and claims 1-8 of the patent No. 11,720,396 is the limitations of: a system. Thus, apparatus claims 9-16 of the current application comparable to the Method claims 1-5 of patent No. 11,720,396 have the same limitations and the apparatus comprises substantially the same elements, it would have been obvious for a person of ordinary skill in the at the time of the invention to modify claims 1-8 of patent No. 11,720,396 to have included an apparatus is well known and would have been obvious to a person of ordinary skill in the art. Therefore claims 9-16 of the Current application are not patently distinct from the earlier patents claims and as such is unpatentable for obvious-type double patenting. As to product claims 17-20, the only differences between the current application and 1-8 of the patent No. 11,720,396 is the limitations of: A non-transitory computer-readable storage medium. Thus, product claims 17-20 of the current application comparable to the method claim 1- 8 of the current application above have the same limitations and the product comprise substantially the same elements, it would have been obvious for a person of ordinary skill in the at the time of the invention to modify claims 1-8 of 1-8 of the patent No. 11,720,396 to have included a non-transitory, computer readable medium implementing the product is well known and would have been obvious to a person of ordinary skill in the art. 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-4, 8-11 and 15-18 are rejected under 35 U.S.C. 103 as being unpatentable over Gregoire et al (US 2006/0026114, Gregoire hereinafter) in view of Chen (US 2025/0036378, Chen hereinafter) , Lawson (US 9,720,925, Lawson hereinafter) . As to claim 1, Gregoire teaches a method for an application programming interface (API) (e.g., para [0055] Reference is now made to FIG. 2, which shows, in flowchart form, a method 100 of gathering and classifying data. The method 100 begins in step 102, wherein an attempt is made to locate a website, following which the site is accessed in step 104. This may be performed pseudo-randomly by a webcrawler. It may also or alternatively involve receiving an input address, such as from an administrator or from a stored list of addresses, which may include IP address or their corresponding domain names. Other mechanisms for locating and connecting to random or chosen addresses will be apparent to those ordinarily skilled in the art. Step 104 may involve requesting and receiving the default webpage for the website address. If a more detailed address specifying a particular webpage is obtained in step 102, then step 104 may involve requesting and receiving the specified webpage from the website address. Thus, “ requesting and receiving the default webpage for the website address. If a more detailed address specifying a particular webpage is obtained in step 102, then step 104 may involve requesting and receiving the specified webpage from the website address” . Thus, an application programming interface (API) would have been inherent) , the method comprising: identifying a first industry category (e.g., para [0023] The industry database 18 identifies one or more industries. In particular, the industry database 18 contains a list of industry groupings in association with which information may be categorized..); selecting a second industry category that is distinct from the first industry category based on one or more keywords associated with the second industry category being-are different from one or more keywords associated with the first industry category (e.g., para [0007 memory storing information records, each of the information records having an associated category selected from the plurality of categories “ and “the system determines whether or not the website appears to be relevant to the industries and/or companies listed in the industry database and company database. This step may include further searching and extraction of data from the website, which may include the downloading of further webpages from the website. “, “Keywords located in the metadata or other portions of the website assist the system in categorizing the website appropriately” in para 60 and para [0061] In step 114, the system may categorize the type of website based upon the initial information obtained from the website, or any additional information if additional extracted information is obtained. The type of website may partially determine its relevance. For example, websites that may have a high degree of relevance include government sites, especially relating to contracts or procurement, news sites, websites for trade associations, trade shows, industry advocacy groups, and post-secondary institutions, especially pages relating to tech transfer offices. Keywords located in the metadata or other portions of the website assist the system in categorizing the website appropriately. Thus, the “the plurality of categories” include the second industry, wherein the “Keywords located in the metadata or other portions of the website assist the system in categorizing the website appropriately” , therefore selecting the second industry category that is distinct from the first industry category based on one or more keywords associated with the second industry category being-are different from one or more keywords associated with the first industry category), selecting a website that is in the second industry category (e.g., para 55, “chosen addresses will be apparent to those ordinarily skilled in the art. Step 104 may involve requesting and receiving the default webpage for the website address. If a more detailed address specifying a particular webpage is obtained in step 102, then step 104 may involve requesting and receiving the specified webpage from the website address. “, [0041] Those of ordinary skill in the art will appreciate that there are a number of techniques and mechanisms for establishing links between or associations between the classified information and its associated industries, companies, and countries. “, “ webpage address”). Gregoire teaches further using website endpoints and website endpoint parameters from the website (e.g., para [0020] “ The websites may include a plurality of interlinked webpages. Each website is identifiable by an IP address and its associated domain name”). Thus , the “links “, “an IP address and its associated domain name”, “information to particular industries or companies” represent the website endpoints and website endpoint parameters) ; However, Gregoire does not teach for a root API , creating an obfuscator API with an API structure of the root API using the website endpoints and the website endpoint parameters from the website that match the API structure of the root API; and mapping the website endpoints of the obfuscator API to corresponding endpoints of the root API, a polarization library , selecting from the polarization library, based on a similarity scale of the polarization library. Chen teaches for a root API (e.g.,” para 82, for the root function “) , creating an obfuscator API with an API structure of the root API using website endpoints and website endpoint parameters from the website that match the API structure of the root API (e.g., abstract, “creating a final application includes a computer obtaining an obfuscated SDK binary and an interface source code that comprises one or more functions that call obfuscated functions within the obfuscated SDK.” and “the obfuscated final application binary and the obfuscated SDK binary”, “ every function has been obfuscated” for “the server computer may be a database server coupled to a Web server”, “A “server computer” may include a powerful computer or cluster of computers” in para 31 . Thus, .g., see Table 9, “com.industry.app.main( ) “ represent the website that match the API structure , therefore creating an obfuscator API with an API structure of the root API using website endpoints and website endpoint parameters from the website that match the API structure of the root API) ; and mapping the website endpoints of the obfuscator API to corresponding endpoints of the root API (e.g., para 82, “ the CPU can correctly refer to and execute the root function”, “[0045] generate the interface source code using a mapping table of obfuscated function names obtained from the obfuscation module”. Thus, mapping the website endpoints of the obfuscator API to corresponding endpoints of the root API). Thus, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to f modify the method of Gregoire by adopting the teachings of Chen to “ securely obfuscating exposed public API methods” (see Chen, para 7). Lawson teaches a polarization library (e.g., col. 35, lines 50-67, “At 2004, pairs of files consisting of the input file and files included in a corpus are categorized”, “the corpus comprises all files (or binary files) stored in storage 112”, “ the categorization is binary—files are either “mismatches,” or are “possible matches.”, “files can be categorized as “nearly identical,” “too different,” and “match.”. Thus the files represents the library coupled with the “nearly identical,” or “too different,” and “mismatches” or “possible matches.” , therefore the polarization library) , selecting from the polarization library, based on a similarity scale of the polarization library indicating keywords (e.g., see FIG. 19, col. 35, line 1-32, “2. A similarity search is performed as usual, using the executable as a query “, “If the file's score is below a threshold, it is ignored and processing continues with the next file. In one embodiment, the threshold is 0.60. b. “, “2. The query is added to the list of queries to be performed on a continual basis”, the similarity score”, “to refine the similarity score. iv. If the resulting similarity score is above a threshold, report the match to the user. In one embodiment, the threshold is 0.60.”, “automatically added to the system by a web crawler”, “users can select whether a given upload should be made available to other users. If so, it is added to the system for others to match against” and “ Performing Similarity Search”, “FIG. 20 illustrates an example of a process for performing a software similarity search” “At 2004, pairs of files consisting of the input file and files included in a corpus are categorized”, “ the categorization is binary—files are either “mismatches,” or are “possible matches.” ,” files can be categorized as “nearly identical,” “too different,” and “match.”, “the corpus is also received as input”, “a user could specify that only files in a particular directory be used as the corpus”, “at 2006, pairs categorized as possible matches are analyzed using pairwise component analysis” in col. 35, lines 33-67. Thus, the “similarity score” , “0.60” represents the similarity scale, the “users can select whether a given upload should be made available to other users” coupled with the “a user could specify that only files in a particular directory be used as the corpus” for “ the similarity score”, “to refine the similarity score”, “ the threshold is 0.60”, the categorization is binary—files are either “mismatches,” or are “possible matches.” ,” files can be categorized as “nearly identical,” “too different,” and “match.”, therefore selecting from the polarization library, based on a similarity scale of the polarization library indicating keywords). Thus, 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 teachings of Gregoire and Chen with those of Lawson because both references are directed to related systems addressing similar technical problems within the same field and seek to improve system performance, reliability, and efficiency. Gregoire and Chen disclose A method for obfuscating an application programming interface (API) while Lawson et al. teaches selecting, from a polarization librarybased on a similarity scale of the polarization library indicating one or more keywords. Incorporating the teachings of Lawson et al. into the system of Gregoire and Chen would have been a predictable and logical modification, yielding improved operational robustness and efficiency without requiring undue experimentation. Such a combination would merely involve the substitution or integration of known elements performing their established functions, as taught by Lawson et al., into the system of Gregoire and Chen., consistent with design incentives and market demands for improved performance and scalability. Moreover, Lawson et al. explicitly recognize benefits to enable “two programs are compared, such common libraries will increase their similarity score. This is not always desirable, especially when similarity search is used to find code theft. ” (see Lawson, in col. 33, lines 64-67) . —that would naturally be desirable in the system of Gregoire and Chen. Accordingly, to one of ordinary skill in the art would have had a reasonable expectation of success in combining Gregoire and Chen with Lawson et al., and the combination represents no more than the predictable use of prior art elements according to their known functions. As to claim 2, Gregoire teaches identifying website keywords contained in each of a plurality of websites; assigning an industry category to each of the plurality of websites based on corresponding identified website keywords (e.g., para 24 and 25 “keyword information may also be extracted”, “Each industry group, subgroup, etc., may also be associated with particular keywords that are commonly found in information associated with the group, subgroup”) ; extracting website endpoints and corresponding website endpoint parameters associated with each of the plurality of websites (e.g., para 26, “The extractor 12 includes a crawler or other search or browsing device for locating websites. Upon locating a website, the extractor 12 extracts information from the website.”); and storing the website endpoints, the corresponding website endpoint parameters, the corresponding identified website keywords, and the assigned industry category for each website in the polarization library (e.g., para [0024] Each industry group, subgroup, etc., within the industry database 18 may be associated with an classification number or code. Each industry group, subgroup, etc., may also be associated with particular keywords that are commonly found in information associated with the group, subgroup, etc. Accordingly, an individual data record within the industry database 18 may include an industry descriptor, an industry classification code, a subindustry descriptor, a subindustry classification code, and associated keywords. Other information may also be included in the individual data record corresponding to a particular industry group, subgroup, etc. [0025] The company database 20 includes a number of company profiles. A company profile includes data regarding a business organization, such as a corporation, partnership, trust, joint venture, etc. The company profile may include data such as the company name, address or addresses, its country or countries of operation or origin, contact information, key personnel and data regarding them, its website, and information regarding the line of business in which the company is engaged. The company profile also includes information regarding with which industry or industries the company is associated. In one embodiment, this means the company profile includes one or more industry classification codes, and may include one or more subindustry classification codes. The industry descriptor, subindustry descriptor, and keyword information may also be extracted from the industry database 18 and incorporated into the company profile in the company database 20. [0026] The extractor 12 includes a crawler or other search or browsing device for locating websites. Upon locating a website, the extractor 12 extracts information from the website. This may include an initial bit of information from a default page at the website so as to be able to determine if the website is a site of interest. It may also include information from other webpages on the website.) . As to claim 3, Gregoire teaches creating the polarization library, the polarization library including for each of a plurality of websites: website endpoints, corresponding website endpoint parameters, and assigned industry categories (e.g., para [0023] The industry database 18 identifies one or more industries. In particular, the industry database 18 contains a list of industry groupings in association with which information may be categorized. The industry groupings may include more than one level of classification. For example, the industry groupings may be arranged in a tree-and-branch format, such that a root industry descriptor includes a plurality of sub-industry descriptors associated with subcategories of the overall industry group. By way of non-limiting example, the industry database 18 may specify broad industry categories or groups such as "Financial", "Food & Beverage", and "Healthcare"; and within a broad industry category like "Food & Beverage" there may be subcategories, such as "Beverages", "Food Products", "Food Retailers & Wholesalers", "Restaurants", and "Food Services". It will be appreciated that the subcategories may be further broken into sub- subcategories, etc. [0026] The extractor 12 includes a crawler or other search or browsing device for locating websites. Upon locating a website, the extractor 12 extracts information from the website. This may include an initial bit of information from a default page at the website so as to be able to determine if the website is a site of interest. It may also include information from other webpages on the website.) . As to claim 4, Gregoire teaches further wherein identifying the first industry category forEach industry group, subgroup, etc., may also be associated with particular keywords that are commonly found in information associated with the group, subgroup, etc. Accordingly, an individual data record within the industry database 18 may include an industry descriptor, an industry classification code, a subindustry descriptor, a subindustry classification code, and associated keywords. [0025] The industry descriptor, subindustry descriptor, and keyword information may also be extracted from the industry database 18 and incorporated into the company profile in the company database 20..) . However, Gregoire does not teach for the root API comprises identifying root keywords contained in the root API. Chen teaches identifying root keywords contained in the root API (e.g., TABLE-US-00010 TABLE 10 Obfuscated Application Binary with Obfuscated SDK Binary Obfuscated Final Application Binary Obfuscated SDK binary com.industry.app.main( ) . Thus, “com.industry.app.main( ) “ include the keywords in the root API). Thus, 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 Gregoire by adopting the teachings of Chen to in order to “ securely obfuscating exposed public API methods” (see Chen, para 7) . As to claim 8, see rejection of claim 1 above. Gregoire teaches further a system comprising: one or more processors; and one or more memories storing instructions that, when executed by the one or more processors, (claim 1. A system for gathering and classifying relevant data from the world wide web, the system comprising: an extractor for crawling the world wide web and producing extracted information from at least one website; an industry database containing a list of industry groups; a company database containing profiles of companies; an information database containing data records, each of said data records having an associated industry group selected from said list of industry groups; a classifier for receiving said extracted information, said classified including a company comparison component for determining if said extracted information relates to a company profiled in said company database, and an industry component for determining if said extracted information relates to an industry listed in said list of industry groups, and a classification component responsive to said company comparison component and said industry comparison component for storing said extracted information in said information database as one of said data records.. Thus, a system comprising: one or more processors; and one or more memories storing instructions that, when executed by the one or more processors would have been inherent ). As to claims 9-11, see rejection of claims 2-4 above. As to claim 15, see rejection of claim 1 above. Gregoire teaches further a non-transitory computer-readable medium storing instructions that, when executed by a computing system, cause the computing system to perform operations (see claim 1. A system for gathering and classifying relevant data from the world wide web, the system comprising: an extractor for crawling the world wide web and producing extracted information from at least one website; an industry database containing a list of industry groups; a company database containing profiles of companies; an information database containing data records, each of said data records having an associated industry group selected from said list of industry groups; a classifier for receiving said extracted information, said classified including a company comparison component for determining if said extracted information relates to a company profiled in said company database, and an industry component for determining if said extracted information relates to an industry listed in said list of industry groups, and a classification component responsive to said company comparison component and said industry comparison component for storing said extracted information in said information database as one of said data records.. Thus, a non-transitory computer-readable medium storing instructions that, when executed by a computing system, cause the computing system to perform operations would have been inherent ). As to claims 16-18, see rejection of claims 2-4 above. Allowable Subject Matter Claims 5-7, 12-14 and 19-20 in the previous office action are objected to as being dependent upon rejected base claims, but would be allowable if rewritten in independent form including all of the limitations of the base claim and any intervening claims and if amended to overcome the claim rejection above, set forth in this Office action. Conclusion The prior art made of record and not relied upon is considered pertinent to applicant's disclosure. Bahrami et al. (US 11,200,033) discloses operations include creating object-oriented software platform by performing a textual analysis of a documentation corpus associated with a set of APIs. The operations further include generating a set of API call objects for an API endpoint of a first API of the set of APIs and constructing a set of natural language descriptors corresponding to the set of API call objects based on the textual analysis. The operations further include generating a set of business objects. Each business object encapsulates conditions applicable on a set of input/output parameters associated with a corresponding API call object of the set of API call objects. The operations further include constructing a software package that encapsulates the set of API call objects, the set of natural language descriptors, and the set of business objects. Horst et al (US 2021/0349771) discloses systems and methods for generating an API caching library using a shared resource file. For example, a method may include: receiving, at a first platform, a shared resource file comprising metadata for declaratively deriving an application programming interface (API) caching library for a native application operating on the first platform and a corresponding application related to the native application for a second platform; parsing the shared resource file to extract the metadata at run-time of the native application; declaratively deriving the API caching library based on the extracted metadata, the declaratively deriving the API caching library comprising creating a plurality of objects that represent respective API endpoints of the API caching library; and executing a function of the native application based on at least one of the API endpoints. Any inquiry concerning this communication or earlier communications from the examiner should be directed to ABDOU K SEYE whose telephone number is (571)270-1062. The examiner can normally be reached M-F 9-5:30. 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, Pierre Vital can be reached at 5712724215. 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. /ABDOU K SEYE/Examiner, Art Unit 2198 /PIERRE VITAL/Supervisory Patent Examiner, Art Unit 2198
Read full office action

Prosecution Timeline

Show 2 earlier events
Jul 31, 2025
Examiner Interview Summary
Jul 31, 2025
Applicant Interview (Telephonic)
Aug 28, 2025
Response Filed
Dec 17, 2025
Final Rejection mailed — §103, §DOUBLEPATENT
Jan 20, 2026
Response after Non-Final Action
Jan 28, 2026
Request for Continued Examination
Feb 06, 2026
Response after Non-Final Action
Aug 17, 2026
Non-Final Rejection mailed — §103, §DOUBLEPATENT (current)

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12693913
DATA STRUCTURE FOR A BUFFER MEMORY IN A MULTI-PRODUCER MULTI-CONSUMER SYSTEM
3y 2m to grant Granted Jul 28, 2026
Patent 12681776
LOCK AND BUFFER SCHEDULING IN MULTI-CORE ARCHITECTURES
3y 11m to grant Granted Jul 14, 2026
Patent 12645516
APPLICATION PROGRAMMING INTERFACE (API) AND SITE DISCOVERY VIA REQUEST SIMILARITY
4y 1m to grant Granted Jun 02, 2026
Patent 12645499
INTELLIGENT PREEMPTION SYSTEM
4y 1m to grant Granted Jun 02, 2026
Patent 12639140
REAL-TIME DATA PROCESSING PIPELINE AND PACING CONTROL SYSTEMS AND METHODS
2y 4m to grant Granted May 26, 2026
Study what changed to get past this examiner. Based on 5 most recent grants.

Strategy Recommendation AI-generated — please review before filing

Get a prosecution strategy drawn from examiner precedents, rejection analysis, and claim mapping.
Typically takes 5-10 seconds — AI-generated, attorney review required before filing

Prosecution Projections

3-4
Expected OA Rounds
83%
Grant Probability
99%
With Interview (+27.0%)
3y 3m (~4m remaining)
Median Time to Grant
High
PTA Risk
Based on 595 resolved cases by this examiner. Grant probability derived from career allowance rate.

Sign in with your work email

Enter your email to receive a magic link. No password needed.

Personal email addresses (Gmail, Yahoo, etc.) are not accepted.

Free tier: 3 strategy analyses per month