Difference between revisions of "List"

From Organic Design wiki
 
m
 
(9 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[category:glossary]]
+
{{glossary}}{{stub}}
#[[+list.1|XmlWiki Lists]]
+
 
#[[+list.2|Linked-lists (list-space)]]
+
== Queries & indexes ==
 +
*filtered lists
 +
*dynamic lists
 +
*p2p way - maintained information
 +
 
 +
== Nodal model ==
 +
In the [[nodal model]], a [[list]] is a [[w:Linked list|linked list]] formed from nodal [[association]]s which link each item in a list with the previous and next items. These lists are the basis of the arrow of time in the nodal model.
 +
 
 +
A list is called a [[loop]] if all the items form a closed circuit, or a [[thread]] if not. Threads have a start item signified by its {{left}} being unconnected (connected to [[root]]), and a last item having its {{right}} unconnected. In [[nodal reduction]], threads only rotate once and are then automatically unhooked because every [[quanta]] sent to root is a new quanta.
 +
 
 +
Since none of the items in a [[loop]] is a starting or finishing point, a loop can be [[node references|referenced]] by ''any'' of its node-items. This means that a reference to a loop can also encapsulate the concept of an item of ''current focus'', a concept used heavily by [[nodal reduction]].
 +
 
 +
In [[nodal reduction]], a [[node]]'s value (obtained by calling nodeGet/SetValue with the key parameter set to zero) is called the current [[focus]] which is a [[node]] within the local [[list]]. This node of current-focus is the one which will receive the next [[quantum]] of execution from its parent node, and is part of the unified tree of current "work" being processed by [[nodal reduction]].
 +
 
 +
If a list has static structure, then it can appear in many contexts simultaneously, it's ''parent'' [[association]] will be dynamically maintained by the [[nodal reduction]] algorithm.
 +
 
 +
=== Named list ===
 +
The first ''data-key'' of the first ''list-item'' in a ''list'' with any or none of the above characteristics can be treated as the lists ''name'', and the ''data-key'' of the second list-item is actually the start of the list proper. Such a list is called a "named-list", and is used as a higher level of organisation similar to an [[Wikipedia:Associative array|associative array]].
 +
 
 +
=== Stack ===
 +
A Stack is the "usual" most basic type of list construct, only one end needs to be accessed offering only the ''push'' and ''pop'' methods. note that the first ''prev-key'' and the last ''next-key'' are wasted.
 +
 
 +
=== Queue ===
 +
Stacks are really redundant, because if the ''prev-key'' of the first ''list-item'' points to the last, we have a ''queue''. Queue's are just like stacks, except that operations can be performed on either end without iteration.
 +
 
 +
The only difference between a ''loop'' and a queue is that in a queue, the last ''next-key'' is does not need to link back to the first item, but it does no harm if it does either. So the ''loop'' and the queue can be structurally identical, its their context that determine their type.
 +
 
 +
=== Axis ===
 +
The first ''prev-key'' of a ''list'' can be used to form an ''axis'' rather than the simpler ''queue'' or ''stack'' structures. An axis uses this ''prev'' as the first item of a complimentary "negative" stack, where the ''prev's'' link toward the end and the ''next's'' back to the start.
 +
 
 +
In an axis, the first ''list-item'' is the centre between the ''positive'' and ''negative'' lists. If the axis is ''named'' then this centre will usually be the ''list-name''. If it is not ''named'', then it must be decided whether the centre is its own unique item or part of one or the other axes. For example, it could be used to link together a [[Nodal/List|list]] of axes. Note that an axis is wasting the last ''next-key'' on both ends.
 +
 
 +
== See also ==
 +
*[[DHT]]
 +
[[Category:Nodal Concepts]]

Latest revision as of 08:05, 22 July 2011

Glossary.svg This page describes a concept which is part of our glossary
Cone.png This article or section is a stub. Stubs are articles that have not yet received substantial attention from the authors. They are short or insufficient pieces of information and require additions to further increase the article's usefulness. The project values stubs as useful first steps toward complete articles.


Queries & indexes

  • filtered lists
  • dynamic lists
  • p2p way - maintained information

Nodal model

In the nodal model, a list is a linked list formed from nodal associations which link each item in a list with the previous and next items. These lists are the basis of the arrow of time in the nodal model.

A list is called a loop if all the items form a closed circuit, or a thread if not. Threads have a start item signified by its Left being unconnected (connected to root), and a last item having its Right unconnected. In nodal reduction, threads only rotate once and are then automatically unhooked because every quanta sent to root is a new quanta.

Since none of the items in a loop is a starting or finishing point, a loop can be referenced by any of its node-items. This means that a reference to a loop can also encapsulate the concept of an item of current focus, a concept used heavily by nodal reduction.

In nodal reduction, a node's value (obtained by calling nodeGet/SetValue with the key parameter set to zero) is called the current focus which is a node within the local list. This node of current-focus is the one which will receive the next quantum of execution from its parent node, and is part of the unified tree of current "work" being processed by nodal reduction.

If a list has static structure, then it can appear in many contexts simultaneously, it's parent association will be dynamically maintained by the nodal reduction algorithm.

Named list

The first data-key of the first list-item in a list with any or none of the above characteristics can be treated as the lists name, and the data-key of the second list-item is actually the start of the list proper. Such a list is called a "named-list", and is used as a higher level of organisation similar to an associative array.

Stack

A Stack is the "usual" most basic type of list construct, only one end needs to be accessed offering only the push and pop methods. note that the first prev-key and the last next-key are wasted.

Queue

Stacks are really redundant, because if the prev-key of the first list-item points to the last, we have a queue. Queue's are just like stacks, except that operations can be performed on either end without iteration.

The only difference between a loop and a queue is that in a queue, the last next-key is does not need to link back to the first item, but it does no harm if it does either. So the loop and the queue can be structurally identical, its their context that determine their type.

Axis

The first prev-key of a list can be used to form an axis rather than the simpler queue or stack structures. An axis uses this prev as the first item of a complimentary "negative" stack, where the prev's link toward the end and the next's back to the start.

In an axis, the first list-item is the centre between the positive and negative lists. If the axis is named then this centre will usually be the list-name. If it is not named, then it must be decided whether the centre is its own unique item or part of one or the other axes. For example, it could be used to link together a list of axes. Note that an axis is wasting the last next-key on both ends.

See also