Patent Document ID: 7996783
Application ID: 11367292

Base Claim:
1. A computer readable storage medium having computer-executable components stored thereon that facilitates widget searching, comprising: a calling application component that receives a natural language query and is associated with a plurality of widgets configured to expose parametric task data to the calling application component and including one or more widgets associated with the natural language query, wherein the calling application interfaces with the plurality of widgets to obtain parametric task data from each of the plurality of widgets, the parametric task data includes at least one of task capabilities, types of acceptable slots, or information to facilitate filling of widget slots based on the query; and an adaptive task reasoning component that receives the natural language query from the calling application component and utilizes the obtained parametric task data to automatically select one or more appropriate widgets from among the plurality of widgets in response to the natural language query, wherein the adaptive task reasoning component further determines appropriate slot filling for the selected widgets from the obtained parametric task data, and provides the slot filling for each of the selected widgets to the calling application component; wherein the calling application component invokes a widget using the slot filling for that widget to allow a user to utilize the functionality of the one or more selected widgets, the widget selected from among the one or more widgets selected by the adaptive task reasoning component in response to the natural language query, and wherein the adaptive task reasoning component employs user feedback related to at least one selected widget to facilitate in subsequent widget selections and slot filling in response to subsequent natural language queries.

---

Claim 6:
6. The computer readable storage medium of claim 1 , wherein, upon determination that the one or more widgets includes a single widget, the calling application component provides the selected widget to the user without providing another widget concurrently.