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 .
Claims 1-20 are presented for examination.
The claims and only the claims form the metes and bounds of the invention. “Office personnel are to give claims their broadest reasonable interpretation in light of the supporting disclosure. In re Morris, 127 F.3d 1048, 1054-55, 44 USPQ2d 1023, 1027-28 (Fed. Cir. 1997). Limitations appearing in the specification but not recited in the claim are not read into the claim. In re Prater, 415 F.2d 1393, 1404-05, 162 USPQ 541, 550-551 (CCPA 1969)” (MPEP p 2100-8, c 2, I 45-48; p 2100-9, c 1, l 1-4). The Examiner has full latitude to interpret each claim in the broadest reasonable sense. The Examiner will reference prior art using terminology familiar to one of ordinary skill in the art. Such an approach is broad in concept and can be either explicit or implicit in meaning.
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. Applicant’s submission filed on 25 November 2025 has been entered.
Response to Arguments
Applicant’s remarks/amendment was filed on 25 November 2025.
US PGPUB 2019/0109869 by Bailey is newly introduced for the rejection of the independent claims.
Applicant’s arguments have been considered but they are moot in view of new ground(s) of rejection. However, the Examiner welcomes any suggestion(s) Applicants may have on moving prosecution forward. The Examiner’s contact information is in the Conclusion of this office action.
Applicant argues:
Teerlink does not generate a compressed segment with the components recited in claim 1. Rather, Teerlink compresses a file using one mechanism and then further compresses the output of that initial compression. No keys from the initial compression mechanism remain included in the compressed file.
In response, the Examiner submits:
The instant claims do not recite limitation(s) that require, for example, “keys from the initial compression remain included in the compressed file”.
Although the claims are interpreted in light of the specification, limitations from the specification are not read into the claims. In re Van Geuns, 988 F.2d 1181, 26 USPQ2d 1057 (Fed. Cir. 1993).
Claim Objections
Claim 10 is 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.
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.
This application currently names joint inventors. In considering patentability of the claims the examiner presumes that the subject matter of the various claims was commonly owned as of the effective filing date of the claimed invention(s) absent any evidence to the contrary. Applicant is advised of the obligation under 37 CFR 1.56 to point out the inventor and effective filing dates of each claim that was not commonly owned as of the effective filing date of the later invention in order for the examiner to consider the applicability of 35 U.S.C. 102(b)(2)(C) for any potential 35 U.S.C. 102(a)(2) prior art against the later invention.
1-3, 5, 11-13, 15 and 20 are rejected under 35 U.S.C. 103 as being unpatentable over US PGPUB 2011/0016138 by Teerlink in view of US PGPUB 2019/0109869 by Bailey.
As to Claim 1, Teerlink teaches a method comprising: determining, for a plurality of strings in a segment of a database (Teerlink: at least ¶0011, 0280; “each file represents a plurality of symbols corresponding to an underlying data stream of original bits of data” and “Huffman binary code tree 280 is built for the current file”), a frequency that each string of the plurality of strings appears in the segment (Teerlink: at least ¶¶0032, 0281; “finding highly occurring patterns in data streams, and replacing them with newly defined symbols ” and “list first the symbols from highest count to lowest count”), wherein the plurality of strings includes a first subset of strings and a second subsets of strings different from the first subset of strings (Teerlink: at least ¶0113; “… combine the counts for the two least frequently occurring symbols in the dictionary. This creates a node that has the value of the sum of the two counts. 3) Continue combining the two lowest counts in this manner until there is only one symbol remaining. This generates a Huffman binary code tree”; ¶0116 also discloses “in this compression procedure, we will re-build a Huffman code tree every time we add a symbol to the current dictionary. This means that the Huffman code for a given symbol can change with every compression pass”; ¶0170 further discloses “Huffman tree that was used to compress the data” and “dictionary of symbols that was created during the compression process”; note: a new symbol as another string of subsets of strings);
identifying the first subset of strings with frequencies in the segment that satisfy one or more criteria (Teerlink: at least ¶¶0043-0044; “creating a new symbol for the most highly occurring tuple, and add it to the dictionary” and “replacing all occurrences of the most highly occurring tuple with the new symbol”);
generating a dictionary for the first subset of strings (Teerlink: at least ¶0170; “the dictionary of symbols that was created during the compression process”; ¶0116 further discloses “we will re-build a Huffman code tree every time we add a symbol to the current dictionary”);
determining, for symbols in the plurality of strings, a frequency that each symbol of the symbols appears in the segment (Teerlink: at least ¶0113; “… count the number of instances of each of the symbols”; ¶0255 also discloses “use the frequency information to create a Huffman encoding tree for the symbols that occur in the current file”);
generating a Huffman data structure based on the frequencies that each symbol of the symbols appears in the segment (Teerlink: at least ¶0113; “… next, we use the counts to build a Huffman binary code tree. 1) List the symbols from highest count to lowest count. 2) Combine the counts for the two least frequently occurring symbols in the dictionary. This creates a node that has the value of the sum of the two counts. 3) Continue combining the two lowest counts in this manner until there is only one symbol remaining. This generates a Huffman binary code tree”);
and generating a compressed segment, wherein the compressed segment includes codes from the Huffman data structure in place of the second subset of strings (Teerlink: at least ¶¶0194 & 0198; “to store the encoded data, we replace the symbol with its matching Huffman code and write the bits to the media” and “as summarized in the diagram 69, FIG. 69, the information stored in the compressed file is the file type, symbol width, Huffman tree, dictionary, encoded data, and EOF symbol”; ¶0284 further discloses “we now replace the symbols with their Huffman code value when the file is stored, such as in file format element 69” and “the original bit stream that is coded to symbols or a new bit stream, then coded to Huffman codes. For example, the "0" bit at position 250 in the original bit stream coded to a symbol "0" as described in FIG. 88. By replacing the symbol 0 with its Huffman code (1001) from table 290”; ¶0286 further discloses “data that is encoded by using the new Huffman tree”).
Teerlink does not explicitly disclose, but Bailey discloses wherein the compressed segment includes keys from the dictionary in place of the first subset of strings (Bailey: at least ¶0052; “a dictionary or table is constructed from strings of data in the file, and subsequent repeated strings are replaced with table entries or identifiers. The more such strings are repeated, the greater the file may be compressed”).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate Bailey’s feature of wherein the compressed segment includes keys from the dictionary in place of the first subset of strings (Bailey: at least ¶0052) with Teerlink’s method.
The suggestion/motivation for doing so would have been to perform compression on data with repeating string occurrences (Bailey: at least ¶0052).
Claim 11 (an apparatus claim) corresponds in scope to Claim 1, and is similarly rejected.
Claim 20 (an apparatus claim) corresponds in scope to Claim 1, and is similarly rejected.
As to Claim 2, Teerlink and Bailey teach the method of claim 1, wherein identifying the first subset of strings comprises: identifying a maximum quantity of strings to be represented in the dictionary (Teerlink: at least ¶280; “to construct the tree 280, list first the symbols from highest count to lowest count. In this example, the symbol "8" and symbol "6" tied with a count of fourteen and are each listed highest on the tree”);
identifying first strings of the plurality of strings with the highest frequencies of appearance in the segment, wherein a quantity of the first strings matches the maximum quantity of strings to be represented in the dictionary (Teerlink: at least ¶280; “to construct the tree 280, list first the symbols from highest count”); and
selecting the first strings as the first subset of strings (Teerlink: at least ¶¶0043-0044; “creating a new symbol for the most highly occurring tuple, and add it to the dictionary” and “replacing all occurrences of the most highly occurring tuple with the new symbol”).
Claim 12 (an apparatus claim) corresponds in scope to Claim 2, and is similarly rejected.
As to Claim 3, Teerlink and Bailey teach the method of claim 1 further comprising: identifying a string to be added to the segment (Teerlink: at least ¶0109; “we add a new symbol 2 to the dictionary and define it with the tuple defined as 1 followed by 0 (1>0). It is added to the dictionary 26' as seen in FIG. 13”); updating the compressed segment based on at least the dictionary and the Huffman data structure (Teerlink: at least ¶0116; “we will re-build a Huffman code tree every time we add a symbol to the current dictionary. This means that the Huffman code for a given symbol can change with every compression pass”).
Claim 13 (an apparatus claim) corresponds in scope to Claim 3, and is similarly rejected.
As to Claim 5, Teerlink and Bailey teach the method of claim 1, wherein determining, for the plurality of strings in the segment, the frequency that each string of the plurality of strings appears in the segment comprises: identifying a sample set of strings from the plurality of strings in the segment (Teerlink: at least ¶¶0043-0044; “creating a new symbol for the most highly occurring tuple, and add it to the dictionary” and “replacing all occurrences of the most highly occurring tuple with the new symbol”); and
determining, for the plurality of strings in the segment, the frequency that each string of the plurality of strings appears in the segment based on the sample set of strings (Teerlink: at least ¶¶0043-0044; “creating a new symbol for the most highly occurring tuple, and add it to the dictionary”).
Claim 15 (an apparatus claim) corresponds in scope to Claim 5, and is similarly rejected.
Claims 4, 6, 14 and 16 are rejected under 35 U.S.C. 103 as being unpatentable over US PGPUB 2011/0016138 by Teerlink in view of US PGPUB 2019/0109869 by Bailey, and further in view of US Patent 6,192,259 by Hayashi.
As to Claim 4, Teerlink and Bailey teach the method of claim 1.
Teerlink and Bailey do not explicitly disclose, but Hayashi discloses further comprising: obtaining a query comprising a first string (Hayashi: at least Col. 7 Lines 8-10; “each character or character string is examined to whether or not it exists in the compression dictionary”); translating the first string to a second format based on the dictionary (Hayashi: at least Col. 8 Lines 40-42; “transmitted data is compressed and stored in the compressed data memory 13 as compressed data”); and generating a response to the query using the second format (Hayashi: at least Col. 8 Lines 40-42; “transmitted data is compressed and stored in the compressed data memory 13 as compressed data”; note: response in compressed format).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate Hayashi’s features of obtaining a query comprising a first string (Hayashi: at least Col. 7 Lines 8-10); translating the first string to a second format based on the dictionary (Hayashi: at least Col. 8 Lines 40-42); and generating a response to the query using the second format (Hayashi: at least Col. 8 Lines 40-42) with the method disclosed by Teerlink and Bailey.
The suggestion/motivation for doing so would have been to perform data transmission (Hayashi: at least Col. 5 Lines 54-57; “transmitted data is compressed according to a compression dictionary stored in a compression section 6, and stored as compressed data in a compressed data memory”) of data such as "text data such as e-mail," or "image data such as photograph" (Hayashi: at least Col. 5 Lines 26-28).
Claim 14 (an apparatus claim) corresponds in scope to Claim 4, and is similarly rejected.
As to Claim 6, Teerlink and Bailey teach the method of claim 1, further comprising: identifying a string to be added to the segment (Teerlink: at least ¶0116; “in this compression procedure, we will re-build a Huffman code tree every time we add a symbol to the current dictionary”).
Teerlink and Bailey do not explicitly disclose, but Hayashi discloses determining that the string is in the dictionary (Hayashi: at least Col. 7 Lines 8-10; “each character or character string is examined to whether or not it exists in the compression dictionary”); and when the string is in the dictionary, adding the string to the compressed segment using a unique key for the string from the dictionary (Hayashi: at least Col. 7 Line 67 – Col. 8 Line 3; “If all character or character strings in the transmitted data exist in the compression dictionary, they are converted into corresponding numeric data, and compressed”; Col. 8 Lines 40-42 further disclose “transmitted data is compressed and stored in the compressed data memory 13 as compressed data”).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate Hayashi’s features of identifying a string to be added to the segment; determining that the string is in the dictionary (Hayashi: at least Col. 7 Lines 8-10); and when the string is in the dictionary, adding the string to the compressed segment using a unique key for the string from the dictionary (Hayashi: at least Col. 7 Line 67 – Col. 8 Line 3, Col. 8 Lines 40-42) with the method disclosed by Teerlink and Bailey.
The suggestion/motivation for doing so would have been to perform data transmission (Hayashi: at least Col. 5 Lines 54-57; “transmitted data is compressed according to a compression dictionary stored in a compression section 6, and stored as compressed data in a compressed data memory”) of data such as "text data such as e-mail," or "image data such as photograph" (Hayashi: at least Col. 5 Lines 26-28).
Claim 16 (an apparatus claim) corresponds in scope to Claim 6, and is similarly rejected.
Claims 7-9 and 17-19 are rejected under 35 U.S.C. 103 as being unpatentable over US PGPUB 2011/0016138 by Teerlink in view of US PGPUB 2019/0109869 by Bailey, and further in view of US Patent 5,663,721 by Rossi.
As to Claim 7, Teerlink and Bailey teach the method of claim 1 further comprising: identifying a string to be added to the segment (Teerlink: at least ¶0116; “in this compression procedure, we will re-build a Huffman code tree every time we add a symbol to the current dictionary”); determining that the string is not in the dictionary (Teerlink: at least ¶0116; “in this compression procedure, we will re-build a Huffman code tree every time we add a symbol to the current dictionary. This means that the Huffman code for a given symbol can change with every compression pass”; ¶0133 further discloses “we define a new symbol 4 to represent the most highly occurring tuple”; note: new means not in dictionary).
Teerlink and Bailey do not explicitly disclose, but Rossi discloses in response to determining that the string is not in the dictionary, determining whether the string exceeds a threshold length (Rossi: at least Col. 3 Lines 16-22; “a new string is formed in the dictionary by appending a single character to an existing string, thereby adding a new node onto a tree. The single character is the unmatched character resulting from the string matching operation. However, if it is determined that appending the single character to an existing string would exceed a predetermined maximum string length, then the new string is not added”); and when the string does not exceed the threshold length, adding the string to the compressed segment as a raw short form of the string (Rossi: at least Col. 4 Lines 48-50; “FIG. 7 shows portions of an exemplary dictionary used with the compression or decompression method according to the present invention”; note: string is added if it does not exceed maximum length and would be used for compression).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate Rossi’s features of in response to determining that the string is not in the dictionary, determining whether the string exceeds a threshold length (Rossi: at least Col. 3 Lines 16-22); and when the string does not exceed the threshold length, adding the string to the compressed segment as a raw short form of the string (Rossi: at least Col. 4 Lines 48-50) with the method disclosed by Teerlink and Bailey.
The suggestion/motivation for doing so would have been to “compression method according to the present invention assigns a code value to a word located in a document or file according to the probability of the word occurring, for example, in the English language” (Rossi: at least Col. 3 Lines 52-55).
Claim 17 (an apparatus claim) corresponds in scope to Claim 7, and is similarly rejected.
As to Claim 8, Teerlink and Bailey teach the method of claim 1 further comprising: identifying a string to be added to the segment (Teerlink: at least ¶0116; “in this compression procedure, we will re-build a Huffman code tree every time we add a symbol to the current dictionary”); determining that the string is not in the dictionary (Teerlink: at least ¶0116; “in this compression procedure, we will re-build a Huffman code tree every time we add a symbol to the current dictionary. This means that the Huffman code for a given symbol can change with every compression pass”; ¶0133 further discloses “we define a new symbol 4 to represent the most highly occurring tuple”; note: new means not in dictionary); and applying the Huffman data structure to the string to determine a compressed version of the string (Teerlink: at least ¶0113; “… combine the counts for the two least frequently occurring symbols in the dictionary. This creates a node that has the value of the sum of the two counts. 3) Continue combining the two lowest counts in this manner until there is only one symbol remaining. This generates a Huffman binary code tree”; ¶0116 also discloses “in this compression procedure, we will re-build a Huffman code tree every time we add a symbol to the current dictionary. This means that the Huffman code for a given symbol can change with every compression pass”).
Teerlink and Bailey do not explicitly disclose, but Rossi discloses in response to determining that the string is not in the dictionary, determining whether the string exceeds a threshold length (Rossi: at least Col. 3 Lines 16-22; “a new string is formed in the dictionary by appending a single character to an existing string, thereby adding a new node onto a tree. The single character is the unmatched character resulting from the string matching operation. However, if it is determined that appending the single character to an existing string would exceed a predetermined maximum string length, then the new string is not added”);
when the string does exceed the threshold length, determine a compressed version of the string (Rossi: at least Col. 4 Lines 48-50; “FIG. 7 shows portions of an exemplary dictionary used with the compression or decompression method according to the present invention”); and adding the compressed version of the string to the compressed segment (Rossi: at least Col. 4 Lines 48-50; “FIG. 7 shows portions of an exemplary dictionary used with the compression or decompression method according to the present invention”).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate Rossi’s features of in response to determining that the string is not in the dictionary, determining whether the string exceeds a threshold length (Rossi: at least Col. 3 Lines 16-22);
when the string does exceed the threshold length, determine a compressed version of the string (Rossi: at least Col. 4 Lines 48-50); and adding the compressed version of the string to the compressed segment (Rossi: at least Col. 4 Lines 48-50) with the feature of applying the Huffman data structure to the string to determine a compressed version of the string (Teerlink: at least ¶0113) disclosed in the method disclosed by Teerlink and Bailey.
The suggestion/motivation for doing so would have been to “compression method according to the present invention assigns a code value to a word located in a document or file according to the probability of the word occurring, for example, in the English language” (Rossi: at least Col. 3 Lines 52-55).
Claim 18 (an apparatus claim) corresponds in scope to Claim 8, and is similarly rejected.
As to Claim 9, Teerlink and Bailey teach the method of claim 1 further comprising: identifying a string to be added to the segment (Teerlink: at least ¶0116; “in this compression procedure, we will re-build a Huffman code tree every time we add a symbol to the current dictionary”); determining that the string is not in the dictionary (Teerlink: at least ¶0116; “in this compression procedure, we will re-build a Huffman code tree every time we add a symbol to the current dictionary. This means that the Huffman code for a given symbol can change with every compression pass”; ¶0133 further discloses “we define a new symbol 4 to represent the most highly occurring tuple”; note: new means not in dictionary);
when the string does exceed the threshold length, determining whether all symbols in the string are in the Huffman data structure (Teerlink: at least ¶0116; “we will re-build a Huffman code tree every time we add a symbol to the current dictionary. This means that the Huffman code for a given symbol can change with every compression pass”; note: each added symbol exceeds the previous length; all symbols are in the Huffman tree with each stop);
when the Huffman data structure does include all the symbols of the string, applying the Huffman data structure to generate a compressed version of the string (Teerlink: at least ¶0116; “the Huffman code for a given symbol can change with every compression pass”);
when the Huffman data structure does not include all the symbols of the string, applying compression to generate the compressed version of the string (Teerlink: at least ¶0116; “we will re-build a Huffman code tree every time we add a symbol to the current dictionary. This means that the Huffman code for a given symbol can change with every compression pass”; note: Huffman tree does not include all symbols when new symbol needs to be added).
Teerlink and Bailey do not explicitly disclose, but Rossi discloses in response to determining that the string is not in the dictionary, determining whether the string exceeds a threshold length (Rossi: at least Col. 3 Lines 16-22; “a new string is formed in the dictionary by appending a single character to an existing string, thereby adding a new node onto a tree. The single character is the unmatched character resulting from the string matching operation. However, if it is determined that appending the single character to an existing string would exceed a predetermined maximum string length, then the new string is not added”); the compression applied to generate the compressed version of the string is Lempel-Ziv-Welch (LZW) compression (Rossi: at least Col. 1 Lines 19-22 & 59-62; “another type of algorithms that is widely used is the Lempel-Ziv data compression algorithm. The Lempel-Ziv algorithm is well known in the art” and “to reduce the amount of time required to determine if a matching word is in the history, Lempel-Ziv algorithms typically use a hash function and hash table to generate compressed data”); and adding the compressed version of the string to the compressed segment (Rossi: at least Col. 4 Lines 48-50; “FIG. 7 shows portions of an exemplary dictionary used with the compression or decompression method according to the present invention”).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate Rossi’s features of in response to determining that the string is not in the dictionary, determining whether the string exceeds a threshold length (Rossi: at least Col. 3 Lines 16-22); the compression applied to generate the compressed version of the string is Lempel-Ziv-Welch (LZW) compression (Rossi: at least Col. 1 Lines 19-22 & 59-62); and adding the compressed version of the string to the compressed segment (Rossi: at least Col. 4 Lines 48-50) with the method disclosed by Teerlink and Bailey.
The suggestion/motivation for doing so would have been to “compression method according to the present invention assigns a code value to a word located in a document or file according to the probability of the word occurring, for example, in the English language” (Rossi: at least Col. 3 Lines 52-55).
Claim 19 (an apparatus claim) corresponds in scope to Claim 9, and is similarly rejected.
Conclusion
Any inquiry concerning this communication or earlier communications from the Examiner should be directed to Huen Wong whose telephone number is (571) 270-3426. The examiner can normally be reached on Monday - Friday (10:30AM EST -6:30PM EST). If attempts to reach the examiner by telephone are unsuccessful, the Examiner's supervisor, Charles Rones can be reached on (571) 272-4058. The fax phone number for the organization where this application or proceeding is assigned is (571) 273-8300 for regular communications and after final communications.
Information regarding the status of an application may be obtained from the Patent Application Information Retrieval (PAIR) system. Status information for published applications may be obtained from either Private PAIR or Public PAIR. Status information for unpublished applications is available through Private PAIR only. For more information about the PAIR system, see http://pair-direct.uspto.gov. Should you have questions on access to the Private PAIR system, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative or access to the automated information system, call
800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/H.W/Examiner, Art Unit 2168 15 December 2025
/CHARLES RONES/Supervisory Patent Examiner, Art Unit 2168