Added cloverage output to archive

This commit is contained in:
Simon Brooke 2020-05-01 10:38:15 +01:00
parent 81a4426235
commit d539caf25a
No known key found for this signature in database
GPG key ID: A7A4F18D1D4DF987
11 changed files with 1628 additions and 10 deletions

View file

@ -0,0 +1,40 @@
.covered {
font-family: 'Bitstream Vera Sans Mono', 'Courier', monospace;
background-color: #558B55;
}
.not-covered {
font-family: 'Bitstream Vera Sans Mono', 'Courier', monospace;
background-color: red;
}
.partial {
font-family: 'Bitstream Vera Sans Mono', 'Courier', monospace;
background-color: orange;
}
.not-tracked {
font-family: 'Bitstream Vera Sans Mono', 'Courier', monospace;
}
.blank {
font-family: 'Bitstream Vera Sans Mono', 'Courier', monospace;
}
td {
padding-right: 10px;
}
td.with-bar {
width: 250px;
text-align: center;
}
td.with-number {
text-align: right;
}
td.ns-name {
min-width: 150px;
padding-right: 25px;
}

135
docs/cloverage/index.html Normal file
View file

@ -0,0 +1,135 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="./coverage.css"/>
<title>Coverage Summary</title>
</head>
<body>
<table>
<thead><tr>
<td class="ns-name"> Namespace </td>
<td class="with-bar"> Forms </td>
<td class="with-number">Forms %</td>
<td class="with-bar"> Lines </td>
<td class="with-number">Lines %</td>
<td class="with-number">Total</td><td class="with-number">Blank</td><td class="with-number">Instrumented</td>
</tr></thead>
<tr>
<td><a href="wildwood/advocate.clj.html">wildwood.advocate</a></td><td class="with-bar"><div class="covered"
style="width:100.0%;
float:left;"> 2 </div></td>
<td class="with-number">100.00 %</td>
<td class="with-bar"><div class="covered"
style="width:100.0%;
float:left;"> 2 </div></td>
<td class="with-number">100.00 %</td>
<td class="with-number">47</td><td class="with-number">5</td><td class="with-number">2</td>
</tr>
<tr>
<td><a href="wildwood/bialowieza.clj.html">wildwood.bialowieza</a></td><td class="with-bar"><div class="covered"
style="width:66.66666666666667%;
float:left;"> 2 </div><div class="not-covered"
style="width:33.333333333333336%;
float:left;"> 1 </div></td>
<td class="with-number">66.67 %</td>
<td class="with-bar"><div class="covered"
style="width:50.0%;
float:left;"> 1 </div><div class="partial"
style="width:50.0%;
float:left;"> 1 </div></td>
<td class="with-number">100.00 %</td>
<td class="with-number">30</td><td class="with-number">7</td><td class="with-number">2</td>
</tr>
<tr>
<td><a href="wildwood/caesar.clj.html">wildwood.caesar</a></td><td class="with-bar"><div class="covered"
style="width:100.0%;
float:left;"> 353 </div></td>
<td class="with-number">100.00 %</td>
<td class="with-bar"><div class="covered"
style="width:100.0%;
float:left;"> 38 </div></td>
<td class="with-number">100.00 %</td>
<td class="with-number">144</td><td class="with-number">37</td><td class="with-number">38</td>
</tr>
<tr>
<td><a href="wildwood/dengine/engine.clj.html">wildwood.dengine.engine</a></td><td class="with-bar"><div class="covered"
style="width:66.66666666666667%;
float:left;"> 2 </div><div class="not-covered"
style="width:33.333333333333336%;
float:left;"> 1 </div></td>
<td class="with-number">66.67 %</td>
<td class="with-bar"><div class="covered"
style="width:50.0%;
float:left;"> 1 </div><div class="partial"
style="width:50.0%;
float:left;"> 1 </div></td>
<td class="with-number">100.00 %</td>
<td class="with-number">13</td><td class="with-number">1</td><td class="with-number">2</td>
</tr>
<tr>
<td><a href="wildwood/dengine/node.clj.html">wildwood.dengine.node</a></td><td class="with-bar"><div class="covered"
style="width:60.0%;
float:left;"> 3 </div><div class="not-covered"
style="width:40.0%;
float:left;"> 2 </div></td>
<td class="with-number">60.00 %</td>
<td class="with-bar"><div class="covered"
style="width:33.333333333333336%;
float:left;"> 1 </div><div class="partial"
style="width:66.66666666666667%;
float:left;"> 2 </div></td>
<td class="with-number">100.00 %</td>
<td class="with-number">15</td><td class="with-number">3</td><td class="with-number">3</td>
</tr>
<tr>
<td><a href="wildwood/knowledge_accessor.clj.html">wildwood.knowledge-accessor</a></td><td class="with-bar"><div class="covered"
style="width:100.0%;
float:left;"> 2 </div></td>
<td class="with-number">100.00 %</td>
<td class="with-bar"><div class="covered"
style="width:100.0%;
float:left;"> 2 </div></td>
<td class="with-number">100.00 %</td>
<td class="with-number">34</td><td class="with-number">6</td><td class="with-number">2</td>
</tr>
<tr>
<td><a href="wildwood/mongo_ka.clj.html">wildwood.mongo-ka</a></td><td class="with-bar"><div class="covered"
style="width:5.0%;
float:left;"> 2 </div><div class="not-covered"
style="width:95.0%;
float:left;"> 38 </div></td>
<td class="with-number">5.00 %</td>
<td class="with-bar"><div class="covered"
style="width:18.181818181818183%;
float:left;"> 2 </div><div class="not-covered"
style="width:81.81818181818181%;
float:left;"> 9 </div></td>
<td class="with-number">18.18 %</td>
<td class="with-number">47</td><td class="with-number">4</td><td class="with-number">11</td>
</tr>
<tr>
<td><a href="wildwood/schema.clj.html">wildwood.schema</a></td><td class="with-bar"><div class="covered"
style="width:97.6608187134503%;
float:left;"> 167 </div><div class="not-covered"
style="width:2.3391812865497075%;
float:left;"> 4 </div></td>
<td class="with-number">97.66 %</td>
<td class="with-bar"><div class="covered"
style="width:92.3076923076923%;
float:left;"> 48 </div><div class="partial"
style="width:5.769230769230769%;
float:left;"> 3 </div><div class="not-covered"
style="width:1.9230769230769231%;
float:left;"> 1 </div></td>
<td class="with-number">98.08 %</td>
<td class="with-number">129</td><td class="with-number">15</td><td class="with-number">52</td>
</tr>
<tr><td>Totals:</td>
<td class="with-bar"></td>
<td class="with-number">92.06 %</td>
<td class="with-bar"></td>
<td class="with-number">91.07 %</td>
</tr>
</table>
</body>
</html>

View file

