diff --git a/doc/AgainstTruth.md b/doc/AgainstTruth.md index e392cff..2417195 100644 --- a/doc/AgainstTruth.md +++ b/doc/AgainstTruth.md @@ -12,8 +12,6 @@ This document is in two parts: a statement of a problem, and an account of an a The second part starts with an account of a system built by the author in collaboration with Peter Mott, describing particularly how the problem was addressed by this system; subsequent chapters will describe the development of a further system, in which the analysis developed in the first section will be applied. -This document deals only with explanation. Issues relating to inference and especially to truth maintenance will undoubtedly be raised as it progresses, but such hares will resolutely not be followed. - ## Note on the quality of the text Much of this text was written between 1986 and 1988 on Xerox 1108 and 1186 workstations, in their native WYSIWYG document system, and printed as hard copy; and some was written on the very first generation of Apple Macintosh computer, and again printed as hard copy. The text here is the consequence of scanning the hard copy and running optical character recognition on the scans. It isn't perfect. I am proof reading as I go and I hope that it will improve. @@ -29,6 +27,9 @@ Much of this text was written between 1986 and 1988 on Xerox 1108 and 1186 works 1. [The Problem](TheProblem.html) 2. [History](History.html) 3. [Analysis](Analysis.html) +4. [On Hegemonic Argument](HegemonicArgument.html) +5. [The Huxley/Kropotkin debate](HuxleyKropotkin.html) +6. [The Bateson/Kammerer debate](BatesonKammerer.html) ### Part Two: Into the wild wood @@ -39,9 +40,10 @@ Much of this text was written between 1986 and 1988 on Xerox 1108 and 1186 works 5. [Implementing](Implementing.html) 6. [Experience](Experience.html) -### Endmatter +### Endmatter: bringing it all together -1. [Errata](Errata.html) +1. [J'Accuse](JAccuse.html) +2. [Errata](Errata.html) ---- [Adams, 1978](https://en.wikipedia.org/wiki/The_Hitchhiker%27s_Guide_to_the_Galaxy) diff --git a/doc/Analysis.md b/doc/Analysis.md index c5bec34..95e9f07 100644 --- a/doc/Analysis.md +++ b/doc/Analysis.md @@ -653,12 +653,7 @@ It appears that Achinstein's motivation in producing a new account has less to do with addressing these real world problems than with overcoming such philosophical puzzles as the Paradox of the Ravens; so his account takes us no nearer to providing a model which will support the construction of -better common sense explanations. 5 - -A \[ mh L/Go/w%\` \\ - -\` Eegozi - +better common sense explanations. ## Toulmin @@ -973,26 +968,26 @@ the explicandum onto the theory, or body of belief, which we currently hold. intend to draw on examples from two genuine debates, drawn in this instance from the development of the theory of evolution. These debates are -The debate between Huxley and Kropotkin over whether co-operation or +> The debate between [Huxley and Kropotkin](HuxleyKropotkin.html) over whether co-operation or competition was the more important factor in the survival of species. -Kropotkin, a leading Anarchist, sought to show that human beings (among +> > Kropotkin, a leading Anarchist, sought to show that human beings (among other animals) were inherently co-operative, and (implied conclusion) would get along fine in the absence of government. Huxley, a Tory, sought to show that, on the contrary, competition (and, implicitly, capitalism) red in tooth and claw was 'natural'. -The debate between Bateson and Kammerer over whether acquired +> The debate between [Bateson and Kammerer](BatesonKammerer.html) over whether acquired characteristics were inherited. -Kammerer, then the only scientist capable of breeding many species of +> > Kammerer, then the only scientist capable of breeding many species of amphibian in captivity, showed in a series of experiments that characteristics aquired by parents were inherited by their offspring. Bateson, in a series of increasingly virulent attacks, ultimately -claimed that these experiments were fraudulent. As no-one else was even capable of -breeding the creatures involved, they could not be repeated. +claimed that these experiments were fraudulent. As no one else was even capable of +breeding the creatures involved, the experiments could not be repeated. -Kammerer was a communist, and the implicit argument behind his work +> > Kammerer was a communist, and the implicit argument behind his work was that human beings were perfectable; that some parts of the benefits of humane education and culture would be transmitted. Bateson was again a Tory, though not as politically committed as the other figures discussed. diff --git a/doc/BatesonKammerer.md b/doc/BatesonKammerer.md new file mode 100644 index 0000000..7091a9b --- /dev/null +++ b/doc/BatesonKammerer.md @@ -0,0 +1,3 @@ +# The Bateson / Kammerer debate + +{ TODO: analyse the style and motivations of the Bateson / Kammerer debate, drawing out the use of polemic and rhetoric to achieve hegemony } diff --git a/doc/Bialowieza.md b/doc/Bialowieza.md index 13734f8..e0a96cd 100644 --- a/doc/Bialowieza.md +++ b/doc/Bialowieza.md @@ -1,6 +1,6 @@ # Bialowieza -{ this chapter is in active development } +{ this chapter is in active development; quite a lot of the technical detail in this chapter at present will probably end up in [Implementing](Implementing.html), while additional high level and conceptual design, as it develops, will be here. } ## Why Bialowieza? @@ -72,7 +72,7 @@ The attentive reader will note that some of the proposed privileged keys map clo * that `:truth` and `:confidence` are both `qualifiers` of the claim in the sense of the **Q** term; * that `:authority` is a form of `backing` in the sense of the **B** term. -So what, then, is an 'argument structure', as described above? It seems to me that it may be exactly a proposition, with the special feature that the data is not minimised. +So what, then, is an 'argument structure', as described above? It seems to me that it may be exactly a proposition, with the special feature that the value of the `:data` key is not minimised. #### Proposition minimisation @@ -96,7 +96,7 @@ The object of building Bialowieza as a library is that we should not constrain h In Arboretum and later in KnacqTools, default values of features were determined by the 'knowledge engineer', normally by asking the domain expert, and were fixed for the knowledge base at all times. But these two programs each reasoned about one case at a time, and did not store knowledge about multiple cases. -These systems could this be said to be *prejudiced*, to the extent that knowledge of the world acquired over time did not change their default judgements. Wildwood holds knowledge on potentially very many objects, and that knowledge may change dynamically over time, both as the world changes and as new things which already existed in the world become known. +These systems could thus be said to be *prejudiced*, to the extent that knowledge of the world acquired over time did not change their default judgements. Wildwood holds knowledge on potentially very many objects, and that knowledge may change dynamically over time, both as the world changes and as new things which already existed in the world become known. Suppose we wish to decide the truth value of the proposition diff --git a/doc/HegemonicArgument.md b/doc/HegemonicArgument.md new file mode 100644 index 0000000..c3cf793 --- /dev/null +++ b/doc/HegemonicArgument.md @@ -0,0 +1,4 @@ +# Hegemonic Argument + +{ new chapter, beginning a sequence which argues that the purpose of argument is to achieve hegemony, not find truth. In this chapter we'll cover the sources we've used already, and show that the philosophers of science, +whatever they claim about the purpose of argument, actually argue in a highly polemical, persuasive manner, seeking to achieve widespread belief of their chosen position - that is, to achieve hegemony; and further, even those who make strong claims to the value of candour are frequently not candid in their own argument } diff --git a/doc/HuxleyKropotkin.md b/doc/HuxleyKropotkin.md new file mode 100644 index 0000000..d65f84c --- /dev/null +++ b/doc/HuxleyKropotkin.md @@ -0,0 +1,3 @@ +# The Huxley / Kropotkin debate + +{ TODO: analyse the style and motivations of the Huxley / Kropotkin debate, drawing out the use of polemic and rhetoric to achieve hegemony } diff --git a/doc/JAccuse.md b/doc/JAccuse.md new file mode 100644 index 0000000..9cf31e3 --- /dev/null +++ b/doc/JAccuse.md @@ -0,0 +1,7 @@ +# J'Accuse + +{ Conclusion of the thesis. + +title of this chapter may change, but it needs to be confrontational and polemical. + +Draw together all that has been learned in parts one and two into a single, closely argued polemic, in best academic style. } diff --git a/docs/codox/AgainstTruth.html b/docs/codox/AgainstTruth.html index 515e56d..f5cf75e 100644 --- a/docs/codox/AgainstTruth.html +++ b/docs/codox/AgainstTruth.html @@ -1,6 +1,6 @@ -Against Truth

