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 ¬-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