@ -0,0 +1,149 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="../coverage.css"/> <title> wildwood/advocate.clj </title>
</head>
<body>
<span class="covered" title="1 out of 1 forms covered">
001&nbsp;&nbsp;(ns&nbsp;wildwood.advocate
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
002&nbsp;&nbsp;&nbsp;&nbsp;&quot;An&nbsp;agent&nbsp;capable&nbsp;of&nbsp;playing&nbsp;the&nbsp;explanation&nbsp;game.
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
003&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
004&nbsp;&nbsp;&nbsp;&nbsp;An&nbsp;advocate&nbsp;must&nbsp;have&nbsp;its&nbsp;own&nbsp;knowledge&nbsp;accessor.&nbsp;Different&nbsp;advocates
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
005&nbsp;&nbsp;&nbsp;&nbsp;within&nbsp;a&nbsp;game&nbsp;may&nbsp;be&nbsp;accessing&nbsp;different&nbsp;knowledge&nbsp;bases,&nbsp;or&nbsp;different
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
006&nbsp;&nbsp;&nbsp;&nbsp;subsets&nbsp;of&nbsp;the&nbsp;same&nbsp;knowledge&nbsp;base&nbsp;with&nbsp;different&nbsp;-&nbsp;potentially&nbsp;competing
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
007&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;knowledge.&nbsp;It&nbsp;also&nbsp;needs&nbsp;to&nbsp;know&nbsp;the&nbsp;schema&nbsp;in&nbsp;which&nbsp;knowledge&nbsp;will&nbsp;be
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
008&nbsp;&nbsp;&nbsp;&nbsp;presented.
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
009&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
010&nbsp;&nbsp;&nbsp;&nbsp;Since&nbsp;the&nbsp;mechanism&nbsp;by&nbsp;which&nbsp;the&nbsp;application&nbsp;will&nbsp;communicate&nbsp;with&nbsp;the
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
011&nbsp;&nbsp;&nbsp;&nbsp;library&nbsp;must&nbsp;include&nbsp;a&nbsp;way&nbsp;for&nbsp;users&nbsp;to&nbsp;interact&nbsp;with&nbsp;the&nbsp;game,&nbsp;and
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
012&nbsp;&nbsp;&nbsp;&nbsp;since&nbsp;the&nbsp;role&nbsp;of&nbsp;the&nbsp;user&nbsp;in&nbsp;the&nbsp;came&nbsp;is&nbsp;just&nbsp;as&nbsp;a&nbsp;participant,
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
013&nbsp;&nbsp;&nbsp;&nbsp;advocate&nbsp;must&nbsp;be&nbsp;defined&nbsp;as&nbsp;a&nbsp;protocol,&nbsp;in&nbsp;order&nbsp;that&nbsp;it&nbsp;may&nbsp;be&nbsp;extended
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
014&nbsp;&nbsp;&nbsp;&nbsp;by&nbsp;code&nbsp;within&nbsp;the&nbsp;application&nbsp;which&nbsp;is&nbsp;passed&nbsp;in&nbsp;to&nbsp;the&nbsp;game&nbsp;when&nbsp;the
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
015&nbsp;&nbsp;&nbsp;&nbsp;game&nbsp;is&nbsp;started.&nbsp;Indeed,&nbsp;multiple&nbsp;agents&nbsp;-&nbsp;the&nbsp;user(s)&nbsp;and&nbsp;potentially
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
016&nbsp;&nbsp;&nbsp;&nbsp;non-player&nbsp;characters&nbsp;-&nbsp;may&nbsp;be&nbsp;passed&nbsp;in.
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
017&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
018&nbsp;&nbsp;&nbsp;&nbsp;In&nbsp;this&nbsp;conception,&nbsp;nothing&nbsp;within&nbsp;a&nbsp;default&nbsp;advocate&nbsp;has&nbsp;to&nbsp;be&nbsp;able&nbsp;to
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
019&nbsp;&nbsp;&nbsp;&nbsp;produce&nbsp;or&nbsp;consume&nbsp;natural&nbsp;language.&nbsp;It&nbsp;is&nbsp;sufficient&nbsp;for&nbsp;the&nbsp;API&nbsp;exposed
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
020&nbsp;&nbsp;&nbsp;&nbsp;by&nbsp;wildwood.advocate&nbsp;to&nbsp;receive&nbsp;and&nbsp;return&nbsp;wildwood.schema&nbsp;objects.
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
021&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
022&nbsp;&nbsp;&nbsp;&nbsp;Obviously&nbsp;to&nbsp;show&nbsp;a&nbsp;user&nbsp;interface&nbsp;anything&nbsp;similar&nbsp;to&nbsp;Arden&#x27;s,&nbsp;or&nbsp;for
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
023&nbsp;&nbsp;&nbsp;&nbsp;what&nbsp;I&nbsp;intend&nbsp;for&nbsp;The&nbsp;Great&nbsp;Game,&nbsp;the&nbsp;advocates&nbsp;passed&nbsp;must&nbsp;&#x27;at&nbsp;their
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
024&nbsp;&nbsp;&nbsp;&nbsp;other&nbsp;end&#x27;&nbsp;-&nbsp;that&nbsp;is,&nbsp;on&nbsp;the&nbsp;application&nbsp;side&nbsp;rather&nbsp;than&nbsp;the&nbsp;library
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
025&nbsp;&nbsp;&nbsp;&nbsp;side&nbsp;-&nbsp;be&nbsp;able&nbsp;to&nbsp;consume&nbsp;and&nbsp;emit&nbsp;natural&nbsp;language,&nbsp;but&nbsp;that&nbsp;functionality
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
026&nbsp;&nbsp;&nbsp;&nbsp;does&nbsp;not&nbsp;need&nbsp;to&nbsp;be&nbsp;part&nbsp;of&nbsp;the&nbsp;wildwood&nbsp;library,&nbsp;and&nbsp;certainly&nbsp;does
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
027&nbsp;&nbsp;&nbsp;&nbsp;not&nbsp;need&nbsp;to&nbsp;be&nbsp;part&nbsp;of&nbsp;the&nbsp;default&nbsp;advocate&nbsp;as&nbsp;specified&nbsp;here.&quot;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
028&nbsp;&nbsp;&nbsp;&nbsp;(:require&nbsp;[wildwood.knowledge-accessor&nbsp;:refer&nbsp;[Accessor]]
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
029&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[wildwood.schema&nbsp;:refer&nbsp;[proposition?&nbsp;argument?]]))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
030&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
031&nbsp;&nbsp;(defprotocol&nbsp;Advocate
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
032&nbsp;&nbsp;&nbsp;&nbsp;(record&nbsp;[self&nbsp;proposition&nbsp;value]
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
033&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;Pass&nbsp;a&nbsp;`proposition`&nbsp;with&nbsp;a&nbsp;determined&nbsp;`value`&nbsp;to&nbsp;me,&nbsp;in&nbsp;order&nbsp;that
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
034&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;advocates&nbsp;can,&nbsp;if&nbsp;desired,&nbsp;record&nbsp;the&nbsp;determined&nbsp;value&nbsp;in&nbsp;their
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
035&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;knowledge&nbsp;base.&nbsp;The&nbsp;API&nbsp;does&nbsp;not&nbsp;require&nbsp;that&nbsp;the&nbsp;advocate&nbsp;records
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
036&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;decision,&nbsp;only&nbsp;that&nbsp;it&nbsp;has&nbsp;the&nbsp;opportunity&nbsp;to&nbsp;do&nbsp;so.&nbsp;Return&nbsp;the
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
037&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value.&quot;)
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
038&nbsp;&nbsp;&nbsp;&nbsp;(id&nbsp;[self]&nbsp;&quot;Return&nbsp;a&nbsp;value&nbsp;which&nbsp;uniquely&nbsp;identifies&nbsp;this&nbsp;agent.&quot;)
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
039&nbsp;&nbsp;&nbsp;&nbsp;(decide&nbsp;[self&nbsp;proposition&nbsp;argument]
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
040&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;Return&nbsp;`true`,&nbsp;`false`&nbsp;or&nbsp;`nil`&nbsp;as&nbsp;the&nbsp;value&nbsp;of&nbsp;this&nbsp;`proposition`,
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
041&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;given&nbsp;this&nbsp;`argument`.&nbsp;The&nbsp;value&nbsp;of&nbsp;`proposition`&nbsp;should&nbsp;be&nbsp;a
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
042&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proposition&nbsp;as&nbsp;defined&nbsp;by&nbsp;`wildwood.schema&#x2F;proposition?`;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
043&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;value&nbsp;of&nbsp;`argument`&nbsp;should&nbsp;satisfy&nbsp;`wildwood.schema&#x2F;argument?`.&quot;)
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
044&nbsp;&nbsp;&nbsp;&nbsp;(move&nbsp;[self&nbsp;proposition&nbsp;argument]
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
045&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;Return&nbsp;a&nbsp;new&nbsp;argument&nbsp;structure&nbsp;representing&nbsp;the&nbsp;result&nbsp;of&nbsp;applying&nbsp;my
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
046&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`decide`&nbsp;method&nbsp;to&nbsp;this&nbsp;`proposition`&nbsp;and&nbsp;`argument`,&nbsp;specifying&nbsp;in
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
047&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;some&nbsp;way&nbsp;not&nbsp;yet&nbsp;determined&nbsp;what&nbsp;sort&nbsp;of&nbsp;move&nbsp;I&nbsp;have&nbsp;made.&quot;))
</span><br/>
</body>
</html>

View file

@ -0,0 +1,98 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="../coverage.css"/> <title> wildwood/bialowieza.clj </title>
</head>
<body>
<span class="covered" title="1 out of 1 forms covered">
001&nbsp;&nbsp;(ns&nbsp;wildwood.bialowieza
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
002&nbsp;&nbsp;&nbsp;&nbsp;&quot;The&nbsp;second&nbsp;iteration&nbsp;of&nbsp;the&nbsp;core&nbsp;inference&nbsp;engine&nbsp;for&nbsp;Wildwood&quot;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
003&nbsp;&nbsp;&nbsp;&nbsp;(:require&nbsp;[wildwood.advocate&nbsp;:refer&nbsp;[Advocate]]
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
004&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[wildwood.schema&nbsp;:refer&nbsp;[proposition?]]))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
005&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
006&nbsp;&nbsp;&nbsp;&nbsp;;;&nbsp;to&nbsp;start&nbsp;a&nbsp;game&nbsp;we&nbsp;must&nbsp;have&nbsp;n&nbsp;advocates,&nbsp;where&nbsp;n&nbsp;&gt;&nbsp;1.&nbsp;Each&nbsp;must&nbsp;have
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
007&nbsp;&nbsp;&nbsp;&nbsp;;;&nbsp;its&nbsp;own&nbsp;knowledge&nbsp;accessor,&nbsp;so&nbsp;at&nbsp;the&nbsp;level&nbsp;of&nbsp;the&nbsp;game&nbsp;engine&nbsp;we&nbsp;don&#x27;t
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
008&nbsp;&nbsp;&nbsp;&nbsp;;;&nbsp;need&nbsp;to&nbsp;know&nbsp;how&nbsp;to&nbsp;access&nbsp;knowledge.
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
009&nbsp;&nbsp;
</span><br/>
<span class="partial" title="1 out of 2 forms covered">
010&nbsp;&nbsp;&nbsp;&nbsp;(defn&nbsp;decide
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
011&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;Decide&nbsp;the&nbsp;truth&nbsp;value&nbsp;of&nbsp;this&nbsp;`proposition`&nbsp;by&nbsp;convening&nbsp;a&nbsp;game&nbsp;between
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
012&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;these&nbsp;advocate&nbsp;`agents`.&nbsp;Iterate&nbsp;the&nbsp;game&nbsp;until&nbsp;all&nbsp;agents&nbsp;PASS;&nbsp;then&nbsp;finally
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
013&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;offer&nbsp;each&nbsp;agent&#x27;s&nbsp;`record`&nbsp;method&nbsp;the&nbsp;`proposition`&nbsp;together&nbsp;with&nbsp;the
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
014&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;decided&nbsp;truth&nbsp;value&nbsp;(`true`&nbsp;or&nbsp;`false`),&nbsp;before&nbsp;returning&nbsp;that&nbsp;value.
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
015&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
016&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;`proposition`&nbsp;is&nbsp;a&nbsp;proposition&nbsp;as&nbsp;defined&nbsp;in&nbsp;the&nbsp;`wildwood.schema`;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
017&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;that&nbsp;is&nbsp;to&nbsp;say,&nbsp;the&nbsp;predicate&nbsp;`wildwood.schema&#x2F;predicate?`&nbsp;returns&nbsp;true
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
018&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;of&nbsp;it.&nbsp;If&nbsp;the&nbsp;proposition&nbsp;isn&#x27;t&nbsp;a&nbsp;predicate,&nbsp;throw&nbsp;an&nbsp;exception.
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
019&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
020&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Each&nbsp;of&nbsp;`agents`&nbsp;should&nbsp;be&nbsp;an&nbsp;object&nbsp;implementing&nbsp;the
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
021&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`wildwood.advocate&#x2F;Advocate`&nbsp;protocol.&nbsp;If&nbsp;an&nbsp;agent&nbsp;isn&#x27;t&nbsp;an&nbsp;Advocate,
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
022&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throw&nbsp;an&nbsp;exception.
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
023&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
024&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Do&nbsp;not&nbsp;throw&nbsp;an&nbsp;exception&nbsp;under&nbsp;any&nbsp;other&nbsp;circumstances.
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
025&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
026&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;an&nbsp;agent&nbsp;throws&nbsp;an&nbsp;exception,&nbsp;catch&nbsp;it&nbsp;and&nbsp;treat&nbsp;it&nbsp;as&nbsp;a&nbsp;PASS.&quot;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
027&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[proposition&nbsp;&amp;&nbsp;agents]
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
028&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;&nbsp;TODO:&nbsp;actually&nbsp;write&nbsp;it.
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
029&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
030&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;false)
</span><br/>
</body>
</html>

View file

