News and Events

Charles River Analytics Releases Figaro 2.0: A Free, Open-Source Programming Language for Reasoning under Uncertainty

Charles River Analytics, a developer of intelligent systems solutions, announces the release of Figaro 2.0, a probabilistic programming language that enables developers to create tools that help people make better decisions in the face of uncertainty. Figaro supports the development of rich probabilistic models and provides reasoning algorithms to draw useful conclusions from the available “noisy” evidence. Figaro was originally funded by the Defense Advanced Research Projects Agency (DARPA) under the Probabilistic and Relational Inferences in Dynamic Environments (PRIDE) program.

“Reasoning under uncertainty requires taking what you know and inferring what you don’t know,” explained Dr. Avi Pfeffer, Principal Scientist at Charles River. “A well-established approach for reasoning under uncertainty is probabilistic reasoning. Typically, we create a probabilistic model over all the variables we’re interested in, observe the values of some of these variables, and query the model for values of other variables of interest. There are a huge number and variety of approaches to doing this, and new approaches are being developed constantly. Figaro is designed to take advantage of these approaches, by making it easier build models and integrate them into useful decision-support tools.”

Dr. Pfeffer continued, “Developing a new probabilistic model normally requires developing a representation for the model and a reasoning algorithm that can draw useful conclusions from the evidence. In many cases, an additional algorithm is used to learn aspects of the model from the data. Developing these representations and algorithms, even with a probabilistic reasoning tool, requires significant effort and expertise. In addition, most of these tools are standalone and difficult to integrate into larger programs that support end-user decisions.” Dr. Pfeffer added, “Figaro supports a new kind of model-development process by simplifying the challenging task of creating probabilistic models that determine a situation’s unknown facts from its known facts. It does this by combining the expressive power of functional programming with the ease of use of object-oriented programming.”

Figaro helps address the issues of model development, reasoning algorithm development, and integration into useful applications. Figaro provides a rich library of model templates and provides ways to extend this library to create custom templates. It also comes with a library of extensible built-in reasoning algorithms that further simplify model development and that can be applied automatically to new models. Users can create their own reasoning algorithms through Figaro’s tools. Figaro provides both regular and anytime reasoning algorithms so that users can get answers when they need them and don’t have to wait for a long reasoning process to complete. Because Figaro models are data structures in the Scala programming language, which is interoperable with Java, models can be constructed, manipulated, and used directly within any Scala or Java application program. View a list of models and algorithms here.

Probabilistic models can be applied to a wide variety of domains, such as data and information fusion, intelligence analysis, and cyber security. Charles River has created probabilistic models and reasoners for a number of applications in recent years. In ACACIA, a system for the Assessment of Adversary Capability and Capacity via Intelligence Analysis, Figaro was used to create models of specific situations involving particular adversary objectives and assets while sharing knowledge across situations with different objectives and assets. In prototyping a system for Probabilistic and Relational Inferences in Dynamic Environments (PRIDE), Figaro was used to develop a probabilistic-based framework for monitoring complex, dynamic situations and assessing the likelihood of a given plan succeeding in these situations. Figaro has also been used as the underlying engine for space situation assessment in the Multi-Int System for Space Situation Awareness (MInt4SSA), a project in which Charles River developed a situation assessment data fusion component that identifies situations on the basis of space abnormality event tracks.

Figaro is free and is released under an open-source license. For more information or to download Figaro, visit

This material is based upon work supported by Defense Advanced Research Projects Agency (DARPA) under Contract No. W31P4Q-11-C-0083. Any opinions, findings and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of DARPA.
Distribution Statement “A” (Approved for Public Release, Distribution Unlimited).

Solutions to serve the warfighter, technology to serve the world®

Charles River Analytics brings foundational research to life, creating human-centered intelligent systems at the edge of what’s possible, through deep partnerships with our customers. 

To learn more about Charles River or our current projects and capabilities, contact us