Bayesian Network tools in Java (BNJ)

Latest release: v1.05 beta (Fri 06 Dec 2002)

What is BNJ?

BNJ is an open-source suite of software tools for research and development using graphical models of probability. It is implemented in 100% pure Java and distributed under the GNU General Public License (GPL) by the Kansas State University Laboratory for Knowledge Discovery in Databases (KDD).

For information on the BNJ project and documentation, see the following pages.

Downloading BNJ

Want the latest source code and docs?
Download them from project bndev on SourceForge!

Please remember to register BNJ online once you have downloaded it. Registration is free and takes only a few minutes.

BNJ User Community

As of 15 Dec 2002, the BNJ source and binaries have been downloaded over 900 times and about 50 offsite users have registered it.
In addition, about 25 local faculty and postgraduate research students have used BNJ since its initial release (1.0a, 04 May 2002).

Here are some statistics regarding the downloaded versions:

Applications Releases

Total downloads to date: N/A

Source Code Releases

Total downloads to date: 979

A total of 47 current registered BNJ users and developers (besides those at K-State) hail from:

Coming soon: FreeBayes, the online directory of free software for probabilistic learning and reasoning in graphical models

Registering BNJ (optional)

To receive updates on new releases and to submit requests for documentation and new features, click here to register as a BNJ user or developer using the online form!

Your name and e-mail address are requested for major BNJ software development and release announcements only, and shall be kept confidential among BNJ developers.

If you have any questions, comments, or requests, please send your name, institution, and e-mail address in a message titled "BNJ [your subject]" (e.g., "BNJ registration") to:
  BNJ Development Team (replace the "(AT)" with @)
A member of the BNJ development team will reply.

History of BNJ

At the 1997 International Conference on Uncertainty in Artificial Intelligence (UAI-97) in Providence, RI, USA, several informal discussion fora were held on interchange formats and software tools for research using graphical models. Requests for open-source Bayesian network tools spurred several development efforts that began that year, including:

The third effort commenced in September, 1997 at the UIUC Beckman Institute Knowledge-Based Systems Group, and was focused around development of a common interchange ("bus") format and interconversion tools among the more frequently-used packages of the day for development and education, including non-free software (Hugin, Netica, TETRAD, Ergo) and free software (SPI, IDEAL). This interchange format was based upon an extension of the XML Bayesian Network Interchange Format from Microsoft Research and an entity-relational data model due to the third author (Mengshoel) that was eventually elaborated into the BNJ metaformat. In 1997 and 1998, some experimental inference tools for Noisy-Or Bayesian Networks were developed in C++ by the first two authors [GHVW98] and some general-purpose inference tools were developed in LISP and C++ by the third author at UIUC [Me99].

Starting in autumn of 1999, the second author at UIUC formed the BNJ development team at Kansas State University. In spring of 2000 this team completed the first prototype version of BNJ Tools (then called BN-Tools), including a format conversion tool among 7 popular formats, as well as implementations of the junction tree (Lauritzen-Spiegelhalter [LS88, Ne90]) algorithm for inference in multiply-connected Bayesian networks and the K2 algorithm for structure learning [CH92]. By summer of 2000 a graphical editor had been developed, and by autumn, BNJ had been ported to several platforms. Implementation of several stochastic sampling-based inference algorithms (forward simulation, backward sampling, heuristic importance sampling, and adaptive importance sampling) began in winter of 2001 and was completed in autumn of 2001.

In the summer of 2001 the BNJ team became aware of Murphy's excellent Bayesian Network Toolbox (then in version 3) for MATLAB [Mu02], and since then has begun to simultaneously implement new algorithms while reimplementing or porting functionality from BNT and other published tools. The autumn of 2001 and winter of 2002 saw the development of several research projects [GH02, Gu02, HGPS02, PS02] in which BNJ was used, along with a workshop related to models for diagnosis and decision making under uncertainty [GHHS02]. The development team officially released BNJ v1.0a for the first time on 04 May 2002. Since early May, 2002, experimental and production releases of BNJ have been available on SourceForge. In late spring of 2002, BN-Tools was renamed to BNJ to minimize naming conflicts with Murphy's package. BNJ v1.03 was announced at the AAAI/KDD/UAI workshop on real-time decision support [GHHS02] on 29 Jul 2002 and distributed by the BNJ development team at one of its AAAI-2002 posters [PS02] as well as at KDD-2002, UAI-2002, and ISMB-2002.