@ -0,0 +1,440 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="../coverage.css"/> <title> wildwood/caesar.clj </title>
</head>
<body>
<span class="covered" title="1 out of 1 forms covered">
001&nbsp;&nbsp;(ns&nbsp;wildwood.caesar
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
002&nbsp;&nbsp;&nbsp;&nbsp;&quot;A&nbsp;dummy&nbsp;set&nbsp;of&nbsp;advocates&nbsp;and&nbsp;knowledge&nbsp;accessors&nbsp;with&nbsp;knowledge&nbsp;about&nbsp;the
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
003&nbsp;&nbsp;&nbsp;&nbsp;death&nbsp;of&nbsp;Julius&nbsp;Caesar.
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
004&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
005&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;The&nbsp;Case&nbsp;Against&nbsp;Marcus&nbsp;Brutus
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
006&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
007&nbsp;&nbsp;&nbsp;&nbsp;Did&nbsp;Brutus&nbsp;conspire&nbsp;to&nbsp;kill&nbsp;Caesar&nbsp;in&nbsp;the&nbsp;forum&nbsp;in&nbsp;the&nbsp;Ides&nbsp;of&nbsp;March?
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
008&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
009&nbsp;&nbsp;&nbsp;&nbsp;Falco,&nbsp;the&nbsp;detective,&nbsp;must&nbsp;find&nbsp;out.
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
010&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
011&nbsp;&nbsp;&nbsp;&nbsp;##&nbsp;The&nbsp;witnesses
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
012&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
013&nbsp;&nbsp;&nbsp;&nbsp;Anthony&nbsp;knows&nbsp;that&nbsp;Brutus&nbsp;is&nbsp;honourable,&nbsp;and&nbsp;that&nbsp;Caesar&nbsp;is&nbsp;buried.
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
014&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
015&nbsp;&nbsp;&nbsp;&nbsp;Brutus&nbsp;will&nbsp;admit&nbsp;he&nbsp;was&nbsp;in&nbsp;the&nbsp;forum&nbsp;on&nbsp;the&nbsp;ides&nbsp;of&nbsp;March&nbsp;and&nbsp;is&nbsp;a&nbsp;witness
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
016&nbsp;&nbsp;&nbsp;&nbsp;that&nbsp;Cassius&nbsp;was&nbsp;also&nbsp;present.
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
017&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
018&nbsp;&nbsp;&nbsp;&nbsp;Cassius&nbsp;and&nbsp;Longus&nbsp;each&nbsp;bear&nbsp;witness&nbsp;that&nbsp;the&nbsp;other&nbsp;killed&nbsp;Caesar&nbsp;in&nbsp;the
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
019&nbsp;&nbsp;&nbsp;&nbsp;Forum&nbsp;on&nbsp;the&nbsp;Ides&nbsp;of&nbsp;March.
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
020&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
021&nbsp;&nbsp;&nbsp;&nbsp;Drusilla&nbsp;believes&nbsp;that&nbsp;Brutus&nbsp;killed&nbsp;Caesar&nbsp;in&nbsp;the&nbsp;Forum&nbsp;on&nbsp;the&nbsp;Ides&nbsp;of
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
022&nbsp;&nbsp;&nbsp;&nbsp;March,&nbsp;but&nbsp;was&nbsp;not&nbsp;a&nbsp;witness.&nbsp;She&nbsp;also&nbsp;bears&nbsp;witness&nbsp;that&nbsp;Caesar&nbsp;was&nbsp;buried
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
023&nbsp;&nbsp;&nbsp;&nbsp;on&nbsp;the&nbsp;18th&nbsp;March.
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
024&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
025&nbsp;&nbsp;&nbsp;&nbsp;Gaius&nbsp;believes&nbsp;that&nbsp;Brutus&nbsp;killed&nbsp;Caesar&nbsp;in&nbsp;the&nbsp;Forum&nbsp;in&nbsp;April,&nbsp;but&nbsp;was&nbsp;not
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
026&nbsp;&nbsp;&nbsp;&nbsp;a&nbsp;witness.
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
027&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
028&nbsp;&nbsp;&nbsp;&nbsp;##&nbsp;The&nbsp;rules
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
029&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
030&nbsp;&nbsp;&nbsp;&nbsp;There&nbsp;is&nbsp;a&nbsp;rule&nbsp;which&nbsp;says&nbsp;that&nbsp;if&nbsp;you&nbsp;kill&nbsp;someone&nbsp;and&nbsp;you&nbsp;have&nbsp;accomplices
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
031&nbsp;&nbsp;&nbsp;&nbsp;then&nbsp;you&#x27;re&nbsp;not&nbsp;honourable,&nbsp;and&nbsp;a&nbsp;default&nbsp;that&nbsp;has-accomplices&nbsp;is&nbsp;false.
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
032&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
033&nbsp;&nbsp;&nbsp;&nbsp;Note&nbsp;that&nbsp;has-accomplices&nbsp;boils&nbsp;down&nbsp;to
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
034&nbsp;&nbsp;&nbsp;&nbsp;&gt;&nbsp;For&nbsp;a&nbsp;given&nbsp;verb,&nbsp;object,&nbsp;location&nbsp;and&nbsp;time,&nbsp;there&nbsp;is&nbsp;more&nbsp;than&nbsp;one&nbsp;subject.
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
035&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
036&nbsp;&nbsp;&nbsp;&nbsp;That&#x27;s&nbsp;quite&nbsp;sophisticated&nbsp;to&nbsp;represent.
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
037&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
038&nbsp;&nbsp;&nbsp;&nbsp;There&nbsp;is&nbsp;a&nbsp;rule&nbsp;which&nbsp;says&nbsp;you&nbsp;can&#x27;t&nbsp;be&nbsp;killed&nbsp;after&nbsp;you&#x27;re&nbsp;dead&nbsp;(temporal
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
039&nbsp;&nbsp;&nbsp;&nbsp;reasoning).
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
040&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
041&nbsp;&nbsp;&nbsp;&nbsp;There&nbsp;is&nbsp;a&nbsp;rule&nbsp;which&nbsp;says&nbsp;if&nbsp;you&#x27;ve&nbsp;been&nbsp;killed&nbsp;or&nbsp;been&nbsp;buried&nbsp;then&nbsp;you&#x27;re
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
042&nbsp;&nbsp;&nbsp;&nbsp;dead.
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
043&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
044&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;case&nbsp;against&nbsp;Brutus&nbsp;is&nbsp;based&nbsp;on&nbsp;Drusilla&#x27;s&nbsp;claim&nbsp;and&nbsp;on&nbsp;Gaius&#x27;s.
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
045&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
046&nbsp;&nbsp;&nbsp;&nbsp;Drusilla&#x27;s&nbsp;can&nbsp;be&nbsp;doubted&nbsp;because
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
047&nbsp;&nbsp;&nbsp;&nbsp;1.&nbsp;She&nbsp;wasn&#x27;t&nbsp;a&nbsp;witness&nbsp;and
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
048&nbsp;&nbsp;&nbsp;&nbsp;2.&nbsp;Is&nbsp;a&nbsp;woman.
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
049&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
050&nbsp;&nbsp;&nbsp;&nbsp;Gaius&#x27;s&nbsp;can&nbsp;be&nbsp;doubted&nbsp;because
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
051&nbsp;&nbsp;&nbsp;&nbsp;1.&nbsp;he&nbsp;wasn&#x27;t&nbsp;a&nbsp;witness,&nbsp;and&nbsp;because
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
052&nbsp;&nbsp;&nbsp;&nbsp;2.&nbsp;it&#x27;s&nbsp;inconsistent&nbsp;with&nbsp;the&nbsp;evidence&nbsp;that&nbsp;Caesar&nbsp;was&nbsp;buried&nbsp;on&nbsp;the&nbsp;18th.
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
053&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
054&nbsp;&nbsp;&nbsp;&nbsp;##&nbsp;The&nbsp;conclusion
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
055&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
056&nbsp;&nbsp;&nbsp;&nbsp;Thus,&nbsp;I&nbsp;think,&nbsp;Falco&nbsp;must&nbsp;conclude&nbsp;that&nbsp;Brutus&nbsp;didn&#x27;t&nbsp;kill&nbsp;Caesar,&nbsp;because&nbsp;if
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
057&nbsp;&nbsp;&nbsp;&nbsp;he&nbsp;had&nbsp;he&nbsp;must&nbsp;have&nbsp;had&nbsp;accomplices&nbsp;(Cassius&nbsp;and&nbsp;Longus,&nbsp;who&nbsp;clearly&nbsp;were
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
058&nbsp;&nbsp;&nbsp;&nbsp;accomplices&nbsp;and&nbsp;implicate&nbsp;one&nbsp;another),&nbsp;but&nbsp;honourable&nbsp;men&nbsp;don&#x27;t&nbsp;kill&nbsp;with
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
059&nbsp;&nbsp;&nbsp;&nbsp;accomplices&nbsp;and&nbsp;Brutus&nbsp;is&nbsp;an&nbsp;honourable&nbsp;man.
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
060&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
061&nbsp;&nbsp;&nbsp;&nbsp;##&nbsp;Features
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
062&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
063&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;`features`&nbsp;in&nbsp;DTree&nbsp;terms&nbsp;we&#x27;re&nbsp;interested&nbsp;in&nbsp;to&nbsp;make&nbsp;these&nbsp;inferences&nbsp;are
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
064&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
065&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;`did-kill`&nbsp;-&nbsp;true&nbsp;of&nbsp;an&nbsp;entity&nbsp;which&nbsp;is&nbsp;in&nbsp;the&nbsp;subject&nbsp;position&nbsp;of&nbsp;a&nbsp;`kill`&nbsp;proposition;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
066&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;`was-killed`&nbsp;-&nbsp;true&nbsp;of&nbsp;an&nbsp;entity&nbsp;which&nbsp;is&nbsp;in&nbsp;the&nbsp;object&nbsp;position&nbsp;of&nbsp;a&nbsp;`kill`&nbsp;proposition;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
067&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;`buried`&nbsp;-&nbsp;true&nbsp;of&nbsp;an&nbsp;entity&nbsp;which&nbsp;is&nbsp;in&nbsp;the&nbsp;object&nbsp;position&nbsp;of&nbsp;a&nbsp;`bury`&nbsp;proposition;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
068&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;`dead`&nbsp;-&nbsp;true&nbsp;of&nbsp;an&nbsp;entity&nbsp;of&nbsp;which&nbsp;either&nbsp;`was-killed`&nbsp;or&nbsp;`buried`&nbsp;is&nbsp;true;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
069&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;`honourable`&nbsp;-&nbsp;true&nbsp;of&nbsp;an&nbsp;entity,&nbsp;provided&nbsp;that&nbsp;`did-lie`&nbsp;and&nbsp;`did-murder`&nbsp;are&nbsp;false;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
070&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;`did-murder`&nbsp;-&nbsp;true&nbsp;of&nbsp;an&nbsp;entity&nbsp;x&nbsp;that&nbsp;`did-kill[x,y]`&nbsp;for&nbsp;some&nbsp;object&nbsp;y&nbsp;is&nbsp;true&nbsp;of,
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
071&nbsp;&nbsp;&nbsp;&nbsp;provided&nbsp;that&nbsp;there&nbsp;exists&nbsp;some&nbsp;other&nbsp;entity&nbsp;p&nbsp;of&nbsp;whom&nbsp;`did-kill[p,x]`&nbsp;is&nbsp;also&nbsp;true,
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
072&nbsp;&nbsp;&nbsp;&nbsp;or&nbsp;that&nbsp;`was-unarmed[y]`&nbsp;is&nbsp;true;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
073&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;`did-lie`&nbsp;-&nbsp;true&nbsp;of&nbsp;an&nbsp;entity&nbsp;which&nbsp;has&nbsp;offered&nbsp;a&nbsp;proposition&nbsp;which&nbsp;for&nbsp;other&nbsp;reasons&nbsp;we&nbsp;do&nbsp;not&nbsp;believe.&nbsp;Tricky.&nbsp;False&nbsp;by&nbsp;default&nbsp;and&nbsp;I&nbsp;think&nbsp;we&nbsp;probably&nbsp;leave&nbsp;it&nbsp;at&nbsp;that&nbsp;for&nbsp;now.
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
074&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;`was-unarmed`&nbsp;-&nbsp;true&nbsp;of&nbsp;an&nbsp;entity&nbsp;at&nbsp;a&nbsp;time&nbsp;`t`&nbsp;if&nbsp;they&nbsp;were&nbsp;unarmed&nbsp;at&nbsp;the&nbsp;time.
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
075&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
076&nbsp;&nbsp;&nbsp;&nbsp;Note&nbsp;that&nbsp;ALL&nbsp;of&nbsp;this&nbsp;is&nbsp;too&nbsp;complex&nbsp;for&nbsp;the&nbsp;simple&nbsp;DTree&nbsp;logic&nbsp;of&nbsp;the&nbsp;Arboretum&nbsp;&#x2F;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
077&nbsp;&nbsp;&nbsp;&nbsp;KnacqTools&nbsp;generation.&nbsp;They&nbsp;could&nbsp;not&nbsp;unpack&nbsp;propositions&nbsp;as&nbsp;I&#x27;m&nbsp;proposing&nbsp;here.
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
078&nbsp;&nbsp;&nbsp;&nbsp;&quot;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
079&nbsp;&nbsp;&nbsp;&nbsp;(:require&nbsp;[wildwood.knowledge-accessor&nbsp;:refer&nbsp;[Accessor]]
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
080&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[wildwood.advocate&nbsp;:refer&nbsp;[Advocate]]))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
081&nbsp;&nbsp;
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
082&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
083&nbsp;&nbsp;(def&nbsp;ides-of-march
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
084&nbsp;&nbsp;&nbsp;&nbsp;&quot;16th&nbsp;March,&nbsp;44BC&quot;
</span><br/>
<span class="covered" title="5 out of 5 forms covered">
085&nbsp;&nbsp;&nbsp;&nbsp;(+&nbsp;-440000&nbsp;300&nbsp;16))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
086&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
087&nbsp;&nbsp;(def&nbsp;eighteenth-march
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
088&nbsp;&nbsp;&nbsp;&nbsp;&quot;18th&nbsp;March,&nbsp;44BC&quot;
</span><br/>
<span class="covered" title="5 out of 5 forms covered">
089&nbsp;&nbsp;&nbsp;&nbsp;(+&nbsp;-440000&nbsp;300&nbsp;18))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
090&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
091&nbsp;&nbsp;(def&nbsp;march
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
092&nbsp;&nbsp;&nbsp;&nbsp;&quot;The&nbsp;month&nbsp;of&nbsp;March,&nbsp;44BC,&nbsp;as&nbsp;a&nbsp;range.&quot;
</span><br/>
<span class="covered" title="13 out of 13 forms covered">
093&nbsp;&nbsp;&nbsp;&nbsp;(sort&nbsp;[(+&nbsp;-440000&nbsp;300&nbsp;1)&nbsp;(+&nbsp;-440000&nbsp;300&nbsp;30)]))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
094&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
095&nbsp;&nbsp;(def&nbsp;april
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
096&nbsp;&nbsp;&nbsp;&nbsp;&quot;The&nbsp;month&nbsp;of&nbsp;April,&nbsp;44BC,&nbsp;as&nbsp;a&nbsp;range.&quot;
</span><br/>
<span class="covered" title="13 out of 13 forms covered">
097&nbsp;&nbsp;&nbsp;&nbsp;(sort&nbsp;[(+&nbsp;-440000&nbsp;400&nbsp;1)&nbsp;(+&nbsp;-440000&nbsp;400&nbsp;30)]))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
098&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
099&nbsp;&nbsp;(def&nbsp;anthony-kb
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
100&nbsp;&nbsp;&nbsp;&nbsp;&quot;Mark&nbsp;Antony&nbsp;knows&nbsp;that&nbsp;Brutus&nbsp;is&nbsp;honourable,&nbsp;and&nbsp;that&nbsp;Caesar&nbsp;is&nbsp;buried.&quot;
</span><br/>
<span class="covered" title="11 out of 11 forms covered">
101&nbsp;&nbsp;&nbsp;&nbsp;{:brutus&nbsp;[{:verb&nbsp;:is&nbsp;:subject&nbsp;:brutus&nbsp;:object&nbsp;:honourable}]
</span><br/>
<span class="covered" title="12 out of 12 forms covered">
102&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:caesar&nbsp;[{:verb&nbsp;:bury&nbsp;:subject&nbsp;:calpurnia&nbsp;:object&nbsp;:caesar&nbsp;:date&nbsp;eighteenth-march&nbsp;:nth-hand&nbsp;1}]})
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
103&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
104&nbsp;&nbsp;(def&nbsp;brutus-kb
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
105&nbsp;&nbsp;&nbsp;&nbsp;&quot;Brutus&nbsp;will&nbsp;admit&nbsp;that&nbsp;he&nbsp;and&nbsp;Cassius&nbsp;were&nbsp;in&nbsp;the&nbsp;forum&nbsp;in&nbsp;the&nbsp;Ides&nbsp;of&nbsp;March&quot;
</span><br/>
<span class="covered" title="18 out of 18 forms covered">
106&nbsp;&nbsp;&nbsp;&nbsp;{:brutus&nbsp;[{:verb&nbsp;:present&nbsp;:subject&nbsp;:brutus&nbsp;:object&nbsp;:forum&nbsp;:location&nbsp;:forum&nbsp;:date&nbsp;ides-of-march&nbsp;:nth-hand&nbsp;1}]
</span><br/>
<span class="covered" title="14 out of 14 forms covered">
107&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:cassius&nbsp;[{:verb&nbsp;:present&nbsp;:subject&nbsp;:cassius&nbsp;:object&nbsp;:forum&nbsp;:location&nbsp;:forum&nbsp;:date&nbsp;ides-of-march&nbsp;:nth-hand&nbsp;1}]
</span><br/>
<span class="covered" title="14 out of 14 forms covered">
108&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:forum&nbsp;[{:verb&nbsp;:present&nbsp;:subject&nbsp;:brutus&nbsp;:object&nbsp;:forum&nbsp;:location&nbsp;:forum&nbsp;:date&nbsp;ides-of-march&nbsp;:nth-hand&nbsp;1}
</span><br/>
<span class="covered" title="13 out of 13 forms covered">
109&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{:verb&nbsp;:present&nbsp;:subject&nbsp;:cassius&nbsp;:object&nbsp;:forum&nbsp;:location&nbsp;:forum&nbsp;:date&nbsp;ides-of-march&nbsp;:nth-hand&nbsp;1}]})
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
110&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
111&nbsp;&nbsp;(def&nbsp;cassius-kb
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
112&nbsp;&nbsp;&nbsp;&nbsp;&quot;Cassius&nbsp;and&nbsp;Longus&nbsp;each&nbsp;bear&nbsp;witness&nbsp;that&nbsp;the&nbsp;other&nbsp;killed&nbsp;Caesar&nbsp;in&nbsp;the
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
113&nbsp;&nbsp;&nbsp;&nbsp;Forum&nbsp;on&nbsp;the&nbsp;Ides&nbsp;of&nbsp;March.&quot;
</span><br/>
<span class="covered" title="18 out of 18 forms covered">
114&nbsp;&nbsp;&nbsp;&nbsp;{:caesar&nbsp;[{:verb&nbsp;:kill&nbsp;:subject&nbsp;:longus&nbsp;:object&nbsp;:caesar&nbsp;:location&nbsp;:forum&nbsp;:date&nbsp;ides-of-march&nbsp;:nth-hand&nbsp;1}]
</span><br/>
<span class="covered" title="14 out of 14 forms covered">
115&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:longus&nbsp;[{:verb&nbsp;:kill&nbsp;:subject&nbsp;:longus&nbsp;:object&nbsp;:caesar&nbsp;:location&nbsp;:forum&nbsp;:date&nbsp;ides-of-march&nbsp;:nth-hand&nbsp;1}]
</span><br/>
<span class="covered" title="14 out of 14 forms covered">
116&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:forum&nbsp;[{:verb&nbsp;:kill&nbsp;:subject&nbsp;:longus&nbsp;:object&nbsp;:caesar&nbsp;:location&nbsp;:forum&nbsp;:date&nbsp;ides-of-march&nbsp;:nth-hand&nbsp;1}]})
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
117&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
118&nbsp;&nbsp;(def&nbsp;drusila-kb
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
119&nbsp;&nbsp;&nbsp;&nbsp;&quot;Drusila&nbsp;has&nbsp;heard&nbsp;that&nbsp;Brutus&nbsp;killed&nbsp;Caesar&nbsp;in&nbsp;the&nbsp;forum.&nbsp;She&nbsp;keys&nbsp;it&nbsp;on&nbsp;all&nbsp;three,&nbsp;for&nbsp;efficiency
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
120&nbsp;&nbsp;&nbsp;&nbsp;of&nbsp;retrieval.&quot;
</span><br/>
<span class="covered" title="18 out of 18 forms covered">
121&nbsp;&nbsp;&nbsp;&nbsp;{:caesar&nbsp;[{:verb&nbsp;:kill&nbsp;:subject&nbsp;:brutus&nbsp;:object&nbsp;:caesar&nbsp;:location&nbsp;:forum&nbsp;:date&nbsp;ides-of-march&nbsp;:nth-hand&nbsp;2}
</span><br/>
<span class="covered" title="11 out of 11 forms covered">
122&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{:verb&nbsp;:bury&nbsp;:subject&nbsp;:calpurnia&nbsp;:object&nbsp;:caesar&nbsp;:date&nbsp;eighteenth-march&nbsp;:nth-hand&nbsp;1}]
</span><br/>
<span class="covered" title="14 out of 14 forms covered">
123&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:brutus&nbsp;[{:verb&nbsp;:kill&nbsp;:subject&nbsp;:brutus&nbsp;:object&nbsp;:caesar&nbsp;:location&nbsp;:forum&nbsp;:date&nbsp;ides-of-march&nbsp;:nth-hand&nbsp;2}]
</span><br/>
<span class="covered" title="14 out of 14 forms covered">
124&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:forum&nbsp;[{:verb&nbsp;:kill&nbsp;:subject&nbsp;:brutus&nbsp;:object&nbsp;:caesar&nbsp;:location&nbsp;:forum&nbsp;:date&nbsp;ides-of-march&nbsp;:nth-hand&nbsp;2}]})
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
125&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
126&nbsp;&nbsp;(def&nbsp;faldo-db
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
127&nbsp;&nbsp;&nbsp;&nbsp;&quot;Falco&nbsp;believes&nbsp;that&nbsp;Caesar&nbsp;has&nbsp;been&nbsp;killed,&nbsp;but&nbsp;doesn&#x27;t&nbsp;know&nbsp;by&nbsp;whom&nbsp;or&nbsp;when.&quot;
</span><br/>
<span class="covered" title="12 out of 12 forms covered">
128&nbsp;&nbsp;&nbsp;&nbsp;{:caesar&nbsp;[{:verb&nbsp;:kill&nbsp;:object&nbsp;:caesar&nbsp;:location&nbsp;:forum}]
</span><br/>
<span class="covered" title="8 out of 8 forms covered">
129&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:brutus&nbsp;[{:verb&nbsp;:kill&nbsp;:object&nbsp;:caesar&nbsp;:location&nbsp;:forum}]
</span><br/>
<span class="covered" title="8 out of 8 forms covered">
130&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:forum&nbsp;[{:verb&nbsp;:kill&nbsp;:object&nbsp;:caesar&nbsp;:location&nbsp;:forum}]})
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
131&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
132&nbsp;&nbsp;(def&nbsp;gaius-db
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
133&nbsp;&nbsp;&nbsp;&nbsp;&quot;Gaius&nbsp;has&nbsp;heard&nbsp;that&nbsp;Brutus&nbsp;killed&nbsp;Caesar,&nbsp;but&nbsp;believes&nbsp;it&nbsp;happened&nbsp;in&nbsp;April.&quot;
</span><br/>
<span class="covered" title="18 out of 18 forms covered">
134&nbsp;&nbsp;&nbsp;&nbsp;{:caesar&nbsp;[{:verb&nbsp;:kill&nbsp;:subject&nbsp;:brutus&nbsp;:object&nbsp;:caesar&nbsp;:location&nbsp;:forum&nbsp;:date&nbsp;april&nbsp;:nth-hand&nbsp;2}]
</span><br/>
<span class="covered" title="14 out of 14 forms covered">
135&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:brutus&nbsp;[{:verb&nbsp;:kill&nbsp;:subject&nbsp;:brutus&nbsp;:object&nbsp;:caesar&nbsp;:location&nbsp;:forum&nbsp;:date&nbsp;april&nbsp;:nth-hand&nbsp;2}]
</span><br/>
<span class="covered" title="14 out of 14 forms covered">
136&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:forum&nbsp;[{:verb&nbsp;:kill&nbsp;:subject&nbsp;:brutus&nbsp;:object&nbsp;:caesar&nbsp;:location&nbsp;:forum&nbsp;:date&nbsp;april&nbsp;:nth-hand&nbsp;2}]})
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
137&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
138&nbsp;&nbsp;(def&nbsp;longus-kb
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
139&nbsp;&nbsp;&nbsp;&nbsp;&quot;Cassius&nbsp;and&nbsp;Longus&nbsp;each&nbsp;bear&nbsp;witness&nbsp;that&nbsp;the&nbsp;other&nbsp;killed&nbsp;Caesar&nbsp;in&nbsp;the
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
140&nbsp;&nbsp;&nbsp;&nbsp;Forum&nbsp;on&nbsp;the&nbsp;Ides&nbsp;of&nbsp;March.&quot;
</span><br/>
<span class="covered" title="18 out of 18 forms covered">
141&nbsp;&nbsp;&nbsp;&nbsp;{:caesar&nbsp;[{:verb&nbsp;:kill&nbsp;:subject&nbsp;:cassius&nbsp;:object&nbsp;:caesar&nbsp;:location&nbsp;:forum&nbsp;:date&nbsp;ides-of-march&nbsp;:nth-hand&nbsp;1}]
</span><br/>
<span class="covered" title="14 out of 14 forms covered">
142&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:cassius&nbsp;[{:verb&nbsp;:kill&nbsp;:subject&nbsp;:cassius&nbsp;:object&nbsp;:caesar&nbsp;:location&nbsp;:forum&nbsp;:date&nbsp;ides-of-march&nbsp;:nth-hand&nbsp;1}]
</span><br/>
<span class="covered" title="14 out of 14 forms covered">
143&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:forum&nbsp;[{:verb&nbsp;:kill&nbsp;:subject&nbsp;:cassius&nbsp;:object&nbsp;:caesar&nbsp;:location&nbsp;:forum&nbsp;:date&nbsp;ides-of-march&nbsp;:nth-hand&nbsp;1}]})
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
144&nbsp;&nbsp;
</span><br/>
</body>
</html>

