Patent Description:
<CIT> relates to an application command control user interface menu to facilitate user interaction between a user and a mobile application. On a processing device, a mobile application is launched where the mobile application comprises an application command control user interface menu displayable within a defined display space. A tab comprises one or more user interface elements for application command control. Input is received for a selection of a tab of the application control user interface menu. In response to the received input, display of the application command control user interface menu is modified to display one or more tabs within the defined display space.

<CIT> relates to techniques for using entered text to access and process contextual information. A user types a message on a blank notepage. The user performs a gesture which tells the system that the user wants to send the content off as a message. Afterwards, the user is presented with a menu of possible destinations for the message and can choose one of those options or can indicate, using the keyboard, the destination for the message. When a user looks up information using an online search engine, the user predefines possible ways to send a message. A soft keyboard application executing on a computing device receives a gesture input that comprise query input.

<CIT> relates to techniques for discontinuous shape-writing. An indication of a first touch event is received by a touchscreen implemented keyboard. An indication of a least a second touch event is received via the keyboard. The first touch event may be discontinuous from the second touch event. A continuous shape, based at least in part on the indication of the first touch event and indication of the second touch event, is generated and a word based at least in part on the shape is identified.

Non-limiting examples of the present disclosure describe gesture input processing. A gesture input is a continuous gesture input that is received through a soft keyboard application executing on a computing device. The continuous gesture input comprises query input and selection of an application extension that is utilized to process the query input. The continuous gesture input comprise a pause at an application extension while maintaining contact with the touchscreen, wherein the application extension is displayed as a user interface element within the soft keyboard application. The gesture input is processed to update the soft keyboard application to display one or more user interfaces features associated with the application extension of one or more application extensions displayed within the soft keyboard application, wherein once the one or more user interfaces are displayed, the user continues the continuous gesture input to select a feature associated with the application extension, wherein receiving the continuous gesture input comprises receiving a selection of the one or more user interface features. The query input is processed using a component associated with the application extension; and providing a result for the query input. The result is provided by the component associated with the application extension.

Additional aspects, features, and/or advantages of examples will be set forth in part in the description which follows and, in part, will be apparent from the description, or may be learned by practice of the disclosure.

Examples are described with reference to the following figures.

The present disclosure describes gesture input processing. A gesture input is an act or instance of entering an input by moving an object or digit (e.g. finger) across a screen (e.g. touchscreen) to activate a function. An example of a gesture input may be a continuous gesture input that is received through a soft keyboard application. A continuous gesture input comprises query input and selection of an extension of at least one/application service that may be utilized to process the query input. An extension of an application/service is a user interface element (e.g. within a soft keyboard application) that provides direct access to an application/service. An application (e.g. first-party application, second-party application, third-party application) may be integrated with the soft keyboard application. Examples of application extensions may be found in co-pending <CIT>.

As an example, a user may enter a swipe action that provides query input of a user name such as "Jessica" and continue the swipe action to an application extension within a soft keyboard application that provides access to a contact list/address book of a user. A user contact list can be searched and results may be provided, for example, directly in the soft keyboard application (or an application interfacing with the soft keyboard application). The results are provided based on processing of the continuous gesture input without requiring multiple input steps. Thus, a query can be more efficiently processed when gesture inputs are utilized to enter the query.

Functionality for receiving and processing a continuous gesture input can be programmed into a soft keyboard application. An exemplary soft keyboard application may be a software component that provides application control for any applications/services executing on a computing device. An exemplary soft keyboard application may enables users to enter any type of input including but not limited to: alphanumeric characters, symbols, images, icons, punctuation marks, gesture input, voice input, and handwritten input, among other examples. Soft keyboard applications may be programmed to process input in any language and may be further configured to switch between different languages. Among other examples, the soft keyboard application may be used to: find answers, locate files, translate data, use features from other applications, receive suggestions/recommendations, improve selection of content with application extensibility, evaluate context of threads within executing applications and provide auto-completion/ auto-insertion of content into applications, and transfer data between applications, among other examples. One skilled in the art should recognize that exemplary soft keyboard applications are not limited to the above described actions/features. Additional examples related to soft keyboard applications may be found in co-pending <CIT>. As an example, the soft keyboard application may facilitate integration of services (e.g. first-party services, second-party services, third-party services) to retrieve content, accomplish tasks, etc., that a single application may not be able to complete.

