The closest thing I can think of is Rete algorithm --- see
http://en.wikipedia.org/wiki/Rete_algorithm

Pei

On Fri, Oct 31, 2008 at 3:39 PM, Russell Wallace
<[EMAIL PROTECTED]> wrote:
> In classical logic programming, there is the concept of unification,
> where one expression is matched against another, and one or both
> expressions may contain variables. For example, (FOO ?A) unifies with
> (FOO 42) by setting the variable ?A = 42.
>
> Suppose you have a database of N expressions, and are given a new
> expression, and want to find which of the existing ones unify against
> the new one. This can obviously be done by unifying against each
> expression in turn. However, this takes O(N) time, which is slow if
> the database is large.
>
> It seems to me that by appropriate use of indexes, it should be
> possible to unify against the entire database simultaneously, or at
> least to isolate a small fraction of it as potential matches so that
> the individual unification algorithm need not be run against every
> expression in the database.
>
> I'm obviously not the first person to run into this problem, and
> presumably not the first to think of that kind of solution. Before I
> go ahead and work out the whole design myself, I figure it's worth
> checking: does anyone know of any existing examples of this?
>
>
> -------------------------------------------
> agi
> Archives: https://www.listbox.com/member/archive/303/=now
> RSS Feed: https://www.listbox.com/member/archive/rss/303/
> Modify Your Subscription: https://www.listbox.com/member/?&;
> Powered by Listbox: http://www.listbox.com
>


-------------------------------------------
agi
Archives: https://www.listbox.com/member/archive/303/=now
RSS Feed: https://www.listbox.com/member/archive/rss/303/
Modify Your Subscription: 
https://www.listbox.com/member/?member_id=8660244&id_secret=117534816-b15a34
Powered by Listbox: http://www.listbox.com

Reply via email to