View file

@ -0,0 +1,47 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="../../coverage.css"/> <title> wildwood/dengine/engine.clj </title>
</head>
<body>
<span class="covered" title="1 out of 1 forms covered">
001&nbsp;&nbsp;(ns&nbsp;wildwood.dengine.engine
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
002&nbsp;&nbsp;&nbsp;&nbsp;&quot;An&nbsp;implementation&nbsp;of&nbsp;the&nbsp;DTree&nbsp;engine&nbsp;adapted&nbsp;to&nbsp;`wildwood.schema`&nbsp;propositions.&quot;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
003&nbsp;&nbsp;&nbsp;&nbsp;(:require&nbsp;[wildwood.knowledge-accessor&nbsp;:refer&nbsp;[Accessor]]
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
004&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[wildwood.schema&nbsp;:refer&nbsp;[proposition?]]))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
005&nbsp;&nbsp;
</span><br/>
<span class="partial" title="1 out of 2 forms covered">
006&nbsp;&nbsp;(defn&nbsp;decide
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
007&nbsp;&nbsp;&nbsp;&nbsp;&quot;Decide&nbsp;the&nbsp;truth&nbsp;value&nbsp;of&nbsp;this&nbsp;`proposition`,&nbsp;using&nbsp;the&nbsp;dtree&nbsp;rooted&nbsp;at
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
008&nbsp;&nbsp;&nbsp;&nbsp;this&nbsp;`node`&nbsp;and&nbsp;knowledge&nbsp;provided&nbsp;by&nbsp;this&nbsp;`accessor`.&quot;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
009&nbsp;&nbsp;&nbsp;&nbsp;;;&nbsp;how&nbsp;is&nbsp;explanation&nbsp;returned&nbsp;in&nbsp;this&nbsp;schema?&nbsp;We&nbsp;need&nbsp;a&nbsp;richer&nbsp;return&nbsp;value
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
010&nbsp;&nbsp;&nbsp;&nbsp;;;&nbsp;than&nbsp;just&nbsp;a&nbsp;truth&nbsp;value.
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
011&nbsp;&nbsp;&nbsp;&nbsp;[proposition&nbsp;node&nbsp;accessor]
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
012&nbsp;&nbsp;&nbsp;&nbsp;;;&nbsp;TODO:&nbsp;implement
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
013&nbsp;&nbsp;&nbsp;&nbsp;false)
</span><br/>
</body>
</html>

