Skip to content

Releases: sdcondon/SCFirstOrderLogic

2.1.0-pre.3

29 Sep 17:35
Compare
Choose a tag to compare
2.1.0-pre.3 Pre-release
Pre-release

Even more conversion flexibility on OperableSentenceFactory surrogate types. At some point I should probably look into just how much overhead (i.e. copies of things) is created with all these implicit conversions - in particular, in comparison to how many allocations (both short- and long- lived) are made when using language integration.

2.1.0-pre.2

28 Sep 16:02
Compare
Choose a tag to compare
2.1.0-pre.2 Pre-release
Pre-release

A little more conversion flexibility in OperableSentenceFactory..

2.1.0-pre.1

28 Sep 15:41
Compare
Choose a tag to compare
2.1.0-pre.1 Pre-release
Pre-release
  • A little more conversion flexibility added to OperableSentenceFactory.
  • Removed a weird explicit conversion operator from Literal. Strictly speaking a breaking change, but highly doubt anyone will notice given download numbers..

2.0.0

26 Sep 18:27
Compare
Choose a tag to compare

So.. v1 should probably have been v0. It wasn't quite ready. Never mind.. This is what probably should have been v1.

Breaking changes:

  • CNFSentence, CNFClause and CNFLiteral have been moved up to the SCFirstOrderLogic namespace - and in the process CNFLiteral has been renamed to Literal. Now that I have actually started trying to consume this library (and in particular want to use Literal, but not in the context of CNF) I'm finding that the current name and namespace are really awkward. So I've moved and renamed them. The SCFirstOrderLogic namespace now includes all of our sentence model - both "raw" and CNF. This feels much cleaner.
  • Unification logic has been moved from the SCFirstOrderLogic.Inference.Unification to the new SCFirstOrderLogic.SentenceManipulation.Unification namespace. When using this library I'm going to want to do unification - but I'm not doing inference.
  • CNFDefiniteClause has been promoted from SCFirstOrderLogic.Inference.Chaining to SCFirstOrderLogic. No reason for it not to sit alongside the others rather than being hidden away alongside the only classes that happen to use it within this lib.
  • CNFExplainer.FindNormalisationTerms has been moved to a new CNFExaminer class in SentenceManipulation - this logic is nothing to do with formatting.

Bug fixes:

  • Literal unification could return a false negative result when unifying two non-ground literals.
  • Literal unification could return a false positive result when trying to unify a predicate or function with the same identifier but different numbers of arguments. It was only trying to unify the smaller number of arguments. This is of course somewhat of an edge case (one would normally expect the same identifier to mean the same number of arguments), but it now fails instead.
  • Forward chaining's check to see if a new conclusion had been drawn was prone to false negatives, resulting in it doing more work than it needed to do.

Other changes:

  • Several documentation improvements
  • Added an overload of CNFExplainer.FindNormalisationTerms that accepts predicates. Use it in forward chaining query.

1.1.0

16 Sep 16:26
Compare
Choose a tag to compare

Several minor additions and improvements:

  • Several documentation fixes and improvements
  • Corrected the accessibility modifier of SentenceFormatter.Format(Conjunction) - which was erroneously private
  • Added an AreEqual method (for the equality predicate) to OperableSentenceFactory. There's no reason for it not to be there, given that SentenceFactory has it.
  • Added a Var(object symbol) method to both SentenceFactory and OperableSentenceFactory - for variables.
  • CNFLiteral now has an additional ctor overload.

1.0.2

12 Sep 13:50
Compare
Choose a tag to compare

Oops, guess I jumped the gun on the release. Resolution was failing a couple of tests, but I didn't notice because of the way the tests are set up. Now fixed.

1.0.1

11 Sep 16:02
Compare
Choose a tag to compare

Added Source Link. Also some minor package metadata tweaks.

1.0.0

07 Sep 18:26
Compare
Choose a tag to compare

Initial release. Wasn't going to bother publishing this TBH, but meh; someone might find it interesting.

1.0.0-pre.1

07 Sep 16:37
Compare
Choose a tag to compare
1.0.0-pre.1 Pre-release
Pre-release

Quick pre-release just to verify that everything is working..