Figaro: An Object-Oriented Probabilistic Programming Language

Pfeffer, A.

Charles River Analytics Technical Report (2009)

We introduce an object-oriented paradigm for probabilistic programming, embodied in the Figaro language. Models in Figaro are objects, and may have properties such as conditions, constraints, and relationships to other objects. Figaro can represent a wide variety of probabilistic models, including directed and undirected first-order models such as probabilistic relational models and Markov logic networks. In addition, because Figaro allows arbitrary constraints, it can represent models that cannot easily be expressed by other probabilistic programming languages. Figaro provides a modular, compositional Metropolis-Hastings algorithm, and gives the modeler optional control over it. Figaro is tightly integrated into the Scala programming language, giving it access to a rich type system, control abstractions, and libraries.

For More Information

To learn more or request a copy of a paper (if available), contact A. Pfeffer.

(Please include your name, address, organization, and the paper reference. Requests without this information will not be honored.)