Learning and Cognitive Systems

FIGARO: An open-source SCALA-based Programming Language for Probabilistic Modeling

"Developing a new probabilistic model requires developing a representation for the model and a reasoning algorithm that can draw useful conclusions from evidence, which can be challenging tasks. Furthermore, it can be difficult to integrate a probabilistic model into a larger program.

Figaro™ is a probabilistic programming language that helps address both these issues. Figaro makes it possible to express probabilistic models using the power of programming languages, giving the modeler the expressive tools to create all sorts of models. Figaro comes with a number of built-in reasoning algorithms that can be applied automatically to new models. In addition, Figaro models are data structures in the Scala programming language, which is interoperable with Java, and can be constructed, manipulated, and used directly within any Scala or Java program." (Avi Pfeffer, 2014, CRA)

ProBT - Bayesian Programming -

"Bayesian programming is a formalism and a methodology to specify probabilistic models and solve problems when all the necessary information is not available.

Edwin T. Jaynes proposed that probability could be considered as an alternative and an extension of logic for rational reasoning with incomplete and uncertain information. In his founding book Probability Theory: The Logic of Sciencehe developed this theory and proposed what he called 'the robot,' which was not a physical device, but an inference engine to automate probabilistic reasoning — a kind of Prolog for probability instead of logic. Bayesian Programming is a formal and concrete implementation of this 'robot'.

Bayesian programming may also be seen as an algebraic formalism to specify graphical models such as, for instance, Bayesian networks, dynamic Bayesian networks, Kalman filters or hidden Markov models. Indeed, Bayesian Programming is more general than Bayesian networks and has a power of expression equivalent to probabilistic factor graphs." (http://en.wikipedia.org/wiki/Bayesian_programming visited 2014/12/14;).