Finished - for now - the chapter on Arboretum

This commit is contained in:
Simon Brooke 2020-04-23 15:27:01 +01:00
parent 0dabc8da0c
commit c6f12b4d4e
No known key found for this signature in database
GPG key ID: A7A4F18D1D4DF987
32 changed files with 705 additions and 98 deletions

View file

@ -100,11 +100,7 @@ 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 +
![Simplest possible DTree](../img/simplest-possible-dtree.svg)
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
@ -113,17 +109,7 @@ 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 -
![Example DTree](../img/example-dtree.svg)
fig 4: example rule, showing syntax The rule would read: "(rootnode) is
false unless (first conjunct) is true and (second conjunct) is true, in
@ -137,7 +123,7 @@ any way that affects the underlying ideas.
A feature has the properties:
(methods DTreeRootnode default activeFlg)
<methods DTreeRootnode default activeFlg>
where methods is the list of
methods that the feature applies to see if it holds of the given object,
@ -156,7 +142,7 @@ 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, colour, children, parent>
Feature points to a feature of the
system, colour is either Yes or No, children point to successor nodes of
@ -244,6 +230,8 @@ 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.
This is described in more detail, with worked examples, below.
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
@ -272,31 +260,11 @@ 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 +
&gt;26 Yeeks Killed husband - Dead - bereaved -
-
in prison - Levering with
in prison - Living Yith
Partner -
![DTree for 'Entitled to Widows' Allowance](../img/dtree-widows-allowance.svg)
fig 1: Rule for "Entitled to Widow's Allowance"
DTree for Living with Partner
Living with Partner -
Remarried +
Cohabiting +
![DTree for Living with Partner](../img/dtree-live-with-partner.svg)
fig 2: rule for "Living with Partner"
@ -374,9 +342,95 @@ that she had not, in fact remarried.
## Explanation: a discussion
{\*\* Write something (preferably rather a lot) here \*\*}
### Writing explanation fragments
This ability to abstract relevant information from an inference engine's
Arboretum's explanation fragments are canned text written by the knowledge
engineer in constructing the rule system. However, because of the way they
are concatenated, they are extremely easy to write. Each is basically just
a declarative sentence saying, in natural language
<name of feature at root node> is <colour of this node> because
<name of feature at this node> is true and none of
<names of features of children of this node> are true.
Thus, for the `Remarried -` node referenced above, the automatically
generated canned text - had we automatically generated the text, which
we did not - would have been
> Living with partner is true because remarried is true.
which would probably have been good enough. However, because texts are
concatenated from the sticking nodes of the successive trees, we know that
the previous sentence will have ended with some natural language expression
of the proposition
> Living with partner is true.
Thus, provided we know that the tree for which we are writing the node texts
is not the top level tree in the decision system, we can avoid rewriting this
proposition. So the declarative sentence becomes simply
<name of feature at this node> is true and none of
<names of features of children of this node> are true.
But in this instance there are no children of the node `Remarried +`, so this
reduces to
<name of feature at this node> is true
The actual, manually written text used in the system, as stated above, was
> We understand that you have remarried.
As you can see, this sentence is a polite and understandable representation
of the proposition
Remarried is true
Thus, the claim I am making here - but mildly, it's not a strong claim - is
that even without hand written canned texts, the conceptual
design of the DTree engine would allow the automatic construction
of perfectly usable explanations.
Arboretum was the first deliverable system from the Alvey DHSS Large
Demonstrator project actually to be delivered, and, I think, of the systems
the project did deliver, the most polished and most functional, if not the
most ambitious. However, it was not intended that the systems built by the
project would actually be put into front line use, and indeed none ever were.
Nevertheless, in designing the system, we took very seriously the idea of how
an adjudication officer would use such a system in the real world. It's
important for the officer to explain clearly to a claimant why a claim has
been disallowed, in language the claimant will understand. Thus, manually
written fragments made for much less stilted English, and produced a
plausible verisimilitude of an entirely personal letter.
As one of the problems that the DHSS was experiencing at the time was appeals
made because the claimant had not understood the reasons for a decision not
to award benefit, these very simple, clear, apparently-personal letters seemed
to us a significant feature in the potential usability of the system.
### Relevance filtering
This brings us to the question of how Arboretum managed relevance filtering.
The answer, as the intelligent reader will already have spotted, is that we
did not. Relevance fell fortuitously out of the process of evaluation. The
deepest sticking node on each tree on the path to the final decision
represents the 'interesting' reason to refuse, within the context of that
tree; the concatenation of the 'interesting' reason to refuse from the
successive trees along the path constructed the argument from the general
to the particular which is precisely a good explanation of a decision.
What's interesting about this was that in our later experience with
[KnacqTools](KnacqTools.html), which was essentially a commercialised
reimplementation of Arboretum on less illustrious hardware, we found that
this explanation algorithm, designed to assist adjudication officers, provided
explanations which were welcomed as clear and understandable in domains as
diverse as industrial process control and the diagnosis of fish diseases.
## Conclusion
Arboretum's ability to abstract relevant information from an inference engine's
backtrace represents a partial solution to the problem described in the
preceding chapters.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,119 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="100mm"
height="37mm"
viewBox="0 0 100 37"
version="1.1"
id="svg8"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
sodipodi:docname="dtree-live-with-partner.svg">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.98994949"
inkscape:cx="245.35971"
inkscape:cy="188.34112"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="true"
showguides="false"
inkscape:window-width="1920"
inkscape:window-height="1016"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1"
height="75mm">
<inkscape:grid
type="xygrid"
id="grid815" />
</sodipodi:namedview>
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-260)">
<g
id="g1088"
transform="translate(-10.583333,37.041665)">
<text
id="text1050"
y="230.85417"
x="40.849186"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333311px;line-height:125%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="stroke-width:0.26458332px"
y="230.85417"
x="40.849186"
id="tspan1048"
sodipodi:role="line">Living with Partner -</tspan></text>
<g
id="g1072">
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333311px;line-height:125%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="18.520834"
y="255.08525"
id="text1054"><tspan
sodipodi:role="line"
id="tspan1052"
x="18.520834"
y="255.08525"
style="stroke-width:0.26458332px">Remarried +</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333311px;line-height:125%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="76.729164"
y="254.66667"
id="text1058"><tspan
sodipodi:role="line"
id="tspan1056"
x="76.729164"
y="254.66667"
style="stroke-width:0.26458332px">Cohabiting +</tspan></text>
</g>
<flowRoot
transform="matrix(0.26458333,0,0,0.26458333,0,222)"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16px;line-height:125%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="flowRoot1060"
xml:space="preserve"><flowRegion
id="flowRegion1062"><rect
y="63.464569"
x="-50"
height="130"
width="480"
id="rect1064" /></flowRegion><flowPara
id="flowPara1066"></flowPara></flowRoot> <path
inkscape:connector-curvature="0"
id="path1074"
d="M 29.104166,249.375 58.208333,233.5 84.666666,249.375"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.1 KiB

