| … | … | @@ -0,0 +1,48 @@ |
| 1 | Design Notes E |
| 2 | ============== |
| 3 | September 2025 |
| 4 | |
| 5 | Notes about wiring, composability and flow. |
| 6 | |
| 7 | Status: Basic GPU operations seem to work and seem to have a reasonable |
| 8 | API. Time to review higher order goals. This is a recap of unimplemented |
| 9 | ideas from Design Notes C. |
| 10 | |
| 11 | There are various unfulfilled design goals: |
| 12 | |
| 13 | * There should be a way of creating wiring diagrams, along which data |
| 14 | flows. Abstractly, this would be sensory data, flowing in from some |
| 15 | sensor, being transformed via sequences of GPU kernels, and then |
| 16 | updating AtomSpace memory and driving motors. |
| 17 | |
| 18 | * Allow basic DL/NN ideas like transformers to be written in Atomese. |
| 19 | That is, there should be a way of converting DL/NN pseudocode from |
| 20 | published papers into Atomese, and then run it. |
| 21 | |
| 22 | * Implement an Atomese version of LTN, Logic Tensor Networks, but |
| 23 | generalizing it so that any kind of logic can be encoded, and not |
| 24 | just the "real logic" of LTN. Specifically, want to be able to encode |
| 25 | assorted modal logics, including epistemic logic. |
| 26 | |
| 27 | * Provide semantic elements. The current demo includes two kernels: |
| 28 | one that adds a pair of vectors, and another that multiplies them. |
| 29 | These are representations of the abstraction provided by `PlusLink` |
| 30 | and `TimesLink`. It seems appropriate that these two kernels should |
| 31 | be stored in or associated with `PlusLink` and `TimesLink`, so that |
| 32 | the Atomese is written with these, and not with the raw kernels. |
| 33 | |
| 34 | * Provide composable, compilable elements. A large subset of Atomese |
| 35 | allows for the writing of abstract syntax trees, representing |
| 36 | processing flows. If such trees include both `PlusLink` and |
| 37 | `TimesLink` and these are composed together, then the data should |
| 38 | never leave the GPU, but should be processed in-place. That is, the |
| 39 | OpenCL kernels themselves should be composed and compiled "on the |
| 40 | fly", to perform the desired operation. |
| 41 | |
| 42 | It seems like all of these should be possible. The groundwork for some |
| 43 | of this has been laid, and so some of these can be tackled. Perhaps |
| 44 | implementing a library for the core AtomSpace arithmetic functions is |
| 45 | a reasonable next step: so, having `PlusLink` and `TimesLink run on the |
| 46 | GPU. |
| 47 | |
| 48 | ---- |