OverviewFilesCommitsIssuesDocsReleasesPeers

opencog-atomese-simd commits / 56c1e24

Update design ideas
56c1e24ea37642bd93176b2b37ac435974897abd
by Linas Vepstas <linas@linas.org> · 2025-10-01T16:58:34.000Z

Changed files (1) +35 -5

Design-G.md +35 -5
……@@ -82,20 +82,50 @@ even mean to execute "somewhere else"?
8282 what is provided by `StorageNode`
8383
8484* Should remote AtomSpaces be a kind-of StorageNode? Conversely,
85 perhaps StorageNode should be a kind-of Frame?
85 perhaps StorageNode should be a kind-of AtomSpace?
8686
8787* Currently, remote execution is provided by `fetch-query` in the
8888 StorageNode; presumably this can/should be extended to be any
8989 kind of execution!?
9090
9191The above questions envision an extension/mutation of the current
92StorageNode concepts to be Frame-like. Which seems like an awesome
92StorageNode concepts to be AtomSpacee-like. Which seems like an awesome
9393idea, as I write this.
9494
95### Are SensoryNode's Frames?
95### Frames and Proxies
96The layering of AtomSpaces was inspired by `git` and was envisioned as
97a directed acyclic graph, with each AtomSpace above inheriting from the
98AtomSpaces below. The implicit, unspoken assumption was that all of
99these were local, on the same system/RAM, and thus directly accessible.
100Because everything is local, another implicit assumption is that both
101reads and writes are described by this graph: an AtomSpace accessible
102for reading is also accessible for writing (unless it is marked
103read-only.)
104
105This directed graph is represented with a Frame, which is an Atom that
106is both like a Node and like a Link, having both a (singular) name and
107an outgoing set.
108
109A completely different layering mechanism is that of the `ProxyNode`,
110which is a kind-of `StorageNode`. It replaces the idea of a DAG with
111a more flexible system:
112
113* Reads are distinct from writes; one can be handled, and the other not.
114* Dropping writes makes the proxy effectively read-only.
115* Read priority and caching are possible.
116* Write mirroring and write sharding are possible.
117
118This suggests that Frames should be replaced by ProxyNodes. Which again
119elevates a StorageNode (this time, in the form of a Proxy) to be at the
120same conceptual level as the AtomSpace. So we now have three distinct
121"remote" operations: read, write and execute.
122
123
124
125### Are SensoryNode's AtomSpaces?
96126By logical extension of the above thoughts, SensoryNodes should be
97Frames too ... I guess? But "remote" AtomSpaces are "remote", whereas
98SensoryNodes are local interfaces to that "remoteness".
127AtomSpaces too ... I guess? But "remote" AtomSpaces are "remote",
128whereas SensoryNodes are local interfaces to that "remoteness".
99129
100130The inheritance hierarchy gets a bit messy; not all remote things
101131have to form of AtomSpaces ... or do they? It's always Values that