Gary Miller wrote: > A good architecture should allow your most frequently accessed knowledge > to stay resident while infrequently or hardly accessed knowledge remain > on disk or virtual memory. This would allow your application to run on > machines with much smaller amounts of memory but at a performance > penalty.
While this is true, it's also true that one wants to maximize the size of the RAM portion of the KB. The Novamente design includes a KB that includes portions on RAM of a network of machines, and portions in a DB on disk. > Another approach would be to store knowledge in a relational database. > These system also cache and manage the tabel data the first time it is > read. If it is frequently accessed it will stay in cache and be > accessed and memory speeds. Most RDBMS have superior indexing and will > retrieve records much faster from cache than a linear search of memory. We explored this option for Novamente, but on careful analysis, it turned out that the ways we wanted to access & update our data, were not efficiently achievable within an RDBMS framework. This comes down to very technical points, and for other AI architectures, an RDBMS approach might work out. > If your actual application is written in Java vs. a true compiled > language you are also incurring a large performance penalty. In my > experience there is no such thing as fast Java. See www.supercompilers.com for the path to fast Java ;-) Actually, in my experience it is possible to create fast Java, if one avoids the OO design patterns that make Java so nice in the first place. Array manipulations are plenty fast in Java 1.4, for example... -- Ben G ------- To unsubscribe, change your address, or temporarily deactivate your subscription, please go to http://v2.listbox.com/member/?[EMAIL PROTECTED]