Accordingly, the present disclosure provides a plurality of technical advantages including but not limited to: an improved soft keyboard application, improved functionality for gesture inputs, improved query processing including more efficient operation of processing devices (e.g., saving computing cycles/computing resources) during processing of gesture input, extensibility to integrate processing operations described herein within different applications/services, and improved user interaction, among other examples.

<FIG> and the associated descriptions provide a discussion of a variety of operating environments in which examples of the invention may be practiced. However, the devices and systems illustrated and discussed with respect to <FIG> are for purposes of example and illustration and are not limiting of a vast number of computing device configurations that may be utilized for practicing examples of the invention, described herein.

<FIG> is a block diagram illustrating physical components of a computing device <NUM>, for example a mobile processing device, with which examples of the present disclosure may be practiced. For example, computing device <NUM> may be an exemplary computing device configured for execution of an exemplary soft keyboard application that implements gesture input as described in examples herein. In a basic configuration, the computing device <NUM> may include at least one processing unit <NUM> and a system memory <NUM>. Depending on the configuration and type of computing device, the system memory <NUM> may comprise, but is not limited to, volatile storage (e.g., random access memory), non-volatile storage (e.g., read-only memory), flash memory, or any combination of such memories. The system memory <NUM> may include an operating system <NUM> and one or more program modules <NUM> suitable for running software programs/modules <NUM> such as IO manager <NUM>, other utility <NUM> and application <NUM>. As examples, system memory <NUM> may store instructions for execution. Other examples of system memory <NUM> may store data associated with applications. The operating system <NUM>, for example, may be suitable for controlling the operation of the computing device <NUM>. Furthermore, examples of the invention may be practiced in conjunction with a graphics library, other operating systems, or any other application program and is not limited to any particular application or system. This basic configuration is illustrated in <FIG> by those components within a dashed line <NUM>. The computing device <NUM> may have additional features or functionality. For example, the computing device <NUM> may also include additional data storage devices (removable and/or non-removable) such as, for example, magnetic disks, optical disks, or tape. Such additional storage is illustrated in <FIG> by a removable storage device <NUM> and a non-removable storage device <NUM>.

As stated above, a number of program modules and data files may be stored in the system memory <NUM>. While executing on the processing unit <NUM>, program modules <NUM> (e.g., Input/Output (I/O) manager <NUM>, other utility <NUM> and application <NUM>) may perform processes including, but not limited to, one or more of the stages of the operations described throughout this disclosure. Other program modules that may be used in accordance with examples of the present invention may include electronic mail and contacts applications, word processing applications, spreadsheet applications, database applications, slide presentation applications, drawing or computer-aided application programs, photo editing applications, authoring applications, etc..

Furthermore, examples of the invention may be practiced in an electrical circuit comprising discrete electronic elements, packaged or integrated electronic chips containing logic gates, a circuit utilizing a microprocessor, or on a single chip containing electronic elements or microprocessors. For example, examples of the invention may be practiced via a system-on-a-chip (SOC) where each or many of the components illustrated in <FIG> may be integrated onto a single integrated circuit. Such an SOC device may include one or more processing units, graphics units, communications units, system virtualization units and various application functionality all of which are integrated (or "burned") onto the chip substrate as a single integrated circuit. When operating via an SOC, the functionality described herein may be operated via application-specific logic integrated with other components of the computing device <NUM> on the single integrated circuit (chip). Examples of the present disclosure may also be practiced using other technologies capable of performing logical operations such as, for example, AND, OR, and NOT, including but not limited to mechanical, optical, fluidic, and quantum technologies. In addition, examples of the invention may be practiced within a general purpose computer or in any other circuits or systems.

The computing device <NUM> may also have one or more input device(s) <NUM> such as a keyboard, a mouse, a pen, a sound input device, a device for voice input/recognition, a touch input device, etc. The output device(s) <NUM> such as a display, speakers, a printer, etc. may also be included. The aforementioned devices are examples and others may be used. The computing device <NUM> may include one or more communication connections <NUM> allowing communications with other computing devices <NUM>. Examples of suitable communication connections <NUM> include, but are not limited to, RF transmitter, receiver, and/or transceiver circuitry; universal serial bus (USB), parallel, and/or serial ports.

