Skip to content

6.0.0-pre.2

Pre-release
Pre-release
Compare
Choose a tag to compare
@sdcondon sdcondon released this 06 Jul 15:04
· 115 commits to main since this release

New in this pre-release:

  • BREAKING: Removed knowledge base implementations, leaving only the abstractions. The implementations have been moved to the new SCFirstOrderLogic.Inference.Basic package. I'm separating these out because it's no longer completely beyond the realms of possibility that I'll have a go at creating a "real" knowledge base implementation at some point. If and when I do (or indeed if someone else wants to), I don't want these ones getting in the way. Besides, there is enough scope for different KB implementations for different purposes that I don't think any implementations belong in the core package.

All v6 changes so far:

  • BREAKING: Removed knowledge base implementations, leaving only the abstractions. The implementations have been moved to the new SCFirstOrderLogic.Inference.Basic package. I'm separating these out because it's no longer completely beyond the realms of possibility that I'll have a go at creating a "real" knowledge base implementation at some point. If and when I do (or indeed if someone else wants to), I don't want these ones getting in the way. Besides, there is enough scope for different KB implementations for different purposes that I don't think any implementations belong in the core package.
  • Some changes in the TermIndexing namespace:
    • BREAKING: IDiscriminationTreeElementInfo renamed to IDiscriminationTreeNodeKey. Its implementations have also been renamed.
    • BREAKING: IAsyncDiscriminationTreeNode methods modified to return ValueTasks instead of Tasks.
  • Some changes to VariableSubstitution:
    • Added MutableVariableSubstitution. Derives from VariableSubstitution and is modifiable in-place.
    • Added CopyAsMutable method to VariableSubstitution.
    • Added CopyAndAdd methods to VariableSubstitution.
    • BREAKING: renamed VariableSubstitution.Clone() to CopyAsReadOnly(). Didn't want to use the term "Clone" for the methods above, because "Clone" suggests no change quite strongly - "CloneAndAdd" is a bit awkward. So, renaming this method for consistency.
  • BREAKING: Made the implicit Predicate to Literal conversion operator explicit. Making it implicit was a mistake - causes the compiler to make some undesirable decisions when working with Predicates.
  • Added some overloads to Unifier, to make up for the Predicate to Literal conversion change (above).