BNJ version 2 has been in development since mid-autumn, 2002. The following new features are planned:

Latest news: BNJ version 1 is now in beta with the release of v1.05b on Fri 06 Dec 2002. The BNJ development team is working on version 2, with the first stable alpha release of 2.0 tentatively scheduled for Fri 07 Mar 2003. Check here and on the BNJ download page for early (experimental) alpha releases.

Contribute to BNJ Development

Source Code

Kevin Murphy states several cogent arguments in defense of open source research software in explaining why he founded the BNT development group and has released BNT under the GNU Public License. Likewise, we are always interested in improving our ability, and that of the scientific community in general, to reproduce results, systematically evaluate and compare [La00, La02] algorithms, and generalize these algorithms them to all appropriate representations. This is one of the chief reasons we have chosen to distribute BNJ as free software. We believe that having more open-source developers is not only a good way to identify and correct errors in design and implementations, but can also lead to better planning for more flexible, extensible, and scalable software. This planning, in turn, can mitigate the second system effect documented by Brooks [Br95], commonly referred to as software bloat.

For these reasons, we request that if you develop any new software tools for learning and reasoning using graphical models [Mu01] using BNJ, that you contribute the sources to BNJ by uploading them to our developer group. Although we have limited resources for supporting debugging and testing, our team will be happy to work with you (to some degree) in testing your modules and integrating them into the reuse library.

Case Studies

We are interested in applications of BNJ to both research and education. If you decide to use BNJ as lessonware, to produce tutorials or illustrations, or in another research application, or are considering adoption of BNJ in a course, please contact the authors (replace "(AT)" with the appropriate symbol).

Feature Requests

Similarly, please feel free to contact the development team if you have a feature request (replace "(AT)" with the appropriate symbol). We cannot promise to fulfill all requests for features, but we will consider all of them and add those that may benefit the research community to our task list.

Error Reports

Finally, although BNJ is distributed with no warranty, we appreciate all error reports (replace "(AT)" with the appropriate symbol) and will make efforts to correct reported errors.

STANDARD DISCLAIMER

The Kansas State University Laboratory for Knowledge Discovery in Databases (KSU KDD Lab) is furnishing this item "as is". The KSU KDD Lab does not provide any warranty of the item whatsoever, whether express, implied, or statutory, including, but not limited to, any warranty of merchantability or fitness for a particular purpose or any warranty that the contents of the item will be error-free. In no respect shall the KSU KDD Lab incur any liability for any damages, including, but limited to, direct, indirect, special, or consequential damages arising out of, resulting from, or any way connected to the use of the item, whether or not based upon warranty, contract, tort, or otherwise; whether or not injury was sustained by persons or property or otherwise; and whether or not loss was sustained from, or arose out of, the results of, the item, or any services that may be provided by the KSU KDD Lab.

NON-STANDARD DISCLAIMER

The KSU KDD Lab makes no warranty that the item will function properly if tossed into the Cracks of Doom, bisected by a lightsaber, shot with a phaser, or ported to Palantir XP.

Acknowledgements

Funding

BNJ has been and continues to be developed through support from the following sponsoring agencies:

BNJ Development Team

Current Developers

Affiliates

Past Developers

Affiliates

References

[Br95] Brooks, F. P. (1995). The Mythical-Man Month, 20th Anniversary Edition: Essays on Software Engineering. Boston, MA: Addison-Wesley.

[CH92] Cooper, G. F. & Herskovits, E. (1992). A Bayesian method for the induction of probabilistic networks from data. Machine Learning, 9(4):309-347.

[GH02] Guo, H. & Hsu, W. H. (2002). A Survey of Algorithms for Real-Time Bayesian Network Inference. In Guo, H., Horvitz, E., Hsu, W. H., and Santos, E., eds. Working Notes of the Joint Workshop (WS-18) on Real-Time Decision Support and Diagnosis, AAAI/UAI/KDD-2002. Edmonton, Alberta, CANADA, 29 July 2002. Menlo Park, CA: AAAI Press. (PDF)

