Difference between revisions of "Node space"

From Organic Design wiki
m (Caretaker: Format cat links)
(fix links)
 
(17 intermediate revisions by 3 users not shown)
Line 1: Line 1:
[[Category:Glossary]][[Category:Nodal Concepts]]
+
{{legacy}}
  
A Nodal Space is a local collection of nodes existing on a [[Peer]] at runtime to which the [[Nodal Reduction]] process occurs. All [[Node|nodes]] at runtime are referred to directly by their memory references, not by their [[Identity|global identity]] which is only used for storage and communication of nodal information, not the processing of it.
+
{{info|A new space is being researched in [[Distributed Space]] which will re-use existing technology}}
  
On languages that support it, a Nodal Space can be implemented by sub-classing the standard associative array syntax and methods to allow the use of ''associative-array-references'' as ''array-keys'' rather than strings or numbers.
+
== Fundamental geometry ==
 +
As was discussed in the [[node summary]], the four "built in" [[association]]s of "right", "left", "up" and "down" form a ''vertical'' hierarchical dimension, and a ''horizontal'' sequence-oriented dimension. So the fundamental topology of a node space is a lot like a ''grid'' in that the way one traverses from one node to another is along two orthogonal dimensions that could easily just be called N, E, W and S. It's not a grid that can be easily pictured though, because when interpreted geometrically, only the horizontal is a simple sequence, while the vertical, which is related to space and diversity, is more about volume.
  
For languages that don't support this level of object-orientedness, the Nodal Space must be implemented using functions or methods with a list of ''associative-array-references'' as a ''path'' parameter.
+
== Loops & threads ==
 +
The horizontal associations can be used to link nodes together into open or closed sequences called ''threads'' and ''loops''. The links between items connect in both directions so that items can be inserted or removed in constant time regardless of total length.
  
 +
When we combine this horizontal aspect of threads and loops with the vertical aspect of allowing any arbitrary containment trees, we are able to describe sophisticated structures of serial and parallel tasks. A thread or a loop when seen from the point of view of a child nodes operating within it, is like a sequence of slots in a ''schedule''.
  
[[Image:Nodespace-text.jpg]]
+
== Schedule spectrum ==
 +
The more layers of hierarchical structure there are within a node, the slower the operating cycles of that context have to be. So large complex organisations run on slow cycles like days and weeks, applications within organisations are working in minutes and seconds. And low level services making up applications run even faster or even asyncronously.
  
 +
The horizontal {{right}} and {{left}} associations really do form the ''schedule'' of operations because at the higher abstraction layers, the threads move forward (and loops rotate) based on the cycles in use at that level. All these cycles together form a containment tree too because they're all harmonically related, this tree of cycles is called the [[spectrum]].
  
;See also
+
== See also ==
*[[Nodal Reduction]]
+
*[[nodeSpace.c]] is the current implementation of node space running in [[peerd.c]] based [[peer]]s
*[[husk.c]]/[[nodeSpace.c]] implements the functional way from the [[List Space]] level.
+
*[[nodal-wikid.pl]] extends PERL's native hash-table to make a Nodal Space (no longer current).
*[[nodal-wikid.pl]] extends PERL's native hash-table to make a Nodal Space.
+
*[[peer-nodal.as]] implements the functional way since ECMA can't use references as array-keys (no longer current).
*[[peer-nodal.as]] implements the functional way since ECMA can't use references as array-keys.
+
[[Category:Nodal Concepts]]

Latest revision as of 09:15, 22 July 2011

Legacy.svg Legacy: This article describes a concept that has been superseded in the course of ongoing development on the Organic Design wiki. Please do not develop this any further or base work on this concept, this is only useful for a historic record of work done. You may find a link to the currently used concept or function in this article, if not you can contact the author to find out what has taken the place of this legacy item.


Info.svg A new space is being researched in Distributed Space which will re-use existing technology


Fundamental geometry

As was discussed in the node summary, the four "built in" associations of "right", "left", "up" and "down" form a vertical hierarchical dimension, and a horizontal sequence-oriented dimension. So the fundamental topology of a node space is a lot like a grid in that the way one traverses from one node to another is along two orthogonal dimensions that could easily just be called N, E, W and S. It's not a grid that can be easily pictured though, because when interpreted geometrically, only the horizontal is a simple sequence, while the vertical, which is related to space and diversity, is more about volume.

Loops & threads

The horizontal associations can be used to link nodes together into open or closed sequences called threads and loops. The links between items connect in both directions so that items can be inserted or removed in constant time regardless of total length.

When we combine this horizontal aspect of threads and loops with the vertical aspect of allowing any arbitrary containment trees, we are able to describe sophisticated structures of serial and parallel tasks. A thread or a loop when seen from the point of view of a child nodes operating within it, is like a sequence of slots in a schedule.

Schedule spectrum

The more layers of hierarchical structure there are within a node, the slower the operating cycles of that context have to be. So large complex organisations run on slow cycles like days and weeks, applications within organisations are working in minutes and seconds. And low level services making up applications run even faster or even asyncronously.

The horizontal Right and Left associations really do form the schedule of operations because at the higher abstraction layers, the threads move forward (and loops rotate) based on the cycles in use at that level. All these cycles together form a containment tree too because they're all harmonically related, this tree of cycles is called the spectrum.

See also

  • nodeSpace.c is the current implementation of node space running in peerd.c based peers
  • nodal-wikid.pl extends PERL's native hash-table to make a Nodal Space (no longer current).
  • peer-nodal.as implements the functional way since ECMA can't use references as array-keys (no longer current).