Hi Stephen, I think this approach makes sense.
In Novamente/OpenCog, we don't use spreading activation, but we use an "economic attention allocation" mechanism that is similar in spirit (though subtly different in dynamics). The motivation is similar: You just can't use complex, abstract reasoning methods for everything, because they're too expensive. So this sort of simple heuristic approach is useful in many cases, as an augmentation to more precise methods. -- Ben On Tue, Mar 25, 2008 at 7:53 PM, Stephen Reed <[EMAIL PROTECTED]> wrote: > > While programming my bootstrap English dialog system, I needed a spreading > activation library for the purpose of enriching the discourse context with > conceptually related terms. For example given that there is a > human-habitable room that both speakers know of, then it is reasonable to > assume that "on the table" has meaning "on the piece of furniture" in the > room rather than the meaning "subject to negotiation". This assumption can > be deductively concluded by an inference engine given the room as a fact, > and rules concluding the typical objects that are found in rooms. But > performing theorem proving during utterance comprehension is not cognitively > plausible, and would take too long for real-time performance. Suppose that > offline deductive inference provides justifications (e.g. proof traces) to > support learned links between rooms and tables, then spreading activation is > a well known algorithm for searching semantic graphs for relevant linked > nodes. > > A literature search provided much useful information regarding spreading > activation, also known as marker passing, especially about natural language > disambiguation, which is my topic of interest. Because there are no general > purpose spreading activation Java libraries available, I wrote one and just > released it on the Texai SourceForge project site. The download includes > Javadoc, an overview document, source code, all required jars (Java > libraries), unit tests and examples, and GraphViz illustrations of sample > graphs. Performance is acceptable: 20,000 nodes can be activated in 24 ms > with one thread on my 2.8 GHz CPU. Furthermore the code is multi-threaded > and it gets about a 30% speed increase by using two CPU cores. Even if you > are not interested in spreading activation, the Java code is a clear example > of using a CyclicBarrier and CountdownLatch to control worker threads with a > driver. > > A practice I recommend to you all is to improve Wikipedia articles on AI > topics of interest. Therefore I elaborated the existing article on > spreading activation to include the algorithm and its variations. > > Cheers. > -Steve > Stephen L. Reed > > Artificial Intelligence Researcher > http://texai.org/blog > http://texai.org > 3008 Oak Crest Ave. > Austin, Texas, USA 78704 > 512.791.7860 > > > ________________________________ > Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it > now. > ________________________________ > > agi | Archives | Modify Your Subscription -- Ben Goertzel, PhD CEO, Novamente LLC and Biomind LLC Director of Research, SIAI [EMAIL PROTECTED] "If men cease to believe that they will one day become gods then they will surely become worms." -- Henry Miller ------------------------------------------- agi Archives: http://www.listbox.com/member/archive/303/=now RSS Feed: http://www.listbox.com/member/archive/rss/303/ Modify Your Subscription: http://www.listbox.com/member/?member_id=8660244&id_secret=98558129-0bdb63 Powered by Listbox: http://www.listbox.com
