Representation theorem re-uses dummy names.
Before, the n0 name in the representation theorem was always a completely new name. As Grounder::PrepareForQuery() was called for the formula containing n0, the name was considered for grounding from then on, even though no other formula would ever mention n0. Now there are Grounder::CreateName() and Grounder::ReturnName() to temporarily use names. KnowledgeBase::ResOtherName() uses them. The performance impact may be huge when many queries with quantifying-in are posed. For example, test-introspection.txt is about 100 times as fast now.
Loading
Please register or sign in to comment