OpenCog

PLN tasks

From OpenCog

Relatively simple

These may still take some time to complete however.

  • Function to print out AtomSpaceWrapper real->fake table.
  • Maintain a pool of targets for the scheme command "pln-bc" to work on. This necessitates support and testing multiple BITNodeRoots (which may require some work and removing any remaining global variables).
  • Implement a strength x confidence fitness function for selecting atoms. Currently Rules and grounding just work on selecting the highest confidence atoms.
  • Rules should be able to intelligently fill their arguments based on those slots already filled, I think TableGather does this to some extent, but check.
  • Remove validate2 from Rules... only used by deduction, so merge this somehow.
  • update PLN Details
  • Revision of dummy context truth values on completion of inference.

Difficult/Involved

  • Use the OpenCog Trails mechanism instead of haxx:inferred_from/inferred_with
  • Redo Unit test system so that PLN inferences and the expected result are represented in Scheme (see email)
  • Rule repository to keep track of rules, and allow access to their factories via AbstractFactory (see how CogServer handles Requests for details).
  • Support the Variable typing mechanism discussed on the email list regard VariableNodes.
  • Create an AtomTable within the AtomSpaceWrapper as an internal cache for PLN specific atoms such as FWVariableNodes and the links created that point to them. Also use for storing normalised atoms... (e.g. an EquivalenceLink is converted into two ImplicationLinks). Currently these are all put in the AtomSpace directly (search list archives for "Normalising the PLN AtomSpace").
  • ForwardChaining - adapt BIT so that it can have an ATOM target and act like a forward chainer (since it will match any result). Also read PatternUTest and BiggerPatternUTest for ideas about alternative, and possibly more efficient, ways to implement this.