> and there's a much fancier one in LISP that's part of the LKB:
>
> http://wiki.delph-in.net/moin/LkbTop
>
> Neither are in C/C++, but they are pretty straightforward procedural
> implementations, so they should be pretty easy to translate (unlike a
> prolog version...)
And there is a C/C++ unifier compatible with the LKB implemented in PET:
Although it doesn't have all the features you mentioned (I am pretty sure it won't handle disjunction) and has had a lot of work done to make it efficient rather than simple...
-- Francis Bond <http://www2.nict.go.jp/x/x161/en/member/bond/> NICT Computational Linguistics Group