Each Netica API has the following features:
- World-renowned Engine. All Netica products are founded
on the same core software engine. This engine has seen fourteen years of service,
enhancement, and field testing, and is now a
trusted component of many of the world's leading-edge Bayesian Network applications.
- Interoperability. All of the Netica APIs use the same Bayesian network
file formats as Netica Application,
so they can share networks and case files amongst each other.
- Broad Platform Support. Versions of Netica API are available
for Microsoft Windows (95/NT4 to XP), Linux, Sun Sparc, Macintosh (OS 6 to OS-X),
Silicon Graphics and DOS. Each of these has an identical interface,
so you can move your code between these platforms without changing anything
to do with the Netica API. Versions of Netica exist for Java, C, and Visual Basic, and
many languages (e.g., C++, Delphi, Pascal, Lisp, Fortran, Cobol) can use the C version.
Versions are similar in design to allow for easier porting.
- Encryption. Applications using proprietary Bayes nets can be deployed
while keeping the underlying Bayes nets securely hidden.
- Strict Quality Assurance. Before releasing any new version of the Netica API,
every function is put
through rigorous Quality Assurance testing to make sure it operates
as designed. Hundreds of real networks and thousands of random networks
are generated and solved in multiple ways to check the inference results.
BoundsChecker and Purify are used to make sure there are no memory leaks
or other memory faults. This level of Quality Assurance combined with
a careful initial design and eight years of extensive customer usage
has resulted in a rock-solid product.
- Prompt Support. If you ever find a bug in a Netica API and describe it to us
in a detailed enough form that we can reproduce it,
we will make it our top priority to fix the bug, and send you a
corrected version or a work-around, and aim to do so within 2 weeks.
- Forward Compatibility. Netica APIs are designed to be easily extended in the
future without changing what already exists, so you will not have to change your software.
- Growth and Continued Support. Many new features are currently
under development, and will be incorporated into future versions. The
API will continue to be extended for years to come.
If you are an experienced software developer, you will appreciate the following features:
- Speed. The Netica API inference engine has been optimized for speed.
It uses the fastest exact algorithms; for example, it compiles Bayes nets and influence diagrams
into a junction tree of cliques for fast probabilistic reasoning.
- Documentation. Each API comes with excellent documentation including example
programs and detailed
descriptions of each function. They come with a colorized PDF manual suitable for printing,
as well as a hypertext point-and-click on-line HTML manual that makes searching for function
definitions very fast and easy. The C-API version of the PDF manual includes introductory chapters on Bayes nets,
decision networks, learning, and more.
- Surprise-free, Deterministic Behavior.
Programs that use the API completely control it.
No API function will ever take any action until called. The API will not
do any I/O unless requested to, and all functions take a predictable
amount of time before returning. Also, a limit may be set on the maximum amount of memory that Netica will use.
- Name-space Freedom. Care has been taken to make the Netica API library functions good
project citizens. The Netica APIs can be used with other libraries and
won't interfere with them.
- Minimal Dependencies. The C-API does not require any other library
than the Standard C library. The Java-API does not require any other set of java packages
than those that come with a standard Java 2 environment.
- Meets Developer Expectations. Each API has an orientation that is suited to developers in that particular programming language. Naming conventions are respected. Exception handling is employed,
if available. Appropriate I/O streaming packages are employed. If variable prototypes are
supported, they are used in a way that is natural.
- 100% Compatibility with Netica Application. Many developers find it invaluable to use the
as a graphical user interface (Windows version
only) to the same Bayes nets Netica API uses.
- Thread Safe. Can safely be used in a multithreading environment.
- Database Connectivity. Allows direct connection to most database software.
- User Data Support. Every node and network can store by name
arbitrary data fields defined by you. These are saved to file when the object in question is being saved.
- Flexible Argument Validation. The programmer can control how carefully
API functions check their arguments when they are called,
including a "development mode" to extensively
check everything passed to an API function.
- Error Handling. The APIs have a simple but powerful method for
handling usage errors, which can generate very detailed error messages if desired.
The API makes use of exception-handling in those languages that support it.
If you are knowledgeable about Bayesian Networks, you will especially
appreciate the following features:
- Learning. Probabilistic relations can be learned from case data,
even while the net is being used for probabilistic inference. Learning from data can be
combined with entry by hand and representation by equations. It can handle missing data and
latent variables or hidden nodes. Learning algorithms include: counting, sequential updating,
fractional updating, EM (expectation maximization), gradient descent and TAN.
- Advanced Decision Nets. Can solve influence diagrams which have
multiple utility and decision nodes to find optimal decisions and
conditional plans, using a junction tree algorithm for speed. Handles
multi-stage decision problems, where later decisions depend on the
outcomes of earlier ones, and on observations not initially known.
No-forgetting links need not be explicitly specified.
- Equation Support. Large and complex probability
tables do not need to be entered by hand, if they can be expressed by an equation.
The equation language follows a Java/C++ syntax and contains an extensive library of built-in
functions, including all the standard math
functions and common probability distributions, as well as some functions and
distributions suited to Bayes nets, such as Noisy-or, Noisy-max, Noisy-sum, etc.
- Sophisticated Findings Support. Netica API not only supports
the traditional state and real-valued findings, but also virtual evidence,
likelihood findings, gaussian distribution findings, interval findings,
and negative findings (those claiming that some variable is not
in some state).
- Case Support. Can save individual cases (i.e., sets of findings) to file,
and manipulate files of cases. Handles incomplete cases. Can associate a
multiplicity and identification number with each case. Allows direct connection
to most databases, for case management.
- Simulation Support. Can do sampling (discrete simulation)
to generate random cases with a probability distribution matching the Bayes net.
Can use a junction tree algorithm for speed, or direct sampling for nets too large
to generate CPTs or a junction tree.
- Sensitivity. Netica can efficiently measure the degree to
which findings at any node can influence the beliefs at another node, given the findings
currently entered. The measures can be in the form of mutual information (entropy reduction),
or the expected reduction of real variance.
- Dynamic Construction. Can build networks "on the fly" in memory
to support working with dynamic Bayes nets (DBNs).
- Junction Tree Algorithm. Can compile Bayes nets and influence
diagrams into a junction tree of cliques for fast probabilistic inference. An elimination
order can be set or Netica can determine one automatically, and Netica can report on
the resulting junction tree.
- Link Reversal. It can reverse individual links or
"sum out" (absorb) nodes while maintaining the same joint probability distribution,
properly accounting for any findings in the removed nodes or other nodes.
- Disconnected Link Support. Links may be individually
named and disconnected from parent or child nodes, thus making possible libraries of
network fragments which you may then copy and connect to other networks or node configurations.
Versions of Netica API are available for most popular platforms,
including Microsoft Windows 95/98/Me/NT4/2000/XP/Vista,
Linux, Sun Sparc, Mac (68000, PPC: OS 6 to 9 & OS-X), Silicon Graphics and DOS.
If your platform is not on this list, please contact us about
the possibility of building a custom version for you.
|Educational / Personal
|C-API Manual + shipping
|Java-API Manual + shipping
|CD-ROM (alone / with Manual)
|| $45 / $35*
|Volume or Site license
|| Contact Norsys
* The printed manual and physical CD-ROM disk need not be purchased.
Each download distribution comes with a complete manual that you can print yourself. You can also access our online
user docs: C API Webdocs
Java API javadocs
All prices are in US dollars,
and include technical support and free upgrades for one
year (by download). More pricing info.
Your license to the Netica API is to the entire family of APIs. So, if you decide to switch
programming languages, that is not a problem.
When you purchase a license you receive a license-key. The same license-key works across all the APIs.
- Your license comes with legal rights and obligations.
The Netica API is a separate product from the Netica Application. Each requires a
Buy Netica API now!
A free version of each Netica API is available. The free version has
the entire set of functionality as the licensed version and it is not time-limited.
It is, however, limited in the size of any net you can
construct and save. It is a great vehicle for learning about Bayes nets
and about Netica's capability.
To use the free version of an API, simply download the regular version of that API,
and pass null to the function expecting the license string.
To download an API for a particular platform, click on one of the following:
If Netica API is used within a commercial product, then a per copy license fee
applies, and this must be arranged with Norsys depending on the volume
of the product, the price of the product, etc., but is generally very
If Netica API is used in a web server, a special license is required.
Contact Norsys for more info.
The purchase price includes support via the Internet. For
additional support, a service contract is available from Norsys.
You can download new and pre-release versions of Netica and enable them with the same license string as
you were originally supplied. Your license string will last for at least a year.
If you are a client of ours, and you find a bug in a Netica API and
describe it to us in a detailed enough form that we can reproduce it,
then we will make it a top priority to fix the bug, and send you a
corrected version or work-around, and aim to do so within two weeks.
To email technical support, click here.