Against Truth

+Against Truth

Against Truth

Simon Brooke

“Hey, what IS truth, man?” Beeblebrox, Z, quoted in [Adams, 1978]

@@ -22,6 +22,9 @@
  • The Problem
  • History
  • Analysis
  • +
  • On Hegemonic Argument
  • +
  • The Huxley/Kropotkin debate
  • +
  • The Bateson/Kammerer debate
  • Part Two: Into the wild wood

      @@ -32,8 +35,9 @@
    1. Implementing
    2. Experience
    -

    Endmatter

    +

    Endmatter: bringing it all together

      +
    1. J’Accuse
    2. Errata

    diff --git a/docs/codox/Analysis.html b/docs/codox/Analysis.html index 7a4f14b..c48c135 100644 --- a/docs/codox/Analysis.html +++ b/docs/codox/Analysis.html @@ -1,6 +1,6 @@ -Analysis

    Analysis

    +Analysis

    Analysis

    Accounts from the Philosophy of Science

    (Towards another chapter. What l want to do is: ,

      @@ -322,11 +322,17 @@ a is x

      as a good explanation for the occurance of the same phenomenon. He would know perfectly well that the earth, being fixed, could not rotate on its axis. And even if it could, why should this influence the daily ritual of Ra?

      We consider an explanation good if it maps a statement about the explicandum onto the theory, or body of belief, which we currently hold.

      [Main text of argument. In the tradition of ‘philosophy of science’ I intend to draw on examples from two genuine debates, drawn in this instance from the development of the theory of evolution. These debates are

      -

      The debate between Huxley and Kropotkin over whether co-operation or competition was the more important factor in the survival of species.

      -

      Kropotkin, a leading Anarchist, sought to show that human beings (among other animals) were inherently co-operative, and (implied conclusion) would get along fine in the absence of government. Huxley, a Tory, sought to show that, on the contrary, competition (and, implicitly, capitalism) red in tooth and claw was ‘natural’.

      -

      The debate between Bateson and Kammerer over whether acquired characteristics were inherited.

      -

      Kammerer, then the only scientist capable of breeding many species of amphibian in captivity, showed in a series of experiments that characteristics aquired by parents were inherited by their offspring. Bateson, in a series of increasingly virulent attacks, ultimately claimed that these experiments were fraudulent. As no-one else was even capable of breeding the creatures involved, they could not be repeated.

      -

      Kammerer was a communist, and the implicit argument behind his work was that human beings were perfectable; that some parts of the benefits of humane education and culture would be transmitted. Bateson was again a Tory, though not as politically committed as the other figures discussed.

      +
      +

      The debate between Huxley and Kropotkin over whether co-operation or competition was the more important factor in the survival of species.

      +
      +

      Kropotkin, a leading Anarchist, sought to show that human beings (among other animals) were inherently co-operative, and (implied conclusion) would get along fine in the absence of government. Huxley, a Tory, sought to show that, on the contrary, competition (and, implicitly, capitalism) red in tooth and claw was ‘natural’.

      +
      +

      The debate between Bateson and Kammerer over whether acquired characteristics were inherited.

      +
      +

      Kammerer, then the only scientist capable of breeding many species of amphibian in captivity, showed in a series of experiments that characteristics aquired by parents were inherited by their offspring. Bateson, in a series of increasingly virulent attacks, ultimately claimed that these experiments were fraudulent. As no one else was even capable of breeding the creatures involved, the experiments could not be repeated.

      +

      Kammerer was a communist, and the implicit argument behind his work was that human beings were perfectable; that some parts of the benefits of humane education and culture would be transmitted. Bateson was again a Tory, though not as politically committed as the other figures discussed.

      +
      +

      In these debates it is clear that the protagonists sought ot explain a phenomenon - in this case evolution - in terms of theories which supported their own views of the world. The act of explanation was clearly being used as a polemic act, to try to pursuade the explainee of the correctness of the explainers ideological stance]

      Acknowledgments

      I am grateful to Vernon Pratt for helping me clarify the consequences that this doctrine has for the concepts of ‘theory’ and ‘belief’. lf it is the case that there is no access to a ‘real world’, then all statements about the nature of the world are of equal - undifferentiable - validity (except in so far as some aesthetic criteria may be applied to them). It remains possible to differentiate between a belief - an unsupported statement about the nature of the world - and a theory: a statement that the world has some property as a consequence of certain other properties which it may have. However, it seems to me that this distinction is of little practical importance.

      diff --git a/docs/codox/Arboretum.html b/docs/codox/Arboretum.html index a19e585..2d44c29 100644 --- a/docs/codox/Arboretum.html +++ b/docs/codox/Arboretum.html @@ -1,6 +1,6 @@ -Arboretum

      Arboretum

      +Arboretum

      Arboretum

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

      The Adjudication process within the DHSS has its own levels of authority culminating in the

      diff --git a/docs/codox/Arden.html b/docs/codox/Arden.html index 0a597df..e0e1316 100644 --- a/docs/codox/Arden.html +++ b/docs/codox/Arden.html @@ -1,6 +1,6 @@ -Arden

      Arden

      +Arden

      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

      diff --git a/docs/codox/BatesonKammerer.html b/docs/codox/BatesonKammerer.html new file mode 100644 index 0000000..f3442ed --- /dev/null +++ b/docs/codox/BatesonKammerer.html @@ -0,0 +1,4 @@ + +The Bateson / Kammerer debate

      The Bateson / Kammerer debate

      +

      { TODO: analyse the style and motivations of the Bateson / Kammerer debate, drawing out the use of polemic and rhetoric to achieve hegemony }

      \ No newline at end of file diff --git a/docs/codox/Bialowieza.html b/docs/codox/Bialowieza.html index df793d9..5e46015 100644 --- a/docs/codox/Bialowieza.html +++ b/docs/codox/Bialowieza.html @@ -1,7 +1,7 @@ -Bialowieza

      Bialowieza

      -

      { this chapter is in active development }

      +Bialowieza

      Bialowieza

      +

      { this chapter is in active development; quite a lot of the technical detail in this chapter at present will probably end up in Implementing, while additional high level and conceptual design, as it develops, will be here. }

      Why Bialowieza?

      Bialowieza is the second iteration of the Wildwood engine, and this following convention its name should start with ‘B’. Białowieża is Europe’s last great wild wood, and it is currently under threat.

      Motivation

      @@ -50,7 +50,7 @@
    1. that :truth and :confidence are both qualifiers of the claim in the sense of the Q term;
    2. that :authority is a form of backing in the sense of the B term.
    3. -

      So what, then, is an ‘argument structure’, as described above? It seems to me that it may be exactly a proposition, with the special feature that the data is not minimised.

      +

      So what, then, is an ‘argument structure’, as described above? It seems to me that it may be exactly a proposition, with the special feature that the value of the :data key is not minimised.

      Proposition minimisation

      How are the values of :subject, :object and so on to be passed? If we pass rich knowledge structures around, then we lose the insight that different advocates may know different things about given objects. Thus, while internally within each advocate’s knowledge base objects may be stored with rich data, when they’re passed around in propositions they should be minimised - that is to say, the value should just be a unique identifier, such that, for every object in the domain, if an advocate knows anything at all about that object, it knows its unique identifier and knows the object by that unique identifier.

      Thus the unique identifier has something of the nature of a ‘true name’, in the magical sense. A given true name, a given unique identifier, refers to precisely one thing in the world, and provided that two advocates both know the same true name, they can debats propositions which refer to the object with that true name.

      @@ -62,7 +62,7 @@

      The object of building Bialowieza as a library is that we should not constrain how applications which use the library store their knowledge. Rather, knowledge accessors must transduce between the representation used by the particular storage implementation and that defined in wildwood.schema. However, what we’ve described above suggests that a hierarchical database would be a very natural fit for knowlege base data - more natural, in this case, than a relational database.

      Prejudice, and defaults

      In Arboretum and later in KnacqTools, default values of features were determined by the ‘knowledge engineer’, normally by asking the domain expert, and were fixed for the knowledge base at all times. But these two programs each reasoned about one case at a time, and did not store knowledge about multiple cases.

      -

      These systems could this be said to be prejudiced, to the extent that knowledge of the world acquired over time did not change their default judgements. Wildwood holds knowledge on potentially very many objects, and that knowledge may change dynamically over time, both as the world changes and as new things which already existed in the world become known.

      +

      These systems could thus be said to be prejudiced, to the extent that knowledge of the world acquired over time did not change their default judgements. Wildwood holds knowledge on potentially very many objects, and that knowledge may change dynamically over time, both as the world changes and as new things which already existed in the world become known.

      Suppose we wish to decide the truth value of the proposition

      {:verb :is :subject :brutus :object :honourable}
       
      diff --git a/docs/codox/Errata.html b/docs/codox/Errata.html index a16b6c0..8681c93 100644 --- a/docs/codox/Errata.html +++ b/docs/codox/Errata.html @@ -1,6 +1,6 @@ -Errata

      Errata

      +Errata

      Errata

      1. 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.
      \ No newline at end of file diff --git a/docs/codox/Experience.html b/docs/codox/Experience.html index b6762e3..1fd834f 100644 --- a/docs/codox/Experience.html +++ b/docs/codox/Experience.html @@ -1,4 +1,4 @@ -Experience

      Experience

      +Experience

      Experience

      {Not yet written. To cover an evaluation of the Clojure Wildwood library, when it works, and what I can learn from it going forward}

      \ No newline at end of file diff --git a/docs/codox/HegemonicArgument.html b/docs/codox/HegemonicArgument.html new file mode 100644 index 0000000..4bd86f4 --- /dev/null +++ b/docs/codox/HegemonicArgument.html @@ -0,0 +1,4 @@ + +Hegemonic Argument

      Hegemonic Argument

      +

      { new chapter, beginning a sequence which argues that the purpose of argument is to achieve hegemony, not find truth. In this chapter we’ll cover the sources we’ve used already, and show that the philosophers of science, whatever they claim about the purpose of argument, actually argue in a highly polemical, persuasive manner, seeking to achieve widespread belief of their chosen position - that is, to achieve hegemony; and further, even those who make strong claims to the value of candour are frequently not candid in their own argument }

      \ No newline at end of file diff --git a/docs/codox/History.html b/docs/codox/History.html index afd3e1c..8362c58 100644 --- a/docs/codox/History.html +++ b/docs/codox/History.html @@ -1,6 +1,6 @@ -History

      History

      +History

      History

      History: Introduction

      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.

      {I ought to add to this chapter to give some overview of what’s happened since 1990, and look at explanations of neural network decisions, because that will help in later parts/chapters of Part One}

      diff --git a/docs/codox/HuxleyKropotkin.html b/docs/codox/HuxleyKropotkin.html new file mode 100644 index 0000000..76be802 --- /dev/null +++ b/docs/codox/HuxleyKropotkin.html @@ -0,0 +1,4 @@ + +The Huxley / Kropotkin debate

      The Huxley / Kropotkin debate

      +

      { TODO: analyse the style and motivations of the Huxley / Kropotkin debate, drawing out the use of polemic and rhetoric to achieve hegemony }

      \ No newline at end of file diff --git a/docs/codox/Implementing.html b/docs/codox/Implementing.html index 8ea5e4d..3e3f9fe 100644 --- a/docs/codox/Implementing.html +++ b/docs/codox/Implementing.html @@ -1,4 +1,4 @@ -Implementing

      Implementing

      +Implementing

      Implementing

      {not yet written. To cover the actual structure of the Clojure Wildwood library, as I do it}

      \ No newline at end of file diff --git a/docs/codox/JAccuse.html b/docs/codox/JAccuse.html new file mode 100644 index 0000000..c260194 --- /dev/null +++ b/docs/codox/JAccuse.html @@ -0,0 +1,6 @@ + +J'Accuse

      J’Accuse

      +

      { Conclusion of the thesis.

      +

      title of this chapter may change, but it needs to be confrontational and polemical.

      +

      Draw together all that has been learned in parts one and two into a single, closely argued polemic, in best academic style. }

      \ No newline at end of file diff --git a/docs/codox/KnacqTools.html b/docs/codox/KnacqTools.html index 87d8478..431b068 100644 --- a/docs/codox/KnacqTools.html +++ b/docs/codox/KnacqTools.html @@ -1,6 +1,6 @@ -KnacqTools

      KnacqTools

      +KnacqTools

      KnacqTools

      Background

      KnacqTools (’Knowledge Acquisition Toolkit") was essentially a productisation of the ideas developed in Arboretum. 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.

      diff --git a/docs/codox/Manifesto.html b/docs/codox/Manifesto.html index 02550c3..9aa9fab 100644 --- a/docs/codox/Manifesto.html +++ b/docs/codox/Manifesto.html @@ -1,6 +1,6 @@ -Manifesto

      Manifesto

      +Manifesto

      Manifesto

      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 Turing’s eponymous test has yet to be passed.

      Clockwork minds

      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 Fireplace’s beautiful clocks, they are precisely inhuman.

      diff --git a/docs/codox/OnHylasAndPhilonus.html b/docs/codox/OnHylasAndPhilonus.html index 3efb113..b26bca7 100644 --- a/docs/codox/OnHylasAndPhilonus.html +++ b/docs/codox/OnHylasAndPhilonus.html @@ -1,6 +1,6 @@ -On the First Dialogue of Hylas and Philonous

      On the First Dialogue of Hylas and Philonous

      +On the First Dialogue of Hylas and Philonous

      On the First Dialogue of Hylas and Philonous

      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 BerkeIey’s First Dialogue of Hylas and Philonous:

      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

      diff --git a/docs/codox/PredicateSubtext.html b/docs/codox/PredicateSubtext.html index b4f9e85..9b5d320 100644 --- a/docs/codox/PredicateSubtext.html +++ b/docs/codox/PredicateSubtext.html @@ -1,6 +1,6 @@ -On the subtext of a predicate

      On the subtext of a predicate

      +On the subtext of a predicate

      On the subtext of a predicate

      Predicates are not atomic. They do not come single spies, but freighted with battalions of inferable subtexts. Suppose Anthony says

      Brutus killed Caesar in Rome during the ides of March
       
      diff --git a/docs/codox/TheProblem.html b/docs/codox/TheProblem.html index 3962a2f..6d365b2 100644 --- a/docs/codox/TheProblem.html +++ b/docs/codox/TheProblem.html @@ -1,6 +1,6 @@ -The Problem

      The Problem

      +The Problem

      The Problem

      In this chapter talk about the perceived need for expert system explanations. Advance:

      the arguments used by expert systems designers, saying why explanations are needed;

      the arguments used by critics which claim that the explanations given are not good enough.

      diff --git a/docs/codox/index.html b/docs/codox/index.html index ae239a3..b3fbab8 100644 --- a/docs/codox/index.html +++ b/docs/codox/index.html @@ -1,3 +1,3 @@ -Wildwood 0.1.0-SNAPSHOT

      Wildwood 0.1.0-SNAPSHOT

      Released under the EPL-2.0 OR GPL-2.0-or-later WITH Classpath-exception-2.0

      A general inference library using a game theoretic inference mechanism.

      Installation

      To install, add the following dependency to your project or build file:

      [wildwood "0.1.0-SNAPSHOT"]

      Topics

      Namespaces

      wildwood.advocate

      An agent capable of playing the explanation game.

      Public variables and functions:

      wildwood.bialowieza

      The second iteration of the core inference engine for Wildwood

      Public variables and functions:

      wildwood.caesar

      A dummy set of advocates and knowledge accessors with knowledge about the death of Julius Caesar.

      wildwood.dengine.engine

      An implementation of the DTree engine adapted to wildwood.schema propositions.

      Public variables and functions:

      wildwood.dengine.engine

      An implementation of the DTree engine adapted to wildwood.schema propositions.

      Public variables and functions:

      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.

      Public variables and functions:

      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.

      \ No newline at end of file +Wildwood 0.1.0-SNAPSHOT

      Wildwood 0.1.0-SNAPSHOT

      Released under the EPL-2.0 OR GPL-2.0-or-later WITH Classpath-exception-2.0

      A general inference library using a game theoretic inference mechanism.

      Installation

      To install, add the following dependency to your project or build file:

      [wildwood "0.1.0-SNAPSHOT"]

      Topics

      Namespaces

      wildwood.advocate

      An agent capable of playing the explanation game.

      Public variables and functions:

      wildwood.bialowieza

      The second iteration of the core inference engine for Wildwood

      Public variables and functions:

      wildwood.caesar

      A dummy set of advocates and knowledge accessors with knowledge about the death of Julius Caesar.

      wildwood.dengine.engine

      An implementation of the DTree engine adapted to wildwood.schema propositions.

      Public variables and functions:

      wildwood.dengine.engine

      An implementation of the DTree engine adapted to wildwood.schema propositions.

      Public variables and functions:

      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.

      Public variables and functions:

      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.

      \ No newline at end of file diff --git a/docs/codox/intro.html b/docs/codox/intro.html index 9a8690d..42ae7d2 100644 --- a/docs/codox/intro.html +++ b/docs/codox/intro.html @@ -1,6 +1,6 @@ -Introduction to Wildwood

      Introduction to Wildwood

      +Introduction to Wildwood

      Introduction to Wildwood

      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, I’ve kept thinking about it; it has cool ideas.

      Explicable inference

      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

      diff --git a/docs/codox/wildwood.advocate.html b/docs/codox/wildwood.advocate.html index 4761bba..b3e6a19 100644 --- a/docs/codox/wildwood.advocate.html +++ b/docs/codox/wildwood.advocate.html @@ -1,6 +1,6 @@ -wildwood.advocate documentation

      wildwood.advocate

      An agent capable of playing the explanation game.

      +wildwood.advocate documentation

      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.

      diff --git a/docs/codox/wildwood.bialowieza.html b/docs/codox/wildwood.bialowieza.html index f19a5d4..1e031bf 100644 --- a/docs/codox/wildwood.bialowieza.html +++ b/docs/codox/wildwood.bialowieza.html @@ -1,6 +1,6 @@ -wildwood.bialowieza documentation

      wildwood.bialowieza

      The second iteration of the core inference engine for Wildwood

      decide

      (decide proposition & agents)

      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 record method the proposition together with the decided truth value (true or false), before returning that value.

      +wildwood.bialowieza documentation

      wildwood.bialowieza

      The second iteration of the core inference engine for Wildwood

      decide

      (decide proposition & agents)

      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 record 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.

      diff --git a/docs/codox/wildwood.caesar.html b/docs/codox/wildwood.caesar.html index be7a70b..1866fbd 100644 --- a/docs/codox/wildwood.caesar.html +++ b/docs/codox/wildwood.caesar.html @@ -1,3 +1,3 @@ -wildwood.caesar documentation

      wildwood.caesar

      A dummy set of advocates and knowledge accessors with knowledge about the death of Julius Caesar.

      april

      The month of April, 44BC, as a range.

      drusila-kb

      Drusila knows that Longus killed Caesar in the forum. She keys it on all three, for efficiency of retrieval.

      faldo-db

      Falco knows that Caesar has been killed, but doesn’t know by whom or when.

      gaius-db

      Gaius knows that Brutus killed Caesar, but believes it happened in April.

      ides-of-march

      16th March, 44BC

      marc-anthony-kb

      Mark Antony knows that Brutus is honourable.

      march

      The month of March, 44BC, as a range.

      \ No newline at end of file +wildwood.caesar documentation

      wildwood.caesar

      A dummy set of advocates and knowledge accessors with knowledge about the death of Julius Caesar.

      april

      The month of April, 44BC, as a range.

      drusila-kb

      Drusila knows that Longus killed Caesar in the forum. She keys it on all three, for efficiency of retrieval.

      faldo-db

      Falco knows that Caesar has been killed, but doesn’t know by whom or when.

      gaius-db

      Gaius knows that Brutus killed Caesar, but believes it happened in April.

      ides-of-march

      16th March, 44BC

      marc-anthony-kb

      Mark Antony knows that Brutus is honourable.

      march

      The month of March, 44BC, as a range.

      \ No newline at end of file diff --git a/docs/codox/wildwood.dengine.engine.html b/docs/codox/wildwood.dengine.engine.html index fc2a9f5..ae4ee31 100644 --- a/docs/codox/wildwood.dengine.engine.html +++ b/docs/codox/wildwood.dengine.engine.html @@ -1,3 +1,3 @@ -wildwood.dengine.engine documentation

      wildwood.dengine.engine

      An implementation of the DTree engine adapted to wildwood.schema propositions.

      decide

      (decide proposition node accessor)

      Decide the truth value of this proposition, using the dtree rooted at this node and knowledge provided by this accessor.

      \ No newline at end of file +wildwood.dengine.engine documentation

      wildwood.dengine.engine

      An implementation of the DTree engine adapted to wildwood.schema propositions.

      decide

      (decide proposition node accessor)

      Decide the truth value of this proposition, using the dtree rooted at this node and knowledge provided by this accessor.

      \ No newline at end of file diff --git a/docs/codox/wildwood.knowledge-accessor.html b/docs/codox/wildwood.knowledge-accessor.html index 0f836e3..3995ba5 100644 --- a/docs/codox/wildwood.knowledge-accessor.html +++ b/docs/codox/wildwood.knowledge-accessor.html @@ -1,3 +1,3 @@ -wildwood.knowledge-accessor documentation

      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.

      Accessor

      protocol

      members

      fetch

      (fetch self id)

      Fetch all the knowledge I have about the object identified by this id value, as a map whose :id key has this id value.

      store

      (store self id proposition)

      Add this proposition to the knowledge I hold about the object identified by this id value.

      \ No newline at end of file +wildwood.knowledge-accessor documentation

      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.

      Accessor

      protocol

      members

      fetch

      (fetch self id)

      Fetch all the knowledge I have about the object identified by this id value, as a map whose :id key has this id value.

      store

      (store self id proposition)

      Add this proposition to the knowledge I hold about the object identified by this id value.

      \ No newline at end of file diff --git a/docs/codox/wildwood.schema.html b/docs/codox/wildwood.schema.html index 5cf126f..d420064 100644 --- a/docs/codox/wildwood.schema.html +++ b/docs/codox/wildwood.schema.html @@ -1,6 +1,6 @@ -wildwood.schema documentation

      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.

      +wildwood.schema documentation

      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.

      argument-keys

      Every argument is a proposition, which additionally has these keys.

      argument?

      (argument? o)

      True if o qualifies as an argument structure.

      An argument structure is a (potentially rich proposition which, in addition, should have values for :confidence and :authority. A value for :data may, and probably will, also be present but is not required.

      consensual-keys

      Every proposition which has these keys, in a given decision process, must have the same semantics and types for their values. The exact representations used for the values of these keys does not matter, it is consensual between all participating advocates in a decision process.

      minimise

      (minimise o)

      Expecting that o is a (potentially rich) proposition, return a map identical to o save that for each value v of key k in o, if v is a map and k is not a member of argument-keys, then the returned map shall substitute the value of (:id v).

      see also wildwood.knowledge-access/maximise.

      proposition?

      (proposition? o)(proposition? o minimised)

      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.