The system memory <NUM>, the removable storage device <NUM>, and the non-removable storage device <NUM> are all computer storage media examples (i.e., memory storage. ) Computer storage media may include RAM, ROM, electrically erasable read-only memory (EEPROM), flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other article of manufacture which can be used to store information and which can be accessed by the computing device <NUM>.

<FIG> and <FIG> illustrate a mobile computing device <NUM>, for example, a mobile telephone, a smart phone, a personal data assistant, a tablet personal computer, a phablet, a slate, a laptop computer, and the like, with which examples of the invention may be practiced. Mobile computing device <NUM> may be an exemplary computing device configured for an exemplary soft keyboard application that implements gesture input as described in examples herein. With reference to <FIG>, one example of a mobile computing device <NUM> for implementing the examples is illustrated. In a basic configuration, the mobile computing device <NUM> is a handheld computer having both input elements and output elements. The mobile computing device <NUM> typically includes a display <NUM> and one or more input buttons <NUM> that allow the user to enter information into the mobile computing device <NUM>. The display <NUM> of the mobile computing device <NUM> may also function as an input device (e.g., a touch screen display). If included, an optional side input element <NUM> allows further user input. The side input element <NUM> may be a rotary switch, a button, or any other type of manual input element. In alternative examples, mobile computing device <NUM> may incorporate more or less input elements. For example, the display <NUM> may not be a touch screen in some examples. In yet another alternative example, the mobile computing device <NUM> is a portable phone system, such as a cellular phone. The mobile computing device <NUM> may also include an optional keypad <NUM>. Optional keypad <NUM> may be a physical keypad or a "soft" keypad generated on the touch screen display or any other soft input panel (SIP). In various examples, the output elements include the display <NUM> for showing a GUI, a visual indicator <NUM> (e.g., a light emitting diode), and/or an audio transducer <NUM> (e.g., a speaker). In some examples, the mobile computing device <NUM> incorporates a vibration transducer for providing the user with tactile feedback. In yet another example, the mobile computing device <NUM> incorporates input and/or output ports, such as an audio input (e.g., a microphone jack), an audio output (e.g., a headphone jack), and a video output (e.g., a HDMI port) for sending signals to or receiving signals from an external device.

<FIG> is a block diagram illustrating the architecture of one example of a mobile computing device. That is, the mobile computing device <NUM> can incorporate a system (i.e., an architecture) <NUM> to implement some examples. In one examples, the system <NUM> is implemented as a "smart phone" capable of running one or more applications (e.g., browser, e-mail, calendaring, contact managers, messaging clients, games, and media clients/players). In some examples, the system <NUM> is integrated as a computing device, such as an integrated personal digital assistant (PDA), tablet and wireless phone.

One or more application programs <NUM> may be loaded into the memory <NUM> and run on or in association with the operating system <NUM>. Examples of the application programs include phone dialer programs, e-mail programs, personal information management (PIM) programs, word processing programs, spreadsheet programs, Internet browser programs, messaging programs, and so forth. The system <NUM> also includes a non-volatile storage area <NUM> within the memory <NUM>. The non-volatile storage area <NUM> may be used to store persistent information that should not be lost if the system <NUM> is powered down. The application programs <NUM> may use and store information in the non-volatile storage area <NUM>, such as e-mail or other messages used by an e-mail application, and the like. A synchronization application (not shown) also resides on the system <NUM> and is programmed to interact with a corresponding synchronization application resident on a host computer to keep the information stored in the non-volatile storage area <NUM> synchronized with corresponding information stored at the host computer. As should be appreciated, other applications may be loaded into the memory <NUM> and run on the mobile computing device <NUM> described herein.

The system <NUM> may include peripheral device port <NUM> that performs the function of facilitating connectivity between system <NUM> and one or more peripheral devices. Transmissions to and from the peripheral device port <NUM> are conducted under control of the operating system (OS) <NUM>. In other words, communications received by the peripheral device port <NUM> may be disseminated to the application programs <NUM> via the operating system <NUM>, and vice versa.

