US 11,853,381 B2
Hybrid fetching using a on-device cache
Xin Li, Mountain View, CA (US); Yixin Wang, Mountain View, CA (US); Benedict Liang, Mountain View, CA (US); and Dharminder Singh, Mountain View, CA (US)
Assigned to Google LLC, Mountain View, CA (US)
Filed by Google LLC, Mountain View, CA (US)
Filed on Nov. 13, 2020, as Appl. No. 17/098,016.
Prior Publication US 2022/0156340 A1, May 19, 2022
Int. Cl. G06F 16/00 (2019.01); G06F 16/957 (2019.01); G06F 16/903 (2019.01); G06F 16/9032 (2019.01); G06F 16/9035 (2019.01)
CPC G06F 16/9574 (2019.01) [G06F 16/9035 (2019.01); G06F 16/90324 (2019.01); G06F 16/90332 (2019.01); G06F 16/90335 (2019.01)] 18 Claims
OG exemplary drawing
 
1. A method comprising:
executing, by a computing device, an assistance application, wherein the assistance application generates one or more current context parameters and queries a query answer cache;
predicting, by the computing device, future usage of the assistance application, wherein the future usage includes one or more queries predicted to be received by the assistance application and a time range during which the assistance application is predicted to receive at least one of the one or more queries;
predicting, by the computing device and based on the predicted future usage of the assistance application, a network connectivity state of the computing device;
determining, by the computing device and based on the time range, whether the predicted network connectivity state is indicative of the computing device having network connectivity;
responsive to determining that the predicted network connectivity state is indicative of the computing device not having network connectivity during the time range:
predicting, by the computing device, a plurality of predicted queries predicted to be received by the assistance application during the time range, wherein each predicted query from the plurality of predicted queries is associated with a respective set of context parameters, wherein the respective set of context parameters include at least one of a set of historical user queries for a user of the computing device, a set of historical user behaviors of the user of the computing device, and a first predicted destination;
prefetching, by the computing device and based on the plurality of predicted queries, at least one predicted query answer; and
storing, in the query answer cache of the computing device, the at least one predicted query answer, an indication of a predicted query associated with the at least one predicted query answer, and an indication of the respective set of context parameters associated with the predicted query associated with the at least one predicted query answer;
receiving, by the computing device, a user input;
determining, by the computing device and based at least in part on the user input, at least one text query;
responsive to determining the at least one text query, generating, by the computing device, one or more current context parameters associated with the at least one text query, the one or more current context parameters including one or more of a current time, a current location, a current user of the computing device, and a second predicted destination;
querying, by the computing device and based on the at least one text query and the one or more current context parameters, the query answer cache to generate a query result;
determining, based on the query result, whether the query answer cache includes a query answer for the at least one text query and the one or more current context parameters, wherein the query answer cache includes the query answer for least at least one text query when the at least one text query and the one or more current context parameters match a predicted query from the plurality of predicted queries and the respective set of context parameters associated with the predicted query from the plurality of predicted queries;
responsive to determining that the query answer cache includes the query answer, determining that the query result is the query answer; and
outputting, by the computing device, an indication of the query answer.