Newsletter #1: October/November 2000 Edition
Home Up Feedback Search

Articles & Tips
Recommended Links


RiverSoftAVG Newsletter #1
October/November 2000

Hello and welcome to the very first edition of the RiverSoftAVG newsletter! Hopefully, this edition will be the start of a semi-regular (monthly or quarterly) newsletter about RiverSoftAVG and its products. At the very least, the newsletter will contain product update and upgrade information and tips.

Note: You received this newsletter because you are an owner of a RiverSoftAVG product. If you received this newsletter by mistake or if for any reason you wish to not receive any future mailings from RiverSoftAVG, just reply to this message informing us so. We apologize for any intrusion.
The Inference Engine Component Suite has been updated! October 6th, RiverSoftAVG posted a bug fix update to the suite upping the version from 1.0 to 1.01. The major "feature" of the update was the elimination of an access violation bug when using the TInferenceEngine and TRule components together. Seems the TInferenceEngine component didn't want to play nice and would free TRule components it didn't even own! (such as when you drop a TRule component down at design-time). If you don't already have it, hurry to the web site at to download the update. The complete version history is available at
All good things must come to an end. This Halloween, October 31st, marks the end of the 15% Introductory price on the Inference Engine Component Suite. If you were thinking of recommending the suite to a friend or of buying another license for your company, you better hurry to lock in this great deal.

Here is a tip for Inference Engine Component Suite owners. Use the DuplicateConstructs property of the TInferenceEngine component to quickly and easily add "personality" to your expert systems.

The DuplicateConstructs property controls the behavior of the inference engine when duplicately named constructs (such as fact templates or rules) are added. By setting the propery to dcOverwrite, the engine will overwrite, or replace, the currently defined construct when a new construct with the same name is added. Constructs with different names are not affected and will be added normally, and, of course, constructs already IN the engine with different names will not be deleted.

You can exploit this feature to create personalities for your expert system. Basically, you have different files, one for each personality, containing equivalently named rules. With DuplicateConstructs set to dcOverwrite, you can change the "personality" of your expert system by loading the file using the LoadFromFile method.

You may not know it but RiverSoftAVG offers a free download with source code of an A* Pathing component and example program.

What is A* (pronounced "A Star") you might ask? A* is a search algorithm which searches from some initial state to a goal state. It returns the optimum path (list of intermediate states) from the initial state to the goal state. The "trick", if you will, to A* is that it finds the optimum path by pruning the search tree (unlike a breadth first search) using an admissible heuristic; an admissible heuristic never overestimates the distance to the goal state. The pruning of the search tree allows the A* algorithm to be incredibly fast. The 2D path example program illustrates using the component to find an optimum path on a 2D map. The source code can easily be modified for other search problems.

This component is an older version of our current internal pathing component. It is slow and the code needs brushing up, but you are welcome to use it and modify it. You can find the A* Path planner at
Send mail to with questions or comments about this web site.
Copyright 2002-2010 RiverSoftAVG
Last modified: September 20, 2010