The visual indicator <NUM> may be used to provide visual notifications, and/or an audio interface <NUM> may be used for producing audible notifications via the audio transducer <NUM> (e.g. identified in <FIG>). In the illustrated example, the visual indicator <NUM> is a light emitting diode (LED) and the audio transducer <NUM> is a speaker. These devices may be directly coupled to the power supply <NUM> so that when activated, they remain on for a duration dictated by the notification mechanism even though the processor <NUM> and other components might shut down for conserving battery power. The LED may be programmed to remain on indefinitely until the user takes action to indicate the powered-on status of the device. The audio interface <NUM> is used to provide audible signals to and receive audible signals from the user. For example, in addition to being coupled to the audio transducer <NUM>, the audio interface <NUM> may also be coupled to a microphone to receive audible input, such as to facilitate a telephone conversation. In accordance with examples of the present invention, the microphone may also serve as an audio sensor to facilitate control of notifications, as will be described below. The system <NUM> may further include a video interface <NUM> that enables an operation of an on-board camera <NUM> to record still images, video stream, and the like.

Data/information generated or captured by the mobile computing device <NUM> and stored via the system <NUM> may be stored locally on the mobile computing device <NUM>, as described above, or the data may be stored on any number of storage media that may be accessed by the device via the radio <NUM> or via a wired connection between the mobile computing device <NUM> and a separate computing device associated with the mobile computing device <NUM>, for example, a server computer in a distributed computing network, such as the Internet. As should be appreciated such data/information may be accessed via the mobile computing device <NUM> via the radio <NUM> or via a distributed computing network.

<FIG> illustrates one example of the architecture of a system for provisioning an application that reliably accesses target data on a storage system and handles communication failures to one or more client devices, as described above. The system of <FIG> may be an exemplary system configured for an exemplary soft keyboard application that implements gesture input as described in examples herein. Target data accessed, interacted with, or edited in association with programming modules <NUM>, applications <NUM>, and storage/memory may be stored in different communication channels or other storage types. For example, various documents may be stored using a directory service <NUM>, a web portal <NUM>, a mailbox service <NUM>, an instant messaging store <NUM>, or a social networking site <NUM>, application <NUM>, IO manager <NUM>, other utility <NUM>, and storage systems may use any of these types of systems or the like for enabling data utilization, as described herein. A server <NUM> may provide storage system for use by a client operating on general computing device <NUM> and mobile device(s) <NUM> through network <NUM>. By way of example, network <NUM> may comprise the Internet or any other type of local or wide area network, and client nodes may be implemented as a computing device <NUM> embodied in a personal computer, a tablet computing device, and/or by a mobile computing device <NUM> (e.g., mobile processing device). Any of these examples of the client computing device <NUM> or <NUM> may obtain content from the store <NUM>.

<FIG> is an exemplary method <NUM> related to processing of an exemplary continuous gesture input with which aspects of the present disclosure may be practiced. As an example, method <NUM> may be executed by an exemplary processing device and/or system such as those shown in <FIG> and <FIG>. In examples, method <NUM> may execute on a device comprising at least one processor configured to store and execute operations, programs or instructions. Operations performed in method <NUM> may correspond to operations executed by a system and/or service that execute computer programs, application programming interfaces (APIs), neural networks or machine-learning processing, among other examples. As an example, processing operations executed in method <NUM> may be performed by one or more hardware components. In another example, processing operations executed in method <NUM> may be performed by one or more software components. In some examples, processing operations described in method <NUM> may be executed by one or more applications/services associated with a web service that has access to a plurality of application/services, devices, knowledge resources, etc. In other examples, method <NUM> may be executed by one or more computing devices. For instance, a client device may be executing a soft keyboard application where operations described in at least method <NUM> may be executed in association with the client device.

Method <NUM> begins at operation <NUM>, where an exemplary soft keyboard application is accessed. As described above, an exemplary soft keyboard application may be a software component that provides application control for any applications/services executing on a computing device. A soft keyboard application may enables users to enter any type of input including but not limited to: alphanumeric characters, symbols, images, icons, punctuation marks, gesture input, voice input, and handwritten input, among other examples. Soft keyboard applications may be programmed to process input in any language and may be further configured to switch between different languages. Among other examples, the soft keyboard application may be used to: find answers, locate files, translate data, use features from other applications, receive suggestions/recommendations, improve selection of content with application extensibility, evaluate context of threads within executing applications and provide auto-completion/ auto-insertion of content into applications, and transfer data between applications, among other examples. One skilled in the art should recognize that exemplary soft keyboard applications are not limited to the above described actions/features. Additional examples related to soft keyboard applications may be found in co-pending <CIT>. As an example, the soft keyboard application may facilitate integration of services (e.g. first-party services, second-party services, third-party services) to retrieve content, accomplish tasks, etc., that a single application may not be able to complete.

