an HTM experiment in Pony based on the Go implementation https://github.com/htm-community/htm/
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.vscode
deps/sagittarius
htm
microbenchmarks
test
.gitignore
.travis.yml
Dockerfile
LICENSE
README.md
build_and_test.bat
docker-compose.yml
htm-pony.code-workspace

README.md

HTM.Pony

Build Status

Rough Plan

  • Start with porting the Go version to Pony using classes at first
  • Once an opportunity arises to parallelize, start experimenting with actors & benchmark
  • When the Temporal Pooler is ported, align the implementation with the latest NuPIC/htm.java details
  • No attempt at proactive refactoring is made at the moment. When a rough working version is made, it might make sense to reimplement whole classes/actors
  • Error handling is ad hoc currently, and will need to be designed once there is a high level executable that uses the library. Trade-offs: errors, logging & partial functions vs explicit union return types
  • continue

Contributing

  • Open or take an issue for the next small problem to solve, and open a PR if there's some code to be merged
  • If there are tests and these pass in CI, the maintainers should merge the PR into master
  • After a successful PR, the contributor may become a maintainer if so desired
  • Should merge conflicts arise, the master will be protected, all work will be done via PRs
  • Long-lived branches are to be avoided. All progress should go into the master branch as soon as the tests are green
  • If there's significant traction, we'll switch to the ZeroMQ process C4 and a protected master

Getting Started with Pony

Current Maintainers

Progress

  • Sparse Binary Matrix, Dense Binary Matrix: Go tests translated & running. Untested Go code left for later
  • Initial implementation ready: Scalar Encoder (#1)
  • Next: Date Encoder (#2), any other chunk with minimal dependencies

Developing

  • Install Ponyc
  • Compilation: ponyc from the test folder produces the test executable

Dependencies

License