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 .
Response to Amendments
The action is responsive to the Applicant’s Amendment filed on 7/06/2026. Claims 1-20 are pending in the application. Claims 1, 3, 11, and 13 are amended.
Applicant’s amendments to the claims integrate the processes into a practical application. The 101 rejection of claims 1-20 previously set forth in the Non-Final Office Action mailed 4/06/2026 is hereby withdrawn.
Response to Arguments
Applicant’s arguments with respect to the rejections of claims 1-20 have been fully considered. In view of the claim amendment filed, the rejection has been withdrawn. However, upon further consideration, a new ground(s) of rejection is made.
Further, regarding the new limitations recited in claims 1, 3, 11, and 13, it is submitted that they are properly addressed by the new ground of rejection.
Furthermore, it is also submitted that all limitations in pending claims, including those not specifically argued, are properly addressed. The reason is set forth in the rejections. See claim analysis below for details.
Claim Rejections - 35 USC § 112
The following is a quotation of 35 U.S.C. 112(b):
(b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention.
The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph:
The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention.
Claim 1 recites the limitation "the compacted data file". There is insufficient antecedent basis for this limitation in the claim.
Claims 1 and 11 recite the limitation "query execution results". There is insufficient antecedent basis for this limitation in the claim.
Claims 9 and 19 recite the limitation "learning results". There is insufficient antecedent basis for this limitation in the claim.
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
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 Zhang et al. (US20200311077) in view of Verkasalo (US 20150200815- A1).
Regarding Claim 1, Zhang discloses a system for adaptive random access with learned query optimization for compacted data files ([0070]-[0072]: Non-limiting examples of techniques that may be incorporated in an implementation of one or more machines include… Neural Random Access Memory… Non-limiting examples of training procedures for adjusting trainable parameters include supervised training (e.g., using gradient descent or any other suitable optimization method); Fig. 1C; [0037]: In some examples, the codebooks 190 may be learned), comprising:
a computing device comprising a memory, a processor, and a non-volatile data storage device (Fig. 3; [0075]: Display subsystem 122 may include one or more display devices utilizing virtually any type of technology);
a learned access pattern store comprising data representing historical query patterns and user behavior models (Fig. 1; [0072]-[0074]: processes, and/or components may be trained independently of other components (e.g., offline training on historical data)… data held by storage subsystem 104),
the learned access pattern store further comprising a plurality of learned codeword pattern models derived from prior decoding of the compacted data file ([0040]: Accordingly, each compressed answer vector of a candidate cluster is defined as a plurality of codeword sub-vectors; [0073]: Any combination of AI and/or ML models, differentiable functions, statistical models, etc., may be used);
a random access engine comprising a plurality of programming instructions stored in the memory and operating on the processor (Fig. 3; [0025]: RAM 106 may include any suitable combination of memory technologies; [0070]: Non-limiting examples of techniques that may be incorporated in an implementation of one or more machines include… Neural Random Access Memory),
wherein the plurality of programming instructions, when operating on the processor, cause the computing device to:
receive a data search query for a compacted data file ([0003]: A method for semantic search includes receiving a query vector; Fig. 1B; [0027]: Routing layer 152 searches for one or more candidate clusters with regard to a query vector 160),
the compacted data file comprising a plurality of codewords ([0040]: Accordingly, each compressed answer vector of a candidate cluster is defined as a plurality of codeword sub-vectors),
each codeword of the plurality of codewords comprising a reference code to a sourceblock in a reference codebook ([0039]: FIG. 1D also shows an exemplary recovered vector 198A that could be generated from the compressed vector 184A using the codebooks. As shown, the codebooks have entries that can be used to approximately represent the uncompressed vectors) and
being stored without a fixed-length boundary marker ([0028]-[0031]: In some examples, searching for the candidate cluster centroid(s) 170 includes searching a graph of cluster centroids 164, e.g., by following edges in the graph based on geometric distance to the query vector… In an example, the ground layer 164G is built incrementally by iteratively inserting each cluster centroid and generating, for each node, a fixed number of outgoing edges);
retrieve learned pattern data from the learned access pattern store corresponding to the data search query (Fig. 4B; [0003]: A method for semantic search includes receiving a query vector… a corresponding uncompressed answer vector is retrieved);
optimize at least one random access parameter based on the learned pattern data ([0072]: Non-limiting examples of training procedures for adjusting trainable parameters include supervised training (e.g., using gradient descent or any other suitable optimization method)),
wherein the at least one random access parameter comprises a codeword boundary location within the compacted data file ([0067]-[0071]: Storage subsystem 104′ may include volatile, nonvolatile, dynamic, static, read/write, read-only, random-access, sequential-access, location-addressable, file-addressable, and/or content-addressable devices… Such methods and processes may be at least partially determined by a set of trainable parameters); and
execute the data search query using the optimized random access parameter to locate data within the compacted data file ([0069]-[0073]: computing system 100′ may be configured to instantiate a semantic search machine 150, as shown in FIG. 1A and as further detailed in FIG. 1B… Such methods and processes may be at least partially determined by a set of trainable parameters),
wherein executing the data search query comprises: analyzing a bit sequence at an estimated location within the compacted data file using the plurality of learned codeword pattern models (Figs. 1B-1C; [0033]-[0040]: Each compressed vector is defined by a vector ID and a vector code… Each codepoint (e.g., codepoint 188A[1]) in the code 188A is stored as an index, indicating a vector in a codebook… the codebook may be learned by performing Lloyd's algorithm, or any other suitable algorithm);
applying statistical pattern matching to the bit sequence to identify the codeword boundary location, the codeword boundary location distinguishing a start of a codeword from a position within the codeword ([0073]: Any combination of AI and/or ML models, differentiable functions, statistical models, etc., may be used to generate semantic vectors in a semantic feature space… semantic search may be used as a step in an AI and/or ML machine (e.g., to search among inputs, intermediate values, and/or outputs of other components of the AI and/or ML machine));
decoding, using the reference codebook, one or more of the plurality of codewords beginning at the identified codeword boundary location, thereby avoiding decoding errors that would otherwise result from initiating random access at a position within a codeword ([0042]: Returning to FIG. 1C, uncompressed candidate vectors 194 may be encoded to produce compressed vectors 184, based on codebooks 190 learned for the uncompressed candidate vectors 194; [0003]: A subset of the plurality of compressed answer vectors are promoted as candidate answers. For each of the candidate answers, a corresponding uncompressed answer vector is retrieved from a relatively slower memory. A selected answer is promoted from among the candidate answers; Fig. 2; [0060]: At 212, method 200 includes, for each candidate answer, retrieving a corresponding uncompressed answer);
However, Zhang does not explicitly teach “a learning feedback system comprising a plurality of programming instructions stored in the memory and operating on the processor, wherein the plurality of programming instructions, when operating on the processor, cause the computing device to: monitor query execution results comprising at least a boundary detection accuracy of the identified codeword boundary location; and update the plurality of learned codeword pattern models in the learned access pattern store based on the query execution results.”
On the other hand, in the same field of endeavor, Verkasalo teaches
a learning feedback system comprising a plurality of programming instructions stored in the memory and operating on the processor, wherein the plurality of programming instructions, when operating on the processor, cause the computing device to (Fig. 3, data mining engine 500; [0019]: Further, the data mining engine may conduct factor and cluster analysis, perform correlation calculus, recognize patterns, learn. i.e. adapt its behaviour, from the incoming data):
monitor query execution results comprising at least a boundary detection accuracy of the identified codeword boundary location (Figs. 3-5; [0034]: An API may support, for example, queries by other system in response to which it supplies data in accordance with the query details; [0070]-[0071]: The data mining engine 500 may process the raw data provided by the data storage 400, and supply the processed data and analysis results… Advantageously the parser 301 may further detect and leave out, i.e. filter out, corrupted data by monitoring e.g. data values); and
update the plurality of learned codeword pattern models in the learned access pattern store based on the query execution results ([0071]: A dynamic statistics module 303 may, substantially upon data arrival, derive and/or update simple and straightforward statistics out of the raw data flow, thus updating, for example, the status of each user stored in the system (for example, updating at the time of receiving a data point that such data is the most current for the respective user)).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the teaching of Zhang to incorporate the teachings of Verkasalo to monitor query execution results and update the learned access pattern store.
The motivation for doing so would be to incorporate feedback about prediction accuracy into statistical models, as recognized by Verkasalo ([Abstract] of Verkasalo: System and method for behavioral and contextual data analytics are disclosed… to describe user behavior… and apply the behavior model to predict a usage duration of a second application in response to usage of a first application).
Regarding Claim 2, the combined teachings of Zhang and Verkasalo disclose the system of claim 1.
Verkasalo further teaches wherein the random access engine further comprises an adaptive estimator module that optimizes location estimation by:
calculating a base mathematical estimate for a location hint in the data search query ([0016]: Further, the data input module may calculate immediate dynamic statistics out of the raw data; [0083]: a variable can be calculated identifying the country of presence, and possible some metadata such as whether that country is the user's home country or not; [0100]: reasonable estimates can be calculated for each user's status at any particular time; [0111]: Some parameters that can be, either alone or as a desired combination, included as part of the queries include… Location (context) (old, current, future));
retrieving pattern-based adjustment factors from the learned access pattern store based on similar historical queries ([0019]: Further, the data mining engine may conduct factor and cluster analysis, perform correlation calculus, recognize patterns, learn. i.e. adapt its behaviour, from the incoming data, enrich the data and/or in other ways make more intelligence out of the often less meaningful raw data); and
generating an optimized location estimate by combining the base mathematical estimate with the pattern-based adjustment factors ([0127]: In some examples, the server arrangement is configured to determine a statistical model of usage behavior to provide an estimate for a user's or a user group's status at a particular instant in view of location).
Regarding Claim 3, the combined teachings of Zhang and Verkasalo disclose the system of claim 1.
Zhang further teaches wherein the random access engine to identify the codeword boundary location performs a bidirectional pattern search that examines bit sequences both preceding and following the estimated location to identify a plurality of candidate boundary locations (Fig. 1B- Fig. 2; [0027]-[0029]: Routing layer 152 searches for one or more candidate clusters with regard to a query vector 160… In some examples, searching for the candidate cluster centroid(s) 170 includes searching a graph of cluster centroids 164… In examples, the graph may be navigated via greedy search, breadth-first search, depth-first search, beam search, and/or any other suitable graph search methods);
calculates a pattern match score for each candidate boundary location of the plurality of candidate boundary locations using the plurality of learned codeword pattern models ([0038]: The geometric distance function may be used to calculate the geometric distance between a query vector and a cluster centroid; [0046]: Fig. 2… Accordingly, the semantic space admits a geometric distance function used to calculate the geometric distance between the query vector and the cluster centroid);
selects, as the codeword boundary location, the candidate boundary location having a highest pattern match score (Fig. 2; [0047]: At 204, method 200 includes finding a selected cluster from a plurality of different candidate clusters); and
validates the selected codeword boundary location by forward pattern checking that confirms a subsequent bit sequence forms a valid codeword according to the reference codebook (Fig. 2; [0040]-[0059]: Accordingly, each compressed answer vector of a candidate cluster is defined as a plurality of codeword sub-vectors according to the product quantization code… At 204, method 200 includes finding a selected cluster from a plurality of different candidate clusters. In examples, each candidate cluster includes a plurality of compressed answer vectors that collectively have a cluster centroid, wherein the selected cluster is found based on a geometric distance between the query vector and the cluster centroid of the selected cluster).
Regarding Claim 4, the combined teachings of Zhang and Verkasalo disclose the system of claim 1,
Verkasalo further teaches wherein the at least one random access parameter comprises search strategy selection ([0111]: Some parameters that can be, either alone or as a desired combination, included as part of the queries include… [0116] 5. Context (semantic, for example home, school, office, bus)[0117] 6. Behavioural patterns (application usage)), and wherein the random access engine optimizes search strategy selection by:
analyzing characteristics of the data search query ([0070]: The data mining engine 500 may process the raw data provided by the data storage 400, and supply the processed data and analysis results, i.e. derived data, back to the storage 400 after each analysis round, for example);
retrieving historical success rates for different search strategies from the learned access pattern store ([0070]-[0073]: derived data points may utilize historical data); and
selecting an optimal search strategy based on the query characteristics and historical success rates ([0071]-[0073]: By using masking and utilizing optimal database architecture… Indexing, buffering, replication and/or other database configurations can be adjusted also for the requirements of the data mining engine and back-up purposes… Effectively the database design facilitates optimal use of memory capacity together with optimizing latency and other important factors in using the data).
Regarding Claim 5, the combined teachings of Zhang and Verkasalo disclose the system of claim 1.
Verkasalo further teaches further comprising a dynamic codebook optimizer that:
analyzes source block access frequencies from the learned access pattern store; identifies frequently accessed sourceblocks based on access frequency thresholds ([0082]-[0085]: Some practical behavioural application-level individual statistics besides usage intensity figures, that can be derived from raw data, include for example usage frequencies of applications… A practical application is to analyze usage frequency variables of application categories); and
reorganizes a reference codebook by relocating the frequently accessed source blocks to positions that minimize access latency ([0071]-[0073]: By using masking and utilizing optimal database architecture… Indexing, buffering, replication and/or other database configurations can be adjusted also for the requirements of the data mining engine and back-up purposes… Effectively the database design facilitates optimal use of memory capacity together with optimizing latency and other important factors in using the data).
Regarding Claim 6, the combined teachings of Zhang and Verkasalo disclose the system of claim 5.
Verkasalo further teaches wherein the dynamic codebook optimizer further implements hierarchical reference codes by assigning shorter reference codes to the frequently accessed sourceblocks based on actual access patterns (Figs. 3-5; [0070]-[0071]: The data storage 400 also contains other required data tables, for example mapping tables for applications, country codes (MCCs), and operator codes (MNCs), which may be updated dynamically… The parser 301 may assign unique user identification numbers for each set of incoming data. This facilitates more efficient processing of data later in the system, as only such user identification codes need to be used in referring to a particular user's data points).
Regarding Claim 7, the combined teachings of Zhang and Verkasalo disclose the system of claim 1.
Verkasalo further teaches further comprising an enhanced search cache ([0066]: Fig. 2; Similarly, the memory entity 222 may be divided between one or more physical memory chips or other memory elements) that:
generates predictions of likely future queries based on current query context and learned access patterns ([0111]: Likelihood estimates (predictions) for a particular wireless device user's location in a desired time period, e.g. in one hour);
calculates confidence scores for the predictions ([0100]: With the resulting probabilistic models, reasonable estimates can be calculated for each user's status at any particular time, for example predicting for how long he will still be using the same application);
and proactively loads predicted data when system resources permit (Fig. 6;[0074]: Accordingly, module 501 works as a buffer, loading data optimally to data processing functions; [0100]: These kinds of pattern recognition and predictive models, based on behavioural and contextual models together with the data processing capabilities introduced into the examples of the present disclosure, have direct applications in sending predictive advertisements or other personalized data to users).
Regarding Claim 8, the combined teachings of Zhang and Verkasalo disclose the system of claim 1.
Verkasalo further teaches wherein the learned pattern data comprises: user behavior patterns indicating query sequences and preferences; temporal access patterns indicating time-based variations in data access; and co-occurrence data indicating which data elements are frequently accessed together ([0012]: Accordingly, the server arrangement is preferably configured to process the incoming behavioural, contextual and/or technical data… analyze it (for instance, execute recognition of behavioural and contextual patterns); [0026]: a number of different statistical algorithms which are used to identify patterns and/or extract other potentially meaningful information out of data; [0100]: By feeding historical patterns of application usage, including information on the identity and/or type of applications, session durations, and/or the identity and type of temporally adjacent application(s), statistical models of usage behavior can be built).
Regarding Claim 9, the combined teachings of Zhang and Verkasalo disclose the system of claim 1, wherein the learning feedback system further:
Verkasalo further teaches tracks prediction accuracy for optimized random access parameters ([0021]-[0022]: e.g. location tracking and/or prediction… The server arrangement is enabled to autonomously process and analyze the raw data obtained from wireless devices, while understanding the nature and typical flow of data, and is optimized for handling of such transactional data with various special characteristics including the contextual nature thereof, the data initially being private and user-specific, thus facilitating the calculus of e.g. user-specific behavioural and/or contextual vectors with increased accuracy);
applies temporal decay weighting to emphasize recent query patterns over historical data ([0110]-[0111]: Most recent behavioural profile of a wireless device user based on application usage patterns… Some parameters that can be, either alone or as a desired combination, included as part of the queries include… Time indication (temporal context)); and
validates learning results against system performance metrics before updating the learned access pattern store ([0064]-[0076]: The intelligence logic is preferably capable of learning from the collected data, observed patterns… If the application is known (the name or application ID number recognized and categorized), renaming (harmonization of application naming) and/or categorization may be performed already in the parser, before anything is stored into the database; [0123]: wherein at least one derived data element includes usage metrics with contextual and optionally technical dimension).
Regarding Claim 10, the combined teachings of Zhang and Verkasalo disclose the system of claim 1.
Verkasalo further teaches wherein the random access engine optimizes multiple random access parameters simultaneously ([0023] Secondly, examples disclosed herein may be designed so as to enable handling both intermittent and continuous data transmissions arriving from a plurality (e.g. tens, hundreds, thousands, or even more) of wireless devices substantially simultaneously), the random access parameters comprising location estimation accuracy, boundary detection precision, and search strategy effectiveness ([0111]: Some parameters that can be, either alone or as a desired combination, included as part of the queries include…
[0114] 3. Location (context) (old, current, future)[0115] 4. Status information (e.g. “moving”, “busy”)[0116] 5. Context (semantic, for example home, school, office, bus)[0117] 6. Behavioural patterns (application usage)).
Regarding Claim 11, Zhang discloses a method for adaptive random access with learned query optimization for compacted data files ([0070]-[0072]: Non-limiting examples of techniques that may be incorporated in an implementation of one or more machines include… Neural Random Access Memory… Non-limiting examples of training procedures for adjusting trainable parameters include supervised training (e.g., using gradient descent or any other suitable optimization method); Fig. 1C; [0037]: In some examples, the codebooks 190 may be learned), comprising the steps of:
receiving a data search query for a compacted data file ([0003]: A method for semantic search includes receiving a query vector; Fig. 1B; [0027]: Routing layer 152 searches for one or more candidate clusters with regard to a query vector 160),
the compacted data file comprising a plurality of codewords ([0040]: Accordingly, each compressed answer vector of a candidate cluster is defined as a plurality of codeword sub-vectors),
each codeword of the plurality of codewords comprising a reference code to a sourceblock in a reference codebook ([0039]: FIG. 1D also shows an exemplary recovered vector 198A that could be generated from the compressed vector 184A using the codebooks. As shown, the codebooks have entries that can be used to approximately represent the uncompressed vectors) and
being stored without a fixed-length boundary marker ([0028]-[031]: In some examples, searching for the candidate cluster centroid(s) 170 includes searching a graph of cluster centroids 164, e.g., by following edges in the graph based on geometric distance to the query vector… In an example, the ground layer 164G is built incrementally by iteratively inserting each cluster centroid and generating, for each node, a fixed number of outgoing edges);
retrieving learned pattern data from a learned access pattern store corresponding to the data search query (Fig. 4B; [0003]: A method for semantic search includes receiving a query vector… a corresponding uncompressed answer vector is retrieved),
the learned pattern data comprising a plurality of learned codeword pattern models derived from prior decoding of the compacted data file ([0037]-[0040]: In some examples, the codebooks 190 may be learned with regard to the k different m/k-dimensional subspaces based on a plurality of different uncompressed candidate vectors 194… Accordingly, each compressed answer vector of a candidate cluster is defined as a plurality of codeword sub-vectors);
optimizing at least one random access parameter based on the learned pattern data ([0072]: Non-limiting examples of training procedures for adjusting trainable parameters include supervised training (e.g., using gradient descent or any other suitable optimization method)),
wherein the at least one random access parameter comprises a codeword boundary location within the compacted data file ([0067]-[0071]: Storage subsystem 104′ may include volatile, nonvolatile, dynamic, static, read/write, read-only, random-access, sequential-access, location-addressable, file-addressable, and/or content-addressable devices… Such methods and processes may be at least partially determined by a set of trainable parameters);
executing the data search query using the optimized random access parameter to locate data within the compacted data file ([0069]-[0073]: computing system 100′ may be configured to instantiate a semantic search machine 150, as shown in FIG. 1A and as further detailed in FIG. 1B… Such methods and processes may be at least partially determined by a set of trainable parameters),
wherein executing the data search query comprises analyzing a bit sequence at an estimated location within the compacted data file using the plurality of learned codeword pattern models (Figs. 1B-1C; [0033]-[0040]: Each compressed vector is defined by a vector ID and a vector code… Each codepoint (e.g., codepoint 188A[1]) in the code 188A is stored as an index, indicating a vector in a codebook… the codebook may be learned by performing Lloyd's algorithm, or any other suitable algorithm),
applying statistical pattern matching to the bit sequence to identify the codeword boundary location that distinguishes a start of a codeword from a position within the codeword ([0073]: Any combination of AI and/or ML models, differentiable functions, statistical models, etc., may be used to generate semantic vectors in a semantic feature space… semantic search may be used as a step in an AI and/or ML machine (e.g., to search among inputs, intermediate values, and/or outputs of other components of the AI and/or ML machine)), and
decoding, using the reference codebook, one or more of the plurality of codewords beginning at the identified codeword boundary location, thereby avoiding decoding errors that would otherwise result from initiating random access at a position within a codeword ([0042]: Returning to FIG. 1C, uncompressed candidate vectors 194 may be encoded to produce compressed vectors 184, based on codebooks 190 learned for the uncompressed candidate vectors 194; [0003]: A subset of the plurality of compressed answer vectors are promoted as candidate answers. For each of the candidate answers, a corresponding uncompressed answer vector is retrieved from a relatively slower memory. A selected answer is promoted from among the candidate answers; Fig. 2; [0060]: At 212, method 200 includes, for each candidate answer, retrieving a corresponding uncompressed answer);
However, Zhang does not explicitly teach “monitoring query execution results comprising at least a boundary detection accuracy of the identified codeword boundary location; and updating the plurality of learned codeword pattern models in the learned access pattern store based on the query execution results.”
On the other hand, in the same field of endeavor, Verkasalo teaches
monitoring query execution results comprising at least a boundary detection accuracy of the identified codeword boundary location (Figs. 3-5; [0034]: An API may support, for example, queries by other system in response to which it supplies data in accordance with the query details; [0070]-[0071]: The data mining engine 500 may process the raw data provided by the data storage 400, and supply the processed data and analysis results… Advantageously the parser 301 may further detect and leave out, i.e. filter out, corrupted data by monitoring e.g. data values); and
updating the plurality of learned codeword pattern models in the learned access pattern store based on the query execution results ([0071]: A dynamic statistics module 303 may, substantially upon data arrival, derive and/or update simple and straightforward statistics out of the raw data flow, thus updating, for example, the status of each user stored in the system (for example, updating at the time of receiving a data point that such data is the most current for the respective user)).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the teaching of Bortnikov to incorporate the teachings of Verkasalo to monitor query execution results and update the learned access pattern store.
The motivation for doing so would be to describe user behavior and apply a behavior model to predict usage, as recognized by Verkasalo ([Abstract] of Verkasalo: System and method for behavioral and contextual data analytics are disclosed… to describe user behavior… and apply the behavior model to predict a usage duration of a second application in response to usage of a first application).
Regarding Claim 12, the combined teachings of Zhang and Verkasalo disclose the method of claim 11.
Verkasalo further teaches further comprising the steps of:
calculating a base mathematical estimate for a location hint in the data search query ([0016]: Further, the data input module may calculate immediate dynamic statistics out of the raw data; [0083]: a variable can be calculated identifying the country of presence, and possible some metadata such as whether that country is the user's home country or not; [0100]: reasonable estimates can be calculated for each user's status at any particular time; [0111]: Some parameters that can be, either alone or as a desired combination, included as part of the queries include… Location (context) (old, current, future));
retrieving pattern-based adjustment factors from the learned access pattern store based on similar historical queries ([0019]: Further, the data mining engine may conduct factor and cluster analysis, perform correlation calculus, recognize patterns, learn. i.e. adapt its behaviour, from the incoming data, enrich the data and/or in other ways make more intelligence out of the often less meaningful raw data); and
generating an optimized location estimate by combining the base mathematical estimate with the pattern-based adjustment factors ([0127]: In some examples, the server arrangement is configured to determine a statistical model of usage behavior to provide an estimate for a user's or a user group's status at a particular instant in view of location).
Regarding Claim 13, the combined teachings of Zhang and Verkasalo disclose the method of claim 11.
Verkasalo further teaches performing a bidirectional pattern search that examines bit sequences both preceding and following the estimated location to identify a plurality of candidate boundary locations (Fig. 1B- Fig. 2; [0027]-[0029]: Routing layer 152 searches for one or more candidate clusters with regard to a query vector 160… In some examples, searching for the candidate cluster centroid(s) 170 includes searching a graph of cluster centroids 164… In examples, the graph may be navigated via greedy search, breadth-first search, depth-first search, beam search, and/or any other suitable graph search methods);
calculating a pattern match score for each candidate boundary location of the plurality of candidate boundary locations using the plurality of learned codeword pattern models ([0038]: The geometric distance function may be used to calculate the geometric distance between a query vector and a cluster centroid; [0046]: Fig. 2… Accordingly, the semantic space admits a geometric distance function used to calculate the geometric distance between the query vector and the cluster centroid);
selecting, as the codeword boundary location, the candidate boundary location having a highest pattern match score (Fig. 2; [0047]: At 204, method 200 includes finding a selected cluster from a plurality of different candidate clusters); and
validating the selected codeword boundary location by forward pattern checking that confirms a subsequent bit sequence forms a valid codeword according to the reference codebook (Fig. 2; [0040]-[0059]: Accordingly, each compressed answer vector of a candidate cluster is defined as a plurality of codeword sub-vectors according to the product quantization code… At 204, method 200 includes finding a selected cluster from a plurality of different candidate clusters. In examples, each candidate cluster includes a plurality of compressed answer vectors that collectively have a cluster centroid, wherein the selected cluster is found based on a geometric distance between the query vector and the cluster centroid of the selected cluster).
Regarding Claim 14, the combined teachings of Zhang and Verkasalo disclose the method of claim 11.
Verkasalo further teaches wherein the at least one random access parameter comprises search strategy selection ([0111]: Some parameters that can be, either alone or as a desired combination, included as part of the queries include… [0116] 5. Context (semantic, for example home, school, office, bus)[0117] 6. Behavioural patterns (application usage)), and further comprising the steps of:
analyzing characteristics of the data search query ([0070]: The data mining engine 500 may process the raw data provided by the data storage 400, and supply the processed data and analysis results, i.e. derived data, back to the storage 400 after each analysis round, for example);
retrieving historical success rates for different search strategies from the learned access pattern store ([0070]-[0073]: derived data points may utilize historical data); and
selecting an optimal search strategy based on the query characteristics and historical success rates ([0071]-[0073]: By using masking and utilizing optimal database architecture… Indexing, buffering, replication and/or other database configurations can be adjusted also for the requirements of the data mining engine and back-up purposes… Effectively the database design facilitates optimal use of memory capacity together with optimizing latency and other important factors in using the data).
Regarding Claim 15, the combined teachings of Zhang and Verkasalo disclose the method of claim 11.
Verkasalo further teaches further comprising the steps of:
analyzing source block access frequencies from the learned access pattern store; identifying frequently accessed sourceblocks based on access frequency thresholds ([0082]-[0085]: Some practical behavioural application-level individual statistics besides usage intensity figures, that can be derived from raw data, include for example usage frequencies of applications… A practical application is to analyze usage frequency variables of application categories); and
reorganizing a reference codebook by relocating the frequently accessed sourceblocks to positions that minimize access latency ([0071]-[0073]: By using masking and utilizing optimal database architecture… Indexing, buffering, replication and/or other database configurations can be adjusted also for the requirements of the data mining engine and back-up purposes… Effectively the database design facilitates optimal use of memory capacity together with optimizing latency and other important factors in using the data).
Regarding Claim 16, the combined teachings of Zhang and Verkasalo disclose the method of claim 15.
Verkasalo further teaches further comprising the step of implementing hierarchical reference codes by assigning shorter reference codes to the frequently accessed sourceblocks based on actual access patterns (Figs. 3-5; [0070]-[0071]: The data storage 400 also contains other required data tables, for example mapping tables for applications, country codes (MCCs), and operator codes (MNCs), which may be updated dynamically… The parser 301 may assign unique user identification numbers for each set of incoming data. This facilitates more efficient processing of data later in the system, as only such user identification codes need to be used in referring to a particular user's data points).
Regarding Claim 17, the combined teachings of Zhang and Verkasalo disclose the method of claim 11.
Verkasalo further teaches further comprising the steps of:
generating predictions of likely future queries based on current query context and learned access patterns ([0111]: Likelihood estimates (predictions) for a particular wireless device user's location in a desired time period, e.g. in one hour);
calculating confidence scores for the predictions ([0100]: With the resulting probabilistic models, reasonable estimates can be calculated for each user's status at any particular time, for example predicting for how long he will still be using the same application); and
proactively loading predicted data when system resources permit (Fig. 6;[0074]: Accordingly, module 501 works as a buffer, loading data optimally to data processing functions; [0100]: These kinds of pattern recognition and predictive models, based on behavioural and contextual models together with the data processing capabilities introduced into the examples of the present disclosure, have direct applications in sending predictive advertisements or other personalized data to users).
Regarding Claim 18, the combined teachings of Zhang and Verkasalo disclose the method of claim 11.
Verkasalo further teaches wherein the learned pattern data comprises: user behavior patterns indicating query sequences and preferences; temporal access patterns indicating time-based variations in data access; and co-occurrence data indicating which data elements are frequently accessed together ([0012]: Accordingly, the server arrangement is preferably configured to process the incoming behavioural, contextual and/or technical data… analyze it (for instance, execute recognition of behavioural and contextual patterns); [0026]: a number of different statistical algorithms which are used to identify patterns and/or extract other potentially meaningful information out of data; [0100]: By feeding historical patterns of application usage, including information on the identity and/or type of applications, session durations, and/or the identity and type of temporally adjacent application(s), statistical models of usage behavior can be built).
Regarding Claim 19, the combined teachings of Zhang and Verkasalo disclose the method of claim 11.
Verkasalo further teaches further comprising the steps of:
tracking prediction accuracy for optimized random access parameters ([0021]-[0022]: e.g. location tracking and/or prediction… The server arrangement is enabled to autonomously process and analyze the raw data obtained from wireless devices, while understanding the nature and typical flow of data, and is optimized for handling of such transactional data with various special characteristics including the contextual nature thereof, the data initially being private and user-specific, thus facilitating the calculus of e.g. user-specific behavioural and/or contextual vectors with increased accuracy);
applying temporal decay weighting to emphasize recent query patterns over historical data ([0110]-[0111]: Most recent behavioural profile of a wireless device user based on application usage patterns… Some parameters that can be, either alone or as a desired combination, included as part of the queries include… Time indication (temporal context)); and
validating learning results against system performance metrics before updating the learned access pattern store ([0064]-[0076]: The intelligence logic is preferably capable of learning from the collected data, observed patterns… If the application is known (the name or application ID number recognized and categorized), renaming (harmonization of application naming) and/or categorization may be performed already in the parser, before anything is stored into the database; [0123]: wherein at least one derived data element includes usage metrics with contextual and optionally technical dimension).
Regarding Claim 20, the combined teachings of Zhang and Verkasalo disclose the method of claim 11.
Verkasalo further teaches wherein optimizing at least one random access parameter comprises optimizing multiple random access parameters simultaneously ([0023] Secondly, examples disclosed herein may be designed so as to enable handling both intermittent and continuous data transmissions arriving from a plurality (e.g. tens, hundreds, thousands, or even more) of wireless devices substantially simultaneously), including location estimation accuracy, boundary detection precision, and search strategy effectiveness ([0111]: Some parameters that can be, either alone or as a desired combination, included as part of the queries include…
[0114] 3. Location (context) (old, current, future)[0115] 4. Status information (e.g. “moving”, “busy”)[0116] 5. Context (semantic, for example home, school, office, bus)[0117] 6. Behavioural patterns (application usage)).
Conclusion
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any extension fee pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to SHIRLEY D. HICKS whose telephone number is (571)272-3304. The examiner can normally be reached Mon - Fri 7:30 - 4:00.
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, Charles Rones can be reached on (571) 272-4085. 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.
/S D H/Examiner, Art Unit 2168
/CHARLES RONES/Supervisory Patent Examiner, Art Unit 2168