A soft keyboard application is executed on a computing device, for example a client device such as a mobile phone, tablet, laptop, personal computer, navigation system, or any other device with touchscreen capabilities. In examples, the soft keyboard application may be a software component within an application/service that is executing on a client device. Accessing (operation <NUM>) of the soft keyboard application comprises displaying the soft keyboard application on a display associated with (or included within) a computing device. In one example, a soft keyboard application may be automatically accessed (operation <NUM>) when a user interface element for input is selected within an application/service.

Flow may proceed to operation <NUM>, where a continuous gesture input is entered. A continuous gesture input comprises query input and comprises selection of an extension of at least one/application service that is utilized to process the query input. The continuous gesture input comprises a pause. In further examples, the continuous gesture input may comprise additional actions comprising but not limited to: selection of user interface elements within a soft keyboard application, and touch-based indications (e.g. pressure sensitivity that can be used to specify user intention). An extension of an application/service is a user interface element ( within a soft keyboard application) that provides direct access to an application/service. Examples of application extensions may be found in co-pending <CIT>.

An continuous gesture input is received through a soft keyboard application executing on a computing device. Examples of a continuous gesture input are illustrated in processing device views shown in <FIG> and <FIG>, which are further described below. As an example, query input is any data that is usable as a cue for providing results from an application/service that is associated with a selected extension of an application/service. The query input may comprise one or more of: alphanumeric characters, symbols, images, icons, punctuation marks, etc. The continuous gesture input may be a swipe action, where an object or digit may be utilized to provide the continuous gesture input. Examples of objects/digits that may be used for entering continuous gesture input comprise but are not limited to: one or more fingers, a stylus, and a mouse, among other examples. One skilled in the art that understands the present disclosure should recognize that other objects and/or digits can also be used to enter the continuous gesture input.

As an example, a user may enter a swipe action that provides query input of a user name such as "Jessica" and continue the swipe action to an application extension within a soft keyboard application that provides access to a contact list/address book of a user. A user contact list can be searched and results may be provided directly in the soft keyboard application based on processing of the continuous gesture input without requiring multiple input steps. Thus, a query can be more efficiently processed when gesture inputs are utilized to enter the query.

In at least one example, input from an exemplary continuous gesture input may be transmitted to one or more computing devices that may be connected with a client device over a distributed network. Where a continuous gesture input is entered on a client device, the continuous gesture input may be transmitted to and received at another computing device, which may be utilized to process the continuous gesture input. In alternative examples, the continuous gesture input may be processed directly using an application/service that is executed on a client computing device. In such examples, the application/service executing on the client computing device is configurable to access applications/services that may be integrated with an exemplary soft keyboard application. For instance, the soft keyboard application may provide extensions for application/services that can be accessed over a network connection (e.g. the Internet, cellular service).

At operation <NUM>, the continuous gesture input is processed. As described above, processing of a continuous gesture input may occur at a client computing device or by one or more other devices connected with the client computing device over a distributed network. In examples, where processing of the continuous gesture input occurs over a distributed network, flow of method <NUM> may proceed to operation <NUM>, where results for the continuous gesture input may be provided to a computing device (e.g. client computing device).

When processing (operation <NUM>) of the continuous gesture input occurs, the query input is processed using a component associated with a selected application extension. As described above, a continuous gesture input may comprise input and a selection of at least one application extension for an application/service associated with the soft keyboard application. In some examples, multiple application extensions may be selected. For example, an input may be entered and a swipe action may successively swipe multiple application extensions within the soft keyboard application. In such a case, the query input may be processed and results provided from multiple application extensions. For instance, a query of "my house" may be entered into a soft input keyboard, where a swipe action may continue to select an application extension for a location service and an application extension for a translation service, for example, to translate the query from a first language (e.g. English) to a second language (e.g. Spanish). In such a case, a result from the location service may be provided which provides location details for a user's home and another result may be provided that shows that "my house" translates to "mi casa" in Spanish. In some examples, a user may extend the continuous gesture input to select more than one application extension.