View file

@ -0,0 +1,53 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="../../coverage.css"/> <title> wildwood/dengine/node.clj </title>
</head>
<body>
<span class="covered" title="1 out of 1 forms covered">
001&nbsp;&nbsp;(ns&nbsp;wildwood.dengine.node
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
002&nbsp;&nbsp;&nbsp;&nbsp;&quot;A&nbsp;dtree&nbsp;node.&quot;)
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
003&nbsp;&nbsp;
</span><br/>
<span class="partial" title="1 out of 2 forms covered">
004&nbsp;&nbsp;(defn&nbsp;node?
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
005&nbsp;&nbsp;&nbsp;&nbsp;&quot;Return&nbsp;`true`&nbsp;if&nbsp;this&nbsp;`o`&nbsp;is&nbsp;recognisable&nbsp;as&nbsp;a&nbsp;dtree&nbsp;node,&nbsp;else&nbsp;`false`.&quot;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
006&nbsp;&nbsp;&nbsp;&nbsp;;;&nbsp;TODO:&nbsp;implement
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
007&nbsp;&nbsp;&nbsp;&nbsp;[o]
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
008&nbsp;&nbsp;&nbsp;&nbsp;false)
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
009&nbsp;&nbsp;
</span><br/>
<span class="partial" title="1 out of 2 forms covered">
010&nbsp;&nbsp;(defn&nbsp;colour
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
011&nbsp;&nbsp;&nbsp;&nbsp;&quot;If&nbsp;this&nbsp;`node`&nbsp;is&nbsp;a&nbsp;valid&nbsp;dtree&nbsp;node,&nbsp;return&nbsp;its&nbsp;colour.&quot;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
012&nbsp;&nbsp;&nbsp;&nbsp;[node]
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
013&nbsp;&nbsp;&nbsp;&nbsp;;;&nbsp;TODO:&nbsp;implement
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
014&nbsp;&nbsp;&nbsp;&nbsp;false)
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
015&nbsp;&nbsp;
</span><br/>
</body>
</html>

View file

