As of 6/14/2001
API Changes
Add (Models), Save, Load, FileName, FileFormat have changed. Previously, the Name of a model was by default the same as its filename. Now a model's Name and FileName are unrelated. For examples see Loading Models, etc.: an Overview
Additions to the API
The events PropertyTypePutDescription and PropertyTypePutEnumValues have been added to allow tracking of changes to PropertyType defintions.
As of 8/24/2000
API Changes
The event EngineInferenceReady(bReady) has been replaced by two events: EngineInferenceReady and EngineInferenceNotReady.
The Engine's RecommendationsType property must be explicated set to get troubleshooting or other non-default recommendations methods.
Additions to the API
When a change to the Evidence or Assignment collections is immaterial (e.g. setting a node/state pair that is already there), no event will fire.
Use of SharedDomains may be phased out in the future. Its use is not recommended.
When an item is removed from the ModelNodes. Models, PropertyTypes, or States collections, it becomes a "zombie". With one exception, if you try to use a zombie, you'll get an error message. The one exception is that the ExistingKey method can test if a zombie is a member of the collection.
Calling a model's Save may make it not ready for inference. The next time inference is used, however, it will automatically be made ready.
Setting the value of a Properties(index) to Nothing, removes the property from node or model.
Previously, when a collection was indexed with an object, only the object's name matters. Now, the collection also tests that the object really is a member of the collection.
12/14/98 - version 1.0.0.5
Here are changes most likely to require changes in code that uses MSBN3:
The names of several parameters have been changed. This won't effect code that uses positional parameterization.
Additions to the API
EngineInferenceReady
event -- tells when the readiness of the inference engine changes
12/03/98 - version 1.0.0.4
Here are changes most likely to require changes in code that uses MSBN3:
ChildNodes collection - a
property of nodes
The Properties
collection has a new Owner
property that tells if it is owned by the Model
or by a Node. If it is owned by a
node, it tells which one.
The States
collection has a new Owner
property that tells if it is owned by the SharedDomains
collection or by a Node. If it is
owned by a node, it tells which one.
Repair- In
troubleshooting networks, this method says that you are repairing
something, not just observing that it is working.
New Events
Fewer events fire during big changes
When you create a model via load or copy only one event will fire: Reset (Model). Similarly when a Model (or Dist) object is removed the object will get a Remove (Model) (or Remove (Dist)) event telling it that it is about to go away.
(Previously, when a model was created or removed, many events would fire as each little piece of the model was created or destroyed.)
Blocking distributions are automatically removed
When a change, such as removing all states from a node, conflicts with a distribution, the distribution is automatically removed. The removal of distributions can be monitored with the NodeRemoveDist event.
(Previously, conflicts between editing and distributions resulted in a general error message.)
09/09/98
Here are changes most likely to require minor changes in code that uses MSBN3:
Nodes now may or may not have a distribution. If a node does not have a distribution, the value of its Dist property will be Nothing.
To add a distribution to a node use the AddDist method.
To test of a node has a distribution, use this expression:
Not aNode.Dist Is Nothing
To remove a distribution from a node, use RemoveDist or
Set aNode.Dist = Nothing
The "trick" that allows a Visual Basic program to track events from an indefinite number models has been improved and generalized. It now also allows Visual Basic to track events from an indefinite number of distribution objects. The properties and event used are:
EventModel - this property of the MSBN object tells which Model object to initially watch. It may have a value of Nothing.
EventDist - this property of a Model object tells which Dist to initially watch. It may have a value of Nothing.
SetEventModel - the MSBN object fires this event to tell you to start watching a different Model. The value of the model may be Nothing.
SetEventDist - a Model object fires this event to tell you to start watching a different Dist. The value of the Dist may be Nothing.
If you watch the Model and Dist objects that these properties and events specify you will see every model-level and dist-level event that is fired.
Distributions can be tracked by watching these model-level events:
and these distribution-level events:
Reset - major change, requiring a scan
SetValue - a parameter value changes
NodeSetName - the name of the distribution's node changes
NodeStateSetName - the name of a state changes in the node
ParentNodeSetName - the name of a parent changes
ParentNodeStateSetName - the name of a state changes in a parent
SetUsingDefault - a paramgroup of a Sparse distribution starts/ends using the default
SetDefault - a default parameter changes
Here are changes most likely to require minor changes in code that uses MSBN3:
Now optionally take a filename argument.
State events
Minimum distribution changes
When a node is remove or just remove from a parent collection, one of its states can be specified