As referenced above, the continuous gesture input comprises additional actions such as a pause action. For instance, a user may be swiping alphanumeric characters and continue movement of the input to an application extension. The user pauses (e.g. while keeping a finger pressed down on a touchscreen) at an application extension. In processing such a continuous gesture input, an soft keyboard application is configured to trigger display of additional user interface features related to the application/service that is associated with the application extension. As an example, a user may pause at an application extension for a translation service, where a user may pause/hover over the application extension for the translation service resulting in display of options for translating the query input into another language. For instance, a user interface element may be displayed that provides quick selection options for translating a query input into one or more different languages.

In another example, a user may be entering a query input and proceed to pause at a user interface element of the soft keyboard application (that is not an application extension). For instance, a user may not see display of an application extension for a desired application/service. As there is typically a fixed amount of display space (especially on mobile devices), a pause action within the continuous gesture input may be used to trigger display of additional application extensions.

In alternative examples, user interface elements for navigating the soft keyboard application may also be selectable within the continuous gesture input. For instance, an ellipsis icon may be displayed in a listing of application extensions, where selection of the ellipsis icon may trigger display of additional application extension. However, one skilled in the art that understands the present disclosure should recognize that any type of user interface element can be created and configured for navigation of the soft keyboard application.

Furthermore, touch-based indications may be utilized to navigate functionality provided by an exemplary soft keyboard application. For instance, a user may press harder (or softer) on a user interface element, which may be used to signal an intent of the user. As an example, a user may pause on an application extension and use touch indications to select options for processing using an application extension.

Where a continuous gesture input comprises an action such as a pause, flow proceeds to update (operation <NUM>) display of the soft keyboard application based on processing of the continuous gesture input. A user can pause a continuous gesture input at an application extension while maintaining contact with a touchscreen. Processing occurs that updates the soft keyboard application to display one or more user interface features associated with the application extension. Once the user interface features of the application extension are displayed, the user continues the continuous gesture input to select a feature associated with the application extension. A user may pause the continuous gesture input at a first application extension and then resume movement of the continuous gesture application to a second application extension. In such an example, the query input associated with the continuous gesture input may be processed by a component of the first application extension and also a component of the second application extension.

Flow proceeds to operation <NUM>, where results are provided and/or received based on processing of the continuous gesture input. In an example where the continuous gesture input is entered through a client computing device that connects with other devices (which process the continuous gesture input) over a distributed network, a result for the continuous gesture input may be provided to and received at the client computing device.

In some examples, results for the query input may be provided within the soft keyboard application from each application extension. For instance, a portion of the soft input keyboard may be allocated to providing results data. In one example, results data may be returned within a portion of the soft keyboard application that the query input was entered. In alternative examples, results may also be provided outside of the soft keyboard application. For instance, a result for a query input may be provided in one or more of: an application/service (e.g. within a messaging thread of an application), a home-screen of a device, a message, and an email, among other examples. That is, an exemplary soft keyboard application may interface with other applications/services to provide a result from processing by the soft keyboard application.

At decision operation <NUM>, it is determined whether additional gesture input is received. If so, flow branches YES and returns back to operation <NUM>, where a continuous gesture input is entered. If no additional gesture input is received, flow branches NO and processing of method <NUM> remains idle until further gesture input is received.

<FIG> and <FIG> are exemplary processing device views illustrating examples of continuous gesture input with which aspects of the present disclosure may be practiced. Processing operations related to the display shown in <FIG> and <FIG> are described in at least the description of method <NUM> (of <FIG>).

<FIG> illustrates processing device view <NUM>. Processing device view <NUM> highlights an exemplary continuous gesture input being entered within a soft keyboard application. An exemplary query input is first entered and a swipe action continuous to an exemplary application extension. As shown in processing device view <NUM>, a query input starts on the alphabetic character "F" and continuously enters a swipe input of "find" and then continues to select an exemplary application extension. Processing of that continuous gesture input may be a result for the query input "find" by an application/service associated with the selected application extension.

