

.. index:: Componens of the HUGIN Developement Environment

.. _Components_of_hugin_development_environment:

Components of the HUGIN Development Environment
===============================================

The HUGIN Development Environment has three main components: The HUGIN Decision Engine, a collection of Application Program Interfaces, and the HUGIN Graphical User Interface.

.. _Hugin_Decision_Engine:

The HUGIN Decision Engine
"""""""""""""""""""""""""""""""""""""""""""""""
The HUGIN Decision Engine (HDE) performs reasoning on a knowledge base represented as a Bayesian network or LIMID. The HDE performs all data processing and storage maintenance associated with the reasoning process. An important part of the HDE is the compiler, which transforms networks into efficient structures (known as junction trees), making possible to perform inference (reasoning) in the networks very efficiently. For small and medium sized networks, inference takes fractions of a second, and even for large networks it most often takes only a few seconds.

The HDE can be accessed through HUGIN Graphical User Interface, or it can be accessed from application programs using one of the HUGIN Application Program Interfaces.

.. _Application_Program_Interfaces:

Application Program Interfaces
"""""""""""""""""""""""""""""""""""""""""""""""
The HUGIN APIs (Application Program Interfaces) allow programmers can build knowledge-based applications, utilizing the power of the HUGIN Decision Engine for reasoning. When used through one of the HUGIN APIs, the HUGIN Decision Engine functions as an ordinary program library, giving the application programmer total control of events.

The HUGIN APIs are currently available as C, C++, .NET/.Net Core, Java, Python, Web Service API and Visual Basic on Windows via a COM interface.

You can download the HUGIN API reference manuals from the HUGIN web site.

HUGIN also offers APIs for Android and IOS. Please contact HUGIN at hugin@info.dk for more information.

The HUGIN Graphical User Interface
"""""""""""""""""""""""""""""""""""""""""""""""
The HUGIN Graphical User Interface is used to create and maintain network models as well as executing them (entering evidence and displaying resulting probability distributions and expected utilities). The HUGIN Graphical User Interface can operate in two different modes: Edit Mode and Run Mode. In Edit Mode, nodes can be created and linked, states and actions can be specified, and conditional probability tables and utility tables can be entered using a window-, menu- and mouse driven interface. In Run Mode, beliefs and utilities for individual nodes can be displayed. The user can enter evidence incrementally by selecting states/actions of individual nodes. The HUGIN Decision Engine can then be engaged, propagating the information to obtain revised probabilities and expected utilities.

Extra Features
"""""""""""""""""""""""""""""""""""""""""""""""

For extra performance gains, the HUGIN Decision Engine and compiler features a facility for compressing sparse probability tables. This can save considerable space and likewise considerably increase performance. The compiler and inference engine also features an option for approximating the probability tables to increase their scarcity. Combined with the compression, this can have dramatic effects on performance, with negligible effects on end results.