View file

@ -0,0 +1,178 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="210mm"
height="75mm"
viewBox="0 0 210 75"
version="1.1"
id="svg8"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
sodipodi:docname="dtree-widows-allowance.svg">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.98994949"
inkscape:cx="245.35971"
inkscape:cy="188.34112"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="true"
showguides="false"
inkscape:window-width="1920"
inkscape:window-height="1016"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1"
height="75mm">
<inkscape:grid
type="xygrid"
id="grid815" />
</sodipodi:namedview>
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-222)">
<g
id="g1027"
transform="translate(29.104168,26.458337)">
<text
id="text950"
y="204.39583"
x="44.544125"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333311px;line-height:125%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="stroke-width:0.26458332px"
y="204.39583"
x="44.544125"
id="tspan948"
sodipodi:role="line">Entitled to Widows' Allowance -</tspan></text>
<text
id="text954"
y="232.38637"
x="32.330917"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333311px;line-height:125%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="stroke-width:0.26458332px"
y="232.38637"
x="32.330917"
id="tspan952"
sodipodi:role="line">Satisfies conditions for Widows' Allowance +</tspan></text>
<g
transform="translate(-18.708867)"
id="g994">
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333311px;line-height:125%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="7.9375"
y="259.95834"
id="text958"><tspan
sodipodi:role="line"
id="tspan956"
x="7.9375"
y="259.95834"
style="stroke-width:0.26458332px">&gt; 26 weeks bereaved -</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333311px;line-height:125%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="55.5625"
y="259.95834"
id="text962"><tspan
sodipodi:role="line"
id="tspan960"
x="55.5625"
y="259.95834"
style="stroke-width:0.26458332px">Killed husband -</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333311px;line-height:125%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="92.604164"
y="259.95834"
id="text966"><tspan
sodipodi:role="line"
id="tspan964"
x="92.604164"
y="259.95834"
style="stroke-width:0.26458332px">Dead -</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333311px;line-height:125%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="113.77083"
y="259.95834"
id="text970"><tspan
sodipodi:role="line"
id="tspan968"
x="113.77083"
y="259.95834"
style="stroke-width:0.26458332px">In prison -</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333311px;line-height:125%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="140.22917"
y="259.95834"
id="text974"><tspan
sodipodi:role="line"
id="tspan972"
x="140.22917"
y="259.95834"
style="stroke-width:0.26458332px">Living with partner -</tspan></text>
</g>
<flowRoot
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16px;line-height:125%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="flowRoot976"
xml:space="preserve"><flowRegion
id="flowRegion978"><rect
y="196.8504"
x="-50"
height="120"
width="750"
id="rect980" /></flowRegion><flowPara
id="flowPara982"></flowPara></flowRoot> <path
inkscape:connector-curvature="0"
id="path996"
d="m 74.083332,207.04167 v 21.16666 0"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path998"
d="M 13.229167,254.66667 74.083332,236.14583 55.562499,254.66667"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path1000"
d="M 79.374999,254.66667 74.083332,236.14583 103.1875,254.66667"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path1002"
d="M 134.9375,254.66667 74.083332,236.14583"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.8 KiB

