On the Implementation of the CLP(BN) Language

Vítor Santos Costa

January 2010


Abstract

The last few years have seen great interest in developing models that can describe real-life large-scale structured systems. A popular approach is to address these problems by using logic to describe the patterns or structure of the problems, and by using a calculus of probabilities to address the uncertainty so often found in real life situations. The CLP(BN) language is an extension of Prolog that allows the representation, inference, and learning of bayesian networks. The language was inspired on Koller’s Probabilistic Relational Models, and is close to other probabilistic relational languages based in Prolog, such as Sato’s PRISM.
We present the implementation of CLP(BN), showing how bayesian networks are represented in CLP(BN) and presenting the implementation of three different inference algorithms: Gibbs Sampling, Variable Elimination, and Junction Trees. We show that these algorithms can be implemented effectively by using a matrix library and a graph manipulation library, and study how the system performs on real-life applications.

Bibtex

@InProceedings{santoscosta-padl10,
  author =    {V. Santos Costa},
  title =     {{On the Implementation of the CLP(BN) Language}},
  booktitle = {Proceedings of the 12th International Symposium on Practical Aspects of Declarative 
               Languages (PADL 2010)},
  pages =     {234--248},
  number =    {5937},
  series =    {LNCS},
  publisher = {Springer},
  editor =    {M. Carro and R. Peña},
  month =     {January},
  year =      {2010},
  address =   {Madrid, Spain},
}

Download Paper

PDF file
Springer