%% This BibTeX bibliography file was created using BibDesk.
%% http://bibdesk.sourceforge.net/


%% Created for Eric Kidd at 2007-06-15 23:50:46 -0400 


%% Saved with string encoding Western (ASCII) 



@inproceedings{muggleton95stochastic,
	Abstract = {One way to represent a machine learning algorithm's bias over the hypothesis and instance space is as a pair of probability distributions. This approach has been taken both within Bayesian learning schemes and the framework of U-learnability. However, it is not obvious how an Inductive Logic Programming (ILP) system should best be provided with a probability distribution. This paper extends the results of a previous paper by the author which introduced stochastic logic programs as a means of...},
	Annote = {A major paper on probabilistic logic programming.},
	Author = {Muggleton, Stephen},
	Booktitle = {Proceedings of the 5th International Workshop on Inductive Logic Programming},
	Date-Added = {2007-06-15 15:20:23 -0400},
	Date-Modified = {2007-06-15 15:22:49 -0400},
	Editor = {De Raedt, L.},
	Keywords = {probability, logic},
	Pages = {29},
	Publisher = {Department of Computer Science, Katholieke Universiteit Leuven},
	Title = {Stochastic Logic Programs},
	Url = {citeseer.ist.psu.edu/muggleton96stochastic.html},
	Year = {1995}}

@inproceedings{allison06programming,
	Abstract = {Abstract: Inductive programming is a new machine learning paradigm which combines functional programming for writing statistical models and information theory to prevent overfitting. Type-classes specify general properties that models must have. Many statistical models, estimators and operators have polymorphic types. Useful operators combine models, and estimators, to form new ones; Functional programming's compositional style of programming is a great advantage in this domain. Complementing this, information theory provides a compositional measure of the complexity of a model from its parts.Inductive programming is illustrated by a case study of Bayesian networks. Networks are built from classification- (decision-) trees. Trees are built from partitioning functions and models on data-spaces. Trees, and hence networks, are general as a natural consequence of the method. Discrete and continuous variables, and missing values are handled by the networks. Finally the Bayesian networks are applied to a challenging data set on lost persons. },
	Annote = {A followup paper to allison03types, with more examples.},
	Author = {Lloyd Allison},
	Booktitle = {Twenty-Ninth {Australasian} Computer Science Conference ({ACSC2006})},
	Date-Added = {2007-06-15 14:56:51 -0400},
	Date-Modified = {2007-06-15 15:04:21 -0400},
	Keywords = {probability, AI},
	Pages = {103--111},
	Series = {Conferences in Research and Practice in Information Technology},
	Title = {A Programming Paradigm for Machine Learning, with a Case Study of Bayesian Networks},
	Volume = {48},
	Year = {2006}}

@article{ng92probabilistic,
	Abstract = {Of all scientific investigations into reasoning with uncertainty and chance, probability theory is perhaps the best understood paradigm. Nevertheless, all studies conducted thus far into the semantics of quantitative logic programming (cf. van Emden [51], Fitting [18, 19, 20], Blair and Subrahmanian [5, 6, 49, 50], Kifer et al [29, 30, 31]) have restricted themselves to non-probabilistic semantical characterizations. In this paper, we take a few steps towards rectifying this situation. We...},
	Author = {Raymond T. Ng and V. S. Subrahmanian},
	Date-Added = {2007-06-15 11:18:27 -0400},
	Date-Modified = {2007-06-15 13:31:33 -0400},
	Journal = {Information and Computation},
	Keywords = {probability, logic},
	Number = {2},
	Pages = {150-201},
	Title = {Probabilistic Logic Programming},
	Url = {citeseer.ist.psu.edu/ng92probabilistic.html},
	Volume = {101},
	Year = {1992}}

@inproceedings{koller97effective,
	Abstract = {In this paper, we propose a stochastic version of a general purpose functional programming language as a method of modeling stochastic processes. The language contains random choices, conditional statements, structured values, defined functions, and recursion. By imagining an experiment in which the program is "run" and the random choices made by sampling, we can interpret a program in this language as encoding a probability distribution over a (potentially infinite) set of objects. We...},
	Annote = {A non-monadic probability-based language (related to IBAL?) which uses a more powerful inference algorithm to solve many types of problems efficiently.
},
	Author = {Daphne Koller and David A. McAllester and Avi Pfeffer},
	Booktitle = {Fourteenth National Conference on Artificial Intelligence ({AAAI})},
	Date-Added = {2007-06-15 11:13:55 -0400},
	Date-Modified = {2007-06-15 11:16:43 -0400},
	Keywords = {probability},
	Pages = {740--747},
	Title = {Effective {Bayesian} inference for stochastic programs},
	Year = {1997}}

@inproceedings{allison03types,
	Abstract = {The notion of a statistical model, as inferred and used in statistics, machine learning and data mining, is examined from a semantic point of view. Data types and type-classes for models are developed that allow models to be manipulated in a type-safe yet flexible way. The programming language Haskell-98, with its system of polymorphic types and type-classes, is used as the meta-language for this exercise so one of the by-products is a running program.},
	Address = {Adelaide, Australia},
	Annote = {A really nice introduction to various modern formulations of Occam's Razer, and how to apply them to building probability models without overfitting the data.
},
	Author = {Lloyd Allison},
	Booktitle = {Twenty-Sixth {Australasian} Computer Science Conference ({ACSC2003})},
	Date-Added = {2007-06-15 11:01:31 -0400},
	Date-Modified = {2007-06-15 11:09:26 -0400},
	Editor = {Michael Oudshoorn},
	Keywords = {probability},
	Month = {February},
	Pages = {207--215},
	Series = {Conferences in Research and Practice in Information Technology},
	Title = {Types and classes of machine learning and data mining},
	Volume = {16},
	Year = {2003}}

@inproceedings{wadler92essence,
	Abstract = {This paper explores the use monads to structure functional programs. No prior knowledge of monads or category theory is required. Monads increase the ease with which programs may be modified. They can mimic the effect of impure features such as exceptions, state, and continuations; and also provide effects not easily achieved with such features. The types of a program reflect which effects occur. The first section is an extended example of the use of monads. A simple interpreter is modified to...},
	Address = {Albequerque, New Mexico},
	Annote = {Not yet read.

Another of Walder's famous monad papers. Among other things, this one shows how an interpreter can be structured as a simple eval function parameterized over a monad. By changing the monad, you can change the behavior of the interpreter.

Quite a few papers develop this idea further, by extending it to a stack of monad transformers and refining various design decisions.},
	Author = {Philip Wadler},
	Booktitle = {Conference Record of the Nineteenth Annual {ACM} {SIGPLAN}-{SIGACT} Symposium on Principles of Programming Languages},
	Date-Added = {2007-06-15 10:52:40 -0400},
	Date-Modified = {2007-06-15 10:52:40 -0400},
	Keywords = {monad, interpreter},
	Pages = {1--14},
	Title = {The Essence of Functional Programming},
	Url = {http://citeseer.ist.psu.edu/wadler92essence.html},
	Year = {1992}}

@misc{all-about-monads,
	Annote = {The best monad tutorial. Gets technical fairly quickly, but covers everything and covers it well.},
	Author = {Jeff Newbern},
	Date-Added = {2007-06-15 10:49:06 -0400},
	Date-Modified = {2007-06-15 21:38:21 -0400},
	Howpublished = {Retrieved on 15 June 2007 from \url{http://www.haskell.org/all_about_monads/html/}},
	Keywords = {Haskell, monad, monad transformer, tutorial},
	Title = {All About Monads},
	Url = {http://www.haskell.org/all_about_monads/html/}}

@inproceedings{harrison00compilation,
	Abstract = {This paper presents a modular and extensible style of language specification based on metacomputations. This style uses two monads to factor the static and dynamic parts of the specification, thereby staging the specification and achieving strong binding-time separation. Because metacomputations are defined in terms of monads, they can be constructed modularly and extensibly using monad transformers. A number of language constructs are specified: expressions, control-flow, imperative features,...},
	Address = {Ponte de Lima, Portugal},
	Annote = {Some notes on modular structuring of compilers using monads. There's apparently a whole literature on monadic compilers, including some decent code-generation approaches.

This paper features two levels of monads--one which represents the compilation process, and one which represents the generated program. Some of the notation and monad transformer choices seem awkward, and the fundamental design is based on partial evaluation.
},
	Author = {William Harrison and Samuel Kamin},
	Booktitle = {5th Mathematics of Program Construction Conference ({MPC2000})},
	Date-Added = {2007-06-15 10:47:25 -0400},
	Date-Modified = {2007-06-15 10:47:25 -0400},
	Keywords = {monad, monad transformer, compiler},
	Month = {June},
	Title = {Compilation as metacomputation: Binding time separation in modular compilers},
	Url = {http://citeseer.ist.psu.edu/harrison98compilation.html},
	Year = {2000}}

@inproceedings{shan01monads,
	Abstract = {Accounts of semantic phenomena often involve extending types of meanings and revising composition rules at the same time. The concept of monads allows many such accounts -- for intensionality, variable binding, quantification and focus -- to be stated uniformly and compositionally.
},
	Annote = {An interesting paper showing how monads can be used to tidy up lambda-calculus representations of natural language semantics. Has a section at the end on open theoretical problems with monad transformers that might point in an interesting direction.

The featured monads include Set (for non-determinism) and Cont (for dealing with universal qualifiers).},
	Author = {{Chung-chieh} Shan},
	Booktitle = {Proceedings of the 2001 {{European}} Summer School in Logic, Language and Information},
	Date-Added = {2007-06-15 10:45:18 -0400},
	Date-Modified = {2007-06-15 23:50:28 -0400},
	Editor = {Kristina Striegnitz},
	Keywords = {monad, monad transformer, natural language, types},
	Pages = {285--298},
	Title = {Monads for Natural Language Semantics},
	Url = {citeseer.ist.psu.edu/634671.html},
	Year = {2001}}

@misc{shan07monad,
	Annote = {The best bibliography out there on monad transformers and monad morphisms.},
	Author = {{Chung-chieh} Shan},
	Date-Added = {2007-06-14 20:14:15 -0400},
	Date-Modified = {2007-06-15 23:49:34 -0400},
	Howpublished = {Retrieved on 14 July 2007 from \url{http://conway.rutgers.edu/~ccshan/wiki/blog/posts/Monad_transformers/}},
	Keywords = {monad transformer},
	Title = {Monad transformers},
	Year = {2007}}

@misc{cdcInfluenza,
	Annote = {Influenza test statistics.},
	Date-Added = {2007-06-14 19:53:03 -0400},
	Date-Modified = {2007-06-15 21:36:54 -0400},
	Howpublished = {Retrieved on 14 June 2007 from \url{http://www.cdc.gov/flu/professionals/diagnosis/rapidlab.htm}},
	Keywords = {probability},
	Title = {Rapid Diagnostic Testing for Influenza: Information for Clinical Laboratory Directors},
	Year = {2006}}

@inbook{klip00monads,
	Annote = {A categorical overview of M-sets, with lots of material on how they relate to various kinds of automata. This looks like a really rich field.

Of particular interest, p. 67: 'Free acts are analogs of free modules, and so in some sense have properties close to those of vector spaces."
},
	Author = {Mati Kilp and Ulrich Knauer and Alexander V. Mikhalev},
	Date-Added = {2007-06-14 18:49:12 -0400},
	Date-Modified = {2007-06-14 21:15:07 -0400},
	Keywords = {monoid, category theory},
	Number = {29},
	Publisher = {De Gruyter},
	Series = {De Gruyter Expositions in Mathematics},
	Title = {Monoids, Acts and Categories: with applications to wreath products and graphs},
	Year = {2000}}

@techreport{moggi89abstract,
	Abstract = {The aim of these course notes is to show that notions and ideas from Category 
Theory can be useful tools in Computer Science, by illustrating some recent ap- 
plications to the study of programming languages based on the principle ``notions 
of computation as monads''. The main ob jective is to propose a unified approach 
to the denotational semantics of programming languages. The category-theoretic 
notions introduced in the course will be presented with specific applications in 
mind (so that they will not sound too abstract) and guidelines for linking abstract 
and concrete concepts will be stressed.},
	Annote = {As far as I can tell, this appears to be the original monad transformers paper.},
	Author = {Eugenio Moggi},
	Date-Added = {2007-06-11 08:13:24 -0400},
	Date-Modified = {2007-06-11 08:16:27 -0400},
	Institution = {Edinburgh University},
	Keywords = {monad, monad transformer},
	Number = {ECS-LFCS-90-113},
	Title = {An abstract view of programming languages},
	Type = {Tech Report},
	Year = {1989}}

@book{mitzenmacher05probability,
	Address = {New York, NY},
	Annote = {A comprehensive book on random algorithms. Has a distinctive illustration of Alice being attacked by playing cards on the front cover.

Contains material on complexity analysis of random algorithms.
},
	Author = {Michael Mitzenmacher and Eli Upfal},
	Date-Added = {2007-06-10 21:40:22 -0400},
	Date-Modified = {2007-06-10 21:41:49 -0400},
	Keywords = {probability},
	Publisher = {Cambridge University Press},
	Title = {Probability and Computing},
	Year = {2005}}

@book{maclane71categories,
	Address = {New York},
	Annote = {The canonical text on category theory.},
	Author = {Saunders {Mac Lane}},
	Date-Added = {2007-06-09 15:30:35 -0400},
	Date-Modified = {2007-06-09 15:32:37 -0400},
	Keywords = {monad},
	Publisher = {Springer-Verlag},
	Title = {Categories for the Working Mathematician},
	Year = {1971}}

@misc{NewMonads,
	Annote = {A large wiki of (mostly anonymous) monad proposals for Haskell. We use MonadRandom and MaybeT from here.},
	Date-Added = {2007-06-09 15:01:43 -0400},
	Date-Modified = {2007-06-15 21:36:19 -0400},
	Howpublished = {Retrieved on 9 June 2007 from \url{http://www.haskell.org/haskellwiki/NewMonads}},
	Keywords = {monad, monad transformer},
	Title = {{``NewMonads"} proposal on {Haskell} wiki}}

@article{doucet00sequential,
	Abstract = {In this article, we present an overview of methods for sequential simulation from posterior distributions. These methods are of particular interest in Bayesian filtering for discrete time dynamic models that are typically nonlinear and non-Gaussian. A general importance sampling framework is developed that unifies many of the methods which have been proposed over the last few decades in several different scientific disciplines. Novel extensions to the existing methods are also proposed. We show in particular how to incorporate local linearisation methods similar to those which have previously been employed in the deterministic filtering literature; these lead to very effective importance distributions. Furthermore we describe a method which uses Rao-Blackwellisation in order to take advantage of the analytic structure present in some important classes of state-space models. In a final section we develop algorithms for prediction, smoothing and evaluation of the likelihood in dynamic models. 

Keywords: Bayesian filtering, nonlinear non-Gaussian state space models, sequential Monte Carlo methods, particle filtering, importance sampling, Rao-Blackwellised estimates 
},
	Annote = {A thorough summary of the particle filter literature, unifying many techniques into a single framework.

Includes many methods far more sophisticated than my toy monad example.
},
	Author = {Arnaud Doucet and Simon Godsill and Christophe Andrieu},
	Date-Added = {2007-06-09 09:37:57 -0400},
	Date-Modified = {2007-06-09 09:42:58 -0400},
	Journal = {Statistics and Computing},
	Keywords = {probability},
	Pages = {197--208},
	Title = {On sequential {Monte} {Carlo} sampling methods for {Bayesian} filtering},
	Volume = {10},
	Year = {2000}}

@unpublished{grabmueller06transformers,
	Abstract = {In this tutorial, we describe how to use monad transformers in order to incrementally add functionality to Haskell programs. It is not a paper about implementing transformers, but about using them to write elegant, clean and powerful programs in Haskell. Starting from an evaluation function for simple expressions, we convert it to monadic style and incrementally add error handling, environment passing, state, logging and input/output by composing monad transformers.},
	Annote = {{The best introduction monad transformers yet. Focuses on how to use them in real programs, not on how they work or how to build them. After reading this, check out the monad transformers section in "All About Monads".}},
	Author = {Martin Grabm{\"u}ller},
	Date-Added = {2007-06-08 17:11:11 -0400},
	Date-Modified = {2007-06-08 17:11:11 -0400},
	Keywords = {monad, monad transformer, interpreter},
	Month = {October},
	Note = {Draft paper},
	Title = {Monad Transformers Step by Step},
	Url = {http://uebb.cs.tu-berlin.de/~magr/pub/Transformers.en.html},
	Year = 2006}

@inproceedings{liang95monad,
	Abstract = {We show how a set of building blocks can be used to construct programming language interpreters, and present implementations of such building blocks capable of supporting many commonly known features, including simple expressions, three different function call mechanisms (call-by-name, callby -value and lazy evaluation), references and assignment, nondeterminism, first-class continuations, and program tracing. The underlying mechanism of our system is monad transformers, a simple form of...},
	Address = {New York},
	Annote = {This paper has two parts:

1) A demonstration of how to build extensible type unions in Gopher, a functional language with a slightly different type system from modern Haskell. This code would have some efficiency issues unless special-cased by the compiler, and--at least in this case--could probably be replaced with ordinary OO-style inheritence. In any case, this code won't run under modern GHC.

2) An explanation of monad transformers, and how they can be used to build a remarkably modular interepreter--you can more-or-less pick-and-choose your language semantics.

The closest equivalent I've seen to some of these techniques is the most advanced C++ template abuse.
},
	Author = {Sheng Liang and Paul Hudak and Mark Jones},
	Booktitle = {Conference record of {POPL} '95, 22nd {ACM} {SIGPLAN}-{SIGACT} Symposium on Principles of Programming Languages: San Francisco, California, January 22--25, 1995},
	Date-Added = {2007-06-08 17:10:52 -0400},
	Date-Modified = {2007-06-08 17:10:52 -0400},
	Isbn = {0-89791-692-1},
	Keywords = {monad, monad transformer, interpreter},
	Pages = {333--343},
	Publisher = {ACM Press},
	Title = {Monad transformers and modular interpreters},
	Url = {http://citeseer.ist.psu.edu/liang95monad.html},
	Year = {1995}}

@incollection{jones95functional,
	Abstract = {The Hindley/Milner type system has been widely adopted as a basis for statically typed functional languages. One of the main reasons for this is that it provides an elegant compromise between flexibility, allowing a single value to be used in different ways, and practicality, freeing the programmer from the need to supply explicit type information. Focusing on practical applications rather than implementation or theoretical details, these notes examine a range of extensions that...},
	Annote = {{All the different extensions to Haskell's type system, described in one place. There's lots of good stuff here, and I haven't read all of it. Recommended.

This paper follows up on the "Monad Transformers and Modular Interpreters" paper, and shows considerably more detail on how monad transformers work in modern Haskell.

Combined with Mark Jones later paper, "Typing Haskell in Haskell", this might be a good place to start for understanding how to extend H-M type inference. I'll take another look when I get to that point.

Everything in this book, and indeed in the rest of the Advanced Functional Programming series, looks very interesting. This seems to be the place to go for exotic Haskell techniques.}},
	Author = {Mark Jones},
	Booktitle = {Advanced Functional Programming: First International Spring School on Advanced Functional Programming Techniques, {{B{\aa}stad}}, {{Sweden}}},
	Date-Added = {2007-06-08 17:10:09 -0400},
	Date-Modified = {2007-06-08 17:10:09 -0400},
	Keywords = {types, monad, monad transformer},
	Pages = {97--136},
	Publisher = {Springer},
	Series = {Lecture Notes in Computer Science},
	Title = {Functional Programming with Overloading and Higher-Order Polymorphism},
	Url = {http://citeseer.ist.psu.edu/jones95functional.html},
	Volume = {925},
	Year = {1995}}

@inproceedings{king92combining,
	Abstract = {Monads provide a way of structuring functional programs. Most real applications require a combination of primitive monads. Here we describe how some monads may be combined with others to yield a combined monad.},
	Address = {Glasgow},
	Annote = {{An early monad transformer paper by Wadler and King.

This predates the work in "Comprehending Queries", and contains lots of good algebraic properties regarding commutative and idempotent monads.
}},
	Author = {David J. King and Philip Wadler},
	Booktitle = {Functional Programming, Workshops in Computing, Proceedings},
	Date-Added = {2007-06-08 17:09:40 -0400},
	Date-Modified = {2007-06-15 08:32:08 -0400},
	Editor = {J. Launchbury and P. M. Sansom},
	Keywords = {monad, monad transformer},
	Publisher = {Springer Verlag},
	Title = {Combining Monads},
	Url = {citeseer.ist.psu.edu/king92combining.html},
	Year = {1992}}

@techreport{pfeffer05ibal,
	Abstract = {This paper describes IBAL, a high level representation language for probabilistic AI. IBAL integrates several aspects of probability-based rational behavior, including probabilistic reasoning, Bayesian parameter estimation and decision theoretic utility maximization. IBAL is based on the functional programming paradigm, and is an ideal rapid prototyping language for probabilistic modeling. The paper presents the IBAL language, and presents a number of examples in the language. It then discusses the semantics of IBAL, presenting the semantics in two different ways. Finally, the inference algorithm of IBAL is presented. Seven desiderata are listed for inference, and it is shown how the algorithm fulfils each of them.},
	Annote = {I need to skim the inference algorithm here. This is a pretty interesting and powerful probabilistic language.},
	Author = {Avi Pfeffer},
	Date-Added = {2007-06-08 11:58:24 -0400},
	Date-Modified = {2007-06-15 21:38:39 -0400},
	Institution = {Harvard Univesity},
	Keywords = {probability},
	Number = {TR-12-05},
	Title = {The Design and Implementation of {IBAL}: A General-Purpose Probabilistic Programming Language},
	Type = {Computer Science Technical Report},
	Year = {2005}}

@techreport{mueser99monty,
	Abstract = {{We examine a logical decision problem, the "Monty Hall Dilemma," in which a large portion of sophisticated subjects appear to insist on an apparently wrong solution. Although a substantial literature examines the structure of this problem, we argue that the extant analyses have not recognized the constellation of cues that guide respondents' answers. We show that insight into subjects' decisions may be obtained by considering problems with similar surface structure to the Monty Hall Dilemma but which are common in environments that they routinely face. In particular, we consider the problem modeled as a game in which actors have possibly opposing interests, and as an environment with information provided by an objective source. We present experimental evidence showing that these comparisons help to explain subject responses.}},
	Annote = {A look at the Monty Hall problem, including alternative phsychological models that players may be using. Contains experimental data.},
	Author = {Peter Mueser and Donald Granberg},
	Date-Added = {2007-06-08 09:52:31 -0400},
	Date-Modified = {2007-06-08 18:13:56 -0400},
	Institution = {University of Missouri},
	Keywords = {probability, psychology},
	Number = {99-06},
	Title = {The {Monty Hall} Dilemma Revisited: Understanding the Interaction of Problem Definition and Decision Making},
	Type = {Working Paper},
	Year = {1999}}

@article{savant91letter,
	Author = {Marilyn vos Savant},
	Date-Added = {2007-06-08 09:48:17 -0400},
	Date-Modified = {2007-06-08 10:32:42 -0400},
	Journal = {American Statistician},
	Keywords = {probability, psychology},
	Number = {4},
	Pages = {347},
	Title = {{Marilyn vos Savant's} reply},
	Volume = {45},
	Year = {1991}}

@article{savant90monty,
	Annote = {vos Savant's original statement of the Monty Hall problem.
},
	Author = {Marilyn vos Savant},
	Date-Added = {2007-06-08 09:42:24 -0400},
	Date-Modified = {2007-06-08 10:33:11 -0400},
	Journal = {Parade Magazine},
	Keywords = {probability, psychology},
	Month = {17 February},
	Title = {Ask {Marilyn}},
	Volume = {15},
	Year = {1990}}

@article{smith99problem,
	Abstract = {Casey, the newborn daughter of one of the authors of this paper, received a positive result on an experimental medical screening test, indicating that she may lack an enzyme required to digest certain fats. The interpretation of this test result was complicated by uncertainty about the false-positiverate for the test-this was the first positive reading-and the prevalence of the medical condition. We used a simple Bayesian model to help assess the probability that Casey actually had the enzyme deficiency and to help better understand the role and value of this screening test. The model we used and, more generally, our style of analysis could also be used with other new diagnostic tests, such as tests used in manufacturing and environmental contexts as well as other medical situations.},
	Annote = {A discussion of false positives, false negatives, and applying Bayes' theorem to a brand-new test.},
	Author = {James E. Smith and Robert L. Winkler},
	Date-Added = {2007-06-08 09:05:29 -0400},
	Date-Modified = {2007-06-08 09:09:36 -0400},
	Journal = {Interfaces},
	Keywords = {probability, psychology},
	Month = {March},
	Number = {3},
	Pages = {63--76},
	Title = {Casey's Problem: Interpreting and Evaluating a New Test},
	Volume = {29},
	Year = {1999}}

@incollection{eddy82probabilistic,
	Address = {Cambridge, England},
	Annote = {{I have this book on order, based on a description from smith99problem:

"For example, Eddy [1982] did 
a study in which he asked physicians to 
judge the probability that a woman had a 
malignant breast tumor based on an X-ray 
that correctly classifies 80 percent of the 
malignant tumors and 90 percent of be- 
nign tumors. This woman was judged to 
have a one-percent probability of having a 
malignant tumor prior to having an X-ray 
come back positive for a malignancy. In 
this study, Eddy found that 95 out of 100 
doctors estimated the probability to be 
about 75 percent. Applying Bayes' rule, 
the probability is only 7.5 percent."

This is a good argument for more intuitive programming tools.
}},
	Author = {David M. Eddy},
	Booktitle = {Judgment Under Uncertainty: Heuristics and Biases},
	Date-Added = {2007-06-08 08:56:43 -0400},
	Date-Modified = {2007-06-08 09:05:11 -0400},
	Editor = {Daniel Kahneman and Paul Slovic and Amos Tversky},
	Keywords = {probability, psychology},
	Pages = {249--267},
	Publisher = {Cambridge University Press},
	Title = {Probabilistic reasoning in clinical medicine: Problems and opportunities},
	Year = {1982}}

@inproceedings{jones89probabilistic,
	Abstract = {A probabilistic power domain construction is given for the category of inductively complete partial orders. It is the partial order of continuous [0,1]-valued evaluations on the Scott topology. By means of a theory of integration with respect to such evaluations, the powerdomain is shown to be a monad, and a model for the Moggi computational lambda calculus is obtained. It is also possible to solve recursive domain equations involving the powerdomain, and all this gives a metalanguage for programming languages with probabilistic features. This is used to give the semantics of a language with a probabilistic parallel construct. it is shown that the construction generalizes previous work on partial orders of measures},
	Address = {Pacific Grove, California},
	Annote = {Talks about the monadic structure of probability distributions. Very mathematical and technical.

Very heavily cited.
},
	Author = {C. Jones and G. D. Plotkin},
	Booktitle = {Proceedings, Fourth Annual Symposium on Logic in Computer Science (LICS)},
	Date-Added = {2007-06-07 18:21:01 -0400},
	Date-Modified = {2007-06-07 18:26:42 -0400},
	Keywords = {probability, monad},
	Month = {June},
	Pages = {186--195},
	Title = {A probabilistic powerdomain of evaluations},
	Url = {http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=39173},
	Year = {1989}}

@inproceedings{ramsey02stochastic,
	Abstract = {Probability distributions are useful for expressing the mean- 
ings of probabilistic languages, which support formal mod- 
eling of and reasoning about uncertainty. Probability dis- 
tributions form a monad, and the monadic definition leads 
to a simple, natural semantics for a stochastic lambda cal- 
culus, as well as simple, clean implementations of common 
queries. But the monadic implementation of the expectation 
query can be much less efficient than current best practices 
in probabilistic modeling. We therefore present a language 
of measure terms, which can not only denote discrete prob- 
ability distributions but can also support the best known 
modeling techniques. We give a translation of stochastic 
lambda calculus into measure terms. Whether one trans- 
lates into the probability monad or into measure terms, the 
results of the translations denote the same probability dis- 
tribution.
},
	Address = {Portland, Oregon},
	Annote = {{"We show that the probability monad leads to simple, elegant implementations of three queries commonly posed of probabilistic models: expectation, sampling, and support."
 "We show that the monadic implementation of expectation is potentially much less efficient than techniques currently used in probabilistic reasoning."

This has a discrete probability monad, and apparently a sampling one, both implemented in Haskell. There's also a section on measure terms, which I need to read in more depth (and which can handle expectation queries better than the monadic approaches).

There's a good number of citations back to this paper.
}},
	Author = {Norman Ramsey and Avi Pfeffer},
	Booktitle = {Symposium on Principles of Programming Languages (POPL)},
	Date-Added = {2007-06-07 18:05:10 -0400},
	Date-Modified = {2007-06-07 18:13:57 -0400},
	Keywords = {probability, monad},
	Month = {January},
	Pages = {154--165},
	Title = {Stochastic lambda calculus and monads of probability distributions},
	Url = {citeseer.ist.psu.edu/ramsey02stochastic.html},
	Year = {2002}}

@unpublished{lawvere62category,
	Annote = {{According to Franck van Breugea, in "The Metric Monad for Probabilistic Nondeterminism":

"This paper dealt with the fact that the functor P : Mes ??? Mes forms a monad, although of course Lawvere did not use the term monad then. In [40], the functor P is shown to be the composite of two adjoints, which gives a ``standard construction.'' [42]"

This is supposedly the first probability distribution monad paper. I've never been able to find it.
}},
	Author = {F. William Lawvere},
	Date-Added = {2007-06-07 17:59:10 -0400},
	Date-Modified = {2007-06-07 18:01:19 -0400},
	Keywords = {probability},
	Note = {Unpublished},
	Title = {The category of probabilistic mappings},
	Year = {1962}}

@book{halpern2003reasoning,
	Address = {Cambridge, Massachusetts},
	Annote = {A particularly good overview of how to represent uncertainty, beginning with probability and generalizing in many different directions. Some math, but not too heavy.},
	Author = {Joseph Y. Halpern},
	Date-Added = {2007-06-07 11:26:33 -0400},
	Date-Modified = {2007-06-07 11:28:50 -0400},
	Keywords = {probability, AI},
	Publisher = {The MIT Press},
	Title = {Reasoning about Uncertainty},
	Year = {2003}}

@phdthesis{espinosa95semantic,
	Abstract = {Denotational semantics [Sch86] is a powerful framework for describing programming languages; however, its descriptions lack modularity: conceptually independent language features influence each others' semantics. We address this problem by presenting a theory of modular denotational semantics. Following Mosses [Mos92], we divide a semantics into two parts, a computation ADT and a language ADT (abstract data type). The computation ADT represents the basic...
},
	Annote = {Not yet read.

A modular monadic interpreter written in Scheme. This may be the paper which introduced the notion of "lifting" computations between different monads. It also describes a second approach known as "stratification", which removes the need for explicit lifts.
},
	Author = {David Espinosa},
	Date-Added = {2007-02-15 18:26:30 -0500},
	Date-Modified = {2007-02-15 18:26:30 -0500},
	Keywords = {interpreter, monad, monad transformer, Scheme},
	School = {Columbia University},
	Title = {Semantic {Lego}},
	Url = {http://citeseer.ist.psu.edu/article/espinosa95semantic.html},
	Year = {1995}}

@misc{haskell98,
	Annote = {The official report describing the Haskell programming language.},
	Author = {Simon {{Peyton Jones}} and others},
	Date-Added = {2007-02-15 16:14:59 -0500},
	Date-Modified = {2007-02-15 16:14:59 -0500},
	Keywords = {Haskell},
	Title = {{{Haskell}} 98 Language and Libraries: The Revised Report},
	Url = {http://www.haskell.org/onlinereport/},
	Year = {2002}}

@misc{graham02plan,
	Author = {Paul Graham},
	Date-Added = {2007-02-15 15:08:12 -0500},
	Date-Modified = {2007-02-15 15:09:21 -0500},
	Keywords = {probability},
	Month = {August},
	Title = {A Plan for Spam},
	Url = {http://www.paulgraham.com/spam.html},
	Year = {2002}}

@article{bayes1763chances,
	Author = {Thomas Bayes},
	Date-Added = {2007-02-15 14:47:57 -0500},
	Date-Modified = {2007-02-15 18:47:25 -0500},
	Journal = {The Philosophical Transactions of the {Royal} {Society}},
	Keywords = {probability},
	Pages = {370--418},
	Title = {An Essay towards solving a Problem in the Doctrine of Chances},
	Volume = {53},
	Year = {1763}}

@book{russel03ai,
	Address = {Upper Saddle River, New Jersey},
	Annote = {The standard AI textbook. The second edition includes tons of new material, including almost everything related to probability.
},
	Author = {Stuart Russel and Peter Norvig},
	Date-Added = {2007-02-15 07:32:15 -0500},
	Date-Modified = {2007-02-15 07:36:27 -0500},
	Edition = {2nd},
	Keywords = {AI, probability},
	Publisher = {Prentice Hall},
	Title = {Artificial Intelligence: A Modern Approach},
	Year = {2003}}

@incollection{giry81categorical,
	Author = {Michele Giry},
	Booktitle = {Categorical Aspects of Topology and Analysis},
	Date-Added = {2007-02-14 21:55:20 -0500},
	Date-Modified = {2007-02-14 22:02:11 -0500},
	Editor = {Banaschewski and Bernhard},
	Keywords = {monad, probability},
	Pages = {65--85},
	Publisher = {Springer-Verlag},
	Series = {Lecture Notes in Mathematics},
	Title = {A Categorical Approach to Probability Theory},
	Volume = {915},
	Year = {1981}}

@article{erwig06probabilistic,
	Abstract = {In this paper, we will demonstrate such an approach by describing a probabilistic 
functional programming (PFP) library for Haskell. We will show that the proposed 
approach not only facilitates probabilistic programming in functional languages, 
but in particular can lead to very concise programs and simulations. In particular, 
a ma jor advantage of our system is that simulations can be specified independently 
from their method of execution. That is, we can either fully simulate or randomize 
any simulation without altering the code which defines it.},
	Annote = {An excellent library for discrete probabilitic simulation in Haskell, also with support for randomization.

 - There is code reuse between the discrete and sampling implementations (though not, as far as I can see, at the monad level, but instead one level up).
 - There's a MonadPlus instance, which theoretically allows them to do some fairly interesting things, but it's not used anywhere in the source code or the paper.},
	Author = {Martin Erwig and Steve Kollmansberger},
	Date-Added = {2007-02-14 21:26:50 -0500},
	Date-Modified = {2007-06-07 18:17:06 -0400},
	Journal = {Journal of Functional Programming},
	Keywords = {monad, probability},
	Number = {1},
	Pages = {21--34},
	Title = {Probabilistic Functional Programming in {Haskell}},
	Url = {http://web.engr.oregonstate.edu/~erwig/pfp/},
	Volume = {16},
	Year = {2006}}

@article{fox05bayesian,
	Abstract = {Bayesian-filter techniques provide a powerful statistical tool to help 
manage measurement uncertainty and perform multisensor fusion and 
identity estimation. The authors survey Bayes filter implementations and 
show their application to real-world location-estimation tasks common 
in pervasive computing. 
},
	Annote = {The best overview of Bayesian filtering techniques. Does not contain as much detail on the Bel() function and its various implementations as park05probabilistic, though.

Highlights:
	Kalman filters (not monads)	Multi-hypothesis tracking (not monads)	Grid-based approaches	Topological approaches	Particle filters

Lots of pictures, and some good robotics applications.
},
	Author = {Dieter Fox and Jeffrey Hightower and Lin Liao and Dirk Schulz and Gaetano Borriello},
	Date-Added = {2007-02-14 21:19:42 -0500},
	Date-Modified = {2007-06-07 18:28:56 -0400},
	Journal = {IEEE Pervasive Computing},
	Keywords = {probability},
	Month = {September},
	Pages = {24--33},
	Title = {Bayesian Filtering for Location Estimation},
	Year = {2003}}

@inproceedings{park05probabilistic,
	Abstract = {As probabilistic computations play an increasing role in solving various problems, researchers have designed probabilistic languages that treat probability distributions as primitive datatypes. Most probabilistic languages, however, focus only on discrete distributions and have limited expressive power. In this paper, we present a probabilistic language, called \lambda_{\circle}, which uniformly supports all kinds of probability distributions -- discrete distributions, continuous distributions, and even those belonging to neither group. Its mathematical basis is sampling functions, i.e., mappings from the unit interval (0.0, 1.0] to probability domains. 
We also briefly describe the implementation of \lambda_{\circle} as an extension of Ob jective CAML and demonstrate its practicality with three applications in robotics: robot localization, people tracking, and robotic mapping. All experiments have been carried out with real robots. 
},
	Address = {Long Beach, California},
	Annote = {A really excellent paper which implements a probability distribution monad using sampling functions.

Highlights include:
  - A good bibliography of probabilistic languages, including [11, 22, 7, 25, 15, 29, 21].
  - A good introduction to Bel() functions, and notes that there are difficulties finding a single representation.  I keep thinking this material is in fox05bayesian, but it's here.  - Uses sampling functions for full generality--supports anything, but at a cost.  - A rich variety of distributions.  - Implements Bayesian filter by the rejection method!  - Also: "The Monte Carlo method, in conjunction with importance sampling    [13], allows us to dispense with c by approximating Q with a set of    samples and P # Q with a set of weighted samples."    - Looks like (MVT Prob Rand) to me, actually, if only with a limited      scope.
  - Lots of applications in robotics.
  - One or two passing mentions of particle filters.},
	Author = {Sungwoo Park and Frank Pfenning and Sebastian Thrun},
	Booktitle = {32nd Annual Symposium on Principals of Programming Languages ({POPL'05})},
	Date-Added = {2007-02-14 21:03:15 -0500},
	Date-Modified = {2007-06-07 18:15:48 -0400},
	Keywords = {monad, probability},
	Month = {January},
	Pages = {171--182},
	Title = {A Probabilistic Language based upon Sampling Functions},
	Url = {http://citeseer.ist.psu.edu/765661.html},
	Year = {2005}}

@incollection{moggi89computational,
	Abstract = {The lambda-calculus is considered an useful mathematical tool in the study of programming languages. However, if one uses beta-eta-conversion to prove equivalence of programs, then a gross simplification is introduced. We give a calculus based on a categorical semantics for computations, which provides a correct basis for proving equivalence of programs, independent from any specific computational model.},
	Address = {Washington, DC},
	Annote = {The original paper introducing monads to computer science. Involves some moderately heavy formal semantics.

See Moggi's 1989 tech report for monad transformers.},
	Author = {Eugenio Moggi},
	Booktitle = {Proceedings 4th Annual {IEEE} Symposium on Logic in Computer Science},
	Date-Added = {2007-02-14 20:56:44 -0500},
	Date-Modified = {2007-06-11 08:16:53 -0400},
	Keywords = {monad, monad transformer},
	Pages = {14--23},
	Publisher = {IEEE Computer Society Press},
	Title = {Computational Lambda-Calculus and Monads},
	Url = {http://citeseer.ist.psu.edu/moggi89computational.html},
	Year = {1989}}

@inproceedings{steele94building,
	Abstract = {We exhibit a set of functions coded in Haskell that can be used as building blocks to construct a variety of interpreters for Lisp-like languages. The building blocks are joined merely through functional composition. Each building block contributes code to support a specific feature, such as numbers, continuations, functions calls, or nondeterminism. The result of composing some number of building blocks is a parser, an interpreter, and a printer that support exactly the expression forms and...},
	Address = {New York},
	Annote = {Not yet read.

Extends Wadler's paper "The Essence of Functional Programming" by showing that an interpreter monad can be constructed in a modular fashion.

There are several later papers which refine this technique in various ways.
},
	Author = {Guy L. {Steele, Jr.}},
	Booktitle = {Conference record of {POPL} '94, 21st {ACM} {SIGPLAN}-{SIGACT} Symposium on Principles of Programming Languages: Portland, Oregon, January 17--21, 1994},
	Date-Added = {2007-02-14 20:49:31 -0500},
	Date-Modified = {2007-02-14 20:49:31 -0500},
	Isbn = {0-89791-636-0},
	Keywords = {interpreter, monad, monad transformer},
	Pages = {472--492},
	Publisher = {ACM Press},
	Title = {Building interpreters by composing monads},
	Url = {http://citeseer.ist.psu.edu/steele94building.html},
	Year = {1994}}

@inproceedings{wadler90comprehending,
	Abstract = {Category theorists invented monads in the 1960's to concisely express certain aspects of universal algebra. Functional programmers invented list comprehensions in the 1970's to concisely express certain programs involving lists. This paper shows how list comprehensions may be generalised to an arbitrary monad, and how the resulting programming feature can concisely express in a pure functional language some programs that manipulate state, handle exceptions, parse text, or invoke continuations....},
	Address = {New York, NY},
	Annote = {The original paper which introduced monads to functional programming languages. Monads had formerly been used by Moggi for denotational semantics.

There's a whole bunch of later papers by Wadler in which he refined the formalisms and further explained the applications.},
	Author = {Philip Wadler},
	Booktitle = {Proceedings of the 1990 {ACM} Conference on {LISP} and Functional Programming, {{Nice}}},
	Date-Added = {2007-02-14 20:47:31 -0500},
	Date-Modified = {2007-02-14 20:47:31 -0500},
	Keywords = {monad},
	Pages = {61--78},
	Publisher = {ACM},
	Title = {Comprehending Monads},
	Url = {http://citeseer.ist.psu.edu/wadler90comprehending.html},
	Year = {1990}}
