Intent based processing

Presented is a system and method for determining a user's intent. Specifically, constituents and a topology are derived from the user's expression of intent, which can be stated broadly or stated in specific detail. The intent is expressed verbally, written, or in an XML format. The constituents and topology are resolved into a configuration based upon contexts. The contexts, which include a resource context, a user context, and an application context, includes information about the user's preferences, location, restrictions, device and network availability, and content availability. The configuration is then implemented.

TECHNICAL FIELD

This invention relates generally to electronic data processing and, more particularly, relates to a system and method for selecting and configuring network components based on user intent.

BACKGROUND OF THE INVENTION

The processing capability of computer components is continually increasing. The industry has responded by creating applications and operating systems that take full advantage of these performance enhancements. However, as additional functionality was added, these applications generally became more complex, requiring the user to become increasingly knowledgeable about the applications and operating systems to be able to take full advantage of the enhancements.

In response to user aggravation, industry created simpler interfaces that are easier to use so that the average user did not have to be as knowledgeable about the application and the operating system. For example, commonly assigned patent application Ser. No. 09/650,481, “System and Method for Identifying Audio/Visual Programs to be Recorded,” filed Aug. 29, 2000, provides for a token schema that provides sufficient program criteria to enable a recording system that receives the token to record the identified program based on the token. The token provides the user with the capability to record a program without having to know the broadcast time for the program or the broadcast channel.

However, while these simpler interfaces significantly enhance the user's experience, the user must still know what program to use and, in many cases, how the program works in order to use the program. A method is needed whereby a program or operating system component can select and configure network components based on user intent.

SUMMARY OF THE INVENTION

The present invention relates to a method for determining a user's intent based on the user's input. The input can be received in a variety of different ways, including verbally. For example, the input can be a simple message, a high level topology request with few, if any, constraints, or a detailed topology request with constraints. Constituents and a topology are derived from the user's intent. The constituents and topology are resolved into a configuration based upon contexts. The contexts provide information about resource availability, preferences, and user authority limitations. The configuration is then realized (i.e., implemented).

Another aspect of the present invention provides an XML schema for facilitating user intent. The XML schema includes an object element that specifies an object to be created, a node element that identifies a node in the desired topology, a connection element to specify connections between nodes, an interface element to specify an interface that clients use to control the object, and a format element that specifies a format for a connection or node.

Additional features and advantages of the invention will be made apparent from the following detailed description of illustrative embodiments which proceeds with reference to the accompanying figures.

DETAILED DESCRIPTION OF THE INVENTION

Turning now toFIG. 2, a methodology that program module136implements in accordance with the present invention is illustrated. Those skilled in the art will recognize that operating system134,144, application programs135,145, other program modules146, remote application programs185, and computer-readable instructions stored on nonvolatile magnetic disk152or nonvolatile optical disk156may also be used to implement the methodology.

The process begins with program module136receiving the user's intent (step200). The user's intent is received through the user interface160or the network interface170and can be submitted verbally or through peripherals like mouse161, keyboard162, and modem172. The user intent can be a simple message like “Play Mozart”, a high level topology request with few, if any, constraints, (e.g., “Play Creed in the kitchen”) or a detailed topology request with constraints (e.g., “Play ‘The Matrix’ in the den with the audio going to the surround sound speakers with the volume set at mid-level and the video going to the high definition television at the default streaming rate.”).

Program module136then determines the constituents and the topology that are in the user intent (step202). The constituents are the devices and content that is referred to in the intent. The topology is how the constituents are related to each other. For example, the constituents of the user intent expressed as “Play ‘The Godfather’ on television” are “The Godfather” and the television and the topology is the fact that the user wants to play “The Godfather” on television.

The contexts are checked (step204) for limitations to see if the user's intent can be resolved (step206).FIG. 3illustrates how the contexts relate to user intent. In this embodiment, the intent300is resolved based upon the resource context302, the user context304and the application context306. The combination of intent300and the contexts302-306comprise activity310. The activity310is resolved into a configuration. While user context304and application context306are shown inFIG. 3, those of skill in the art will recognize that the present invention can be used with just the resource context302. The present invention can also be used with the resource context302and one of the user context304and application context306.

The resource context302comprises all the devices and networks and content that are available and how they are available. For example, in a home setting, the resource context302would include the computers in the home, the type of network in the home, what is on the computers (e.g., applications and operating systems), networked components (e.g., printers, video recorders, televisions, etc.), where the components are located, whether there is Internet access, and the services available on the Internet.

The user context304comprises what is known about the user. For example, the user context304includes the user's location, the user's security permissions, the preferences in terms of the services that are used, how to pay for items, and other personal preferences such as how loud music is played. In one embodiment, the user context304includes a superset308. The superset308contains information about things the user is part of that is not specific to that user. This information can be information about family, domain, organization, etc. This allows information common to a family (e.g., no M-TV, no R-rated movies before 9 p.m.) to be in one place. Similarly, information common to a domain or an organization can be put in one location.

The application context306comprises information about applications that are present. The information includes what type of application an application is, how the application processes inputs, how the application outputs data, etc.

