This is an introduction to RoBot Explorer, a work in progress. It contains a number of features not fully implemented, but it still is very functional to the intent of its design. I have chosen to circulate a hard copy with version 1.3 release of the Java JDK/JRE so that there is no issue of compatibility, and further, I offer a simple batch file to call it reliably using that same version. In all likelihood you could drag the Jar file to your desktop and run it in the conventional manner. RoBot Explorer opens on the splash screen with my copyright notice inside a nested tab panel. The other tabs of this same tab panel relate on a one-to-one basis with informational screens to describe the intent and operation of the outermost tab panel, by identical tab names. Quick Start: Select the "Mission" tab and select the "Link File" button within that pane; when the file dialog window opens for a file selection, traverse to the original disk/directory containing the Jar and obtain my sample file: short web list.htm finally, press the elongated "Start" button at the bottom of the pane. By design, the application will jump to the "Query - Response" tab and begin displaying results of searching the URLs found in this link file. You may at any time press the "Stop" button within this tab panel, however, this does not end the operation in and of itself as legacy data continues to arrive. Once old requests have been satisfied, the application will settle down into an idle state. Effect: The "Query - Response" lower display of two tree panels offers full links that have been visited in the left tree pane; and, to its right, qualified links from that same list that meet the logical constraints in the Query pane above these Responses. You may select any of these links in either tree pane, and by double clicking open that link in your system's browser. Purpose: As a quick start, you have just asked RoBot Explorer to search all addresses found in a file. Its search criteria was to match the text found with two words: "java" and "program." If any page visited contains both these words, then there is a successful match and that page becomes qualified. Variations: You may choose other search criteria by virtue of your own logical statement provided in the Query panel of the "Query - Response" tab pane. This must be done prior to pressing the "Start" button described above. Other functionality is currently in flux. This RoBot will also search news servers to match to the same criteria, but currently does not reliably display results (the engine will run however). Other constraints as to mouse clicks or domains visited are not implemented in the logic at this time. The Design: Currently. the design is invested in more than 30 proprietary classes. Many of these attend the Client nature of the application and include features such as thread and connection pooling, caching, asynchronous data arrival through event handling, and display graphics with controls. There is also data base connectivity that has been disabled at this time. The inference engine was built through considerable usage of OOP techniques such that there are many extensions of classes each with a layer of abstraction building out from a simple boolean test all performed through recursive descent parsing. In the next design cycle, this will be changed to a Java lex/yacc generated parser. At this time I have left on the debug messages so that you can observe some of the internal checkpoints illustrating the speed of operation. Typically through a Cable Modem, I enjoy downloads parsed in excess of 50KBytes per second. Through the usage of profiling, the original performance was improved to this, or about 100 fold over the first pass design within one hour of applying the profiler. Future Features: RoBot Explorer will become "Fuzzified" with the application of a Java lex/yacc parser so that qualification becomes more intelligent with page ratings and machine dialog with the operator for training. It will also become far more intelligent when it comes to parsing the essential predicates and essential objects found in the free form text found in any random page. Please note that terms "essential predicate/object" are those employed by grammarians historically and I use them appropriately to the nature of language. Past parsers that I have designed for myself in Prolog and C++ have been very robust in the face of convoluted sentence constructions. Richard Clark r-w-clark@attbi.com http://home.attbi.com/~r-w-clark/