<FIG> illustrates processing device view <NUM>. Processing device view <NUM> highlights an exemplary continuous gesture input being entered within a soft keyboard application. In processing device view <NUM>, a swipe action starts from an exemplary application extension <NUM> and then continues to enter a query input. As shown in processing device view <NUM>, an application extension <NUM> is selected and a query input of "find" is entered. Processing of that continuous gesture input may be a result for the query input "find" by an application/service associated with the selected application extension.

Processing device views <NUM> and <NUM> highlight flexibility in selection of an exemplary application extension before or after a query input. In alternative examples, a first application extension may be selected, a query input may follow, a second application extension may then be selected and a second query input may follow. In such an example, a user may be able to enter multiple query inputs (to be processed by different application extensions) within a single continuous gesture.

<FIG> illustrates an exemplary system <NUM> implementable on one or more computing devices on which aspects of the present disclosure may be practiced. System <NUM> may be an exemplary system for processing related to management and use of task definitions for task state tracking as described herein. Exemplary system <NUM> presented is a combination of interdependent components that interact to form an integrated whole for implementing operations for compliance scanning as described in examples herein. Components of system <NUM> may be hardware components or software implemented on and/or executed by hardware components. In examples, system <NUM> may include any of hardware components (e.g., ASIC, other devices used to execute/run an OS, and software components (e.g., applications, application programming interfaces, modules, virtual machines, runtime libraries) running on hardware. In one example, an exemplary system <NUM> may provide an environment for software components to run, obey constraints set for operating, and makes use of resources or facilities of the systems/processing devices, where components may be software (e.g., application, program, module) running on one or more processing devices. For instance, software (e.g., applications, operational instructions, modules) may be executed on a processing device such as a computer, mobile device (e.g., smartphone/phone, tablet) and/or any other type of electronic devices. As an example of a processing device operating environment, refer to operating environments of <FIG>. In other examples, the components of systems disclosed herein may be spread across multiple devices. For instance, input may be scanned on a client computing device where processing operations may occur through one or more devices in a distributed network such as one or more server devices.

In examples, one or more data stores/storages or other memory are associated with system <NUM>. For example, a component of system <NUM> may have one or more data storage(s) <NUM> (described below) associated therewith. Data associated with a component of system <NUM> may be stored thereon as well as processing operations/instructions executed by a component of system <NUM>. Furthermore, it is presented that application components of system <NUM> may interface with other application services. Application services may be any resource that may extend functionality of one or more components of system <NUM>. Application services may include but are not limited to: web search services, e-mail applications, calendars, device management services, address book services, informational services, etc.), line-of-business (LOB) management services, customer relationship management (CRM) services, debugging services, accounting services, payroll services, and services and/or websites that are hosted or controlled by third parties, among other examples. Application services may further include other websites and/or applications hosted by third parties such as social media websites; photo sharing websites; video and music streaming websites; search engine websites; sports, news or entertainment websites, and the like. Application services may further provide analytics, data compilation and/or storage service, etc., in association with components of system <NUM>. Exemplary system <NUM> comprises application components <NUM> including a user interface component <NUM>, an input recognition component <NUM> and an application extension service component <NUM>, where each of the identified components may comprise one or more additional components.

System <NUM> may further comprise one or more storage(s) <NUM> that may store data associated with operation of one or more components of system <NUM>. In examples, storage(s) <NUM> may interface with other components of system <NUM>. Data associated with any component of system <NUM> may be stored in storage(s) <NUM>, where components may be connected to storage(s) <NUM> over a distributed network including cloud computing platforms and infrastructure services. Exemplary storage(s) <NUM> may be any of a first-party source, a second-party source, and a third-party source. Storage(s) <NUM> are any physical or virtual memory space.

Storage(s) <NUM> may store any data for processing operations performed by components of system <NUM>, retained data from processing operations, stored programs, code or application programming interfaces (APIs), training data, links to resources internal and external to system <NUM> and knowledge data among other examples. Furthermore, in examples, components of system <NUM> may utilize knowledge data in processing by components of system <NUM>. Knowledge may be used by one or more components of system <NUM> to improve processing of any of the application components <NUM> where knowledge data can be obtained from resources internal or external to system <NUM>. In examples, knowledge data may be maintained in storage(s) <NUM> or retrieved from one or more resources external to system <NUM> by knowledge fetch operation. In examples (as described below) storage(s) <NUM> may store exemplary data programs/services and other types of data for: soft keyboard applications, user interface definitions, management of knowledge data, management of exemplary application/service extensions, and operations for query processing, among other examples.

