HTM.Pony
- Status: a small experiment, work in progress
- based off the Go implementation: https://github.com/htm-community/htm (MIT License)
- no direct dependency on other implementations
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
- see ponyc Readme
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
- date/time construction: slayful/sagittarius (license yet unspecified)
License
- See LICENSE
- See also, Numenta Licenses