SOME COMMON NET MANIPULATIONS
Here are some common manipulations in an inference net that are more than
trivial addition and deletion. Some of them might be offered as direct
operations in future versions of Istar.
WHAT:
a d a d
\ / \ /
b -- X -- e becomes b -- X1 ----- X2 -- e
/ \ / \
c f c f
a - X, b - X, c - X
X - d, X - e, X - f
becomes
a - X1, b - X1, c - X1
X1 - X2
X2 - d, X2 - e, X2 - f
HOW:
Create X2
Link X1 -- X2
Redirect all consequent links of X1 (from d,e,f) into X2
Rename X1 as needed
(Sometimes it is more convenient to create X1 and redirect a,b,c
links.)
Weights: With bayesians the second will behave differently because
the effect of a,b,c on X2 and hence on d,e,f will now be filtered by
the extra link X1 - X2. You will have to alter weights to suit. But
presumably you wanted to change the behaviour anyway and, for
instance, have extra links antecedent to X2. So the pattern of
weights would have to be reconsidered anyway.
WHY:
Because you realise that what you thought was a single concept is in
fact two.
WHAT:
a d or: a - X, b - X, c - X,
\ / X - d, X - e, X - f
b -- X -- e
/ \
c f
becomes:
a - X1, b - X1, c - X1
X1 - d, X1 - e, X1 - f
a - X2, b - X2, c - X2
X2 - d, X2 - e, X2 - f
(That is, everything that connects to X1 is also made to connect to X2 in
the same way. Difficult to draw with character graphics).
HOW:
Create X2
Link a,b,c -- X2
Link X2 -- d,e,f
Rename X1 as needed
Weights: As for serial split.
Merging nodes is not so simple.
# To merge any node X into another Y, that both exist, simply redirect all
links that enter X as antecedent and over to Y, and then all those that
leave it as consequent.
# But this simple method is not always appropriate, as here, where we have
the pattern:
W --------------- Y
\ /
\----- X -----/
First, it would create two parallel links between W and Y - the direct link
(WY), the one that was WX and now becomes WY - and this would probably
create too strong an effect. (If you want to check this out, set up a wee
piece of KB like the above below your main one, then run it with W as -100
and 100, and note the limits.
# Second, it would create an error as we tried to make the one that was XY
into YY. Inference (and precedence) relationships cannot form a cycle
(just as you find in a spreadsheet); they are part of a Directed Acyclic
Graph (DAG). In this case, trying to connect an item to itself, that
is YY, is a (tiny) cycle and you would get an error. (Try drawing a link
from any of your items back into itself: start drawing the link an release
it over itself, and you will see.) But the real problem lies in longer
cycles, say from A to B to C to D to E and back to A, which are not always
easy to detect visually in a large and complex KB.
To be completed ...
Copyright (c) Andrew
Basden 1997.