145
docs/img/example-dtree.svg Normal file
View file

@ -0,0 +1,145 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="105mm"
height="74mm"
viewBox="0 0 105 74"
version="1.1"
id="svg8"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
sodipodi:docname="example-dtree.svg">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.979899"
inkscape:cx="118.47148"
inkscape:cy="131.89358"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="true"
showguides="false"
inkscape:window-width="1920"
inkscape:window-height="1016"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1">
<inkscape:grid
type="xygrid"
id="grid815" />
</sodipodi:namedview>
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-223)">
<g
id="g927"
transform="matrix(1.2462219,0,0,1.2462219,7.01436,-74.917878)">
<text
id="text867"
y="249.75331"
x="27.564287"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.34433794px;line-height:125%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.31353167px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="stroke-width:0.31353167px"
y="249.75331"
x="27.564287"
id="tspan865"
sodipodi:role="line">Root Node -</tspan></text>
<text
id="text871"
y="261.85367"
x="26.274237"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.34433794px;line-height:125%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.31353167px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="stroke-width:0.31353167px"
y="261.85367"
x="26.274237"
id="tspan869"
sodipodi:role="line">1st Conjunct -</tspan></text>
<text
id="text875"
y="274.61542"
x="25.344254"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.34433794px;line-height:125%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.31353167px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="stroke-width:0.31353167px"
y="274.61542"
x="25.344254"
id="tspan873"
sodipodi:role="line">2nd Conjunct +</tspan></text>
<g
transform="matrix(1.1850017,0,0,1.1850017,-8.1228039,-53.594751)"
id="g889">
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;line-height:125%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="7.9375"
y="287.73959"
id="text879"><tspan
sodipodi:role="line"
id="tspan877"
x="7.9375"
y="287.73959"
style="stroke-width:0.26458332px">1st Disjunct -</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;line-height:125%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="50.270832"
y="287.73959"
id="text883"><tspan
sodipodi:role="line"
id="tspan881"
x="50.270832"
y="287.73959"
style="stroke-width:0.26458332px">2nd Disjunct -</tspan></text>
</g>
<path
inkscape:connector-curvature="0"
id="path891"
d="m 35.771631,251.32098 v 7.83829"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.31353167px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path893"
d="m 35.771631,263.86225 v 7.8383"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.31353167px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path895"
d="m 35.771631,276.40352 -25.082534,7.83829"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.31353167px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path895-4"
d="m 35.771631,276.40352 25.082536,7.83829"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.31353167px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.6 KiB

View file

@ -0,0 +1,89 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="52mm"
height="37mm"
viewBox="0 0 52 37"
version="1.1"
id="svg8"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
sodipodi:docname="simplest-possible-dtree.svg">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.979899"
inkscape:cx="169.57926"
inkscape:cy="113.35562"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="true"
showguides="false"
inkscape:window-width="1920"
inkscape:window-height="1016"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1">
<inkscape:grid
type="xygrid"
id="grid815" />
</sodipodi:namedview>
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-260)">
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;line-height:125%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="13.28808"
y="269.21875"
id="text819"><tspan
sodipodi:role="line"
id="tspan817"
x="13.28808"
y="269.21875"
style="font-size:4.23333311px;stroke-width:0.26458332px">Hypothesis -</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;line-height:125%;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="14.358816"
y="287.48578"
id="text823"><tspan
sodipodi:role="line"
id="tspan821"
x="14.358816"
y="287.48578"
style="font-size:4.23333311px;stroke-width:0.26458332px">Condition +</tspan></text>
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 25.135417,270.54167 v 13.22917"
id="path825"
inkscape:connector-curvature="0" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB