Method and system for searching for applications respective of a connectivity mode of a user device

A method for searching for applications respective of a connectivity mode of a user device is provided. The method includes detecting a set of applications of a plurality of applications installed in the user device that can operate in an offline mode; receiving a search query entered by a user of the user device; determining a current connectivity mode of the user device, wherein the current connectivity mode is any one of an offline mode and an online mode; searching for at least one matching application from the set of applications, when the current connectivity mode of the user device is the offline mode; and displaying the at least one selected application on a display of the user device.

TECHNICAL FIELD

The invention generally relates to search engines for mobile or native applications.

BACKGROUND

The use of mobile devices and especially smart phones has significantly increased in recent years. Such mobile devices have become, in many cases, a primary replacement for other computing devices, allowing access by the mobile devices to data in a variety of application programs.

Application programs, also known as applications or Apps, are designed to help a user of a mobile device, (typically a smart phone or tablet computer) to perform specific tasks. Applications may be installed on a mobile device, or may be accessible and sometimes downloadable from a central repository, such as, for example, the AppStore® or Google Play®. In order to search through the applications in mobile devices, a native search engine is commonly used.

However, as so many applications are now available for download it has become significantly more difficult to search for applications that are installed on the mobile device. Furthermore, while searching for an application using the available native search engine, the search results are based on the query without considering the operation of the mobile device.

It would be therefore advantageous to provide a solution that overcomes the limitations of the prior art by providing search results to users based on their query and at least an additional parameter.

SUMMARY

The disclosure relates in various embodiments to a method for searching for applications respective of a connectivity mode of a user device. The method comprises detecting a set of applications of a plurality of applications installed in the user device that can operate in an offline mode; receiving a search query entered by a user of the user device; determining a current connectivity mode of the user device, wherein the current connectivity mode is any one of an offline mode and an online mode; searching for at least one matching application from the set of applications, when the current connectivity mode of the user device is the offline mode; and displaying the at least one selected application on a display of the user device.

The disclosure also relates in various embodiments to a user terminal. The user terminal comprises a display; a processor; and a memory, the memory containing instructions that, when executed by the processor, configure the user terminal to: detect a set of applications of a plurality of applications installed in the user device that can operate in an offline mode; receive a search query entered by a user of the user device; determine a current connectivity mode of the user device, wherein the current connectivity mode is any one of an offline mode and an online mode; search for at least one matching application from the set of applications, when the current connectivity mode of the user device is the offline mode; and display the at least one selected application on a display of the user device.

DETAILED DESCRIPTION

The embodiments disclosed are only examples of the many possible advantageous uses and implementations of the innovative teachings presented herein. In general, statements made in the specification of the present application do not necessarily limit any of the various claimed embodiments. Moreover, some statements may apply to some inventive features but not to others. In general, unless otherwise indicated, singular elements may be in plural and vice versa with no loss of generality. In the drawings, like numerals refer to like parts through several views.

By way of example for the various disclosed embodiments, a user device is configured to identify which applications of a plurality of applications accessible by a user device can operate offline. An offline mode of operation is when a mobile device executing the application currently is not connected to a data network. Upon accepting a user search query for searching applications, it checks if a connection to a data network is available, and if not applications that match the search query and can operate offline are provided as the search results. The search results are displayed over a mobile device initiating the search.

FIG. 1depicts an exemplary and non-limiting schematic diagram of a network system100utilized to describe the various embodiments disclosed herein. A user device110is connected to a network120. The user device110may be, for example, a mobile phone, a smart phone, a tablet computer, a wearable computing device, and the like. In an embodiment, a user device120is configured to execute or otherwise enable the execution of a plurality of applications111(apps).

