OverviewFilesCommitsIssuesDocsReleasesPeers

opencog-atomese-simd commits / ecfe57b

More design notes
ecfe57bc83faaabf40c8eba38a8ccb59afcb706c
by Linas Vepštas <linasvepstas@gmail.com> · 2025-09-12T15:59:22.000Z

Changed files (1) +22 -1

Design-E.md +22 -1
……@@ -100,4 +100,25 @@ the atomese-simd interfaces.
100100
101101Malleability
102102------------
103What's the point of doing this? Its to
103What's the point of doing this? It's to explore the malleability of
104interfaces. None of these interfaces are ideal, or even very good. it
105would be nice to be able to morph and refactor them, but to do this
106morphing and refactoring in Atomese, rather than in C++. So the dream
107is to have structures, written in Atomese, and morphisms (rewrite rules)
108that map between them.
109
110In principle, the combo of `FilterLink` plus `RuleLink` provide
111everything needed to define a morphism. In practice, this seems to turn
112into a train-wreck of complexity, as the `RuleLink`s promptly get
113complicated and unreadable when given some practical task, such as the
114two outlined above.
115
116Perhaps careful modular design can avoid issues. But compositionality of
117`RuleLink`s then arises as an issue. So, if I have `(Plus a (Times b c))`
118then the first rule to run unwraps the outside `Plus` but leaves the
119inside `Times` untouched. We'd need a rule chainer at this point: either
120chain the `Times` rule next, via recursive descent, till getting to the
121bottom (i.e. depth-first), are some multi-pass width-first appreach.
122Width-first is a bit more compatible with lazy evaluation. But
123width-first algos are notoriously more complicated than
124recursive-descent, depth-first algos. Hmmm.