@ -0,0 +1,110 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="../coverage.css"/> <title> wildwood/knowledge_accessor.clj </title>
</head>
<body>
<span class="covered" title="1 out of 1 forms covered">
001&nbsp;&nbsp;(ns&nbsp;wildwood.knowledge-accessor
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
002&nbsp;&nbsp;&nbsp;&nbsp;&quot;The&nbsp;key&nbsp;point&nbsp;of&nbsp;building&nbsp;Bialowieza&nbsp;as&nbsp;a&nbsp;library&nbsp;rather&nbsp;than&nbsp;a&nbsp;complete
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
003&nbsp;&nbsp;&nbsp;&nbsp;application&nbsp;is&nbsp;that&nbsp;it&nbsp;should&nbsp;be&nbsp;possible&nbsp;to&nbsp;hook&nbsp;it&nbsp;up&nbsp;to&nbsp;multiple&nbsp;sources
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
004&nbsp;&nbsp;&nbsp;&nbsp;of&nbsp;knowledge.&nbsp;Thus&nbsp;we&nbsp;must&nbsp;design&nbsp;a&nbsp;protocol&nbsp;through&nbsp;which&nbsp;knowledge&nbsp;can&nbsp;be
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
005&nbsp;&nbsp;&nbsp;&nbsp;accessed,&nbsp;and&nbsp;a&nbsp;schema&nbsp;in&nbsp;which&nbsp;it&nbsp;will&nbsp;be&nbsp;returned.&nbsp;Note&nbsp;that&nbsp;the
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
006&nbsp;&nbsp;&nbsp;&nbsp;accessor&nbsp;must&nbsp;be&nbsp;able&nbsp;to&nbsp;add&nbsp;knowledge&nbsp;to&nbsp;the&nbsp;knowledge&nbsp;base,&nbsp;as&nbsp;well&nbsp;as
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
007&nbsp;&nbsp;&nbsp;&nbsp;retrieve&nbsp;it.&quot;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
008&nbsp;&nbsp;&nbsp;&nbsp;(:require&nbsp;[wildwood.schema&nbsp;:refer&nbsp;[proposition?]]))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
009&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
010&nbsp;&nbsp;(defprotocol&nbsp;Accessor
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
011&nbsp;&nbsp;&nbsp;&nbsp;(fetch&nbsp;[self&nbsp;id]
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
012&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;Fetch&nbsp;all&nbsp;the&nbsp;knowledge&nbsp;I&nbsp;have&nbsp;about&nbsp;the&nbsp;object&nbsp;identified&nbsp;by
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
013&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this&nbsp;`id`&nbsp;value,&nbsp;as&nbsp;a&nbsp;map&nbsp;whose&nbsp;`:id`&nbsp;key&nbsp;has&nbsp;this&nbsp;`id`&nbsp;value.
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
014&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
015&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*NOTE&nbsp;THAT:*&nbsp;I&nbsp;now&nbsp;think&nbsp;knowledge&nbsp;should&nbsp;only&nbsp;be&nbsp;managed&nbsp;at&nbsp;the
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
016&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Wildwood&nbsp;level&nbsp;as&nbsp;sets&nbsp;of&nbsp;propositions,&nbsp;so&nbsp;the&nbsp;idea&nbsp;of&nbsp;bringing
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
017&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;back&nbsp;some&nbsp;sort&nbsp;of&nbsp;object&nbsp;representation&nbsp;here&nbsp;is&nbsp;probably&nbsp;wrong.&quot;)
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
018&nbsp;&nbsp;&nbsp;&nbsp;(match&nbsp;[self&nbsp;proposition]
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
019&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;Return&nbsp;all&nbsp;the&nbsp;propositions&nbsp;I&nbsp;know&nbsp;which&nbsp;match&nbsp;this&nbsp;proposition.&nbsp;The
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
020&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;intended&nbsp;use&nbsp;case&nbsp;here&nbsp;is&nbsp;that&nbsp;you&nbsp;will&nbsp;either&nbsp;supply&nbsp;a&nbsp;fully
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
021&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;specified&nbsp;proposition&nbsp;to&nbsp;verify&nbsp;that&nbsp;that&nbsp;proposition&nbsp;is&nbsp;true,&nbsp;or&nbsp;else
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
022&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;supply&nbsp;a&nbsp;partially&nbsp;specified&nbsp;proposition&nbsp;to&nbsp;query.
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
023&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
024&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.g.&nbsp;passing&nbsp;the&nbsp;proposition
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
025&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
026&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{:verb&nbsp;:kill&nbsp;:object&nbsp;:caesar}
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
027&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
028&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;would&nbsp;be&nbsp;a&nbsp;way&nbsp;of&nbsp;asking&nbsp;&#x27;who&nbsp;killed&nbsp;caesar&#x27;,&nbsp;and&nbsp;might&nbsp;return
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
029&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
030&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[{:verb&nbsp;:kill&nbsp;:subject&nbsp;:brutus&nbsp;:object&nbsp;:caesar}
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
031&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{:verb&nbsp;:kill&nbsp;:subject&nbsp;:cassius&nbsp;:object&nbsp;:caesar}
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
032&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{:verb&nbsp;:kill&nbsp;:subject&nbsp;:longus&nbsp;:object&nbsp;:caesar}]&quot;)
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
033&nbsp;&nbsp;&nbsp;&nbsp;(store&nbsp;[self&nbsp;proposition]
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
034&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;Add&nbsp;this&nbsp;`proposition`&nbsp;to&nbsp;the&nbsp;knowledge&nbsp;I&nbsp;hold.&quot;))
</span><br/>
</body>
</html>

View file

