US20040128624A1 - System and methods for an architectural framework for design of an adaptive, personalized, interactive content delivery system - Google Patents

System and methods for an architectural framework for design of an adaptive, personalized, interactive content delivery system Download PDF

Info

Publication number
US20040128624A1
US20040128624A1 US10/736,690 US73669003A US2004128624A1 US 20040128624 A1 US20040128624 A1 US 20040128624A1 US 73669003 A US73669003 A US 73669003A US 2004128624 A1 US2004128624 A1 US 2004128624A1
Authority
US
United States
Prior art keywords
user
content
presentation
null
model
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US10/736,690
Inventor
Javier Arellano
Abha Divine
Zuzana Dobes
Guangtian Liu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
AT&T Labs Inc
Original Assignee
SBC Technology Resources Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SBC Technology Resources Inc filed Critical SBC Technology Resources Inc
Priority to US10/736,690 priority Critical patent/US20040128624A1/en
Publication of US20040128624A1 publication Critical patent/US20040128624A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B5/00Electrically-operated educational appliances
    • G09B5/06Electrically-operated educational appliances with both visual and audible presentation of the material to be studied
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data

Definitions

  • This invention relates to architectural frameworks for development of multimedia applications, and more specifically to architectural frameworks for developing adaptive, personalized, interactive multimedia applications and services.
  • the process of computational storytelling involves the author supplying the elements of the story and the structure to organize the story elements.
  • the agent takes the elements of the story and the structure and generates a story, more precisely, a narrative, and presents the “story” to an audience.
  • the audience reacts and generates feedback to the agent.
  • the agent acting as proxy for the author can react to the feedback by modifying the presentation.
  • Some current conceptual views regarding the techniques or technical strategies that are related to developing a framework for creating and delivering interactive multimedia applications include: dynamic presentation, behavior-based artificial intelligence, memory-based learning, and user modeling.
  • Szekely P. “Retrospective and Challenges for Model-Based Interface Development”, USC Information Sciences Institute, Marina del Rey, Calif., 1996, proposes one architecture. Szekely discloses that a model-based user interface calls for a model of the interface that is organized as three levels of abstraction: task and domain model for the application, an abstract user interface specification, and a concrete user interface specification.
  • the task model represents the task that the user will undertake to perform with the application.
  • the domain model represents the data and the operations that are part of an application.
  • the second level is the abstract user interface specification.
  • an interface is defined in terms of abstract interaction units, information elements, and presentation units.
  • the abstract interaction units are low-level interactions such as showing a presentation unit.
  • Information elements represent data such as attributes extracted from the domain model.
  • Presentation units are abstractions of windows and specify collections of abstract presentation units and information elements that are to be treated as a unit. Basically, the abstract user interface specification abstractly specifies the way information will be presented in the interface and form for interaction with the information.
  • the third level is the concrete user interface specification that specifies rendering styles for the presentation units, i.e., widgets.
  • Different model-based user interface (UI) frameworks differ in what models they provide. Szekely discloses that some frameworks have one model but not the other two, while in other cases, only one model is defined.
  • FIG. 2 is a flowchart showing a generic model-based presentation system as disclosed in Szekely.
  • BBAI BBAI
  • This framework enables a system to bring together different classes of reasoning techniques, heuristic, statistical, etc., and incorporate each application of a technique into a lower-level competency module or “expert”. In effect, these modules come together to form a multi-agent system.
  • memory-based learning entails comparing a new situation against each of the situations which have occurred before. Given a new situation, a memory-based learning agent looks at the actions taken in N of the “closest” situations or “nearest neighbors” to predict the action for a new situation.
  • FIG. 3 shows a diagram of the memory-based reasoning approach.
  • User modeling is an inexact science but its predictions need not be perfect to be useful. User models can range from simply storing a bit indicating if the user is a novice or expert in terms of an application, to a rich, complex snapshot of the user's interest and preferences. Once a universe of user models is collected and maintained, the models may serve as data for further analysis to find pattern and trends in this universe. These are some of many critical issues relevant to user modeling.
  • User models may be either pragmatic or cognitive as disclosed in Orwant, J, “Doppelganger Goes To School: Machine Learning for User Modeling,”, MIT MS Thesis, 1993.
  • the cognitive type user models are not connected to any application or applications in particular. This type of user model is attempting to capture a user's beliefs, goals and plans in a general sense.
  • a pragmatic user model is not driven by a cognitive model but by the practical aspects of the environment, e.g., applications.
  • the pragmatic user model can be characterized by the collection of raw observational data and making sense of the data after the fact. In another sense, the cognitive model is a top down approach and the pragmatic model is a bottom up approach.
  • individuals can take on particular roles, e.g., business, leisure, parental, professional. These are defined as persona in a user modeling sense. Personae could be utilized to partition the user model space into more manageable chunks.
  • a pragmatic user model can make use of filtering techniques.
  • Content-based filtering involves selecting items for the user based on correlations between content of the items and the user's preferences. For example, a personalized TV program guide uses information about a television program, such as the program's type and its level of violence to predict whether or not to recommend and include the show in a personalized line-up.
  • users rely on exploration to discover new items of interest, i.e., serendipitous items.
  • content-based filtering has no inherent capability to generate these sort of items. In practice, one must add special purpose techniques to add these capabilities to content-based filtering to introduce serendipity.
  • Social-based filtering is one potential solution to the serendipity dilemma.
  • Social-based filtering basically attempts to exploit similarities between the profiles of different users to filter content.
  • Social-based filtering can be an extension of content-based filtering.
  • social-based filtering algorithms can compare this model to other user models and weigh each model for the level of similarity with the user model. Orwant, J., “For Want of a Bit The User Was Lost: Cheap User Modeling”, IBM Systems Journal, vol. 35, Nos 3&4, 1996 and Shardanand, U., “Social Information Filtering for Music Recommendation”, MIT MS Thesis, 1994 disclose algorithms for computing similarity between user models.
  • the present invention is directed to a method for design of an adaptive personalized interactive content delivery system that substantially obviates one or more of the problems arising from the limitations and disadvantages of the related art.
  • Another object of the present invention is to provide an architectural framework that supports and promotes the creation of reusable components for building personalized interactive multimedia presentations of complex applications.
  • one aspect of the present invention is directed to a method for creating and delivering an interactive multimedia application that can dynamically adapt to at least one user.
  • At least one user model is created for at least one user, the at least one user model represents interests and trends of the at least one user.
  • a multimedia story is developed based on the at least one user model.
  • a customized presentation of the multimedia story is generated where the at least one multimedia story allows for multiple presentations of the multimedia story.
  • the customized presentation is displayed to the at least one user.
  • the customized presentation is modified based on input from the at least one user.
  • the story includes a protean-like narrative.
  • the creating includes: gathering data from the at least one user; analyzing a history of the at least one user; monitoring data related to the at least one user; detecting patterns and trends of the at least one user; and preparing the at least one user model based on the gathering, analyzing, monitoring, and detecting.
  • the at least one user model is modified periodically based on information obtained from periodically repeating the gathering, analyzing, monitoring, and detecting.
  • the at least one user model includes a set of models.
  • the story includes at least one content element.
  • the at least one content element characterizes data of the interactive multimedia application.
  • the at least one content element is representable in multiple forms.
  • the at least one user model comprises a set of models.
  • the multiple forms include text, audio, video, image, or multimedia.
  • the invention includes filtering the at least one content element to produce a subset of the at least one content element, each content element in the subset of at least one content elements selected based on semantics of the filtering.
  • the invention includes assembling the subset of at least one content elements to produce the multimedia story.
  • the multimedia story may be personalized to the at least one user.
  • the generating includes: determining the delivery environment of the at least one user; determining the style look and feel for the presentation; determining the narrative context for the presentation.
  • the narrative context defined by the semantics of the interactive multimedia application; and creating a customized presentation of the multimedia story based on the delivery environment, the style look and feel, and the narrative context.
  • a weighted value may be assigned to each interest and trend of the at least one user.
  • the weighted value represents the relative importance of each interest and trend with respect to the at least one user's apparent interests.
  • the interactive multimedia application may be created using object-oriented design techniques.
  • the invention is directed to a method for creating and delivering an interactive multimedia application that can dynamically adapt to at least one user that includes: creating a story engine, the story engine may be created by the interactive multimedia application; creating a user model manager, the user model manager may be created by the interactive multimedia application; providing the story engine with application-specific information and user information; providing the story engine with a user model from the user model manager, the user model represents interests and trends of the at least one user; providing the story engine with a narrative structure, the narrative structure defined by the semantics of the interactive multimedia application; producing user-relevant content, the user-related content may be produced by applying filters to the content model, the user model may be used for filtering purposes; creating a presentation engine, the presentation engine may be created by the interactive multimedia application; providing the presentation engine with the narrative structure, content model, and a presentation model, the content model may be empty; generating an abstract presentation defined by the presentation model, the abstract presentation may be generated by the presentation engine; generating a concrete presentation by using the
  • the interactive multimedia application may be created using object-oriented design techniques.
  • the interactive multimedia application may be created using JAVA.
  • the invention is directed to a system for creating and delivering interactive multimedia applications that dynamically adapt to a user that include: a user modeling subsystem where the user modeling subsystem creates and maintains at least one user model for each user, each at least one user model represents interests and trends of each user; a story engine subsystem where the story engine subsystem selects appropriate content elements and collects and organizes these elements in accordance with a narrative framework; and a presentation subsystem where the presentation subsystem generates a presentation to the user, the presentation generated uses the narrative framework.
  • the user modeling subsystem includes: a user model editor; a user modeling manager; an analysis engine; and a user model database.
  • the story engine subsystem includes: a first database where the first database contains a content model library, the first database accesses content from a content database; and a second database where the second database contains a story template library.
  • the presentation subsystem includes: a first database where the first database contains at least one presentation models; a presentation builder; a second database where the second database contains a concrete presentation library; and a presentation engine.
  • the content elements may represent pieces of information that can be presented via one or more media types.
  • the presentation may be constrained by a narrative style, narrative context, and demands of the delivery environment of the user.
  • FIG. 1 is a flowchart showing a conventional dynamic storytelling structure
  • FIG. 2 is a flowchart showing a conventional generic model-based presentation system
  • FIG. 3 is a diagram showing a conventional memory-based reasoning system
  • FIG. 4 is a flowchart showing a multiagent storytelling system according to the present invention.
  • FIG. 5 is a diagram showing a model abstraction view controller architecture according to the present invention.
  • FIG. 6 is a flow diagram showing a functional overview of an application's framework according to the present invention.
  • FIG. 7 is a flow diagram showing an architectural framework system architecture according to the present invention.
  • FIG. 8 is a flowchart showing an exemplary presentation object model according to the present invention.
  • FIG. 9 is a flowchart showing an exemplary object model for framework according to the present invention.
  • FIG. 10 is a flow diagram of a model of content and story and an exemplary representative application according to the present invention.
  • FIG. 11 is a flowchart of an exemplary object model for a representative application according to the present invention.
  • FIG. 12 is an exemplary interaction diagram for bootstrapping use case according to the present invention.
  • FIG. 13 is a flow chart showing the relationships between a community model, user models, and user personae according to the present invention.
  • FIG. 14 is a diagram showing semantics and content
  • FIG. 15 is a flow diagram showing multiple representations of content according to the present invention.
  • FIG. 16 is a diagram showing selective assembly of content according to the present invention.
  • FIG. 17 is diagram showing an anatomy of an application according to the present invention.
  • FIG. 18 is a diagram showing a thick client-thin server partitioning of an application according to the present invention.
  • FIG. 19 is a diagram showing a thin client-thick server partitioning of an application according to the present invention.
  • FIG. 20 is a diagram showing a peer-to-peer distributed partitioning of an application according to the present invention.
  • FIG. 21 is a user modeling class diagram according to the present invention.
  • FIG. 22 is a story engine class diagram according to the present invention.
  • FIG. 23 is a presentation engine class diagram according to the present invention.
  • FIG. 24 is a content classes class diagram according to the present invention.
  • FIG. 25 is a metadata classes class diagram according to the present invention.
  • FIG. 26 is block diagram of exemplary content database according to the present invention.
  • FIG. 27 is block diagram of a high level view of an exemplary web-based service
  • FIG. 28 is a flowchart of an exemplary story model according to the present invention.
  • FIG. 29 is a flowchart of exemplary HTML presentation templates according to the present invention.
  • FIG. 30 is a flowchart of generation of a presentation structure according to the present invention.
  • FIG. 31 is a flowchart of an exemplary final form of a presentation of a scene according to the present invention.
  • the present invention is an application framework for creating and delivering interactive multimedia applications and/or services.
  • the applications framework according to the present invention will enable the deployment of applications that dynamically adapt to the user through the personalization of content and presentation.
  • the applications framework may be a software infrastructure that supports and promotes the creation of reusable components for building personalized interactive multimedia presentations of complex applications.
  • the applications framework according to the present invention is a software foundation for enabling community and collaboration in a networked world.
  • the applications framework allows one to create an application-specific structure and utilizes structure to create multiple presentations from the same set of application-specific content where agents with different style goals or communicative intent make sequencing and editing decisions constrained by the user's preferences and the characteristics of the content and the delivery device.
  • the architecture of an applications framework according to the present invention may be described by a series of abstractions, each one giving more and more concrete artifacts.
  • the application framework according to the present invention encompasses many elements ranging from a dynamic presentation system, a multiagent system, to a memory-based user modeling system and a multi-paradigm application framework.
  • the present invention decomposes the agent that inhabits the dynamic storytelling structure down to a set of agents, each agent corresponding to an area of competency.
  • agents include user modeling, storytelling, and presentation design/generation.
  • This model subscribes to the behavior-based AI approach where each agent, an expert in its own right, brings together their own lower lever competencies to create a higher level competence-emergent behavior.
  • FIG. 4 shows a diagram of a multiagent storytelling system according to the present invention.
  • the user agent, story agent and presentation agent, according to the present invention will now be discussed in more detail.
  • the User Agent embodies the user modeling aspect of the architectural framework system, according to the present invention.
  • the user modeling system is the user to the system. It encompasses several components that together enable the capture of relevant interaction data, the storage and representation of a user's interests, trends, etc., and the capability to manage and analyze the resulting user data.
  • the User Agent in the architectural framework handles capturing user feedback, maintaining the user's profile, structuring interests and preferences, and making sense of a user's interaction history.
  • a User Model Editor allows the end user and/or administrator to specify the user's interest along with a measure of confidence.
  • a sensor is used to capture user interaction at the source and understands how to extract the relevant information from the user feedback.
  • the sensor may be in the form of a software program.
  • the sensor acts as a proxy for the user modeling system. Different kinds of sensors may be employed to gather information at their respective sources.
  • a sensor knows how often to gather data, what data to monitor, and how to decode the present event into user profile data.
  • a sensor may be one or several software components, where each component may capture and/or monitor different user information.
  • the user modeling system provides for a repository for representations of each users' preferences.
  • each user model needs to maintain some form of history that describes the relevant “discourse” of interaction that supports the user's preferences contained therein. Sensors provide the interaction data.
  • the nature of the representation of a user model is driven by the feature-based content that characterize the application data.
  • the user models are structured as a set of models for each domain or application (e.g., TV viewing, shopping, etc.). This is in contrast to the persona concept described previously. Persona relate to a role rather than an application's specific profile.
  • a persona is a model that exists independent of an application oriented or a domain oriented model.
  • the User Agent is introspective and computes/detects trends and patterns.
  • the User Agent constantly reevaluates the importance of features and the values the features can hold in the domain oriented models.
  • the User Agent includes a reasoning component, an analysis engine, that analyzes a user's data and computes correlations between features and feature-values as defined by the memory based learning framework described previously.
  • the Story Agent selects the appropriate content elements and collects and organizes these elements as prescribed by an appropriate class of narrative framework.
  • This narrative framework represents a “prototype story” that is utilized by the Presentation Agent to generate a customized presentation.
  • the process of selecting content is driven by the content types as specified by the content model.
  • the User Agent's user model is utilized in the selection process. As described previously, the User Agent is responsible for analyzing a user's data and computing correlations between features and feature-values and carrying out its role in the memory based learning scheme.
  • the Story Agent is responsible for choosing the best content elements by using the embedded logic provided by the narrative framework. Once the story agent has selected the “best set” of content elements, the narrative framework now populated with content elements is supplied to the Presentation Agent's computation of the final story's look and feel.
  • the Presentation Agent takes the dynamically generated narrative (the populated narrative framework) and creates a presentation.
  • the Presentation Agent generates a presentation by design where the design is constrained by a narrative style (narrative context), by a particular look and feel (style context), and by the demands of the delivery environment (delivery context).
  • the agency of this agent is brought to life by specifying an abstract representation of a presentation.
  • the model based approach to user interface design supports the idea of an abstract, declarative representation of a user interface.
  • the approach according to the present invention borrows from this approach, but only superficially, mainly in high level terms.
  • presentation generation aspect of the architectural framework according to the present invention is a novel yet simple solution.
  • Presentation design involves four types of components: abstract presentations, concrete presentations, reactors, and design constraints.
  • An abstract presentation is a meta-presentation.
  • An abstract presentation is a loose design representation of a concrete presentation.
  • Abstract presentations may have parts that themselves are abstract presentations. This results in the creation of an hierarchically composed presentation. Defining a modular loosely structured presentation not restricted to a final form and layout enables the creation and maintenance of flexible and dynamic multimedia presentations.
  • An abstract presentation maps to and represents a content element. It serves as the link between interface and content.
  • Concrete presentations are either standard user interface components, i.e., widgets or wrapper-style components that repurpose other widgets.
  • a wrapper is a software component (e.g. an object) that hides the real software or device that is being used.
  • the concrete presentation objects are the actual user interface objects that appear on the display.
  • Reactors are action objects that associate concrete presentation events and an operation on a content element. Reactors are registered (i.e., associated with appropriate software components to handle the operation) and managed by abstract presentations.
  • Design constraints are heuristics that guide in the final make-up of the presentation, including layout, style and content make-up of the presentation. These rules can be classified into three categories: narrative context, style context, and delivery context.
  • Narrative context are rules for narrative-specific realization, e.g., in a personalized TV program guide creating programs, line-ups along thematic lines.
  • Style context are rules for style, look and feel, e.g., a tabular view versus a 3D landscape of the schedule in a personalized TV program schedule.
  • Delivery context are rules that deal with the delivery environment, e.g., real estate allocated for a desk top versus a PDA (Personal Digital Assistant), connection protocol, browser, modem speed, etc.
  • the abstract presentation and design constraints represent the declarative aspects of the architectural framework according to the present invention, and together they serve as an abstraction of the final interface.
  • this framework is an extension of the known Model-View-Controller (MVC) user interface architecture.
  • MVC Model-View-Controller
  • the MVC paradigm partitions a user interface architecture into three components: a model (an abstraction of the problem domain), a view (a visual representation of the model or part of the model), and a controller (an input handler).
  • each of these components is a collection of one or more objects.
  • the user issues some form of input or command which is captured by the controller.
  • the controller takes the command (e.g., mouse click, key stroke, speech utterance, etc.) and translates it into an action on a model object.
  • a controller is associated with a view.
  • the view displays the state of the model and relies on a dependency mechanism whereby the view registers itself as dependent on the model.
  • the model broadcasts a notification to all dependent views that a change has occurred.
  • the views in turn query the model to retrieve the details of the change and update themselves accordingly.
  • the model encapsulates the semantics of application objects. Subcomponents of the model hide the details of communication, database access, etc. The model is not aware of the views (or the controllers for that matter) but only through anonymous message broadcasting does the model communicate with its dependent views.
  • the MVC architecture promotes modularity and the decoupling of application data from the mechanisms to view and manipulate that data. So as a result, this allows for software reuse, both in a design and implementation sense. In theory, one can reuse a model in different application, i.e., the same model, different views. Additionally, one may reuse a view (or controller) in different applications, i.e., same view, different models.
  • the known MVC architecture assumes a set of views statically bound to each model.
  • the architectural framework according to the present invention has extended this architecture by decomposing the view controller compliment set into an abstract presentation component and a concrete presentation component as shown in FIG. 5.
  • the concrete component encapsulates the traditional view-controller objects, but only in an incomplete and unrealized state.
  • the abstract component dynamically generates and manages the final form look and feel of the concrete components.
  • the present invention effectively enables the creation of dynamically bound views not possible in the currently known MVC tradition.
  • the architectural framework according to the present invention defines a declarative based Model-Abstraction-View-Controller user interface architecture.
  • FIG. 6 shows a functional overview of an application framework according to the present invention.
  • the items in the circles represent subsystems.
  • the items inside the parallel lines generally represent models, except for the user feedback.
  • the process of developing an application using an application framework according to the present invention consists of designing or specifying (and possibly reusing or repurposing pre-existing models) models required by the agents of the framework. Basically, the models for content presentation and the user need to be created.
  • the designer of the application must design and specify: a content model, a story model (narrative structure), a presentation model, and a domain user model for the user model.
  • Creating a content model is building a typical model of the application, such as called for in the traditional Model-View-Controller sense.
  • the content model is a representation of the semantics that characterize the content elements that make up an application, e.g., a TV program schedule consisting of program line-ups where the line-ups consist of time slots populated by TV programs slated to be
  • the Story Model (narrative structure) is a “protean”-like content model. It serves to organize the content elements that have been selected as candidates for the presentation generation phase.
  • the narrative is basically the universe of possibilities as defined by the semantics of the application, e.g., creating a personalized TV program guide that presents a set of personalized line-ups involves a narrative structure that groups candidate programs according to their start time (candidacy is a complex step of consulting a user model and predicting the best content elements given a set of application specific criteria).
  • the presentation model specifies the components of a presentation, the behavior (linking actions in the presentation units to application content functions) and design heuristics (rules that guide setting the presentation style, presentation context, and display context), e.g., in the personalized TV program guide, if the presentation context is thematic then generate a personalized line-up where each line-up represents a particular theme given the candidate set.
  • the Presentation Builder stores the presentation model in persistent storage.
  • FIG. 7 shows a flowchart of an exemplary system architecture according to an architectural framework according to the present invention.
  • the User Model Manager manages the storage and retrieval of user's interests and trends and interfaces to other subsystems.
  • the Analysis Engine is used to analyze interaction histories and detect patterns and trends.
  • the User Model Editor is an administrative tool that allows a user and/or administrator to modify a user model.
  • the user modeling subsystem uses user models and community models.
  • a community model is a model of a group of users that share some common interest or trend.
  • the Story Engine selects application-specific content to serve as the addition for a new presentation, and generates a narrative/story that allows for multiple play out of different presentations of the story.
  • the Story Engine uses the story model and the user model.
  • the Presentation Engine is responsible for interpreting an abstract presentation model and creating concrete presentation objects.
  • the Presentation Engine also resolves constraints imposed by abstract presentations, input content, and display context as part of the final realization of the concrete presentation objects.
  • the Presentation Engine uses the presentation model and the story model.
  • the Presentation Builder is responsible for storing presentation models in persistent form.
  • the Presentation Builder uses the presentation model.
  • Designing and delivering an application using an architectural framework according to the present invention generally include:
  • the application creates a Story Engine (SE) and a User Model Manager (UMM).
  • SE Story Engine
  • ULM User Model Manager
  • the application informs the SE who the user is and any other application-specific information deemed necessary.
  • the SE requests a user model from the UMM.
  • the application creates a Presentation Engine (PE).
  • PE Presentation Engine
  • the PE is handed the narrative structure for the application, the content model, and the appropriate presentation model.
  • the PE generates an abstract presentation as defined by a presentation model.
  • the PE exercises the abstract presentation's heuristics and generates a concrete presentation.
  • the PE displays the concrete presentation.
  • the application is self-sustaining at this point.
  • the abstract presentation along with the presentation engine, handle autonomously most interaction scenarios using the flexible and adaptable capabilities encapsulated in the presentation.
  • the user requests for content data that did not play a role in the story generation (e.g., in the personalized TV program guide, personalized line-ups from 6:00 p.m. to 9:00 p.m. are presented, but the user now wants to expand the window of the program guide by looking at programs from 6:00 p.m. to 12:00 a.m.).
  • the Analysis Engine examines the interaction histories and the user models and recomputes trends and patterns. The user models are then revised accordingly.
  • An architectural framework system according to the present invention is thus self-improving, self-sustaining and virtually perpetual.
  • FIG. 8 shows an exemplary presentation object model according to the present invention.
  • FIG. 9 shows an exemplary object model for the architectural framework according to the present invention.
  • the various boxes in the object models represent classes of objects of the architectural framework. The following tables list the classes along with their associated responsibilities and attributes.
  • Presentation Classes AbstractPresentation Responsibilities Attributes Serve as prototype for a set of presentations ConcretePresentation set of reactors Manage a set of subordinate a ConcretePresentation presentations set of associated constraints (rules) Add a presentation Delete a presentation
  • Reactor Responsibilities Attributes Encapsulates an application-specific an AbstractPresentation behavior a ContentElement Acts as an action/command object
  • PresentationEngine Responsibilities Attributes Creates and displays an AbstractPresentation AbstractPresentations (top-level) Interprets the declarative specification an Application associated with an AbstractPresentation Reports invalidated presentations to Application Resolves presentation's constraints and realizes ConcretePresentations
  • PresentationBuilder Responsibilities Attributes Stores AbstractPresentation in an AbstractPresentation (top-level) persistent storage (e.g., file)
  • Story Classes StoryEngine Responsibilities Attributes Selects ContentElements as specified a UserModel by Story type and filtered by the a ContentElement (top-level) UserModel a Story Creates a Story structure
  • Story Responsibilities Attributes Represents a particular narrative set of ContentElements structure, application-specific
  • Application Classes Attributes Sequences the “tools” to create a a PresentationEngine presentation a UserModelManager Handle application-specific events a StoryEngine (e.g., invalidated presentations, special timers)
  • An exemplary representative application will be defined and used to illustrate the capabilities of the architectural framework according to the present invention.
  • This representative application is a TV program guide.
  • the exemplary TV program guide is a personalized program guide (PPG) that suggests TV programs that may be of interest to the user right along side the traditional program schedule.
  • PPG personalized program guide
  • the following assumptions will be used: (1) the presentation model has been previously specified and declared; (2) the application is always up and running (i.e., 24 hrs a day); and (3) the Analysis Engine has conducted its initial analysis of the viewer's history.
  • FIG. 10 shows an exemplary object model of content and story in the exemplary application.
  • FIG. 11 shows a flowchart for an exemplary object model for the exemplary application.
  • the run time representation of the overall exemplary application is outlined.
  • the PPG application displays a program guide that includes three areas: the current movie playback component, a current informational panel, and the program schedule grid.
  • FIG. 12 shows an exemplary interaction diagram for this exemplary bootstrapping use case according to the architectural framework of the present invention. The following activities occur during this bootstrapping:
  • anApplication creates a User Model Manager (aUserModelMgr);
  • anApplication creates the standard Program Schedule (aProgramSchedule) based on some initial time boundaries;
  • aStoryEngine requests a user model based on a Name/ID from the User Model Manager (aUserModelMgr);
  • aStoryEngine retrieves the program schedule (aProgramSchedule);
  • aStoryEngine selects appropriate application content based on the user model (aUserModel) and the input content (aProgramSchedule);
  • aStoryEngine generates a story based on a story template program guide narrative (aPgmGuideNarrative);
  • anApplication creates an instant of a Presentation Engine (aPresentationEngine);
  • aPresentationEngine creates an abstract presentation (likely a series of nested presentations) by restoring the object from persistent story, e.g., straining from a file;
  • aPresentationEngine creates all specified interactors for each abstract presentation.
  • aSelectCmd interactor creates all specified interactors for each abstract presentation.
  • aPresentationEngine creates a grid object to aid in the layout of the overall presentation
  • aPresentationEngine creates all concrete presentation objects as declared by their corresponding abstract presentation
  • aPresentationEngine resolves constraints as specified by the display rules and application rules and reconciled with the input content and the display context by the aPresentationEngine's constraint solver/rule interpreter;
  • aPresentationEngine realizes the concrete presentation's (aConcretePresentation) by determining its final form including attributes and settings;
  • aPresentationEngine displays the concrete presentation (aConcretePresentation);
  • aPresentationEngine notifies the application (anApplication) of its successful initialization
  • a corporate gateway web site may be designed to serve a company's online product and service catalogue, customer service center, or depending on the company's line of business, serve as a content navigator.
  • XYZ Communications is a communications company that has set up a web site that includes corporate product and service information and serves as a gateway to aggregated content (e.g., special events, community information, etc.).
  • a feature in a feature-vector is represented by a type (e.g., keyword, geo-location, address) where the feature type encapsulates validation routines for authenticating the feature's data. These routines may be utilized by meta tools such as editors to validate the data entered at the interface.
  • a user model simply contains a feature-vector that is made up of a set of weighted features.
  • the weight designates the relative importance of the feature with respect to a user's apparent interest.
  • a feature and its associated weight may be explicitly or implicitly defined, i.e., manually set by the user, or derived by some statistical or machine learning algorithm analyzing a user's previous interaction history.
  • Community models that represent a set of users may be created by bringing together users for different reasons (location, interest, job, or event). Therefore, a user model may actually represent an aggregate of several user models, each one representing a different persona, e.g., work, home, etc. as shown in FIG. 13.
  • a content model is required by a content assembly engine to put together a story tailored to a user's request and profile. This requires a content model to be able to associate the various content elements semantically to form a story and to associate the content with user's preferences.
  • a presentation generator i.e., Presentation Engine
  • the content model should be able to offer alternative presentations of the content for the presentation generator to select from.
  • a content element is defined as an object representing a piece of information that can be presented via one or more media types.
  • FIG. 14 shows a diagram of semantics and content where the semantics describe what a content element is about.
  • the semantics could potentially enable a content assembly engine to associate content elements on a more semantic level.
  • An event or item on our exemplary web site could be represented as a content element that is media independent, but can manifest itself in multiple forms or representations such as a text document, an audio/video clip, or even a multimedia presentation. For example, assuming our exemplary web site included events such as information regarding a 1996 game, a baseball ad, and nature ad, FIG. 15 displays how each of these events could have multiple representations of content.
  • the application framework according to the present invention uses dynamic content assembly. With this approach, the development of an application or service is similar to the process of creating a dynamic story or movie that can adapt to a user, the available content, and the context at the time of delivery.
  • the present invention uses, among other concepts, three basic concepts in support of dynamic content assembly: story, filter, and scene.
  • a filter is a construct that takes in a set of content elements and returns a subset of the original inputs.
  • FIG. 16 shows an example of two such filters and the results being joined by an Andfilter that “ands” the results of two other filters.
  • a composite filter enables the creation of hierarchical layered reusable content assembly.
  • a scene is a composite filter that basically corresponds to one element and a story. By assembling a series of modular, layered scenes, we can tell a story at a fine level of granularity tuned to the user and the delivery context.
  • the architectural framework according to the present invention uses adaptive presentation in that scenes are presented in different ways depending on the available context of delivery (such as available display real estate, the network connection, etc.).
  • a presentation engine may generate presentations that take into account the context of delivery and select appropriate media representations to show the content element.
  • a template that acts as a proxy for a story element or scene element, is used regarding laying out and arranging the presentation elements.
  • a primitive template has the responsibility of selecting the appropriate media element.
  • a composite template serves to support the design of hierarchal presentations with a fine level of specification and control.
  • FIG. 17 shows a diagram of an anatomy of an application using the architectural framework according to the present invention. Further, the following pseudo-code describes the basic framework of an application according to the present invention:
  • the initial story element is set to an element representing the home page of XYZ Communications' web site.
  • the system proceeds through its assemble-present-dispatch steps, a kind of dynamically generated contextual movie. Therefore, a user could rapidly end up, for example, on one page of the XYZ Communications web site because a user has shown a continuing interest in the subject matter of that page. This interest was detected because the user has had a tendency to select information that can be described to have some sort of connection with that subject matter. For example, if the web page was a vegetarian page, the user may have shown interest in eating healthier, therefore, a connection with healthy diets. The end result is that the user would not have to wade through an extensive set of links and/or pages on topics of no or little interest to him or her.
  • the user is interacting with a user interface or a browser, depending on the implementation environment.
  • the Story Engine and the Presentation Engine serve as single points of interface to the story and presentation databases respectively.
  • the User Model Manager takes on a similar role over the database of user models by being a gateway to any user information.
  • an application is not just resident on one processing element but is distributed or networked, i.e., distributed and partitioned in multiple elements.
  • the following shows embodiments of an application developed with the architectural framework according to the present invention where the application is partitioned across network elements.
  • FIG. 18 shows a network diagram of an exemplary thick client-thin server design embodiment according to the present invention.
  • the client is bundled with both runtime engines (i.e., Story Engine, Presentation Engine) and the User Model-Manager that interfaces to a database of user models.
  • the story, content, and presentation databases are remotely based. This requires the Story Engine and the Presentation Engine to be designed to hide the details of accessing remote databases, similar to the role of the User Model Manager, which serves as a gateway to a repository of user models, local or remote.
  • remote databases need to be managed by server processes that can serve multiple remote users and provide an interface to clients for remote object communication (i.e., sockets, Java's RMI (Remote Method Invocation), CORBA (Common Object Request Broker Architecture), etc.).
  • server processes that can serve multiple remote users and provide an interface to clients for remote object communication (i.e., sockets, Java's RMI (Remote Method Invocation), CORBA (Common Object Request Broker Architecture), etc.).
  • this particular design requires the client to be either: resident on the client's machine, or downloaded at the point of remote access, e.g., Java applet.
  • FIG. 19 shows a network diagram of an exemplary thin client-thick server design embodiment according to the present invention.
  • the interface needs to have the capability to access and operate the application by sending a request to the remote host, who in effect acts as an application server and returns a generated presentation of the application.
  • a browser could serve as the user interface allowing the user to request a page for presentation (shipping along some form of identification, cookie, embedded CGI argument, etc.).
  • the server would then assemble and generate a complete presentation and return HTML that would be rendered in the browser.
  • the interface may be a generic interface like an HTML browser which only acts as an access point and waits for a complete server-side generated presentation to be rendered in its native HTML.
  • a Java applet that only implements a custom user interface may be downloaded. The applet would need to interface to the application server via some sort of protocol so it could render a server-side generated presentation utilizing its native Java widgets.
  • FIG. 20 shows a network diagram of an exemplary peer-to-peer distributed system.
  • all components may be distributed across the network in principle.
  • load balancing low bandwidth, intermittent network connections, efficient resource utilization, etc.
  • situations could arise that may warrant configuring an application in a fully distributed architecture (e.g., CORBA, Java RMI).
  • This partitioning implies that the application may be reduced to interfacing to proxy clients that do the real work of talking to their respective components.
  • a component may potentially take on both roles of server and client.
  • access in this configuration, the point of access is dependent on the implementation and/or delivery environment.
  • FIG. 21 shows an exemplary user modeling class diagram according to the present invention.
  • the following provide descriptions of exemplary base classes shown in FIG. 21.
  • the user modeling subsystem may be a collection of classes that supports the creation and maintenance of user models (i.e., profiles).
  • This class represents a user's interests through a FeatureVector.
  • Features are a content-independent metadata structure that serves as a common denominator between users and content.
  • This class represents a set of users as a community.
  • the inherited FeatureVector from the UserModel base class is treated as stereotype user of the community and computed by the Community class.
  • a set of users i.e., UserModels.
  • This class serves as interface to all UserModels and communities. It hides all remote access to remote models.
  • This class represents a repository of a chronically-ordered set of StoryEvents as a result of user interaction.
  • This component is basically a learning system.
  • a UserHistory contains StoryEvents where some in turn carry information as a result of the user selecting a ContentElement.
  • This information serves as raw data to determine the effectiveness/relevance of a UserModel's features
  • FIG. 22 shows an exemplary StoryEngine class diagram according to the present invention.
  • the Story Engine may consist of a content assembler (the Story Engine itself) and the databases containing data structures that specify an application and the underlying content model that represents and interfaces to multiple representations of multimedia content elements.
  • StoryElement is the abstract class for all components that makeup a story, i.e., elements to be assembled dynamically.
  • a Filter is a StoryElement that basically takes a set of input ContentElements and outputs a subset of the ContentElements based on the Filter's filtering semantics.
  • Each ContentElement that ends up in the Filter's set of outputs potentially has a set of points of interaction called anchors. These anchors can be activated as a result of, e.g., of user interaction, and produce an application event called a user selection. So, a Filter's anchors are derived from its contained ContentElements' anchors.
  • Filter a input set of ContentElements based some filtering semantics (as defined by concrete subclasses).
  • the set of ContentElements passed into the Filter for evaluation can be a selective set as bound by the application or the global set, which is all existing ContentElements in the current database.
  • This class is a Filter whose filtering semantics is to filter the input set of ContentElements based on the supplied Feature. The resulting set of matches is stored in the outputs.
  • This Filter interfaces to the current user's user model (as specified by the StoryEngine). It utilizes the user model's feature vector to filter content elements from the input ContentElements.
  • This class is a rule-based filter that applies a predicate operation, that in turn applies either a THEN or ELSE filter.
  • predicate( ) boolean
  • This operation executes its code and returns a boolean result. This operation needs to be redefined by concrete subclasses.
  • a Scene is the only presentable Filter. In order for any Filter to be presented, it must be embedded in a Scene.
  • This Filter supports the abstraction of services, presentations.
  • the AndFilter is basically a union set operator. It takes 2 or more filters. The combined results of the evaluation of this Filter are stored in its outputs.
  • the OrFilter is basically a union set operator. It takes 2 or more filters. The combined results of the evaluation of this Filter are stored in its outputs.
  • This Scene has a special capability to sequence its contained Filters' associated ContentElements, i.e., outputs. By defining a playout duration, each contained Filter's ContentElements will be presented one at a time. Optionally, the temporal playout can be repeated for a specified number of times.
  • This class represents events of interests to StoryElements.
  • the PresentationEngine is responsible for listening for events. Any StoryEvents are forwarded to the StoryEngine and ultimately to the Scene and the appropriate sub-components.
  • Timestamp null
  • This event occurs when a user activates an Anchor.
  • This event occurs when a timer has expired.
  • a timer is called for by a TemporalFilter and is realized by a Presentation-side Timer object.
  • This class is the system-level interface to the story subsystem.
  • the StoryEngine also interfaces to the global pool of ContentElements. It supplies these elements by default to the Filters' inputs.
  • This operation ultimately returns a new Scene that the StoryEngine executes to continue the playout of the story.
  • This class is representing an anchor that links to a source Filters and sink Filter.
  • the location of anchor is set in the sourceFilter attribute. Its destination is set in the destinationFilter attribute.
  • the destination can be determined at playout time, i.e., run-time.
  • FIG. 23 shows an exemplary PresentationEngine class diagram according to the present invention.
  • the Presentation Engine may consist of a presentation generator, and a library of presentation components that may be matched up with the corresponding application elements (i.e., story elements) that will compute the final presentation form of the content elements.
  • target delivery platform e.g., HTMLTemplate
  • Template The primary responsibility of Template is to determine which representation (ContentMediaElement) of the associated ContentElement to render.
  • a Template can be called upon successively to regenerate itself and select an alternative ContentRepresentation.
  • Top-level operation to generate a candidate form of the Template. This operation calls upon select( ). Returns true if successful.
  • this operation evaluates the Template in its candidate form to determine if its acceptable.
  • This class is an aggregate that maintains and represents a set of Templates. This class enables hierarchical-structured, recursive, presentations. This class typically maps to a Scene in the StoryElement domain. CompositeTemplate redefines render, select, generate, and evaluate operations.
  • LayoutElement computes candidate layout of the contained parts.
  • This class encapsulates the rendering of a presentation of a Scene.
  • the primary responsibility of the Presentation class is to create the corresponding presentation object hierarchy that map the hierarchical structure of a Scene object
  • This operation basically constructs a tree comprised of templates that map to each StoryElement contained in a Scene and its subcomponents.
  • This operation in turn calls render( ) on its contained Templates.
  • This operation in turn calls generate( ) on all contained templates to launch the generation of a Presentation.
  • This class presents a timer entity for showing a Presentation for a specific interval of time. A timeout event is spawned when a Timer has expires.
  • Concrete subclasses need to define the appropriate operations and attributes dependent on the specific delivery environment (e.g., HTML, X Windows, set-top, etc.).
  • This operation computes the spatial arrangement of a CompositeTemplate's elements.
  • the PresentationEngine is the system-level interface to the presentation system.
  • This operation includes the following steps:
  • This operation attempts to match the scene from the StoryEngine to a corresponding Presentation that will have the most appropriate mapping to the Scene components.
  • This operation waits for a StoryEvent to be detected and subsequently returned to the application.
  • This class represents the current snapshot of the delivery environment at any given moment during the generation of a Presentation.
  • This component is like the UserModel is to the user's profile, as a PresentationContext is to a profile of the presentation environment.
  • featureVector FeatureVector
  • FIG. 24 shows an exemplary content class diagram according to the present invention. The following provide descriptions of exemplary base classes shown in FIG. 24.
  • ContentElement is the root class of the content model hierarchy. This class abstracts an element of content and maintains a set of ContentMediaElements, where each ContentMediaElement is a different representation of the ContentElement (e.g. text, image, etc.)
  • This class supports the creation of an aggregation of ContentElements.
  • This class basically acts as a wrapper class to media assets, hiding the details of the raw media.
  • FIG. 25 shows an exemplary metadata class diagram according to the present invention. The following provide descriptions of exemplary base classes shown in FIG. 25.
  • FeatureType is a wrapper class that encapsulates one or more primitive datatypes that collectively provide more meaning.
  • FeatureType called homeLocation comprised of 4 strings that represent street address, city, state, and country of a user, or geoLocation comprised of two real numbers that represent the latitude and longitude of a location.
  • This class represents a weighted data, more specifically, a weighted FeatureType instance.
  • the assumption is that the “data” is rated in terms of importance on a real number scale from 0.0 to 1.0.
  • This class is a set of weighted Features. This class is a basic data structure for representing metadata.
  • FIG. 26 shows an exemplary content database for the corporate web site according to the present invention. From this sparse set of content, a simple portion of a web service will be designed.
  • the database contains content elements with varying representation. In some cases, the content element has multiple representations of the same type but with different media characteristics, e.g., the Nature Conservation Ad has two image representations but with differing specification for aspect ratio. The more varied the database in terms of types of representations and the number of versions of the same type of representation, the more contextual delivery of content for the user.
  • a story model will be described by using the exemplary web base service to show how a hierarchical organization of filters creates modular highly complex applications that are assembled dynamically, shaped by the characteristics of the current user and the available content.
  • FIG. 27 shows a block diagram of a high level view of a portion of the exemplary web base service. This portion focuses on the element of the story that presents information on the history of the Cedar Fever Bowl. The history of the bowl game goes back to 1995 and the intent of an imaginary web development team is to show a recap of each game (1995, 1996) and associate an advertisement alongside each game history recap. The development team develops a story model that further expands the block diagram shown in FIG. 27. Each game review is developed as a separate component and, therefore, each element is a self-contained independent aggregate of information.
  • the architectural framework according to the present invention supports the development of bottom up services and reusable story elements.
  • the 1995 game review will consist of a summary of the 1995 game and an advertisement that best matches the current user's user model.
  • the 1996 game review will consist of a summary of the 1996 game and an advertisement that best matches the current user's user model but that has not been previously reviewed by the user in the current session, otherwise, an advertisement that simply is sports related.
  • FIG. 28 shows the resulting story model.
  • FeatureFilters By using FeatureFilters, one can select specific content elements by referring to their content_id. UserFilters filter content elements that match a user's user model, returning a prioritized set of content elements sorted by one level of similarity. Since a story model is developed, the next step is to develop or reuse presentation components that will be designated to present the simple story.
  • a CompositeTemplate represents a set of Templates. Non-composite Templates are mapped to ContentElements. Composite Templates are mapped to Scenes (a composite ContentElement).
  • Templates call upon their associated ContentElements and retrieve the best representation of the element in the context of the current delivery environment.
  • a CompositeTemplate ensures that given its real estate its subcomponents are intelligently laid out with the best-suited media representation of a ContentElement (ContentMediaElement).
  • FIG. 29 an example set of presentation components are shown in FIG. 29. These example components are not fully specified, but they illustrate what is expected of a presentation component.
  • HTMLDoc, HTMLPage, and HTMLBody are CompositeTemplates, while HTMLBlock and HTMLAd are non-composite Templates.
  • the semantics of the components are loosely the following: (1) a HTMLBodyWithAd will always require 1 HTMLBlock and 1 HTMLAd; (2) A HTMLPage can contain 1 or more components of type HTMLBody; and (3) by default, a HTMLDoc contains one HTMLPage. Additionally, a HTMLDoc maps to one Scene object. More importantly, if a HTMLDoc determines that one HTMLPage is insufficient to present a Scene, it may for example, dynamically allocate two HTMLPages and mapping to one StoryElement. This last point demonstrates the power and flexibility of the architectural framework according to the present invention, if designed and implemented correctly.
  • the 1996GameReview a FeatureFilter
  • content_id 1996GameReview
  • the element named PersonalizedAd — 2 an AndFilter
  • the last Filter a RuleFilter
  • checks to see if the ContentElements that have resulted from the two previous Filters (within the AndFilter) are on the StoryEngine's already-played list. If all have been “played”, one content element from that current set that has the feature is selected, “keyword sports”, otherwise any one ContentElement from the current set is chosen.
  • the AndFilter feeds the set of ContentElements resulting from each contained Filter to the next, which differs from the Scene Filter that simply supplies the same inputs to each contained Filter. Additionally, when the UserFilter is executed, it retrieves the user's UserModel via the UMMgr (user model manager) to carry out its execution.
  • UMMgr user model manager
  • the rendering process simply involves traversing the presentation hierarchy and invoking the show( ) operation on the finally selected ContentMediaElement, and displaying the hierarchy as specified by its CompositeTemplate and its LayoutElement.
  • any step in the previously described process of evaluation fails, i.e., a CompositeTemplate is not satisfied with the selection of the media representations and/or the layout of its subcomponents, the CompositeTemplate then pushes back on the contained templates to choose alternate media representations of its associated ContentElement.
  • This process involves an iterative generation of the final form of the presentation.
  • the final presentation form is shown in FIG. 31.

Abstract

At least one user profile is created for at least one user. The profile may represent interests and trends of the user. A multimedia story is developed based on the user profile and a customized presentation of the multimedia story is generated. The customized presentation is displayed to the user in accordance with the delivery context.

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • This application is a continuation of U.S. patent application Ser. No. 09/393,281, filed on Sep. 10, 1999, which claims the benefit of U.S. Provisional Application No. 60/099,947, filed on Sep. 11, 1998, the contents of both of which are expressly incorporated by reference herein.[0001]
  • BACKGROUND OF THE INVENTION
  • 1. Field of the Invention [0002]
  • This invention relates to architectural frameworks for development of multimedia applications, and more specifically to architectural frameworks for developing adaptive, personalized, interactive multimedia applications and services. [0003]
  • 2. Background and Material Information [0004]
  • In general, designing and implementing interactive systems is a complex and lengthy task. If one adds multimedia to the development equation, the level of complexity, the content variability and the required management support immediately soars and can overwhelm the development process. On the other hand, there presently exists a very dynamic and rich environment that potentially offers a business opportunity allowing one to build a family of applications that can be strongly differentiated by leveraging the same rich and complex content. Thus, a double edged sword exists. [0005]
  • If one examines the requirements, present and future, of information, more specifically multimedia information, one discovers that in general these requirements are a response to the “dynamics of information”. These dynamics can be characterized by: constantly changing information; broad user population; and heterogenous landscape of delivery devices. If one grafts onto this picture the dynamics of collaboration or computer-supported work in synchronous or asynchronous mode, and potentially the technical problems are further compounded by the opportunity for differentiated and value-added services increases, i.e., the double-edged sword once again. [0006]
  • The best way to understand a system is to have an abstraction that describes a simpler picture of the structure and the machinery. A metaphoric vehicle is useful in that it allows framing of a problem and likewise offers a solution that supports and promotes flexibility, expressiveness, and scalability in information design and display. One can say that a multimedia presentation is like “telling a story”. The presentation author is attempting to convey a communicative intent and more than likely it was constructed with a particular audience in mind, as well as a specific context and medium. [0007]
  • The computational narrative model, as disclosed in Brooks, K. M., “Do Agent Stories Use Rocking Chairs: The Theory and Implementation of One Model for Computational Narrative”, Processings of the Fourth ACM International Multimedia Conference on Intelligent User Interfaces, ACM Press 1996 and Murtaugh, M. “The Automatist Storytelling System: Putting the Editor's Knowledge in Software”, MIT MS Thesis, 1996, offers a metaphor for creating tools that are capable of going beyond traditional storytelling by enhancing the editorial through the leveraging of the computer's ability to support rapid decision making. According to Brooks, narrative represents the universe of story elements for a given story, i.e., the collection of possibility, and narration as a specific navigation through that universe. [0008]
  • As shown in FIG. 1, the process of computational storytelling involves the author supplying the elements of the story and the structure to organize the story elements. The agent takes the elements of the story and the structure and generates a story, more precisely, a narrative, and presents the “story” to an audience. The audience reacts and generates feedback to the agent. The agent acting as proxy for the author can react to the feedback by modifying the presentation. [0009]
  • Some current conceptual views regarding the techniques or technical strategies that are related to developing a framework for creating and delivering interactive multimedia applications include: dynamic presentation, behavior-based artificial intelligence, memory-based learning, and user modeling. [0010]
  • Regarding dynamic presentation, Maybury, M. “Intelligent Multimedia Interfaces”, AAAI/MIT Press, Cambridge, Mass., 1993, discloses that automatic multimedia presentation involves the stages of content selection (i.e., what to say), media allocation (i.e., what media to present it in), and media realization (i.e., how to say it). The focus is the media allocation and realization phase. More specifically, how to create presentations without knowing all “facts” during design time. The basic objective is to enable the creation of user interfaces that are sufficiently flexible and adaptive to “re-invent” themselves at run-time. To support this flexibility and adaptability, an interface needs to be developed not to a final fixed form, but to some protean form that can be reshaped at run time, time after time, to meet the requirements of any situation that invalidates its current form. [0011]
  • Szekely P., “Retrospective and Challenges for Model-Based Interface Development”, USC Information Sciences Institute, Marina del Rey, Calif., 1996, proposes one architecture. Szekely discloses that a model-based user interface calls for a model of the interface that is organized as three levels of abstraction: task and domain model for the application, an abstract user interface specification, and a concrete user interface specification. The task model represents the task that the user will undertake to perform with the application. The domain model represents the data and the operations that are part of an application. [0012]
  • The second level, according to Szekely, is the abstract user interface specification. At this level, an interface is defined in terms of abstract interaction units, information elements, and presentation units. The abstract interaction units are low-level interactions such as showing a presentation unit. Information elements represent data such as attributes extracted from the domain model. Presentation units are abstractions of windows and specify collections of abstract presentation units and information elements that are to be treated as a unit. Basically, the abstract user interface specification abstractly specifies the way information will be presented in the interface and form for interaction with the information. [0013]
  • The third level, according to Szekely, is the concrete user interface specification that specifies rendering styles for the presentation units, i.e., widgets. Different model-based user interface (UI) frameworks differ in what models they provide. Szekely discloses that some frameworks have one model but not the other two, while in other cases, only one model is defined. FIG. 2 is a flowchart showing a generic model-based presentation system as disclosed in Szekely. [0014]
  • An alternative reasoning framework has emerged in Artificial Intelligence circles called Behavior-Based AI (BBAI) as disclosed in Maes, P. “Behavior-Based Artificial Intelligence”, Proceedings of Second Animat Conference on Adaptive Behavior, 1992. This new approach represents more of a different way of thinking about a problem domain than an alternative reasoning technique. The knowledge-based approach involves capturing the rules to solve a domain. In contrast, the BBAI approach relies on a set of lower level competencies which are each experts at solving one part of the larger problem domain as disclosed in Brooks. [0015]
  • Additionally, the BBAI approach tends to emphasize the system behavior as opposed to the system knowledge. Furthermore, BBAI stresses that the system should be situated in its environment and have direct (or as close as possible) access to the problem domain. This framework enables a system to bring together different classes of reasoning techniques, heuristic, statistical, etc., and incorporate each application of a technique into a lower-level competency module or “expert”. In effect, these modules come together to form a multi-agent system. [0016]
  • Another learning technique, as disclosed in Stanfield, C. et al., “Toward Memory-Based Reasoning”, Communications of the ACM, 20(12), ACM Press, 1986, is memory based learning. Basically, memory-based learning entails comparing a new situation against each of the situations which have occurred before. Given a new situation, a memory-based learning agent looks at the actions taken in N of the “closest” situations or “nearest neighbors” to predict the action for a new situation. FIG. 3 shows a diagram of the memory-based reasoning approach. [0017]
  • User modeling is an inexact science but its predictions need not be perfect to be useful. User models can range from simply storing a bit indicating if the user is a novice or expert in terms of an application, to a rich, complex snapshot of the user's interest and preferences. Once a universe of user models is collected and maintained, the models may serve as data for further analysis to find pattern and trends in this universe. These are some of many critical issues relevant to user modeling. [0018]
  • User models may be either pragmatic or cognitive as disclosed in Orwant, J, “Doppelganger Goes To School: Machine Learning for User Modeling,”, MIT MS Thesis, 1993. The cognitive type user models are not connected to any application or applications in particular. This type of user model is attempting to capture a user's beliefs, goals and plans in a general sense. A pragmatic user model is not driven by a cognitive model but by the practical aspects of the environment, e.g., applications. The pragmatic user model can be characterized by the collection of raw observational data and making sense of the data after the fact. In another sense, the cognitive model is a top down approach and the pragmatic model is a bottom up approach. [0019]
  • Conceptually, individuals can take on particular roles, e.g., business, leisure, parental, professional. These are defined as persona in a user modeling sense. Personae could be utilized to partition the user model space into more manageable chunks. [0020]
  • A pragmatic user model can make use of filtering techniques. Content-based filtering involves selecting items for the user based on correlations between content of the items and the user's preferences. For example, a personalized TV program guide uses information about a television program, such as the program's type and its level of violence to predict whether or not to recommend and include the show in a personalized line-up. Generally, users rely on exploration to discover new items of interest, i.e., serendipitous items. By definition, content-based filtering has no inherent capability to generate these sort of items. In practice, one must add special purpose techniques to add these capabilities to content-based filtering to introduce serendipity. For example, a user might be unaware of their interest in true crime shows until she actually comes across “America's Most Wanted”. Assuming no indications of this trend had previously surfaced, content-based filtering would have never detected this particular interest. Content-based filtering simply does not allow a user to expand their interests. [0021]
  • Social-based filtering is one potential solution to the serendipity dilemma. Social-based filtering basically attempts to exploit similarities between the profiles of different users to filter content. Social-based filtering can be an extension of content-based filtering. Once a user model is constructed and is being maintained, social-based filtering algorithms can compare this model to other user models and weigh each model for the level of similarity with the user model. Orwant, J., “For Want of a Bit The User Was Lost: Cheap User Modeling”, IBM Systems Journal, vol. 35, Nos 3&4, 1996 and Shardanand, U., “Social Information Filtering for Music Recommendation”, MIT MS Thesis, 1994 disclose algorithms for computing similarity between user models. [0022]
  • SUMMARY OF THE INVENTION
  • Accordingly, the present invention is directed to a method for design of an adaptive personalized interactive content delivery system that substantially obviates one or more of the problems arising from the limitations and disadvantages of the related art. [0023]
  • It is an object of the present invention to provide an architectural framework that is composed of a collection of classes for building interactive multimedia applications and services. [0024]
  • It is a further object of the present invention to provide an architectural framework that will enable a developer to build up locations that deliver services that dynamically adapt to the user, the content, and the delivery context, resulting in an effective contextual personalized on-line experience. [0025]
  • Another object of the present invention is to provide an architectural framework that supports and promotes the creation of reusable components for building personalized interactive multimedia presentations of complex applications. [0026]
  • Accordingly, one aspect of the present invention is directed to a method for creating and delivering an interactive multimedia application that can dynamically adapt to at least one user. At least one user model is created for at least one user, the at least one user model represents interests and trends of the at least one user. A multimedia story is developed based on the at least one user model. A customized presentation of the multimedia story is generated where the at least one multimedia story allows for multiple presentations of the multimedia story. The customized presentation is displayed to the at least one user. The customized presentation is modified based on input from the at least one user. [0027]
  • In another aspect of the present invention, the story includes a protean-like narrative. [0028]
  • In still another aspect of the present invention, the creating includes: gathering data from the at least one user; analyzing a history of the at least one user; monitoring data related to the at least one user; detecting patterns and trends of the at least one user; and preparing the at least one user model based on the gathering, analyzing, monitoring, and detecting. The at least one user model is modified periodically based on information obtained from periodically repeating the gathering, analyzing, monitoring, and detecting. [0029]
  • In a further aspect of the present invention, the at least one user model includes a set of models. [0030]
  • In another aspect of the present invention, the story includes at least one content element. The at least one content element characterizes data of the interactive multimedia application. The at least one content element is representable in multiple forms. [0031]
  • In still another aspect of the present invention, the at least one user model comprises a set of models. [0032]
  • In a further aspect of the present invention, the multiple forms include text, audio, video, image, or multimedia. [0033]
  • In another aspect of the present invention, the invention includes filtering the at least one content element to produce a subset of the at least one content element, each content element in the subset of at least one content elements selected based on semantics of the filtering. [0034]
  • In still another aspect of the present invention, the invention includes assembling the subset of at least one content elements to produce the multimedia story. The multimedia story may be personalized to the at least one user. [0035]
  • In a further aspect of the present invention, the generating includes: determining the delivery environment of the at least one user; determining the style look and feel for the presentation; determining the narrative context for the presentation. The narrative context defined by the semantics of the interactive multimedia application; and creating a customized presentation of the multimedia story based on the delivery environment, the style look and feel, and the narrative context. [0036]
  • In another aspect of the present invention, a weighted value may be assigned to each interest and trend of the at least one user. The weighted value represents the relative importance of each interest and trend with respect to the at least one user's apparent interests. [0037]
  • In still another aspect of the present invention, the interactive multimedia application may be created using object-oriented design techniques. [0038]
  • In a further aspect of the present invention, the invention is directed to a method for creating and delivering an interactive multimedia application that can dynamically adapt to at least one user that includes: creating a story engine, the story engine may be created by the interactive multimedia application; creating a user model manager, the user model manager may be created by the interactive multimedia application; providing the story engine with application-specific information and user information; providing the story engine with a user model from the user model manager, the user model represents interests and trends of the at least one user; providing the story engine with a narrative structure, the narrative structure defined by the semantics of the interactive multimedia application; producing user-relevant content, the user-related content may be produced by applying filters to the content model, the user model may be used for filtering purposes; creating a presentation engine, the presentation engine may be created by the interactive multimedia application; providing the presentation engine with the narrative structure, content model, and a presentation model, the content model may be empty; generating an abstract presentation defined by the presentation model, the abstract presentation may be generated by the presentation engine; generating a concrete presentation by using the abstract presentation's heuristics, the concrete presentation may be generated by the presentation engine; and displaying the concrete presentation by the presentation engine, wherein the abstract presentation and the presentation engine autonomously handle interaction scenarios, and trends and patterns are periodically recomputed based on interaction histories and the user models, the interactive multimedia application may be self-improving and self-sustaining. [0039]
  • In another aspect of the present invention, the interactive multimedia application may be created using object-oriented design techniques. [0040]
  • In still another aspect of the present invention, the interactive multimedia application may be created using JAVA. [0041]
  • In a further aspect of the present invention, the invention is directed to a system for creating and delivering interactive multimedia applications that dynamically adapt to a user that include: a user modeling subsystem where the user modeling subsystem creates and maintains at least one user model for each user, each at least one user model represents interests and trends of each user; a story engine subsystem where the story engine subsystem selects appropriate content elements and collects and organizes these elements in accordance with a narrative framework; and a presentation subsystem where the presentation subsystem generates a presentation to the user, the presentation generated uses the narrative framework. [0042]
  • In another aspect of the present invention, the user modeling subsystem includes: a user model editor; a user modeling manager; an analysis engine; and a user model database. [0043]
  • In still another aspect of the present invention, the story engine subsystem includes: a first database where the first database contains a content model library, the first database accesses content from a content database; and a second database where the second database contains a story template library. [0044]
  • In a further aspect of the present invention, the presentation subsystem includes: a first database where the first database contains at least one presentation models; a presentation builder; a second database where the second database contains a concrete presentation library; and a presentation engine. [0045]
  • In another aspect of the present invention, the content elements may represent pieces of information that can be presented via one or more media types. [0046]
  • In still another aspect of the present invention, the presentation may be constrained by a narrative style, narrative context, and demands of the delivery environment of the user. [0047]
  • Other exemplary embodiments and advantages of the present invention may be ascertained by reviewing the present disclosure and the accompanying drawings. [0048]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The present invention is further described in the detailed description which follows in reference to the noted plurality of drawings by way of non-limiting examples of preferred embodiments of the present invention in which like reference numerals represent similar parts throughout the several views of the drawings and wherein: [0049]
  • FIG. 1 is a flowchart showing a conventional dynamic storytelling structure; [0050]
  • FIG. 2 is a flowchart showing a conventional generic model-based presentation system; [0051]
  • FIG. 3 is a diagram showing a conventional memory-based reasoning system; [0052]
  • FIG. 4 is a flowchart showing a multiagent storytelling system according to the present invention; [0053]
  • FIG. 5 is a diagram showing a model abstraction view controller architecture according to the present invention; [0054]
  • FIG. 6 is a flow diagram showing a functional overview of an application's framework according to the present invention; [0055]
  • FIG. 7 is a flow diagram showing an architectural framework system architecture according to the present invention; [0056]
  • FIG. 8 is a flowchart showing an exemplary presentation object model according to the present invention; [0057]
  • FIG. 9 is a flowchart showing an exemplary object model for framework according to the present invention; [0058]
  • FIG. 10 is a flow diagram of a model of content and story and an exemplary representative application according to the present invention; [0059]
  • FIG. 11 is a flowchart of an exemplary object model for a representative application according to the present invention; [0060]
  • FIG. 12 is an exemplary interaction diagram for bootstrapping use case according to the present invention; [0061]
  • FIG. 13 is a flow chart showing the relationships between a community model, user models, and user personae according to the present invention; [0062]
  • FIG. 14 is a diagram showing semantics and content; [0063]
  • FIG. 15 is a flow diagram showing multiple representations of content according to the present invention; [0064]
  • FIG. 16 is a diagram showing selective assembly of content according to the present invention; [0065]
  • FIG. 17 is diagram showing an anatomy of an application according to the present invention; [0066]
  • FIG. 18 is a diagram showing a thick client-thin server partitioning of an application according to the present invention; [0067]
  • FIG. 19 is a diagram showing a thin client-thick server partitioning of an application according to the present invention; [0068]
  • FIG. 20 is a diagram showing a peer-to-peer distributed partitioning of an application according to the present invention; [0069]
  • FIG. 21 is a user modeling class diagram according to the present invention; [0070]
  • FIG. 22 is a story engine class diagram according to the present invention; [0071]
  • FIG. 23 is a presentation engine class diagram according to the present invention; [0072]
  • FIG. 24 is a content classes class diagram according to the present invention; [0073]
  • FIG. 25 is a metadata classes class diagram according to the present invention; [0074]
  • FIG. 26 is block diagram of exemplary content database according to the present invention; [0075]
  • FIG. 27 is block diagram of a high level view of an exemplary web-based service; [0076]
  • FIG. 28 is a flowchart of an exemplary story model according to the present invention; [0077]
  • FIG. 29 is a flowchart of exemplary HTML presentation templates according to the present invention; [0078]
  • FIG. 30 is a flowchart of generation of a presentation structure according to the present invention; and [0079]
  • FIG. 31 is a flowchart of an exemplary final form of a presentation of a scene according to the present invention.[0080]
  • DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
  • The particulars shown herein are by way of example and for purposes of illustrative discussion of the embodiments of the present invention only and are presented and the cause of providing a useful and readily understood description of the principles and conceptual aspects of the present invention. In this regard, no attempt is made to show structural details of the present invention in more detail than is necessary for the fundamental understanding of the present invention. The description taken with the drawings make it apparent to those skilled in the art how the several forms of the present invention may be embodied in practice. [0081]
  • The present invention is an application framework for creating and delivering interactive multimedia applications and/or services. The applications framework according to the present invention will enable the deployment of applications that dynamically adapt to the user through the personalization of content and presentation. The applications framework may be a software infrastructure that supports and promotes the creation of reusable components for building personalized interactive multimedia presentations of complex applications. In addition, the applications framework according to the present invention, is a software foundation for enabling community and collaboration in a networked world. [0082]
  • The applications framework, according to the present invention, allows one to create an application-specific structure and utilizes structure to create multiple presentations from the same set of application-specific content where agents with different style goals or communicative intent make sequencing and editing decisions constrained by the user's preferences and the characteristics of the content and the delivery device. [0083]
  • As discussed previously, the best way to understand a system is to have an abstraction that describes a simpler picture of the structure and the machinery. The architecture of an applications framework according to the present invention may be described by a series of abstractions, each one giving more and more concrete artifacts. The application framework according to the present invention encompasses many elements ranging from a dynamic presentation system, a multiagent system, to a memory-based user modeling system and a multi-paradigm application framework. [0084]
  • Reflecting on the originally discussed metaphor, the present invention decomposes the agent that inhabits the dynamic storytelling structure down to a set of agents, each agent corresponding to an area of competency. These include user modeling, storytelling, and presentation design/generation. This model subscribes to the behavior-based AI approach where each agent, an expert in its own right, brings together their own lower lever competencies to create a higher level competence-emergent behavior. [0085]
  • As discussed previously, the requirements for media information is a response to the dynamics of information where the dynamics are characterized by: constantly changing information, broad user population, and heterogeneous landscape of delivery devices. The architectural framework, according to the present invention, solves the challenge of constantly changing information with the story agent, the challenge of broad user population with the user agent, and the challenge of heterogeneous landscape of delivery devices with the presentation agent. FIG. 4 shows a diagram of a multiagent storytelling system according to the present invention. The user agent, story agent and presentation agent, according to the present invention, will now be discussed in more detail. [0086]
  • User Agent [0087]
  • The User Agent embodies the user modeling aspect of the architectural framework system, according to the present invention. In effect, the user modeling system is the user to the system. It encompasses several components that together enable the capture of relevant interaction data, the storage and representation of a user's interests, trends, etc., and the capability to manage and analyze the resulting user data. The User Agent in the architectural framework, according to the present invention, handles capturing user feedback, maintaining the user's profile, structuring interests and preferences, and making sense of a user's interaction history. A User Model Editor allows the end user and/or administrator to specify the user's interest along with a measure of confidence. [0088]
  • A sensor is used to capture user interaction at the source and understands how to extract the relevant information from the user feedback. The sensor may be in the form of a software program. The sensor acts as a proxy for the user modeling system. Different kinds of sensors may be employed to gather information at their respective sources. A sensor knows how often to gather data, what data to monitor, and how to decode the present event into user profile data. A sensor may be one or several software components, where each component may capture and/or monitor different user information. [0089]
  • The user modeling system, according to the present invention, provides for a repository for representations of each users' preferences. A user's preference and taste, along with demographic information, constitutes a user model. Additionally, each user model needs to maintain some form of history that describes the relevant “discourse” of interaction that supports the user's preferences contained therein. Sensors provide the interaction data. [0090]
  • In the architectural framework, according to the present invention, the nature of the representation of a user model is driven by the feature-based content that characterize the application data. As a result, the user models are structured as a set of models for each domain or application (e.g., TV viewing, shopping, etc.). This is in contrast to the persona concept described previously. Persona relate to a role rather than an application's specific profile. A persona is a model that exists independent of an application oriented or a domain oriented model. [0091]
  • In order for the user models to be useful to other components in the architectural framework of the present invention (e.g., the Story Agent), the User Agent is introspective and computes/detects trends and patterns. The User Agent constantly reevaluates the importance of features and the values the features can hold in the domain oriented models. In the architectural framework according to the present invention, the User Agent includes a reasoning component, an analysis engine, that analyzes a user's data and computes correlations between features and feature-values as defined by the memory based learning framework described previously. [0092]
  • Story Agent [0093]
  • The Story Agent according to the architectural framework of the present invention, selects the appropriate content elements and collects and organizes these elements as prescribed by an appropriate class of narrative framework. This narrative framework represents a “prototype story” that is utilized by the Presentation Agent to generate a customized presentation. [0094]
  • The process of selecting content is driven by the content types as specified by the content model. The User Agent's user model is utilized in the selection process. As described previously, the User Agent is responsible for analyzing a user's data and computing correlations between features and feature-values and carrying out its role in the memory based learning scheme. [0095]
  • Given some application-specific criteria, the Story Agent is responsible for choosing the best content elements by using the embedded logic provided by the narrative framework. Once the story agent has selected the “best set” of content elements, the narrative framework now populated with content elements is supplied to the Presentation Agent's computation of the final story's look and feel. [0096]
  • Presentation Agent [0097]
  • Using the dynamic storytelling metaphor discussed previously, the Presentation Agent according to the present invention takes the dynamically generated narrative (the populated narrative framework) and creates a presentation. The Presentation Agent generates a presentation by design where the design is constrained by a narrative style (narrative context), by a particular look and feel (style context), and by the demands of the delivery environment (delivery context). The agency of this agent is brought to life by specifying an abstract representation of a presentation. The model based approach to user interface design supports the idea of an abstract, declarative representation of a user interface. The approach according to the present invention, borrows from this approach, but only superficially, mainly in high level terms. [0098]
  • The presentation generation aspect of the architectural framework according to the present invention is a novel yet simple solution. Presentation design involves four types of components: abstract presentations, concrete presentations, reactors, and design constraints. [0099]
  • An abstract presentation is a meta-presentation. An abstract presentation is a loose design representation of a concrete presentation. Abstract presentations may have parts that themselves are abstract presentations. This results in the creation of an hierarchically composed presentation. Defining a modular loosely structured presentation not restricted to a final form and layout enables the creation and maintenance of flexible and dynamic multimedia presentations. An abstract presentation maps to and represents a content element. It serves as the link between interface and content. [0100]
  • Concrete presentations are either standard user interface components, i.e., widgets or wrapper-style components that repurpose other widgets. A wrapper is a software component (e.g. an object) that hides the real software or device that is being used. The concrete presentation objects are the actual user interface objects that appear on the display. [0101]
  • Reactors are action objects that associate concrete presentation events and an operation on a content element. Reactors are registered (i.e., associated with appropriate software components to handle the operation) and managed by abstract presentations. [0102]
  • Design constraints are heuristics that guide in the final make-up of the presentation, including layout, style and content make-up of the presentation. These rules can be classified into three categories: narrative context, style context, and delivery context. Narrative context are rules for narrative-specific realization, e.g., in a personalized TV program guide creating programs, line-ups along thematic lines. Style context are rules for style, look and feel, e.g., a tabular view versus a 3D landscape of the schedule in a personalized TV program schedule. Delivery context are rules that deal with the delivery environment, e.g., real estate allocated for a desk top versus a PDA (Personal Digital Assistant), connection protocol, browser, modem speed, etc. [0103]
  • The abstract presentation and design constraints represent the declarative aspects of the architectural framework according to the present invention, and together they serve as an abstraction of the final interface. As shown in FIG. 5, this framework is an extension of the known Model-View-Controller (MVC) user interface architecture. The MVC paradigm partitions a user interface architecture into three components: a model (an abstraction of the problem domain), a view (a visual representation of the model or part of the model), and a controller (an input handler). Typically, each of these components is a collection of one or more objects. [0104]
  • In the known MVC user interface architecture, the user issues some form of input or command which is captured by the controller. The controller, in turn, takes the command (e.g., mouse click, key stroke, speech utterance, etc.) and translates it into an action on a model object. A controller is associated with a view. The view displays the state of the model and relies on a dependency mechanism whereby the view registers itself as dependent on the model. As a result, whenever the model undergoes a change, the model broadcasts a notification to all dependent views that a change has occurred. The views in turn query the model to retrieve the details of the change and update themselves accordingly. [0105]
  • The model encapsulates the semantics of application objects. Subcomponents of the model hide the details of communication, database access, etc. The model is not aware of the views (or the controllers for that matter) but only through anonymous message broadcasting does the model communicate with its dependent views. [0106]
  • The MVC architecture promotes modularity and the decoupling of application data from the mechanisms to view and manipulate that data. So as a result, this allows for software reuse, both in a design and implementation sense. In theory, one can reuse a model in different application, i.e., the same model, different views. Additionally, one may reuse a view (or controller) in different applications, i.e., same view, different models. [0107]
  • The known MVC architecture assumes a set of views statically bound to each model. The architectural framework according to the present invention, has extended this architecture by decomposing the view controller compliment set into an abstract presentation component and a concrete presentation component as shown in FIG. 5. The concrete component encapsulates the traditional view-controller objects, but only in an incomplete and unrealized state. The abstract component dynamically generates and manages the final form look and feel of the concrete components. Moreover, by representing the interface in abstract terms, the present invention effectively enables the creation of dynamically bound views not possible in the currently known MVC tradition. The architectural framework according to the present invention, defines a declarative based Model-Abstraction-View-Controller user interface architecture. [0108]
  • FIG. 6 shows a functional overview of an application framework according to the present invention. In FIG. 6, the items in the circles represent subsystems. The items inside the parallel lines generally represent models, except for the user feedback. The process of developing an application using an application framework according to the present invention, consists of designing or specifying (and possibly reusing or repurposing pre-existing models) models required by the agents of the framework. Basically, the models for content presentation and the user need to be created. The designer of the application must design and specify: a content model, a story model (narrative structure), a presentation model, and a domain user model for the user model. Creating a content model is building a typical model of the application, such as called for in the traditional Model-View-Controller sense. The content model is a representation of the semantics that characterize the content elements that make up an application, e.g., a TV program schedule consisting of program line-ups where the line-ups consist of time slots populated by TV programs slated to be broadcast. [0109]
  • The Story Model (narrative structure) is a “protean”-like content model. It serves to organize the content elements that have been selected as candidates for the presentation generation phase. The narrative is basically the universe of possibilities as defined by the semantics of the application, e.g., creating a personalized TV program guide that presents a set of personalized line-ups involves a narrative structure that groups candidate programs according to their start time (candidacy is a complex step of consulting a user model and predicting the best content elements given a set of application specific criteria). [0110]
  • The presentation model specifies the components of a presentation, the behavior (linking actions in the presentation units to application content functions) and design heuristics (rules that guide setting the presentation style, presentation context, and display context), e.g., in the personalized TV program guide, if the presentation context is thematic then generate a personalized line-up where each line-up represents a particular theme given the candidate set. The Presentation Builder stores the presentation model in persistent storage. [0111]
  • Building a domain model for the user model involves accounting for the features that make up the content elements in an application, e.g., using the personalized TV program guide once again, features would include, e.g., program type, level of violence, etc. [0112]
  • Architecture/Subsystems [0113]
  • FIG. 7 shows a flowchart of an exemplary system architecture according to an architectural framework according to the present invention. The User Model Manager manages the storage and retrieval of user's interests and trends and interfaces to other subsystems. The Analysis Engine is used to analyze interaction histories and detect patterns and trends. The User Model Editor is an administrative tool that allows a user and/or administrator to modify a user model. The user modeling subsystem uses user models and community models. A community model is a model of a group of users that share some common interest or trend. [0114]
  • The Story Engine selects application-specific content to serve as the addition for a new presentation, and generates a narrative/story that allows for multiple play out of different presentations of the story. The Story Engine uses the story model and the user model. The Presentation Engine is responsible for interpreting an abstract presentation model and creating concrete presentation objects. The Presentation Engine also resolves constraints imposed by abstract presentations, input content, and display context as part of the final realization of the concrete presentation objects. The Presentation Engine uses the presentation model and the story model. The Presentation Builder is responsible for storing presentation models in persistent form. The Presentation Builder uses the presentation model. [0115]
  • Designing and delivering an application using an architectural framework according to the present invention generally include: [0116]
  • 1. The application creates a Story Engine (SE) and a User Model Manager (UMM). [0117]
  • 2. The application informs the SE who the user is and any other application-specific information deemed necessary. [0118]
  • 3. The SE requests a user model from the UMM. [0119]
  • 4. Upon receiving a user model from the UMM, the SE is handed a narrative structure as defined by the application semantics. [0120]
  • 5. Applying filters contained in the narrative framework, the SE places the results (i.e., content elements) in the narrative structure. [0121]
  • 6. The application creates a Presentation Engine (PE). [0122]
  • 7. The PE is handed the narrative structure for the application, the content model, and the appropriate presentation model. [0123]
  • 8. The PE generates an abstract presentation as defined by a presentation model. [0124]
  • 9. The PE exercises the abstract presentation's heuristics and generates a concrete presentation. [0125]
  • 10. The PE displays the concrete presentation. [0126]
  • The application is self-sustaining at this point. The abstract presentation, along with the presentation engine, handle autonomously most interaction scenarios using the flexible and adaptable capabilities encapsulated in the presentation. Two basic scenarios exist that will violate this state. First, the user requests for content data that did not play a role in the story generation (e.g., in the personalized TV program guide, personalized line-ups from 6:00 p.m. to 9:00 p.m. are presented, but the user now wants to expand the window of the program guide by looking at programs from 6:00 p.m. to 12:00 a.m.). In the second scenario, there is a change to the content model and its elements, requiring generation of the story by re-evaluating the narrative and recreating the presentation (e.g., in the personalized TV program guide, a programming change has occurred and a new show has been scheduled). Both of these scenarios involve executing steps 5-8. [0127]
  • At appropriate times (e.g., overnight), the Analysis Engine examines the interaction histories and the user models and recomputes trends and patterns. The user models are then revised accordingly. An architectural framework system according to the present invention is thus self-improving, self-sustaining and virtually perpetual. [0128]
  • Abstract Class Specifications [0129]
  • Some exemplary object models for the architectural framework according to the present invention follow. FIG. 8 shows an exemplary presentation object model according to the present invention. FIG. 9 shows an exemplary object model for the architectural framework according to the present invention. The various boxes in the object models represent classes of objects of the architectural framework. The following tables list the classes along with their associated responsibilities and attributes. [0130]
    Presentation Classes
    AbstractPresentation
    Responsibilities Attributes
    Serve as prototype for a set of presentations
    ConcretePresentation set of reactors
    Manage a set of subordinate a ConcretePresentation
    presentations set of associated constraints (rules)
    Add a presentation
    Delete a presentation
  • [0131]
    ConcretePresentation
    Responsibilities Attributes
    Interface to windowing/GUI a ConcretePresentation
    environment
  • [0132]
    Sensor
    Responsibilities Attributes
    Reports user behavior to an AbstractPresentation
    UserModelManager an Event Type
    Monitors for specific events a UserModelManager
  • [0133]
    Reactor
    Responsibilities Attributes
    Encapsulates an application-specific an AbstractPresentation
    behavior a ContentElement
    Acts as an action/command object
  • [0134]
    PresentationEngine
    Responsibilities Attributes
    Creates and displays an AbstractPresentation
    AbstractPresentations (top-level)
    Interprets the declarative specification an Application
    associated with an AbstractPresentation
    Reports invalidated presentations to
    Application
    Resolves presentation's constraints and
    realizes ConcretePresentations
  • [0135]
    PresentationBuilder
    Responsibilities Attributes
    Stores AbstractPresentation in an AbstractPresentation (top-level)
    persistent storage (e.g., file)
  • [0136]
    Content Classes
    ContentElement
    Responsibilities Attributes
    Represents an application-specific
    object
  • [0137]
    Story Classes
    StoryEngine
    Responsibilities Attributes
    Selects ContentElements as specified a UserModel
    by Story type and filtered by the a ContentElement (top-level)
    UserModel a Story
    Creates a Story structure
  • [0138]
    Story
    Responsibilities Attributes
    Represents a particular narrative set of ContentElements
    structure, application-specific
  • [0139]
    User Modeling Classes
    UserModel
    Responsibilities Attributes
    Maintain multiple personae set of personal data
    Add a persona set of Persona
    Remove a persona
    Find a persona
  • [0140]
    Persona
    Responsibilities Attributes
    Add a situation-action pair set of preferences
    Remove situation-action pair set of situation-action pairs (history)
    Find situation-action pair
  • [0141]
    Community
    Responsibilities Attributes
    Add UserModel set of UserModels
    Delete UserModel
    Construct Average UserModel
    Find UserModel
  • [0142]
    Society
    Responsibilities Attributes
    Add Community set of Communities
    Delete Community
    Construct Average Community
    Find Community
  • [0143]
    UserModelManager
    Responsibilities Attributes
    Gateway to AnalysisEngine, set of Models
    UserModelEditor, and UserModels
    Requests for Sensor from
    PresentationEngine
  • [0144]
    AnalysisEngine
    Responsibilities Attributes
    Performs historical/trend analysis on a UserModel
    UserModel's histories
  • [0145]
    UserModelEditor
    Responsibilities Attributes
    Presents a UserModel's set of persona a UserModel
    Presents a persona
  • [0146]
    Application Classes
    Application
    Responsibilities Attributes
    Sequences the “tools” to create a a PresentationEngine
    presentation a UserModelManager
    Handle application-specific events a StoryEngine
    (e.g., invalidated presentations, special
    timers)
  • An exemplary representative application will be defined and used to illustrate the capabilities of the architectural framework according to the present invention. This representative application is a TV program guide. The exemplary TV program guide is a personalized program guide (PPG) that suggests TV programs that may be of interest to the user right along side the traditional program schedule. The following assumptions will be used: (1) the presentation model has been previously specified and declared; (2) the application is always up and running (i.e., 24 hrs a day); and (3) the Analysis Engine has conducted its initial analysis of the viewer's history. [0147]
  • A content model is defined in order to create the application. FIG. 10 shows an exemplary object model of content and story in the exemplary application. FIG. 11 shows a flowchart for an exemplary object model for the exemplary application. In FIG. 9, the run time representation of the overall exemplary application is outlined. The PPG application displays a program guide that includes three areas: the current movie playback component, a current informational panel, and the program schedule grid. [0148]
  • An exemplary case that demonstrates the mechanics and structure of the architectural framework according to the present invention will now be presented. This exemplary case relates to bootstrapping an application from its initial interaction with the user modeling system and the story construction process, to the initial presentation and event handling by the presentation engine. Two assumptions have been made: (1) the presentation model has been previously specified and declared; and (2) the Analysis Engine has conducted its initial analysis of the viewer's history. FIG. 12 shows an exemplary interaction diagram for this exemplary bootstrapping use case according to the architectural framework of the present invention. The following activities occur during this bootstrapping: [0149]
  • (1) anApplication creates a User Model Manager (aUserModelMgr); [0150]
  • (2) anApplication creates a Story Engine (aStoryEngine); [0151]
  • (3) anApplication creates the standard Program Schedule (aProgramSchedule) based on some initial time boundaries; [0152]
  • (4) aStoryEngine requests a user model based on a Name/ID from the User Model Manager (aUserModelMgr); [0153]
  • (5) aStoryEngine retrieves the program schedule (aProgramSchedule); [0154]
  • (6) aStoryEngine selects appropriate application content based on the user model (aUserModel) and the input content (aProgramSchedule); [0155]
  • (7) aStoryEngine generates a story based on a story template program guide narrative (aPgmGuideNarrative); [0156]
  • (8) anApplication creates an instant of a Presentation Engine (aPresentationEngine); [0157]
  • (9) aPresentationEngine creates an abstract presentation (likely a series of nested presentations) by restoring the object from persistent story, e.g., straining from a file; [0158]
  • (10) aPresentationEngine creates all specified interactors for each abstract presentation. In this example, aSelectCmd interactor. [0159]
  • (11) aPresentationEngine creates a grid object to aid in the layout of the overall presentation; [0160]
  • (12) aPresentationEngine creates all concrete presentation objects as declared by their corresponding abstract presentation; [0161]
  • (13) aPresentationEngine resolves constraints as specified by the display rules and application rules and reconciled with the input content and the display context by the aPresentationEngine's constraint solver/rule interpreter; [0162]
  • (14) Selective presentation can occur as a result of the previous step. A grid consistently preserves the overall presentation design; [0163]
  • (15) aPresentationEngine realizes the concrete presentation's (aConcretePresentation) by determining its final form including attributes and settings; [0164]
  • (16) aPresentationEngine displays the concrete presentation (aConcretePresentation); [0165]
  • (17) aPresentationEngine notifies the application (anApplication) of its successful initialization; and [0166]
  • (18) anApplication evokes aPresentationEngine's event handling routine. [0167]
  • Software and Design [0168]
  • Another exemplary embodiment of a service is in the context of the World Wide Web, and more specifically a corporate gateway web site will be used to further describe the architectural framework according to the present invention. A corporate gateway web site may be designed to serve a company's online product and service catalogue, customer service center, or depending on the company's line of business, serve as a content navigator. In this exemplary embodiment, XYZ Communications is a communications company that has set up a web site that includes corporate product and service information and serves as a gateway to aggregated content (e.g., special events, community information, etc.). [0169]
  • The present invention uses a basic structure called a feature-vector that consists of attribute-value pairs, e.g., “keyword=cooking”, or “author=Smith”, etc. A feature in a feature-vector is represented by a type (e.g., keyword, geo-location, address) where the feature type encapsulates validation routines for authenticating the feature's data. These routines may be utilized by meta tools such as editors to validate the data entered at the interface. [0170]
  • A user model simply contains a feature-vector that is made up of a set of weighted features. The weight designates the relative importance of the feature with respect to a user's apparent interest. A feature and its associated weight may be explicitly or implicitly defined, i.e., manually set by the user, or derived by some statistical or machine learning algorithm analyzing a user's previous interaction history. Community models that represent a set of users may be created by bringing together users for different reasons (location, interest, job, or event). Therefore, a user model may actually represent an aggregate of several user models, each one representing a different persona, e.g., work, home, etc. as shown in FIG. 13. [0171]
  • As previously discussed, a content model is required by a content assembly engine to put together a story tailored to a user's request and profile. This requires a content model to be able to associate the various content elements semantically to form a story and to associate the content with user's preferences. In addition, a presentation generator (i.e., Presentation Engine) needs to provide adaptive content presentation given the delivery context, including the end user device configuration, network bandwidth, etc. The content model should be able to offer alternative presentations of the content for the presentation generator to select from. [0172]
  • In the architectural framework according to the present invention, a content element is defined as an object representing a piece of information that can be presented via one or more media types. FIG. 14 shows a diagram of semantics and content where the semantics describe what a content element is about. The semantics could potentially enable a content assembly engine to associate content elements on a more semantic level. An event or item on our exemplary web site could be represented as a content element that is media independent, but can manifest itself in multiple forms or representations such as a text document, an audio/video clip, or even a multimedia presentation. For example, assuming our exemplary web site included events such as information regarding a 1996 game, a baseball ad, and nature ad, FIG. 15 displays how each of these events could have multiple representations of content. [0173]
  • The application framework according to the present invention uses dynamic content assembly. With this approach, the development of an application or service is similar to the process of creating a dynamic story or movie that can adapt to a user, the available content, and the context at the time of delivery. The present invention uses, among other concepts, three basic concepts in support of dynamic content assembly: story, filter, and scene. [0174]
  • A filter is a construct that takes in a set of content elements and returns a subset of the original inputs. A filter has specific filtering semantics, e.g., a feature-based filter that uses a feature (e.g., “keyword=television”) to comb through an input set of content elements to retrieve content elements that match the feature. FIG. 16 shows an example of two such filters and the results being joined by an Andfilter that “ands” the results of two other filters. In this example, we have selected two content elements, one selected explicitly by a content ID and the other by filtering for advertisements that have been characterized to be related to nature. [0175]
  • By chaining filters, complex filtering patterns can be produced. A composite filter enables the creation of hierarchical layered reusable content assembly. A scene is a composite filter that basically corresponds to one element and a story. By assembling a series of modular, layered scenes, we can tell a story at a fine level of granularity tuned to the user and the delivery context. [0176]
  • The architectural framework according to the present invention uses adaptive presentation in that scenes are presented in different ways depending on the available context of delivery (such as available display real estate, the network connection, etc.). To support adaptive presentation, a presentation engine may generate presentations that take into account the context of delivery and select appropriate media representations to show the content element. In the present invention a template, that acts as a proxy for a story element or scene element, is used regarding laying out and arranging the presentation elements. A primitive template has the responsibility of selecting the appropriate media element. A composite template serves to support the design of hierarchal presentations with a fine level of specification and control. By implementing these concepts and objects, the present invention supports the creation of custom presentation components that are refinements of the basic presentation classes that can render a scene to a user in the most appropriate form. In the present invention, presentation components have the ability to render a scene without having to change the story. [0177]
  • Application Subsystems [0178]
  • Creating an application in accordance with the present invention involves interfacing to each subsystem's public interface. Each subsystem's public interface is encapsulated in the public operations of a select set of objects within each subsystem. An application is basically the glue that brings together invocations to the public interfaces of the subsystems as well as to any other external subsystems, e.g., databases. FIG. 17 shows a diagram of an anatomy of an application using the architectural framework according to the present invention. Further, the following pseudo-code describes the basic framework of an application according to the present invention: [0179]
  • Application: [0180]
    main ( )
     umMgr = new UserModelManager
     storyEngine = new StoryEngine(umMgr);
     storyEngine.init( );
     presentationEngine = new PresentationEngine(umMgr);
     presentationEngine.init( )
     current_scene = StartScene
     While Until exit( )
      StoryEngine.assemble(current_scene)
      storyEvent = PresentationEngine.present(current_scene)
      current_scene = StoryEngine.dispatchEvent(storyEvent)
     end while
    end main
  • In summary, an application proceeds through the following steps: [0181]
  • (1) Creating and initializing a UserModelManager; [0182]
  • (2) Creating and initializing a story engine; [0183]
  • (3) Creating and initializing a PresentationEngine; [0184]
  • (4) Selecting a story element (i.e., scene) to be the initial element of the story; [0185]
  • (5) Calling upon the StoryEngine to assemble a “story” given the initial element; [0186]
  • (6) Upon the StoryEngine completing its assembly task, calling upon the PresentationEngine to present the “story”; [0187]
  • (7) Dispatching a story-relevant event to the StoryEngine to determine the next story element (scene) to play; [0188]
  • (8) Based on the outcome of the event, set the next story element (scene) to be assembled and subsequently presented. [0189]
  • Referring to our exemplary web site example, the initial story element is set to an element representing the home page of XYZ Communications' web site. As the story plays out with user interaction, the system proceeds through its assemble-present-dispatch steps, a kind of dynamically generated contextual movie. Therefore, a user could rapidly end up, for example, on one page of the XYZ Communications web site because a user has shown a continuing interest in the subject matter of that page. This interest was detected because the user has had a tendency to select information that can be described to have some sort of connection with that subject matter. For example, if the web page was a vegetarian page, the user may have shown interest in eating healthier, therefore, a connection with healthy diets. The end result is that the user would not have to wade through an extensive set of links and/or pages on topics of no or little interest to him or her. [0190]
  • Regarding the interface, in this example, the user is interacting with a user interface or a browser, depending on the implementation environment. Additionally, the Story Engine and the Presentation Engine serve as single points of interface to the story and presentation databases respectively. The User Model Manager takes on a similar role over the database of user models by being a gateway to any user information. [0191]
  • System Partitioning [0192]
  • Typically, an application is not just resident on one processing element but is distributed or networked, i.e., distributed and partitioned in multiple elements. The following shows embodiments of an application developed with the architectural framework according to the present invention where the application is partitioned across network elements. [0193]
  • FIG. 18 shows a network diagram of an exemplary thick client-thin server design embodiment according to the present invention. The client is bundled with both runtime engines (i.e., Story Engine, Presentation Engine) and the User Model-Manager that interfaces to a database of user models. The story, content, and presentation databases are remotely based. This requires the Story Engine and the Presentation Engine to be designed to hide the details of accessing remote databases, similar to the role of the User Model Manager, which serves as a gateway to a repository of user models, local or remote. Moreover, the remote databases need to be managed by server processes that can serve multiple remote users and provide an interface to clients for remote object communication (i.e., sockets, Java's RMI (Remote Method Invocation), CORBA (Common Object Request Broker Architecture), etc.). [0194]
  • From the access perspective, this particular design requires the client to be either: resident on the client's machine, or downloaded at the point of remote access, e.g., Java applet. [0195]
  • FIG. 19 shows a network diagram of an exemplary thin client-thick server design embodiment according to the present invention. With a thin client, the majority of the application resides on the server side. Whether the complete application resides on the server or not depends on the implementation of the user interface and the choice of delivery environment. Regardless, the interface needs to have the capability to access and operate the application by sending a request to the remote host, who in effect acts as an application server and returns a generated presentation of the application. For example, if the application resided on the web server, a browser could serve as the user interface allowing the user to request a page for presentation (shipping along some form of identification, cookie, embedded CGI argument, etc.). The server would then assemble and generate a complete presentation and return HTML that would be rendered in the browser. [0196]
  • In terms of access, the interface may be a generic interface like an HTML browser which only acts as an access point and waits for a complete server-side generated presentation to be rendered in its native HTML. Alternatively, in a web environment once again, a Java applet that only implements a custom user interface may be downloaded. The applet would need to interface to the application server via some sort of protocol so it could render a server-side generated presentation utilizing its native Java widgets. [0197]
  • FIG. 20 shows a network diagram of an exemplary peer-to-peer distributed system. Ideally, all components may be distributed across the network in principle. For a variety of reasons, i.e., load balancing, low bandwidth, intermittent network connections, efficient resource utilization, etc., situations could arise that may warrant configuring an application in a fully distributed architecture (e.g., CORBA, Java RMI). This partitioning implies that the application may be reduced to interfacing to proxy clients that do the real work of talking to their respective components. In a truly distributed system a component may potentially take on both roles of server and client. Regarding access, in this configuration, the point of access is dependent on the implementation and/or delivery environment. [0198]
  • Object-Oriented Base Framework Design [0199]
  • The following are descriptions of exemplary class diagrams and base classes that may be used in an applications framework according to the present invention. [0200]
  • User Modeling Subsystem Classes [0201]
  • FIG. 21 shows an exemplary user modeling class diagram according to the present invention. The following provide descriptions of exemplary base classes shown in FIG. 21. The user modeling subsystem may be a collection of classes that supports the creation and maintenance of user models (i.e., profiles). [0202]
  • UserModel [0203]
  • Description: [0204]
  • This class represents a user's interests through a FeatureVector. Features are a content-independent metadata structure that serves as a common denominator between users and content. [0205]
  • Responsibilities: [0206]
  • Persistent representation of user interests. [0207]
  • Private Properties: [0208]
  • user_id: string=null [0209]
  • A string name for a UserModel. [0210]
  • features: FeatureVector=null [0211]
  • A set of features representing a user's weighted interests. A common denominator between UserModels and ContentElements. [0212]
  • Public Methods: [0213]
  • UserModel (uid: String=null): [0214]
  • Public constructor parameterized for a string-based user ID. [0215]
  • deleteFeature (feat: Feature=null):void [0216]
  • Delete a Feature from UserModel's FeatureVector. [0217]
  • addFeature (feat: Feature=null):void [0218]
  • Add a Feature to the UserModel's FeatureVector [0219]
  • findByType (sname: String=null): FeatureVector [0220]
  • Find all Features present in the UserModel's FeatureVector of the indicated type (i.e., typename) and return the results in a new FeatureVector. [0221]
  • findEntry (feat: Feature=null): Feature [0222]
  • Find supplied Feature in the UserModel's FeatureVector. [0223]
  • similarity (features: FeatureVector=null): float [0224]
  • Compute a numerical score indicating the degree of similarity between a UserModel (its FeatureVector) and the supplied FeatureVector. [0225]
  • read (istream: InputStream=null): void [0226]
  • Read a UserModel from a InputStream (language-specific). [0227]
  • write (ostream: OutputStream=null): void [0228]
  • Write a UserModel to a OutputStream (language-specific). [0229]
  • Community [0230]
  • Description: [0231]
  • This class represents a set of users as a community. The inherited FeatureVector from the UserModel base class is treated as stereotype user of the community and computed by the Community class. [0232]
  • Communities can be created explicitly or implicitly. [0233]
  • Responsibilities: [0234]
  • Maintain a set of users. [0235]
  • Maintain a stereotype of the user. [0236]
  • Derived from UserModel [0237]
  • Private Properties: [0238]
  • users: UserModel=null [0239]
  • A set of users, i.e., UserModels. [0240]
  • Public Methods: [0241]
  • Community (id: String=null): [0242]
  • Public constructor parameterized for a string name. [0243]
  • addUser (user: UserModel=default): void [0244]
  • Add UserModel to set of UserModels. [0245]
  • deleteUser (user: UserModel=null):void [0246]
  • Delete UserModel from set of UserModels. [0247]
  • getUM (uid: String=null, umMgr:UMMgr=null):void [0248]
  • Retrieve a UserModel through the UMmgr and cache the UserModel in the Community. [0249]
  • getAll (umMgr: UMMgr=null): [0250]
  • Retrieve all contained UserModels through a UMMgr and cache them in users. [0251]
  • UMmgr [0252]
  • Description: [0253]
  • This class serves as interface to all UserModels and Communities. It hides all remote access to remote models. [0254]
  • Responsibilities: [0255]
  • Maintain a global set of user models. [0256]
  • Access point to a all user models. [0257]
  • Private Properties: [0258]
  • hostID:String=null [0259]
  • String ID for remote or local host system. [0260]
  • baseID:String=null [0261]
  • String ID for root community (global community that contains all models). [0262]
  • baseCommunity: Community=null [0263]
  • The root Community for all models. [0264]
  • Public Methods: [0265]
  • UMmgr (hostid: String=null, baseid:String=null): [0266]
  • Public constructor parameterized for string ID for the remote host home to the UserModels, and string ID for the root Community. [0267]
  • init( ): void [0268]
  • Initializes the UMmgr's internal data. [0269]
  • getUM (uid: String=null): UserModel [0270]
  • Retrieve a UserModel, transparently from a remote or local host system. [0271]
  • saveUM (um: UserModel=null): void [0272]
  • Save the UserModel transparently to a remote or local host. [0273]
  • deleteUM (um: UserModel=null): void [0274]
  • Delete UserModel from the pool of UserModels at a remote or local host. [0275]
  • generateStereotype (cm: Community=null): UserModel [0276]
  • Based on a set of UserModels, generate a UserModel that typifies a user in the given Community. [0277]
  • getCommunity (uid: String=null): Community [0278]
  • Retrieve a Community model, transparently from a remote or local host system. [0279]
  • saveCommunity (cm: Community=null): void [0280]
  • Save the Community model transparently to a remote or local host. [0281]
  • deleteCommunity (cm: Community=null): void [0282]
  • Delete Community model from the pool of UserModels at a remote or local host. [0283]
  • UserHistory [0284]
  • Description: [0285]
  • This class represents a repository of a chronically-ordered set of StoryEvents as a result of user interaction. [0286]
  • Responsibilities: [0287]
  • Maintain a set of StoryEvents. [0288]
  • Private Properties: [0289]
  • events:Set of StoryEvent=null [0290]
  • the set of StoryEvents that have occurred as a result of a specific user's interaction. [0291]
  • Public Methods: [0292]
  • UserHistory (uid:UserModel=null): [0293]
  • Public constructor parameterized for a string name indicating the ID of the UserModel. [0294]
  • addEntry (event:StoryEvent=null):void [0295]
  • Add an entry, i.e., StoryEvent, to the history. [0296]
  • deleteEntry (event:StoryEvent=null):void [0297]
  • Delete StoryEvent from the history of events. [0298]
  • purge (purgeDate:Date=null):void [0299]
  • Remove all StoryEvents from the history that occurred before the indicated date. [0300]
  • read (istream:InputStream=null):void [0301]
  • Read UserHistory from a InputStream (language-specific). [0302]
  • write (ostrearm:InputStream=null):void [0303]
  • Write a UserHistory to a OutputStream (language-specific). [0304]
  • AnalysisWorkbench [0305]
  • Description: [0306]
  • This class brings together an array of analysis tools to update and better target UserModels and extract communities of interest. [0307]
  • This component is basically a learning system. [0308]
  • Responsibilities: [0309]
  • Update UserModels based on their UserHistories [0310]
  • Compute stereotypical users for Community models. [0311]
  • Compute correlations between features in UserModels [0312]
  • Compute clusters of users to discover implicit communities of interest. [0313]
  • Public Methods: [0314]
  • AnalysisWorkbench( ): [0315]
  • Public constructor. [0316]
  • computeStereotype (cm: Community=null): FeatureVector [0317]
  • Compute stereotypical user, i.e., a FeatureVector, for a given Community. [0318]
  • reduce (history: UserHistory=null): FeatureVector [0319]
  • Reduce a UserHistory to a FeatureVector. [0320]
  • A UserHistory contains StoryEvents where some in turn carry information as a result of the user selecting a ContentElement. [0321]
  • This information serves as raw data to determine the effectiveness/relevance of a UserModel's features [0322]
  • cluster (users: Community=null): Community [0323]
  • Apply cluster analysis to a Community of users and generate a Community of Communities, each representing a cluster. [0324]
  • Story Engine Subsystem Classes [0325]
  • FIG. 22 shows an exemplary StoryEngine class diagram according to the present invention. The following provide descriptions of exemplary base classes shown in FIG. 22. The Story Engine may consist of a content assembler (the Story Engine itself) and the databases containing data structures that specify an application and the underlying content model that represents and interfaces to multiple representations of multimedia content elements. [0326]
  • StoryElement [0327]
  • Description: [0328]
  • StoryElement is the abstract class for all components that makeup a story, i.e., elements to be assembled dynamically. [0329]
  • Responsibilities: [0330]
  • Abstract base class with an associated string ID. [0331]
  • Private Properties: [0332]
  • name: String=null [0333]
  • The name of the StoryElement. [0334]
  • Public Methods: [0335]
  • StoryElement (sname: String=null): [0336]
  • Public Constructor for Story Element. [0337]
  • getName( ): String [0338]
  • Return the name of StoryElement. [0339]
  • read (istream: InputStream=null): void [0340]
  • Read a StoryElement from a InputStream (language-specific). [0341]
  • write (ostream: OutputStream=null): void [0342]
  • Write a StoryElement to OutputStream (language-specific). [0343]
  • Filter [0344]
  • Description: [0345]
  • A Filter is a StoryElement that basically takes a set of input ContentElements and outputs a subset of the ContentElements based on the Filter's filtering semantics. [0346]
  • Each ContentElement that ends up in the Filter's set of outputs potentially has a set of points of interaction called anchors. These anchors can be activated as a result of, e.g., of user interaction, and produce an application event called a user selection. So, a Filter's anchors are derived from its contained ContentElements' anchors. [0347]
  • Responsibilities: [0348]
  • Filter a input set of ContentElements based some filtering semantics (as defined by concrete subclasses). [0349]
  • Handle StoryEvent dispatched from the StoryEngine. [0350]
  • Derived from StoryElement [0351]
  • Private Properties: [0352]
  • inputs: ContentElement=null [0353]
  • The set of ContentElements passed into the Filter for evaluation. The set can be a selective set as bound by the application or the global set, which is all existing ContentElements in the current database. [0354]
  • outputs: ContentElement=null [0355]
  • The set of ContentElements resulting from evaluating the Filter. [0356]
  • maxOutputs: Integer=−1 [0357]
  • Indicates the maximum number of ContentElements stored in the outputs upon evaluating the Filter. [0358]
  • anchors: Set of Anchors=null [0359]
  • The set of anchors associated with the ContentElements enumerated in the outputs. [0360]
  • Public Methods: [0361]
  • Filter (sname: String=null) [0362]
  • Public constructor for Filter parameterized for the string name. [0363]
  • addInput (iElement: ContentElement=null): [0364]
  • Add a ContentElement to the set of inputs. [0365]
  • addInputs (iElements: Set of ContentElement=default): void [0366]
  • Add a set of inputs to the set of inputs. [0367]
  • getOutput (i:int=0): ContentElement [0368]
  • Retrieve the ith ContentElement from the set of outputs. [0369]
  • getOutputs( ): Set of ContentElements [0370]
  • Retrieve the Filter's complete set of Outputs. [0371]
  • getElementNames( ): Set of String[ ][0372]
  • Get an array of ContentElement names. [0373]
  • setMaxOutputs (max: Integer=−1): void [0374]
  • Set the maximum of ContentElements cached in the outputs. [0375]
  • apply( ):boolean [0376]
  • Apply the Filter's filtering semantics and place results in the outputs. [0377]
  • handleEvent (event: StoryEvent=null): boolean [0378]
  • This operations handles any Application-level event that has been dispatched by the StoryEngine. [0379]
  • Private Methods: [0380]
  • addOutput (ce: ContentElement=null): void [0381]
  • Internal operation for adding a ContentElement to the set of the outputs. [0382]
  • removeOutput (element: ContentElement=null): void [0383]
  • Internal operation for removing a ContentElement from the set of outputs. [0384]
  • Collection Filter [0385]
  • Description [0386]
  • This type of Filter serves as the base class for all collection-oriented filters. Specialized classes of CollectionFilter define specific filtering semantics. [0387]
  • Responsibilities: [0388]
  • Operate over a set of contained Filters. [0389]
  • Derived from Filter [0390]
  • Private Properties: [0391]
  • subFilters: [0392]
  • The collection of contained Filters. [0393]
  • Public Methods: [0394]
  • CollectionFilter (sname: String=null): [0395]
  • Public constructor parameterized for string name. [0396]
  • addFilter (filter: Filter=null): void [0397]
  • Add a Filter to the collection of Filters, i.e., subFilters. [0398]
  • removeFilter (filter: Filter=null): void [0399]
  • Remove a Filter from collection of Filters, i.e., subFilters. [0400]
  • getFilter (i: integer=−1): Filter [0401]
  • Get the ith filter in the subFilter set. [0402]
  • FeatureFilter [0403]
  • Description: [0404]
  • This class is a Filter whose filtering semantics is to filter the input set of ContentElements based on the supplied Feature. The resulting set of matches is stored in the outputs. [0405]
  • The maximum number of matches is set in maxOutputs. [0406]
  • Responsibilities: [0407]
  • Filter a set of ContentElements using a Feature. [0408]
  • Derived from Filter [0409]
  • Private Properties: [0410]
  • feature: Feature=null [0411]
  • Filtering pattern. [0412]
  • Public Methods: [0413]
  • FeatureFilter (sname:String=null, feat:Feature=null): [0414]
  • Public constructor parameterized for string name and a Feature. setFeature (f:Feature=null):void [0415]
  • Set the Filter's feature to use as a filter pattern. [0416]
  • UserFilter [0417]
  • Description: [0418]
  • This Filter interfaces to the current user's user model (as specified by the StoryEngine). It utilizes the user model's feature vector to filter content elements from the input ContentElements. [0419]
  • Responsibilities: [0420]
  • Filter a input set of ContentElements using a UserModel. [0421]
  • Derived from Filter [0422]
  • Private Properties: [0423]
  • user: UserModel=null [0424]
  • References current user model. [0425]
  • Public Methods: [0426]
  • UserFilter (sname: String=null, um: UserModel=null): [0427]
  • Public constructor parameterized for string name and a UserModel. [0428]
  • setUserModel (um: UserModel=null): [0429]
  • Set the UserModel for the Filter. [0430]
  • RuleFilter [0431]
  • Description: [0432]
  • This class is a rule-based filter that applies a predicate operation, that in turn applies either a THEN or ELSE filter. [0433]
  • Responsibilities: [0434]
  • Apply a predicate operation and branch to one of two filters. [0435]
  • Derived from Filter [0436]
  • Private Properties: [0437]
  • thenFilter: Filter=null [0438]
  • If predicate results in true, apply thenFilter. [0439]
  • elseFilter: Filter=null [0440]
  • If predicate results in false, apply the elseFilter. [0441]
  • Public Methods: [0442]
  • RuleFilter (sname:String=null, tFilter: Filter=null, eFilter: Filter=null): [0443]
  • Public constructor parameterized for a string name, a THEN filter, and a ELSE filter. [0444]
  • setTHEN (filter: Filter=null): [0445]
  • Set the THEN filter. [0446]
  • setELSE (f: Filter=default): [0447]
  • Set the ELSE filter of the RuleFilter. [0448]
  • predicate( ): boolean [0449]
  • This operation executes its code and returns a boolean result. This operation needs to be redefined by concrete subclasses. [0450]
  • Scene [0451]
  • Description: [0452]
  • This is a composite Filter composed of other Filters. This Filter provides the capability to construct hierarchically layered set of Filters and their associated [0453]
  • ContentElements. [0454]
  • Evaluating a Scene results in its outputs residing in the outputs of the contained filters. This is one of the main differences between a Scene and other CollectionFilters. [0455]
  • The second main difference is that a Scene is the only presentable Filter. In order for any Filter to be presented, it must be embedded in a Scene. [0456]
  • This Filter supports the abstraction of services, presentations. [0457]
  • Responsibilities: [0458]
  • Aggregates a set of filters. [0459]
  • Interface for presenting a story. [0460]
  • Derived from CollectionFilter [0461]
  • Private Properties: [0462]
  • presentation: Presentation=null [0463]
  • The presentation responsible for rendering the Scene. [0464]
  • Public Methods: [0465]
  • Scene (sname: String=null): [0466]
  • Public constructor parameterized for string name. [0467]
  • setPresentation (p: Presentation=null): void [0468]
  • Set the dependent Presentation of this Scene. [0469]
  • AndFilter [0470]
  • Description: [0471]
  • The AndFilter is basically a union set operator. It takes 2 or more filters. The combined results of the evaluation of this Filter are stored in its outputs. [0472]
  • Responsibilities: [0473]
  • ANDing the results of 2 or more contained Filters. [0474]
  • Derived from CollectionFilter [0475]
  • Public Methods: [0476]
  • AndFilter (sname: String=null): [0477]
  • Public constructor parameterized for a string name. [0478]
  • OrFilter [0479]
  • Description: [0480]
  • The OrFilter is basically a union set operator. It takes 2 or more filters. The combined results of the evaluation of this Filter are stored in its outputs. [0481]
  • Responsibilities: [0482]
  • ORing the results of the 2 or more contained Filters. [0483]
  • Derived from CollectionFilter [0484]
  • Public Methods: [0485]
  • OrFilter (sname: String=null) [0486]
  • Public constructor parameterized for a string name. [0487]
  • TemporalScene [0488]
  • Description: [0489]
  • This Scene has a special capability to sequence its contained Filters' associated ContentElements, i.e., outputs. By defining a playout duration, each contained Filter's ContentElements will be presented one at a time. Optionally, the temporal playout can be repeated for a specified number of times. [0490]
  • This requires that a Presentation be able launch a timer that ultimately returns a TimeoutEvent to this Scene via the StoryEngine. [0491]
  • Responsibilities: [0492]
  • Specifies a temporal playout of the resulting set of filtered ContentElements. [0493]
  • Derived from Scene [0494]
  • Private Properties: [0495]
  • duration: TimeUnit=null [0496]
  • The duration of the Scene. [0497]
  • repeating: boolean [0498]
  • Indicate if Scene will repeat its temporal playout. [0499]
  • numReps: integer=−1 [0500]
  • Indicates the number of repetitions of the playout. [0501]
  • Public Methods: [0502]
  • TemporalScene (sname: String=null, interval: TimeUnit=null, repeat: boolean=false, numreps: integer=−1): [0503]
  • Public constructor parameterized for time interval, indication if allowing repetitions, and the number of repetitions. [0504]
  • setDuration (time: TimeUnit=null):void [0505]
  • Set the duration of playout for each contained ContentElement. [0506]
  • repeating (flag: boolean=null): void [0507]
  • Indicates if the temporal playout will be repeating. [0508]
  • setReps (reps: integer=−1): void [0509]
  • Set the number of repetitions of the temporal playout. [0510]
  • StoryEvent [0511]
  • Description: [0512]
  • This class represents events of interests to StoryElements. The PresentationEngine is responsible for listening for events. Any StoryEvents are forwarded to the StoryEngine and ultimately to the Scene and the appropriate sub-components. [0513]
  • Responsibilities: [0514]
  • Represent the event of user or story action (timer) that occurred on a ContentElement. [0515]
  • Private Properties: [0516]
  • timestamp: Timestamp=null [0517]
  • Indicates the time of event occurrence. [0518]
  • Public Methods: [0519]
  • StoryEvent (tstamp: TimeStamp=null): [0520]
  • Public constructor parameterized for timestamp. [0521]
  • UserSelectionEvent [0522]
  • Description: [0523]
  • This event occurs when a user activates an Anchor. [0524]
  • Responsibilities: [0525]
  • Represent a user action of selection. [0526]
  • Derived from StoryEvent [0527]
  • Private Properties: [0528]
  • anchor: Anchor=null [0529]
  • Indicates selected Anchor. [0530]
  • Public Methods: [0531]
  • UserSelectionEvent (a: Anchor=null) [0532]
  • Public constructor parameterized for a Anchor. [0533]
  • getAnchor( ): Anchor [0534]
  • Retrieve Anchor object associated with this event. [0535]
  • TimeoutEvent [0536]
  • Description: [0537]
  • This event occurs when a timer has expired. A timer is called for by a TemporalFilter and is realized by a Presentation-side Timer object. [0538]
  • Responsibilities: [0539]
  • Represent a timeout event for a ContentElement. [0540]
  • Derived from StoryEvent [0541]
  • Private Properties: [0542]
  • scene:TemporalScene=null [0543]
  • Indicates the original TemporalScene that initiated the timer request that has now expired. [0544]
  • Public Methods: [0545]
  • TimeoutEvent (f:Filter=null): [0546]
  • Public constructor parameterized for a filter (i.e., TemporalScene). [0547]
  • StoryEngine [0548]
  • Description: [0549]
  • This class is the system-level interface to the story subsystem. [0550]
  • Responsibilities: [0551]
  • 1. Execution engine for assembling StoryElements based on a Story Model. [0552]
  • 2. Maintains history of played Filters. [0553]
  • 3. Tracks current Filter. [0554]
  • 4. Interfaces to the UserModeling system. [0555]
  • 5. The StoryEngine also interfaces to the global pool of ContentElements. It supplies these elements by default to the Filters' inputs. [0556]
  • Private Properties: [0557]
  • currentFilter: Filter=null [0558]
  • Indicates currently executing Filter. [0559]
  • umMgr: UMMgr=null [0560]
  • Access to a UMMgr that interface to the UserModel pool. [0561]
  • playhistory: Set of Filter=null [0562]
  • The set of Filters played out during the session. [0563]
  • Public Methods: [0564]
  • StoryEngine (umMgr: UMMgr=null): [0565]
  • Public Constructor parameterized for a UMMgr. [0566]
  • assemble (scene: Scene=null): boolean [0567]
  • Startup the composition of the current Scene. It in turn calls the Scene's evaluate operation that triggers the Scene recursively to trigger the evaluation of its contained Filters. [0568]
  • dispatchevent (event: StoryEvent=null): Scene [0569]
  • Dispatch the StoryEvent, originally forwarded by the PresentationEngine, to the current Scene. This operation calls Scene's handleEvent operation. [0570]
  • This operation ultimately returns a new Scene that the StoryEngine executes to continue the playout of the story. [0571]
  • init( ): boolean [0572]
  • Initialize StoryEngine including: [0573]
  • Load the “story database”[0574]
  • Retrieve a UserModel from UserModelManger. [0575]
  • Anchor [0576]
  • Description: [0577]
  • This class is representing an anchor that links to a source Filters and sink Filter. The location of anchor is set in the sourceFilter attribute. Its destination is set in the destinationFilter attribute. [0578]
  • Most importantly, the destination can be determined at playout time, i.e., run-time. [0579]
  • Responsibilities: [0580]
  • Maintain a link between two Filters [0581]
  • Private Properties: [0582]
  • sourceFilter: Filter=null [0583]
  • This is the source Filter of the Anchor. [0584]
  • destinationFilter: Filter=null [0585]
  • This is the sink Filter for the Anchor. [0586]
  • Public Methods: [0587]
  • Anchor (anchorName: String=null): [0588]
  • Public constructor parameterized for string name. [0589]
  • Anchor (anchorName: String=null, srcFilter: Filter=null, dstFilter: Filter=null): [0590]
  • Public constructor parameterized for a string name, a source Filter, and a destination Filter. [0591]
  • setSource (source: Filter=null): void [0592]
  • Set the source Filter of the Anchor. [0593]
  • setDestination (dest: Filter=null): void [0594]
  • Set the destination Filter of the Anchor. [0595]
  • getSource( ): Filter [0596]
  • Get the source Filter. [0597]
  • getdestination( ): Filter [0598]
  • Get destination Filter. [0599]
  • read (istream: InputStream=null): void [0600]
  • Read an Anchor from a InputStream (language-specific). [0601]
  • write (ostream: OutputStream=null): void [0602]
  • Write a Anchor to a OutputStream (language-specific). [0603]
  • Presentation Engine Subsystem Classes [0604]
  • FIG. 23 shows an exemplary PresentationEngine class diagram according to the present invention. The following provide descriptions of exemplary base classes shown in FIG. 23. The Presentation Engine may consist of a presentation generator, and a library of presentation components that may be matched up with the corresponding application elements (i.e., story elements) that will compute the final presentation form of the content elements. [0605]
  • Template [0606]
  • Description: [0607]
  • This is an abstract class that maps to a StoryElement. This class needs to be specialized to define appropriate presentation properties in accordance with the target delivery platform (e.g., HTMLTemplate). [0608]
  • Responsibilities: [0609]
  • The primary responsibility of Template is to determine which representation (ContentMediaElement) of the associated ContentElement to render. [0610]
  • Private Properties: [0611]
  • contentelement: ContentElement=null [0612]
  • The ContenetElement to be presented/rendered. [0613]
  • currentRepresentation: ContentMediaElement=null [0614]
  • Currently selected representation of the associated [0615]
  • ContentElement. [0616]
  • name: String=null [0617]
  • string-based identification of the Template. [0618]
  • Public Methods: [0619]
  • Template (contentElement: ContentElement=null, context: PresentationContext=null): [0620]
  • Public constructor parameterized for its associated StoryElement and a PresentationContext. [0621]
  • initialize( ): void [0622]
  • Initialization sets the Template ready for generation. [0623]
  • A Template can be called upon successively to regenerate itself and select an alternative ContentRepresentation. [0624]
  • render( ): void [0625]
  • Format or display the final form of the Template to the target environment. [0626]
  • select (context: PresentationContext=null): ContentRepresentation [0627]
  • Heuristic-based selection of a ContentRepresentation from the Template's associated ContentElement's pool of representations Selection based on original design intent and the PresentationContext. [0628]
  • generate( ): boolean [0629]
  • Top-level operation to generate a candidate form of the Template. This operation calls upon select( ). Returns true if successful. [0630]
  • evaluate( ): boolean [0631]
  • Given the current PresentationContext, this operation evaluates the Template in its candidate form to determine if its acceptable. [0632]
  • read (istream: InputStream=null): void [0633]
  • Read a Template from InputStream (language-specific). [0634]
  • write (ostream: OutputStream=null): void [0635]
  • Write a Template to OutputStream (language-specific). [0636]
  • CompositeTemplate [0637]
  • Description: [0638]
  • This class is an aggregate that maintains and represents a set of Templates. This class enables hierarchical-structured, recursive, presentations. This class typically maps to a Scene in the StoryElement domain. CompositeTemplate redefines render, select, generate, and evaluate operations. [0639]
  • Responsibilities: [0640]
  • Represent and manage the final form of the contained Templates. Calls upon contained Templates to iteratively generate their final form to satisfy the design intent and constraints of the CompositeTemplate. [0641]
  • Working with a LayoutElement computes candidate layout of the contained parts. [0642]
  • Key Capability: [0643]
  • Embodied with “smarts” to join or split contained original set of Templates depending on the design intent of a subclass. This capability is a cooperative process with a LayoutElement who is a spatial layout expert. [0644]
  • Derived from Template [0645]
  • Private Properties: [0646]
  • subTemplates: Template=null [0647]
  • The set of contained Templates that a CompositeTemplates manages. [0648]
  • scene: Scene=null [0649]
  • Associated Scene object. [0650]
  • Public Methods: [0651]
  • CompositeTemplate (scene: Scene=null, name: String=null, context: PresentationContext=null): [0652]
  • Public constructor parameterized for a Scene, string name, and a PresentationContext. [0653]
  • layout (layoutElement: LayoutElement=null): boolean [0654]
  • Computes the layout of its contained templates in cooperation with a LayoutElement. The CompositeTemplate delegates to a LayoutElement the abstract task of computing a constraint-based layout, i.e., determines how to glue the content elements together, while the CompositeTemplate has the specific task of dictating a specified design style. [0655]
  • addTemplate (tmpl: Template=null): void [0656]
  • Add a Template to set of subTemplates. [0657]
  • deleteTemplate (tmpl: Template=null): [0658]
  • Delete a Template from the set of SubTemplates. [0659]
  • Presentation [0660]
  • Description: [0661]
  • This class encapsulates the rendering of a presentation of a Scene. [0662]
  • Responsibilities: [0663]
  • The primary responsibility of the Presentation class is to create the corresponding presentation object hierarchy that map the hierarchical structure of a Scene object [0664]
  • Private Properties: [0665]
  • rootScene: Scene=null [0666]
  • The top-level scene associated with a Presentation. [0667]
  • rootTemplate: CompositeTemplate=null [0668]
  • The top-level CompositeTemplate associated with the rootScene. [0669]
  • Public Methods: [0670]
  • Presentation (scene: Scene=null, context: PresentationContext=null, id: String=null): [0671]
  • Public constructor parameterized for a Scene, a name, and a PresentationContext. [0672]
  • map (scene: Scene=null): CompositeTemplate [0673]
  • This operation basically constructs a tree comprised of templates that map to each StoryElement contained in a Scene and its subcomponents. [0674]
  • This operation returns the root CompositeTemplate that maps to the root Scene. [0675]
  • render( ): void [0676]
  • This operation in turn calls render( ) on its contained Templates. [0677]
  • generate( ): boolean [0678]
  • This operation in turn calls generate( ) on all contained templates to launch the generation of a Presentation. [0679]
  • Timer [0680]
  • Description: [0681]
  • This class presents a timer entity for showing a Presentation for a specific interval of time. A timeout event is spawned when a Timer has expires. [0682]
  • Responsibilities: [0683]
  • Represent a timer that spawns a timeout event. [0684]
  • Private Properties: [0685]
  • duration: TimeUnit=null [0686]
  • Duration of timer [0687]
  • Public Methods: [0688]
  • Timer (presentation: Presentation=null, interval: TimeUnit=null): [0689]
  • Public constructor parameterized for a Presentation and a length of duration. [0690]
  • setDuration (interval: TimeUnit=null): void [0691]
  • Set the duration of the Timer. [0692]
  • LayoutElement [0693]
  • Description: [0694]
  • This is an abstract base class that is intended to coordinate the arrangement of the elements that makeup a CompositeTemplate. [0695]
  • Concrete subclasses need to define the appropriate operations and attributes dependent on the specific delivery environment (e.g., HTML, X Windows, set-top, etc.). [0696]
  • Responsibilities: [0697]
  • Spatially arrange a CompositeTemplate's elements. [0698]
  • Private Properties: [0699]
  • cTemplate: CompositeTemplate=null [0700]
  • the CompositeTemplate whose elements are being arranged. [0701]
  • pContext: PresentationContext=null [0702]
  • current PresentationContext. [0703]
  • Public Methods: [0704]
  • LayoutElement (compositeTemplate: CompositeTemplate=null): [0705]
  • Public constructor parameterized for a CompositeTemplate and a PresentationContext. [0706]
  • arrange (cTmpl: CompositeTemplate=null): boolean [0707]
  • This operation computes the spatial arrangement of a CompositeTemplate's elements. [0708]
  • PresentationEngine [0709]
  • Description: [0710]
  • The PresentationEngine is the system-level interface to the presentation system. [0711]
  • Responsibilities: [0712]
  • Determine PresentationContext. [0713]
  • Find most appropriate matching Presentation for the incoming Scene. [0714]
  • Hand off a StoryEvents back to the Application. [0715]
  • Private Properties: [0716]
  • presentationContext: PresentationContext=null [0717]
  • The current PresentationContext for the given Presentation. [0718]
  • presentation: Presentation=null [0719]
  • The current Presentation being generated/presented. [0720]
  • Public Methods: [0721]
  • PresentationEngine (userModelMgr: UMMgr=null): [0722]
  • Public constructor parameterized for a UserModelManager. [0723]
  • init( ): void [0724]
  • This operation loads the presentation database. [0725]
  • present( ): StoryEvent [0726]
  • This operation includes the following steps: [0727]
  • 1. Invoke Scene lookup operation. [0728]
  • 2. Generate the currentPresentation. [0729]
  • 3. Wait for a StoryEvent and return it. [0730]
  • lookup (scene: Scene=null): Presentation [0731]
  • This operation attempts to match the scene from the StoryEngine to a corresponding Presentation that will have the most appropriate mapping to the Scene components. [0732]
  • handleEvent( ): StoryEvent [0733]
  • This operation waits for a StoryEvent to be detected and subsequently returned to the application. [0734]
  • PresentationContext [0735]
  • Description: [0736]
  • This class represents the current snapshot of the delivery environment at any given moment during the generation of a Presentation. This component is like the UserModel is to the user's profile, as a PresentationContext is to a profile of the presentation environment. [0737]
  • Responsibilities: [0738]
  • Maintain a collection of attribute-value pairs that describe the delivery environment. [0739]
  • Private Properties: [0740]
  • featureVector: FeatureVector [0741]
  • Public Methods: [0742]
  • PresentationContext (id: String=null): [0743]
  • Public constructor parameterized for a string name. [0744]
  • Content Model Classes [0745]
  • FIG. 24 shows an exemplary content class diagram according to the present invention. The following provide descriptions of exemplary base classes shown in FIG. 24. [0746]
  • ContentElement [0747]
  • Description: [0748]
  • ContentElement is the root class of the content model hierarchy. This class abstracts an element of content and maintains a set of ContentMediaElements, where each ContentMediaElement is a different representation of the ContentElement (e.g. text, image, etc.) [0749]
  • Responsibilities: [0750]
  • Multi-model representation of a element of content. [0751]
  • Integrate multiple representations of a element of content. [0752]
  • Private Properties: [0753]
  • name: String=null [0754]
  • the name of the ContentElement. [0755]
  • keywords: FeatureVector=null [0756]
  • utilizing feature vector to represent the semantic meaning. [0757]
  • representations: Set of ContentMediaElement=null [0758]
  • different media representations of the ContentElement. [0759]
  • anchors: Set of Anchor=null [0760]
  • Public Methods: [0761]
  • ContentElement (cname: String=null): [0762]
  • [0763] Constructor 1
  • ContentElement (cname: String=null, keys: String[ ]=null): [0764]
  • [0765] Constructor 2
  • setKeywords (keys: String=null): void [0766]
  • Set the keywords of this ContentElement [0767]
  • getKeywords( ): FeatureVector [0768]
  • Get the feature vector of the ContentElement. [0769]
  • addMediaElement (cme: ContentMediaElement=null): void [0770]
  • Add a ContentMedialElement the ContentElement's set of media elements. [0771]
  • removeMediaElement (cme: ContentMediaElement=null): void [0772]
  • Remove the given ContentMediaElement from the ContentElement's set of media elements. [0773]
  • getName( ): String [0774]
  • Return the ContentElement's name. [0775]
  • read (istream: InputStream=null): void [0776]
  • Read a ContentElement from a InputStream (language-specific). [0777]
  • write (ostream: OutputStream=null): void [0778]
  • Write a ContentElement to a OutputStream (language-specific). [0779]
  • getMedia (i: integer=−1): ContentMediaElement [0780]
  • Get the ith ContentMediaElement contained in the set of representations. [0781]
  • CompositeContent [0782]
  • Description: [0783]
  • This class supports the creation of an aggregation of ContentElements. [0784]
  • Responsibilities: [0785]
  • Maintaining a set of ContentElement. [0786]
  • Derived from ContentElement [0787]
  • Private Properties: [0788]
  • components: Set of ContentElement=null [0789]
  • Public Methods: [0790]
  • CompositeContent (cname: String=null, keys: String[ ]=null, cmpnts: Set of ContentElement=null): [0791]
  • Public constructor parameterized for a string name, a set of keywords, and a set of subcomponents. [0792]
  • addComponent (c: ContentElement=null): void [0793]
  • Add a ContentElement to this CompositeContent's set of components. [0794]
  • getComponent (i: int=0): Content [0795]
  • Get the ith ContentElement contained in the component. [0796]
  • removeComponent (cmpnt: ContentElement=null): void [0797]
  • Remove a component from the components list. [0798]
  • getComponentNames( ): String[ ][0799]
  • Get an array of component content names [0800]
  • ContentMediaElement [0801]
  • Description: [0802]
  • This is a virtual class that defines general attributes and operations for ContentMediaElements. It will be implemented in Audio, Video, Image and Text subclasses. [0803]
  • This class basically acts as a wrapper class to media assets, hiding the details of the raw media. [0804]
  • Responsibilities: [0805]
  • Representation of a media asset (e.g., image, video segment, text segment). [0806]
  • Private Properties: [0807]
  • name: String=null [0808]
  • The name of the presentation [0809]
  • author: String=null [0810]
  • The author of the presentation [0811]
  • anchors: Set of Anchor=null [0812]
  • The set of associated anchors [0813]
  • Public Methods: [0814]
  • ContentMediaElement (cmeName: String, cmeAuthor: String): [0815]
  • Public constructor parameterized for a string name and string author's name. [0816]
  • show( ): void [0817]
  • Show the ContentMediaElement. [0818]
  • Metadata Model Classes [0819]
  • FIG. 25 shows an exemplary metadata class diagram according to the present invention. The following provide descriptions of exemplary base classes shown in FIG. 25. [0820]
  • FeatureType [0821]
  • Description: [0822]
  • This is the abstract base class for all FeatureTypes. FeatureType is a wrapper class that encapsulates one or more primitive datatypes that collectively provide more meaning. [0823]
  • For example, a FeatureType called homeLocation comprised of 4 strings that represent street address, city, state, and country of a user, or geoLocation comprised of two real numbers that represent the latitude and longitude of a location. [0824]
  • Responsibilities: [0825]
  • Abstract base class for types of features. [0826]
  • Private Properties: [0827]
  • typeName: String=null [0828]
  • The string name of this FeatureType. [0829]
  • Public Methods: [0830]
  • FeatureType (sname: String=null): [0831]
  • Public constructor parameterized for a string name. [0832]
  • equals (object: Object=null): boolean [0833]
  • Determines if object is of a specific FeatureType. [0834]
  • validate( ): boolean [0835]
  • Determines if the FeatureType associated data is valid, e.g., string within length bounds. [0836]
  • read (istream: InputStream=null): void [0837]
  • Read a FeatureType from a InputStream (language-specific). [0838]
  • write (ostream: OutputStream=null): void [0839]
  • Write a FeatureType to OutputStream (language-specific). [0840]
  • Feature [0841]
  • Description: [0842]
  • This class represents a weighted data, more specifically, a weighted FeatureType instance. The assumption is that the “data” is rated in terms of importance on a real number scale from 0.0 to 1.0. [0843]
  • Responsibilities: [0844]
  • Represent a weighted attribute of interest. [0845]
  • Private Properties: [0846]
  • weight: =−1 [0847]
  • The weight of importance/priority on a real number scale from 0.0. to 1.0. [0848]
  • data: FeatureType=null [0849]
  • The FeatureType instance that comprises the Feature. [0850]
  • Public Methods: [0851]
  • Feature (data: FeatureType=null, wt: float=null): [0852]
  • Public constructor parameterized for a datum and a weight. [0853]
  • setWeight (wt: float=−1): void [0854]
  • Set the weight of the Feature. [0855]
  • getWeight( ): float [0856]
  • Get the feature's weight. [0857]
  • getData( ): Object [0858]
  • Get encapsulated FeatureType's data. [0859]
  • read (istream: InputStream=null): void [0860]
  • Read a Feature from a InputStream (language-specific). [0861]
  • write (ostream: OutputStream=null): void [0862]
  • Write a Feature to a OutputStream (language-specific). [0863]
  • FeatureVector [0864]
  • Description: [0865]
  • This class is a set of weighted Features. This class is a basic data structure for representing metadata. [0866]
  • Responsibilities: [0867]
  • Maintains a set of features. [0868]
  • Private Properties: [0869]
  • features: Set of Feature=null [0870]
  • A set of features. [0871]
  • Public Methods: [0872]
  • FeatureVector( ): [0873]
  • Public constructor. [0874]
  • addEntry (feat: Feature=null): void [0875]
  • Add a Feature to the FeatureVector's set of Features. [0876]
  • deleteEntry (feat: Feature=null): void [0877]
  • Delete Feature from FeatureVector's set of Features. [0878]
  • findEntry (feat: Feature=null): Feature [0879]
  • Find the Feature in the FeatureVector's set of Features. [0880]
  • similarity (feat: Feature=null): float [0881]
  • Compute numerical score indicating how similar/dissimilar two FeatureVectors are. [0882]
  • read (istream: InputStream=null): void [0883]
  • Read a FeatureVector from a InputStream (language-specific). [0884]
  • write (ostream: OutputStream=null): void [0885]
  • Write a FeatureVector to a OutputStream (language-specific). [0886]
  • Functional Design [0887]
  • Now the corporate web site exemplary embodiment will be used to discuss the functional aspects of creating, assembling and presenting an application using the architectural framework according to the present invention. [0888]
  • FIG. 26 shows an exemplary content database for the corporate web site according to the present invention. From this sparse set of content, a simple portion of a web service will be designed. The database contains content elements with varying representation. In some cases, the content element has multiple representations of the same type but with different media characteristics, e.g., the Nature Conservation Ad has two image representations but with differing specification for aspect ratio. The more varied the database in terms of types of representations and the number of versions of the same type of representation, the more contextual delivery of content for the user. [0889]
  • A story model will be described by using the exemplary web base service to show how a hierarchical organization of filters creates modular highly complex applications that are assembled dynamically, shaped by the characteristics of the current user and the available content. [0890]
  • FIG. 27 shows a block diagram of a high level view of a portion of the exemplary web base service. This portion focuses on the element of the story that presents information on the history of the Cedar Fever Bowl. The history of the bowl game goes back to 1995 and the intent of an imaginary web development team is to show a recap of each game (1995, 1996) and associate an advertisement alongside each game history recap. The development team develops a story model that further expands the block diagram shown in FIG. 27. Each game review is developed as a separate component and, therefore, each element is a self-contained independent aggregate of information. The architectural framework according to the present invention supports the development of bottom up services and reusable story elements. The 1995 game review will consist of a summary of the 1995 game and an advertisement that best matches the current user's user model. The 1996 game review will consist of a summary of the 1996 game and an advertisement that best matches the current user's user model but that has not been previously reviewed by the user in the current session, otherwise, an advertisement that simply is sports related. [0891]
  • FIG. 28 shows the resulting story model. By using FeatureFilters, one can select specific content elements by referring to their content_id. UserFilters filter content elements that match a user's user model, returning a prioritized set of content elements sorted by one level of similarity. Since a story model is developed, the next step is to develop or reuse presentation components that will be designated to present the simple story. [0892]
  • In order to illustrate the presentation aspects of the web service example, a set of presentation templates that encapsulate the HTML delivery environment are developed. In the presentation domain, there are two types of presentation templates, a Template and a CompositeTemplate. A CompositeTemplate represents a set of Templates. Non-composite Templates are mapped to ContentElements. Composite Templates are mapped to Scenes (a composite ContentElement). In the creation of a presentation, Templates call upon their associated ContentElements and retrieve the best representation of the element in the context of the current delivery environment. A CompositeTemplate ensures that given its real estate its subcomponents are intelligently laid out with the best-suited media representation of a ContentElement (ContentMediaElement). To further illustrate, an example set of presentation components are shown in FIG. 29. These example components are not fully specified, but they illustrate what is expected of a presentation component. [0893]
  • In this example presentation model, HTMLDoc, HTMLPage, and HTMLBody are CompositeTemplates, while HTMLBlock and HTMLAd are non-composite Templates. The semantics of the components are loosely the following: (1) a HTMLBodyWithAd will always require 1 HTMLBlock and 1 HTMLAd; (2) A HTMLPage can contain 1 or more components of type HTMLBody; and (3) by default, a HTMLDoc contains one HTMLPage. Additionally, a HTMLDoc maps to one Scene object. More importantly, if a HTMLDoc determines that one HTMLPage is insufficient to present a Scene, it may for example, dynamically allocate two HTMLPages and mapping to one StoryElement. This last point demonstrates the power and flexibility of the architectural framework according to the present invention, if designed and implemented correctly. [0894]
  • Generally the execution process from a high level view for assembling a story, generating a presentation that shows the story, and handling any user events includes: [0895]
  • Creating and initializing a UserModelManager; [0896]
  • Creating and initializing a StoryEngine; [0897]
  • Creating and initializing a PresentationEngine; [0898]
  • Selecting an story element (i.e., Scene) to be the initial element of the story; [0899]
  • Calling upon the StoryEngine to assemble a “story” given the initial element; [0900]
  • Upon the StoryEngine completing its assembly task, calling upon the PresentationEngine to present the “story”; [0901]
  • Dispatching a story-relevant event to the StoryEngine to determine the next story element (Scene) to play; and [0902]
  • Based on the outcome of the event, set the next story element (Scene) to be assembled and subsequently presented. [0903]
  • The following illustrates the assembling of a scene for the exemplary web service example, the 1996Game, contained in the BowlHistory Scene. Initially, it is assumed that the Story Model at this point has been constructed and mapped with the appropriate ContentElements. The StoryEngine starts off the assembly of the 1996Game Scene. Each successive Scene calls upon their contained Filters resulting in a depth-first traversal of the filter hierarchy. Each Scene supplies its inputs to its contained Filters. This is the default execution behavior, which may be overridden by the application designers implementing their own base CompositeTemplate class that redefines the execution semantics. [0904]
  • Specifically, the 1996GameReview, a FeatureFilter, is calling for a content element with the feature, “content_id=1996GameReview” which is an explicit call for a specific ContentElement. Next, the element named [0905] PersonalizedAd 2, an AndFilter, is retrieving advertisements that have the feature “content_type=Ad” and that favorably match the user's UserModel. Having met these constraints, the last Filter, a RuleFilter, checks to see if the ContentElements that have resulted from the two previous Filters (within the AndFilter) are on the StoryEngine's already-played list. If all have been “played”, one content element from that current set that has the feature is selected, “keyword=sports”, otherwise any one ContentElement from the current set is chosen.
  • The AndFilter feeds the set of ContentElements resulting from each contained Filter to the next, which differs from the Scene Filter that simply supplies the same inputs to each contained Filter. Additionally, when the UserFilter is executed, it retrieves the user's UserModel via the UMMgr (user model manager) to carry out its execution. [0906]
  • To generate a final presentation of a Scene, it is assumed that the process of mapping the story elements to the presentation elements has already occurred and its outcome is shown partially in FIG. 30. The process of rendering (actually displaying the presentation) is not shown or described. [0907]
  • In generating a presentation, we have a hierarchical structure that maps to the hierarchical structure in the StoryModel. Once again, the structure is traversed in a depth-first manner. Each non-composite template (leaf element in the hierarchy) selects one ContentMediaElement object that represents the template's associated ContentElement. Once a CompositeTemplate's sub-components have satisfactorily selected their ContentMediaElements, the CompositeTemplate calls upon a LayoutElement to arrange the layout of these sub-components. Once a layout is generated, the CompositeTemplate evaluates the candidate presentation based on its criteria as defined in a concrete class. If satisfied, control is passed back to its containing template, and the whole process starts all over again for the siblings in the hierarchy. Eventually, control returns to the top-level, and if all else evaluated satisfactorily, the overall presentation is ready to be rendered. [0908]
  • In general, the rendering process simply involves traversing the presentation hierarchy and invoking the show( ) operation on the finally selected ContentMediaElement, and displaying the hierarchy as specified by its CompositeTemplate and its LayoutElement. [0909]
  • If any step in the previously described process of evaluation fails, i.e., a CompositeTemplate is not satisfied with the selection of the media representations and/or the layout of its subcomponents, the CompositeTemplate then pushes back on the contained templates to choose alternate media representations of its associated ContentElement. This process involves an iterative generation of the final form of the presentation. The final presentation form is shown in FIG. 31. [0910]
  • To dispatch a Story-specific event, it is assumed that the presentation of a story (i.e., Scene) has been successfully rendered by this point. As previously described, ContentElements have associated anchors that surface on a ContentElement because of their relationship with ContentMediaElements. When an event occurs in the PresentationEngine that has relevance to the StoryEngine (i.e., a UserSelectionEvent, a TimeoutEvent), the event is forwarded to the current Scene. The Scene object decodes the event to extract the next Scene to be assembled and presented and whole process starts over. [0911]
  • It is noted that the foregoing examples have been provided merely for the purpose of explanation and are in no way to be construed as limiting of the present invention. While the present invention has been described with reference to a preferred embodiment, it is understood that the words which have been used herein are words of description and illustration, rather than words of limitation. Changes may be made within the purview of the appended claims, as presently stated and as amended, without departing from the scope and spirit of the present invention in its aspects. Although the present invention has been described herein with reference to particular means, materials, and embodiments, the present invention is not intended to be limited to the particulars disclosed herein, rather, the present invention extends to all functionally equivalent structures, methods and uses, such as are within the scope of the appended claims. [0912]

Claims (24)

What is claimed is:
1. A method for dynamically creating and delivering interactive personalized multimedia content in an electronic environment, comprising:
providing a narrative framework;
sequencing and editing the narrative framework, based upon a user profile, to create a dynamically generated narrative;
modifying the dynamically generated narrative based upon a delivery context; and
rendering the modified narrative.
2. The method of claim 1, further comprising updating the user profile based on a user interaction history.
3. The method of claim 1, in which the user profile is created by gathering data from the user, analyzing a history of the user, monitoring data related to the user, and detecting patterns and trends of the user.
4. The method of claim 1, in which the delivery context comprises a display area.
5. The method of claim 1, in which the delivery context comprises a network connection.
6. The method of claim 1, in which the narrative framework further comprises content elements, each content element comprising a plurality of types of representations having different media characteristics, facilitating modification based upon delivery context.
7. A method for generating a personalized broadcast program guide that suggest programs to a user, the method comprising:
creating a standard program schedule based upon an initial time period;
obtaining a profile of the user;
selecting suggested programs based upon the user profile and the standard program schedule;
resolving constraints specified by display rules; and
displaying the suggested programs in accordance with the resolved constraints.
8. The method of claim 7, further comprising periodically refining the user profile.
9. The method of claim 7, in which the user profile represents interests of the user.
10. A method for dynamically assembling content, comprising:
adapting the content to a user;
adapting the content based upon available content; and
adapting the content to a context at a delivery time.
11. The method of claim 10, in which the context comprises a display area.
12. The method of claim 10, in which the context comprises a network connection.
13. A computer readable medium storing a program for dynamically creating and delivering interactive personalized multimedia content in an electronic environment, comprising:
a retrieving source code segment that retrieves a narrative framework;
an editing source code segment that sequences and edits the narrative framework, based upon a user profile, to create a dynamically generated narrative;
a delivery context source segment that modifies the dynamically generated narrative based upon a delivery context; and
a rendering source code segment that renders the modified narrative.
14. The medium of claim 13, further comprising a profile updating source code segment that updates the user profile based on a user interaction history.
15. The medium of claim 13, further comprising a profile creation source code segment that creates the user profile by gathering data from the user, analyzing a history of the user, monitoring data related to the user, and detecting patterns and trends of the user.
16. The medium of claim 13, in which the delivery context comprises a display area.
17. The medium of claim 13, in which the delivery context comprises a network connection.
18. The medium of claim 13, in which the narrative framework further comprises content elements, each content element comprising a plurality of types of representations having different media characteristics, facilitating modification based upon delivery context.
19. A computer readable medium storing a program for generating a personalized broadcast program guide that suggest programs to a user, the program comprising:
a creation source code segment that creates a standard program schedule based upon an initial time period;
a profile source code segment that obtains a profile of the user;
a selecting source code segment that selects suggested programs based upon the user profile and the standard program schedule;
a constraint source code segment that resolves at least one constraint specified by at least one display rule; and
a display source code segment that displays the suggested programs in accordance with the resolved constraint.
20. The medium of claim 19, further comprising a refining source code segment that periodically refines the user profile.
21. The medium of claim 19, in which the user profile represents interests of the user.
22. A computer readable medium storing a program for dynamically assembling content, comprising:
a user source code segment that adapts the content to a user;
a content source code segment that adapts the content based upon available content; and
a delivery context source code segment that adapts the content to a context at a delivery time.
23. The medium of claim 22, in which the context comprises a display area.
24. The medium of claim 22, in which the context comprises a network connection.
US10/736,690 1998-09-11 2003-12-17 System and methods for an architectural framework for design of an adaptive, personalized, interactive content delivery system Abandoned US20040128624A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US10/736,690 US20040128624A1 (en) 1998-09-11 2003-12-17 System and methods for an architectural framework for design of an adaptive, personalized, interactive content delivery system

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US9994798P 1998-09-11 1998-09-11
US09/393,281 US6694482B1 (en) 1998-09-11 1999-09-10 System and methods for an architectural framework for design of an adaptive, personalized, interactive content delivery system
US10/736,690 US20040128624A1 (en) 1998-09-11 2003-12-17 System and methods for an architectural framework for design of an adaptive, personalized, interactive content delivery system

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US09/393,281 Continuation US6694482B1 (en) 1998-09-11 1999-09-10 System and methods for an architectural framework for design of an adaptive, personalized, interactive content delivery system

Publications (1)

Publication Number Publication Date
US20040128624A1 true US20040128624A1 (en) 2004-07-01

Family

ID=31190556

Family Applications (2)

Application Number Title Priority Date Filing Date
US09/393,281 Expired - Fee Related US6694482B1 (en) 1998-09-11 1999-09-10 System and methods for an architectural framework for design of an adaptive, personalized, interactive content delivery system
US10/736,690 Abandoned US20040128624A1 (en) 1998-09-11 2003-12-17 System and methods for an architectural framework for design of an adaptive, personalized, interactive content delivery system

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US09/393,281 Expired - Fee Related US6694482B1 (en) 1998-09-11 1999-09-10 System and methods for an architectural framework for design of an adaptive, personalized, interactive content delivery system

Country Status (1)

Country Link
US (2) US6694482B1 (en)

Cited By (106)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020035501A1 (en) * 1998-11-12 2002-03-21 Sean Handel A personalized product report
US20020194226A1 (en) * 2001-06-15 2002-12-19 Dinesh Sheth Internet information aggregation system using programmatic data extraction
US20030121058A1 (en) * 2001-12-24 2003-06-26 Nevenka Dimitrova Personal adaptive memory system
US20030216929A1 (en) * 2002-05-16 2003-11-20 International Business Machines Corporation Method, system and program product for presenting web content according to a determined learning style
US20040103137A1 (en) * 2002-07-13 2004-05-27 John Irving Method and system for monitoring and filtering data transmission
US20040103118A1 (en) * 2002-07-13 2004-05-27 John Irving Method and system for multi-level monitoring and filtering of electronic transmissions
US20040103122A1 (en) * 2002-07-13 2004-05-27 John Irving Method and system for filtered web browsing in a multi-level monitored and filtered system
US20040111423A1 (en) * 2002-07-13 2004-06-10 John Irving Method and system for secure, community profile generation and access via a communication system
US20040181543A1 (en) * 2002-12-23 2004-09-16 Canon Kabushiki Kaisha Method of using recommendations to visually create new views of data across heterogeneous sources
US20040205473A1 (en) * 2000-01-27 2004-10-14 Gwyn Fisher Method and system for implementing an enterprise information portal
US20040254946A1 (en) * 2003-06-13 2004-12-16 Masayuki Yachi Data management system
US20060117067A1 (en) * 2004-11-30 2006-06-01 Oculus Info Inc. System and method for interactive visual representation of information content and relationships using layout and gestures
US20060167835A1 (en) * 2005-01-07 2006-07-27 International Business Machines Corporation Optimization-based media allocation
US20060224948A1 (en) * 2005-03-31 2006-10-05 International Business Machines Corporation Method, system and software tool for processing an electronic form
US20060253572A1 (en) * 2005-04-13 2006-11-09 Osmani Gomez Method and system for management of an electronic mentoring program
US20070073799A1 (en) * 2005-09-29 2007-03-29 Conopco, Inc., D/B/A Unilever Adaptive user profiling on mobile devices
US20070132767A1 (en) * 2005-11-30 2007-06-14 William Wright System and method for generating stories in time and space and for analysis of story patterns in an integrated visual representation on a user interface
US20070198600A1 (en) * 2006-02-17 2007-08-23 Betz Jonathan T Entity normalization via name normalization
US20070198597A1 (en) * 2006-02-17 2007-08-23 Betz Jonathan T Attribute entropy as a signal in object normalization
US20070244697A1 (en) * 2004-12-06 2007-10-18 Sbc Knowledge Ventures, Lp System and method for processing speech
US20070282949A1 (en) * 2006-05-31 2007-12-06 Red. Hat, Inc. Shared playlist management for open overlay for social networks and online services
US20070282980A1 (en) * 2006-05-31 2007-12-06 Red. Hat, Inc. Client-side data scraping for open overlay for social networks and online services
US20070282950A1 (en) * 2006-05-31 2007-12-06 Red. Hat, Inc. Activity history management for open overlay for social networks and online services
US20070282887A1 (en) * 2006-05-31 2007-12-06 Red. Hat, Inc. Link swarming in an open overlay for social networks and online services
US20080028297A1 (en) * 2006-07-25 2008-01-31 Paxson Dana W Method and apparatus for presenting electronic literary macrames on handheld computer systems
US20080037879A1 (en) * 2006-07-25 2008-02-14 Paxson Dana W Method and apparatus for electronic literary macrame component referencing
US20080098064A1 (en) * 2006-10-23 2008-04-24 Sherinian Konrad V Systems, methods, and apparatus for transmitting virtual world content from a server system to a client
US20080133658A1 (en) * 2006-11-30 2008-06-05 Havoc Pennington Auto-shared photo album
US20080133593A1 (en) * 2006-11-30 2008-06-05 Bryan Clark Automatic playlist generation in correlation with local events
US20080134053A1 (en) * 2006-11-30 2008-06-05 Donald Fischer Automatic generation of content recommendations weighted by social network context
US20080133475A1 (en) * 2006-11-30 2008-06-05 Donald Fischer Identification of interesting content based on observation of passive user interaction
US20080133737A1 (en) * 2006-11-30 2008-06-05 Donald Fischer Automatic playlist generation of content gathered from multiple sources
US20080133649A1 (en) * 2006-11-30 2008-06-05 Red Hat, Inc. Automated screen saver with shared media
US20080134054A1 (en) * 2006-11-30 2008-06-05 Bryan Clark Method and system for community tagging of a multimedia stream and linking to related content
US20080133638A1 (en) * 2006-11-30 2008-06-05 Donald Fischer Automated identification of high/low value content based on social feedback
US20080134039A1 (en) * 2006-11-30 2008-06-05 Donald Fischer Method and system for preloading suggested content onto digital video recorder based on social recommendations
US20080133763A1 (en) * 2006-11-30 2008-06-05 Bryan Clark Method and system for mastering music played among a plurality of users
US20080176194A1 (en) * 2006-11-08 2008-07-24 Nina Zolt System for developing literacy skills using loosely coupled tools in a self-directed learning process within a collaborative social network
US20080215985A1 (en) * 2007-02-23 2008-09-04 Tabblo, Inc. Method for initial layout of story elements in a user-generated online story
US20080215967A1 (en) * 2007-02-23 2008-09-04 Tabblo, Inc. Method and system for online transformation using an image URL application programming interface (API)
US20080301578A1 (en) * 2006-09-25 2008-12-04 Peter Jonathan Olson Methods, Systems, and Computer Program Products for Navigating a Sequence of Illustrative Scenes within a Digital Production
US20080319949A1 (en) * 2002-07-13 2008-12-25 Epals, Inc. Method and system for interactive, multi-user electronic data transmission in a multi-level monitored and filtered system
US20090070490A1 (en) * 2006-11-08 2009-03-12 Dozier Linda T Dynamic Characterization of Nodes in a Semantic Network for Desired Functions Such As Search, Discovery, Matching, Content Delivery, and synchronization of Activity and Information
US7567976B1 (en) * 2005-05-31 2009-07-28 Google Inc. Merging objects in a facts database
US20090305218A1 (en) * 2008-05-08 2009-12-10 Dozier Linda T Object-Based System and Language for Dynamic Data or Network Interaction Including Learning Management
US20100082746A1 (en) * 2008-09-30 2010-04-01 Ulrich Sean M System and method for web site driven collaborative web browsing
US7831545B1 (en) * 2005-05-31 2010-11-09 Google Inc. Identifying the unifying subject of a set of facts
US20100318642A1 (en) * 2009-03-05 2010-12-16 Linda Dozier System and method for managing and monitoring electronic communications
US20110029858A1 (en) * 2006-03-16 2011-02-03 Hauser Eduardo A Method and system for creating customized news digests
US20110035651A1 (en) * 2006-02-24 2011-02-10 Paxson Dana W Apparatus and method for creating literary macrames
US20110119598A1 (en) * 2009-10-13 2011-05-19 Shawn Traylor Dynamic collaboration in social networking environment
US7966291B1 (en) 2007-06-26 2011-06-21 Google Inc. Fact-based object merging
US7970766B1 (en) 2007-07-23 2011-06-28 Google Inc. Entity type assignment
US20110179344A1 (en) * 2007-02-26 2011-07-21 Paxson Dana W Knowledge transfer tool: an apparatus and method for knowledge transfer
US7991797B2 (en) 2006-02-17 2011-08-02 Google Inc. ID persistence through normalization
GB2481984A (en) * 2010-07-13 2012-01-18 Laurence Millar Digital Media File that replays differently each time
US8122026B1 (en) 2006-10-20 2012-02-21 Google Inc. Finding and disambiguating references to entities on web pages
US8150939B1 (en) * 2007-05-11 2012-04-03 Oracle America, Inc. Method and system for wrapping and componentizing javascript centric widgets using java components
US20120084398A1 (en) * 2010-10-04 2012-04-05 Donald Kent Neary Methods and apparatus for submitting and reviewing auditions
US20120095986A1 (en) * 2010-10-19 2012-04-19 Opher Etzion Runtime optimization of spatiotemporal events processing background
US20120129143A1 (en) * 2010-11-19 2012-05-24 Disney Enterprises, Inc. System and method for generating a plot of a digital print
US8214254B1 (en) * 2000-01-07 2012-07-03 Home Producers Network, Llc Method and system for compiling a consumer-based electronic database, searchable according to individual internet user-defined micro-demographics (II)
US8219446B1 (en) * 2000-01-07 2012-07-10 Home Producers Network, Llc Method and system for compiling a consumer-based electronic database, searchable according to individual internet user-defined micro-demographics
US8239350B1 (en) 2007-05-08 2012-08-07 Google Inc. Date ambiguity resolution
US8260785B2 (en) 2006-02-17 2012-09-04 Google Inc. Automatic object reference identification and linking in a browseable fact repository
US8280030B2 (en) 2005-06-03 2012-10-02 At&T Intellectual Property I, Lp Call routing system and method of using the same
US8347202B1 (en) 2007-03-14 2013-01-01 Google Inc. Determining geographic locations for place names in a fact repository
US20130073568A1 (en) * 2011-09-21 2013-03-21 Vladimir Federov Ranking structured objects and actions on a social networking system
US20130212598A1 (en) * 2012-02-14 2013-08-15 Microsoft Corporation Dependency informer
US8626837B2 (en) 2006-05-31 2014-01-07 Red Hat, Inc. Identity management for open overlay for social networks and online services
US8650175B2 (en) 2005-03-31 2014-02-11 Google Inc. User interface for facts query engine with snippets from information sources that include query terms and answer terms
US8682913B1 (en) 2005-03-31 2014-03-25 Google Inc. Corroborating facts extracted from multiple sources
US8688742B2 (en) 2006-05-31 2014-04-01 Red Hat, Inc. Open overlay for social networks and online services
US8689134B2 (en) 2006-02-24 2014-04-01 Dana W. Paxson Apparatus and method for display navigation
US20140100927A1 (en) * 2011-12-12 2014-04-10 International Business Machines Corporation Customizing a Presentation Based on Preferences of an Audience
US20140115451A1 (en) * 2012-06-28 2014-04-24 Madeleine Brett Sheldon-Dante System and method for generating highly customized books, movies, and other products
US8719031B2 (en) 2011-06-17 2014-05-06 At&T Intellectual Property I, L.P. Dynamic access to external media content based on speaker content
US8738643B1 (en) 2007-08-02 2014-05-27 Google Inc. Learning synonymous object names from anchor texts
US8751232B2 (en) 2004-08-12 2014-06-10 At&T Intellectual Property I, L.P. System and method for targeted tuning of a speech recognition system
US8812435B1 (en) 2007-11-16 2014-08-19 Google Inc. Learning objects and facts from documents
US8824659B2 (en) 2005-01-10 2014-09-02 At&T Intellectual Property I, L.P. System and method for speech-enabled call routing
US8825471B2 (en) 2005-05-31 2014-09-02 Google Inc. Unsupervised extraction of facts
US8996470B1 (en) 2005-05-31 2015-03-31 Google Inc. System for ensuring the internal consistency of a fact repository
US9208229B2 (en) 2005-03-31 2015-12-08 Google Inc. Anchor text summarization for corroboration
US20150370787A1 (en) * 2014-06-18 2015-12-24 Microsoft Corporation Session Context Modeling For Conversational Understanding Systems
US20160366075A1 (en) * 2015-06-12 2016-12-15 Samsung Electronics Co., Ltd. Electronic device and method for providing user preference program notification in the electronic device
US20170052663A1 (en) * 2010-12-16 2017-02-23 International Business Machines Corporation Dynamic presentations management
US9588652B2 (en) 2011-12-12 2017-03-07 International Business Machines Corporation Providing feedback for screen sharing
EP3142025A1 (en) * 2015-09-09 2017-03-15 Accenture Global Services Limited Generating and distributing interactive documents
US10296848B1 (en) 2018-03-05 2019-05-21 Clinc, Inc. Systems and method for automatically configuring machine learning models
US10303978B1 (en) 2018-03-26 2019-05-28 Clinc, Inc. Systems and methods for intelligently curating machine learning training data and improving machine learning model performance
WO2019103738A1 (en) * 2017-11-22 2019-05-31 Clinc, Inc. System and method for implementing an artificially intelligent virtual assistant using machine learning
US10572801B2 (en) 2017-11-22 2020-02-25 Clinc, Inc. System and method for implementing an artificially intelligent virtual assistant using machine learning
US10679150B1 (en) 2018-12-13 2020-06-09 Clinc, Inc. Systems and methods for automatically configuring training data for training machine learning models of a machine learning-based dialogue system including seeding training samples or curating a corpus of training data based on instances of training data identified as anomalous
US11010656B2 (en) 2017-10-30 2021-05-18 Clinc, Inc. System and method for implementing an artificially intelligent virtual assistant using machine learning
US11269498B2 (en) 2012-04-26 2022-03-08 Liveperson, Inc. Dynamic user interface customization
US11323428B2 (en) 2012-04-18 2022-05-03 Liveperson, Inc. Authentication of service requests using a communications initiation feature
US11386106B2 (en) 2008-08-04 2022-07-12 Liveperson, Inc. System and methods for searching and communication
US11501079B1 (en) 2019-12-05 2022-11-15 X Development Llc Personalized content creation using neural networks
US11562380B2 (en) 2008-10-29 2023-01-24 Liveperson, Inc. System and method for applying tracing tools for network locations
US11638195B2 (en) 2015-06-02 2023-04-25 Liveperson, Inc. Dynamic communication routing based on consistency weighting and routing rules
US11687981B2 (en) 2012-05-15 2023-06-27 Liveperson, Inc. Methods and systems for presenting specialized content using campaign metrics
US11711329B2 (en) 2012-03-06 2023-07-25 Liveperson, Inc. Occasionally-connected computing interface
US11710420B1 (en) 2019-12-19 2023-07-25 X Development Llc Derivative content creation using neural networks for therapeutic use
US11763200B2 (en) 2008-07-25 2023-09-19 Liveperson, Inc. Method and system for creating a predictive model for targeting web-page to a surfer
US11777877B2 (en) 2010-12-14 2023-10-03 Liveperson, Inc. Authentication of service requests initiated from a social networking site

Families Citing this family (122)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6769128B1 (en) 1995-06-07 2004-07-27 United Video Properties, Inc. Electronic television program guide schedule system and method with data feed access
MX340336B (en) 1997-07-21 2016-07-06 Gemstar Dev Corp Systems and methods for displaying and recording control interfaces.
US6898762B2 (en) 1998-08-21 2005-05-24 United Video Properties, Inc. Client-server electronic program guide
US6449646B1 (en) 1998-10-13 2002-09-10 Aspect Communications Corporation Method and apparatus for allocating mixed transaction type messages to resources via an integrated queuing mechanism
US7137069B2 (en) * 1998-12-18 2006-11-14 Tangis Corporation Thematic response to a computer user's context, such as by a wearable personal computer
US7552166B2 (en) * 1999-02-22 2009-06-23 Chack Michael A Method of queuing requests to access a communications network
AUPP961599A0 (en) * 1999-04-07 1999-04-29 Ps & Jag Pty Ltd Compliance monitoring for anomaly detection
WO2001015450A1 (en) * 1999-05-28 2001-03-01 Nokia Corporation Real-time, interactive and personalized video services
US7500187B1 (en) * 1999-11-04 2009-03-03 Panasonic Corporation Creation assisting method and apparatus utilizing element indexes
US7246316B2 (en) * 1999-11-30 2007-07-17 Siebel Systems, Inc. Methods and apparatus for automatically generating presentations
US6778643B1 (en) * 2000-03-21 2004-08-17 Sbc Technology Resources, Inc. Interface and method of designing an interface
US20040006473A1 (en) * 2002-07-02 2004-01-08 Sbc Technology Resources, Inc. Method and system for automated categorization of statements
US7890971B2 (en) * 2000-04-07 2011-02-15 Visible World, Inc. Systems and methods for managing and distributing media content
US8006261B1 (en) * 2000-04-07 2011-08-23 Visible World, Inc. System and method for personalized message creation and delivery
US8572646B2 (en) * 2000-04-07 2013-10-29 Visible World Inc. System and method for simultaneous broadcast for personalized messages
US7917924B2 (en) 2000-04-07 2011-03-29 Visible World, Inc. Systems and methods for semantic editorial control and video/audio editing
US7895620B2 (en) * 2000-04-07 2011-02-22 Visible World, Inc. Systems and methods for managing and distributing media content
US7900227B2 (en) * 2000-04-07 2011-03-01 Visible World, Inc. Systems and methods for managing and distributing media content
US7870579B2 (en) 2000-04-07 2011-01-11 Visible Worl, Inc. Systems and methods for managing and distributing media content
US7904922B1 (en) * 2000-04-07 2011-03-08 Visible World, Inc. Template creation and editing for a message campaign
US7861261B2 (en) * 2000-04-07 2010-12-28 Visible World, Inc. Systems and methods for managing and distributing media content
US7870577B2 (en) * 2000-04-07 2011-01-11 Visible World, Inc. Systems and methods for semantic editorial control and video/audio editing
US7870578B2 (en) 2000-04-07 2011-01-11 Visible World, Inc. Systems and methods for managing and distributing media content
US20020054087A1 (en) * 2000-04-17 2002-05-09 Roland Noll Channel dancer
US7037886B2 (en) * 2000-06-01 2006-05-02 Ecolab Inc. Method for manufacturing a molded detergent composition
US20020057297A1 (en) * 2000-06-12 2002-05-16 Tom Grimes Personalized content management
US7059261B2 (en) * 2004-01-21 2006-06-13 Ncl Corporation Wastewater ballast system and method
US20120089499A1 (en) * 2000-06-29 2012-04-12 Balthaser Online, Inc. Methods, systems, and processes for the design and creation of rich-media applications via the internet
US7000180B2 (en) * 2000-06-29 2006-02-14 Balthaser Online, Inc. Methods, systems, and processes for the design and creation of rich-media applications via the internet
WO2002019128A1 (en) * 2000-08-29 2002-03-07 Eloquent Tool for collaborative edit/search of dyanamic objects
JP2002157238A (en) * 2000-09-06 2002-05-31 Seiko Epson Corp Browsing information preparing system, digital contents preparing system, digital contents distributing system and digital contents preparing program
US7382796B2 (en) * 2000-12-13 2008-06-03 Visible World, Inc. System and method for seamless switching through buffering
US7490344B2 (en) * 2000-09-29 2009-02-10 Visible World, Inc. System and method for seamless switching
US6975970B2 (en) * 2000-12-15 2005-12-13 Soliloquy, Inc. Method for designing an interactive system
US6889222B1 (en) * 2000-12-26 2005-05-03 Aspect Communications Corporation Method and an apparatus for providing personalized service
US6981018B2 (en) * 2001-01-09 2005-12-27 Hewlett-Packard Development Company, L.P. System and method for posting a document
US20020099834A1 (en) * 2001-01-19 2002-07-25 Neoplanet, Inc. Rules-based decision engine
US20020103827A1 (en) * 2001-01-26 2002-08-01 Robert Sesek System and method for filling out forms
EP1227639A3 (en) * 2001-01-30 2003-10-29 AT&T Corp. Network service for adaptive mobile applications
US20020178184A1 (en) * 2001-05-22 2002-11-28 Allan Kuchinsky Software system for biological storytelling
US7519605B2 (en) 2001-05-09 2009-04-14 Agilent Technologies, Inc. Systems, methods and computer readable media for performing a domain-specific metasearch, and visualizing search results therefrom
US7017145B2 (en) * 2001-05-09 2006-03-21 Sun Microsystems, Inc. Method, system, and program for generating a user interface
WO2003007112A2 (en) * 2001-07-09 2003-01-23 Visible World, Inc. System and method for seamless switching of compressed audio streams
US7424459B2 (en) * 2002-03-01 2008-09-09 Lightsurf Technologies, Inc. System providing methods for dynamic customization and personalization of user interface
US7058898B2 (en) * 2002-03-22 2006-06-06 Sun Microsystems, Inc. Abstract user interface manager with prioritization
WO2003090125A2 (en) * 2002-04-19 2003-10-30 Computer Associates Think, Inc. Method and system for distributing data
US8843990B1 (en) 2002-04-25 2014-09-23 Visible World, Inc. System and method for optimized channel switching in digital television broadcasting
JP2004056372A (en) * 2002-07-18 2004-02-19 Pioneer Electronic Corp Program organizing apparatus, program providing system, method therefor, program therefor, and recording medium having programs recorded therein
EP1535263A4 (en) 2002-09-06 2007-10-24 Visible World Inc System for authoring and editing personalized message campaigns
JP2006509418A (en) * 2002-12-03 2006-03-16 ナグラカード エス. アー. How to manage the display of conditional access event descriptors
US7593915B2 (en) * 2003-01-07 2009-09-22 Accenture Global Services Gmbh Customized multi-media services
US20040199605A1 (en) * 2003-04-07 2004-10-07 Lacroix Robert Z. System and method of distributing customized content
US8170096B1 (en) 2003-11-18 2012-05-01 Visible World, Inc. System and method for optimized encoding and transmission of a plurality of substantially similar video fragments
US7027586B2 (en) * 2003-12-18 2006-04-11 Sbc Knowledge Ventures, L.P. Intelligently routing customer communications
US9087126B2 (en) 2004-04-07 2015-07-21 Visible World, Inc. System and method for enhanced video selection using an on-screen remote
US9396212B2 (en) * 2004-04-07 2016-07-19 Visible World, Inc. System and method for enhanced video selection
US8132204B2 (en) 2004-04-07 2012-03-06 Visible World, Inc. System and method for enhanced video selection and categorization using metadata
US7636922B2 (en) * 2004-05-03 2009-12-22 Microsoft Corporation Generic user interface command architecture
US20060112131A1 (en) * 2004-07-14 2006-05-25 Strike Friday, Inc. Story rewriting system
US9060200B1 (en) 2004-08-11 2015-06-16 Visible World, Inc. System and method for digital program insertion in cable systems
US7571425B2 (en) * 2004-11-18 2009-08-04 Hewlett-Packard Development Company, L.P. Automated binding for object oriented programming user interface components
US8095599B2 (en) * 2005-10-20 2012-01-10 International Business Machines Corporation Mail-based web application and document delivery
US20070124399A1 (en) * 2005-11-30 2007-05-31 Digital River, Inc. Dynamic Content System and Method
US8285595B2 (en) * 2006-03-29 2012-10-09 Napo Enterprises, Llc System and method for refining media recommendations
WO2007127166A2 (en) * 2006-04-24 2007-11-08 Visible World Inc. Systems and methods for generating media content using microtrends
US20070256011A1 (en) * 2006-04-26 2007-11-01 David Jones Method and system of generating customized story books
US8379830B1 (en) 2006-05-22 2013-02-19 Convergys Customer Management Delaware Llc System and method for automated customer service with contingent live interaction
US7809663B1 (en) 2006-05-22 2010-10-05 Convergys Cmg Utah, Inc. System and method for supporting the utilization of machine language
US8903843B2 (en) 2006-06-21 2014-12-02 Napo Enterprises, Llc Historical media recommendation service
US7680959B2 (en) * 2006-07-11 2010-03-16 Napo Enterprises, Llc P2P network for providing real time media recommendations
US8805831B2 (en) * 2006-07-11 2014-08-12 Napo Enterprises, Llc Scoring and replaying media items
US8059646B2 (en) 2006-07-11 2011-11-15 Napo Enterprises, Llc System and method for identifying music content in a P2P real time recommendation network
US8327266B2 (en) 2006-07-11 2012-12-04 Napo Enterprises, Llc Graphical user interface system for allowing management of a media item playlist based on a preference scoring system
US7970922B2 (en) 2006-07-11 2011-06-28 Napo Enterprises, Llc P2P real time media recommendations
US9003056B2 (en) 2006-07-11 2015-04-07 Napo Enterprises, Llc Maintaining a minimum level of real time media recommendations in the absence of online friends
US8090606B2 (en) * 2006-08-08 2012-01-03 Napo Enterprises, Llc Embedded media recommendations
US8620699B2 (en) 2006-08-08 2013-12-31 Napo Enterprises, Llc Heavy influencer media recommendations
US8874655B2 (en) * 2006-12-13 2014-10-28 Napo Enterprises, Llc Matching participants in a P2P recommendation network loosely coupled to a subscription service
US8316364B2 (en) * 2007-02-28 2012-11-20 Red Hat, Inc. Peer-to-peer software update distribution network
US9224427B2 (en) * 2007-04-02 2015-12-29 Napo Enterprises LLC Rating media item recommendations using recommendation paths and/or media item usage
US8112720B2 (en) 2007-04-05 2012-02-07 Napo Enterprises, Llc System and method for automatically and graphically associating programmatically-generated media item recommendations related to a user's socially recommended media items
US8839141B2 (en) 2007-06-01 2014-09-16 Napo Enterprises, Llc Method and system for visually indicating a replay status of media items on a media device
US20090049045A1 (en) * 2007-06-01 2009-02-19 Concert Technology Corporation Method and system for sorting media items in a playlist on a media device
US20080301187A1 (en) * 2007-06-01 2008-12-04 Concert Technology Corporation Enhanced media item playlist comprising presence information
US8285776B2 (en) * 2007-06-01 2012-10-09 Napo Enterprises, Llc System and method for processing a received media item recommendation message comprising recommender presence information
US9164993B2 (en) * 2007-06-01 2015-10-20 Napo Enterprises, Llc System and method for propagating a media item recommendation message comprising recommender presence information
US9037632B2 (en) * 2007-06-01 2015-05-19 Napo Enterprises, Llc System and method of generating a media item recommendation message with recommender presence information
US20090049030A1 (en) * 2007-08-13 2009-02-19 Concert Technology Corporation System and method for reducing the multiple listing of a media item in a playlist
US20090048992A1 (en) * 2007-08-13 2009-02-19 Concert Technology Corporation System and method for reducing the repetitive reception of a media item recommendation
US20090076834A1 (en) * 2007-09-17 2009-03-19 Moet Hennessy Systems and methods for generating personalized dynamic presentations from non-personalized presentation structures and contents
US7865522B2 (en) * 2007-11-07 2011-01-04 Napo Enterprises, Llc System and method for hyping media recommendations in a media recommendation system
US9060034B2 (en) 2007-11-09 2015-06-16 Napo Enterprises, Llc System and method of filtering recommenders in a media item recommendation system
US9224150B2 (en) * 2007-12-18 2015-12-29 Napo Enterprises, Llc Identifying highly valued recommendations of users in a media recommendation network
US9734507B2 (en) * 2007-12-20 2017-08-15 Napo Enterprise, Llc Method and system for simulating recommendations in a social network for an offline user
US8396951B2 (en) * 2007-12-20 2013-03-12 Napo Enterprises, Llc Method and system for populating a content repository for an internet radio service based on a recommendation network
US8060525B2 (en) * 2007-12-21 2011-11-15 Napo Enterprises, Llc Method and system for generating media recommendations in a distributed environment based on tagging play history information with location information
US8117193B2 (en) 2007-12-21 2012-02-14 Lemi Technology, Llc Tunersphere
US8316015B2 (en) 2007-12-21 2012-11-20 Lemi Technology, Llc Tunersphere
US8725740B2 (en) * 2008-03-24 2014-05-13 Napo Enterprises, Llc Active playlist having dynamic media item groups
US20090259621A1 (en) * 2008-04-11 2009-10-15 Concert Technology Corporation Providing expected desirability information prior to sending a recommendation
US8484311B2 (en) 2008-04-17 2013-07-09 Eloy Technology, Llc Pruning an aggregate media collection
US20100070537A1 (en) * 2008-09-17 2010-03-18 Eloy Technology, Llc System and method for managing a personalized universal catalog of media items
US8484227B2 (en) 2008-10-15 2013-07-09 Eloy Technology, Llc Caching and synching process for a media sharing system
US8880599B2 (en) * 2008-10-15 2014-11-04 Eloy Technology, Llc Collection digest for a media sharing system
WO2010083540A1 (en) * 2009-01-14 2010-07-22 Novolibri Cc Digital electronic tutoring system
US8200602B2 (en) * 2009-02-02 2012-06-12 Napo Enterprises, Llc System and method for creating thematic listening experiences in a networked peer media recommendation environment
US8997053B2 (en) * 2010-01-14 2015-03-31 Worksoft, Inc. System and method for automated testing of software applications with dynamic user interfaces spanning multiple technologies
US8812538B2 (en) * 2010-01-29 2014-08-19 Wendy Muzatko Story generation methods, story generation apparatuses, and articles of manufacture
WO2013049907A1 (en) * 2010-10-07 2013-04-11 Clevru Corporation Method, system and computer program for providing an intelligent collaborative content infrastructure
US8909667B2 (en) 2011-11-01 2014-12-09 Lemi Technology, Llc Systems, methods, and computer readable media for generating recommendations in a media recommendation system
TW201415399A (en) * 2012-06-01 2014-04-16 Archetypes Inc Systems and methods for providing personalized content browsing experience
US20150121246A1 (en) * 2013-10-25 2015-04-30 The Charles Stark Draper Laboratory, Inc. Systems and methods for detecting user engagement in context using physiological and behavioral measurement
US9928040B2 (en) * 2013-11-12 2018-03-27 Microsoft Technology Licensing, Llc Source code generation, completion, checking, correction
US10503480B2 (en) * 2014-04-30 2019-12-10 Ent. Services Development Corporation Lp Correlation based instruments discovery
US9189514B1 (en) 2014-09-04 2015-11-17 Lucas J. Myslinski Optimized fact checking method and system
US10402035B1 (en) * 2015-07-29 2019-09-03 Intuit Inc. Content-driven orchestration of multiple rendering components in user interfaces of electronic devices
US10802660B1 (en) 2015-07-29 2020-10-13 Intuit Inc. Metadata-driven binding of platform-agnostic content to platform-specific user-interface elements
US10732782B1 (en) 2015-07-29 2020-08-04 Intuit Inc. Context-aware component styling in user interfaces of electronic devices
US10203952B2 (en) 2015-11-18 2019-02-12 Sap Se Transparently splitting and rewriting data-base object bundles to database entities
US9547490B1 (en) * 2015-11-19 2017-01-17 Sap Se Sorting runtime calls of design time artifacts via data dependencies
US10417216B2 (en) 2015-11-19 2019-09-17 Sap Se Determining an intersection between keys defining multi-dimensional value ranges
WO2018117753A1 (en) 2016-12-23 2018-06-28 Samsung Electronics Co., Ltd. Electronic device and method of controlling the same

Citations (96)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4310727A (en) * 1980-02-04 1982-01-12 Bell Telephone Laboratories, Incorporated Method of processing special service telephone calls
US4922519A (en) * 1986-05-07 1990-05-01 American Telephone And Telegraph Company Automated operator assistance calls with voice processing
US4930077A (en) * 1987-04-06 1990-05-29 Fan David P Information processing expert system for text analysis and predicting public opinion based information available to the public
US5115501A (en) * 1988-11-04 1992-05-19 International Business Machines Corporation Procedure for automatically customizing the user interface of application programs
US5181259A (en) * 1990-09-25 1993-01-19 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration General method of pattern classification using the two domain theory
US5204968A (en) * 1989-03-27 1993-04-20 Xerox Corporation Automatic determination of operator training level for displaying appropriate operator prompts
US5206903A (en) * 1990-12-26 1993-04-27 At&T Bell Laboratories Automatic call distribution based on matching required skills with agents skills
US5311422A (en) * 1990-06-28 1994-05-10 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration General purpose architecture for intelligent computer-aided training
US5327529A (en) * 1990-09-24 1994-07-05 Geoworks Process of designing user's interfaces for application programs
US5388198A (en) * 1992-04-16 1995-02-07 Symantec Corporation Proactive presentation of automating features to a computer user
US5420975A (en) * 1992-12-28 1995-05-30 International Business Machines Corporation Method and system for automatic alteration of display of menu options
US5495567A (en) * 1992-11-06 1996-02-27 Ricoh Company Ltd. Automatic interface layout generator for database systems
US5500795A (en) * 1992-07-30 1996-03-19 Teknekron Infoswitch Corporation Method and system for monitoring and controlling the performance of a call processing center
US5519772A (en) * 1994-01-31 1996-05-21 Bell Communications Research, Inc. Network-based telephone system having interactive capabilities
US5530744A (en) * 1994-09-20 1996-06-25 At&T Corp. Method and system for dynamic customized call routing
US5533107A (en) * 1994-03-01 1996-07-02 Bellsouth Corporation Method for routing calls based on predetermined assignments of callers geographic locations
US5536321A (en) * 1995-10-27 1996-07-16 Specialty Coating Systems, Inc. Parylene deposition apparatus including a post-pyrolysis filtering chamber and a deposition chamber inlet filter
US5537470A (en) * 1994-04-06 1996-07-16 At&T Corp. Method and apparatus for handling in-bound telemarketing calls
US5594791A (en) * 1994-10-05 1997-01-14 Inventions, Inc. Method and apparatus for providing result-oriented customer service
US5600781A (en) * 1994-09-30 1997-02-04 Intel Corporation Method and apparatus for creating a portable personalized operating environment
US5615323A (en) * 1994-11-04 1997-03-25 Concord Communications, Inc. Displaying resource performance and utilization information
US5633909A (en) * 1994-06-17 1997-05-27 Centigram Communications Corporation Apparatus and method for generating calls and testing telephone equipment
US5706334A (en) * 1994-08-18 1998-01-06 Lucent Technologies Inc. Apparatus for providing a graphical control interface
US5710884A (en) * 1995-03-29 1998-01-20 Intel Corporation System for automatically updating personal profile server with updates to additional user information gathered from monitoring user's electronic consuming habits generated on computer during use
US5727950A (en) * 1996-05-22 1998-03-17 Netsage Corporation Agent based instruction system and method
US5729600A (en) * 1992-06-25 1998-03-17 Rockwell International Corporation Automatic call distributor with automated voice responsive call servicing system and method
US5734709A (en) * 1992-01-27 1998-03-31 Sprint Communications Co. L.P. System for customer configuration of call routing in a telecommunications network
US5740549A (en) * 1995-06-12 1998-04-14 Pointcast, Inc. Information and advertising distribution system and method
US5757644A (en) * 1996-07-25 1998-05-26 Eis International, Inc. Voice interactive call center training method using actual screens and screen logic
US5758257A (en) * 1994-11-29 1998-05-26 Herz; Frederick System and method for scheduling broadcast of and access to video programs and other data using customer profiles
US5771276A (en) * 1995-10-10 1998-06-23 Ast Research, Inc. Voice templates for interactive voice mail and voice response system
US5864844A (en) * 1993-02-18 1999-01-26 Apple Computer, Inc. System and method for enhancing a user interface with a computer based training tool
US5864605A (en) * 1996-08-22 1999-01-26 At&T Corp Voice menu optimization method and system
US5870308A (en) * 1990-04-06 1999-02-09 Lsi Logic Corporation Method and system for creating and validating low-level description of electronic design
US5872865A (en) * 1995-02-08 1999-02-16 Apple Computer, Inc. Method and system for automatic classification of video images
US5873068A (en) * 1994-06-14 1999-02-16 New North Media Inc. Display based marketing message control system and method
US5884029A (en) * 1996-11-14 1999-03-16 International Business Machines Corporation User interaction with intelligent virtual objects, avatars, which interact with other avatars controlled by different users
US5889992A (en) * 1996-03-28 1999-03-30 Unisys Corp. Method for mapping types stored in a model in an object-oriented repository to language constructs for A C binding for the repository
US5903641A (en) * 1997-01-28 1999-05-11 Lucent Technologies Inc. Automatic dynamic changing of agents' call-handling assignments
US5905774A (en) * 1996-11-19 1999-05-18 Stentor Resource Centre, Inc. Method and system of accessing and operating a voice message system
US5920477A (en) * 1991-12-23 1999-07-06 Hoffberg; Steven M. Human factored interface incorporating adaptive pattern recognition based controller apparatus
US5923745A (en) * 1997-02-28 1999-07-13 Teknekron Infoswitch Corporation Routing calls to call centers
US6014638A (en) * 1996-05-29 2000-01-11 America Online, Inc. System for customizing computer displays in accordance with user preferences
US6016336A (en) * 1997-11-18 2000-01-18 At&T Corp Interactive voice response system with call trainable routing
US6029195A (en) * 1994-11-29 2000-02-22 Herz; Frederick S. M. System for customized electronic identification of desirable objects
US6032129A (en) * 1997-09-06 2000-02-29 International Business Machines Corporation Customer centric virtual shopping experience with actors agents and persona
US6035336A (en) * 1997-10-17 2000-03-07 International Business Machines Corporation Audio ticker system and method for presenting push information including pre-recorded audio
US6035283A (en) * 1997-10-10 2000-03-07 International Business Machines Corporation Virtual sales person for electronic catalog
US6037933A (en) * 1996-11-13 2000-03-14 Samsung Electronics Co., Ltd. TV graphical user interface for providing user access to preset time periods of TV program information
US6038560A (en) * 1997-05-21 2000-03-14 Oracle Corporation Concept knowledge base search and retrieval system
US6044355A (en) * 1997-07-09 2000-03-28 Iex Corporation Skills-based scheduling for telephone call centers
US6052693A (en) * 1996-07-02 2000-04-18 Harlequin Group Plc System for assembling large databases through information extracted from text sources
US6055542A (en) * 1997-10-29 2000-04-25 International Business Machines Corporation System and method for displaying the contents of a web page based on a user's interests
US6058179A (en) * 1996-06-10 2000-05-02 Murex Securities, Ltd. One number, intelligent call processing system
US6058163A (en) * 1993-09-22 2000-05-02 Teknekron Infoswitch Corporation Method and system for monitoring call center service representatives
US6058435A (en) * 1997-02-04 2000-05-02 Siemens Information And Communications Networks, Inc. Apparatus and methods for responding to multimedia communications based on content analysis
US6067538A (en) * 1998-12-22 2000-05-23 Ac Properties B.V. System, method and article of manufacture for a simulation enabled focused feedback tutorial system
US6075575A (en) * 1995-10-02 2000-06-13 Starsight Telecast, Inc. Remote control device and method for using television schedule information
US6088429A (en) * 1998-04-07 2000-07-11 Mumps Audiofax, Inc. Interactive telephony system
US6170011B1 (en) * 1998-09-11 2001-01-02 Genesys Telecommunications Laboratories, Inc. Method and apparatus for determining and initiating interaction directionality within a multimedia communication center
US6173053B1 (en) * 1998-04-09 2001-01-09 Avaya Technology Corp. Optimizing call-center performance by using predictive data to distribute calls among agents
US6173279B1 (en) * 1998-04-09 2001-01-09 At&T Corp. Method of using a natural language interface to retrieve information from one or more data resources
US6219665B1 (en) * 1997-06-06 2001-04-17 Matsushita Electric Industrial Co., Ltd. Retrieval menu creation device, a retrieval menu creation method, and a recording medium that stores a retrieval menu creation program
US6230197B1 (en) * 1998-09-11 2001-05-08 Genesys Telecommunications Laboratories, Inc. Method and apparatus for rules-based storage and retrieval of multimedia interactions within a communication center
US6236955B1 (en) * 1998-07-31 2001-05-22 Gary J. Summers Management training simulation method and system
US6236395B1 (en) * 1999-02-01 2001-05-22 Sharp Laboratories Of America, Inc. Audiovisual information management system
US6236990B1 (en) * 1996-07-12 2001-05-22 Intraware, Inc. Method and system for ranking multiple products according to user's preferences
US6240421B1 (en) * 1998-09-08 2001-05-29 Edwin J. Stolarz System, software and apparatus for organizing, storing and retrieving information from a computer database
US6243375B1 (en) * 1996-11-08 2001-06-05 Gregory J. Speicher Internet-audiotext electronic communications system with multimedia based matching
US6249579B1 (en) * 1998-05-29 2001-06-19 Lucent Technologies Inc. Apparatus, method and system for personal telecommunication speed calling utilizing an affinity database
US6336109B2 (en) * 1997-04-15 2002-01-01 Cerebrus Solutions Limited Method and apparatus for inducing rules from data classifiers
US6338050B1 (en) * 1998-11-16 2002-01-08 Trade Access, Inc. System and method for providing and updating user supplied context for a negotiations system
US6349290B1 (en) * 1998-06-30 2002-02-19 Citibank, N.A. Automated system and method for customized and personalized presentation of products and services of a financial institution
US6353661B1 (en) * 1997-12-18 2002-03-05 Bailey, Iii John Edson Network and communication access systems
US6353825B1 (en) * 1999-07-30 2002-03-05 Verizon Laboratories Inc. Method and device for classification using iterative information retrieval techniques
US6357017B1 (en) * 1998-05-06 2002-03-12 Motive Communications, Inc. Method, system and computer program product for iterative distributed problem solving
US6366879B1 (en) * 1998-10-05 2002-04-02 International Business Machines Corp. Controlling interactive voice response system performance
US6374260B1 (en) * 1996-05-24 2002-04-16 Magnifi, Inc. Method and apparatus for uploading, indexing, analyzing, and searching media content
US20020055868A1 (en) * 2000-05-24 2002-05-09 Dusevic Angela G. System and method for providing a task-centric online environment
US6389538B1 (en) * 1998-08-13 2002-05-14 International Business Machines Corporation System for tracking end-user electronic content usage
US6389403B1 (en) * 1998-08-13 2002-05-14 International Business Machines Corporation Method and apparatus for uniquely identifying a customer purchase in an electronic distribution system
US6389400B1 (en) * 1998-08-20 2002-05-14 Sbc Technology Resources, Inc. System and methods for intelligent routing of customer requests using customer and agent models
US6400807B1 (en) * 1998-02-24 2002-06-04 International Business Machines Corporation Simulation of telephone handset
US6405170B1 (en) * 1998-09-22 2002-06-11 Speechworks International, Inc. Method and system of reviewing the behavior of an interactive speech recognition application
US6405159B2 (en) * 1998-06-03 2002-06-11 Sbc Technology Resources, Inc. Method for categorizing, describing and modeling types of system users
US6405149B1 (en) * 1999-06-23 2002-06-11 Louis K. Tsai System and method for testing a telecommunication system
US20020074727A1 (en) * 2000-07-28 2002-06-20 Tracy Glaser Child-based storytelling environment
US20020075320A1 (en) * 2000-12-14 2002-06-20 Philips Electronics North America Corp. Method and apparatus for generating recommendations based on consistency of selection
US6411687B1 (en) * 1997-11-11 2002-06-25 Mitel Knowledge Corporation Call routing based on the caller's mood
US20030020744A1 (en) * 1998-08-21 2003-01-30 Michael D. Ellis Client-server electronic program guide
US6516051B2 (en) * 2000-06-01 2003-02-04 International Business Machines Corporation Testing voice message applications
US20030026409A1 (en) * 2001-07-31 2003-02-06 Sbc Technology Resources, Inc. Telephone call processing in an interactive voice response call management system
US6522347B1 (en) * 2000-01-18 2003-02-18 Seiko Epson Corporation Display apparatus, portable information processing apparatus, information recording medium, and electronic apparatus
US6564197B2 (en) * 1999-05-03 2003-05-13 E.Piphany, Inc. Method and apparatus for scalable probabilistic clustering using decision trees
US20040006473A1 (en) * 2002-07-02 2004-01-08 Sbc Technology Resources, Inc. Method and system for automated categorization of statements
US6851090B1 (en) * 2000-10-30 2005-02-01 Koninklijke Philips Electronics N.V. Method and apparatus for displaying program recommendations with indication of strength of contribution of significant attributes

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6166732A (en) * 1998-02-24 2000-12-26 Microsoft Corporation Distributed object oriented multi-user domain with multimedia presentations
US6448980B1 (en) * 1998-10-09 2002-09-10 International Business Machines Corporation Personalizing rich media presentations based on user response to the presentation

Patent Citations (99)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4310727A (en) * 1980-02-04 1982-01-12 Bell Telephone Laboratories, Incorporated Method of processing special service telephone calls
US4922519A (en) * 1986-05-07 1990-05-01 American Telephone And Telegraph Company Automated operator assistance calls with voice processing
US4930077A (en) * 1987-04-06 1990-05-29 Fan David P Information processing expert system for text analysis and predicting public opinion based information available to the public
US5115501A (en) * 1988-11-04 1992-05-19 International Business Machines Corporation Procedure for automatically customizing the user interface of application programs
US5204968A (en) * 1989-03-27 1993-04-20 Xerox Corporation Automatic determination of operator training level for displaying appropriate operator prompts
US5870308A (en) * 1990-04-06 1999-02-09 Lsi Logic Corporation Method and system for creating and validating low-level description of electronic design
US5311422A (en) * 1990-06-28 1994-05-10 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration General purpose architecture for intelligent computer-aided training
US5327529A (en) * 1990-09-24 1994-07-05 Geoworks Process of designing user's interfaces for application programs
US5181259A (en) * 1990-09-25 1993-01-19 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration General method of pattern classification using the two domain theory
US5206903A (en) * 1990-12-26 1993-04-27 At&T Bell Laboratories Automatic call distribution based on matching required skills with agents skills
US5920477A (en) * 1991-12-23 1999-07-06 Hoffberg; Steven M. Human factored interface incorporating adaptive pattern recognition based controller apparatus
US5734709A (en) * 1992-01-27 1998-03-31 Sprint Communications Co. L.P. System for customer configuration of call routing in a telecommunications network
US5388198A (en) * 1992-04-16 1995-02-07 Symantec Corporation Proactive presentation of automating features to a computer user
US5729600A (en) * 1992-06-25 1998-03-17 Rockwell International Corporation Automatic call distributor with automated voice responsive call servicing system and method
US5500795A (en) * 1992-07-30 1996-03-19 Teknekron Infoswitch Corporation Method and system for monitoring and controlling the performance of a call processing center
US5495567A (en) * 1992-11-06 1996-02-27 Ricoh Company Ltd. Automatic interface layout generator for database systems
US5420975A (en) * 1992-12-28 1995-05-30 International Business Machines Corporation Method and system for automatic alteration of display of menu options
US5864844A (en) * 1993-02-18 1999-01-26 Apple Computer, Inc. System and method for enhancing a user interface with a computer based training tool
US6058163A (en) * 1993-09-22 2000-05-02 Teknekron Infoswitch Corporation Method and system for monitoring call center service representatives
US5519772A (en) * 1994-01-31 1996-05-21 Bell Communications Research, Inc. Network-based telephone system having interactive capabilities
US5533107A (en) * 1994-03-01 1996-07-02 Bellsouth Corporation Method for routing calls based on predetermined assignments of callers geographic locations
US5537470A (en) * 1994-04-06 1996-07-16 At&T Corp. Method and apparatus for handling in-bound telemarketing calls
US5873068A (en) * 1994-06-14 1999-02-16 New North Media Inc. Display based marketing message control system and method
US5633909A (en) * 1994-06-17 1997-05-27 Centigram Communications Corporation Apparatus and method for generating calls and testing telephone equipment
US5706334A (en) * 1994-08-18 1998-01-06 Lucent Technologies Inc. Apparatus for providing a graphical control interface
US5530744A (en) * 1994-09-20 1996-06-25 At&T Corp. Method and system for dynamic customized call routing
US5600781A (en) * 1994-09-30 1997-02-04 Intel Corporation Method and apparatus for creating a portable personalized operating environment
US5594791A (en) * 1994-10-05 1997-01-14 Inventions, Inc. Method and apparatus for providing result-oriented customer service
US5615323A (en) * 1994-11-04 1997-03-25 Concord Communications, Inc. Displaying resource performance and utilization information
US5758257A (en) * 1994-11-29 1998-05-26 Herz; Frederick System and method for scheduling broadcast of and access to video programs and other data using customer profiles
US6029195A (en) * 1994-11-29 2000-02-22 Herz; Frederick S. M. System for customized electronic identification of desirable objects
US5872865A (en) * 1995-02-08 1999-02-16 Apple Computer, Inc. Method and system for automatic classification of video images
US5710884A (en) * 1995-03-29 1998-01-20 Intel Corporation System for automatically updating personal profile server with updates to additional user information gathered from monitoring user's electronic consuming habits generated on computer during use
US5740549A (en) * 1995-06-12 1998-04-14 Pointcast, Inc. Information and advertising distribution system and method
US6075575A (en) * 1995-10-02 2000-06-13 Starsight Telecast, Inc. Remote control device and method for using television schedule information
US5771276A (en) * 1995-10-10 1998-06-23 Ast Research, Inc. Voice templates for interactive voice mail and voice response system
US5536321A (en) * 1995-10-27 1996-07-16 Specialty Coating Systems, Inc. Parylene deposition apparatus including a post-pyrolysis filtering chamber and a deposition chamber inlet filter
US5889992A (en) * 1996-03-28 1999-03-30 Unisys Corp. Method for mapping types stored in a model in an object-oriented repository to language constructs for A C binding for the repository
US6201948B1 (en) * 1996-05-22 2001-03-13 Netsage Corporation Agent based instruction system and method
US5727950A (en) * 1996-05-22 1998-03-17 Netsage Corporation Agent based instruction system and method
US6374260B1 (en) * 1996-05-24 2002-04-16 Magnifi, Inc. Method and apparatus for uploading, indexing, analyzing, and searching media content
US6014638A (en) * 1996-05-29 2000-01-11 America Online, Inc. System for customizing computer displays in accordance with user preferences
US6058179A (en) * 1996-06-10 2000-05-02 Murex Securities, Ltd. One number, intelligent call processing system
US6052693A (en) * 1996-07-02 2000-04-18 Harlequin Group Plc System for assembling large databases through information extracted from text sources
US6236990B1 (en) * 1996-07-12 2001-05-22 Intraware, Inc. Method and system for ranking multiple products according to user's preferences
US5757644A (en) * 1996-07-25 1998-05-26 Eis International, Inc. Voice interactive call center training method using actual screens and screen logic
US5864605A (en) * 1996-08-22 1999-01-26 At&T Corp Voice menu optimization method and system
US6243375B1 (en) * 1996-11-08 2001-06-05 Gregory J. Speicher Internet-audiotext electronic communications system with multimedia based matching
US6037933A (en) * 1996-11-13 2000-03-14 Samsung Electronics Co., Ltd. TV graphical user interface for providing user access to preset time periods of TV program information
US5884029A (en) * 1996-11-14 1999-03-16 International Business Machines Corporation User interaction with intelligent virtual objects, avatars, which interact with other avatars controlled by different users
US5905774A (en) * 1996-11-19 1999-05-18 Stentor Resource Centre, Inc. Method and system of accessing and operating a voice message system
US5903641A (en) * 1997-01-28 1999-05-11 Lucent Technologies Inc. Automatic dynamic changing of agents' call-handling assignments
US6058435A (en) * 1997-02-04 2000-05-02 Siemens Information And Communications Networks, Inc. Apparatus and methods for responding to multimedia communications based on content analysis
US5923745A (en) * 1997-02-28 1999-07-13 Teknekron Infoswitch Corporation Routing calls to call centers
US6336109B2 (en) * 1997-04-15 2002-01-01 Cerebrus Solutions Limited Method and apparatus for inducing rules from data classifiers
US6038560A (en) * 1997-05-21 2000-03-14 Oracle Corporation Concept knowledge base search and retrieval system
US6219665B1 (en) * 1997-06-06 2001-04-17 Matsushita Electric Industrial Co., Ltd. Retrieval menu creation device, a retrieval menu creation method, and a recording medium that stores a retrieval menu creation program
US6044355A (en) * 1997-07-09 2000-03-28 Iex Corporation Skills-based scheduling for telephone call centers
US6032129A (en) * 1997-09-06 2000-02-29 International Business Machines Corporation Customer centric virtual shopping experience with actors agents and persona
US6035283A (en) * 1997-10-10 2000-03-07 International Business Machines Corporation Virtual sales person for electronic catalog
US6035336A (en) * 1997-10-17 2000-03-07 International Business Machines Corporation Audio ticker system and method for presenting push information including pre-recorded audio
US6055542A (en) * 1997-10-29 2000-04-25 International Business Machines Corporation System and method for displaying the contents of a web page based on a user's interests
US6411687B1 (en) * 1997-11-11 2002-06-25 Mitel Knowledge Corporation Call routing based on the caller's mood
US6016336A (en) * 1997-11-18 2000-01-18 At&T Corp Interactive voice response system with call trainable routing
US6353661B1 (en) * 1997-12-18 2002-03-05 Bailey, Iii John Edson Network and communication access systems
US6400807B1 (en) * 1998-02-24 2002-06-04 International Business Machines Corporation Simulation of telephone handset
US6088429A (en) * 1998-04-07 2000-07-11 Mumps Audiofax, Inc. Interactive telephony system
US6173279B1 (en) * 1998-04-09 2001-01-09 At&T Corp. Method of using a natural language interface to retrieve information from one or more data resources
US6173053B1 (en) * 1998-04-09 2001-01-09 Avaya Technology Corp. Optimizing call-center performance by using predictive data to distribute calls among agents
US6357017B1 (en) * 1998-05-06 2002-03-12 Motive Communications, Inc. Method, system and computer program product for iterative distributed problem solving
US6249579B1 (en) * 1998-05-29 2001-06-19 Lucent Technologies Inc. Apparatus, method and system for personal telecommunication speed calling utilizing an affinity database
US6405159B2 (en) * 1998-06-03 2002-06-11 Sbc Technology Resources, Inc. Method for categorizing, describing and modeling types of system users
US6349290B1 (en) * 1998-06-30 2002-02-19 Citibank, N.A. Automated system and method for customized and personalized presentation of products and services of a financial institution
US6236955B1 (en) * 1998-07-31 2001-05-22 Gary J. Summers Management training simulation method and system
US6389403B1 (en) * 1998-08-13 2002-05-14 International Business Machines Corporation Method and apparatus for uniquely identifying a customer purchase in an electronic distribution system
US6389538B1 (en) * 1998-08-13 2002-05-14 International Business Machines Corporation System for tracking end-user electronic content usage
US6389400B1 (en) * 1998-08-20 2002-05-14 Sbc Technology Resources, Inc. System and methods for intelligent routing of customer requests using customer and agent models
US20030020744A1 (en) * 1998-08-21 2003-01-30 Michael D. Ellis Client-server electronic program guide
US6240421B1 (en) * 1998-09-08 2001-05-29 Edwin J. Stolarz System, software and apparatus for organizing, storing and retrieving information from a computer database
US6230197B1 (en) * 1998-09-11 2001-05-08 Genesys Telecommunications Laboratories, Inc. Method and apparatus for rules-based storage and retrieval of multimedia interactions within a communication center
US6170011B1 (en) * 1998-09-11 2001-01-02 Genesys Telecommunications Laboratories, Inc. Method and apparatus for determining and initiating interaction directionality within a multimedia communication center
US6405170B1 (en) * 1998-09-22 2002-06-11 Speechworks International, Inc. Method and system of reviewing the behavior of an interactive speech recognition application
US6366879B1 (en) * 1998-10-05 2002-04-02 International Business Machines Corp. Controlling interactive voice response system performance
US6338050B1 (en) * 1998-11-16 2002-01-08 Trade Access, Inc. System and method for providing and updating user supplied context for a negotiations system
US6067538A (en) * 1998-12-22 2000-05-23 Ac Properties B.V. System, method and article of manufacture for a simulation enabled focused feedback tutorial system
US6236395B1 (en) * 1999-02-01 2001-05-22 Sharp Laboratories Of America, Inc. Audiovisual information management system
US6564197B2 (en) * 1999-05-03 2003-05-13 E.Piphany, Inc. Method and apparatus for scalable probabilistic clustering using decision trees
US6405149B1 (en) * 1999-06-23 2002-06-11 Louis K. Tsai System and method for testing a telecommunication system
US6353825B1 (en) * 1999-07-30 2002-03-05 Verizon Laboratories Inc. Method and device for classification using iterative information retrieval techniques
US6522347B1 (en) * 2000-01-18 2003-02-18 Seiko Epson Corporation Display apparatus, portable information processing apparatus, information recording medium, and electronic apparatus
US20020055868A1 (en) * 2000-05-24 2002-05-09 Dusevic Angela G. System and method for providing a task-centric online environment
US6516051B2 (en) * 2000-06-01 2003-02-04 International Business Machines Corporation Testing voice message applications
US20020074727A1 (en) * 2000-07-28 2002-06-20 Tracy Glaser Child-based storytelling environment
US6851090B1 (en) * 2000-10-30 2005-02-01 Koninklijke Philips Electronics N.V. Method and apparatus for displaying program recommendations with indication of strength of contribution of significant attributes
US20020075320A1 (en) * 2000-12-14 2002-06-20 Philips Electronics North America Corp. Method and apparatus for generating recommendations based on consistency of selection
US20030026409A1 (en) * 2001-07-31 2003-02-06 Sbc Technology Resources, Inc. Telephone call processing in an interactive voice response call management system
US20040032935A1 (en) * 2002-07-02 2004-02-19 Sbc Properties, L.P. System and method for the automated analysis of performance data
US20040042592A1 (en) * 2002-07-02 2004-03-04 Sbc Properties, L.P. Method, system and apparatus for providing an adaptive persona in speech-based interactive voice response systems
US20040006473A1 (en) * 2002-07-02 2004-01-08 Sbc Technology Resources, Inc. Method and system for automated categorization of statements

Cited By (183)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020035501A1 (en) * 1998-11-12 2002-03-21 Sean Handel A personalized product report
US8121891B2 (en) * 1998-11-12 2012-02-21 Accenture Global Services Gmbh Personalized product report
US8249924B1 (en) * 2000-01-07 2012-08-21 Home Producers Network, Llc Method and system for compiling a consumer-based electronic database, searchable according to individual internet user-defined micro-demographics
US9336529B1 (en) * 2000-01-07 2016-05-10 Home Producers Network, Llc Method and system for eliciting consumer data by programming content within various media venues to function cooperatively
US9009063B1 (en) * 2000-01-07 2015-04-14 Home Producers Network, Llc Method and system for compiling a consumer-based electronic database, searchable according to individual internet user-defined micro-demographics
US20170109784A1 (en) * 2000-01-07 2017-04-20 Home Producers Network, Llc. System and method for trait based people search based on genetic information
US8990102B1 (en) * 2000-01-07 2015-03-24 Home Producers Network, Llc Method and system for compiling a consumer-based electronic database, searchable according to individual internet user-defined micro-demographics
US8447648B1 (en) * 2000-01-07 2013-05-21 Home Producers Network, Llc Method and system for eliciting consumer data by programming content within various media venues to function cooperatively
US9412112B1 (en) * 2000-01-07 2016-08-09 Home Producers Network, Llc Interactive message display platform system and method
US8214254B1 (en) * 2000-01-07 2012-07-03 Home Producers Network, Llc Method and system for compiling a consumer-based electronic database, searchable according to individual internet user-defined micro-demographics (II)
US8219446B1 (en) * 2000-01-07 2012-07-10 Home Producers Network, Llc Method and system for compiling a consumer-based electronic database, searchable according to individual internet user-defined micro-demographics
US20040205473A1 (en) * 2000-01-27 2004-10-14 Gwyn Fisher Method and system for implementing an enterprise information portal
US20020194226A1 (en) * 2001-06-15 2002-12-19 Dinesh Sheth Internet information aggregation system using programmatic data extraction
US20030121058A1 (en) * 2001-12-24 2003-06-26 Nevenka Dimitrova Personal adaptive memory system
US20030216929A1 (en) * 2002-05-16 2003-11-20 International Business Machines Corporation Method, system and program product for presenting web content according to a determined learning style
US9235868B2 (en) 2002-07-13 2016-01-12 Cricket Media, Inc. Method and system for interactive, multi-user electronic data transmission in a multi-level monitored and filtered system
US20080319949A1 (en) * 2002-07-13 2008-12-25 Epals, Inc. Method and system for interactive, multi-user electronic data transmission in a multi-level monitored and filtered system
US8838622B2 (en) 2002-07-13 2014-09-16 Cricket Media, Inc. Method and system for monitoring and filtering data transmission
US20040111423A1 (en) * 2002-07-13 2004-06-10 John Irving Method and system for secure, community profile generation and access via a communication system
US20040103122A1 (en) * 2002-07-13 2004-05-27 John Irving Method and system for filtered web browsing in a multi-level monitored and filtered system
US20040103118A1 (en) * 2002-07-13 2004-05-27 John Irving Method and system for multi-level monitoring and filtering of electronic transmissions
US20040103137A1 (en) * 2002-07-13 2004-05-27 John Irving Method and system for monitoring and filtering data transmission
US20040181543A1 (en) * 2002-12-23 2004-09-16 Canon Kabushiki Kaisha Method of using recommendations to visually create new views of data across heterogeneous sources
US7644361B2 (en) * 2002-12-23 2010-01-05 Canon Kabushiki Kaisha Method of using recommendations to visually create new views of data across heterogeneous sources
US7693846B2 (en) * 2003-06-13 2010-04-06 Sony Corporation Data management system and method for data synchronization
US20040254946A1 (en) * 2003-06-13 2004-12-16 Masayuki Yachi Data management system
US8751232B2 (en) 2004-08-12 2014-06-10 At&T Intellectual Property I, L.P. System and method for targeted tuning of a speech recognition system
US9368111B2 (en) 2004-08-12 2016-06-14 Interactions Llc System and method for targeted tuning of a speech recognition system
US20060117067A1 (en) * 2004-11-30 2006-06-01 Oculus Info Inc. System and method for interactive visual representation of information content and relationships using layout and gestures
US8296666B2 (en) * 2004-11-30 2012-10-23 Oculus Info. Inc. System and method for interactive visual representation of information content and relationships using layout and gestures
US9350862B2 (en) 2004-12-06 2016-05-24 Interactions Llc System and method for processing speech
US20070244697A1 (en) * 2004-12-06 2007-10-18 Sbc Knowledge Ventures, Lp System and method for processing speech
US8306192B2 (en) 2004-12-06 2012-11-06 At&T Intellectual Property I, L.P. System and method for processing speech
US7720203B2 (en) * 2004-12-06 2010-05-18 At&T Intellectual Property I, L.P. System and method for processing speech
US9112972B2 (en) 2004-12-06 2015-08-18 Interactions Llc System and method for processing speech
US20060167835A1 (en) * 2005-01-07 2006-07-27 International Business Machines Corporation Optimization-based media allocation
US9088652B2 (en) 2005-01-10 2015-07-21 At&T Intellectual Property I, L.P. System and method for speech-enabled call routing
US8824659B2 (en) 2005-01-10 2014-09-02 At&T Intellectual Property I, L.P. System and method for speech-enabled call routing
US8682913B1 (en) 2005-03-31 2014-03-25 Google Inc. Corroborating facts extracted from multiple sources
US8650175B2 (en) 2005-03-31 2014-02-11 Google Inc. User interface for facts query engine with snippets from information sources that include query terms and answer terms
US8448060B2 (en) * 2005-03-31 2013-05-21 International Business Machines Corporation Method, system and software tool for processing an electronic form
US9208229B2 (en) 2005-03-31 2015-12-08 Google Inc. Anchor text summarization for corroboration
US20060224948A1 (en) * 2005-03-31 2006-10-05 International Business Machines Corporation Method, system and software tool for processing an electronic form
US20060253572A1 (en) * 2005-04-13 2006-11-09 Osmani Gomez Method and system for management of an electronic mentoring program
US7831545B1 (en) * 2005-05-31 2010-11-09 Google Inc. Identifying the unifying subject of a set of facts
US8996470B1 (en) 2005-05-31 2015-03-31 Google Inc. System for ensuring the internal consistency of a fact repository
US8825471B2 (en) 2005-05-31 2014-09-02 Google Inc. Unsupervised extraction of facts
US9558186B2 (en) 2005-05-31 2017-01-31 Google Inc. Unsupervised extraction of facts
US8078573B2 (en) * 2005-05-31 2011-12-13 Google Inc. Identifying the unifying subject of a set of facts
US7567976B1 (en) * 2005-05-31 2009-07-28 Google Inc. Merging objects in a facts database
US8719260B2 (en) 2005-05-31 2014-05-06 Google Inc. Identifying the unifying subject of a set of facts
US8619966B2 (en) 2005-06-03 2013-12-31 At&T Intellectual Property I, L.P. Call routing system and method of using the same
US8280030B2 (en) 2005-06-03 2012-10-02 At&T Intellectual Property I, Lp Call routing system and method of using the same
WO2007038791A3 (en) * 2005-09-29 2008-01-10 Unilever Nv Adaptive user profiling on mobile devices
US20070073799A1 (en) * 2005-09-29 2007-03-29 Conopco, Inc., D/B/A Unilever Adaptive user profiling on mobile devices
WO2007038791A2 (en) * 2005-09-29 2007-04-05 Unilever N.V. Adaptive user profiling on mobile devices
US20070132767A1 (en) * 2005-11-30 2007-06-14 William Wright System and method for generating stories in time and space and for analysis of story patterns in an integrated visual representation on a user interface
US9092495B2 (en) 2006-01-27 2015-07-28 Google Inc. Automatic object reference identification and linking in a browseable fact repository
US7991797B2 (en) 2006-02-17 2011-08-02 Google Inc. ID persistence through normalization
US9710549B2 (en) 2006-02-17 2017-07-18 Google Inc. Entity normalization via name normalization
US8682891B2 (en) 2006-02-17 2014-03-25 Google Inc. Automatic object reference identification and linking in a browseable fact repository
US8260785B2 (en) 2006-02-17 2012-09-04 Google Inc. Automatic object reference identification and linking in a browseable fact repository
US20070198597A1 (en) * 2006-02-17 2007-08-23 Betz Jonathan T Attribute entropy as a signal in object normalization
US8244689B2 (en) 2006-02-17 2012-08-14 Google Inc. Attribute entropy as a signal in object normalization
US20070198600A1 (en) * 2006-02-17 2007-08-23 Betz Jonathan T Entity normalization via name normalization
US10223406B2 (en) 2006-02-17 2019-03-05 Google Llc Entity normalization via name normalization
US8700568B2 (en) 2006-02-17 2014-04-15 Google Inc. Entity normalization via name normalization
US8689134B2 (en) 2006-02-24 2014-04-01 Dana W. Paxson Apparatus and method for display navigation
US20110035651A1 (en) * 2006-02-24 2011-02-10 Paxson Dana W Apparatus and method for creating literary macrames
US20110029858A1 (en) * 2006-03-16 2011-02-03 Hauser Eduardo A Method and system for creating customized news digests
US20070282950A1 (en) * 2006-05-31 2007-12-06 Red. Hat, Inc. Activity history management for open overlay for social networks and online services
US8688742B2 (en) 2006-05-31 2014-04-01 Red Hat, Inc. Open overlay for social networks and online services
US8185584B2 (en) 2006-05-31 2012-05-22 Red Hat, Inc. Activity history management for open overlay for social networks and online services
US20070282949A1 (en) * 2006-05-31 2007-12-06 Red. Hat, Inc. Shared playlist management for open overlay for social networks and online services
US8615550B2 (en) 2006-05-31 2013-12-24 Red Hat, Inc. Client-side data scraping for open overlay for social networks and online services
US8612483B2 (en) 2006-05-31 2013-12-17 Red Hat, Inc. Link swarming in an open overlay for social networks and online services
US20070282980A1 (en) * 2006-05-31 2007-12-06 Red. Hat, Inc. Client-side data scraping for open overlay for social networks and online services
US9165282B2 (en) 2006-05-31 2015-10-20 Red Hat, Inc. Shared playlist management for open overlay for social networks and online services
US8626837B2 (en) 2006-05-31 2014-01-07 Red Hat, Inc. Identity management for open overlay for social networks and online services
US9565222B2 (en) 2006-05-31 2017-02-07 Red Hat, Inc. Granting access in view of identifier in network
US20070282887A1 (en) * 2006-05-31 2007-12-06 Red. Hat, Inc. Link swarming in an open overlay for social networks and online services
US8010897B2 (en) 2006-07-25 2011-08-30 Paxson Dana W Method and apparatus for presenting electronic literary macramés on handheld computer systems
US20080037879A1 (en) * 2006-07-25 2008-02-14 Paxson Dana W Method and apparatus for electronic literary macrame component referencing
US20080028297A1 (en) * 2006-07-25 2008-01-31 Paxson Dana W Method and apparatus for presenting electronic literary macrames on handheld computer systems
US8091017B2 (en) * 2006-07-25 2012-01-03 Paxson Dana W Method and apparatus for electronic literary macramé component referencing
US20080301578A1 (en) * 2006-09-25 2008-12-04 Peter Jonathan Olson Methods, Systems, and Computer Program Products for Navigating a Sequence of Illustrative Scenes within a Digital Production
US9760570B2 (en) 2006-10-20 2017-09-12 Google Inc. Finding and disambiguating references to entities on web pages
US8122026B1 (en) 2006-10-20 2012-02-21 Google Inc. Finding and disambiguating references to entities on web pages
US8751498B2 (en) 2006-10-20 2014-06-10 Google Inc. Finding and disambiguating references to entities on web pages
US20080098064A1 (en) * 2006-10-23 2008-04-24 Sherinian Konrad V Systems, methods, and apparatus for transmitting virtual world content from a server system to a client
US9630104B2 (en) * 2006-10-23 2017-04-25 Konrad V. Sherinian Systems, methods, and apparatus for transmitting virtual world content from a server system to a client
US20140129434A1 (en) * 2006-10-23 2014-05-08 Konrad V. Sherinian Systems, methods, and apparatus for transmitting virtual world content from a server system to a client computer over a data network
US20090070490A1 (en) * 2006-11-08 2009-03-12 Dozier Linda T Dynamic Characterization of Nodes in a Semantic Network for Desired Functions Such As Search, Discovery, Matching, Content Delivery, and synchronization of Activity and Information
US20140356839A1 (en) * 2006-11-08 2014-12-04 Epals, Inc. Method and system for developing process, project or problem-based learning systems within a semantic collaborative social network
US10999383B2 (en) 2006-11-08 2021-05-04 Cricket Media, Inc. System for synchronizing nodes on a network
US10636315B1 (en) * 2006-11-08 2020-04-28 Cricket Media, Inc. Method and system for developing process, project or problem-based learning systems within a semantic collaborative social network
US10547698B2 (en) 2006-11-08 2020-01-28 Cricket Media, Inc. Dynamic characterization of nodes in a semantic network for desired functions such as search, discovery, matching, content delivery, and synchronization of activity and information
US9928753B2 (en) 2006-11-08 2018-03-27 Cricket Media, Inc. Dynamic characterization of nodes in a semantic network for desired functions such as search, discovery, matching, content delivery, and synchronization of activity and information
US9620028B2 (en) * 2006-11-08 2017-04-11 Cricket Media, Inc. Method and system for developing process, project or problem-based learning systems within a semantic collaborative social network
US20080176194A1 (en) * 2006-11-08 2008-07-24 Nina Zolt System for developing literacy skills using loosely coupled tools in a self-directed learning process within a collaborative social network
US20080134054A1 (en) * 2006-11-30 2008-06-05 Bryan Clark Method and system for community tagging of a multimedia stream and linking to related content
US20080133638A1 (en) * 2006-11-30 2008-06-05 Donald Fischer Automated identification of high/low value content based on social feedback
US8176191B2 (en) 2006-11-30 2012-05-08 Red Hat, Inc. Automated identification of high/low value content based on social feedback
US20080133475A1 (en) * 2006-11-30 2008-06-05 Donald Fischer Identification of interesting content based on observation of passive user interaction
US20080134053A1 (en) * 2006-11-30 2008-06-05 Donald Fischer Automatic generation of content recommendations weighted by social network context
US20080133593A1 (en) * 2006-11-30 2008-06-05 Bryan Clark Automatic playlist generation in correlation with local events
US20080133649A1 (en) * 2006-11-30 2008-06-05 Red Hat, Inc. Automated screen saver with shared media
US20080133658A1 (en) * 2006-11-30 2008-06-05 Havoc Pennington Auto-shared photo album
US8812582B2 (en) 2006-11-30 2014-08-19 Red Hat, Inc. Automated screen saver with shared media
US9553938B2 (en) 2006-11-30 2017-01-24 Red Hat, Inc. Evaluation of content based on user activities
US20080133737A1 (en) * 2006-11-30 2008-06-05 Donald Fischer Automatic playlist generation of content gathered from multiple sources
US8091032B2 (en) 2006-11-30 2012-01-03 Red Hat, Inc. Automatic generation of content recommendations weighted by social network context
US8832277B2 (en) 2006-11-30 2014-09-09 Red Hat, Inc. Community tagging of a multimedia stream and linking to related content
US8060827B2 (en) * 2006-11-30 2011-11-15 Red Hat, Inc. Method and system for preloading suggested content onto digital video recorder based on social recommendations
US9405827B2 (en) 2006-11-30 2016-08-02 Red Hat, Inc. Playlist generation of content gathered from multiple sources
US20080134039A1 (en) * 2006-11-30 2008-06-05 Donald Fischer Method and system for preloading suggested content onto digital video recorder based on social recommendations
US8943210B2 (en) 2006-11-30 2015-01-27 Red Hat, Inc. Mastering music played among a plurality of users
US20080133763A1 (en) * 2006-11-30 2008-06-05 Bryan Clark Method and system for mastering music played among a plurality of users
US8463893B2 (en) 2006-11-30 2013-06-11 Red Hat, Inc. Automatic playlist generation in correlation with local events
US9021045B2 (en) 2006-11-30 2015-04-28 Red Hat, Inc. Sharing images in a social network
US20080215967A1 (en) * 2007-02-23 2008-09-04 Tabblo, Inc. Method and system for online transformation using an image URL application programming interface (API)
US20080215985A1 (en) * 2007-02-23 2008-09-04 Tabblo, Inc. Method for initial layout of story elements in a user-generated online story
US20110179344A1 (en) * 2007-02-26 2011-07-21 Paxson Dana W Knowledge transfer tool: an apparatus and method for knowledge transfer
US9892132B2 (en) 2007-03-14 2018-02-13 Google Llc Determining geographic locations for place names in a fact repository
US8347202B1 (en) 2007-03-14 2013-01-01 Google Inc. Determining geographic locations for place names in a fact repository
US8239350B1 (en) 2007-05-08 2012-08-07 Google Inc. Date ambiguity resolution
US8150939B1 (en) * 2007-05-11 2012-04-03 Oracle America, Inc. Method and system for wrapping and componentizing javascript centric widgets using java components
US7966291B1 (en) 2007-06-26 2011-06-21 Google Inc. Fact-based object merging
US7970766B1 (en) 2007-07-23 2011-06-28 Google Inc. Entity type assignment
US8738643B1 (en) 2007-08-02 2014-05-27 Google Inc. Learning synonymous object names from anchor texts
US8812435B1 (en) 2007-11-16 2014-08-19 Google Inc. Learning objects and facts from documents
US20090305218A1 (en) * 2008-05-08 2009-12-10 Dozier Linda T Object-Based System and Language for Dynamic Data or Network Interaction Including Learning Management
US8798519B2 (en) 2008-05-08 2014-08-05 Epals, Inc. Object-based system and language for dynamic data or network interaction including learning management
US11763200B2 (en) 2008-07-25 2023-09-19 Liveperson, Inc. Method and system for creating a predictive model for targeting web-page to a surfer
US11386106B2 (en) 2008-08-04 2022-07-12 Liveperson, Inc. System and methods for searching and communication
US20100082746A1 (en) * 2008-09-30 2010-04-01 Ulrich Sean M System and method for web site driven collaborative web browsing
US11562380B2 (en) 2008-10-29 2023-01-24 Liveperson, Inc. System and method for applying tracing tools for network locations
US20100318642A1 (en) * 2009-03-05 2010-12-16 Linda Dozier System and method for managing and monitoring electronic communications
US11595788B2 (en) 2009-10-13 2023-02-28 Cricket Media Services, Inc. Dynamic collaboration in social networking environment
US20110119598A1 (en) * 2009-10-13 2011-05-19 Shawn Traylor Dynamic collaboration in social networking environment
GB2481984A (en) * 2010-07-13 2012-01-18 Laurence Millar Digital Media File that replays differently each time
US9129260B2 (en) * 2010-10-04 2015-09-08 Donald Kent Neary Methods and apparatus for submitting and reviewing auditions
US20120084398A1 (en) * 2010-10-04 2012-04-05 Donald Kent Neary Methods and apparatus for submitting and reviewing auditions
US8938443B2 (en) * 2010-10-19 2015-01-20 International Business Machines Corporation Runtime optimization of spatiotemporal events processing
US20120095986A1 (en) * 2010-10-19 2012-04-19 Opher Etzion Runtime optimization of spatiotemporal events processing background
US20120129143A1 (en) * 2010-11-19 2012-05-24 Disney Enterprises, Inc. System and method for generating a plot of a digital print
US11777877B2 (en) 2010-12-14 2023-10-03 Liveperson, Inc. Authentication of service requests initiated from a social networking site
US10318116B2 (en) * 2010-12-16 2019-06-11 International Business Machines Corporation Dynamic presentations management
US20170052663A1 (en) * 2010-12-16 2017-02-23 International Business Machines Corporation Dynamic presentations management
US8719031B2 (en) 2011-06-17 2014-05-06 At&T Intellectual Property I, L.P. Dynamic access to external media content based on speaker content
US10031651B2 (en) 2011-06-17 2018-07-24 At&T Intellectual Property I, L.P. Dynamic access to external media content based on speaker content
US9124660B2 (en) 2011-06-17 2015-09-01 At&T Intellectual Property I, L.P. Dynamic access to external media content based on speaker content
US20130073568A1 (en) * 2011-09-21 2013-03-21 Vladimir Federov Ranking structured objects and actions on a social networking system
US20140100927A1 (en) * 2011-12-12 2014-04-10 International Business Machines Corporation Customizing a Presentation Based on Preferences of an Audience
US9600152B2 (en) 2011-12-12 2017-03-21 International Business Machines Corporation Providing feedback for screen sharing
US9852432B2 (en) 2011-12-12 2017-12-26 International Business Machines Corporation Customizing a presentation based on preferences of an audience
US9588652B2 (en) 2011-12-12 2017-03-07 International Business Machines Corporation Providing feedback for screen sharing
US9582808B2 (en) * 2011-12-12 2017-02-28 International Business Machines Corporation Customizing a presentation based on preferences of an audience
US20130212598A1 (en) * 2012-02-14 2013-08-15 Microsoft Corporation Dependency informer
US11711329B2 (en) 2012-03-06 2023-07-25 Liveperson, Inc. Occasionally-connected computing interface
US11689519B2 (en) 2012-04-18 2023-06-27 Liveperson, Inc. Authentication of service requests using a communications initiation feature
US11323428B2 (en) 2012-04-18 2022-05-03 Liveperson, Inc. Authentication of service requests using a communications initiation feature
US11269498B2 (en) 2012-04-26 2022-03-08 Liveperson, Inc. Dynamic user interface customization
US11868591B2 (en) 2012-04-26 2024-01-09 Liveperson, Inc. Dynamic user interface customization
US11687981B2 (en) 2012-05-15 2023-06-27 Liveperson, Inc. Methods and systems for presenting specialized content using campaign metrics
US20140115451A1 (en) * 2012-06-28 2014-04-24 Madeleine Brett Sheldon-Dante System and method for generating highly customized books, movies, and other products
US20150370787A1 (en) * 2014-06-18 2015-12-24 Microsoft Corporation Session Context Modeling For Conversational Understanding Systems
CN106575503A (en) * 2014-06-18 2017-04-19 微软技术许可有限责任公司 Session context modeling for conversational understanding systems
US11638195B2 (en) 2015-06-02 2023-04-25 Liveperson, Inc. Dynamic communication routing based on consistency weighting and routing rules
US20160366075A1 (en) * 2015-06-12 2016-12-15 Samsung Electronics Co., Ltd. Electronic device and method for providing user preference program notification in the electronic device
US10069769B2 (en) * 2015-06-12 2018-09-04 Samsung Electronics Co., Ltd. Electronic device and method for providing user preference program notification in the electronic device
US10262073B2 (en) 2015-09-09 2019-04-16 Accenture Global Services Limited Generating and distributing interactive documents
EP3142025A1 (en) * 2015-09-09 2017-03-15 Accenture Global Services Limited Generating and distributing interactive documents
US11010656B2 (en) 2017-10-30 2021-05-18 Clinc, Inc. System and method for implementing an artificially intelligent virtual assistant using machine learning
WO2019103738A1 (en) * 2017-11-22 2019-05-31 Clinc, Inc. System and method for implementing an artificially intelligent virtual assistant using machine learning
US10572801B2 (en) 2017-11-22 2020-02-25 Clinc, Inc. System and method for implementing an artificially intelligent virtual assistant using machine learning
US11042800B2 (en) 2017-11-22 2021-06-22 Cline, Inc. System and method for implementing an artificially intelligent virtual assistant using machine learning
US10296848B1 (en) 2018-03-05 2019-05-21 Clinc, Inc. Systems and method for automatically configuring machine learning models
US10679100B2 (en) 2018-03-26 2020-06-09 Clinc, Inc. Systems and methods for intelligently curating machine learning training data and improving machine learning model performance
US10303978B1 (en) 2018-03-26 2019-05-28 Clinc, Inc. Systems and methods for intelligently curating machine learning training data and improving machine learning model performance
US10679150B1 (en) 2018-12-13 2020-06-09 Clinc, Inc. Systems and methods for automatically configuring training data for training machine learning models of a machine learning-based dialogue system including seeding training samples or curating a corpus of training data based on instances of training data identified as anomalous
US11501079B1 (en) 2019-12-05 2022-11-15 X Development Llc Personalized content creation using neural networks
US11710420B1 (en) 2019-12-19 2023-07-25 X Development Llc Derivative content creation using neural networks for therapeutic use

Also Published As

Publication number Publication date
US6694482B1 (en) 2004-02-17

Similar Documents

Publication Publication Date Title
US6694482B1 (en) System and methods for an architectural framework for design of an adaptive, personalized, interactive content delivery system
Ceri et al. Data-driven, one-to-one web site generation for data-intensive applications
CN100458777C (en) System and method for providing integrated help information for users
Niederée et al. A multi-dimensional, unified user model for cross-system personalization
US7962529B1 (en) Scalable user clustering based on set similarity
US20060064574A1 (en) Application framework for use with net-centric application program architectures
US7055134B2 (en) Service provider integration framework in object oriented programming environment
US20100312741A1 (en) Method and system for selecting content items to be presented to a viewer
Ardissono et al. An agent architecture for personalized Web stores
Liang et al. A semi-automatic approach to composite web services discovery, description and invocation
Song et al. A goal-driven approach for adaptive service composition using planning
Cuzzocrea Combining multidimensional user models and knowledge representation and management techniques for making web services knowledge-aware
Kappel et al. Modeling ubiquitous web applications–a comparison of approaches
Brafman et al. Qualitative decision making in adaptive presentation of structured information
Kutvonen Trading services in open distributed environments
Castellano et al. Learning fuzzy user profiles for resource recommendation
Zykov Integrating enterprise software applications with web portal technology
Tanaka Knowledge federation over the Web based on meme media technologies
Zykov Enterprise portal: From model to implementation
Lei et al. OntoWeaver: An ontology-based approach to the design of data-intensive web sites
Cauvet Method engineering: a service-oriented approach
Casteleyn et al. Exploiting Link Types during the Web Site Design Process to Enhance Usability of Web Sites
Kirste et al. A presentation model for mobile information visualization
Muntean Quality of Experience Aware Adaptive Hypermedia System.
Vidal et al. Applying semantics to grid middleware

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION