1<?xml version="1.0" encoding="UTF-8"?>
2
3<section id="netica"><title>Netica Interface</title>
4
5<para>This is an interface to the &netica-link; (&c-lang; API version 3.25)
6 for working with Bayesian belief networks and influence diagrams.</para>
7
8<para>The package <quote role="package">NETICA</quote> is &case-sensitive-k;,
9 e.g., you would write <code>(netica:GetNodeExpectedUtils_bn ...)</code>
10 when you need to call
11 <function role="netica">GetNodeExpectedUtils_bn</function>.</para>
12
13<simpara>When this module is present, &features-my;
14 contains the symbol <constant>:NETICA</constant>.</simpara>
15
16<para>All public &c-lang; functions are available as
17 &foreign-function-t;s.</para>
18
19<para>The functions which are specified to return &c-lang; arrays,
20namely <simplelist>
21 <member><function role="netica">GetNodeBeliefs_bn</function></member>
22 <member><function role="netica">GetNodeExpectedUtils_bn</function></member>
23 <member><function role="netica">GetNodeLikelihood_bn</function></member>
24 <member><function role="netica">GetNodeProbs_bn</function></member>
25 <member><function role="netica">GetNodeLevels_bn</function></member>
26 </simplelist> correspond to &foreign-function-t;s which return &c-pointer;s.
27 We define low level wrappers for them, namely <simplelist>
28 <member><function>GetNodeBeliefs</function></member>
29 <member><function>GetNodeExpectedUtils</function></member>
30 <member><function>GetNodeLikelihood</function></member>
31 <member><function>GetNodeProbs</function></member>
32 <member><function>GetNodeLevels</function></member>
33</simplelist> which return the appropriate &vector-t;s.</para>
34
35<para>Additionally, some higher level functionality is available
36 (see <filename role="clisp-cvs">modules/netica/demo.lisp</filename>
37 for sample usage):</para>
38
39<variablelist>
40<varlistentry><term><code>(netica:start-netica &key-amp;
41   :license :verbose)</code></term>
42 <listitem><simpara>Call <function role="netica">NewNeticaEnviron_ns</function>
43   and <function role="netica">InitNetica2_bn</function> and print some
44   statistics; initialize <varname>netica:*env*</varname>.
45</simpara></listitem></varlistentry>
46<varlistentry><term><code>(netica:check-errors &key-amp;
47   :env :clear :severity)</code></term>
48 <listitem><simpara>Show and, optionally, clear
49   (<function role="netica">ClearError_ns</function>), the errors of the
50   given severity (<function role="netica">ErrorSeverity_ns</function>)
51   and above.
52   You should call this function after <emphasis>every</emphasis> call
53   to a Netica function.  Every wrapper function in this list calls it,
54   so you do &not-e; need to call it after a call to a wrapper function.
55</simpara></listitem></varlistentry>
56<varlistentry><term><code>(netica:error-message error)</code></term>
57 <listitem><para>Convert netica error to a &string-t; containing<simplelist>
58    <member><function role="netica">ErrorCategory_ns</function></member>
59    <member><function role="netica">ErrorSeverity_ns</function></member>
60    <member><function role="netica">ErrorNumber_ns</function></member>
61    <member><function role="netica">ErrorMessage_ns</function></member>
62</simplelist></para></listitem></varlistentry>
63<varlistentry><term><code>(netica:close-netica &key-amp;
64   :env :verbose)</code></term>
65 <listitem><simpara>Terminate the Netica session.
66   Sets <varname>netica:*env*</varname> to &nil;.
67</simpara></listitem></varlistentry>
68<varlistentry><term><code>(netica:make-net &key-amp; :name
69   :comment :title :env :verbose)</code></term>
70 <listitem><simpara>Call <function role="netica">NewNet_bn</function>,
71   <function role="netica">SetNetTitle_bn</function> and
72   <function role="netica">SetNetComment_bn</function>.
73</simpara></listitem></varlistentry>
74<varlistentry><term><code>(netica:net-info net &key-amp; :out)</code></term>
75 <listitem><para>Print some information about the net:<simplelist>
76    <member><function role="netica">GetNetName_bn</function></member>
77    <member><function role="netica">GetNetTitle_bn</function></member>
78    <member><function role="netica">GetNetComment_bn</function></member>
79    <member><function role="netica">GetNetFileName_bn</function></member>
80    <member><function role="netica">GetNetNodes_bn</function></member>
81</simplelist></para></listitem></varlistentry>
82<varlistentry><term><code>(netica:make-node &key-amp;
83   :name :net :kind :levels :states :num-states :title :comment :parents
84   :cpt :x :y :env :verbose)</code></term>
85 <listitem><simpara>Call <function role="netica">NewNode_bn</function>
86   with the given name and many other parameters.
87</simpara></listitem></varlistentry>
88<varlistentry><term><code>(netica:node-info node
89   &key-amp; :header :out)</code></term>
90 <listitem><simpara>Print some information about the node, preceded by
91   the header.</simpara></listitem></varlistentry>
92<varlistentry><term><code>(netica:get-beliefs node
93   &key-amp; :env :verbose)</code></term>
94 <listitem><simpara>Call <function role="netica">GetNodeBeliefs_bn</function>
95   on the node and pretty-print the results when &verbose-k;
96   is non-&nil;.</simpara></listitem></varlistentry>
97<varlistentry><term><code>(netica:enter-finding net node
98   state &key-amp; :env :verbose)</code></term>
99 <listitem><simpara>Call <function role="netica">EnterFinding_bn</function>
100   using <function role="netica">GetNodeNamed_bn</function>
101   and <function role="netica">GetStateNamed_bn</function>.
102</simpara></listitem></varlistentry>
103<varlistentry><term><code>(netica:save-net net &key-amp;
104   :file :env :verbose)</code></term>
105 <listitem><simpara>Call <function role="netica">WriteNet_bn</function>.
106</simpara></listitem></varlistentry>
107<varlistentry><term><code>(netica:read-net file &key-amp;
108   :env :verbose)</code></term>
109 <listitem><simpara>Call <function role="netica">ReadNet_bn</function>.
110</simpara></listitem></varlistentry>
111<varlistentry><term><code>(netica:with-open-dne-file (var
112   file &rest-amp; opts) &body-amp; body)</code></term>
113 <listitem><simpara>Call <function role="netica">NewFileStream_ns</function>,
114   execute &body-r;, then <function role="netica">DeleteStream_ns</function>
115   - just like &with-open-stream;.</simpara></listitem></varlistentry>
116<varlistentry><term><varname>netica:*verbose*</varname></term>
117 <listitem><simpara>The log &stream-t; or &nil;; the default value for
118   the &verbose-k; argument (initially set to &nil;).
119</simpara></listitem></varlistentry>
120<varlistentry><term><varname>netica:*license*</varname></term>
121 <listitem><simpara>The license key provided by
122   <ulink url="http://norsys.com/">Norsys</ulink>; the default value
123   for the <literal>:LICENSE</literal> argument.
124</simpara></listitem></varlistentry>
125<varlistentry><term><varname>netica:*env*</varname></term>
126 <listitem><simpara>The Netica environment object; the default value
127   for the <literal>:ENV</literal> argument.
128</simpara></listitem></varlistentry>
129</variablelist>
130
131</section>
132