[GHVW98] Grois, E., Hsu, W. H., Voloshin, M., & Wilkins, D. C. (1998). Bayesian Network Models for Automatic Generation of Crisis Management Training Scenarios. In Proceedings of the Tenth Innovative Applications of Artificial Intelligence Conference (IAAI-98), Madison, WI, pp. 1113-1120. Menlo Park, CA: AAAI Press. (PDF / PostScript / .ps.gz)

[Gu02] Guo, H. (2002). A Bayesian Metareasoner for Algorithm Selection for Real-time Bayesian Network Inference Problems (Doctoral Consortium Abstract). In Proceedings of the Eighteenth National Conference on Artificial Intelligence (AAAI-2002), Edmondon, Alberta, CANADA, p. 983. Menlo Park, CA: AAAI Press. (PDF)

[GHHS02] Guo, H., Horvitz, E., Hsu, W. H., and Santos, E., eds. (2002). Working Notes of the Joint Workshop (WS-18) on Real-Time Decision Support and Diagnosis, AAAI/UAI/KDD-2002. Edmonton, Alberta, CANADA, 29 July 2002. Menlo Park, CA: AAAI Press. Available from URL: http://www.kddresearch.org/Workshops/RTDSDS-2002.

[HGPS02] Hsu, W. H., Guo, H., Perry, B. B., & Stilson, J. A. (2002). A permutation genetic algorithm for variable ordering in learning Bayesian networks from data. In Proceedings of the Genetic and Evolutionary Computation Conference (GECCO-2002), New York, NY. San Francisco, CA: Morgan Kaufmann Publishers. (PDF / PostScript / .ps.gz) - Nominated for Best of GECCO-2002, Genetic Algorithms Deme (31 nominees, 160 accepted papers out of 320)

[La00] Langley, P. (2000). Crafting papers on machine learning. In Proceedings of the Seventeenth International Conference on Machine Learning, Stanford, CA, pp. 1207-1211. San Francisco, CA: Morgan Kaufmann Publishers. (HTML / .ps.gz)

[La02] Langley, P. (2002). Issues in Research Methodology. Palo Alto, CA: Institute for the Study of Learning and Expertise. Available from URL: http://www.isle.org/~langley/methodology.html.

[LS88] Lauritzen, S., & Spiegelhalter, D. J. (1988). Local Computations with Probabilities on Graphical Structures and Their Application to Expert Systems. Journal of the Royal Statistical Society Series B 50:157-224.

[Me99] Mengshoel, O. J. (1999). Efficient Bayesian Network Inference: Genetic Algorthms, Stochastic Local Search and Abstraction. Ph.D. Dissertation, Department of Computer Science, University of Illinois at Urbana-Champaign, May, 1999. Available from URL: http://www-kbs.ai.uiuc.edu/web/kbs/publicLibrary/KBSPubs/Thesis/.

[Mu01] Murphy, K. P. (2001). A Brief Introduction to Graphical Models and Bayesian Networks. Berkeley, CA: Department of Computer Science, University of California - Berkeley. Available from URL: http://www.cs.berkeley.edu/~murphyk/Bayes/bayes.html.

[Mu02] Murphy, K. P. (2002). Bayes Net Toolbox v5 for MATLAB. Cambridge, MA: MIT AI Lab. Available from URL: http://www.ai.mit.edu/~murphyk/Software/BNT/bnt.htm.

[Ne90] Neapolitan, R. E. (1990). Probabilistic Reasoning in Expert Systems: Theory and Applications. New York, NY: Wiley-Interscience.

[PS02] Perry, B. P. & Stilson, J. A. (2002). BN-Tools: A Software Toolkit for Experimentation in BBNs (Student Abstract). In Proceedings of the Eighteenth National Conference on Artificial Intelligence (AAAI-2002), Edmondon, Alberta, CANADA, pp. 963-964. Menlo Park, CA: AAAI Press. (PS)

SourceForge Logo

Page created: Thu 22 Aug 2002
Last updated: Sun 15 Dec 2002
William H. Hsu
BNJ Development Team