Finished - for now - the chapter on Arboretum
This commit is contained in:
parent
0dabc8da0c
commit
c6f12b4d4e
140
doc/Arboretum.md
140
doc/Arboretum.md
|
@ -100,11 +100,7 @@ downwards, and, when connecting different colours, as meaning 'unless'.
|
||||||
Thus the most basic structure is "hypothesis is false unless condition
|
Thus the most basic structure is "hypothesis is false unless condition
|
||||||
is true":
|
is true":
|
||||||
|
|
||||||
Basic DTree
|

|
||||||
|
|
||||||
Hypothesis -
|
|
||||||
|
|
||||||
Condition +
|
|
||||||
|
|
||||||
fig 3: simplest possible rule Conjunctions are represented by columns of
|
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
|
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
|
fashion desired, although we consider it good practise to keep
|
||||||
individual rule structures small. This is shown in the figure below:
|
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
|
fig 4: example rule, showing syntax The rule would read: "(rootnode) is
|
||||||
false unless (first conjunct) is true and (second conjunct) is true, in
|
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:
|
A feature has the properties:
|
||||||
|
|
||||||
(methods DTreeRootnode default activeFlg)
|
<methods DTreeRootnode default activeFlg>
|
||||||
|
|
||||||
where methods is the list of
|
where methods is the list of
|
||||||
methods that the feature applies to see if it holds of the given object,
|
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:
|
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
|
Feature points to a feature of the
|
||||||
system, colour is either Yes or No, children point to successor nodes of
|
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
|
structure of the system itself then ensured that in the final text, the
|
||||||
fragment would follow sensibly from the preceding one.
|
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
|
We discussed and experimented with several algorithms for the recovery
|
||||||
of explanations. The one we used worked as follows: when a search
|
of explanations. The one we used worked as follows: when a search
|
||||||
resulted in a 'no' decision (ineligible for a benefit) then we
|
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
|
system, which is yet large enough to give some flavour, let us assume
|
||||||
our knowledge base contains the following rules:
|
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"
|
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"
|
fig 2: rule for "Living with Partner"
|
||||||
|
|
||||||
|
@ -374,15 +342,101 @@ that she had not, in fact remarried.
|
||||||
|
|
||||||
## Explanation: a discussion
|
## 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
|
backtrace represents a partial solution to the problem described in the
|
||||||
preceding chapters.
|
preceding chapters.
|
||||||
|
|
||||||
## References:
|
## References:
|
||||||
|
|
||||||
3\. Xerox Corporation: InterLisp Reference Manual ( Xerox Corporation,
|
3\. Xerox Corporation: InterLisp Reference Manual (Xerox Corporation,
|
||||||
1985)
|
1985)
|
||||||
|
|
||||||
4\. Daniel Bobrow & Mark Stefik: The LOOPS Manual (Xerox Corporation,
|
4\. Daniel Bobrow & Mark Stefik: The LOOPS Manual (Xerox Corporation,
|
||||||
|
|
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
3
docs/codox/wildwood.dengine.node.html
Normal file
3
docs/codox/wildwood.dengine.node.html
Normal file
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
119
docs/img/dtree-live-with-partner.svg
Normal file
119
docs/img/dtree-live-with-partner.svg
Normal 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 |
178
docs/img/dtree-widows-allowance.svg
Normal file
178
docs/img/dtree-widows-allowance.svg
Normal 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">> 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
145
docs/img/example-dtree.svg
Normal 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 |
89
docs/img/simplest-possible-dtree.svg
Normal file
89
docs/img/simplest-possible-dtree.svg
Normal 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 |
Loading…
Reference in a new issue