https://github.com/d-led/htm.pony
an HTM experiment in Pony based on the Go implementation https://github.com/htm-community/htm/
https://github.com/d-led/htm.pony
Last synced: 5 months ago
JSON representation
an HTM experiment in Pony based on the Go implementation https://github.com/htm-community/htm/
- Host: GitHub
- URL: https://github.com/d-led/htm.pony
- Owner: d-led
- License: agpl-3.0
- Created: 2018-10-28T22:04:10.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2022-02-27T18:25:39.000Z (over 4 years ago)
- Last Synced: 2025-04-11T23:40:42.925Z (about 1 year ago)
- Language: Pony
- Homepage:
- Size: 92.8 KB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# HTM.Pony
[](https://travis-ci.org/d-led/htm.pony)
- Status: a small experiment, work in progress
- based off the [Go implementation: https://github.com/htm-community/htm](https://github.com/htm-community/htm) (MIT License)
- no direct dependency on other implementations
## Rough Plan
- Start with porting the [Go version](https://github.com/htm-community/htm) 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](https://twitter.com/kentbeck/status/459707016387108864) 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](https://tutorial.ponylang.io/expressions/exceptions.html) vs explicit [union return types](https://tutorial.ponylang.io/types/type-expressions.html)
- 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](https://github.com/zeromq/czmq/blob/master/CONTRIBUTING.md) process [C4](https://rfc.zeromq.org/spec:22/C4/) and a protected master
### Getting Started with Pony
- see [ponyc Readme](https://github.com/ponylang/ponyc#windows-using-zip-via-bintray)
### Current Maintainers
- [Dmitry Ledentsov/d-led](https://github.com/d-led)
## 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](https://github.com/ponylang/ponyc/blob/master/README.md#installation)
- Compilation: `ponyc` from the test folder produces the test executable
## Dependencies
- date/time construction: [slayful/sagittarius](https://github.com/slayful/sagittarius) (license yet unspecified)
## License
- See [LICENSE](LICENSE)
- See also, [Numenta Licenses](https://numenta.org/licenses/)