We have a definition for Metastasis and we have a real tumour, with its location, size and other attributes.
How do we use the definition of Metastasis on the tumour?
1) We could copy all of the attributes that were needed in the definition, but it is hard to know what will be required, particularly if the topology changes or we are taken to a nested definition (like Malignant for the secondary tumour).
2) We could set the object in the definition to be the real object the definition may use other definitions - we may encounter two simultaneous uses of the same definition.
We were already handling iterative use of user defined functions like NFactorial, so method 2 should be the way to go. But what actually happens?
The node in the definition has its own links, and has access to the links around the target object. Here, the Location in the definition will assume the location of the target, and every subattribute.
We could have a statement
The tumour has metastasised to the kidneys and liver.
We would know what that meant they would be the new body parts in the definition. We could have a question.
Has the tumour metastasised to the kidney?
If we got an affirmative that cancerous cells had spread to the kidney, the ToSpread would emit a True, which would provide a True out of the ToMetastasise through the AND, and the question would be answered in the affirmative.
This will take some managing by the computer it shouldnt be a surprise that people find it hard to have more than six pieces of information in play at once when there are multiple calls to many layers.