Turning back toFIG. 2, an error message is returned (step208) when it is determined in step206that the user's intent cannot be resolved. For example, the user's intent is to play “The Godfather” on television. The resource context302indicates that all of the televisions are presently unavailable (e.g., the televisions are being used or are off-line for repair). As previously indicated, the constituents are the movie and television. The constituents and topology cannot be resolved because one of the constituents is not available. Similarly, if the user context304indicates that the user does not have permission to watch the movie, the constituents and topology cannot be resolved and an error message is provided.

If the user's intent can be resolved, a configuration is determined based upon the contexts (step210) and the configuration is implemented (step212). A configuration has the characteristics that the providers (e.g., devices, components) for everything are known and the parameters that the providers need to implement the user's intent are known. Using the same example, the user context304indicates the user has permission to watch the movie and the resource context302indicates that a television is available for use. The configuration is the television and the movie being played on the television and the configuration is implemented by playing the movie on the television. Those skilled in the art will recognize that the intent could result in different configurations based upon the contexts. For example, in a first instance, the television in the den is available and the big-screen television in the basement is unavailable and at another instance, the television in the den is unavailable and the big-screen television is available. In the first instance, the configuration is that the movie is to be played on the television in the den. In the other instance, the configuration is that the movie is to be played on the big-screen television in the basement.

In one embodiment, the users specify their intent through an XML schema. The XML schema allows the users to specify as much detail of what is wanted as the users desire. This can range from a high level topology with few constraints to a detailed description of the topology with detailed descriptions of each component and connection in the topology. The basic elements of the XML schema include an object element, a node element, a connection element, an interface element, and a format element.

The object element specifies an object to be created. The node element identifies a node in the topology and the connection element specifies connections between nodes. The interface element specifies an interface that clients use to control the object and the format element specifies a format for a connection or node. Those skilled in the art will recognize that other elements can be added and that not all elements are needed for certain implementations. For example, there is no connection element if the topology is playing a song that is already loaded on a device on that device.

The object element includes an autoplay attribute. The autoplay attribute indicates whether the object should be started by the component that created the object and provides the user with the ability to specify the object with the object operating until an end command is received.

The node element includes an identifier attribute that identifies the node in the context of the request. This feature allows the node to be referenced by other elements. Child elements, which describe the element in question, describe the user's constraints and goals for the node and indicate what interfaces the user may want to access to control the node.

The connection element includes source and destination attributes that identify the nodes that are to be connected. Additional attributes are a source terminal attribute and a destination terminal attribute. The source terminal attribute and destination terminal attribute are used in situations where a node has multiple connection points (e.g., terminals or pins) and a connection point cannot be identified by the direction of data flow. Child elements are used to specify user constraints and goals including format, quality of service, and routing.

The interface element in the intent schema allows the user to indicate that the interface that is named via the name attribute may be requested in relation to the node to which the interface element is attached. For example, if a user intends to play audio content through a stereo amplifier, she might want to control the volume of the amplifier. An interface element (e.g. <interface>IAudioVolume</interface>) indicates to the program module136that the volume interface may be requested and that appropriate resources should be reserved. The interface element results in the advantages that the program module136is able to obtain an interface promptly and that the resources required to obtain the interface are reserved.

The format element includes attributes that identify the types of formats the connection or node supports and are used to call out a specific format handler. A format handler is a module that configures a provider to implement a specified format. In the context of a connection, the format of the connection is restricted to the formats specified in the format element. In the context of a node terminal, the formats supported by the node terminal are restricted to the formats specified in the format element.

FIG. 4illustrates the basic elements of a simple topology. The object400described by the object element has nodes402-406. The nodes402-406are identified by the identifier attribute (not shown). The node402is connected to nodes404,406by connections408,410which have source node and destination node attributes412,414, source terminal attributes416,418, and destination terminal attributes420,422. The interface element provides a client with a control interface (not shown). The format element (not shown) specifies the formats at the node terminals and connections.

An example of the XML schema to express user intent is below. The user intent is to play audio/video streams from a UPnP camera on a laptop and an IEEE 1394 compatible television. The XML schema is:

The resources are described in XML and allow users to specify their intent in more detail or do nothing and use the defaults. In one embodiment, the UPNP camera is expressed as follows.

A method of determining a user's intent has been described that provides users with the flexibility to express their intent as broadly or as detailed as desired. The flexibility allows the user to utilize programs without having to know which program to use, which programs and other resources are available, and how the programs work. All of the references cited herein, including patent applications are hereby incorporated in their entireties by reference. In view of the many possible embodiments to which the principles of this invention may be applied, it should be recognized that the embodiment described herein with respect to the drawing figures is meant to be illustrative only and should not be taken as limiting the scope of invention. For example, those of skill in the art will recognize that the elements of the illustrated embodiment shown in software may be implemented in hardware and vice versa or that the illustrated embodiment can be modified in arrangement and detail without departing from the spirit of the invention. Therefore, the invention as described herein contemplates all such embodiments as may come within the scope of the following claims and equivalents thereof.