Sketch API, some documentation

This commit is contained in:
Simon Brooke 2020-04-22 23:05:17 +01:00
parent f013772522
commit f59e9a1b9d
No known key found for this signature in database
GPG key ID: A7A4F18D1D4DF987
33 changed files with 1185 additions and 38 deletions

View file

@ -33,10 +33,11 @@ Much of this text was written between 1986 and 1988 on Xerox 1108 and 1186 works
### Part Two: Into the wild wood ### Part Two: Into the wild wood
1. [Arboretum](Arboretum.html) 1. [Arboretum](Arboretum.html)
2. [Conception](Conception.html) 2. [Arden](Arden.html)
3. [Reimagining](Reimagining.html) 3. [KnacqTools](KnacqTools.html)
4. [Implementing](Implementing.html) 4. [Bialowieza](Bialowieza.html)
5. [Experience](Experience.html) 5. [Implementing](Implementing.html)
6. [Experience](Experience.html)
### Endmatter ### Endmatter

View file

@ -1,7 +1,433 @@
# Arboretum # Arboretum
**TODO**: To be scanned from chapter iv of the 21st June 1988 draft. This chapter describes briefly an inference mechanism, implemented in
the Arboretum prototype; this is included here to show the results
achieved in the author's early work on explanation, on which it is hoped
to build in the current work. A fuller description of this mechanism,
and of the Arboretum prototype, will be found in \[Mott & Brooke 87\],
from which this chapter is largely drawn.
![Arboretum screen view showing sample explanations](../img/Arboretum_screen.png) Arboretum was written in InterLisp-D\[4\] using LOOPS \[5\] object
oriented facilities, to allow people to manipulate DTree structures
through graphical representations: to build arbitrarily large knowledge
bases, to use these to provide answers to questions about objects in
domains admitting incomplete information - and to provide natural
language explanations of these answers. The inference process by which
answers are produced is shown as an animated graph. The user can ask the
system how the value of any particular feature was arrived at, and what
that value was. . It was developed for the Alvey DHSS Large Demonstrator
Project, and sought to meet early perceptions of the needs of DHSS
Adjudication Officers. Adjudication Officers decide claimants'
eligibility over a wide range of welfare benefits. There is a very large
volume of work to be done, so they work under considerable pressure.
*Arboretum screen showing a number of generated explanations. This picture was scanned from a 32 year old acetate slide, apologies for quality* The Adjudication process within the DHSS has its own levels of authority
culminating in the
Office of the Chief Adjudication Officer. This monitors the quality of
the decision making of Adjudication Officers, issues written guidelines
to assist them in their decision making, and distributes information
about changes in the benefit rules.
These modifications occur frequently, both to correct local anomalies
and of course to reflect more substantial political changes in the
provision of welfare. A static support system could not be useful
because it would become outdated almost immediately. What is required is
a system that can be modified and updated easily by the officials in the
O.C.A.O.
The general context is then of a large organisation in which relatively
numerous junior officials apply extensive and frequently changed
legislation in limited time under the supervision of relatively few
senior officials. The task of an IKBS support system is to maintain and
if possible improve the decision making quality of the former and render
more effective the supervision exercised by the latter.
We designed a system to meet these perceived needs around the DTree
algorithm devised by Peter Mott. This algorithm interprets graphical
data-structures (called 'DTrees') as rules of a non-monotonic (default)
logic.
Our intention was that the system should access a legislative rule base
composed of such rules, should propose a decision for the case in
question, and should then draft a letter explaining that decision to the
claimant. If the case was straightforward the Adjudication Officer would
accept the suggestion offered by the machine. Otherwise (s)he could
study a graphically presented trace of the machine's inference process
to assist in formulating an alternative decision.
One of the most significant advantages we would claim for the system as
implemented is that it is extremely simple for relatively naive users to
build knowledge bases. Knowledge engineering with this system requires
no understanding of computer language, no very abstruse knowledge about
the machine, and no complex calculation of weightings and probabilities.
The logic is designed to facilitate a methodology which we call
Elicitation by Exception.
The knowledge engineer's task, using this methodology to build a rule,
is simply to ask: is a given predicate normally true? If it were true,
would it normally be a T sufficient condition? And having got this far,
is there anything at all which would overturn the decision? If nothing
could, the process terminates; but if there is some more abstruse factor
which could still cause a change of mind, then that is added as a new
condition and once more one asks if there is anything further that could
cause a change of mind. Thus we proceed down a conceptual tree where at
each level the decision just made is reversed.
Intuitively the deeper the level, the more unlikely the situations that
occupy that level. It is our suggestion that the structure of exceptions
that can explicitly be recovered by the knowledge engineer in this way
is what is implicitly and imperfectly represented by the certainty
factors in classical expert systems.
These trees can then be directly interpreted as rules by the DTree
algorithm, the root idea of which is that a decision has always been
made, there is always an answer available, but one which the system is
currently trying to refute. The eventual decision is simply the last one
made, the one that the system has failed to refute. At any point it
tries to "change its mind", and when it can no longer do so that is the
decision it delivers. After all, if there is nothing as yet unexamined
that could make you change your mind why deliberate further, while if
there is how may you legitimately stop? The idea of an alternating
'yes/no' with decision characterised simply by its position at the end
is a very old one indeed due to Thomas Hobbes (16\]. The emphasis on
trying to refute rather than trying to confirm is of course Popperian
(passim, but see for example his \[17\]).
Let us summarise how to read a DTree rule structure. The basic units are
nodes and the edges between them. An edge should always be read
downwards, and, when connecting different colours, as meaning 'unless'.
Thus the most basic structure is "hypothesis is false unless condition
is true":
Basic DTree
Hypothesis -
Condition +
fig 3: simplest possible rule Conjunctions are represented by columns of
nodes, only the last of which has the colour to be returned if all are
true and disjunctions by branches, each of which terminates in the
colour to be returned if any are true. These can be combined in any
fashion desired, although we consider it good practise to keep
individual rule structures small. This is shown in the figure below:
Example DTree
Root Node -
1st Conjunct -
2nd Conjunct +
1st Disjunct -
2nd Disjunct -
fig 4: example rule, showing syntax The rule would read: "(rootnode) is
false unless (first conjunct) is true and (second conjunct) is true, in
which case it is true unless either (first disjunct) or (second
disjunct) is true".
A DTree system contains at any time a number of features, objects and
nodes. In a LISP implementation these are litatoms equipped with
property lists; the LOOPS implementation is rather different but not in
any way that affects the underlying ideas.
A feature has the properties:
(methods DTreeRootnode default activeFlg)
where methods is the list of
methods that the feature applies to see if it holds of the given object,
DTreeRootnode holds a pointer to a DTree node if the feature is equipped
with one (else NIL), default holds the default value of the feature, and
activeFlg is simply a semaphore to prevent DTrees calling themselves.
A word more about the methods property. This may in principle hold a
list of any functions that are to be applied (in the order found) with
standard arguments by the feature when it is called. A feature may thus
be seen as a local "expert" whose task is to decide whether it holds of
a given object by applying the list of methods it has been supplied with
(this picture was suggested by Lenat \[18\]). However, for the sake of
simplicity, we shall henceforth assume, that the methods property is
just the list (DoTree Default) and describe the algorithms accordingly.
A DTree for a feature is a list of nodes. A node has the properties:
(feature, colour, children, parent)
Feature points to a feature of the
system, colour is either Yes or No, children point to successor nodes of
the node (if any) and parent to the unique predescessor node (NIL for
the origin of the DTree).
An object is just a litatom. The system updates the property list of the
object.
The top-level function call is (Decide Feat feature object). This first
looks on the property list of object. If it finds (feature. Yes) or
(feature . No) it returns Yes or No as the case may be. Otherwise it
calls the features's Dtree if there is one (using DoTree) or if not,
returns a default value (using Default). Default may be a complicated
function (indeed it may initiate a substantial train of activity) but
for present purposes it may be thought of as simply recovering 'Yes or
'No from the default property of the feature.
The function of DoTree is just clerical, the work is done by DSearch.
This function induces a subtree of the DTree, the leaf nodes of which
are exactly those nodes from which no exit was possible. They represent
the points at which the system can no longer "change its mind". We call
them stickNodes, and DSearch passes them to the function Decide.
DSearch uses left to right depth first search. which corresponds well
with the conceptual structure of the DTree, exploring each possibility
exhaustively as it arises; but other traversals are not ruled out.
This only leaves the function Decide. This simply scans the nodes
submitted to it. If all of them have colour No then Decide returns No.
But if even one has colour Yes then Yes is returned instead. This
represents the fact that our domain rules provide sufficient conditions
for access to a benefit. If you qualify by any of the criteria then the
overall decision is Yes.
## The Explanation System
The explanation facility is the feature of the system which is of most
interest to us here. Arboretum had two innovations in this field. The
first was the Natural Language justification of decisions, which is the
central matter of interest to us; but the graphical display, and in
particular the animated search trace, also contributed to the user's
ease of comprehension of the systems decisions.
This system provided the equivalent of the more traditional "ask how"
and "ask why" queries provided by other inference mechanisms. The user
could see why a question was being asked, simply by looking at the
display and seeing that the answer was needed in the evaluation of the
current rule, whose result was needed by the preceding rule, and so on
back to the question originally asked. To ask how a particular value was
found, after completion of a run, we could point to a node representing
the feature in question and select "How?" from the left button menu. The
machine would respond by printing out a message saying whether the value
was supplied by the user, evaluated from a DTree, or taken from a
default. If a DTree had been called, it was displayed.
However, the natural language explanation system was vitally important
to the usefulness of the system. Without it, the user must effectively
take the decisions of the machine on faith, and in a domain with
imperfect information that is dangerous; furthermore, the machine is
reduced to giving yes/no answers. We could ask: 'is this person entitled
to benefit', but not 'which benefit is this person entitled to'. Of
course the system with explanation could still only give 'yes/no'
decisions, because that is the nature of the logic; but now it could
say: 'yes, this person is entitled to benefit; and the benefit they are
entitled to is mobility allowance'.
The explanation system depended on and exploited the fact that DTrees
are structured through exceptions from the very general to the more
abstruse and particular; and that, in consequence, any path through a
rule structure follows a line of coherent argument, again from the
general to the particular. Thus a sticking node on the DTree for a
feature both records a decision and, by its position in the DTree,
implies an explanation of why that decision was made.
Consequently, we attached to each node in the system a text fragment to
explain the consequence for the feature whose rule the node was in, if
that node were a sticking node. This explanation fragment was a piece of
canned text, written by the knowledge engineer.
When writing fragments, the knowledge engineer did not need to look
beyond the DTree that was being edited. The task was simply to consider
a node and attach text saying why the feature of the DTree obtained (or
did not) when that node was conceived as the only sticking node. The
structure of the system itself then ensured that in the final text, the
fragment would follow sensibly from the preceding one.
We discussed and experimented with several algorithms for the recovery
of explanations. The one we used worked as follows: when a search
resulted in a 'no' decision (ineligible for a benefit) then we
concatenated the explanation fragments from the deepest sticking node in
each succesive tree on the search path. The reason was that this
represents the "nearest" that the claimant got to succeeding in the
claim. This follows from the structure of the DTree, the deeper nodes
represent more abstruse conditions: to reach them at all more general
requirements for eligibility must have been met.
Furthermore, the information given in this explanation should be
sufficient to assist in the preparation of an appeal, if the claimant
felt there were further relevant facts which hadn't been considered -
and this was, indeed, precisely our intention. It is, we think, part of
the notion of relevance that it is the "nearest miss" that should be
described in such cases.
In the case of a 'yes' decision we chose the opposite approach and
selected the shallowest sticking node available. This was partly because
the claimant who succeeds is less concerned about why, but mostly
because it is not relevant to describe how a long and tortuous inference
path finally delivered 'yes' when a much shorter less involved one did
so too. Again this seems in accord with ordinary ideas of relevance.
To provide a small worked example of an explanation generated by the
system, which is yet large enough to give some flavour, let us assume
our knowledge base contains the following rules:
DTree for Entitled to Widow's Allowance
Entitled to Widov's Allowance -
Satisfies conditions for Widoy's Allowance +
>26 Yeeks Killed husband - Dead - bereaved -
-
in prison - Levering with
in prison - Living Yith
Partner -
fig 1: Rule for "Entitled to Widow's Allowance"
DTree for Living with Partner
Living with Partner -
Remarried +
Cohabiting +
fig 2: rule for "Living with Partner"
which, together, partially encode
the following legislation fragment, from the Social Security Act 1975
\[6\], chapter 14, section 24, as amended by the Social Security
(Miscellaneous Provisions) Act 1977, chapter 5, .section 22(2). This
reads:
24.-(1) A woman who has been widowed shall be entitled to widow's
allowance at the weekly rate specified in relation thereto in Schedule
4, Part I, paragraph 5, if -
\(a) she was under pensionable age at the time when her late husband
died, or he was then not entitled to a Category A retirement pension
(section 28); and
\(b) her late husband satisfied the contribution requirement for a
widow's allowance specified in Schedule 3, Part I, paragraph 4.
\(2) The period for which widow's allowance shall be payable shall be the
26 weeks next following the husband's death:
Provided that the allowance shall not be payable for any period after
the widow's death or remarriage or for any period during which she and a
man to whom she is not married are living together as man and wife.
Let us further assume we have entered at least the following explanation
fragments, each providing an explanation simply in the context of the
rule in which it appears:
1\. on the node for "Living with Partner" in the rule for "Entitled to
Widow's Allowance", the text:
> Although you satisfy the basic conditions for eligibility for Widow's
Allowance, you are not eligible, as we understand that you now have
another partner."
2\. on the node for "Remarried" in the rule for "Living with Partner",
the text:
> "We understand that you have remarried."
Of course we would also enter text fragments for all the other nodes in
our rules. Now assume we are dealing with the case of a widow whose
previous husband had paid his National Insurance stamps as required, and
who had not reached pensionable age at the time of his death. Assume
further that, within the first six months of her bereavement, our
claimant has remarried. The text that would be generated would be:
> Dear \[name of claimant\]
> Although you satisfy the basic conditions for eligibility for Widow's
Allowance, you are not eligible, as we understand that you now have
another partner. We understand that you have remarried.
> Yours Sincerely
> \[your name\]
There are a number of points to notice. Firstly, we could easily have
written far more friendly and less formal fragments; for example, We
could have written "we wish you all the best in your new marriage". The
formality here is simply to help in understanding the mechanical nature
of the concatenation process.
Much more significantly, note that although the inference engine must
have known or discovered, for example, that her previous husband had
indeed been regular and conscientious about his national insurance
contributions for it to have reached its conclusions, this information
has been 'included out of the explanation. It is irrelevant. It is clear
that, if our claimant wished to make an appeal, her grounds for doing so
would have to be that the information provided had been incorrect, and
that she had not, in fact remarried.
## Explanation: a discussion
{\*\* Write something (preferably rather a lot) here \*\*}
This ability to abstract relevant information from an inference engine's
backtrace represents a partial solution to the problem described in the
preceding chapters.
## References:
3\. Xerox Corporation: InterLisp Reference Manual ( Xerox Corporation,
1985)
4\. Daniel Bobrow & Mark Stefik: The LOOPS Manual (Xerox Corporation,
1983)
5\. Mark Richer & William Clancey: "Guidon Watch: A Graphic Interface for
Viewing a knowledge-Based System" IEEE Computer Gaphics and Applications
vol 5 no 11,1985
6\. Social Security Act 1975: Her Majesty's Stationery Office, London,
1975 Social Security (Miscellanous Provisions) Act 1977: Her Majesty's
Stationery Office, London, 1977
7\. D. Neligan: Social Security Case Law: Digest of Commisioners'
Decisions (Her Majesty's Stationary Office, London, 1979)
8\. Mark Richer: "An Evaluation of Expert System Development Tools"
Expert Systems vol 3 no 3 1986
9\. William Swartout: "XPLAIN: a System for Creating and Explaining
Expert Consulting Programs" Artificial Intelligence 21, 1983
10\. Peter Jackson: "Explaining Expert Systems Behaviour" paper given at
Workshop on Explanation, Alvey IKBS Expert System Theme 20th-21st March
1986: available from the Alvey Directorate.
11\. William Clancey: "The Epistemology of a Rule-Based Expert System - a
Framework for Explanation" Artificial Intelligence 20, 1983
12\. E. H. Shortliffe: MYCIN: Computer Based Medical Consultations
(Elsevier 1976)
13\. P. Hammond: "APES: A user manual" Research Report DOC 82/9, Imperial
College, London
14\. W. van Melle, E. Shortliffe & G. Buchanan: "EMYCIN: A Knowledge
Engineer's tool for constructing Rule-Based Expert Systems" (in Rule
Based Expert Systems ed Buchanan, G. & Shortliffe, E., Addison-Wesley,
1984)
15\. Diane Warner Hasling, William Clancey & Glenn Rennels: "Strategic
Explanations for a Diagnostic Consulting System" International Journal
of Man Machine Studies 20, 1984
16\. Thomas Hobbes: Leviathan (ed C. B. MacPherson, Penguin 1968)
17\. Karl Popper: Conjectures and Refutations (Routledge Kegan Paul,
1963)

318
doc/Arden.md Normal file
View file

