Many services and/or computing devices expose apps for selective deployment on client devices. For example, an operating system, a video game console, a search engine, or a variety of other services and/or devices may host app stores through which users may obtain apps. In an example, a user of a tablet device may navigate to an app store accessible through the tablet device. The user may search, through trial and error, for an app that may allow the user to create and share birthday party invitations with other users. Once the user locates an invitation app, the user may download, deploy, and initialize the invitation app on the tablet device. After initialization, the user may interactively navigate the invitation app to a birthday party invitation user interface through which the user may create and share birthday party invitations.
This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the detailed description. This summary is not intended to identify key factors or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
Among other things, one or more systems and/or techniques for annotating an app and/or for facilitating performance of a user search task are provided herein. In an example of annotating an app, an app exposed through an app store may be identified, such as an invitation app. App metadata may be associated with the invitation app. The app metadata may comprise an app description for the invitation app specified by the app store (e.g., “the invitation app allows users to create and share invitations with other users . . . ”), a user review for the invitation app (e.g., “I was able to make a great birthday party invite . . . ”), an app developer description for the app or an update to the app (e.g., “we recently added the ability to make birthday invites through our app . . . ”), an app catalogue category for the app specified by the app store (e.g., a social category), and/or a variety of other information about the invitation app. The app metadata may be evaluated to identify an app subcategory (e.g., a party invitation category), an action (e.g., a create birthday invitation action), a location context (e.g., the app may be associated with a particular party center located in Miami), a user segment context (e.g., the app may be targeted to birthday party planners and sports party planners), an event context (e.g., the app may provide sports party invitation functionality for an upcoming Olympics), etc. In this way, the invitation app may be annotated with an app subcategory annotation, an action annotation, a location context annotation, a user segment context annotation, an event context annotation, and/or other annotations comprising information about the app that may be used to identify the app as corresponding to a search intent of a search user (e.g., the invitation app may be identified and/or provided to a search user based upon one or more annotations of the invitation app matching a search intent derived from a search query “I need to create invitations for a birthday party . . . ”).
In an example of facilitating performance of a user search task, a search query submitted by a search user may be identified (e.g., a search query “I need to create invitations for a birthday party . . . ” submitted through an app search engine). A search intent of the search user may be determined based upon a query context derived from the search query (e.g., various heuristics, such as word matching techniques, grammar evaluation, web search engine categorization, entity extraction, and/or other techniques may be used to evaluate the search query to derive the query context) and/or a user context derived from the search user (e.g., a social network profile, a current user location, a user browser session corresponding to search queries and/or websites visited by the search user, a user segment such as age, gender, employment status, hobbies, etc., and/or other information about the search user). For example, the search intent may specify that the search user is an adult with a one year old child, and that the search user is planning a 1 year birthday party in Miami for the one year old child, and thus the search user is searching for an app that may allow the search user to create birthday invites for the birthday party (e.g., the search intent corresponds to an entity category “birthday party”, an action “create invites”, an action parameter “one year old party” and “Miami”, an action qualifier “create birthday invites”, etc.). The search intent may be used to query an index of annotations of apps to identify an app having on or more annotations that match the search intent. For example, the search intent may match one or more annotations for the invitation app. The invitation app may be provided to the search user in a contextually relevant state based upon a set of task parameters derived from the search intent. For example, the invitation app may be deployed to a client device of the search user, and may be initialized to a birthday party invitation user interface comprising a template for a one year old birthday party and/or party center information for Miami. In this way, the invitation app may be identified, deployed, and provided to the search user in a contextually relevant state based upon the search query.
To the accomplishment of the foregoing and related ends, the following description and annexed drawings set forth certain illustrative aspects and implementations. These are indicative of but a few of the various ways in which one or more aspects may be employed. Other aspects, advantages, and novel features of the disclosure will become apparent from the following detailed description when considered in conjunction with the annexed drawings.
The claimed subject matter is now described with reference to the drawings, wherein like reference numerals are generally used to refer to like elements throughout. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide an understanding of the claimed subject matter. It may be evident, however, that the claimed subject matter may be practiced without these specific details. In other instances, structures and devices are illustrated in block diagram form in order to facilitate describing the claimed subject matter.
An embodiment of annotating an app is illustrated by an exemplary method 100 of
The app metadata may be evaluated to determine a facet, such as an app subcategory (e.g., the Sports category may be further refined to a baseball category), an action, a location context, a user segment context, an event context, and/or other contextual information, at 106. It may be appreciated that an example of evaluating the app metadata is illustrated in example 150 of
At 108, the app may be annotated with an app subcategory annotation and/or other annotations (e.g., as identified per
At 110, responsive to determining that a search intent of a search query submitted by a search user corresponds to one or more annotations of the app, the app may be provided to the search user (e.g., the app may be downloaded, deployed, and initialized in a contextually relevant state with respect to the search intent). For example, a search user may submit a query “I want to book 2 tickets for tonight's game”. A search intent for purchasing 2 baseball tickets for a Cleveland baseball game at 6:00 today may be determined. The search intent may be used to evaluate annotated apps exposed through the app store (e.g., apps may be indexed within an app index based upon annotations associated with such apps, and thus the app index may be queried with the search intent to identify an app associated with annotations correspond to the search intent). Based upon the search intent corresponding to one or more annotations of the Cleveland sports team app, the Cleveland sports team app may be provided to the search user in a contextually relevant state. For example, the Cleveland sports team app may be initialized into an order tickets user interface through which the user may efficiently order 2 tickets for the Cleveland baseball game (e.g., the order tickets user interface may be prepopulated with the particular game, number of tickets, date, and/or other information). At 112, the method ends.
The app evaluation component 212 may determine a subcategory of beverage based upon the app developer description (e.g., various heuristics may be used to determine that words, corresponding to beverage, may frequently appear within the app metadata 204, such as the app developer description 208). The app evaluation component 212 may determine an action context of a view drink recipe action based upon the app developer description 208 and/or the user review 210. The app evaluation component 212 may determine a user segment context of adults over 21 based upon the app metadata 204 indicating that the drink mix app 202 pertains to alcoholic beverages. The app evaluation component 212 may determine an event context of national martini month based upon an upcoming local or global event (e.g., identifiable from an informational source, such as a national bartender website). In this way, the app evaluation component 212 may annotate the drink mix app 202 with annotations 214, such as a subcategory annotation 216, an action context annotation 218, a user segment context annotation 220, and/or an event context annotation 222.
The app evaluation component 212 may determine a subcategory of athlete registration based upon the user review 310 (e.g., various heuristics may be used to determine that words, corresponding to athlete registration, may frequently appear within the app metadata 204, such as the user review 310). The app evaluation component 212 may determine an action context of a submit running time action based upon the app developer description 308. The app evaluation component 212 may determine a user segment context of athletes based upon the app metadata 204 indicating that the Olympic Trials app 302 pertains to the Olympic Trials and registration. The app evaluation component 212 may determine an event context of Olympic Trials and Oregon where the Olympic Trials are held based upon an upcoming global event of the Olympic Trials (e.g., identifiable from an informational source, such as an Olympic Trials website). In this way, the app evaluation component 212 may annotate the Olympic Trials app 302 with annotations 314, such as a subcategory annotation 316, an action context annotation 318, a user segment context annotation 320, and/or an event context annotation 322.
An embodiment of facilitating performance of a user search task is illustrated by an exemplary method 400 of
In an example, the user context may correspond to a user location (e.g., a current location of the search user), a user segment (e.g., a user search profile, such as a social network profile, may indicate that the search user is an athlete), a user session (e.g., a web browser session may indicate that the search user was recently searching for and/or interacting with web content associated with Olympics or sports). In another example, the search intent may correspond to a global context associated with the search query. For example, the global context may correspond to a current time, a current event (e.g., the Olympic Trials), a local event (e.g., an Olympic Trials registration location that is relatively close to the current location of the search user), etc. In this way, the search intent (e.g. register for Olympic Trials) may be determined. For example, the search intent may correspond to an entity category (e.g., “sports”, “Olympics”, “Olympic Trials”, etc.), an action (e.g., a register for Olympic Trials action, etc.), an entity (e.g., “Olympic Trials”, etc.), an entity qualifier (e.g., Olympic Trials in Oregon, etc.), an action parameter (e.g., a registration name, a particular event to register for, a qualifying race result time, etc.), an action qualifier (e.g., “electronic registration”), etc.
At 408, an app corresponding to the search intent may be identified based upon the app corresponding to an entity category specified by the search intent and/or based upon the app comprising functionality capable of performing an action specified by the search intent. For example, app metadata associated with an Olympic Trials app (e.g., 302 of
At 410, the app may be provided to the search user in a contextually relevant state based upon a set of task parameters derived from the search intent. The set of task parameters may comprise the entity, the action, the entity qualifier, and/or one or more action qualifiers and/or action parameters (e.g., a temporal parameter, a locational parameter, a quantity parameter, a payment parameter, or any other parameter that may be used by the Olympic Trials app (e.g., 302 of
The user context 520 may be derived from a search user profile (e.g., a social network profile and/or other information indicating that the search user is an adult without children, lives in Ohio, and the current time is just before 5:00 pm). The user context 520 may indicate that the search intent 526 of the search user may correspond to Dave's place the restaurant, as opposed to the playground, based upon the search user being an adult without children. The user context 520 may indicate that the search intent 526 of the search user may correspond to Dave's Place in Cleveland, Ohio as opposed to Dave's place in Cleveland, Tenn. based upon the current location of the search user being located in Ohio.
The query processing component 508 may identify a table reservation app 524, available from the app store 522, as corresponding to the search intent 526 of the search user (e.g., one or more annotations of the table reservation app 524 may correspond to the search intent 526). Accordingly, the query processing component 508 may provide the table reservation app 524 to the search user in a contextually relevant state 528 based upon a set of task parameters derived from the search intent 526 (e.g., a reservation action parameter, a number of seats parameter of 2, an entity parameter of Dave's Place, a location parameter of Cleveland Ohio, an action qualifier of reserve booth, etc.). In this way, the search user may efficiently perform the user search task of reserving a table by merely providing a reservation time through the table reservation app 524 in the contextually relevant state 528.
The user context 620 may be derived from a search user profile (e.g., a social network profile and/or other information indicating that the search user is a nurse, lives in Ohio, etc.). The user context 620 may indicate that the search intent 626 of the search user may correspond to a medical clothing uniform as opposed to a school uniform or other type of uniform, and that the boutique corresponds to medical clothing as opposed to a boutique selling a different type of clothing. The user context 620 may indicate that the search intent 626 of the search user may correspond to the Medical Clothing Boutique in Cleveland as opposed to a different type of clothing boutique and/or a boutique in a different location.
The query processing component 508 may identify a Medical Clothing Boutique app 624, available from the app store 622, as corresponding to the search intent 626 of the search user (e.g., one or more annotations of the Medical Clothing Boutique app 624 may correspond to the search intent 626). Accordingly, the query processing component 508 may provide the Medical Clothing Boutique app 624 to the search user in a contextually relevant state 628 based upon a set of task parameters derived from the search intent 626 (e.g., an order clothing action parameter, a medical clothing parameter, a nurse clothing parameter, an e-commerce action qualifier, etc.). In an example, the search user may select a uniform style, size, quantity, etc. in order to complete a clothing order. In this way, the search user may efficiently perform the user search task of ordering nursing uniforms through the Medical Clothing Boutique app 624 in the contextually relevant state 628.
Still another embodiment involves a computer-readable medium comprising processor-executable instructions configured to implement one or more of the techniques presented herein. An example embodiment of a computer-readable medium or a computer-readable device is illustrated in
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing at least some of the claims.
As used in this application, the terms “component,” “module,” “system”, “interface”, and/or the like are generally intended to refer to a computer-related entity, either hardware, a combination of hardware and software, software, or software in execution. For example, a component may be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and/or a computer. By way of illustration, both an application running on a controller and the controller can be a component. One or more components may reside within a process and/or thread of execution and a component may be localized on one computer and/or distributed between two or more computers.
Furthermore, the claimed subject matter may be implemented as a method, apparatus, or article of manufacture using standard programming and/or engineering techniques to produce software, firmware, hardware, or any combination thereof to control a computer to implement the disclosed subject matter. The term “article of manufacture” as used herein is intended to encompass a computer program accessible from any computer-readable device, carrier, or media. Of course, many modifications may be made to this configuration without departing from the scope or spirit of the claimed subject matter.
Although not required, embodiments are described in the general context of “computer readable instructions” being executed by one or more computing devices. Computer readable instructions may be distributed via computer readable media (discussed below). Computer readable instructions may be implemented as program modules, such as functions, objects, Application Programming Interfaces (APIs), data structures, and the like, that perform particular tasks or implement particular abstract data types. Typically, the functionality of the computer readable instructions may be combined or distributed as desired in various environments.
In other embodiments, device 812 may include additional features and/or functionality. For example, device 812 may also include additional storage (e.g., removable and/or non-removable) including, but not limited to, magnetic storage, optical storage, and the like. Such additional storage is illustrated in
The term “computer readable media” as used herein includes computer storage media. Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions or other data. Memory 818 and storage 820 are examples of computer storage media. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, Digital Versatile Disks (DVDs) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by device 812. Any such computer storage media may be part of device 812.
Device 812 may also include communication connection(s) 826 that allows device 812 to communicate with other devices. Communication connection(s) 826 may include, but is not limited to, a modem, a Network Interface Card (NIC), an integrated network interface, a radio frequency transmitter/receiver, an infrared port, a USB connection, or other interfaces for connecting computing device 812 to other computing devices. Communication connection(s) 826 may include a wired connection or a wireless connection. Communication connection(s) 826 may transmit and/or receive communication media.
The term “computer readable media” may include communication media. Communication media typically embodies computer readable instructions or other data in a “modulated data signal” such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” may include a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal.
Device 812 may include input device(s) 824 such as keyboard, mouse, pen, voice input device, touch input device, infrared cameras, video input devices, and/or any other input device. Output device(s) 822 such as one or more displays, speakers, printers, and/or any other output device may also be included in device 812. Input device(s) 824 and output device(s) 822 may be connected to device 812 via a wired connection, wireless connection, or any combination thereof. In one embodiment, an input device or an output device from another computing device may be used as input device(s) 824 or output device(s) 822 for computing device 812.
Components of computing device 812 may be connected by various interconnects, such as a bus. Such interconnects may include a Peripheral Component Interconnect (PCI), such as PCI Express, a Universal Serial Bus (USB), firewire (IEEE 1394), an optical bus structure, and the like. In another embodiment, components of computing device 812 may be interconnected by a network. For example, memory 818 may be comprised of multiple physical memory units located in different physical locations interconnected by a network.
Those skilled in the art will realize that storage devices utilized to store computer readable instructions may be distributed across a network. For example, a computing device 830 accessible via a network 828 may store computer readable instructions to implement one or more embodiments provided herein. Computing device 812 may access computing device 830 and download a part or all of the computer readable instructions for execution. Alternatively, computing device 812 may download pieces of the computer readable instructions, as needed, or some instructions may be executed at computing device 812 and some at computing device 830.
Various operations of embodiments are provided herein. In one embodiment, one or more of the operations described may constitute computer readable instructions stored on one or more computer readable media, which if executed by a computing device, will cause the computing device to perform the operations described. The order in which some or all of the operations are described should not be construed as to imply that these operations are necessarily order dependent. Alternative ordering will be appreciated by one skilled in the art having the benefit of this description. Further, it will be understood that not all operations are necessarily present in each embodiment provided herein. Also, it will be understood that not all operations are necessary in some embodiments.
Further, unless specified otherwise, “first,” “second,” and/or the like are not intended to imply a temporal aspect, a spatial aspect, an ordering, etc. Rather, such terms are merely used as identifiers, names, etc. for features, elements, items, etc. For example, a first object and a second object generally correspond to object A and object B or two different or two identical objects or the same object.
Moreover, “exemplary” is used herein to mean serving as an example, instance, illustration, etc., and not necessarily as advantageous. As used herein, “or” is intended to mean an inclusive “or” rather than an exclusive “or”. In addition, “a” and “an” as used in this application are generally be construed to mean “one or more” unless specified otherwise or clear from context to be directed to a singular form. Also, at least one of A and B and/or the like generally means A or B or both A and B. Furthermore, to the extent that “includes”, “having”, “has”, “with”, and/or variants thereof are used in either the detailed description or the claims, such terms are intended to be inclusive in a manner similar to the term “comprising”.
Also, although the disclosure has been shown and described with respect to one or more implementations, equivalent alterations and modifications will occur to others skilled in the art based upon a reading and understanding of this specification and the annexed drawings. The disclosure includes all such modifications and alterations and is limited only by the scope of the following claims. In particular regard to the various functions performed by the above described components (e.g., elements, resources, etc.), the terms used to describe such components are intended to correspond, unless otherwise indicated, to any component which performs the specified function of the described component (e.g., that is functionally equivalent), even though not structurally equivalent to the disclosed structure. In addition, while a particular feature of the disclosure may have been disclosed with respect to only one of several implementations, such feature may be combined with one or more other features of the other implementations as may be desired and advantageous for any given or particular application.