--- a
+++ b/doc/html/using_pyke/adding_facts.html
@@ -0,0 +1,193 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
+<head>
+    <title>Asserting New Facts</title>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <link rel="stylesheet" href="../stylesheets/pyke.css" type="text/css" />
+</head>
+<body>
+  <table id="page-table">
+    <thead class="head">
+        <tr id="header1"><th id="header" colspan="3">
+            &nbsp;
+        </th></tr>
+        <tr id="header2">
+          <th id="crumb-left"></th>
+          <th id="crumb-line">
+            <div id="nav">
+              <ul>
+                  <li><a href="../index.html">Home</a></li>
+<li>&gt;</li>
+<li><a href="index.html">Using Pyke</a></li>
+<li>&gt;</li>
+<li>Asserting Facts</li>
+
+              </ul>
+            </div>
+          </th>
+          <th id="crumb-right"></th>
+        </tr>
+    </thead>
+
+    <tbody id="body">
+        <tr id="body-tr">
+          <td id="left-nav">
+            <div id="left-nav-div">
+              
+<div class="title-nav"><a href="../index.html">Home</a></div><div class="nav-branch">
+<div class="normal-nav"><a href="../about_pyke/index.html">About Pyke</a></div>
+<div class="normal-nav"><a href="../logic_programming/index.html">Logic Programming</a></div>
+<div class="normal-nav"><a href="../knowledge_bases/index.html">Knowledge Bases</a></div>
+<div class="normal-nav"><a href="../pyke_syntax/index.html">Pyke Syntax</a></div>
+
+<div class="title-nav"><a href="index.html">Using Pyke</a></div><div class="nav-branch">
+<div class="normal-nav"><a href="creating_engine.html">Creating an Engine</a></div>
+<div class="normal-nav"><a href="adding_facts.html">Asserting Facts</a></div>
+<div class="normal-nav"><a href="proving_goals.html">Proving Goals</a></div>
+<div class="normal-nav"><a href="other_functions.html">Other functions</a></div>
+</div>
+<div class="normal-nav"><a href="../examples.html">Examples</a></div>
+<div class="normal-nav"><a href="../PyCon2008-paper.html">PyCon 2008 Paper</a></div>
+</div>
+
+            </div>
+            <div id="icons">
+                <div id="project-page">
+                  <a href="http://sourceforge.net/projects/pyke/">Pyke Project Page</a>
+                </div>
+                Please Make a Donation:<br />
+                <a href="http://sourceforge.net/donate/index.php?group_id=207724">
+                  <img src="http://images.sourceforge.net/images/project-support.jpg"
+                       width="88" height="32" border="0"
+                       alt="Support This Project" /> </a> <br /><br />
+                Hosted by: <br />
+                <a href="http://sourceforge.net/projects/pyke">
+                  <img src="http://sflogo.sourceforge.net/sflogo.php?group_id=207724&amp;type=14"
+                       width="150" height="40"
+                       alt="Get Python Knowledge Engine (PyKE) at SourceForge.net. Fast, secure and Free Open Source software downloads" /></a>
+            </div>
+          </td>
+          <td id="main-td">
+            <div id="main">
+                <a name="startcontent" id="startcontent"></a>
+                <div class="document" id="asserting-new-facts">
+<h1 class="title">Asserting New Facts</h1>
+<!-- this code is hidden and will set __file__ to the doc/examples directory.
+>>> import os
+>>> __file__ = \
+...   os.path.join(os.path.dirname(os.path.dirname(os.getcwd())),
+...                'examples')
+>>> from pyke import knowledge_engine
+>>> my_engine = knowledge_engine.engine(__file__) -->
+<dl class="docutils">
+<dt><em>some_engine</em>.add_universal_fact(kb_name, fact_name, arguments)</dt>
+<dd><p class="first">The <tt class="docutils literal"><span class="pre">add_universal_fact</span></tt> function is called once per <a class="reference external" href="../knowledge_bases/fact_bases.html#facts">fact</a>.  These
+<a class="reference external" href="../knowledge_bases/fact_bases.html#facts">facts</a> are never deleted and apply to all <em>cases</em>.</p>
+<p>Alternatively, you can place universal facts in a <a class="reference external" href="../pyke_syntax/kfb_syntax.html">.kfb file</a> so that
+they are loaded automatically.</p>
+<pre class="doctest-block">
+&gt;&gt;&gt; my_engine.add_universal_fact('family', 'son_of', ('bruce', 'thomas'))
+</pre>
+<p>Multiple facts with the same name are allowed.</p>
+<pre class="doctest-block">
+&gt;&gt;&gt; my_engine.add_universal_fact('family', 'son_of', ('david', 'bruce'))
+</pre>
+<p>But duplicate facts (with the same arguments) are silently ignored.</p>
+<pre class="doctest-block">
+&gt;&gt;&gt; my_engine.add_universal_fact('family', 'son_of', ('david', 'bruce'))
+&gt;&gt;&gt; my_engine.get_kb('family').dump_universal_facts()
+son_of('bruce', 'thomas')
+son_of('david', 'bruce')
+</pre>
+<p class="last">These facts are accessed as <tt class="docutils literal"><span class="pre">kb_name.fact_name(arguments)</span></tt> within the
+<a class="reference external" href="../pyke_syntax/krb_syntax/index.html">.krb files</a>.</p>
+</dd>
+<dt><em>some_engine</em>.assert_(kb_name, fact_name, arguments)</dt>
+<dd><p class="first">Call <tt class="docutils literal"><span class="pre">assert_</span></tt> for each starting <a class="reference external" href="../knowledge_bases/fact_bases.html#facts">fact</a> for this case.  Like universal
+facts, you may have multiple facts with the same name so long as they
+have different arguments.</p>
+<pre class="doctest-block">
+&gt;&gt;&gt; my_engine.assert_('family', 'son_of', ('michael', 'bruce'))
+&gt;&gt;&gt; my_engine.assert_('family', 'son_of', ('fred', 'thomas'))
+&gt;&gt;&gt; my_engine.assert_('family', 'son_of', ('fred', 'thomas'))
+</pre>
+<p>Duplicates with universal facts are also ignored.</p>
+<pre class="doctest-block">
+&gt;&gt;&gt; my_engine.assert_('family', 'son_of', ('bruce', 'thomas'))
+&gt;&gt;&gt; my_engine.get_kb('family').dump_specific_facts()
+son_of('michael', 'bruce')
+son_of('fred', 'thomas')
+&gt;&gt;&gt; my_engine.get_kb('family').dump_universal_facts()
+son_of('bruce', 'thomas')
+son_of('david', 'bruce')
+</pre>
+<p>There is no difference within the <a class="reference external" href="../pyke_syntax/krb_syntax/index.html">.krb files</a> of how universal facts
+verses case specific facts are used.  The only difference between the two
+types of facts is that the case specific facts are deleted when a <tt class="docutils literal"><span class="pre">reset</span></tt>
+is done.</p>
+<pre class="last doctest-block">
+&gt;&gt;&gt; my_engine.reset()
+&gt;&gt;&gt; my_engine.get_kb('family').dump_specific_facts()
+&gt;&gt;&gt; my_engine.get_kb('family').dump_universal_facts()
+son_of('bruce', 'thomas')
+son_of('david', 'bruce')
+</pre>
+</dd>
+</dl>
+<!-- ADD_LINKS MARKER -->
+</div>
+
+                <!-- <div id="return-to-top">
+                       <a href="#">Return to Top</a>
+                     </div>
+                -->
+            </div>
+          </td>
+          <td id="right-nav">
+            <div id="right-nav-div">
+                <h3>More:</h3>
+<div class="right-item"><a href="creating_engine.html">Creating an Inference Engine Object</a><p>How to create a Pyke <em>inference engine</em> object.</p>
+</div>
+<div class="right-item"><a href="adding_facts.html">Asserting New Facts</a><p>How to dynamically assert new <em>facts</em> from your Python program.</p>
+</div>
+<div class="right-item"><a href="proving_goals.html">Proving Goals</a><p>Using Pyke's API to prove goals from your Python program.</p>
+</div>
+<div class="right-item"><a href="other_functions.html">Other Functions</a><p>Other miscellaneous functions available that you might be interested
+in.</p>
+</div>
+
+            </div>
+          </td>
+        </tr>
+    </tbody>
+
+    <tfoot id="foot">
+        <tr id="foot2">
+          <td id="copyright" colspan="3">
+            Copyright &copy; 2007-2009 Bruce Frederiksen
+          </td>
+        </tr>
+    </tfoot>
+  </table>
+
+  <div id="last-modified">
+    Page last modified
+    Mon, Mar 08 2010.
+
+  </div>
+
+  <script type="text/javascript">
+    var gaJsHost = (("https:" == document.location.protocol) ?
+                    "https://ssl." : "http://www.");
+    document.write(unescape("%3Cscript src='" + gaJsHost +
+        "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
+  </script>
+  <script type="text/javascript">
+    try {
+      var pageTracker = _gat._getTracker("UA-6310805-1");
+      pageTracker._trackPageview();
+    } catch(err) {}
+  </script>
+</body>
+</html>
+