An application111discussed herein includes, but is not limited to, a native application (also known as “Internet mobile application”), a web application, and a virtual application. A native application is any software application that runs on a mobile device and can, but is not required to, be accessed by using the Internet or via a connection to the Internet. Typically, a native application is installed on smart phones or tablet computers (Apps for Apple's iPhone® and iPad®). Examples for native applications include applications that play movies, applications that download songs, applications through which a user can order a pizza, applications through which a user can request an electrician to make a house call, and the like. A native application is downloaded from a central repository, such an AppStore®, Google Play®, and the like. A virtual application is a software application which runs within a browser embedded in another program, thereby permitting users to utilize virtual versions of applications111without downloading such applications111directly. A web application is any application111that can be accessed on the World Wide Web (WWW) via a web browser. Typically, a web application is executed by a web server and the user's device110(client) receives the processing results, such as a web application for booking flight tickets. The user device110typically executes an operating system (OS), such as an iOS® and Android®.

The network120may be, but is not limited to, a local area network (LAN), a wide area network (WAN), a metro area network (MAN), the world wide web (WWW), the Internet, a wired network, a wireless network, a cellular network, and the like, as well as any combination thereof. The cellular network may be, but is not limited to, a code division multiple access (CDMA), a global system for mobile communications (GSM), a 3rdgeneration mobile telecommunications technology (3G), a long term evolution (LTE) cellular network, and the like.

In an exemplary embodiment, the user device110includes an agent113, a processor115, a memory117, and a data storage unit (DSU)119. The memory117contains instructions that can be executed by the processor115for at least operating the agent113. The agent113may be a program or a native installed in user device110. In some embodiments, the agent113may be part of the operating system of the user device110. In an embodiment, the agent113is configured to search and lunch applications for execution on the user device110. Such applications may include native, virtual, and web applications as discussed above.

The searching capabilities of the agent113allow for searching applications111that are located in remote servers. Specifically, the agent113is configured to select one or more remote web resources140from multiple web resources140-1through140-mto respond to a query received from the user; send the query to the selected at least one web resource140; and designate a unique display segment within a display area on the user device110. Each such unique display segment corresponds to a selected web resource140. The agent113is also configured to cause the selected at least one web resource140to respond to the input query within the corresponding unique display segment and establish a direct communication between the respective selected web resource140and the user device110for enabling, in response to the query, interaction of the selected web resource140with the user within the unique display segment corresponding to the selected web resource140. The remote web resources140are communicatively connected to the network120and include at least web search engines, vertical comparison engines, servers of content providers, and servers of content publishers. The embodiments for the searching for remote resources are described in more detail in co-pending U.S. patent application Ser. No. 13/156,999 filed on Jun. 9, 2011, assigned to common assignee, and incorporated herein by reference.

The user device110further comprises a plurality of applications111-1through111-ninstalled therein. Some of the applications111require an active connection to the network120in order to operate and some do not require such connection. For example, applications111that enable voice over internet protocol (VOIP), chat, instant messaging, and the like require an active connection to the Internet in order to operate. Other type of applications111, for example, games, or utilities, such as flashlight, voice recorder, and the like do not require any active connection in order to fully operate. Another type of application111requires an active network connection in order to fully operate but can also partially operate without a network connection. An example for such applications111are navigational applications that are able to show maps and directions without a network connection but do require an active connection in order to provide navigational services in real-time.

According to disclosed embodiments, the agent113is configured to determine which of the applications111are programmed to operate also in an offline mode of the user device110, that is, when the user device110does not have an active connection to the network120. The determination of which application111can operate may be performed by an application111is installed on the user device110and/or when the agent113is first installed. In an exemplary embodiment, such determination can be performed when a user query is received at the agent113.

In order to determine which application111can operate in an offline mode, the agent113is configured to analyze the metadata associated with the application111. The metadata typically includes the application's name, application's identifier (ID), type of application, application's category, connectivity requirements, and so on. In an embodiment, the agent113is configured to query an external system about the connectivity requirements of the application111when such information is not available in the application's metadata. An example for the external system is an application index database and/or a server130. A possible implementation of an application index database130can be found in co-pending U.S. patent application Ser. No. 14/278,223 filed on May 15, 2014, assigned to common assignee, and incorporated herein by reference.

Responsive of the analysis, the agent113is configured to save, in the DSU119, a status file including a list of applications111, identified by their IDs or names, and the connectivity mode of the application111(i.e., offline or online). In an embodiment, only applications111that can operate in an offline mode are saved in the file.

In one embodiment, upon receiving a user search query, the agent113is configured to check the current connectivity mode of the user device110. This may be performed, for example, by querying the operation system of the user device110about the status of a Wi-Fi connection, a cellular connection, and/or if the device is an “Airplane mode.” Inactive Wi-Fi and cellular connections or an active Airplane mode indicates that the user device110is offline.

Upon determination that the user device110is offline, a search for applications111that match the user query is performed against a subset of applications111that can operate in an offline mode as designated in the status file. When the user device110is online the search for matching applications111can be performed against all applications111. Alternatively or collectively, when the user device110is online the search for application111matching the user query can be performed against a set of web resources140as discussed above.

In one embodiment, an application111that matches the user query is an application111that best serves the user intent. The user intent represents the type of content, the content, and/or actions that may be of interest to the user for a current time period. User intents may range from general intents (e.g., “games”) to more narrow intents (e.g., “Angry Birds®”, “Tactical Games®”, “games involving animals”, and so on). Queries may further include one or more tokenized portions, wherein each tokenized portion represents a meaningful entity. Entities are physical or conceptual items bearing known types and attributes such as, but not limited to, products, people, locations, groups, theories, facts, virtual spaces, and so on. Types may describe an entity and can be used in identifying user intent. As a non-limiting example, the entity “Madonna” may bear types including, but not limited to, singer, director, actor, and celebrity. The process for providing applications111matching to a query based on the user intent is described in greater detail with respect toFIG. 4.

As noted above, an external system such as the server130, which is also communicatively connected to the network120, can also be utilized to determine which applications111can operate offline. In an embodiment, the server130is configured to receive a query from the agent113to detect the connectivity requirements of one or more applications111. The server130is configured to search through a plurality web resources140-1through140-mto find metadata associated and/or information about the application(s)111designated in the query. For example, the server130can search for the description of an application111hosted in the AppStore®. Any related information and/or metadata detected through the search is analyzed to determine the application111connectivity requirements, and in particular if the application111can operate in an offline mode. According to another embodiment, the server130is configured to execute each application(s)111designated in the received query in order to determine its the connectivity requirements. The server130responds to the query with the determined connectivity requirements of each application111(or at least of the application111can operate in an offline mode).

The system100may further include a database150for storing information such as applications111connectivity requirements, prior user intents, prior queries received from a user, semantic and statistic data for enhancing the search experience, and so on.

FIG. 2depicts an embodiment of an exemplary and non-limiting flowchart200describing a method for identifying applications111that can operate in an offline mode of the user device110according to one embodiment.

In S210, a request to determine the connectivity requirements of one or more applications111installed locally on a user device (e.g., a user device110-1) is received. In an embodiment, such a request can be triggered upon an installation of an application111in the user device110, an installation of the agent113, a download of an application111to the user device110, an update of an application111already installed, and/or a query received from the user.

In S220, metadata of each application111designated in the request is analyzed to determine if the application111can operate in an offline mode. As noted above, the metadata of an application111typically includes one or more of the name, identifier, type of the downloaded application111, and connectivity requirements of the application111. If the metadata does not explicitly contain the connectivity requirements, such information can be derived based on the application's111type and/or category. For example, email, games, or utilities applications can operate in both offline and online modes; however, instant messaging, navigational, and VOIP applications can operate only in online mode.

In S230, it is checked if the connectivity requirements of each application111designed in the request is determined. If so, execution continues with S240; otherwise, at S235, an external system (i.e., external to the user device) is queried about the capabilities of the application111. As noted above, such external system may be an application index database or the server130. It should be noted that order of S220and S235is not limited to the way they are described herein. That is, S220can be performed before S235or S220and S235can be performed in parallel.

In S240, information related to the determined connectivity requirements of each application111is saved in a status file stored, for example, in the DSU119for further use. In an exemplary embodiment, the status file include a list of applications, identified by their IDs or names, and the connectivity mode of the application (i.e., offline or online). In a certain implementation only applications111that can operate in an offline mode are saved in the status file. In S250, it is checked whether there are additional requests to process and if so, execution continues with S210; otherwise, execution terminates.

FIG. 3depicts an exemplary and non-limiting flowchart300describing a method for searching for applications111respective of a connectivity mode of a user device110according to one embodiment.

In S310, a search query or a portion thereof, is received from a user of a user device110, for example, the user device110-1. The search query may be any one of a free text query, a voice query, and a structured query. In S320, the current connectivity mode of the user device110is determined. The connectivity to a data network can be achieved through a Wi-Fi and/or a cellular connection. Thus, in one embodiment, S320includes querying the operation system of the device110about the status of a Wi-Fi connection, a cellular connection, and/or if the device is an “Airplane mode.”

In S330, it is checked if the user device currently operates in an offline mode. Specifically, if the Wi-Fi and cellular connections are inactive or an Airplane is an active, the user device110is offline. If S330, results with a Yes answer execution continues with S340; otherwise, at S350the query is utilized to search for matching applications among all applications installed in the user device110and/or applications111accessible through a remote web resources.

At S340, a search for applications111matching the search query among only applications111designated as configured to operate in an offline mode is performed. Such applications111are listed in the status file. It should be noted that all, none, or some of applications111designed in the status file may be considered as matching applications111. However, an application111that cannot operate in an offline mode of the user device110would not be returned as part of the search result. In an embodiment, the search for matching applications111is performed based on the user intent as further described with respect toFIG. 4.

From either S340or S350, at S355, a check is made whether at least one matching application111compatible to the current connectivity mode of the user device110is found, and if so, execution continues with S360; otherwise, execution continues with S365where a notification is displayed on the display of the user device110that no appropriate applications111compatible of operating in the current connectivity mode found and execution terminates. In S360, the selected applications111are displayed on the display of the user device110. In S370, it is checked whether there are additional search queries and if so, execution continues with S310; otherwise, execution terminates.

FIG. 4depicts an exemplary and non-limiting flowchart400of a method for providing matching applications111to queries based on user intent according to one embodiment. In S410, a query, or a portion thereof, is received from a user device (e.g., user device110). In S420, the user intent is determined. The user intent represents the type of content, the content, and/or actions that may be of interest to the user for a current time period. Determination of user intent is further described in co-pending U.S. patent application Ser. No. 14/103,536 filed on May 12, 2013, assigned to the common assignee, which is hereby incorporated by reference for all that it contains.

In S430, based on the determined intent, the query is classified into one or more categories. In S440, the application index database is searched to detect one or more applications111that can appropriately serve the categories determined for the query. The application index database can be stored locally in the user device. In an embodiment, the search returned only applications111indexed with an appropriateness score above a predefined threshold. In another embodiment, applications111indexed to the same categories as to the input query are returned to the user.

In S450, the matching applications111are provided to the user device110. The matching applications111, i.e., search results may be displayed in a form of icons representing the matching applications111being rendered and displayed on the user device110. A matching application111may be an application111that is installed and executed on the user device110and being configured to also operate in an offline mode of the user device110.

It should be noted that the methods discussed with respect toFIGS. 2, 3 and 4can be performed by an agent (e.g., agent113) installed in a user device. The operation of the methods discussed with respect toFIGS. 2, 3 and 4do not require an active connection of the user device110to a data network.