@ -0,0 +1,318 @@
# Arden
## Why Arden?
It was something of tradition in the InterLisp-D community to give successive versions of a project codenames with successive alphabetical initials. So the first version would have a name starting 'A', the second 'B', and so on. The first prototype for Wildwood was called 'Arden', because it starts with an 'A', and because it is a fantastical dream-like forest depicted in Shakespeare's play 'As You Like It', which if I recall correctly was performed as a promenade performance by the Duke's Theatre in Lancaster in that year. While Arboretum - that carefully tended garden of trees - had been, as I've said, largely Peter's in concept, Wildwood would be mine.
## Background
After work had finished on [Arboretum](Arboretum.html), I started at once to think how the ideas we had implemented could be improved. However, academic work is a job, and I was a significant part of the programming resource of the Alvey DHSS Large Demonstrator Project. I was switched to a different task within the project, the 'Policy Prototype', a constraints-based system intended to assist DHSS policy officers in the formulation of new policy.
From my perspective, the great frustration of my time with the Alvey project was that, at the very start, we'd had a meeting at which people had been asked whether they could program or whether they could not. I, of course, could. But, actually, at least on the academic teams within the project, only a few, and only junior people admitted that they could (and, strictly, this was mostly honest - those who said they couldn't, couldn't). But this left us with a very small pool of developers, and a much larger pool of analysts.
Peter Mott and I had worked largely experimentally, developing our own design insights on the creation of Arboretum. I should say that while the implementation was mine, the ideas and the insights were mostly Peter's. But we worked together as a great team, and felt that we were building something which was genuinely powerful and exciting. Arboretum was completed in less than a year, between September 1986 and June 1987, and it worked. It felt like a success. We had achieved something.
While we were doing this, an enormous and ambitious specification was being written for the Policy Prototype by people who had little idea how it might be implemented. Three people, myself and two others, were assigned to build it. It was rapidly apparent that the specification was in many areas incomplete, in some areas inconsistent, and the bits that were implementable were vastly too expensive of compute power to run efficiently on our hardware. Over the course of a year, there were repeated demonstrations within the project of progress so far, and there was always disappointment from the senior members of the team - again, especially on the academic side.
It's worth saying that we were well supported by the commercial team in ICL, of whom I'd especially note Charlie Portman, Chris Burton and Nick Perry. Chris was a very old hand: he'd worked, as an apprentice, on the original build of the [Manchester Mark 1 ('Baby')](https://en.wikipedia.org/wiki/Manchester_Mark_1), and, later, after he had retired from ICL, would go on to lead the team which rebuilt it. Charlie was a very senior software person and also an excellent man manager. He'd led the operating systems design team within ICL, and had been responsible for (among many other things) the [VME operating system environment](https://en.wikipedia.org/wiki/ICL_VME). Nick was the geek's geek: someone we would now recognise as, like me, very autistic. I learned a lot from these people, and greatly appreciated their support.
As deadlines approached for the Policy Prototype, the three of us who were actually building it entered what would now be known as a four month 'crunch' - trying to build a system with too little manpower on inadequate hardware under immense pressure. I worked regularly sixteen hours a day, including weekends. However, by the time the Alvey conference was due, major parts of the prototype didn't work, and the parts which did work were so slow as to be unusable.
This wasn't a pleasant experience.
It was under these conditions that I started on the design of Wildwood, and most of what there is of this chapter were written. I still had access to InterLisp-D, which is a wonderful programming environment; I built a prototype I called Arden, which implemented some of the ideas; Arden was to be the first iteration of the Wildwood project. And I started writing this thesis, in support of it.
But the pressure of the Policy Prototype had been too much; I burned out, left the project, and worked for a year as a research fellow in the Department of Computing at Lancaster, building a noddy natural language query interface for relational databases in Prolog, which worked but didn't excite me. I lost access to the InterLisp-D machines, and consequently work on Arden came to an end. I don't believe I now have even floppy disks of the source code, and I certainly don't have a machine which could read them.
In 1989, after the year building the query interface, Peter Mott, myself, and some other ex-students of Peter's set up a company, Common Knowledge, to commercialise the work we'd done on Arboretum, because we thought it was both interesting and important, but the commercial partners in the Alvey DHSS Large Demonstrator Project were not interested in taking it further. ICL was entering a spiral of decline, and had no energy for experimental projects; I think they too felt burned by the experience of the Policy Prototype.
At Common Knowledge, I was appointed Managing Director and also techincal lead. It was in this period that we built KnacqTools, described in a separate chapter. The Wildwood project went on hold and has remained so until 2020.
## The ideas in Arden: starting to play
**TODO**: write something.
## Explanation is a social behaviour
**TODO**: write something.
## Games are social behaviours which can be modeled
**TODO**: write something.
## Explanation can be viewed as a game-playing activity
One of the models we frequently use in real life situations where a
decision has to be made on the basis of uncertain or conflicting
evidence is the dialectic model. In this, one authority proposes a
decision, giving an argument which supports it; another authority brings
forward objections to the argument, and may propose an alternative
decision. This process may continue recursively until there is no
further argument which can be advanced.
This is the model which underlies both academic and parliamentary
debate, and the proceedings of the law courts. The model supports a
'decision support' conception of the Expert System's role, rather than a
'decision-making' one: the user is placed in a position analogous to
that of a jury, considering the arguments presented by the advocates,
and making a decision on the basis of them.
We can view this dialectic approach to decision support as a game, with
a fixed set of legitimate moves.
## Hintikka's game theoretic logic
This approach seems very promising. It may tie in well with
game-theoretic logics such as those of Ehrenfeucht \[Ehrenfeucht 61\]
and Hintikka \[Hintikka & Kulas, 83 and passim\] Of course, these logics
are strictly monotonic. Problem areas where monotonic logics are
adequate are of limited interest, and unlikely to give rise to
interesting problems of explanation; but it should be possible to
develop a provable semantics for a non-monotonic extension. The decision
procedure for a game theoretic logic should not raise any particular
difficulties; the 'games' are zero sum, under complete information.
However, the adoption of a game-theoretic explanation mechanism does not
commit us to adopting a game theoretic logic; so (although interesting)
this line will only be pursued if it proves easy.
## The object of an explanation game
If explanation is to be seen as a game, what is to be its objective? If
we were to take a positivist position, we might say that the purpose of
explanation was to convey understanding; then the game would be a
co-operative one, with the object of both players being to achieve this
end.
But seeing that we have rejected this position, the object of an
explanation must be to persuade.
Furthermore, if we accept the argument advanced in chapter iii above
that explanation is hegemonistic, the explanee may be seen to have an
object in resisting explanation. So now we can have s clear idea of what
the object of an explanation game will be: The explainer will win, if
the explainee is brought to the point of no longer being able to produce
a rational reason for resisting the explanation. Otherwise, if when all
the supporting arguments the explainer can bring to bear have been
advanced the explainee is still unconvinced, then the explainee has won.
'Rational', here, is of course a fix. In an explanation situation
involving two human beings, the explainee might continue to resist even
if there were no 'rational reason for doing so. This situation would be
non-deterministic, though, and too difficult for me to deal with.
## Legitimate moves in an explanation game
A possible set of legitimate moves which might be used as the basis for
an explanation generator in a non-monotonic expert system might be:
### PRESENT
- present a case, supported by an argument, which may include one or
more assumptions.
Generally, in a non-monotonic system, we are dealing with incomplete
information \[and indeed, this is generally the case in 'real life').
Consequently, any conclusion is likely to be based upon one or more
unsupported assumptions.
\[starting move\]
### DOUBT
- challenge one or more of the assumptions.
\[basic response to PRESENT, REBUT, or COUNTER-EXAMPLE\]
### DOUBT-IRRELEVANT
- claim that if the assumption were false, it would make no difference
to the decision.
\[blocking response to DOUBT\]
### ASSUMPTION-PROBABLE
- claim that the assumption is probable on the basis of prior
experience.
\[weaker response to DOUBT\]
### REBUT
- this is essentially a PRESENT, but of an argument based on the
opposite assumption to that challenged in the preceding DOUBT.
\[response to a PASS following a DOUBT\]
### COUNTER-EXAMPLE
- present a known case similar to the current one, where the predicate
of the assumption which has been challenged holds the opposite value.
\[response to ASSUMPTION-PROBABLE\]
### PASS
- a null move in response to any other move. Forces other player to
move. In some sense this might be seen as equivalent to saying 'so
what': the opponent has made a move, but there is nothing further which
the player wants to advance at this stage. This move is inherently
dangerous, because the game ends when the two players PASS in succesive
moves.
\[weakest response to anything\]
Obviously, in human dialectic, other legitimate moves attack the
validity of
inference steps; but for a machine implementation, we can assume all
inference steps are in themselves valid.
Implementing a game theoretic approach to explanation
======================================================
Playing the explanation game
-----------------------------
The game playing algorithm required to implement an explanation system
need not be sophisticated: indeed, it must not be too sophisticated, at
least as a game player. Consider: a good game playing algorithm looks
ahead to calculate what the probable responses to the moves it makes
will be. If it sees that one possible move leads to a dead end, it will
not make that move.
But in generating an explanation, we need to explore any path whose
conclusion is not immediately obvious. So either the game-playing
algorithm should not look ahead more than, perhaps, one ply, or else, if
it does so, then when it sees a 'closed path', it should print out a
message something of the form:
Critic: Oh yes, I see that even if the assumption that Carol hasTwoLegs
is false it would not affect the assumption that Carol canSwim.
Initially, however, I propose to implement a game-playing algorithm
which simply makes the strongest move available to the player, based on
a scoring scheme which does not look ahead. The game will proceed
something like tennis; the player who last made a PRESENT or REBUT move
will have the initiative, the 'serve' as it were, and need only defend
to win. The other player must try to 'break' this 'serve', by forcing a
DOUBT...PASS sequence, which allows a REBUT play. Dialectic explanation
- the two player game.
With this schema, we can mechanize a dialectic about a case. The game is
played by the machine against itself; 'agents' in the machine play moves
in turn until both sequentially pass, or until the user interrupts. Each
move produces a natural language statement on the display. Ideally, the
user could interrupt at any time, either to request further
justification for a move, or to halt the process.
As a (simple) example of what might be produced, here is some sample
output from a very crude prototype system :
User: K- \#\$ Carol Explain \#\$CanSwim)
\[send to the object called Carol a message asking for an explanation of
the value Carol holds for the predicate named
CanSwim \]
Consultant: What is the value of CanSwim for Carol?
\[ 'Consultant' and 'Critic' are the names given to the two 'agents' -
the knowledge base doesn't contain the relevant information, so it must
be inferred. \]
User: Don't know...
Consultant: I found that CanSwim was true of Carol by Default using the
following assumptions:
(I assumed \#ScanSwim was true of Carol)
My reasons are:
CanSwim is true of most Mammals; Carol is a Mammal; Therefore it is
probable that CanSwim
is true of Carol.
Critic: The assumption that CanSwim is true is unsafe: Henry is also of
type (s) (Person) but
CanSwim is false of Henry.
This is output from Wildwood version Arden, my first prototype
object-based inference mechanism. It DOES NOT implement the game-playing
model given.
This example shows 'Consultant' PRESENTing a case based on a single
assumption, and 'Critic' responding with a COUNTER-EXAMPLE - a move
which would not be legal under the scheme given. However, this should
give some indication of how the idea might be implemented.
{**TODO**: figure}
Interaction Trace
User: \[QU\] Is it true that Carol canSwim?
Consultant: \[PR\] I assume that carol canSwim.
User: \[DO\] I doubt that...
Consultant: \[AP\] It is probable that Carol canSwim because:
can Swim is true of most mammals, and Carol is a mammal
Options... Counter
QUery
Andrew Present
Belinda Doubt
Charles Doubl relevant Diana Assumption Prob Frederick Rebut
Ginny Counter-Exam Henry PAss
Tris James Katharine Leonard
User:
fig 5.1: Showing how the Critic could guide the user in interacting with
the Consultant. The Consultant has made an 'Assumption Probable' move
(marked \[AP\]). The Critic is guiding the user firstly by greying the
illegal moves, and secondly by indicating with a tick the preferred
move. The user has selected this (shown by the boxing on the options
menu) and the Critic has opened a menu of all the objects which might be
advanced as valid counter-examples, again indicating the preferred choice.
The simple model described above has not achieved all that we want,
however. The machine, in the form of the agent Consultant' has attempted
to explain to itself, wearing its 'Critic' hat. The user's role has
simply been that of passive observer. The first enhancement would be to
give the user control of the 'critic'; but because the user cannot have
the same view of the knowledge base as the machine, the Critic will have
to guide the user, firstly by showing the user the legal moves
available, and second by finding supplementary information to support
these moves.
Explanation as conversation - a three player game
--------------------------------------------------
A better design still might be to allow the machine to carry on its
dialogue as before, but to allow the user to interrupt and challenge
either of the agents. It seems probable that the most interesting moves
the user could make would be DOUBT, and also COUNTER-EXAMPLE, where the
user could present an example case not previously known to the machine.
Now the user can sit back and watch, if the conversation brings out the
points which seem relevant; but equally the user can intervene to steer
the conversation.
These ideas had not, needless to say, yet been implemented in 1988 when
I moved onto working on KnacqTools.
I hope that they will be implemented as I develop the ideas in this
document.

7
doc/Bialowieza.md Normal file
View file

@ -0,0 +1,7 @@
# Bialowieza
{not yet written. To cover development of the Clojure Wildwood library, and the thinking and design which develops as I do it}
## Why Bialowieza?
Bialowieza is the second iteration of the Wildwood engine, and this following convention its name should start with 'B'. [Białowieża](https://en.wikipedia.org/wiki/Bia%C5%82owie%C5%BCa) is Europe's last great wild wood, and it is currently under threat.

View file

@ -1,3 +0,0 @@
# Conception
**TODO**: To be scanned from chapter v of the 21st June 1988 draft.

15
doc/KnacqTools.md Normal file
View file

@ -0,0 +1,15 @@
# KnacqTools
## Background
KnacqTools ('Knowledge Acquisition Toolkit") was essentially a productisation of the ideas developed in [Arboretum](Arboretum.html). It was written in C, originally for Acorn's RISC OS operating system, and later ported to UNIX. The only major innovation of KnacqTools was that it was able to transform DTree knowledge structures into the rule languages of a number of contemporary 'expert system' inference engines.
Thus the expected use of KnacqTools was not to run an inference process itself (although of course it could do this), but to allow a knowledge engineer, using Peter Mott's 'elicitation by exception' technique, which I and others had polished in the field, to enter DTrees elicited from domain experts, compile these DTrees into production rules, and export those prodution rules to the selected expert system package for deployment.
KnacqTools was briefly successful between about 1990 and 1992. The commercially important UNIX port was never fully debugged.
## KnacqTools and explanation
While the KnacqTools engine had a complete implementation of Arboretum's explanation system and generated high quality explanations itself, the exported production rule sets (depending on the selected expert system package) was not necessarily capable of the same degree of explanation.
There were no new innovations in explanation, in KnacqTools.

View file

@ -1,3 +0,0 @@
# Reimagining
{not yet written. To cover development of the Clojure Wildwood library, and the thinking and design which develops as I do it}

View file

@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "" <!DOCTYPE html PUBLIC ""
""> "">
<html><head><meta charset="UTF-8" /><title>Against Truth</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">Wildwood</span> <span class="project-version">0.1.0-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 current"><a href="AgainstTruth.html"><div class="inner"><span>Against Truth</span></div></a></li><li class="depth-1 "><a href="Analysis.html"><div class="inner"><span>Analysis</span></div></a></li><li class="depth-1 "><a href="Arboretum.html"><div class="inner"><span>Arboretum</span></div></a></li><li class="depth-1 "><a href="Conception.html"><div class="inner"><span>Conception</span></div></a></li><li class="depth-1 "><a href="Errata.html"><div class="inner"><span>Errata</span></div></a></li><li class="depth-1 "><a href="Experience.html"><div class="inner"><span>Experience</span></div></a></li><li class="depth-1 "><a href="History.html"><div class="inner"><span>History</span></div></a></li><li class="depth-1 "><a href="Implementing.html"><div class="inner"><span>Implementing</span></div></a></li><li class="depth-1 "><a href="Manifesto.html"><div class="inner"><span>Manifesto</span></div></a></li><li class="depth-1 "><a href="OnHylasAndPhilonus.html"><div class="inner"><span>On the First Dialogue of Hylas and Philonous</span></div></a></li><li class="depth-1 "><a href="PredicateSubtext.html"><div class="inner"><span>On the subtext of a predicate</span></div></a></li><li class="depth-1 "><a href="Reimagining.html"><div class="inner"><span>Reimagining</span></div></a></li><li class="depth-1 "><a href="TheProblem.html"><div class="inner"><span>The Problem</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to Wildwood</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1 "><a href="wildwood.core.html"><div class="inner"><span>wildwood.core</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#against-truth" name="against-truth"></a>Against Truth</h1> <html><head><meta charset="UTF-8" /><title>Against Truth</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">Wildwood</span> <span class="project-version">0.1.0-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 current"><a href="AgainstTruth.html"><div class="inner"><span>Against Truth</span></div></a></li><li class="depth-1 "><a href="Analysis.html"><div class="inner"><span>Analysis</span></div></a></li><li class="depth-1 "><a href="Arboretum.html"><div class="inner"><span>Arboretum</span></div></a></li><li class="depth-1 "><a href="Arden.html"><div class="inner"><span>Arden</span></div></a></li><li class="depth-1 "><a href="Bialowieza.html"><div class="inner"><span>Bialowieza</span></div></a></li><li class="depth-1 "><a href="Errata.html"><div class="inner"><span>Errata</span></div></a></li><li class="depth-1 "><a href="Experience.html"><div class="inner"><span>Experience</span></div></a></li><li class="depth-1 "><a href="History.html"><div class="inner"><span>History</span></div></a></li><li class="depth-1 "><a href="Implementing.html"><div class="inner"><span>Implementing</span></div></a></li><li class="depth-1 "><a href="KnacqTools.html"><div class="inner"><span>KnacqTools</span></div></a></li><li class="depth-1 "><a href="Manifesto.html"><div class="inner"><span>Manifesto</span></div></a></li><li class="depth-1 "><a href="OnHylasAndPhilonus.html"><div class="inner"><span>On the First Dialogue of Hylas and Philonous</span></div></a></li><li class="depth-1 "><a href="PredicateSubtext.html"><div class="inner"><span>On the subtext of a predicate</span></div></a></li><li class="depth-1 "><a href="TheProblem.html"><div class="inner"><span>The Problem</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to Wildwood</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>wildwood</span></div></div></li><li class="depth-2 branch"><a href="wildwood.advocate.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>advocate</span></div></a></li><li class="depth-2 branch"><a href="wildwood.bialowieza.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>bialowieza</span></div></a></li><li class="depth-2 branch"><a href="wildwood.knowledge-accessor.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>knowledge-accessor</span></div></a></li><li class="depth-2"><a href="wildwood.schema.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>schema</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#against-truth" name="against-truth"></a>Against Truth</h1>
<p><a href="mailto:simon@journeyman.cc">Simon Brooke</a></p> <p><a href="mailto:simon@journeyman.cc">Simon Brooke</a></p>
<blockquote> <blockquote>
<p>Hey, what IS truth, man? [Beeblebrox, quoted in [Adams, 1978]]</p> <p>Hey, what IS truth, man? [Beeblebrox, quoted in [Adams, 1978]]</p>
@ -26,8 +26,9 @@
<h3><a href="#part-two-into-the-wild-wood" name="part-two-into-the-wild-wood"></a>Part Two: Into the wild wood</h3> <h3><a href="#part-two-into-the-wild-wood" name="part-two-into-the-wild-wood"></a>Part Two: Into the wild wood</h3>
<ol> <ol>
<li><a href="Arboretum.html">Arboretum</a></li> <li><a href="Arboretum.html">Arboretum</a></li>
<li><a href="Conception.html">Conception</a></li> <li><a href="Arden.html">Arden</a></li>
<li><a href="Reimagining.html">Reimagining</a></li> <li><a href="KnacqTools.html">KnacqTools</a></li>
<li><a href="Bialowieza.html">Bialowieza</a></li>
<li><a href="Implementing.html">Implementing</a></li> <li><a href="Implementing.html">Implementing</a></li>
<li><a href="Experience.html">Experience</a></li> <li><a href="Experience.html">Experience</a></li>
</ol> </ol>

View file

@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "" <!DOCTYPE html PUBLIC ""
""> "">
<html><head><meta charset="UTF-8" /><title>Analysis</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">Wildwood</span> <span class="project-version">0.1.0-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="AgainstTruth.html"><div class="inner"><span>Against Truth</span></div></a></li><li class="depth-1 current"><a href="Analysis.html"><div class="inner"><span>Analysis</span></div></a></li><li class="depth-1 "><a href="Arboretum.html"><div class="inner"><span>Arboretum</span></div></a></li><li class="depth-1 "><a href="Conception.html"><div class="inner"><span>Conception</span></div></a></li><li class="depth-1 "><a href="Errata.html"><div class="inner"><span>Errata</span></div></a></li><li class="depth-1 "><a href="Experience.html"><div class="inner"><span>Experience</span></div></a></li><li class="depth-1 "><a href="History.html"><div class="inner"><span>History</span></div></a></li><li class="depth-1 "><a href="Implementing.html"><div class="inner"><span>Implementing</span></div></a></li><li class="depth-1 "><a href="Manifesto.html"><div class="inner"><span>Manifesto</span></div></a></li><li class="depth-1 "><a href="OnHylasAndPhilonus.html"><div class="inner"><span>On the First Dialogue of Hylas and Philonous</span></div></a></li><li class="depth-1 "><a href="PredicateSubtext.html"><div class="inner"><span>On the subtext of a predicate</span></div></a></li><li class="depth-1 "><a href="Reimagining.html"><div class="inner"><span>Reimagining</span></div></a></li><li class="depth-1 "><a href="TheProblem.html"><div class="inner"><span>The Problem</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to Wildwood</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1 "><a href="wildwood.core.html"><div class="inner"><span>wildwood.core</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#analysis" name="analysis"></a>Analysis</h1> <html><head><meta charset="UTF-8" /><title>Analysis</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">Wildwood</span> <span class="project-version">0.1.0-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="AgainstTruth.html"><div class="inner"><span>Against Truth</span></div></a></li><li class="depth-1 current"><a href="Analysis.html"><div class="inner"><span>Analysis</span></div></a></li><li class="depth-1 "><a href="Arboretum.html"><div class="inner"><span>Arboretum</span></div></a></li><li class="depth-1 "><a href="Arden.html"><div class="inner"><span>Arden</span></div></a></li><li class="depth-1 "><a href="Bialowieza.html"><div class="inner"><span>Bialowieza</span></div></a></li><li class="depth-1 "><a href="Errata.html"><div class="inner"><span>Errata</span></div></a></li><li class="depth-1 "><a href="Experience.html"><div class="inner"><span>Experience</span></div></a></li><li class="depth-1 "><a href="History.html"><div class="inner"><span>History</span></div></a></li><li class="depth-1 "><a href="Implementing.html"><div class="inner"><span>Implementing</span></div></a></li><li class="depth-1 "><a href="KnacqTools.html"><div class="inner"><span>KnacqTools</span></div></a></li><li class="depth-1 "><a href="Manifesto.html"><div class="inner"><span>Manifesto</span></div></a></li><li class="depth-1 "><a href="OnHylasAndPhilonus.html"><div class="inner"><span>On the First Dialogue of Hylas and Philonous</span></div></a></li><li class="depth-1 "><a href="PredicateSubtext.html"><div class="inner"><span>On the subtext of a predicate</span></div></a></li><li class="depth-1 "><a href="TheProblem.html"><div class="inner"><span>The Problem</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to Wildwood</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>wildwood</span></div></div></li><li class="depth-2 branch"><a href="wildwood.advocate.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>advocate</span></div></a></li><li class="depth-2 branch"><a href="wildwood.bialowieza.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>bialowieza</span></div></a></li><li class="depth-2 branch"><a href="wildwood.knowledge-accessor.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>knowledge-accessor</span></div></a></li><li class="depth-2"><a href="wildwood.schema.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>schema</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#analysis" name="analysis"></a>Analysis</h1>
<h2><a href="#accounts-from-the-philosophy-of-science" name="accounts-from-the-philosophy-of-science"></a>Accounts from the Philosophy of Science</h2> <h2><a href="#accounts-from-the-philosophy-of-science" name="accounts-from-the-philosophy-of-science"></a>Accounts from the Philosophy of Science</h2>
<p>(Towards another chapter. What l want to do is: ,</p> <p>(Towards another chapter. What l want to do is: ,</p>
<ol> <ol>

View file

@ -1,6 +1,123 @@
<!DOCTYPE html PUBLIC "" <!DOCTYPE html PUBLIC ""
""> "">
<html><head><meta charset="UTF-8" /><title>Arboretum</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">Wildwood</span> <span class="project-version">0.1.0-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="AgainstTruth.html"><div class="inner"><span>Against Truth</span></div></a></li><li class="depth-1 "><a href="Analysis.html"><div class="inner"><span>Analysis</span></div></a></li><li class="depth-1 current"><a href="Arboretum.html"><div class="inner"><span>Arboretum</span></div></a></li><li class="depth-1 "><a href="Conception.html"><div class="inner"><span>Conception</span></div></a></li><li class="depth-1 "><a href="Errata.html"><div class="inner"><span>Errata</span></div></a></li><li class="depth-1 "><a href="Experience.html"><div class="inner"><span>Experience</span></div></a></li><li class="depth-1 "><a href="History.html"><div class="inner"><span>History</span></div></a></li><li class="depth-1 "><a href="Implementing.html"><div class="inner"><span>Implementing</span></div></a></li><li class="depth-1 "><a href="Manifesto.html"><div class="inner"><span>Manifesto</span></div></a></li><li class="depth-1 "><a href="OnHylasAndPhilonus.html"><div class="inner"><span>On the First Dialogue of Hylas and Philonous</span></div></a></li><li class="depth-1 "><a href="PredicateSubtext.html"><div class="inner"><span>On the subtext of a predicate</span></div></a></li><li class="depth-1 "><a href="Reimagining.html"><div class="inner"><span>Reimagining</span></div></a></li><li class="depth-1 "><a href="TheProblem.html"><div class="inner"><span>The Problem</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to Wildwood</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1 "><a href="wildwood.core.html"><div class="inner"><span>wildwood.core</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#arboretum" name="arboretum"></a>Arboretum</h1> <html><head><meta charset="UTF-8" /><title>Arboretum</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">Wildwood</span> <span class="project-version">0.1.0-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="AgainstTruth.html"><div class="inner"><span>Against Truth</span></div></a></li><li class="depth-1 "><a href="Analysis.html"><div class="inner"><span>Analysis</span></div></a></li><li class="depth-1 current"><a href="Arboretum.html"><div class="inner"><span>Arboretum</span></div></a></li><li class="depth-1 "><a href="Arden.html"><div class="inner"><span>Arden</span></div></a></li><li class="depth-1 "><a href="Bialowieza.html"><div class="inner"><span>Bialowieza</span></div></a></li><li class="depth-1 "><a href="Errata.html"><div class="inner"><span>Errata</span></div></a></li><li class="depth-1 "><a href="Experience.html"><div class="inner"><span>Experience</span></div></a></li><li class="depth-1 "><a href="History.html"><div class="inner"><span>History</span></div></a></li><li class="depth-1 "><a href="Implementing.html"><div class="inner"><span>Implementing</span></div></a></li><li class="depth-1 "><a href="KnacqTools.html"><div class="inner"><span>KnacqTools</span></div></a></li><li class="depth-1 "><a href="Manifesto.html"><div class="inner"><span>Manifesto</span></div></a></li><li class="depth-1 "><a href="OnHylasAndPhilonus.html"><div class="inner"><span>On the First Dialogue of Hylas and Philonous</span></div></a></li><li class="depth-1 "><a href="PredicateSubtext.html"><div class="inner"><span>On the subtext of a predicate</span></div></a></li><li class="depth-1 "><a href="TheProblem.html"><div class="inner"><span>The Problem</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to Wildwood</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>wildwood</span></div></div></li><li class="depth-2 branch"><a href="wildwood.advocate.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>advocate</span></div></a></li><li class="depth-2 branch"><a href="wildwood.bialowieza.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>bialowieza</span></div></a></li><li class="depth-2 branch"><a href="wildwood.knowledge-accessor.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>knowledge-accessor</span></div></a></li><li class="depth-2"><a href="wildwood.schema.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>schema</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#arboretum" name="arboretum"></a>Arboretum</h1>
<p><strong>TODO</strong>: To be scanned from chapter iv of the 21st June 1988 draft.</p> <p>This chapter describes briefly an inference mechanism, implemented in the Arboretum prototype; this is included here to show the results achieved in the authors early work on explanation, on which it is hoped to build in the current work. A fuller description of this mechanism, and of the Arboretum prototype, will be found in [Mott &amp; Brooke 87], from which this chapter is largely drawn.</p>
<p><img src="../img/Arboretum_screen.png" alt="Arboretum screen view showing sample explanations" /></p> <p>Arboretum was written in InterLisp-D[4] using LOOPS [5] object oriented facilities, to allow people to manipulate DTree structures through graphical representations: to build arbitrarily large knowledge bases, to use these to provide answers to questions about objects in domains admitting incomplete information - and to provide natural language explanations of these answers. The inference process by which answers are produced is shown as an animated graph. The user can ask the system how the value of any particular feature was arrived at, and what that value was. . It was developed for the Alvey DHSS Large Demonstrator Project, and sought to meet early perceptions of the needs of DHSS Adjudication Officers. Adjudication Officers decide claimants eligibility over a wide range of welfare benefits. There is a very large volume of work to be done, so they work under considerable pressure.</p>
<p><em>Arboretum screen showing a number of generated explanations. This picture was scanned from a 32 year old acetate slide, apologies for quality</em></p></div></div></div></body></html> <p>The Adjudication process within the DHSS has its own levels of authority culminating in the</p>
<p>Office of the Chief Adjudication Officer. This monitors the quality of the decision making of Adjudication Officers, issues written guidelines to assist them in their decision making, and distributes information about changes in the benefit rules.</p>
<p>These modifications occur frequently, both to correct local anomalies and of course to reflect more substantial political changes in the provision of welfare. A static support system could not be useful because it would become outdated almost immediately. What is required is a system that can be modified and updated easily by the officials in the O.C.A.O.</p>
<p>The general context is then of a large organisation in which relatively numerous junior officials apply extensive and frequently changed legislation in limited time under the supervision of relatively few senior officials. The task of an IKBS support system is to maintain and if possible improve the decision making quality of the former and render more effective the supervision exercised by the latter.</p>
<p>We designed a system to meet these perceived needs around the DTree algorithm devised by Peter Mott. This algorithm interprets graphical data-structures (called DTrees) as rules of a non-monotonic (default) logic.</p>
<p>Our intention was that the system should access a legislative rule base composed of such rules, should propose a decision for the case in question, and should then draft a letter explaining that decision to the claimant. If the case was straightforward the Adjudication Officer would accept the suggestion offered by the machine. Otherwise (s)he could study a graphically presented trace of the machines inference process to assist in formulating an alternative decision.</p>
<p>One of the most significant advantages we would claim for the system as implemented is that it is extremely simple for relatively naive users to build knowledge bases. Knowledge engineering with this system requires no understanding of computer language, no very abstruse knowledge about the machine, and no complex calculation of weightings and probabilities. The logic is designed to facilitate a methodology which we call Elicitation by Exception.</p>
<p>The knowledge engineers task, using this methodology to build a rule, is simply to ask: is a given predicate normally true? If it were true, would it normally be a T sufficient condition? And having got this far, is there anything at all which would overturn the decision? If nothing could, the process terminates; but if there is some more abstruse factor which could still cause a change of mind, then that is added as a new condition and once more one asks if there is anything further that could cause a change of mind. Thus we proceed down a conceptual tree where at each level the decision just made is reversed.</p>
<p>Intuitively the deeper the level, the more unlikely the situations that occupy that level. It is our suggestion that the structure of exceptions that can explicitly be recovered by the knowledge engineer in this way is what is implicitly and imperfectly represented by the certainty factors in classical expert systems.</p>
<p>These trees can then be directly interpreted as rules by the DTree algorithm, the root idea of which is that a decision has always been made, there is always an answer available, but one which the system is currently trying to refute. The eventual decision is simply the last one made, the one that the system has failed to refute. At any point it tries to “change its mind”, and when it can no longer do so that is the decision it delivers. After all, if there is nothing as yet unexamined that could make you change your mind why deliberate further, while if there is how may you legitimately stop? The idea of an alternating yes/no with decision characterised simply by its position at the end is a very old one indeed due to Thomas Hobbes (16]. The emphasis on trying to refute rather than trying to confirm is of course Popperian (passim, but see for example his [17]).</p>
<p>Let us summarise how to read a DTree rule structure. The basic units are nodes and the edges between them. An edge should always be read downwards, and, when connecting different colours, as meaning unless. Thus the most basic structure is “hypothesis is false unless condition is true”:</p>
<p>Basic DTree</p>
<p>Hypothesis -</p>
<p>Condition +</p>
<p>fig 3: simplest possible rule Conjunctions are represented by columns of nodes, only the last of which has the colour to be returned if all are true and disjunctions by branches, each of which terminates in the colour to be returned if any are true. These can be combined in any fashion desired, although we consider it good practise to keep individual rule structures small. This is shown in the figure below:</p>
<p>Example DTree</p>
<p>Root Node -</p>
<p>1st Conjunct -</p>
<p>2nd Conjunct +</p>
<p>1st Disjunct -</p>
<p>2nd Disjunct -</p>
<p>fig 4: example rule, showing syntax The rule would read: “(rootnode) is false unless (first conjunct) is true and (second conjunct) is true, in which case it is true unless either (first disjunct) or (second disjunct) is true”.</p>
<p>A DTree system contains at any time a number of features, objects and nodes. In a LISP implementation these are litatoms equipped with property lists; the LOOPS implementation is rather different but not in any way that affects the underlying ideas.</p>
<p>A feature has the properties:</p>
<pre><code>(methods DTreeRootnode default activeFlg)
</code></pre>
<p>where methods is the list of methods that the feature applies to see if it holds of the given object, DTreeRootnode holds a pointer to a DTree node if the feature is equipped with one (else NIL), default holds the default value of the feature, and activeFlg is simply a semaphore to prevent DTrees calling themselves.</p>
<p>A word more about the methods property. This may in principle hold a list of any functions that are to be applied (in the order found) with standard arguments by the feature when it is called. A feature may thus be seen as a local “expert” whose task is to decide whether it holds of a given object by applying the list of methods it has been supplied with (this picture was suggested by Lenat [18]). However, for the sake of simplicity, we shall henceforth assume, that the methods property is just the list (DoTree Default) and describe the algorithms accordingly.</p>
<p>A DTree for a feature is a list of nodes. A node has the properties:</p>
<pre><code>(feature, colour, children, parent)
</code></pre>
<p>Feature points to a feature of the system, colour is either Yes or No, children point to successor nodes of the node (if any) and parent to the unique predescessor node (NIL for the origin of the DTree).</p>
<p>An object is just a litatom. The system updates the property list of the object.</p>
<p>The top-level function call is (Decide Feat feature object). This first looks on the property list of object. If it finds (feature. Yes) or (feature . No) it returns Yes or No as the case may be. Otherwise it calls the featuress Dtree if there is one (using DoTree) or if not, returns a default value (using Default). Default may be a complicated function (indeed it may initiate a substantial train of activity) but for present purposes it may be thought of as simply recovering Yes or No from the default property of the feature.</p>
<p>The function of DoTree is just clerical, the work is done by DSearch. This function induces a subtree of the DTree, the leaf nodes of which are exactly those nodes from which no exit was possible. They represent the points at which the system can no longer “change its mind”. We call them stickNodes, and DSearch passes them to the function Decide.</p>
<p>DSearch uses left to right depth first search. which corresponds well with the conceptual structure of the DTree, exploring each possibility exhaustively as it arises; but other traversals are not ruled out.</p>
<p>This only leaves the function Decide. This simply scans the nodes submitted to it. If all of them have colour No then Decide returns No. But if even one has colour Yes then Yes is returned instead. This represents the fact that our domain rules provide sufficient conditions for access to a benefit. If you qualify by any of the criteria then the overall decision is Yes.</p>
<h2><a href="#the-explanation-system" name="the-explanation-system"></a>The Explanation System</h2>
<p>The explanation facility is the feature of the system which is of most interest to us here. Arboretum had two innovations in this field. The first was the Natural Language justification of decisions, which is the central matter of interest to us; but the graphical display, and in particular the animated search trace, also contributed to the users ease of comprehension of the systems decisions.</p>
<p>This system provided the equivalent of the more traditional “ask how” and “ask why” queries provided by other inference mechanisms. The user could see why a question was being asked, simply by looking at the display and seeing that the answer was needed in the evaluation of the current rule, whose result was needed by the preceding rule, and so on back to the question originally asked. To ask how a particular value was found, after completion of a run, we could point to a node representing the feature in question and select “How?” from the left button menu. The machine would respond by printing out a message saying whether the value was supplied by the user, evaluated from a DTree, or taken from a default. If a DTree had been called, it was displayed.</p>
<p>However, the natural language explanation system was vitally important to the usefulness of the system. Without it, the user must effectively take the decisions of the machine on faith, and in a domain with imperfect information that is dangerous; furthermore, the machine is reduced to giving yes/no answers. We could ask: is this person entitled to benefit, but not which benefit is this person entitled to. Of course the system with explanation could still only give yes/no decisions, because that is the nature of the logic; but now it could say: yes, this person is entitled to benefit; and the benefit they are entitled to is mobility allowance.</p>
<p>The explanation system depended on and exploited the fact that DTrees are structured through exceptions from the very general to the more abstruse and particular; and that, in consequence, any path through a rule structure follows a line of coherent argument, again from the general to the particular. Thus a sticking node on the DTree for a feature both records a decision and, by its position in the DTree, implies an explanation of why that decision was made.</p>
<p>Consequently, we attached to each node in the system a text fragment to explain the consequence for the feature whose rule the node was in, if that node were a sticking node. This explanation fragment was a piece of canned text, written by the knowledge engineer.</p>
<p>When writing fragments, the knowledge engineer did not need to look beyond the DTree that was being edited. The task was simply to consider a node and attach text saying why the feature of the DTree obtained (or did not) when that node was conceived as the only sticking node. The structure of the system itself then ensured that in the final text, the fragment would follow sensibly from the preceding one.</p>
<p>We discussed and experimented with several algorithms for the recovery of explanations. The one we used worked as follows: when a search resulted in a no decision (ineligible for a benefit) then we concatenated the explanation fragments from the deepest sticking node in each succesive tree on the search path. The reason was that this represents the “nearest” that the claimant got to succeeding in the claim. This follows from the structure of the DTree, the deeper nodes represent more abstruse conditions: to reach them at all more general requirements for eligibility must have been met.</p>
<p>Furthermore, the information given in this explanation should be sufficient to assist in the preparation of an appeal, if the claimant felt there were further relevant facts which hadnt been considered - and this was, indeed, precisely our intention. It is, we think, part of the notion of relevance that it is the “nearest miss” that should be described in such cases.</p>
<p>In the case of a yes decision we chose the opposite approach and selected the shallowest sticking node available. This was partly because the claimant who succeeds is less concerned about why, but mostly because it is not relevant to describe how a long and tortuous inference path finally delivered yes when a much shorter less involved one did so too. Again this seems in accord with ordinary ideas of relevance.</p>
<p>To provide a small worked example of an explanation generated by the system, which is yet large enough to give some flavour, let us assume our knowledge base contains the following rules:</p>
<p>DTree for Entitled to Widows Allowance</p>
<p>Entitled to Widovs Allowance -</p>
<p>Satisfies conditions for Widoys Allowance +</p>
<p>&gt;26 Yeeks Killed husband - Dead - bereaved -</p>
<p>-</p>
<p>in prison - Levering with</p>
<p>in prison - Living Yith</p>
<p>Partner -</p>
<p>fig 1: Rule for “Entitled to Widows Allowance”</p>
<p>DTree for Living with Partner</p>
<p>Living with Partner -</p>
<p>Remarried +</p>
<p>Cohabiting +</p>
<p>fig 2: rule for “Living with Partner”</p>
<p>which, together, partially encode the following legislation fragment, from the Social Security Act 1975 [6], chapter 14, section 24, as amended by the Social Security (Miscellaneous Provisions) Act 1977, chapter 5, .section 22(2). This reads:</p>
<pre><code>24.-(1) A woman who has been widowed shall be entitled to widow's
allowance at the weekly rate specified in relation thereto in Schedule
4, Part I, paragraph 5, if -
\(a) she was under pensionable age at the time when her late husband
died, or he was then not entitled to a Category A retirement pension
(section 28); and
\(b) her late husband satisfied the contribution requirement for a
widow's allowance specified in Schedule 3, Part I, paragraph 4.
\(2) The period for which widow's allowance shall be payable shall be the
26 weeks next following the husband's death:
Provided that the allowance shall not be payable for any period after
the widow's death or remarriage or for any period during which she and a
man to whom she is not married are living together as man and wife.
</code></pre>
<p>Let us further assume we have entered at least the following explanation fragments, each providing an explanation simply in the context of the rule in which it appears:</p>
<p>1. on the node for “Living with Partner” in the rule for “Entitled to Widows Allowance”, the text:</p>
<blockquote>
<p>Although you satisfy the basic conditions for eligibility for Widows Allowance, you are not eligible, as we understand that you now have another partner."</p>
</blockquote>
<p>2. on the node for “Remarried” in the rule for “Living with Partner”, the text:</p>
<blockquote>
<p>“We understand that you have remarried.”</p>
</blockquote>
<p>Of course we would also enter text fragments for all the other nodes in our rules. Now assume we are dealing with the case of a widow whose previous husband had paid his National Insurance stamps as required, and who had not reached pensionable age at the time of his death. Assume further that, within the first six months of her bereavement, our claimant has remarried. The text that would be generated would be:</p>
<blockquote>
<p>Dear [name of claimant]</p>
<p>Although you satisfy the basic conditions for eligibility for Widows Allowance, you are not eligible, as we understand that you now have another partner. We understand that you have remarried.</p>
<p>Yours Sincerely</p>
<p>[your name]</p>
</blockquote>
<p>There are a number of points to notice. Firstly, we could easily have written far more friendly and less formal fragments; for example, We could have written “we wish you all the best in your new marriage”. The formality here is simply to help in understanding the mechanical nature of the concatenation process.</p>
<p>Much more significantly, note that although the inference engine must have known or discovered, for example, that her previous husband had indeed been regular and conscientious about his national insurance contributions for it to have reached its conclusions, this information has been included out of the explanation. It is irrelevant. It is clear that, if our claimant wished to make an appeal, her grounds for doing so would have to be that the information provided had been incorrect, and that she had not, in fact remarried.</p>
<h2><a href="#explanation-a-discussion" name="explanation-a-discussion"></a>Explanation: a discussion</h2>
<p>{** Write something (preferably rather a lot) here **}</p>
<p>This ability to abstract relevant information from an inference engines backtrace represents a partial solution to the problem described in the preceding chapters.</p>
<h2><a href="#references-" name="references-"></a>References:</h2>
<p>3. Xerox Corporation: InterLisp Reference Manual ( Xerox Corporation, 1985)</p>
<p>4. Daniel Bobrow &amp; Mark Stefik: The LOOPS Manual (Xerox Corporation, 1983)</p>
<p>5. Mark Richer &amp; William Clancey: “Guidon Watch: A Graphic Interface for Viewing a knowledge-Based System” IEEE Computer Gaphics and Applications vol 5 no 11,1985</p>
<p>6. Social Security Act 1975: Her Majestys Stationery Office, London, 1975 Social Security (Miscellanous Provisions) Act 1977: Her Majestys Stationery Office, London, 1977</p>
<p>7. D. Neligan: Social Security Case Law: Digest of Commisioners Decisions (Her Majestys Stationary Office, London, 1979)</p>
<p>8. Mark Richer: “An Evaluation of Expert System Development Tools” Expert Systems vol 3 no 3 1986</p>
<p>9. William Swartout: “XPLAIN: a System for Creating and Explaining Expert Consulting Programs” Artificial Intelligence 21, 1983</p>
<p>10. Peter Jackson: “Explaining Expert Systems Behaviour” paper given at Workshop on Explanation, Alvey IKBS Expert System Theme 20th-21st March 1986: available from the Alvey Directorate.</p>
<p>11. William Clancey: “The Epistemology of a Rule-Based Expert System - a Framework for Explanation” Artificial Intelligence 20, 1983</p>
<p>12. E. H. Shortliffe: MYCIN: Computer Based Medical Consultations (Elsevier 1976)</p>
<p>13. P. Hammond: “APES: A user manual” Research Report DOC 82/9, Imperial College, London</p>
<p>14. W. van Melle, E. Shortliffe &amp; G. Buchanan: “EMYCIN: A Knowledge Engineers tool for constructing Rule-Based Expert Systems” (in Rule Based Expert Systems ed Buchanan, G. &amp; Shortliffe, E., Addison-Wesley, 1984)</p>
<p>15. Diane Warner Hasling, William Clancey &amp; Glenn Rennels: “Strategic Explanations for a Diagnostic Consulting System” International Journal of Man Machine Studies 20, 1984</p>
<p>16. Thomas Hobbes: Leviathan (ed C. B. MacPherson, Penguin 1968)</p>
<p>17. Karl Popper: Conjectures and Refutations (Routledge Kegan Paul, 1963)</p></div></div></div></body></html>

119
docs/codox/Arden.html Normal file
View file

@ -0,0 +1,119 @@
<!DOCTYPE html PUBLIC ""
"">
<html><head><meta charset="UTF-8" /><title>Arden</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">Wildwood</span> <span class="project-version">0.1.0-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="AgainstTruth.html"><div class="inner"><span>Against Truth</span></div></a></li><li class="depth-1 "><a href="Analysis.html"><div class="inner"><span>Analysis</span></div></a></li><li class="depth-1 "><a href="Arboretum.html"><div class="inner"><span>Arboretum</span></div></a></li><li class="depth-1 current"><a href="Arden.html"><div class="inner"><span>Arden</span></div></a></li><li class="depth-1 "><a href="Bialowieza.html"><div class="inner"><span>Bialowieza</span></div></a></li><li class="depth-1 "><a href="Errata.html"><div class="inner"><span>Errata</span></div></a></li><li class="depth-1 "><a href="Experience.html"><div class="inner"><span>Experience</span></div></a></li><li class="depth-1 "><a href="History.html"><div class="inner"><span>History</span></div></a></li><li class="depth-1 "><a href="Implementing.html"><div class="inner"><span>Implementing</span></div></a></li><li class="depth-1 "><a href="KnacqTools.html"><div class="inner"><span>KnacqTools</span></div></a></li><li class="depth-1 "><a href="Manifesto.html"><div class="inner"><span>Manifesto</span></div></a></li><li class="depth-1 "><a href="OnHylasAndPhilonus.html"><div class="inner"><span>On the First Dialogue of Hylas and Philonous</span></div></a></li><li class="depth-1 "><a href="PredicateSubtext.html"><div class="inner"><span>On the subtext of a predicate</span></div></a></li><li class="depth-1 "><a href="TheProblem.html"><div class="inner"><span>The Problem</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to Wildwood</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>wildwood</span></div></div></li><li class="depth-2 branch"><a href="wildwood.advocate.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>advocate</span></div></a></li><li class="depth-2 branch"><a href="wildwood.bialowieza.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>bialowieza</span></div></a></li><li class="depth-2 branch"><a href="wildwood.knowledge-accessor.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>knowledge-accessor</span></div></a></li><li class="depth-2"><a href="wildwood.schema.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>schema</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#arden" name="arden"></a>Arden</h1>
<h2><a href="#why-arden-" name="why-arden-"></a>Why Arden?</h2>
<p>It was something of tradition in the InterLisp-D community to give successive versions of a project codenames with successive alphabetical initials. So the first version would have a name starting A, the second B, and so on. The first prototype for Wildwood was called Arden, because it starts with an A, and because it is a fantastical dream-like forest depicted in Shakespeares play As You Like It, which if I recall correctly was performed as a promenade performance by the Dukes Theatre in Lancaster in that year. While Arboretum - that carefully tended garden of trees - had been, as Ive said, largely Peters in concept, Wildwood would be mine.</p>
<h2><a href="#background" name="background"></a>Background</h2>
<p>After work had finished on <a href="Arboretum.html">Arboretum</a>, I started at once to think how the ideas we had implemented could be improved. However, academic work is a job, and I was a significant part of the programming resource of the Alvey DHSS Large Demonstrator Project. I was switched to a different task within the project, the Policy Prototype, a constraints-based system intended to assist DHSS policy officers in the formulation of new policy.</p>
<p>From my perspective, the great frustration of my time with the Alvey project was that, at the very start, wed had a meeting at which people had been asked whether they could program or whether they could not. I, of course, could. But, actually, at least on the academic teams within the project, only a few, and only junior people admitted that they could (and, strictly, this was mostly honest - those who said they couldnt, couldnt). But this left us with a very small pool of developers, and a much larger pool of analysts.</p>
<p>Peter Mott and I had worked largely experimentally, developing our own design insights on the creation of Arboretum. I should say that while the implementation was mine, the ideas and the insights were mostly Peters. But we worked together as a great team, and felt that we were building something which was genuinely powerful and exciting. Arboretum was completed in less than a year, between September 1986 and June 1987, and it worked. It felt like a success. We had achieved something.</p>
<p>While we were doing this, an enormous and ambitious specification was being written for the Policy Prototype by people who had little idea how it might be implemented. Three people, myself and two others, were assigned to build it. It was rapidly apparent that the specification was in many areas incomplete, in some areas inconsistent, and the bits that were implementable were vastly too expensive of compute power to run efficiently on our hardware. Over the course of a year, there were repeated demonstrations within the project of progress so far, and there was always disappointment from the senior members of the team - again, especially on the academic side.</p>
<p>Its worth saying that we were well supported by the commercial team in ICL, of whom Id especially note Charlie Portman, Chris Burton and Nick Perry. Chris was a very old hand: hed worked, as an apprentice, on the original build of the <a href="https://en.wikipedia.org/wiki/Manchester_Mark_1">Manchester Mark 1 (Baby)</a>, and, later, after he had retired from ICL, would go on to lead the team which rebuilt it. Charlie was a very senior software person and also an excellent man manager. Hed led the operating systems design team within ICL, and had been responsible for (among many other things) the <a href="https://en.wikipedia.org/wiki/ICL_VME">VME operating system environment</a>. Nick was the geeks geek: someone we would now recognise as, like me, very autistic. I learned a lot from these people, and greatly appreciated their support.</p>
<p>As deadlines approached for the Policy Prototype, the three of us who were actually building it entered what would now be known as a four month crunch - trying to build a system with too little manpower on inadequate hardware under immense pressure. I worked regularly sixteen hours a day, including weekends. However, by the time the Alvey conference was due, major parts of the prototype didnt work, and the parts which did work were so slow as to be unusable.</p>
<p>This wasnt a pleasant experience.</p>
<p>It was under these conditions that I started on the design of Wildwood, and most of what there is of this chapter were written. I still had access to InterLisp-D, which is a wonderful programming environment; I built a prototype I called Arden, which implemented some of the ideas; Arden was to be the first iteration of the Wildwood project. And I started writing this thesis, in support of it.</p>
<p>But the pressure of the Policy Prototype had been too much; I burned out, left the project, and worked for a year as a research fellow in the Department of Computing at Lancaster, building a noddy natural language query interface for relational databases in Prolog, which worked but didnt excite me. I lost access to the InterLisp-D machines, and consequently work on Arden came to an end. I dont believe I now have even floppy disks of the source code, and I certainly dont have a machine which could read them.</p>
<p>In 1989, after the year building the query interface, Peter Mott, myself, and some other ex-students of Peters set up a company, Common Knowledge, to commercialise the work wed done on Arboretum, because we thought it was both interesting and important, but the commercial partners in the Alvey DHSS Large Demonstrator Project were not interested in taking it further. ICL was entering a spiral of decline, and had no energy for experimental projects; I think they too felt burned by the experience of the Policy Prototype.</p>
<p>At Common Knowledge, I was appointed Managing Director and also techincal lead. It was in this period that we built KnacqTools, described in a separate chapter. The Wildwood project went on hold and has remained so until 2020.</p>
<h2><a href="#the-ideas-in-arden-starting-to-play" name="the-ideas-in-arden-starting-to-play"></a>The ideas in Arden: starting to play</h2>
<p><strong>TODO</strong>: write something.</p>
<h2><a href="#explanation-is-a-social-behaviour" name="explanation-is-a-social-behaviour"></a>Explanation is a social behaviour</h2>
<p><strong>TODO</strong>: write something.</p>
<h2><a href="#games-are-social-behaviours-which-can-be-modeled" name="games-are-social-behaviours-which-can-be-modeled"></a>Games are social behaviours which can be modeled</h2>
<p><strong>TODO</strong>: write something.</p>
<h2><a href="#explanation-can-be-viewed-as-a-game-playing-activity" name="explanation-can-be-viewed-as-a-game-playing-activity"></a>Explanation can be viewed as a game-playing activity</h2>
<p>One of the models we frequently use in real life situations where a decision has to be made on the basis of uncertain or conflicting evidence is the dialectic model. In this, one authority proposes a decision, giving an argument which supports it; another authority brings forward objections to the argument, and may propose an alternative decision. This process may continue recursively until there is no further argument which can be advanced.</p>
<p>This is the model which underlies both academic and parliamentary debate, and the proceedings of the law courts. The model supports a decision support conception of the Expert Systems role, rather than a decision-making one: the user is placed in a position analogous to that of a jury, considering the arguments presented by the advocates, and making a decision on the basis of them.</p>
<p>We can view this dialectic approach to decision support as a game, with a fixed set of legitimate moves.</p>
<h2><a href="#hintikkas-game-theoretic-logic" name="hintikkas-game-theoretic-logic"></a>Hintikkas game theoretic logic</h2>
<p>This approach seems very promising. It may tie in well with game-theoretic logics such as those of Ehrenfeucht [Ehrenfeucht 61] and Hintikka [Hintikka &amp; Kulas, 83 and passim] Of course, these logics are strictly monotonic. Problem areas where monotonic logics are adequate are of limited interest, and unlikely to give rise to interesting problems of explanation; but it should be possible to develop a provable semantics for a non-monotonic extension. The decision procedure for a game theoretic logic should not raise any particular difficulties; the games are zero sum, under complete information.</p>
<p>However, the adoption of a game-theoretic explanation mechanism does not commit us to adopting a game theoretic logic; so (although interesting) this line will only be pursued if it proves easy.</p>
<h2><a href="#the-object-of-an-explanation-game" name="the-object-of-an-explanation-game"></a>The object of an explanation game</h2>
<p>If explanation is to be seen as a game, what is to be its objective? If we were to take a positivist position, we might say that the purpose of explanation was to convey understanding; then the game would be a co-operative one, with the object of both players being to achieve this end.</p>
<p>But seeing that we have rejected this position, the object of an explanation must be to persuade.</p>
<p>Furthermore, if we accept the argument advanced in chapter iii above that explanation is hegemonistic, the explanee may be seen to have an object in resisting explanation. So now we can have s clear idea of what the object of an explanation game will be: The explainer will win, if the explainee is brought to the point of no longer being able to produce a rational reason for resisting the explanation. Otherwise, if when all the supporting arguments the explainer can bring to bear have been advanced the explainee is still unconvinced, then the explainee has won.</p>
<p>Rational, here, is of course a fix. In an explanation situation involving two human beings, the explainee might continue to resist even if there were no rational reason for doing so. This situation would be non-deterministic, though, and too difficult for me to deal with.</p>
<h2><a href="#legitimate-moves-in-an-explanation-game" name="legitimate-moves-in-an-explanation-game"></a>Legitimate moves in an explanation game</h2>
<p>A possible set of legitimate moves which might be used as the basis for an explanation generator in a non-monotonic expert system might be:</p>
<h3><a href="#present" name="present"></a>PRESENT</h3>
<ul>
<li>present a case, supported by an argument, which may include one or more assumptions.</li>
</ul>
<p>Generally, in a non-monotonic system, we are dealing with incomplete information [and indeed, this is generally the case in real life). Consequently, any conclusion is likely to be based upon one or more unsupported assumptions.</p>
<p>[starting move]</p>
<h3><a href="#doubt" name="doubt"></a>DOUBT</h3>
<ul>
<li>challenge one or more of the assumptions.</li>
</ul>
<p>[basic response to PRESENT, REBUT, or COUNTER-EXAMPLE]</p>
<h3><a href="#doubt-irrelevant" name="doubt-irrelevant"></a>DOUBT-IRRELEVANT</h3>
<ul>
<li>claim that if the assumption were false, it would make no difference to the decision.</li>
</ul>
<p>[blocking response to DOUBT]</p>
<h3><a href="#assumption-probable" name="assumption-probable"></a>ASSUMPTION-PROBABLE</h3>
<ul>
<li>claim that the assumption is probable on the basis of prior experience.</li>
</ul>
<p>[weaker response to DOUBT]</p>
<h3><a href="#rebut" name="rebut"></a>REBUT</h3>
<ul>
<li>this is essentially a PRESENT, but of an argument based on the opposite assumption to that challenged in the preceding DOUBT.</li>
</ul>
<p>[response to a PASS following a DOUBT]</p>
<h3><a href="#counter-example" name="counter-example"></a>COUNTER-EXAMPLE</h3>
<ul>
<li>present a known case similar to the current one, where the predicate of the assumption which has been challenged holds the opposite value.</li>
</ul>
<p>[response to ASSUMPTION-PROBABLE]</p>
<h3><a href="#pass" name="pass"></a>PASS</h3>
<ul>
<li>a null move in response to any other move. Forces other player to move. In some sense this might be seen as equivalent to saying so what: the opponent has made a move, but there is nothing further which the player wants to advance at this stage. This move is inherently dangerous, because the game ends when the two players PASS in succesive moves.</li>
</ul>
<p>[weakest response to anything]</p>
<p>Obviously, in human dialectic, other legitimate moves attack the validity of</p>
<p>inference steps; but for a machine implementation, we can assume all inference steps are in themselves valid.</p>
<h1><a href="#implementing-a-game-theoretic-approach-to-explanation" name="implementing-a-game-theoretic-approach-to-explanation"></a>Implementing a game theoretic approach to explanation</h1>
<h2><a href="#playing-the-explanation-game" name="playing-the-explanation-game"></a>Playing the explanation game</h2>
<p>The game playing algorithm required to implement an explanation system need not be sophisticated: indeed, it must not be too sophisticated, at least as a game player. Consider: a good game playing algorithm looks ahead to calculate what the probable responses to the moves it makes will be. If it sees that one possible move leads to a dead end, it will not make that move.</p>
<p>But in generating an explanation, we need to explore any path whose conclusion is not immediately obvious. So either the game-playing algorithm should not look ahead more than, perhaps, one ply, or else, if it does so, then when it sees a closed path, it should print out a message something of the form:</p>
<p>Critic: Oh yes, I see that even if the assumption that Carol hasTwoLegs is false it would not affect the assumption that Carol canSwim.</p>
<p>Initially, however, I propose to implement a game-playing algorithm which simply makes the strongest move available to the player, based on a scoring scheme which does not look ahead. The game will proceed something like tennis; the player who last made a PRESENT or REBUT move will have the initiative, the serve as it were, and need only defend to win. The other player must try to break this serve, by forcing a DOUBT…PASS sequence, which allows a REBUT play. Dialectic explanation - the two player game.</p>
<p>With this schema, we can mechanize a dialectic about a case. The game is played by the machine against itself; agents in the machine play moves in turn until both sequentially pass, or until the user interrupts. Each move produces a natural language statement on the display. Ideally, the user could interrupt at any time, either to request further justification for a move, or to halt the process.</p>
<p>As a (simple) example of what might be produced, here is some sample output from a very crude prototype system :</p>
<p>User: K- #\$ Carol Explain #\$CanSwim)</p>
<p>[send to the object called Carol a message asking for an explanation of the value Carol holds for the predicate named</p>
<p>CanSwim ]</p>
<p>Consultant: What is the value of CanSwim for Carol?</p>
<p>[ Consultant and Critic are the names given to the two agents - the knowledge base doesnt contain the relevant information, so it must be inferred. ]</p>
<p>User: Dont know…</p>
<p>Consultant: I found that CanSwim was true of Carol by Default using the following assumptions:</p>
<p>(I assumed #ScanSwim was true of Carol)</p>
<p>My reasons are:</p>
<p>CanSwim is true of most Mammals; Carol is a Mammal; Therefore it is probable that CanSwim</p>
<p>is true of Carol.</p>
<p>Critic: The assumption that CanSwim is true is unsafe: Henry is also of type (s) (Person) but</p>
<p>CanSwim is false of Henry.</p>
<p>This is output from Wildwood version Arden, my first prototype object-based inference mechanism. It DOES NOT implement the game-playing model given.</p>
<p>This example shows Consultant PRESENTing a case based on a single assumption, and Critic responding with a COUNTER-EXAMPLE - a move which would not be legal under the scheme given. However, this should give some indication of how the idea might be implemented.</p>
<p>{**TODO**: figure}</p>
<p>Interaction Trace</p>
<p>User: [QU] Is it true that Carol canSwim?</p>
<p>Consultant: [PR] I assume that carol canSwim.</p>
<p>User: [DO] I doubt that…</p>
<p>Consultant: [AP] It is probable that Carol canSwim because:</p>
<p>can Swim is true of most mammals, and Carol is a mammal</p>
<p>Options… Counter</p>
<p>QUery</p>
<p>Andrew Present</p>
<p>Belinda Doubt</p>
<p>Charles Doubl relevant Diana Assumption Prob Frederick Rebut</p>
<p>Ginny Counter-Exam Henry PAss</p>
<p>Tris James Katharine Leonard</p>
<p>User:</p>
<p>fig 5.1: Showing how the Critic could guide the user in interacting with the Consultant. The Consultant has made an Assumption Probable move (marked [AP]). The Critic is guiding the user firstly by greying the illegal moves, and secondly by indicating with a tick the preferred move. The user has selected this (shown by the boxing on the options menu) and the Critic has opened a menu of all the objects which might be advanced as valid counter-examples, again indicating the preferred choice.</p>
<p>The simple model described above has not achieved all that we want, however. The machine, in the form of the agent Consultant has attempted to explain to itself, wearing its Critic hat. The users role has simply been that of passive observer. The first enhancement would be to give the user control of the critic; but because the user cannot have the same view of the knowledge base as the machine, the Critic will have to guide the user, firstly by showing the user the legal moves available, and second by finding supplementary information to support these moves.</p>
<h2><a href="#explanation-as-conversation-a-three-player-game" name="explanation-as-conversation-a-three-player-game"></a>Explanation as conversation - a three player game</h2>
<p>A better design still might be to allow the machine to carry on its dialogue as before, but to allow the user to interrupt and challenge either of the agents. It seems probable that the most interesting moves the user could make would be DOUBT, and also COUNTER-EXAMPLE, where the user could present an example case not previously known to the machine. Now the user can sit back and watch, if the conversation brings out the points which seem relevant; but equally the user can intervene to steer the conversation.</p>
<p>These ideas had not, needless to say, yet been implemented in 1988 when I moved onto working on KnacqTools.</p>
<p>I hope that they will be implemented as I develop the ideas in this document.</p></div></div></div></body></html>

View file

@ -0,0 +1,6 @@
<!DOCTYPE html PUBLIC ""
"">
<html><head><meta charset="UTF-8" /><title>Bialowieza</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">Wildwood</span> <span class="project-version">0.1.0-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="AgainstTruth.html"><div class="inner"><span>Against Truth</span></div></a></li><li class="depth-1 "><a href="Analysis.html"><div class="inner"><span>Analysis</span></div></a></li><li class="depth-1 "><a href="Arboretum.html"><div class="inner"><span>Arboretum</span></div></a></li><li class="depth-1 "><a href="Arden.html"><div class="inner"><span>Arden</span></div></a></li><li class="depth-1 current"><a href="Bialowieza.html"><div class="inner"><span>Bialowieza</span></div></a></li><li class="depth-1 "><a href="Errata.html"><div class="inner"><span>Errata</span></div></a></li><li class="depth-1 "><a href="Experience.html"><div class="inner"><span>Experience</span></div></a></li><li class="depth-1 "><a href="History.html"><div class="inner"><span>History</span></div></a></li><li class="depth-1 "><a href="Implementing.html"><div class="inner"><span>Implementing</span></div></a></li><li class="depth-1 "><a href="KnacqTools.html"><div class="inner"><span>KnacqTools</span></div></a></li><li class="depth-1 "><a href="Manifesto.html"><div class="inner"><span>Manifesto</span></div></a></li><li class="depth-1 "><a href="OnHylasAndPhilonus.html"><div class="inner"><span>On the First Dialogue of Hylas and Philonous</span></div></a></li><li class="depth-1 "><a href="PredicateSubtext.html"><div class="inner"><span>On the subtext of a predicate</span></div></a></li><li class="depth-1 "><a href="TheProblem.html"><div class="inner"><span>The Problem</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to Wildwood</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>wildwood</span></div></div></li><li class="depth-2 branch"><a href="wildwood.advocate.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>advocate</span></div></a></li><li class="depth-2 branch"><a href="wildwood.bialowieza.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>bialowieza</span></div></a></li><li class="depth-2 branch"><a href="wildwood.knowledge-accessor.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>knowledge-accessor</span></div></a></li><li class="depth-2"><a href="wildwood.schema.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>schema</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#bialowieza" name="bialowieza"></a>Bialowieza</h1>
<p>{not yet written. To cover development of the Clojure Wildwood library, and the thinking and design which develops as I do it}</p>
<h2><a href="#why-bialowieza-" name="why-bialowieza-"></a>Why Bialowieza?</h2>
<p>Bialowieza is the second iteration of the Wildwood engine, and this following convention its name should start with B. <a href="https://en.wikipedia.org/wiki/Bia%C5%82owie%C5%BCa">Białowieża</a> is Europes last great wild wood, and it is currently under threat.</p></div></div></div></body></html>

View file

@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "" <!DOCTYPE html PUBLIC ""
""> "">
<html><head><meta charset="UTF-8" /><title>Errata</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">Wildwood</span> <span class="project-version">0.1.0-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="AgainstTruth.html"><div class="inner"><span>Against Truth</span></div></a></li><li class="depth-1 "><a href="Analysis.html"><div class="inner"><span>Analysis</span></div></a></li><li class="depth-1 "><a href="Arboretum.html"><div class="inner"><span>Arboretum</span></div></a></li><li class="depth-1 "><a href="Conception.html"><div class="inner"><span>Conception</span></div></a></li><li class="depth-1 current"><a href="Errata.html"><div class="inner"><span>Errata</span></div></a></li><li class="depth-1 "><a href="Experience.html"><div class="inner"><span>Experience</span></div></a></li><li class="depth-1 "><a href="History.html"><div class="inner"><span>History</span></div></a></li><li class="depth-1 "><a href="Implementing.html"><div class="inner"><span>Implementing</span></div></a></li><li class="depth-1 "><a href="Manifesto.html"><div class="inner"><span>Manifesto</span></div></a></li><li class="depth-1 "><a href="OnHylasAndPhilonus.html"><div class="inner"><span>On the First Dialogue of Hylas and Philonous</span></div></a></li><li class="depth-1 "><a href="PredicateSubtext.html"><div class="inner"><span>On the subtext of a predicate</span></div></a></li><li class="depth-1 "><a href="Reimagining.html"><div class="inner"><span>Reimagining</span></div></a></li><li class="depth-1 "><a href="TheProblem.html"><div class="inner"><span>The Problem</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to Wildwood</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1 "><a href="wildwood.core.html"><div class="inner"><span>wildwood.core</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#errata" name="errata"></a>Errata</h1> <html><head><meta charset="UTF-8" /><title>Errata</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">Wildwood</span> <span class="project-version">0.1.0-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="AgainstTruth.html"><div class="inner"><span>Against Truth</span></div></a></li><li class="depth-1 "><a href="Analysis.html"><div class="inner"><span>Analysis</span></div></a></li><li class="depth-1 "><a href="Arboretum.html"><div class="inner"><span>Arboretum</span></div></a></li><li class="depth-1 "><a href="Arden.html"><div class="inner"><span>Arden</span></div></a></li><li class="depth-1 "><a href="Bialowieza.html"><div class="inner"><span>Bialowieza</span></div></a></li><li class="depth-1 current"><a href="Errata.html"><div class="inner"><span>Errata</span></div></a></li><li class="depth-1 "><a href="Experience.html"><div class="inner"><span>Experience</span></div></a></li><li class="depth-1 "><a href="History.html"><div class="inner"><span>History</span></div></a></li><li class="depth-1 "><a href="Implementing.html"><div class="inner"><span>Implementing</span></div></a></li><li class="depth-1 "><a href="KnacqTools.html"><div class="inner"><span>KnacqTools</span></div></a></li><li class="depth-1 "><a href="Manifesto.html"><div class="inner"><span>Manifesto</span></div></a></li><li class="depth-1 "><a href="OnHylasAndPhilonus.html"><div class="inner"><span>On the First Dialogue of Hylas and Philonous</span></div></a></li><li class="depth-1 "><a href="PredicateSubtext.html"><div class="inner"><span>On the subtext of a predicate</span></div></a></li><li class="depth-1 "><a href="TheProblem.html"><div class="inner"><span>The Problem</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to Wildwood</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>wildwood</span></div></div></li><li class="depth-2 branch"><a href="wildwood.advocate.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>advocate</span></div></a></li><li class="depth-2 branch"><a href="wildwood.bialowieza.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>bialowieza</span></div></a></li><li class="depth-2 branch"><a href="wildwood.knowledge-accessor.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>knowledge-accessor</span></div></a></li><li class="depth-2"><a href="wildwood.schema.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>schema</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#errata" name="errata"></a>Errata</h1>
<ol> <ol>
<li>On title page: the claim that Zaphod Beeblebrox is quoted as saying Hey, what IS truth, man? in the printed text of Douglas Adams Hitchhikers Guide to the Galaxy is false.</li> <li>On title page: the claim that Zaphod Beeblebrox is quoted as saying Hey, what IS truth, man? in the printed text of Douglas Adams Hitchhikers Guide to the Galaxy is false.</li>
</ol></div></div></div></body></html> </ol></div></div></div></body></html>

View file

@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "" <!DOCTYPE html PUBLIC ""
""> "">
<html><head><meta charset="UTF-8" /><title>Experience</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">Wildwood</span> <span class="project-version">0.1.0-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="AgainstTruth.html"><div class="inner"><span>Against Truth</span></div></a></li><li class="depth-1 "><a href="Analysis.html"><div class="inner"><span>Analysis</span></div></a></li><li class="depth-1 "><a href="Arboretum.html"><div class="inner"><span>Arboretum</span></div></a></li><li class="depth-1 "><a href="Conception.html"><div class="inner"><span>Conception</span></div></a></li><li class="depth-1 "><a href="Errata.html"><div class="inner"><span>Errata</span></div></a></li><li class="depth-1 current"><a href="Experience.html"><div class="inner"><span>Experience</span></div></a></li><li class="depth-1 "><a href="History.html"><div class="inner"><span>History</span></div></a></li><li class="depth-1 "><a href="Implementing.html"><div class="inner"><span>Implementing</span></div></a></li><li class="depth-1 "><a href="Manifesto.html"><div class="inner"><span>Manifesto</span></div></a></li><li class="depth-1 "><a href="OnHylasAndPhilonus.html"><div class="inner"><span>On the First Dialogue of Hylas and Philonous</span></div></a></li><li class="depth-1 "><a href="PredicateSubtext.html"><div class="inner"><span>On the subtext of a predicate</span></div></a></li><li class="depth-1 "><a href="Reimagining.html"><div class="inner"><span>Reimagining</span></div></a></li><li class="depth-1 "><a href="TheProblem.html"><div class="inner"><span>The Problem</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to Wildwood</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1 "><a href="wildwood.core.html"><div class="inner"><span>wildwood.core</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#experience" name="experience"></a>Experience</h1> <html><head><meta charset="UTF-8" /><title>Experience</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">Wildwood</span> <span class="project-version">0.1.0-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="AgainstTruth.html"><div class="inner"><span>Against Truth</span></div></a></li><li class="depth-1 "><a href="Analysis.html"><div class="inner"><span>Analysis</span></div></a></li><li class="depth-1 "><a href="Arboretum.html"><div class="inner"><span>Arboretum</span></div></a></li><li class="depth-1 "><a href="Arden.html"><div class="inner"><span>Arden</span></div></a></li><li class="depth-1 "><a href="Bialowieza.html"><div class="inner"><span>Bialowieza</span></div></a></li><li class="depth-1 "><a href="Errata.html"><div class="inner"><span>Errata</span></div></a></li><li class="depth-1 current"><a href="Experience.html"><div class="inner"><span>Experience</span></div></a></li><li class="depth-1 "><a href="History.html"><div class="inner"><span>History</span></div></a></li><li class="depth-1 "><a href="Implementing.html"><div class="inner"><span>Implementing</span></div></a></li><li class="depth-1 "><a href="KnacqTools.html"><div class="inner"><span>KnacqTools</span></div></a></li><li class="depth-1 "><a href="Manifesto.html"><div class="inner"><span>Manifesto</span></div></a></li><li class="depth-1 "><a href="OnHylasAndPhilonus.html"><div class="inner"><span>On the First Dialogue of Hylas and Philonous</span></div></a></li><li class="depth-1 "><a href="PredicateSubtext.html"><div class="inner"><span>On the subtext of a predicate</span></div></a></li><li class="depth-1 "><a href="TheProblem.html"><div class="inner"><span>The Problem</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to Wildwood</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>wildwood</span></div></div></li><li class="depth-2 branch"><a href="wildwood.advocate.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>advocate</span></div></a></li><li class="depth-2 branch"><a href="wildwood.bialowieza.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>bialowieza</span></div></a></li><li class="depth-2 branch"><a href="wildwood.knowledge-accessor.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>knowledge-accessor</span></div></a></li><li class="depth-2"><a href="wildwood.schema.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>schema</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#experience" name="experience"></a>Experience</h1>
<p>{Not yet written. To cover an evaluation of the Clojure Wildwood library, when it works, and what I can learn from it going forward}</p></div></div></div></body></html> <p>{Not yet written. To cover an evaluation of the Clojure Wildwood library, when it works, and what I can learn from it going forward}</p></div></div></div></body></html>

View file

@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "" <!DOCTYPE html PUBLIC ""
""> "">
<html><head><meta charset="UTF-8" /><title>History</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">Wildwood</span> <span class="project-version">0.1.0-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="AgainstTruth.html"><div class="inner"><span>Against Truth</span></div></a></li><li class="depth-1 "><a href="Analysis.html"><div class="inner"><span>Analysis</span></div></a></li><li class="depth-1 "><a href="Arboretum.html"><div class="inner"><span>Arboretum</span></div></a></li><li class="depth-1 "><a href="Conception.html"><div class="inner"><span>Conception</span></div></a></li><li class="depth-1 "><a href="Errata.html"><div class="inner"><span>Errata</span></div></a></li><li class="depth-1 "><a href="Experience.html"><div class="inner"><span>Experience</span></div></a></li><li class="depth-1 current"><a href="History.html"><div class="inner"><span>History</span></div></a></li><li class="depth-1 "><a href="Implementing.html"><div class="inner"><span>Implementing</span></div></a></li><li class="depth-1 "><a href="Manifesto.html"><div class="inner"><span>Manifesto</span></div></a></li><li class="depth-1 "><a href="OnHylasAndPhilonus.html"><div class="inner"><span>On the First Dialogue of Hylas and Philonous</span></div></a></li><li class="depth-1 "><a href="PredicateSubtext.html"><div class="inner"><span>On the subtext of a predicate</span></div></a></li><li class="depth-1 "><a href="Reimagining.html"><div class="inner"><span>Reimagining</span></div></a></li><li class="depth-1 "><a href="TheProblem.html"><div class="inner"><span>The Problem</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to Wildwood</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1 "><a href="wildwood.core.html"><div class="inner"><span>wildwood.core</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#history" name="history"></a>History</h1> <html><head><meta charset="UTF-8" /><title>History</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">Wildwood</span> <span class="project-version">0.1.0-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="AgainstTruth.html"><div class="inner"><span>Against Truth</span></div></a></li><li class="depth-1 "><a href="Analysis.html"><div class="inner"><span>Analysis</span></div></a></li><li class="depth-1 "><a href="Arboretum.html"><div class="inner"><span>Arboretum</span></div></a></li><li class="depth-1 "><a href="Arden.html"><div class="inner"><span>Arden</span></div></a></li><li class="depth-1 "><a href="Bialowieza.html"><div class="inner"><span>Bialowieza</span></div></a></li><li class="depth-1 "><a href="Errata.html"><div class="inner"><span>Errata</span></div></a></li><li class="depth-1 "><a href="Experience.html"><div class="inner"><span>Experience</span></div></a></li><li class="depth-1 current"><a href="History.html"><div class="inner"><span>History</span></div></a></li><li class="depth-1 "><a href="Implementing.html"><div class="inner"><span>Implementing</span></div></a></li><li class="depth-1 "><a href="KnacqTools.html"><div class="inner"><span>KnacqTools</span></div></a></li><li class="depth-1 "><a href="Manifesto.html"><div class="inner"><span>Manifesto</span></div></a></li><li class="depth-1 "><a href="OnHylasAndPhilonus.html"><div class="inner"><span>On the First Dialogue of Hylas and Philonous</span></div></a></li><li class="depth-1 "><a href="PredicateSubtext.html"><div class="inner"><span>On the subtext of a predicate</span></div></a></li><li class="depth-1 "><a href="TheProblem.html"><div class="inner"><span>The Problem</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to Wildwood</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>wildwood</span></div></div></li><li class="depth-2 branch"><a href="wildwood.advocate.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>advocate</span></div></a></li><li class="depth-2 branch"><a href="wildwood.bialowieza.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>bialowieza</span></div></a></li><li class="depth-2 branch"><a href="wildwood.knowledge-accessor.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>knowledge-accessor</span></div></a></li><li class="depth-2"><a href="wildwood.schema.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>schema</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#history" name="history"></a>History</h1>
<h2><a href="#history-introduction" name="history-introduction"></a>History: Introduction</h2> <h2><a href="#history-introduction" name="history-introduction"></a>History: Introduction</h2>
<p>The object of this chapter is to describe and discuss the development of Expert System explanations from the beginning to the most recent systems. The argument which I will try to advance is that development has been continuously driven by the perceived inadequacy of the explanations given; and that, while many ad hoc, and some principled, approaches have been tried, no really adequate explanation system has emerged. Further, I will claim that, as some of the later and more principled explanation systems accurately model the accounts of explanation advanced in current philosophy, the philosophical understanding of explanation is itself inadequate.</p> <p>The object of this chapter is to describe and discuss the development of Expert System explanations from the beginning to the most recent systems. The argument which I will try to advance is that development has been continuously driven by the perceived inadequacy of the explanations given; and that, while many ad hoc, and some principled, approaches have been tried, no really adequate explanation system has emerged. Further, I will claim that, as some of the later and more principled explanation systems accurately model the accounts of explanation advanced in current philosophy, the philosophical understanding of explanation is itself inadequate.</p>
<p>{I ought to add to this chapter to give some overview of whats happened since 1990, and look at explanations of neural network decisions, because that will help in later parts/chapters of Part One}</p> <p>{I ought to add to this chapter to give some overview of whats happened since 1990, and look at explanations of neural network decisions, because that will help in later parts/chapters of Part One}</p>

View file

@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "" <!DOCTYPE html PUBLIC ""
""> "">
<html><head><meta charset="UTF-8" /><title>Implementing</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">Wildwood</span> <span class="project-version">0.1.0-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="AgainstTruth.html"><div class="inner"><span>Against Truth</span></div></a></li><li class="depth-1 "><a href="Analysis.html"><div class="inner"><span>Analysis</span></div></a></li><li class="depth-1 "><a href="Arboretum.html"><div class="inner"><span>Arboretum</span></div></a></li><li class="depth-1 "><a href="Conception.html"><div class="inner"><span>Conception</span></div></a></li><li class="depth-1 "><a href="Errata.html"><div class="inner"><span>Errata</span></div></a></li><li class="depth-1 "><a href="Experience.html"><div class="inner"><span>Experience</span></div></a></li><li class="depth-1 "><a href="History.html"><div class="inner"><span>History</span></div></a></li><li class="depth-1 current"><a href="Implementing.html"><div class="inner"><span>Implementing</span></div></a></li><li class="depth-1 "><a href="Manifesto.html"><div class="inner"><span>Manifesto</span></div></a></li><li class="depth-1 "><a href="OnHylasAndPhilonus.html"><div class="inner"><span>On the First Dialogue of Hylas and Philonous</span></div></a></li><li class="depth-1 "><a href="PredicateSubtext.html"><div class="inner"><span>On the subtext of a predicate</span></div></a></li><li class="depth-1 "><a href="Reimagining.html"><div class="inner"><span>Reimagining</span></div></a></li><li class="depth-1 "><a href="TheProblem.html"><div class="inner"><span>The Problem</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to Wildwood</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1 "><a href="wildwood.core.html"><div class="inner"><span>wildwood.core</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#implementing" name="implementing"></a>Implementing</h1> <html><head><meta charset="UTF-8" /><title>Implementing</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">Wildwood</span> <span class="project-version">0.1.0-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="AgainstTruth.html"><div class="inner"><span>Against Truth</span></div></a></li><li class="depth-1 "><a href="Analysis.html"><div class="inner"><span>Analysis</span></div></a></li><li class="depth-1 "><a href="Arboretum.html"><div class="inner"><span>Arboretum</span></div></a></li><li class="depth-1 "><a href="Arden.html"><div class="inner"><span>Arden</span></div></a></li><li class="depth-1 "><a href="Bialowieza.html"><div class="inner"><span>Bialowieza</span></div></a></li><li class="depth-1 "><a href="Errata.html"><div class="inner"><span>Errata</span></div></a></li><li class="depth-1 "><a href="Experience.html"><div class="inner"><span>Experience</span></div></a></li><li class="depth-1 "><a href="History.html"><div class="inner"><span>History</span></div></a></li><li class="depth-1 current"><a href="Implementing.html"><div class="inner"><span>Implementing</span></div></a></li><li class="depth-1 "><a href="KnacqTools.html"><div class="inner"><span>KnacqTools</span></div></a></li><li class="depth-1 "><a href="Manifesto.html"><div class="inner"><span>Manifesto</span></div></a></li><li class="depth-1 "><a href="OnHylasAndPhilonus.html"><div class="inner"><span>On the First Dialogue of Hylas and Philonous</span></div></a></li><li class="depth-1 "><a href="PredicateSubtext.html"><div class="inner"><span>On the subtext of a predicate</span></div></a></li><li class="depth-1 "><a href="TheProblem.html"><div class="inner"><span>The Problem</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to Wildwood</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>wildwood</span></div></div></li><li class="depth-2 branch"><a href="wildwood.advocate.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>advocate</span></div></a></li><li class="depth-2 branch"><a href="wildwood.bialowieza.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>bialowieza</span></div></a></li><li class="depth-2 branch"><a href="wildwood.knowledge-accessor.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>knowledge-accessor</span></div></a></li><li class="depth-2"><a href="wildwood.schema.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>schema</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#implementing" name="implementing"></a>Implementing</h1>
<p>{not yet written. To cover the actual structure of the Clojure Wildwood library, as I do it}</p></div></div></div></body></html> <p>{not yet written. To cover the actual structure of the Clojure Wildwood library, as I do it}</p></div></div></div></body></html>

View file

@ -0,0 +1,10 @@
<!DOCTYPE html PUBLIC ""
"">
<html><head><meta charset="UTF-8" /><title>KnacqTools</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">Wildwood</span> <span class="project-version">0.1.0-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="AgainstTruth.html"><div class="inner"><span>Against Truth</span></div></a></li><li class="depth-1 "><a href="Analysis.html"><div class="inner"><span>Analysis</span></div></a></li><li class="depth-1 "><a href="Arboretum.html"><div class="inner"><span>Arboretum</span></div></a></li><li class="depth-1 "><a href="Arden.html"><div class="inner"><span>Arden</span></div></a></li><li class="depth-1 "><a href="Bialowieza.html"><div class="inner"><span>Bialowieza</span></div></a></li><li class="depth-1 "><a href="Errata.html"><div class="inner"><span>Errata</span></div></a></li><li class="depth-1 "><a href="Experience.html"><div class="inner"><span>Experience</span></div></a></li><li class="depth-1 "><a href="History.html"><div class="inner"><span>History</span></div></a></li><li class="depth-1 "><a href="Implementing.html"><div class="inner"><span>Implementing</span></div></a></li><li class="depth-1 current"><a href="KnacqTools.html"><div class="inner"><span>KnacqTools</span></div></a></li><li class="depth-1 "><a href="Manifesto.html"><div class="inner"><span>Manifesto</span></div></a></li><li class="depth-1 "><a href="OnHylasAndPhilonus.html"><div class="inner"><span>On the First Dialogue of Hylas and Philonous</span></div></a></li><li class="depth-1 "><a href="PredicateSubtext.html"><div class="inner"><span>On the subtext of a predicate</span></div></a></li><li class="depth-1 "><a href="TheProblem.html"><div class="inner"><span>The Problem</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to Wildwood</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>wildwood</span></div></div></li><li class="depth-2 branch"><a href="wildwood.advocate.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>advocate</span></div></a></li><li class="depth-2 branch"><a href="wildwood.bialowieza.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>bialowieza</span></div></a></li><li class="depth-2 branch"><a href="wildwood.knowledge-accessor.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>knowledge-accessor</span></div></a></li><li class="depth-2"><a href="wildwood.schema.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>schema</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#knacqtools" name="knacqtools"></a>KnacqTools</h1>
<h2><a href="#background" name="background"></a>Background</h2>
<p>KnacqTools (Knowledge Acquisition Toolkit") was essentially a productisation of the ideas developed in <a href="Arboretum.html">Arboretum</a>. It was written in C, originally for Acorns RISC OS operating system, and later ported to UNIX. The only major innovation of KnacqTools was that it was able to transform DTree knowledge structures into the rule languages of a number of contemporary expert system inference engines.</p>
<p>Thus the expected use of KnacqTools was not to run an inference process itself (although of course it could do this), but to allow a knowledge engineer, using Peter Motts elicitation by exception technique, which I and others had polished in the field, to enter DTrees elicited from domain experts, compile these DTrees into production rules, and export those prodution rules to the selected expert system package for deployment.</p>
<p>KnacqTools was briefly successful between about 1990 and 1992. The commercially important UNIX port was never fully debugged.</p>
<h2><a href="#knacqtools-and-explanation" name="knacqtools-and-explanation"></a>KnacqTools and explanation</h2>
<p>While the KnacqTools engine had a complete implementation of Arboretums explanation system and generated high quality explanations itself, the exported production rule sets (depending on the selected expert system package) was not necessarily capable of the same degree of explanation.</p>
<p>There were no new innovations in explanation, in KnacqTools.</p></div></div></div></body></html>

View file

@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "" <!DOCTYPE html PUBLIC ""
""> "">
<html><head><meta charset="UTF-8" /><title>Manifesto</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">Wildwood</span> <span class="project-version">0.1.0-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="AgainstTruth.html"><div class="inner"><span>Against Truth</span></div></a></li><li class="depth-1 "><a href="Analysis.html"><div class="inner"><span>Analysis</span></div></a></li><li class="depth-1 "><a href="Arboretum.html"><div class="inner"><span>Arboretum</span></div></a></li><li class="depth-1 "><a href="Conception.html"><div class="inner"><span>Conception</span></div></a></li><li class="depth-1 "><a href="Errata.html"><div class="inner"><span>Errata</span></div></a></li><li class="depth-1 "><a href="Experience.html"><div class="inner"><span>Experience</span></div></a></li><li class="depth-1 "><a href="History.html"><div class="inner"><span>History</span></div></a></li><li class="depth-1 "><a href="Implementing.html"><div class="inner"><span>Implementing</span></div></a></li><li class="depth-1 current"><a href="Manifesto.html"><div class="inner"><span>Manifesto</span></div></a></li><li class="depth-1 "><a href="OnHylasAndPhilonus.html"><div class="inner"><span>On the First Dialogue of Hylas and Philonous</span></div></a></li><li class="depth-1 "><a href="PredicateSubtext.html"><div class="inner"><span>On the subtext of a predicate</span></div></a></li><li class="depth-1 "><a href="Reimagining.html"><div class="inner"><span>Reimagining</span></div></a></li><li class="depth-1 "><a href="TheProblem.html"><div class="inner"><span>The Problem</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to Wildwood</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1 "><a href="wildwood.core.html"><div class="inner"><span>wildwood.core</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#manifesto" name="manifesto"></a>Manifesto</h1> <html><head><meta charset="UTF-8" /><title>Manifesto</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">Wildwood</span> <span class="project-version">0.1.0-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="AgainstTruth.html"><div class="inner"><span>Against Truth</span></div></a></li><li class="depth-1 "><a href="Analysis.html"><div class="inner"><span>Analysis</span></div></a></li><li class="depth-1 "><a href="Arboretum.html"><div class="inner"><span>Arboretum</span></div></a></li><li class="depth-1 "><a href="Arden.html"><div class="inner"><span>Arden</span></div></a></li><li class="depth-1 "><a href="Bialowieza.html"><div class="inner"><span>Bialowieza</span></div></a></li><li class="depth-1 "><a href="Errata.html"><div class="inner"><span>Errata</span></div></a></li><li class="depth-1 "><a href="Experience.html"><div class="inner"><span>Experience</span></div></a></li><li class="depth-1 "><a href="History.html"><div class="inner"><span>History</span></div></a></li><li class="depth-1 "><a href="Implementing.html"><div class="inner"><span>Implementing</span></div></a></li><li class="depth-1 "><a href="KnacqTools.html"><div class="inner"><span>KnacqTools</span></div></a></li><li class="depth-1 current"><a href="Manifesto.html"><div class="inner"><span>Manifesto</span></div></a></li><li class="depth-1 "><a href="OnHylasAndPhilonus.html"><div class="inner"><span>On the First Dialogue of Hylas and Philonous</span></div></a></li><li class="depth-1 "><a href="PredicateSubtext.html"><div class="inner"><span>On the subtext of a predicate</span></div></a></li><li class="depth-1 "><a href="TheProblem.html"><div class="inner"><span>The Problem</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to Wildwood</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>wildwood</span></div></div></li><li class="depth-2 branch"><a href="wildwood.advocate.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>advocate</span></div></a></li><li class="depth-2 branch"><a href="wildwood.bialowieza.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>bialowieza</span></div></a></li><li class="depth-2 branch"><a href="wildwood.knowledge-accessor.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>knowledge-accessor</span></div></a></li><li class="depth-2"><a href="wildwood.schema.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>schema</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#manifesto" name="manifesto"></a>Manifesto</h1>
<p>Machine inference automated reasoning, the core of what gets called Artificial Intellegence has ab initio been based on the assumption that the purpose of reasoning was to preserve truth. It is because this assumption is false that the project has thus far failed to bear fruit, that Allan Turings eponymous test has yet to be passed.</p> <p>Machine inference automated reasoning, the core of what gets called Artificial Intellegence has ab initio been based on the assumption that the purpose of reasoning was to preserve truth. It is because this assumption is false that the project has thus far failed to bear fruit, that Allan Turings eponymous test has yet to be passed.</p>
<p>Of course it is possible to build machines which, within the constraints of finite store, can accurately compute theora of first order predicate calculus ad nauseam but such machines do not display behaviour which is convincingly intelligent. They are cold and mechanical; we do not recognise ourselves in them. Like the Girl in the Fireplaces beautiful clocks, they are precisely inhuman.</p> <p>Of course it is possible to build machines which, within the constraints of finite store, can accurately compute theora of first order predicate calculus ad nauseam but such machines do not display behaviour which is convincingly intelligent. They are cold and mechanical; we do not recognise ourselves in them. Like the Girl in the Fireplaces beautiful clocks, they are precisely inhuman.</p>
<p>As Turings test itself shows, intelligence is a hegemonic term, a term laden with implicit propaganda. A machine is intelligent if it can persuade a person that it is a person. By intelligent we dont mean capable of perfect reasoning. We mean like us; and in meaning like us we are smuggling under the covers, as semantic baggage, the claim that we ourselves are intelligent.</p> <p>As Turings test itself shows, intelligence is a hegemonic term, a term laden with implicit propaganda. A machine is intelligent if it can persuade a person that it is a person. By intelligent we dont mean capable of perfect reasoning. We mean like us; and in meaning like us we are smuggling under the covers, as semantic baggage, the claim that we ourselves are intelligent.</p>

View file

@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "" <!DOCTYPE html PUBLIC ""
""> "">
<html><head><meta charset="UTF-8" /><title>On the First Dialogue of Hylas and Philonous</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">Wildwood</span> <span class="project-version">0.1.0-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="AgainstTruth.html"><div class="inner"><span>Against Truth</span></div></a></li><li class="depth-1 "><a href="Analysis.html"><div class="inner"><span>Analysis</span></div></a></li><li class="depth-1 "><a href="Arboretum.html"><div class="inner"><span>Arboretum</span></div></a></li><li class="depth-1 "><a href="Conception.html"><div class="inner"><span>Conception</span></div></a></li><li class="depth-1 "><a href="Errata.html"><div class="inner"><span>Errata</span></div></a></li><li class="depth-1 "><a href="Experience.html"><div class="inner"><span>Experience</span></div></a></li><li class="depth-1 "><a href="History.html"><div class="inner"><span>History</span></div></a></li><li class="depth-1 "><a href="Implementing.html"><div class="inner"><span>Implementing</span></div></a></li><li class="depth-1 "><a href="Manifesto.html"><div class="inner"><span>Manifesto</span></div></a></li><li class="depth-1 current"><a href="OnHylasAndPhilonus.html"><div class="inner"><span>On the First Dialogue of Hylas and Philonous</span></div></a></li><li class="depth-1 "><a href="PredicateSubtext.html"><div class="inner"><span>On the subtext of a predicate</span></div></a></li><li class="depth-1 "><a href="Reimagining.html"><div class="inner"><span>Reimagining</span></div></a></li><li class="depth-1 "><a href="TheProblem.html"><div class="inner"><span>The Problem</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to Wildwood</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1 "><a href="wildwood.core.html"><div class="inner"><span>wildwood.core</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#on-the-first-dialogue-of-hylas-and-philonous" name="on-the-first-dialogue-of-hylas-and-philonous"></a>On the First Dialogue of Hylas and Philonous</h1> <html><head><meta charset="UTF-8" /><title>On the First Dialogue of Hylas and Philonous</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">Wildwood</span> <span class="project-version">0.1.0-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="AgainstTruth.html"><div class="inner"><span>Against Truth</span></div></a></li><li class="depth-1 "><a href="Analysis.html"><div class="inner"><span>Analysis</span></div></a></li><li class="depth-1 "><a href="Arboretum.html"><div class="inner"><span>Arboretum</span></div></a></li><li class="depth-1 "><a href="Arden.html"><div class="inner"><span>Arden</span></div></a></li><li class="depth-1 "><a href="Bialowieza.html"><div class="inner"><span>Bialowieza</span></div></a></li><li class="depth-1 "><a href="Errata.html"><div class="inner"><span>Errata</span></div></a></li><li class="depth-1 "><a href="Experience.html"><div class="inner"><span>Experience</span></div></a></li><li class="depth-1 "><a href="History.html"><div class="inner"><span>History</span></div></a></li><li class="depth-1 "><a href="Implementing.html"><div class="inner"><span>Implementing</span></div></a></li><li class="depth-1 "><a href="KnacqTools.html"><div class="inner"><span>KnacqTools</span></div></a></li><li class="depth-1 "><a href="Manifesto.html"><div class="inner"><span>Manifesto</span></div></a></li><li class="depth-1 current"><a href="OnHylasAndPhilonus.html"><div class="inner"><span>On the First Dialogue of Hylas and Philonous</span></div></a></li><li class="depth-1 "><a href="PredicateSubtext.html"><div class="inner"><span>On the subtext of a predicate</span></div></a></li><li class="depth-1 "><a href="TheProblem.html"><div class="inner"><span>The Problem</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to Wildwood</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>wildwood</span></div></div></li><li class="depth-2 branch"><a href="wildwood.advocate.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>advocate</span></div></a></li><li class="depth-2 branch"><a href="wildwood.bialowieza.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>bialowieza</span></div></a></li><li class="depth-2 branch"><a href="wildwood.knowledge-accessor.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>knowledge-accessor</span></div></a></li><li class="depth-2"><a href="wildwood.schema.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>schema</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#on-the-first-dialogue-of-hylas-and-philonous" name="on-the-first-dialogue-of-hylas-and-philonous"></a>On the First Dialogue of Hylas and Philonous</h1>
<p>The argument that our perception of a real world does not prove its existence is not new, of course. Here is a classic statement of a similar argument from BerkeIeys <em><a href="http://www.gutenberg.org/files/4724/4724-h/4724-h.htm">First Dialogue of Hylas and Philonous</a></em>:</p> <p>The argument that our perception of a real world does not prove its existence is not new, of course. Here is a classic statement of a similar argument from BerkeIeys <em><a href="http://www.gutenberg.org/files/4724/4724-h/4724-h.htm">First Dialogue of Hylas and Philonous</a></em>:</p>
<blockquote> <blockquote>
<p>Hyl.: Do we not perceive the stars and moon, for example, to be a A great way off? Is not this, I say, manifest to the senses? I</p> <p>Hyl.: Do we not perceive the stars and moon, for example, to be a A great way off? Is not this, I say, manifest to the senses? I</p>

View file

@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "" <!DOCTYPE html PUBLIC ""
""> "">
<html><head><meta charset="UTF-8" /><title>On the subtext of a predicate</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">Wildwood</span> <span class="project-version">0.1.0-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="AgainstTruth.html"><div class="inner"><span>Against Truth</span></div></a></li><li class="depth-1 "><a href="Analysis.html"><div class="inner"><span>Analysis</span></div></a></li><li class="depth-1 "><a href="Arboretum.html"><div class="inner"><span>Arboretum</span></div></a></li><li class="depth-1 "><a href="Conception.html"><div class="inner"><span>Conception</span></div></a></li><li class="depth-1 "><a href="Errata.html"><div class="inner"><span>Errata</span></div></a></li><li class="depth-1 "><a href="Experience.html"><div class="inner"><span>Experience</span></div></a></li><li class="depth-1 "><a href="History.html"><div class="inner"><span>History</span></div></a></li><li class="depth-1 "><a href="Implementing.html"><div class="inner"><span>Implementing</span></div></a></li><li class="depth-1 "><a href="Manifesto.html"><div class="inner"><span>Manifesto</span></div></a></li><li class="depth-1 "><a href="OnHylasAndPhilonus.html"><div class="inner"><span>On the First Dialogue of Hylas and Philonous</span></div></a></li><li class="depth-1 current"><a href="PredicateSubtext.html"><div class="inner"><span>On the subtext of a predicate</span></div></a></li><li class="depth-1 "><a href="Reimagining.html"><div class="inner"><span>Reimagining</span></div></a></li><li class="depth-1 "><a href="TheProblem.html"><div class="inner"><span>The Problem</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to Wildwood</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1 "><a href="wildwood.core.html"><div class="inner"><span>wildwood.core</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#on-the-subtext-of-a-predicate" name="on-the-subtext-of-a-predicate"></a>On the subtext of a predicate</h1> <html><head><meta charset="UTF-8" /><title>On the subtext of a predicate</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">Wildwood</span> <span class="project-version">0.1.0-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="AgainstTruth.html"><div class="inner"><span>Against Truth</span></div></a></li><li class="depth-1 "><a href="Analysis.html"><div class="inner"><span>Analysis</span></div></a></li><li class="depth-1 "><a href="Arboretum.html"><div class="inner"><span>Arboretum</span></div></a></li><li class="depth-1 "><a href="Arden.html"><div class="inner"><span>Arden</span></div></a></li><li class="depth-1 "><a href="Bialowieza.html"><div class="inner"><span>Bialowieza</span></div></a></li><li class="depth-1 "><a href="Errata.html"><div class="inner"><span>Errata</span></div></a></li><li class="depth-1 "><a href="Experience.html"><div class="inner"><span>Experience</span></div></a></li><li class="depth-1 "><a href="History.html"><div class="inner"><span>History</span></div></a></li><li class="depth-1 "><a href="Implementing.html"><div class="inner"><span>Implementing</span></div></a></li><li class="depth-1 "><a href="KnacqTools.html"><div class="inner"><span>KnacqTools</span></div></a></li><li class="depth-1 "><a href="Manifesto.html"><div class="inner"><span>Manifesto</span></div></a></li><li class="depth-1 "><a href="OnHylasAndPhilonus.html"><div class="inner"><span>On the First Dialogue of Hylas and Philonous</span></div></a></li><li class="depth-1 current"><a href="PredicateSubtext.html"><div class="inner"><span>On the subtext of a predicate</span></div></a></li><li class="depth-1 "><a href="TheProblem.html"><div class="inner"><span>The Problem</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to Wildwood</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>wildwood</span></div></div></li><li class="depth-2 branch"><a href="wildwood.advocate.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>advocate</span></div></a></li><li class="depth-2 branch"><a href="wildwood.bialowieza.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>bialowieza</span></div></a></li><li class="depth-2 branch"><a href="wildwood.knowledge-accessor.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>knowledge-accessor</span></div></a></li><li class="depth-2"><a href="wildwood.schema.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>schema</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#on-the-subtext-of-a-predicate" name="on-the-subtext-of-a-predicate"></a>On the subtext of a predicate</h1>
<p>Predicates are not atomic. They do not come single spies, but freighted with battalions of inferable subtexts. Suppose Anthony says</p> <p>Predicates are not atomic. They do not come single spies, but freighted with battalions of inferable subtexts. Suppose Anthony says</p>
<pre><code>Brutus killed Caesar in Rome during the ides of March <pre><code>Brutus killed Caesar in Rome during the ides of March
</code></pre> </code></pre>

View file

@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "" <!DOCTYPE html PUBLIC ""
""> "">
<html><head><meta charset="UTF-8" /><title>The Problem</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">Wildwood</span> <span class="project-version">0.1.0-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="AgainstTruth.html"><div class="inner"><span>Against Truth</span></div></a></li><li class="depth-1 "><a href="Analysis.html"><div class="inner"><span>Analysis</span></div></a></li><li class="depth-1 "><a href="Arboretum.html"><div class="inner"><span>Arboretum</span></div></a></li><li class="depth-1 "><a href="Conception.html"><div class="inner"><span>Conception</span></div></a></li><li class="depth-1 "><a href="Errata.html"><div class="inner"><span>Errata</span></div></a></li><li class="depth-1 "><a href="Experience.html"><div class="inner"><span>Experience</span></div></a></li><li class="depth-1 "><a href="History.html"><div class="inner"><span>History</span></div></a></li><li class="depth-1 "><a href="Implementing.html"><div class="inner"><span>Implementing</span></div></a></li><li class="depth-1 "><a href="Manifesto.html"><div class="inner"><span>Manifesto</span></div></a></li><li class="depth-1 "><a href="OnHylasAndPhilonus.html"><div class="inner"><span>On the First Dialogue of Hylas and Philonous</span></div></a></li><li class="depth-1 "><a href="PredicateSubtext.html"><div class="inner"><span>On the subtext of a predicate</span></div></a></li><li class="depth-1 "><a href="Reimagining.html"><div class="inner"><span>Reimagining</span></div></a></li><li class="depth-1 current"><a href="TheProblem.html"><div class="inner"><span>The Problem</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to Wildwood</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1 "><a href="wildwood.core.html"><div class="inner"><span>wildwood.core</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#the-problem" name="the-problem"></a>The Problem</h1> <html><head><meta charset="UTF-8" /><title>The Problem</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">Wildwood</span> <span class="project-version">0.1.0-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="AgainstTruth.html"><div class="inner"><span>Against Truth</span></div></a></li><li class="depth-1 "><a href="Analysis.html"><div class="inner"><span>Analysis</span></div></a></li><li class="depth-1 "><a href="Arboretum.html"><div class="inner"><span>Arboretum</span></div></a></li><li class="depth-1 "><a href="Arden.html"><div class="inner"><span>Arden</span></div></a></li><li class="depth-1 "><a href="Bialowieza.html"><div class="inner"><span>Bialowieza</span></div></a></li><li class="depth-1 "><a href="Errata.html"><div class="inner"><span>Errata</span></div></a></li><li class="depth-1 "><a href="Experience.html"><div class="inner"><span>Experience</span></div></a></li><li class="depth-1 "><a href="History.html"><div class="inner"><span>History</span></div></a></li><li class="depth-1 "><a href="Implementing.html"><div class="inner"><span>Implementing</span></div></a></li><li class="depth-1 "><a href="KnacqTools.html"><div class="inner"><span>KnacqTools</span></div></a></li><li class="depth-1 "><a href="Manifesto.html"><div class="inner"><span>Manifesto</span></div></a></li><li class="depth-1 "><a href="OnHylasAndPhilonus.html"><div class="inner"><span>On the First Dialogue of Hylas and Philonous</span></div></a></li><li class="depth-1 "><a href="PredicateSubtext.html"><div class="inner"><span>On the subtext of a predicate</span></div></a></li><li class="depth-1 current"><a href="TheProblem.html"><div class="inner"><span>The Problem</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to Wildwood</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>wildwood</span></div></div></li><li class="depth-2 branch"><a href="wildwood.advocate.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>advocate</span></div></a></li><li class="depth-2 branch"><a href="wildwood.bialowieza.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>bialowieza</span></div></a></li><li class="depth-2 branch"><a href="wildwood.knowledge-accessor.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>knowledge-accessor</span></div></a></li><li class="depth-2"><a href="wildwood.schema.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>schema</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#the-problem" name="the-problem"></a>The Problem</h1>
<p>In this chapter talk about the perceived need for expert system explanations. Advance:</p> <p>In this chapter talk about the perceived need for expert system explanations. Advance:</p>
<p>the arguments used by expert systems designers, saying why explanations are needed;</p> <p>the arguments used by expert systems designers, saying why explanations are needed;</p>
<p>the arguments used by critics which claim that the explanations given are not good enough.</p> <p>the arguments used by critics which claim that the explanations given are not good enough.</p>

File diff suppressed because one or more lines are too long

View file

@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "" <!DOCTYPE html PUBLIC ""
""> "">
<html><head><meta charset="UTF-8" /><title>Introduction to Wildwood</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">Wildwood</span> <span class="project-version">0.1.0-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="AgainstTruth.html"><div class="inner"><span>Against Truth</span></div></a></li><li class="depth-1 "><a href="Analysis.html"><div class="inner"><span>Analysis</span></div></a></li><li class="depth-1 "><a href="Arboretum.html"><div class="inner"><span>Arboretum</span></div></a></li><li class="depth-1 "><a href="Conception.html"><div class="inner"><span>Conception</span></div></a></li><li class="depth-1 "><a href="Errata.html"><div class="inner"><span>Errata</span></div></a></li><li class="depth-1 "><a href="Experience.html"><div class="inner"><span>Experience</span></div></a></li><li class="depth-1 "><a href="History.html"><div class="inner"><span>History</span></div></a></li><li class="depth-1 "><a href="Implementing.html"><div class="inner"><span>Implementing</span></div></a></li><li class="depth-1 "><a href="Manifesto.html"><div class="inner"><span>Manifesto</span></div></a></li><li class="depth-1 "><a href="OnHylasAndPhilonus.html"><div class="inner"><span>On the First Dialogue of Hylas and Philonous</span></div></a></li><li class="depth-1 "><a href="PredicateSubtext.html"><div class="inner"><span>On the subtext of a predicate</span></div></a></li><li class="depth-1 "><a href="Reimagining.html"><div class="inner"><span>Reimagining</span></div></a></li><li class="depth-1 "><a href="TheProblem.html"><div class="inner"><span>The Problem</span></div></a></li><li class="depth-1 current"><a href="intro.html"><div class="inner"><span>Introduction to Wildwood</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1 "><a href="wildwood.core.html"><div class="inner"><span>wildwood.core</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#introduction-to-wildwood" name="introduction-to-wildwood"></a>Introduction to Wildwood</h1> <html><head><meta charset="UTF-8" /><title>Introduction to Wildwood</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">Wildwood</span> <span class="project-version">0.1.0-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="AgainstTruth.html"><div class="inner"><span>Against Truth</span></div></a></li><li class="depth-1 "><a href="Analysis.html"><div class="inner"><span>Analysis</span></div></a></li><li class="depth-1 "><a href="Arboretum.html"><div class="inner"><span>Arboretum</span></div></a></li><li class="depth-1 "><a href="Arden.html"><div class="inner"><span>Arden</span></div></a></li><li class="depth-1 "><a href="Bialowieza.html"><div class="inner"><span>Bialowieza</span></div></a></li><li class="depth-1 "><a href="Errata.html"><div class="inner"><span>Errata</span></div></a></li><li class="depth-1 "><a href="Experience.html"><div class="inner"><span>Experience</span></div></a></li><li class="depth-1 "><a href="History.html"><div class="inner"><span>History</span></div></a></li><li class="depth-1 "><a href="Implementing.html"><div class="inner"><span>Implementing</span></div></a></li><li class="depth-1 "><a href="KnacqTools.html"><div class="inner"><span>KnacqTools</span></div></a></li><li class="depth-1 "><a href="Manifesto.html"><div class="inner"><span>Manifesto</span></div></a></li><li class="depth-1 "><a href="OnHylasAndPhilonus.html"><div class="inner"><span>On the First Dialogue of Hylas and Philonous</span></div></a></li><li class="depth-1 "><a href="PredicateSubtext.html"><div class="inner"><span>On the subtext of a predicate</span></div></a></li><li class="depth-1 "><a href="TheProblem.html"><div class="inner"><span>The Problem</span></div></a></li><li class="depth-1 current"><a href="intro.html"><div class="inner"><span>Introduction to Wildwood</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>wildwood</span></div></div></li><li class="depth-2 branch"><a href="wildwood.advocate.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>advocate</span></div></a></li><li class="depth-2 branch"><a href="wildwood.bialowieza.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>bialowieza</span></div></a></li><li class="depth-2 branch"><a href="wildwood.knowledge-accessor.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>knowledge-accessor</span></div></a></li><li class="depth-2"><a href="wildwood.schema.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>schema</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#introduction-to-wildwood" name="introduction-to-wildwood"></a>Introduction to Wildwood</h1>
<p>I started building Wildwood nearly forty years ago on InterLisp-D workstations. Then, because of changing academic projects, I lost access to those machines, and the project was effectively abandoned. But, Ive kept thinking about it; it has cool ideas.</p> <p>I started building Wildwood nearly forty years ago on InterLisp-D workstations. Then, because of changing academic projects, I lost access to those machines, and the project was effectively abandoned. But, Ive kept thinking about it; it has cool ideas.</p>
<h2><a href="#explicable-inference" name="explicable-inference"></a>Explicable inference</h2> <h2><a href="#explicable-inference" name="explicable-inference"></a>Explicable inference</h2>
<p>Wildwood was a follow on from ideas developed in Arboretum, an inference system based on a novel propositional logic using defaults. Arboretum was documented in our paper</p> <p>Wildwood was a follow on from ideas developed in Arboretum, an inference system based on a novel propositional logic using defaults. Arboretum was documented in our paper</p>

View file

@ -0,0 +1,7 @@
<!DOCTYPE html PUBLIC ""
"">
<html><head><meta charset="UTF-8" /><title>wildwood.advocate documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">Wildwood</span> <span class="project-version">0.1.0-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="AgainstTruth.html"><div class="inner"><span>Against Truth</span></div></a></li><li class="depth-1 "><a href="Analysis.html"><div class="inner"><span>Analysis</span></div></a></li><li class="depth-1 "><a href="Arboretum.html"><div class="inner"><span>Arboretum</span></div></a></li><li class="depth-1 "><a href="Arden.html"><div class="inner"><span>Arden</span></div></a></li><li class="depth-1 "><a href="Bialowieza.html"><div class="inner"><span>Bialowieza</span></div></a></li><li class="depth-1 "><a href="Errata.html"><div class="inner"><span>Errata</span></div></a></li><li class="depth-1 "><a href="Experience.html"><div class="inner"><span>Experience</span></div></a></li><li class="depth-1 "><a href="History.html"><div class="inner"><span>History</span></div></a></li><li class="depth-1 "><a href="Implementing.html"><div class="inner"><span>Implementing</span></div></a></li><li class="depth-1 "><a href="KnacqTools.html"><div class="inner"><span>KnacqTools</span></div></a></li><li class="depth-1 "><a href="Manifesto.html"><div class="inner"><span>Manifesto</span></div></a></li><li class="depth-1 "><a href="OnHylasAndPhilonus.html"><div class="inner"><span>On the First Dialogue of Hylas and Philonous</span></div></a></li><li class="depth-1 "><a href="PredicateSubtext.html"><div class="inner"><span>On the subtext of a predicate</span></div></a></li><li class="depth-1 "><a href="TheProblem.html"><div class="inner"><span>The Problem</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to Wildwood</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>wildwood</span></div></div></li><li class="depth-2 branch current"><a href="wildwood.advocate.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>advocate</span></div></a></li><li class="depth-2 branch"><a href="wildwood.bialowieza.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>bialowieza</span></div></a></li><li class="depth-2 branch"><a href="wildwood.knowledge-accessor.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>knowledge-accessor</span></div></a></li><li class="depth-2"><a href="wildwood.schema.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>schema</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="wildwood.advocate.html#var-Advocate"><div class="inner"><span>Advocate</span></div></a></li><li class="depth-2 branch"><a href="wildwood.advocate.html#var-decide"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>decide</span></div></a></li><li class="depth-2 branch"><a href="wildwood.advocate.html#var-id"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>id</span></div></a></li><li class="depth-2"><a href="wildwood.advocate.html#var-move"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>move</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">wildwood.advocate</h1><div class="doc"><div class="markdown"><p>An agent capable of playing the explanation game.</p>
<p>An advocate must have its own knowledge accessor. Different advocates within a game may be accessing different knowledge bases, or different subsets of the same knowledge base with different - potentially competing - knowledge. It also needs to know the schema in which knowledge will be presented.</p>
<p>Since the mechanism by which the application will communicate with the library must include a way for users to interact with the game, and since the role of the user in the came is just as a participant, advocate must be defined as a protocol, in order that it may be extended by code within the application which is passed in to the game when the game is started. Indeed, multiple agents - the user(s) and potentially non-player characters - may be passed in.</p>
<p>In this conception, nothing within a default advocate has to be able to produce or consume natural language. It is sufficient for the API exposed by wildwood.advocate to receive and return wildwood.schema objects.</p>
<p>Obviously to show a user interface anything similar to Ardens, or for what I intend for The Great Game, the advocates passed must at their other end - that is, on the application side rather than the library side - be able to consume and emit natural language, but that functionality does not need to be part of the wildwood library, and certainly does not need to be part of the default advocate as specified here.</p></div></div><div class="public anchor" id="var-Advocate"><h3>Advocate</h3><h4 class="type">protocol</h4><div class="usage"></div><div class="doc"><div class="markdown"></div></div><div class="members"><h4>members</h4><div class="inner"><div class="public anchor" id="var-decide"><h3>decide</h3><div class="usage"><code>(decide self proposition argument)</code></div><div class="doc"><div class="markdown"><p>Return <code>true</code>, <code>false</code> or <code>nil</code> as the value of this <code>proposition</code>, given this <code>argument</code>. The value of <code>proposition</code> should be a proposition as defined by <code>wildwood.schema/proposition?</code>; the value of <code>argument</code> should satisfy <code>wildwood.schema/argument?</code>.</p></div></div></div><div class="public anchor" id="var-id"><h3>id</h3><div class="usage"><code>(id self)</code></div><div class="doc"><div class="markdown"><p>Return a value which uniquely identifies this agent.</p></div></div></div><div class="public anchor" id="var-move"><h3>move</h3><div class="usage"><code>(move self proposition argument)</code></div><div class="doc"><div class="markdown"><p>Return a new argument structure representing the result of applying my <code>decide</code> method to this <code>proposition</code> and <code>argument</code>, specifying in some way not yet determined what sort of move I have made.</p></div></div></div></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/wildwood/advocate.clj#L32">view source</a></div></div></div></body></html>

View file

@ -0,0 +1,7 @@
<!DOCTYPE html PUBLIC ""
"">
<html><head><meta charset="UTF-8" /><title>wildwood.bialowieza documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">Wildwood</span> <span class="project-version">0.1.0-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="AgainstTruth.html"><div class="inner"><span>Against Truth</span></div></a></li><li class="depth-1 "><a href="Analysis.html"><div class="inner"><span>Analysis</span></div></a></li><li class="depth-1 "><a href="Arboretum.html"><div class="inner"><span>Arboretum</span></div></a></li><li class="depth-1 "><a href="Arden.html"><div class="inner"><span>Arden</span></div></a></li><li class="depth-1 "><a href="Bialowieza.html"><div class="inner"><span>Bialowieza</span></div></a></li><li class="depth-1 "><a href="Errata.html"><div class="inner"><span>Errata</span></div></a></li><li class="depth-1 "><a href="Experience.html"><div class="inner"><span>Experience</span></div></a></li><li class="depth-1 "><a href="History.html"><div class="inner"><span>History</span></div></a></li><li class="depth-1 "><a href="Implementing.html"><div class="inner"><span>Implementing</span></div></a></li><li class="depth-1 "><a href="KnacqTools.html"><div class="inner"><span>KnacqTools</span></div></a></li><li class="depth-1 "><a href="Manifesto.html"><div class="inner"><span>Manifesto</span></div></a></li><li class="depth-1 "><a href="OnHylasAndPhilonus.html"><div class="inner"><span>On the First Dialogue of Hylas and Philonous</span></div></a></li><li class="depth-1 "><a href="PredicateSubtext.html"><div class="inner"><span>On the subtext of a predicate</span></div></a></li><li class="depth-1 "><a href="TheProblem.html"><div class="inner"><span>The Problem</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to Wildwood</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>wildwood</span></div></div></li><li class="depth-2 branch"><a href="wildwood.advocate.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>advocate</span></div></a></li><li class="depth-2 branch current"><a href="wildwood.bialowieza.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>bialowieza</span></div></a></li><li class="depth-2 branch"><a href="wildwood.knowledge-accessor.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>knowledge-accessor</span></div></a></li><li class="depth-2"><a href="wildwood.schema.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>schema</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="wildwood.bialowieza.html#var-decide"><div class="inner"><span>decide</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">wildwood.bialowieza</h1><div class="doc"><div class="markdown"><p>The second iteration of the core inference engine for Wildwood</p></div></div><div class="public anchor" id="var-decide"><h3>decide</h3><div class="usage"><code>(decide proposition &amp; agents)</code></div><div class="doc"><div class="markdown"><p>Decide the truth value of this <code>proposition</code> by convening a game between these advocate <code>agents</code>. Iterate the game until all agents PASS; then finally offer each agents <code>assert</code> method the <code>proposition</code> together with the decided truth value (<code>true</code> or <code>false</code>), before returning that value.</p>
<p>The <code>proposition</code> is a proposition as defined in the <code>wildwood.schema</code>; that is to say, the predicate <code>wildwood.schema/predicate?</code> returns true of it. If the proposition isnt a predicate, throw an exception.</p>
<p>Each of <code>agents</code> should be an object implementing the <code>wildwood.advocate/Advocate</code> protocol. If an agent isnt an Advocate, throw an exception.</p>
<p>Do not throw an exception under any other circumstances.</p>
<p>If an agent throws an exception, catch it and treat it as a PASS.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/wildwood/bialowieza.clj#L10">view source</a></div></div></div></body></html>

View file

@ -1,3 +1,3 @@
<!DOCTYPE html PUBLIC "" <!DOCTYPE html PUBLIC ""
""> "">
<html><head><meta charset="UTF-8" /><title>wildwood.core documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">Wildwood</span> <span class="project-version">0.1.0-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="AgainstTruth.html"><div class="inner"><span>Against Truth</span></div></a></li><li class="depth-1 "><a href="Analysis.html"><div class="inner"><span>Analysis</span></div></a></li><li class="depth-1 "><a href="Arboretum.html"><div class="inner"><span>Arboretum</span></div></a></li><li class="depth-1 "><a href="Conception.html"><div class="inner"><span>Conception</span></div></a></li><li class="depth-1 "><a href="Errata.html"><div class="inner"><span>Errata</span></div></a></li><li class="depth-1 "><a href="Experience.html"><div class="inner"><span>Experience</span></div></a></li><li class="depth-1 "><a href="History.html"><div class="inner"><span>History</span></div></a></li><li class="depth-1 "><a href="Implementing.html"><div class="inner"><span>Implementing</span></div></a></li><li class="depth-1 "><a href="Manifesto.html"><div class="inner"><span>Manifesto</span></div></a></li><li class="depth-1 "><a href="OnHylasAndPhilonus.html"><div class="inner"><span>On the First Dialogue of Hylas and Philonous</span></div></a></li><li class="depth-1 "><a href="PredicateSubtext.html"><div class="inner"><span>On the subtext of a predicate</span></div></a></li><li class="depth-1 "><a href="Reimagining.html"><div class="inner"><span>Reimagining</span></div></a></li><li class="depth-1 "><a href="TheProblem.html"><div class="inner"><span>The Problem</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to Wildwood</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1 current"><a href="wildwood.core.html"><div class="inner"><span>wildwood.core</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="wildwood.core.html#var-foo"><div class="inner"><span>foo</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">wildwood.core</h1><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="public anchor" id="var-foo"><h3>foo</h3><div class="usage"><code>(foo x)</code></div><div class="doc"><div class="markdown"><p>I dont do a whole lot.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/wildwood/core.clj#L3">view source</a></div></div></div></body></html> <html><head><meta charset="UTF-8" /><title>wildwood.core documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">Wildwood</span> <span class="project-version">0.1.0-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="AgainstTruth.html"><div class="inner"><span>Against Truth</span></div></a></li><li class="depth-1 "><a href="Analysis.html"><div class="inner"><span>Analysis</span></div></a></li><li class="depth-1 "><a href="Arboretum.html"><div class="inner"><span>Arboretum</span></div></a></li><li class="depth-1 "><a href="Arden.html"><div class="inner"><span>Arden</span></div></a></li><li class="depth-1 "><a href="Bialowieza.html"><div class="inner"><span>Bialowieza</span></div></a></li><li class="depth-1 "><a href="Errata.html"><div class="inner"><span>Errata</span></div></a></li><li class="depth-1 "><a href="Experience.html"><div class="inner"><span>Experience</span></div></a></li><li class="depth-1 "><a href="History.html"><div class="inner"><span>History</span></div></a></li><li class="depth-1 "><a href="Implementing.html"><div class="inner"><span>Implementing</span></div></a></li><li class="depth-1 "><a href="Manifesto.html"><div class="inner"><span>Manifesto</span></div></a></li><li class="depth-1 "><a href="OnHylasAndPhilonus.html"><div class="inner"><span>On the First Dialogue of Hylas and Philonous</span></div></a></li><li class="depth-1 "><a href="PredicateSubtext.html"><div class="inner"><span>On the subtext of a predicate</span></div></a></li><li class="depth-1 "><a href="TheProblem.html"><div class="inner"><span>The Problem</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to Wildwood</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1 current"><a href="wildwood.core.html"><div class="inner"><span>wildwood.core</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="wildwood.core.html#var-foo"><div class="inner"><span>foo</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">wildwood.core</h1><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="public anchor" id="var-foo"><h3>foo</h3><div class="usage"><code>(foo x)</code></div><div class="doc"><div class="markdown"><p>I dont do a whole lot.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/wildwood/core.clj#L3">view source</a></div></div></div></body></html>

View file

@ -0,0 +1,3 @@
<!DOCTYPE html PUBLIC ""
"">
<html><head><meta charset="UTF-8" /><title>wildwood.knowledge-accessor documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">Wildwood</span> <span class="project-version">0.1.0-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="AgainstTruth.html"><div class="inner"><span>Against Truth</span></div></a></li><li class="depth-1 "><a href="Analysis.html"><div class="inner"><span>Analysis</span></div></a></li><li class="depth-1 "><a href="Arboretum.html"><div class="inner"><span>Arboretum</span></div></a></li><li class="depth-1 "><a href="Arden.html"><div class="inner"><span>Arden</span></div></a></li><li class="depth-1 "><a href="Bialowieza.html"><div class="inner"><span>Bialowieza</span></div></a></li><li class="depth-1 "><a href="Errata.html"><div class="inner"><span>Errata</span></div></a></li><li class="depth-1 "><a href="Experience.html"><div class="inner"><span>Experience</span></div></a></li><li class="depth-1 "><a href="History.html"><div class="inner"><span>History</span></div></a></li><li class="depth-1 "><a href="Implementing.html"><div class="inner"><span>Implementing</span></div></a></li><li class="depth-1 "><a href="KnacqTools.html"><div class="inner"><span>KnacqTools</span></div></a></li><li class="depth-1 "><a href="Manifesto.html"><div class="inner"><span>Manifesto</span></div></a></li><li class="depth-1 "><a href="OnHylasAndPhilonus.html"><div class="inner"><span>On the First Dialogue of Hylas and Philonous</span></div></a></li><li class="depth-1 "><a href="PredicateSubtext.html"><div class="inner"><span>On the subtext of a predicate</span></div></a></li><li class="depth-1 "><a href="TheProblem.html"><div class="inner"><span>The Problem</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to Wildwood</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>wildwood</span></div></div></li><li class="depth-2 branch"><a href="wildwood.advocate.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>advocate</span></div></a></li><li class="depth-2 branch"><a href="wildwood.bialowieza.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>bialowieza</span></div></a></li><li class="depth-2 branch current"><a href="wildwood.knowledge-accessor.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>knowledge-accessor</span></div></a></li><li class="depth-2"><a href="wildwood.schema.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>schema</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">wildwood.knowledge-accessor</h1><div class="doc"><div class="markdown"><p>The key point of building Bialowieza as a library rather than a complete application is that it should be possible to hook it up to multiple sources of knowledge. Thus we must design a protocol through which knowledge can be accessed, and a schema in which it will be returned. Note that the accessor must be able to add knowledge to the knowledge base, as well as retrieve it.</p></div></div></div></body></html>

View file

@ -0,0 +1,5 @@
<!DOCTYPE html PUBLIC ""
"">
<html><head><meta charset="UTF-8" /><title>wildwood.schema documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">Wildwood</span> <span class="project-version">0.1.0-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="AgainstTruth.html"><div class="inner"><span>Against Truth</span></div></a></li><li class="depth-1 "><a href="Analysis.html"><div class="inner"><span>Analysis</span></div></a></li><li class="depth-1 "><a href="Arboretum.html"><div class="inner"><span>Arboretum</span></div></a></li><li class="depth-1 "><a href="Arden.html"><div class="inner"><span>Arden</span></div></a></li><li class="depth-1 "><a href="Bialowieza.html"><div class="inner"><span>Bialowieza</span></div></a></li><li class="depth-1 "><a href="Errata.html"><div class="inner"><span>Errata</span></div></a></li><li class="depth-1 "><a href="Experience.html"><div class="inner"><span>Experience</span></div></a></li><li class="depth-1 "><a href="History.html"><div class="inner"><span>History</span></div></a></li><li class="depth-1 "><a href="Implementing.html"><div class="inner"><span>Implementing</span></div></a></li><li class="depth-1 "><a href="KnacqTools.html"><div class="inner"><span>KnacqTools</span></div></a></li><li class="depth-1 "><a href="Manifesto.html"><div class="inner"><span>Manifesto</span></div></a></li><li class="depth-1 "><a href="OnHylasAndPhilonus.html"><div class="inner"><span>On the First Dialogue of Hylas and Philonous</span></div></a></li><li class="depth-1 "><a href="PredicateSubtext.html"><div class="inner"><span>On the subtext of a predicate</span></div></a></li><li class="depth-1 "><a href="TheProblem.html"><div class="inner"><span>The Problem</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to Wildwood</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>wildwood</span></div></div></li><li class="depth-2 branch"><a href="wildwood.advocate.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>advocate</span></div></a></li><li class="depth-2 branch"><a href="wildwood.bialowieza.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>bialowieza</span></div></a></li><li class="depth-2 branch"><a href="wildwood.knowledge-accessor.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>knowledge-accessor</span></div></a></li><li class="depth-2 current"><a href="wildwood.schema.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>schema</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="wildwood.schema.html#var-argument.3F"><div class="inner"><span>argument?</span></div></a></li><li class="depth-1"><a href="wildwood.schema.html#var-proposition.3F"><div class="inner"><span>proposition?</span></div></a></li><li class="depth-1"><a href="wildwood.schema.html#var-rule.3F"><div class="inner"><span>rule?</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">wildwood.schema</h1><div class="doc"><div class="markdown"><p>The knowledge representation. This probably ends up looking a bit like a Toulmin schema, where claims are represented as propositions. There also need to be rules or predicates, things which can test whether a given proposition has a given value. There may be other stuff in here.</p>
<p>Internal representation of most of this will be as Clojure maps.</p></div></div><div class="public anchor" id="var-argument.3F"><h3>argument?</h3><div class="usage"><code>(argument? o)</code></div><div class="doc"><div class="markdown"><p>True if <code>o</code> qualifies as an argument structure.</p>
<p>I dont yet fully know what an argument looks like, but it is probably conceptually very like a recursive Toulmin structure, or else a list each of whose elements comprises a map with keys : * :vote - <code>true</code>, <code>false</code> or <code>nil</code>; * :move - a keyword representing one of the valid moves in the game; * :agent - something identifying the agent which made the move; * :argument - a Toulmin structure.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/wildwood/schema.clj#L26">view source</a></div></div><div class="public anchor" id="var-proposition.3F"><h3>proposition?</h3><div class="usage"><code>(proposition? o)</code></div><div class="doc"><div class="markdown"><p>True if <code>o</code> qualifies as a proposition. A proposition is probably a map with some privileged keys, and may look something like a minimised <code>the-great-game.gossip.news-items</code> item.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/wildwood/schema.clj#L10">view source</a></div></div><div class="public anchor" id="var-rule.3F"><h3>rule?</h3><div class="usage"><code>(rule? o)</code></div><div class="doc"><div class="markdown"><p>True if <code>o</code> qualifies as a rule. A rule is should be function of one argument, and should (if this can simply be checked) return a truth value, where truth value is one of <code>true</code>, <code>false</code> or <code>nil</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/wildwood/schema.clj#L18">view source</a></div></div></div></body></html>

42
src/wildwood/advocate.clj Normal file
View file

@ -0,0 +1,42 @@
(ns wildwood.advocate
"An agent capable of playing the explanation game.
An advocate must have its own knowledge accessor. Different advocates
within a game may be accessing different knowledge bases, or different
subsets of the same knowledge base with different - potentially competing
- knowledge. It also needs to know the schema in which knowledge will be
presented.
Since the mechanism by which the application will communicate with the
library must include a way for users to interact with the game, and
since the role of the user in the came is just as a participant,
advocate must be defined as a protocol, in order that it may be extended
by code within the application which is passed in to the game when the
game is started. Indeed, multiple agents - the user(s) and potentially
non-player characters - may be passed in.
In this conception, nothing within a default advocate has to be able to
produce or consume natural language. It is sufficient for the API exposed
by wildwood.advocate to receive and return wildwood.schema objects.
Obviously to show a user interface anything similar to Arden's, or for
what I intend for The Great Game, the advocates passed must 'at their
other end' - that is, on the application side rather than the library
side - be able to consume and emit natural language, but that functionality
does not need to be part of the wildwood library, and certainly does
not need to be part of the default advocate as specified here."
(:require [wildwood.knowledge-accessor :refer []]
[wildwood.schema :refer [proposition? argument?]]))
(defprotocol Advocate
(id [self] "Return a value which uniquely identifies this agent.")
(decide [self proposition argument]
"Return `true`, `false` or `nil` as the value of this `proposition`,
given this `argument`. The value of `proposition` should be a
proposition as defined by `wildwood.schema/proposition?`;
the value of `argument` should satisfy `wildwood.schema/argument?`.")
(move [self proposition argument]
"Return a new argument structure representing the result of applying my
`decide` method to this `proposition` and `argument`, specifying in
some way not yet determined what sort of move I have made."))

View file

@ -0,0 +1,30 @@
(ns wildwood.bialowieza
"The second iteration of the core inference engine for Wildwood"
(:require [wildwood.advocate :refer [Advocate]]
[wildwood.schema :refer [proposition?]]))
;; to start a game we must have n advocates, where n > 1. Each must have
;; its own knowledge accessor, so at the level of the game engine we don't
;; need to know how to access knowledge.
(defn decide
"Decide the truth value of this `proposition` by convening a game between
these advocate `agents`. Iterate the game until all agents PASS; then finally
offer each agent's `assert` method the `proposition` together with the
decided truth value (`true` or `false`), before returning that value.
The `proposition` is a proposition as defined in the `wildwood.schema`;
that is to say, the predicate `wildwood.schema/predicate?` returns true
of it. If the proposition isn't a predicate, throw an exception.
Each of `agents` should be an object implementing the
`wildwood.advocate/Advocate` protocol. If an agent isn't an Advocate,
throw an exception.
Do not throw an exception under any other circumstances.
If an agent throws an exception, catch it and treat it as a PASS."
[proposition & agents]
;; TODO: actually write it.
false)

View file

@ -1,6 +0,0 @@
(ns wildwood.core)
(defn foo
"I don't do a whole lot."
[x]
(println x "Hello, World!"))

View file

@ -0,0 +1,7 @@
(ns wildwood.knowledge-accessor
"The key point of building Bialowieza as a library rather than a complete
application is that it should be possible to hook it up to multiple sources
of knowledge. Thus we must design a protocol through which knowledge can be
accessed, and a schema in which it will be returned. Note that the
accessor must be able to add knowledge to the knowledge base, as well as
retrieve it.")

38
src/wildwood/schema.clj Normal file
View file

@ -0,0 +1,38 @@
(ns wildwood.schema
"The knowledge representation. This probably ends up looking a bit like a
Toulmin schema, where claims are represented as propositions. There also
need to be rules or predicates, things which can test whether a given
proposition has a given value. There may be other stuff in here.
Internal representation of most of this will be as Clojure maps."
)
(defn proposition?
"True if `o` qualifies as a proposition. A proposition is probably a map
with some privileged keys, and may look something like a minimised
`the-great-game.gossip.news-items` item."
;; TODO: write this.
[o]
false)
(defn rule?
"True if `o` qualifies as a rule. A rule is should be function of one
argument, and should (if this can simply be checked) return a truth value,
where truth value is one of `true`, `false` or `nil`."
[o]
;; TODO: write this
false)
(defn argument?
"True if `o` qualifies as an argument structure.
I don't yet fully know what an argument looks like,
but it is probably conceptually very like a recursive Toulmin structure,
or else a list each of whose elements comprises a map with keys :
* :vote - `true`, `false` or `nil`;
* :move - a keyword representing one of the valid moves in the game;
* :agent - something identifying the agent which made the move;
* :argument - a Toulmin structure."
[o]
;; TODO: write this.
false)