If, in the OpenCyc browser SubLisp Interactor, I evaluate...
(ke-create "Foo")
...Then, as expected I end up with the term #$Foo.
and then, later (perhaps thousands of funcalls later) happen to call
(ke-create "Foo")
again, I end up with two terms. The other term is called Foo- where n is some small apparently random integer.
Why do I end up with two terms? It seems to me that if I repeat calls to create a constant by the name Foo, I should end up with exactly one new term, right?
This is a pain. Does it mean my code has to check each time it calls (ke-create "Foo") to make sure it hasn't called that before? Is there some way of disabling this annoying feature?