In <FIG>, processing device <NUM> may be any device comprising at least one processor and at least one memory/storage. Examples of processing device <NUM> may include but are not limited to: processing devices such as desktop computers, servers, phones, tablets, phablets, slates, laptops, watches, and any other collection of electrical components such as devices having one or more processors or circuits. In one example processing device <NUM> may be a device of a user that is executing applications/services. In examples, processing device <NUM> may communicate with the application components <NUM> via a network <NUM>. In one aspect, network <NUM> is a distributed computing network, such as the Internet. Application services may communicate with application components <NUM> via the network <NUM>. Processing device <NUM> may be a device as described in the description of <FIG>. In some examples, processing device <NUM> may comprise multiple connected devices. Processing device <NUM> is an example of a user computing device. In examples, processing device <NUM> is an example of a device that may send/receive query data. Processing device <NUM> may be further connected with storage(s) <NUM> via a distributed network.

The application components <NUM> are components configured for management of continuous gesture input processing by a soft keyboard application. Application components <NUM> may comprise a user interface component <NUM>, an input recognition component <NUM> and an application extension service component <NUM>. Application components <NUM> may further comprise application components for language processing, which are known to one skilled in the art.

The user interface component <NUM> is one or more components of system <NUM> that are configured to enable interaction with a user of an exemplary soft keyboard application. The user interface component <NUM> may be configured to execute any of the processing operations described in method <NUM>. Transparency and organization are brought to users of such an application/service through the user interface component <NUM> where a user can interact with an application through user interface elements. As an example, the user interface component <NUM> may comprise generation and display of one or more user interface elements upon a display of a computing device. For example, the user interface component <NUM> may be configured to enable an exemplary soft keyboard application to receive entry and a process a continuous gesture input. The user interface component <NUM> may further execute as a front-end for display of back-end processing performed by the other application components <NUM>. In examples, user interface definition files may comprise programming instructions or operations for management and display of user interface elements associated with user interface component <NUM>. Among other examples, the user interface component <NUM> may further provide an interface to receive results data from application/services that are integrated with an exemplary soft keyboard application.

The input recognition component <NUM> is one or more components of system <NUM> that are configured to receive, process and interpret an input. As described previously, an input is a continuous gesture input. The input recognition component <NUM> may be configured to execute any of the processing operations described in method <NUM>. When a gesture input is received, for example via the user interface component <NUM>, the input is transmitted to the input recognition component <NUM> for processing. Examples of processing of a continuous gesture input have been described previously.

The application extension service component <NUM> is one or more components of system <NUM> that are configured to integrate applications/services with an exemplary soft keyboard application. The application extension service component <NUM> may be configured to execute any of the processing operations described in method <NUM>. In examples, the application extension service component <NUM> may interface with other application components <NUM> (e.g. the user interface component <NUM> and the input recognition component <NUM>) through exemplary application extensions.

Reference has been made throughout this specification to "one example" or "an example," meaning that a particular described feature, structure, or characteristic is included in at least one example. Thus, usage of such phrases may refer to more than just one example. Furthermore, the described features, structures, or characteristics may be combined in any suitable manner in one or more examples.

Claim 1:
A method in a computing device comprising at least one processor and a memory, said method comprising:
receiving (<NUM>), through a soft keyboard application executing on the computing device, a gesture input that comprises query input and selection of an application extension that is utilized to process the query input;
wherein the gesture input is a continuous gesture input comprising a pause at an application extension while maintaining contact with a touchscreen, wherein the application extension is displayed as a user interface element within the soft keyboard application;
processing (<NUM>) the gesture input to update (<NUM>) the soft keyboard application to display one or more user interface features associated with the application extension of one or more application extensions displayed within the soft keyboard application, wherein once the one or more user interface features are displayed, the user continues the continuous gesture input to select a feature associated with the application extension, wherein receiving (<NUM>) the continuous gesture input comprises receiving a selection of the one or more user interface features;
processing the query input using a component associated with the application extension; and
providing (<NUM>) a result for the query input, wherein the result is provided by the component associated with the application extension.