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 .
This is response to application filed 04/29/2025.
Status of the claims
Claims 1-20 are currently pending for examination.
Information Disclosure Statement
The information disclosure statement (IDS) submitted on 10/03/2025 is being considered by the examiner.
Claim Rejections - 35 USC § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
Claims 1-5 rejected under 35 U.S.C. 101 because the claimed invention is directed to an abstract idea without significantly more.
Step 1
The claims recite a method, a system and a computer program product including a set of non-transitory, computer-readable media(claims 1, 12 and 19). These claims fall within at least one of the four categories of patentable subject matter.
Step 2A Prong One
The claim recites receiving, a first command from a host computer, the first command defining match criteria specifying a character string, and an address range of a data table; identifying, one or more character strings in the data table as matching the character string specified by the match criteria within the address range of the data table; and providing, information pertaining to the identified character strings for use by the host computer steps. The computerized storage device in those steps is recited at a high-level of generality (i.e., as a generic processor performing a generic computer function of receiving, identifying and providing) such that it amounts no more than mere instructions to apply the exception using a generic computer component. There is nothing so complex in the limitations that could not be doing in the human mind.
Claims 2-11, 13-18 recite limitations that are further extensions of the identified grouping.
Claim 12 and 19 recites limitations that correspond to those recited in claim 1.
Step 2A Prong Two
This judicial exception is not integrated into a practical application because the combination of additional elements includes only generic computer elements which do not add a meaningful limitation to the abstract idea because they amount to simply implementing the abstract idea on a computer.
These additional elements include: storage device, host computer, a system, a memory.
Independent claim 1 is representative and recites “receiving…identifying, and providing by the computerized storage device.”
The claim recites limitations which amount to insignificant extra-solution activity of data gathering, such as receiving a first command, identifying and providing information.
Claims 2-11, 13-18 and 20 recite limitations which amount to further extensions of insignificant extra-solution activity of data gathering, such as receiving a first command, identifying and providing information.
Step 2B
The claim does not include additional elements that are sufficient to amount to significantly more than the judicial exception. As discussed above with respect to integration of the abstract idea into a practical application, the additional element of using a processor to perform those receiving, identifying and providing steps amounts to no more than mere instructions to apply the exception using a generic computer component. Mere instructions to apply an exception using a generic computer component cannot provide an inventive concept. The claim is not patent eligible.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 1-20 are rejected under 35 U.S.C. 103 as being unpatentable over Cooper et al. (US 20250156377, hereafter Cooper) in view of Yin, Yan-Wei (CN 201611059646).
Regarding claim 1, Cooper discloses: A method comprising: receiving, at a computerized storage device, a first command from a host computer, the first command defining match criteria specifying a character string, and an address range of a data table (Cooper [0168; 0170] discloses: random-access engine 2800 exists that receives a data query request from a user interface 2810 such as a graphical user interface. The query request may comprise identification of a compacted data file to search and a search term, and optionally a location hint. Various possible search term configurations may exist such as a byte range (i.e., begin at byte N and return M number of bytes), a string such as “volleyball” or a date such as “Nov. 6, 2020”, among others);
Cooper didn’t disclose, but Yin discloses: identifying, by the computerized storage device, one or more character strings in the data table as matching the character string specified by the match criteria within the address range of the data table (Yin discloses: receiving current data to be matched. and generating the character conversion function corresponding to the current data to be matched and the corresponding bit vector mask table according to the characteristic string character string set contained in character number determining matching window length, and setting the initial offset value of current data to be matched according to the initial offset value as the starting point of the current data to be matched is offset and positioned. obtaining the length of the matching window in the matched window end is the end point, the length of character block that is on the preset first length and being a first character block according to the preset table to determine whether the first character block is sub character string of the character string set).
Cooper and Yin are analogous art because they are in the same field of endeavor, patterns processing. It would have been obvious to one of ordinary skill in the art, before the effective filing date of the claimed invention, to modify Cooper, to include the teaching of Yin, in order to improves the matching speed. The suggestion to combine is to can effectively use the space of the bit vector table, reduce the filter by rate and improves the matching speed.
providing, by the computerized storage device, information pertaining to the identified character strings for use by the host computer (Cooper [0171; 0172] discloses: Once the byte range or search string has been located, the codebook may be used to decode the located reference codes belonging to the search string or byte range. In other embodiments, the located reference codes may be sent to the data reconstruction engine 108 which sends the decoded byte range or search string to the user for verifications).
Regarding claim 2, Cooper as modified discloses: The method of claim 1 wherein the identifying, by the computerized storage device, one or more character strings in the data table includes determining, with reference to a sliding window at a starting address of the address range, that a first data element within the sliding window matches a first data element of the specified character string (Yin discloses: receiving current data to be matched. and generating the character conversion function corresponding to the current data to be matched and the corresponding bit vector mask table according to the characteristic string character string set contained in character number determining matching window length, and setting the initial offset value of current data to be matched according to the initial offset value as the starting point of the current data to be matched is offset and positioned. obtaining the length of the matching window in the matched window end is the end point, the length of character block that is on the preset first length and being a first character block according to the preset table to determine whether the first character block is sub character string of the character string set).
Regarding claim 3, Cooper as modified discloses: The method of claim 2 wherein the identifying, by the computerized storage device, one or more character strings in the data table includes determining, with reference to the sliding window at a first address offset from the starting address, that a second data element within the sliding window matches a second data element of the specified character string (Yin discloses: setting the initial offset value of current data to be matched according to the initial offset value as the starting point of the current data to be matched is offset and positioned. obtaining the length of the matching window in the matched window end is the end point, the length of character block that is on the preset first length and being a first character block according to the preset table to determine whether the first character block is sub character string of the character string set; the first character block is the sub character string of the character string set, obtaining the matching window length in the matching window as the initial length is the character block of preset second length and as the second character block according to the corresponding character conversion function converts the calculated value of the second character block).
Regarding claim 4, Cooper as modified discloses: The method of claim 3 wherein the identifying, by the computerized storage device, one or more character strings in the data table includes determining, with reference to the sliding window at one or more next address offsets from the starting address, that one or more next data elements within the sliding window match one or more remaining data elements of the specified character string (Yin discloses: the first character block is not the sub character string of the character string set to the start position of the first character block of the current reading of the next bit as the starting point of the matching window, the offset of the current data to be matched based on the starting point of the new matching window to be located, and updating the first character block in the length of the matching window).
Regarding claim 5, Cooper as modified discloses: The method of claim 4 comprising: setting a bit in the first data element at the starting address of the address range; and providing, by the computerized storage device, a return field of one or more bits for a location of the first data element in the data table (Cooper [0126; 0217] discloses: For search queries 3702, it uses trainable parameters to estimate an initial starting bit location in the compacted data file. For write requests 3703, it estimates the location where new data should be inserted).
Regarding claim 6, Cooper as modified discloses: The method of claim 5 wherein the identifying, by the computerized storage device, one or more character strings in the data table includes determining, with reference to the sliding window at one or more additional next address offsets from the starting address, that one or more additional next data elements within the sliding window match corresponding data elements of the specified character string, thereby identifying multiple character strings in the data table that match the character string specified by the match criteria (Yin discloses: the first character block is not the sub character string of the character string set to the start position of the first character block of the current reading of the next bit as the starting point of the matching window, the offset of the current data to be matched based on the starting point of the new matching window to be located, and updating the first character block in the length of the matching window).
Regarding claim 7, Cooper as modified discloses: The method of claim 6 comprising: providing a count of a total number of the multiple character strings that match the character string specified by the match criteria (Yin discloses: generating the character conversion function corresponding to the current data to be matched and the corresponding bit vector mask table according to the characteristic string character string set contained in character number determining matching window length, and setting the initial offset value of current data to be matched according to the initial offset value as the starting point of the current).
Regarding claim 8, Cooper discloses: The method of claim 1 comprising: receiving, at the computerized storage device from the host computer, a second command to obtain an array of register values from the character strings of the certain type, or an estimate of a uniqueness count of character strings of a certain type included in the data table (Cooper [0117] discloses: search queries (commands); [0171] discloses: The data search engine 2940 may use a frequency table 2950 to refine location estimates and identify codeword boundaries in an automatic way. The estimated location may be in the middle of a codeword. If this is the case then the search results will return output that does not match the search query).
Regarding claim 9, Cooper as modified discloses: The method of claim 8 comprising: generating the array of register values from the character strings of the certain type using the HyperLogLog cardinality estimation algorithm (Cooper [0145] discloses: Hype estimator 3420 may estimate the one or more possible starting points using a distinct value estimate mechanism via a starting point module 3421. Distinct value estimation, also known as cardinality estimation or unique value estimation, is a process used to determine the number of distinct or unique values in a dataset. Some techniques that may be used by starting point module 3421 to perform distinct value estimation can include, but are not limited to, counting approaches (e.g., exact counting, HyperLogLog, etc.)).
Regarding claim 10, Cooper as modified discloses: The method of claim 1 comprising: processing, by the computerized storage device, one or more of the identified character strings (Yin discloses matching method for obtaining the length of the matching window in the matched window end is the end point, the length of character block that is on the preset first length and being a first character block according to the preset table to determine whether the first character block is sub character string of the character string set); and
providing the one or more processed character strings to the host computer (Cooper [0269] discloses: The transformed data is returned to the user as read data 3006).
Regarding claim 11, Cooper as modified discloses: The method of claim 10 wherein the processing one or more of the identified character strings includes one or more of (i) masking one or more of the identified character strings including uppercase letter characters to obtain one or more corresponding character strings including lowercase letter characters, (ii) performing case folding on one or more of the identified character strings, (iii) converting one or more of the identified character strings representing one or more floating point numbers to a compact binary format, and (iv) applying a hash function to one or more of the identified character strings (Cooper [0277] discloses decode one letter to the left side and check if it is “A” and one letter to the right to check if is “m”. If those are the letters found the search string has been located, if not then it is not the correct string and the scan continues through the compacted data file until another occurrence of any one of the codeword pairs 3307, 3316, or 3326 is found; [0271] discloses: converted data).
Regarding claim 12, Cooper as modified discloses:. A system comprising: a memory; and processing circuitry configured to execute storage instructions out of the memory to (Cooper [0283]): receive, at a computerized storage device, a command from a host computer, the command defining match criteria specifying a character string, and an address range of a data table (Cooper [0168; 0170] discloses: random-access engine 2800 exists that receives a data query request from a user interface 2810 such as a graphical user interface. The query request may comprise identification of a compacted data file to search and a search term, and optionally a location hint. Various possible search term configurations may exist such as a byte range (i.e., begin at byte N and return M number of bytes), a string such as “volleyball” or a date such as “Nov. 6, 2020”, among others);
Cooper didn’t disclose, but Yin discloses: identify, by the computerized storage device, one or more character strings in the data table as matching the character string specified by the match criteria within the address range of the data table (Yin discloses: receiving current data to be matched. and generating the character conversion function corresponding to the current data to be matched and the corresponding bit vector mask table according to the characteristic string character string set contained in character number determining matching window length, and setting the initial offset value of current data to be matched according to the initial offset value as the starting point of the current data to be matched is offset and positioned. obtaining the length of the matching window in the matched window end is the end point, the length of character block that is on the preset first length and being a first character block according to the preset table to determine whether the first character block is sub character string of the character string set).
Cooper and Yin are analogous art because they are in the same field of endeavor, patterns processing. It would have been obvious to one of ordinary skill in the art, before the effective filing date of the claimed invention, to modify Cooper, to include the teaching of Yin, in order to improves the matching speed. The suggestion to combine is to can effectively use the space of the bit vector table, reduce the filter by rate and improves the matching speed.
providing, by the computerized storage device, information pertaining to the identified character strings for use by the host computer (Cooper [0171; 0172] discloses: Once the byte range or search string has been located, the codebook may be used to decode the located reference codes belonging to the search string or byte range. In other embodiments, the located reference codes may be sent to the data reconstruction engine 108 which sends the decoded byte range or search string to the user for verifications).
Regarding claim 13, Cooper as modified discloses: The system of claim 12 wherein the processing circuitry is configured to execute the storage instructions out of the memory to determine, with reference to a sliding window at a starting address of the address range, that a first data element within the sliding window matches a first data element of the specified character string (Yin discloses: receiving current data to be matched. and generating the character conversion function corresponding to the current data to be matched and the corresponding bit vector mask table according to the characteristic string character string set contained in character number determining matching window length, and setting the initial offset value of current data to be matched according to the initial offset value as the starting point of the current data to be matched is offset and positioned. obtaining the length of the matching window in the matched window end is the end point, the length of character block that is on the preset first length and being a first character block according to the preset table to determine whether the first character block is sub character string of the character string set).
Regarding claim 14, Cooper as modified discloses: The system of claim 13 wherein the processing circuitry is configured to execute the storage instructions out of the memory to determine, with reference to the sliding window at a first address offset from the starting address, that a second data element within the sliding window matches a second data element of the specified character string (Yin discloses: setting the initial offset value of current data to be matched according to the initial offset value as the starting point of the current data to be matched is offset and positioned. obtaining the length of the matching window in the matched window end is the end point, the length of character block that is on the preset first length and being a first character block according to the preset table to determine whether the first character block is sub character string of the character string set; the first character block is the sub character string of the character string set, obtaining the matching window length in the matching window as the initial length is the character block of preset second length and as the second character block according to the corresponding character conversion function converts the calculated value of the second character block).
.
Regarding claim 15, Cooper as modified discloses: The system of claim 14 wherein the processing circuitry is configured to execute the storage instructions out of the memory to determine, with reference to the sliding window at one or more next address offsets from the starting address, that one or more next data elements within the sliding window match one or more remaining data elements of the specified character string (Yin discloses: the first character block is not the sub character string of the character string set to the start position of the first character block of the current reading of the next bit as the starting point of the matching window, the offset of the current data to be matched based on the starting point of the new matching window to be located, and updating the first character block in the length of the matching window).
Regarding claim 16, Cooper as modified discloses: The system of claim 15 wherein the processing circuitry is configured to execute the storage instructions out of the memory to: set a bit in the first data element at the starting address of the address range; and provide, by the computerized storage device, a return field of one or more bits for a location of the first data element in the data table (Cooper [0126; 0217] discloses: For search queries 3702, it uses trainable parameters to estimate an initial starting bit location in the compacted data file. For write requests 3703, it estimates the location where new data should be inserted).
Regarding claim 17, Cooper as modified discloses: The system of claim 16 wherein the processing circuitry is configured to execute the storage instructions out of the memory to determine, with reference to the sliding window at one or more additional next address offsets from the starting address, that one or more additional next data elements within the sliding window match corresponding data elements of the specified character string, thereby identifying multiple character strings in the data table that match the character string specified by the match criteria (Yin discloses: the first character block is not the sub character string of the character string set to the start position of the first character block of the current reading of the next bit as the starting point of the matching window, the offset of the current data to be matched based on the starting point of the new matching window to be located, and updating the first character block in the length of the matching window).
Regarding claim 18, Cooper as modified discloses: The system of claim 17 wherein the processing circuitry is configured to execute the storage instructions out of the memory to provide a count of a total number of the multiple character strings that match the character string specified by the match criteria (Yin discloses: generating the character conversion function corresponding to the current data to be matched and the corresponding bit vector mask table according to the characteristic string character string set contained in character number determining matching window length, and setting the initial offset value of current data to be matched according to the initial offset value as the starting point of the current).
Regarding claim 19, Cooper as modified discloses: A computer program product including a set of non-transitory, computer-readable media having instructions that, when executed by processing circuitry, cause the processing circuitry to perform a method comprising:
receiving, at a computerized storage device, a first command from a host computer, the first command defining match criteria specifying a character string, and an address range of a data table (Cooper [0168; 0170] discloses: random-access engine 2800 exists that receives a data query request from a user interface 2810 such as a graphical user interface. The query request may comprise identification of a compacted data file to search and a search term, and optionally a location hint. Various possible search term configurations may exist such as a byte range (i.e., begin at byte N and return M number of bytes), a string such as “volleyball” or a date such as “Nov. 6, 2020”, among others);
Cooper didn’t disclose, but Yin discloses: identifying, by the computerized storage device, one or more character strings in the data table as matching the character string specified by the match criteria within the address range of the data table (Yin discloses: receiving current data to be matched. and generating the character conversion function corresponding to the current data to be matched and the corresponding bit vector mask table according to the characteristic string character string set contained in character number determining matching window length, and setting the initial offset value of current data to be matched according to the initial offset value as the starting point of the current data to be matched is offset and positioned. obtaining the length of the matching window in the matched window end is the end point, the length of character block that is on the preset first length and being a first character block according to the preset table to determine whether the first character block is sub character string of the character string set).
Cooper and Yin are analogous art because they are in the same field of endeavor, patterns processing. It would have been obvious to one of ordinary skill in the art, before the effective filing date of the claimed invention, to modify Cooper, to include the teaching of Yin, in order to improves the matching speed. The suggestion to combine is to can effectively use the space of the bit vector table, reduce the filter by rate and improves the matching speed.
providing, by the computerized storage device, information pertaining to the identified character strings for use by the host computer (Cooper [0171; 0172] discloses: Once the byte range or search string has been located, the codebook may be used to decode the located reference codes belonging to the search string or byte range. In other embodiments, the located reference codes may be sent to the data reconstruction engine 108 which sends the decoded byte range or search string to the user for verifications).
Regarding claim 20, Cooper as modified discloses: The computer program product of claim 19 wherein the method comprises: receiving, at the computerized storage device from the host computer, a second command to obtain an array of register values from the character strings of the certain type, or an estimate of a uniqueness count of character strings of a certain type included in the data table (Cooper [0117] discloses: search queries (commands); [0171] discloses: The data search engine 2940 may use a frequency table 2950 to refine location estimates and identify codeword boundaries in an automatic way. The estimated location may be in the middle of a codeword. If this is the case then the search results will return output that does not match the search query).
Contact Information
Any inquiry concerning this communication or earlier communications from the examiner should be directed to CINDY NGUYEN whose telephone number is (571)272-4025. The examiner can normally be reached M-F 8:00-4: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, Bhatia Ajay can be reached at 571-272-3906. 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.
/CINDY NGUYEN/Examiner, Art Unit 2156