@ -0,0 +1,149 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="../coverage.css"/> <title> wildwood/mongo_ka.clj </title>
</head>
<body>
<span class="covered" title="1 out of 1 forms covered">
001&nbsp;&nbsp;(ns&nbsp;wildwood.mongo-ka
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
002&nbsp;&nbsp;&nbsp;&nbsp;&quot;A&nbsp;knowledge&nbsp;accessor&nbsp;fetching&nbsp;from&nbsp;and&nbsp;storing&nbsp;to&nbsp;Mongo&nbsp;DB.
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
003&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
004&nbsp;&nbsp;&nbsp;&nbsp;Hierarchical&nbsp;databases&nbsp;seem&nbsp;a&nbsp;very&nbsp;natural&nbsp;fit&nbsp;for&nbsp;how&nbsp;we&#x27;re&nbsp;storing
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
005&nbsp;&nbsp;&nbsp;&nbsp;knowledge.&nbsp;Mongo&nbsp;DB&nbsp;seems&nbsp;a&nbsp;particularly&nbsp;natural&nbsp;fit&nbsp;since&nbsp;its
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
006&nbsp;&nbsp;&nbsp;&nbsp;internal&nbsp;representation&nbsp;is&nbsp;JSON,&nbsp;which&nbsp;can&nbsp;be&nbsp;transformed&nbsp;to&nbsp;EDN
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
007&nbsp;&nbsp;&nbsp;&nbsp;extremely&nbsp;naturally.&quot;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
008&nbsp;&nbsp;&nbsp;&nbsp;(:require&nbsp;[monger.core&nbsp;:as&nbsp;mg]
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
009&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[monger.collection&nbsp;:as&nbsp;mc]
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
010&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[wildwood.knowledge-accessor&nbsp;:refer&nbsp;[Accessor]])
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
011&nbsp;&nbsp;&nbsp;&nbsp;(:import&nbsp;[com.mongodb&nbsp;MongoOptions&nbsp;ServerAddress]
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
012&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[com.mongodb&nbsp;DB&nbsp;WriteConcern]
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
013&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[org.bson.types&nbsp;ObjectId]))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
014&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
015&nbsp;&nbsp;;;&nbsp;MongoDB&nbsp;data&nbsp;items&nbsp;are&nbsp;identified&nbsp;by&nbsp;ObjectId&nbsp;objects.&nbsp;In&nbsp;the&nbsp;retrieved
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
016&nbsp;&nbsp;;;&nbsp;record&nbsp;from&nbsp;MongoDB,&nbsp;key&nbsp;value&nbsp;is&nbsp;the&nbsp;value&nbsp;of&nbsp;a&nbsp;keyword&nbsp;`:_id`&nbsp;I&nbsp;don&#x27;t
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
017&nbsp;&nbsp;;;&nbsp;think&nbsp;there&#x27;s&nbsp;any&nbsp;*in&nbsp;principle*&nbsp;reason&nbsp;why&nbsp;we&nbsp;should&nbsp;not&nbsp;use&nbsp;these&nbsp;objects
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
018&nbsp;&nbsp;;;&nbsp;as&nbsp;key&nbsp;values&nbsp;-&nbsp;they&#x27;re&nbsp;presumably&nbsp;designed&nbsp;to&nbsp;be&nbsp;globally&nbsp;unique.
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
019&nbsp;&nbsp;;;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
020&nbsp;&nbsp;;;&nbsp;In&nbsp;which&nbsp;case,&nbsp;on&nbsp;the&nbsp;way&nbsp;down&nbsp;we&nbsp;have&nbsp;to&nbsp;set&nbsp;`:_id`&nbsp;to&nbsp;the&nbsp;value&nbsp;of&nbsp;`:id`
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
021&nbsp;&nbsp;;;&nbsp;and&nbsp;vice&nbsp;versa&nbsp;on&nbsp;the&nbsp;way&nbsp;back&nbsp;up.
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
022&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
023&nbsp;&nbsp;(defrecord&nbsp;MongoKA
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
024&nbsp;&nbsp;&nbsp;&nbsp;;;&nbsp;It&#x27;s&nbsp;not&nbsp;clear&nbsp;to&nbsp;me&nbsp;whether&nbsp;we&nbsp;need&nbsp;to&nbsp;pass&nbsp;both&nbsp;the&nbsp;connection&nbsp;and&nbsp;the
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
025&nbsp;&nbsp;&nbsp;&nbsp;;;&nbsp;database&nbsp;in&nbsp;-&nbsp;it&#x27;s&nbsp;possible&nbsp;that&nbsp;the&nbsp;connected&nbsp;database&nbsp;handle&nbsp;is
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
026&nbsp;&nbsp;&nbsp;&nbsp;;;&nbsp;sufficient.&nbsp;The&nbsp;value&nbsp;of&nbsp;`:collection`&nbsp;is&nbsp;the&nbsp;name&nbsp;of&nbsp;the&nbsp;collection
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
027&nbsp;&nbsp;&nbsp;&nbsp;;;&nbsp;within&nbsp;the&nbsp;database&nbsp;to&nbsp;which&nbsp;this&nbsp;accessor&nbsp;writes.
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
028&nbsp;&nbsp;&nbsp;&nbsp;[connection&nbsp;db&nbsp;^String&nbsp;collection]
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
029&nbsp;&nbsp;&nbsp;&nbsp;Accessor
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
030&nbsp;&nbsp;&nbsp;&nbsp;(fetch
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
031&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[_&nbsp;id]
</span><br/>
<span class="not-covered" title="0 out of 5 forms covered">
032&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(let&nbsp;[oid&nbsp;(cond
</span><br/>
<span class="not-covered" title="0 out of 5 forms covered">
033&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(instance?&nbsp;ObjectId&nbsp;id)&nbsp;id
</span><br/>
<span class="not-covered" title="0 out of 5 forms covered">
034&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(string?&nbsp;id)&nbsp;(ObjectId.&nbsp;id)
</span><br/>
<span class="not-covered" title="0 out of 7 forms covered">
035&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(keyword?&nbsp;id)&nbsp;(ObjectId.&nbsp;(name&nbsp;id)))
</span><br/>
<span class="not-covered" title="0 out of 5 forms covered">
036&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;record&nbsp;(mc&#x2F;find-by-id&nbsp;db&nbsp;collection&nbsp;oid)]
</span><br/>
<span class="not-covered" title="0 out of 3 forms covered">
037&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(when&nbsp;record
</span><br/>
<span class="not-covered" title="0 out of 3 forms covered">
038&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(assoc
</span><br/>
<span class="not-covered" title="0 out of 4 forms covered">
039&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(dissoc&nbsp;record&nbsp;:_id)
</span><br/>
<span class="not-covered" title="0 out of 1 forms covered">
040&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:id&nbsp;id))))
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
041&nbsp;&nbsp;&nbsp;&nbsp;(match&nbsp;[_&nbsp;proposition]
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
042&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;&nbsp;I&nbsp;know&nbsp;I&#x27;ve&nbsp;seen&nbsp;how&nbsp;to&nbsp;do&nbsp;this&nbsp;in&nbsp;the&nbsp;Mongo&nbsp;documentation...
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
043&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
044&nbsp;&nbsp;&nbsp;&nbsp;(store&nbsp;[_&nbsp;proposition]
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
045&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;&nbsp;don&#x27;t&nbsp;really&nbsp;know&nbsp;how&nbsp;to&nbsp;do&nbsp;this&nbsp;and&nbsp;am&nbsp;too&nbsp;tired&nbsp;just&nbsp;now.
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
046&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
047&nbsp;&nbsp;
</span><br/>
</body>
</html>

View file

@ -0,0 +1,395 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="../coverage.css"/> <title> wildwood/schema.clj </title>
</head>
<body>
<span class="covered" title="1 out of 1 forms covered">
001&nbsp;&nbsp;(ns&nbsp;wildwood.schema
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
002&nbsp;&nbsp;&nbsp;&nbsp;&quot;The&nbsp;knowledge&nbsp;representation.&nbsp;This&nbsp;probably&nbsp;ends&nbsp;up&nbsp;looking&nbsp;a&nbsp;bit&nbsp;like&nbsp;a
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
003&nbsp;&nbsp;&nbsp;&nbsp;Toulmin&nbsp;schema,&nbsp;where&nbsp;claims&nbsp;are&nbsp;represented&nbsp;as&nbsp;propositions.&nbsp;There&nbsp;also
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
004&nbsp;&nbsp;&nbsp;&nbsp;need&nbsp;to&nbsp;be&nbsp;rules&nbsp;or&nbsp;predicates,&nbsp;things&nbsp;which&nbsp;can&nbsp;test&nbsp;whether&nbsp;a&nbsp;given
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
005&nbsp;&nbsp;&nbsp;&nbsp;proposition&nbsp;has&nbsp;a&nbsp;given&nbsp;value.&nbsp;There&nbsp;may&nbsp;be&nbsp;other&nbsp;stuff&nbsp;in&nbsp;here.
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
006&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
007&nbsp;&nbsp;&nbsp;&nbsp;Internal&nbsp;representation&nbsp;of&nbsp;most&nbsp;of&nbsp;this&nbsp;will&nbsp;be&nbsp;as&nbsp;Clojure&nbsp;maps.&quot;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
008&nbsp;&nbsp;&nbsp;&nbsp;)
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
009&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
010&nbsp;&nbsp;(def&nbsp;required-keys
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
011&nbsp;&nbsp;&nbsp;&nbsp;&quot;Every&nbsp;proposition&nbsp;is&nbsp;expected&nbsp;to&nbsp;have&nbsp;values&nbsp;for&nbsp;these&nbsp;keys.&quot;
</span><br/>
<span class="covered" title="4 out of 4 forms covered">
012&nbsp;&nbsp;&nbsp;&nbsp;#{:verb&nbsp;:subject&nbsp;:object})
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
013&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
014&nbsp;&nbsp;(def&nbsp;consensual-keys
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
015&nbsp;&nbsp;&nbsp;&nbsp;&quot;Every&nbsp;proposition&nbsp;which&nbsp;has&nbsp;these&nbsp;keys,&nbsp;in&nbsp;a&nbsp;given&nbsp;decision&nbsp;process,
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
016&nbsp;&nbsp;&nbsp;&nbsp;must&nbsp;have&nbsp;the&nbsp;same&nbsp;semantics&nbsp;and&nbsp;types&nbsp;for&nbsp;their&nbsp;values.&nbsp;The&nbsp;exact
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
017&nbsp;&nbsp;&nbsp;&nbsp;representations&nbsp;used&nbsp;for&nbsp;the&nbsp;values&nbsp;of&nbsp;these&nbsp;keys&nbsp;does&nbsp;not
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
018&nbsp;&nbsp;&nbsp;&nbsp;matter,&nbsp;it&nbsp;is&nbsp;consensual&nbsp;between&nbsp;all&nbsp;participating&nbsp;advocates&nbsp;in&nbsp;a
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
019&nbsp;&nbsp;&nbsp;&nbsp;decision&nbsp;process.&quot;
</span><br/>
<span class="covered" title="5 out of 5 forms covered">
020&nbsp;&nbsp;&nbsp;&nbsp;#{:time&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;&nbsp;a&nbsp;representation&nbsp;of&nbsp;time&nbsp;-&nbsp;which&nbsp;should&nbsp;have&nbsp;a&nbsp;canonical&nbsp;ordering;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
021&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:location&nbsp;&nbsp;&nbsp;;;&nbsp;a&nbsp;representation&nbsp;of&nbsp;place&nbsp;-&nbsp;which&nbsp;may&nbsp;have&nbsp;concepts&nbsp;of&nbsp;proximity;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
022&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:truth&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;&nbsp;if&nbsp;present&nbsp;and&nbsp;value&nbsp;`false`,&nbsp;negates&nbsp;the&nbsp;proposition;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
023&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:data&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;&nbsp;an&nbsp;argument&nbsp;structure...!
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
024&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;})
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
025&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
026&nbsp;&nbsp;(def&nbsp;argument-keys
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
027&nbsp;&nbsp;&nbsp;&nbsp;&quot;Every&nbsp;argument&nbsp;is&nbsp;a&nbsp;proposition,&nbsp;which&nbsp;additionally&nbsp;has&nbsp;these&nbsp;keys.&quot;
</span><br/>
<span class="covered" title="3 out of 3 forms covered">
028&nbsp;&nbsp;&nbsp;&nbsp;#{:confidence&nbsp;;;&nbsp;how&nbsp;sure&nbsp;am&nbsp;I?&nbsp;A&nbsp;value,&nbsp;perhaps,&nbsp;in&nbsp;the&nbsp;range&nbsp;-1&nbsp;to&nbsp;1,&nbsp;although&nbsp;conventionally&nbsp;if&nbsp;less&nbsp;than&nbsp;1&nbsp;we&nbsp;probably&nbsp;set&nbsp;the&nbsp;`:truth`&nbsp;value&nbsp;to&nbsp;false;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
029&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:authority&nbsp;&nbsp;;;&nbsp;id&nbsp;of&nbsp;agent&nbsp;from&nbsp;whom,&nbsp;or&nbsp;rule&nbsp;from&nbsp;which,&nbsp;I&nbsp;know&nbsp;this.
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
030&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;})
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
031&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
032&nbsp;&nbsp;(def&nbsp;preserved-keys
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
033&nbsp;&nbsp;&nbsp;&nbsp;&quot;Keys&nbsp;whose&nbsp;values&nbsp;should&nbsp;not&nbsp;be&nbsp;minimised&nbsp;during&nbsp;proposition&nbsp;minimisation&quot;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
034&nbsp;&nbsp;&nbsp;&nbsp;;;&nbsp;TODO:&nbsp;actually,&nbsp;this&nbsp;may&nbsp;end&nbsp;up&nbsp;being&nbsp;just&nbsp;:data
</span><br/>
<span class="covered" title="6 out of 6 forms covered">
035&nbsp;&nbsp;&nbsp;&nbsp;(set&nbsp;(cons&nbsp;:data&nbsp;argument-keys)))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
036&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
037&nbsp;&nbsp;(defn&nbsp;proposition?
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
038&nbsp;&nbsp;&nbsp;&nbsp;&quot;True&nbsp;if&nbsp;`o`&nbsp;qualifies&nbsp;as&nbsp;a&nbsp;proposition.&nbsp;A&nbsp;proposition&nbsp;is&nbsp;probably&nbsp;a&nbsp;map
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
039&nbsp;&nbsp;&nbsp;&nbsp;with&nbsp;some&nbsp;privileged&nbsp;keys,&nbsp;and&nbsp;may&nbsp;look&nbsp;something&nbsp;like&nbsp;a&nbsp;minimised
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
040&nbsp;&nbsp;&nbsp;&nbsp;`the-great-game.gossip.news-items`&nbsp;item.
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
041&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
042&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;`minimised`&nbsp;is&nbsp;passed&nbsp;and&nbsp;is&nbsp;`true`,&nbsp;then&nbsp;the&nbsp;proposition&nbsp;must
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
043&nbsp;&nbsp;&nbsp;&nbsp;be&nbsp;minimised&nbsp;-&nbsp;that&nbsp;is&nbsp;to&nbsp;say,&nbsp;the&nbsp;values&nbsp;of&nbsp;keys&nbsp;in&nbsp;a&nbsp;proposition&nbsp;map&nbsp;may
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
044&nbsp;&nbsp;&nbsp;&nbsp;not&nbsp;themselves&nbsp;be&nbsp;keys.&nbsp;Where&nbsp;the&nbsp;value&nbsp;of&nbsp;a&nbsp;key&nbsp;represents&nbsp;an&nbsp;object&nbsp;in&nbsp;the
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
045&nbsp;&nbsp;&nbsp;&nbsp;world,&nbsp;that&nbsp;value&nbsp;must&nbsp;be&nbsp;simply&nbsp;the&nbsp;`id`&nbsp;of&nbsp;the&nbsp;object,&nbsp;not&nbsp;a&nbsp;richer
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
046&nbsp;&nbsp;&nbsp;&nbsp;representation.&quot;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
047&nbsp;&nbsp;&nbsp;&nbsp;([o]
</span><br/>
<span class="covered" title="5 out of 5 forms covered">
048&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(and
</span><br/>
<span class="covered" title="3 out of 3 forms covered">
049&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(map?&nbsp;o)
</span><br/>
<span class="covered" title="6 out of 6 forms covered">
050&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(every?&nbsp;#(o&nbsp;%)&nbsp;required-keys)))
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
051&nbsp;&nbsp;&nbsp;&nbsp;([o&nbsp;minimised]
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
052&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(and
</span><br/>
<span class="covered" title="2 out of 2 forms covered">
053&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(proposition?&nbsp;o))
</span><br/>
<span class="covered" title="2 out of 2 forms covered">
054&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(not
</span><br/>
<span class="covered" title="2 out of 2 forms covered">
055&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(when
</span><br/>
<span class="covered" title="3 out of 3 forms covered">
056&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(true?&nbsp;minimised)
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
057&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;&nbsp;not&nbsp;good&nbsp;enough.&nbsp;An&nbsp;argument&nbsp;is&nbsp;a&nbsp;proposition&nbsp;even&nbsp;if&nbsp;its&nbsp;argument-keys
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
058&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;&nbsp;are&nbsp;not&nbsp;minimised&nbsp;(indeed,&nbsp;they&nbsp;should&nbsp;not&nbsp;be).&nbsp;TODO:&nbsp;fix.
</span><br/>
<span class="covered" title="6 out of 6 forms covered">
059&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(some&nbsp;map?&nbsp;(vals&nbsp;o))))))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
060&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
061&nbsp;&nbsp;(defn&nbsp;truth
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
062&nbsp;&nbsp;&nbsp;&nbsp;&quot;If&nbsp;`p`&nbsp;is&nbsp;a&nbsp;proposition,&nbsp;return&nbsp;whether&nbsp;the&nbsp;value&nbsp;asserted&nbsp;by&nbsp;that
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
063&nbsp;&nbsp;&nbsp;&nbsp;proposition&nbsp;is&nbsp;`true`.&nbsp;If&nbsp;the&nbsp;`:truth`&nbsp;key&nbsp;is&nbsp;missing,&nbsp;`true`&nbsp;is
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
064&nbsp;&nbsp;&nbsp;&nbsp;assumed.&quot;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
065&nbsp;&nbsp;&nbsp;&nbsp;;;&nbsp;TODO:&nbsp;for&nbsp;orthogonality,&nbsp;this&nbsp;might&nbsp;be&nbsp;renamed&nbsp;`decide`.
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
066&nbsp;&nbsp;&nbsp;&nbsp;[p]
</span><br/>
<span class="partial" title="1 out of 2 forms covered">
067&nbsp;&nbsp;&nbsp;&nbsp;(if
</span><br/>
<span class="covered" title="3 out of 3 forms covered">
068&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(proposition?&nbsp;p)
</span><br/>
<span class="covered" title="3 out of 3 forms covered">
069&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(if
</span><br/>
<span class="covered" title="5 out of 5 forms covered">
070&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(false?&nbsp;(:truth&nbsp;p))
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
071&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;false
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
072&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;true)
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
073&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nil))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
074&nbsp;&nbsp;
</span><br/>
<span class="partial" title="1 out of 2 forms covered">
075&nbsp;&nbsp;(defn&nbsp;rule?
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
076&nbsp;&nbsp;&nbsp;&nbsp;&quot;True&nbsp;if&nbsp;`o`&nbsp;qualifies&nbsp;as&nbsp;a&nbsp;rule.&nbsp;A&nbsp;rule&nbsp;is&nbsp;a&nbsp;structure&nbsp;which&nbsp;comprises
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
077&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;an&nbsp;id&nbsp;and
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
078&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;a&nbsp;function&nbsp;of&nbsp;two&nbsp;arguments,&nbsp;a&nbsp;proposition&nbsp;and&nbsp;a&nbsp;knowledge&nbsp;accessor,
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
079&nbsp;&nbsp;&nbsp;&nbsp;and&nbsp;which&nbsp;should&nbsp;(if&nbsp;this&nbsp;can&nbsp;simply&nbsp;be&nbsp;checked)&nbsp;return&nbsp;an&nbsp;argument
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
080&nbsp;&nbsp;&nbsp;&nbsp;structure.&quot;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
081&nbsp;&nbsp;&nbsp;&nbsp;[o]
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
082&nbsp;&nbsp;&nbsp;&nbsp;;;&nbsp;TODO:&nbsp;write&nbsp;this.&nbsp;In&nbsp;practice&nbsp;it&nbsp;may&nbsp;be&nbsp;simpler&nbsp;if&nbsp;we&nbsp;defprotocol&nbsp;or
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
083&nbsp;&nbsp;&nbsp;&nbsp;;;&nbsp;defrecord&nbsp;a&nbsp;rule&nbsp;structure.
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
084&nbsp;&nbsp;&nbsp;&nbsp;false)
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
085&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
086&nbsp;&nbsp;(defn&nbsp;argument?
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
087&nbsp;&nbsp;&nbsp;&nbsp;&quot;True&nbsp;if&nbsp;`o`&nbsp;qualifies&nbsp;as&nbsp;an&nbsp;argument&nbsp;structure.
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
088&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
089&nbsp;&nbsp;&nbsp;&nbsp;An&nbsp;argument&nbsp;structure&nbsp;is&nbsp;a&nbsp;(potentially&nbsp;rich)&nbsp;proposition&nbsp;which,&nbsp;in&nbsp;addition,&nbsp;should&nbsp;have&nbsp;values
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
090&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;`:confidence`&nbsp;and&nbsp;`:authority`.&nbsp;A&nbsp;value&nbsp;for&nbsp;`:data`&nbsp;may,&nbsp;and&nbsp;probably&nbsp;will,
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
091&nbsp;&nbsp;&nbsp;&nbsp;also&nbsp;be&nbsp;present&nbsp;but&nbsp;is&nbsp;not&nbsp;required.&nbsp;The&nbsp;value&nbsp;of&nbsp;`:confidence`&nbsp;must&nbsp;be&nbsp;a&nbsp;number
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
092&nbsp;&nbsp;&nbsp;&nbsp;in&nbsp;the&nbsp;range&nbsp;-1&nbsp;to&nbsp;1.&quot;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
093&nbsp;&nbsp;&nbsp;&nbsp;[o]
</span><br/>
<span class="partial" title="14 out of 15 forms covered">
094&nbsp;&nbsp;&nbsp;&nbsp;(and
</span><br/>
<span class="covered" title="3 out of 3 forms covered">
095&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(proposition?&nbsp;o)
</span><br/>
<span class="covered" title="7 out of 7 forms covered">
096&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(every?&nbsp;#(o&nbsp;%)&nbsp;argument-keys)
</span><br/>
<span class="covered" title="5 out of 5 forms covered">
097&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(number?&nbsp;(:confidence&nbsp;o))
</span><br/>
<span class="covered" title="4 out of 4 forms covered">
098&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(&lt;=&nbsp;-1&nbsp;(:confidence&nbsp;o)&nbsp;1)))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
099&nbsp;&nbsp;
</span><br/>
<span class="covered" title="6 out of 6 forms covered">
100&nbsp;&nbsp;(set&nbsp;(cons&nbsp;:data&nbsp;argument-keys))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
101&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
102&nbsp;&nbsp;(defn&nbsp;minimise
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
103&nbsp;&nbsp;&nbsp;&nbsp;&quot;Expecting&nbsp;that&nbsp;`o`&nbsp;is&nbsp;a&nbsp;(potentially&nbsp;rich)&nbsp;proposition,&nbsp;return&nbsp;a&nbsp;map&nbsp;identical
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
104&nbsp;&nbsp;&nbsp;&nbsp;to&nbsp;`o`&nbsp;save&nbsp;that&nbsp;for&nbsp;each&nbsp;value&nbsp;`v`&nbsp;of&nbsp;key&nbsp;`k`&nbsp;in&nbsp;`o`,&nbsp;if&nbsp;`v`&nbsp;is&nbsp;a&nbsp;map&nbsp;and&nbsp;`k`
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
105&nbsp;&nbsp;&nbsp;&nbsp;is&nbsp;not&nbsp;a&nbsp;member&nbsp;of&nbsp;`argument-keys`,&nbsp;then&nbsp;the&nbsp;returned&nbsp;map&nbsp;shall&nbsp;substitute&nbsp;the
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
106&nbsp;&nbsp;&nbsp;&nbsp;value&nbsp;of&nbsp;`(:id&nbsp;v)`.
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
107&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
108&nbsp;&nbsp;&nbsp;&nbsp;see&nbsp;also&nbsp;`wildwood.knowledge-access&#x2F;maximise`.&quot;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
109&nbsp;&nbsp;&nbsp;&nbsp;[o]
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
110&nbsp;&nbsp;&nbsp;&nbsp;(if
</span><br/>
<span class="covered" title="3 out of 3 forms covered">
111&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(map?&nbsp;o)
</span><br/>
<span class="covered" title="2 out of 2 forms covered">
112&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(reduce
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
113&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;merge
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
114&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{}
</span><br/>
<span class="covered" title="2 out of 2 forms covered">
115&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(map
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
116&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(fn&nbsp;[k]
</span><br/>
<span class="covered" title="2 out of 2 forms covered">
117&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{k
</span><br/>
<span class="covered" title="4 out of 4 forms covered">
118&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(let&nbsp;[v&nbsp;(k&nbsp;o)]
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
119&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(if
</span><br/>
<span class="covered" title="12 out of 12 forms covered">
120&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(and&nbsp;(not&nbsp;(preserved-keys&nbsp;k))&nbsp;(map?&nbsp;v))
</span><br/>
<span class="covered" title="3 out of 3 forms covered">
121&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(:id&nbsp;v)
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
122&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;v))})
</span><br/>
<span class="covered" title="3 out of 3 forms covered">
123&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(keys&nbsp;o)))
</span><br/>
<span class="not-covered" title="0 out of 1 forms covered">
124&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;o))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
125&nbsp;&nbsp;
</span><br/>
<span class="covered" title="2 out of 2 forms covered">
126&nbsp;&nbsp;(proposition?
</span><br/>
<span class="covered" title="7 out of 7 forms covered">
127&nbsp;&nbsp;&nbsp;&nbsp;(minimise&nbsp;{:verb&nbsp;:kill
</span><br/>
<span class="covered" title="5 out of 5 forms covered">
128&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:subject&nbsp;{:id&nbsp;:brutus&nbsp;:name&nbsp;&quot;Marcus&nbsp;Brutus&quot;}
</span><br/>
<span class="covered" title="7 out of 7 forms covered">
129&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:object&nbsp;{:id&nbsp;:caesar&nbsp;:name&nbsp;&quot;Gaius&nbsp;Julius&nbsp;Caesar&quot;&nbsp;:wife&nbsp;:drusila}}))
</span><br/>
</body>
</html>

View file

@ -1,19 +1,21 @@
(defproject wildwood "0.1.0-SNAPSHOT" (defproject wildwood "0.1.0-SNAPSHOT"
:description "A general inference library using a game theoretic inference mechanism." :cloverage {:output "docs/cloverage"}
:url "http://example.com/FIXME"
:license {:name "GNU General Public License,version 2.0 or (at your option) any later version"
:url "https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html"}
:dependencies [[org.clojure/clojure "1.8.0"]
[org.clojure/math.numeric-tower "0.0.4"]
[com.taoensso/timbre "4.10.0"]
[com.novemberain/monger "3.1.0"]
[prismatic/schema "1.1.12"]]
:codox {:metadata {:doc "**TODO**: write docs" :codox {:metadata {:doc "**TODO**: write docs"
:doc/format :markdown} :doc/format :markdown}
:output-path "docs/codox" :output-path "docs/codox"
:source-uri "https://github.com/simon-brooke/the-great-game/blob/master/{filepath}#L{line}"} :source-uri "https://github.com/simon-brooke/the-great-game/blob/master/{filepath}#L{line}"}
:dependencies [[org.clojure/clojure "1.8.0"]
[org.clojure/math.numeric-tower "0.0.4"]
[com.taoensso/timbre "4.10.0"]
[com.novemberain/monger "3.1.0"] ;; not yet used
[prismatic/schema "1.1.12"]] ;; not yet used
:description "A general inference library using a game theoretic inference mechanism."
:license {:name "GNU General Public License,version 2.0 or (at your option) any later version"
:url "https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html"}
:plugins [[lein-cloverage "1.1.1"] :plugins [[lein-cloverage "1.1.1"]
[lein-codox "0.10.7"] [lein-codox "0.10.7"]
[lein-cucumber "1.0.2"] [lein-cucumber "1.0.2"]
[lein-gorilla "0.4.0"]] [lein-gorilla "0.4.0"]]
:repl-options {:init-ns wildwood.core}) :repl-options {:init-ns wildwood.core}
:url "https://simon-brooke.github.io/wildwood/"
)