Journal Authors Title Abstract
Dr. Dobbs Journal

December, 2002

David Hovel ASP.NET Page Persistence Using Extended Attributes The stateless nature of the HTTP protocol requires that web developers employ mechanisms outside the scope of their implementation language to maintain program state associated with a particular HTTP session. This article shows how the Microsoft .NET family language feature of extended attributes can be used with the .NET reflection capability to formalize HTTP state management in a declarative manner.
UAI '98

 Proceedings of the 1998 Conference on Uncertainty in Artificial Intelligence

Eric Horvitz, Jack Breese, David Heckerman, David Hovel, and Koos Rommelse. Lumiere: Bayesian User Modeling for Inferring the Goals and Needs of Software Users The Lumiere project centers on harnessing probability and utility to provide assistance to computer software users.  We review work on Bayesian user models that can be employed to infer a user's needs by considering a user's background, actions and queries.  Several problems were tackled in Lumiere research, including (1) the construction of Bayesian models for reasoning about the time-varying goals of computer users from their observed actions and queries, (2) gaining access to a stream of events from software applications, (3) developing a language for transforming system events into observational variables represented in Bayesian user models, (4) developing persistent profiles to capture changes in a user's expertise, and (5) the development of an overall architecture for an intelligent user interface.  Lumiere prototypes served as the basis for the Office Assistant in the Microsoft Office '97 suite of productivity applications.
UAI '99

Proceedings of the 1999 Conference on Uncertainty in Artificial Intelligence

Eric Horvitz, Andy Jacobs and David Hovel. Attention-Sensitive Alerting We introduce utility-directed procedures for mediating the flow of potentially distracting alerts and communications to computer users. We present models and inference procedures that balance the context-sensitive costs of deferring alerts with the cost of interruption. We describe the challenge of reasoning about such costs under uncertainty via an analysis of user activity and the content of notifications. After introducing principles of attention-sensitive alerting, we focus on the problem of guiding alerts about email messages. We dwell on the problem of inferring the expected criticality of email and discuss work on the Priorities system, centering on prioritizing email by criticality and modulating the communication of notifications to users about the presence and nature of incoming email.
PAP '95

Third Annual Conference on the Practical Applications of Prolog

David Hovel Using Prolog in Windows NT Network Configuration Microsoft's WIndows NT operating system uses an embedded Prolog interpreter to configure its local and wide-area network systems.   Interdependent software and hardware components are abstracted into a simplified object-oriented framework using declarative information provided by each component's installation script.  This information, along with the Prolog algorithm, is consulted into the embedded interpreter, which is then queried to construct the most usable configuration. The algorithm which solves the plumbing problem is described, including its positive and negative constraints, Prolog database and efficiency considerations.  The results of the query, stored into NT's configuration database, inform each component of its load order and binding targets.  A description of the C++ wrapper class is given and portation considerations are discussed. The Small Prolog interpreter is briefly described.