Newsletter #11: Jan/Feb/Mar 2003 Edition
Home Up Feedback Search

Articles & Tips
Recommended Links


RiverSoftAVG Newsletter #11
Jan/Feb/Mar 2003

Hello and welcome to Newsletter #11!  We've managed to just release this newsletter in time.  Hopefully, it is worth the wait.  In this edition, we talk about the results of the survey we conducted last time.  As well, we have a couple tips for IECS owners and some other miscellaneous news.

A reminder, this newsletter and all previous ones are available for download from the web site at


    Article: Results of RiverSoftAVG Survey
    Request: Please update your email addresses with us!
    News: Object Inspector Component Beta Coming up
    Tip: Using Parse command to dynamically build and execute statements
    Download: HelpScribble Apprentice Updated
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.

Article: Results of RiverSoftAVG Survey

Last edition, we included a survey asking you, our customers, about our support, our products, and where you would like us to go next.  Unfortunately, survey participation was low, and the results cannot be considered statistically significant.  However, we did get some good responses back and wish to share them with you.
As far as our support, in general, people were satisified.  Responses rated support as good to excellent and our help files as good.  The preferred support method is email, which is good since that is the method we prefer :-)  The newsletters were rated as good.  Of course, since people had to read the email to see and answer the survey, this might not have been a good question :-)  From the survey, we received the message that we are in general doing a good job.  Our help files could be improved, but unfortunately no concrete suggestions were given.  If you have ideas for improving the help files, please email us.  Also, noone had any requests for tips and tricks for the IECS, so we must have designed the IECS to be really easy to understand ;-)
As far as new development, we were encouraged to develop new components.  Most people seemed to want to see Neural Network and then Genetic Algorithm components.  The least popular new component ideas were Finite State Machines, Path Planning, and Flocking (perhaps because we offer 2 of the above free already).  As far as compatibility with other development environments (Kylix, .NET), the results were mixed.  For some people, Kylix support was very important and .NET support was not important at all.  For others, it was exactly the opposite.  C++Builder support was least important to all respondents. 
Finally, we were definitely encouraged to keep developing the IECS.  The fuzzy logic and Expert System Wizard in the IECS got good marks while the DB support was rated fair.  Interestingly, though, improved DB support was listed as not important.  As far as new features, you told us that the most important new features should be an Interactive Expert System Debugger and, following that, defmodule support.  Other important new features should be an XML format (though that was a divisive feature, some wanted it very much, some were lukewarm to the idea), improved CLIPS support, and an Expert System Application Wizard.  The least important new features should be more functions, improved DB support and Editor frames.
Again, the desire for Kylix/C++Builder/.NET compatibility was mixed, with C++Builder support a distant third.  Happily, all respondents said they would recommend the IECS suite.  Though, since the number of respondents was not statistically significant we will have to keep trying harder.
So what does the survey mean to us?  Unfortunately, due to the limited number of respondents, there was no clear overwhelming message.  Also, this survey doesn't give us information about what people who are not customers want.  We want to balance what our customers want, what can attract new customers, and what represents the best return on development effort investment.  We are still working out our strategy and no decisions are final at this time.  As we investigate the effort further, the balance will be changing.
There were two messages we did receive: develop new AI components and improve the IECS.  New AI components that we should concentrate on are neural networks and genetic algorithms.  The others have a lot less priority unless they can be added with little effort.  For IECS v3.0, we should definitely not bother with editor frames, more functions (except by accretion :-) ) and more DB support.  Favorite features were for a debugger and then defmodule support.  As far as environment compatibility, we are going to take a wait and see attitude.  We'll investigate the difficulties of porting with Kylix and .NET.  .NET support is particularly problematical considering it is not out yet and all the unsafe warnings the IECS gets about pointers in Delphi 7.
We hope this article was useful to you.  We would dearly love to hear any comments or suggestions.  Please send any email to
Request: Please update your email addresses with us!
Our customer email database is slowly getting out of date.  We receive some bounce-backs on these newsletters.  We want to encourage our customers to update their email information with us.  Hopefully those with bad email addresses will read our newsletter on the web.  Please send us your information at

News: Object Inspector Component Beta Coming up
As part of developing the freeware HelpScribble Apprentice application (described below in the downloads section), we developed an Object Inspector component.  We decided to clean up the code, make it more flexible, add some help, and sell it to the public.  We plan to sell the component with source code only, for under $50 (Delphi 5, 6, 7).  We hope to have it ready for testing before the next newsletter, so those who wish to beta test the component may send us an email at
Our Object Inspector has the following features:
bullet100% Source Code
bulletInspect One Object or Multiple Objects at Once (Like Delphi)
bulletComes with TBD property editors
bulletModify property editors at design-time and run-time
bulletUse an Inplace Collection Editor (Items are embedded in the object inspector like regular TPersistent properties) and Regular Collection Editor
bulletControl each property individually for visibility, read-only, font, hint, and name alias
bulletAdd "Calculated" properties (e.g., fake properties) at design-time or run-time
bulletIncludes Hierarchical TValueListEditor-like component (display TStrings, where each name=value item is a row in the object inspector and where the name may be a path, e.g., "Font.Name=Courier"


Tip: Using Parse function to dynamically build and execute statements
The Inference Engine Component Suite (IECS) v2.0 added the parse function.  The parse function allows your expert system to parse any string as easily as calling the parsing code in the TInferenceEngine component.  The parse function expands the possibilities of your expert systems to dynamically build and execute statements, including creating types (deftype), fact templates (deftemplate) and rules (defrule).  The parse function returns TRUE if string was successfully parsed and executed, FALSE otherwise.
To create a rule dynamically, build a string and pass it into the parse command:
(parse "(defrule arule => (printout t Hello there))")
There is one wrinkle with using the parse function though.  What happens if you need double-quotes in your string?  If you type into the console, you will get a Too many arguments error:
(parse "(defrule arule => (printout t "Hello there"))")
The parse function expects one, and only one, string.  If you wish double-quotes in your string, you need to put the escape character, backslash (\), before the quotes:
(parse "(defrule arule => (printout t \"Hello there\"))")
Download: HelpScribble Apprentice Updated
HelpScribble Apprentice, our freeware utility application for HelpScribble users, has been updated since our last newsletter.  HelpScribble, by Jan Goyvaerts (, updated their file format in their latest version by adding HTML preference information, which broke HelpScribble Apprentice.  HelpScribble Apprentice has been updated to read both HelpScribble v6.x and v7.x files.  For those who don't know about this freeware program, HelpScribble Apprentice is an adjunct to HelpScribble and provides the following features:

- Unique Topic Editor abilities (edit multiple topics at once, sort lines of text, Object Inspector-like view of help topic footnotes, smart copy-and-paste of multiple topics)

- Unique Table of Contents Editor abilities (edit multiple topics at once, delete parent topics AND their children with one operation)

- Sort Topic Text Wizard (Automatically sorts lines in selected topics after certain keywords... very useful for sorting the "See Also" topics that HelpScribble creates for pascal files)

- Class Hierarchy Wizard (Automatically adds hierarchy topic to selected Delphi Class/Interface topics)
HelpScribble Apprentice is provided as a free utility. No warranties or guarantees are implied. Use at your own risk. REQUIRES HelpScribble for generating help files.  HelpScribble Apprentice may be downloaded from the web site.
Send mail to with questions or comments about this web site.
Copyright 2002-2010 RiverSoftAVG
Last modified: September 20, 2010