Well, I'm certainly happy to have been part of the conversation. On Thursday, February 11, 2016 at 6:12:20 PM UTC-5, Edward K. Ream wrote:
I see these three statements as fundamental to the data structure: *Important*: some nodes may not have any thread running them for some > colored threads (attributes). That's just fine. > The only requirement is that the links defined by the red threads must > *also* be a tree/dag. > 2. Every view (attribute) can define/create its own set of parent/child > relationships, independently of all other views. Afaik, no other data > structure is this flexible while still remaining intuitive. I'm trying to really understand this. The way it works now is there is an "underlying" directed acyclic graph structure *viewed as a tree*. That part is important. We could say that right now we only have access to a single view I'll call the "classic" view, with no way to modify the view. Classic referring to the "old" Leo where every node could have only one attribute. An unacknowledged unnamed attribute, but there nonetheless. Clones don't create views or use attributes at all, a clone is merely a node with more than one parent. Because we're using a tree to view the graph the only way to view a node with more than one parent is to show that node twice on the tree. This creates a sort of "pseudo-view" because clones result in showing redundant information in the same tree. It is the same tree because there is always an invisible root node which all other nodes descend from. Now I'm struggling to understand this new data structure based on your statements. To start, any viewing of the data structure must be done through "views". Let's simplify things and say that the fundamental element in this structure is a node and a single node could have a headline, a body, and a list of attributes. Lets say a node cannot have children. To keep things simple things lets start with a situation where you have five nodes without a defined body/headline/attributes. If these nodes have no attributes there is no way to view and in effect it appears to the user that they do no exist because he/she can not access them. So I believe your first statement is wrong, every node needs at least one attribute. Keeping with this simplest case the next step is to add an attribute to each. We could add a different attribute to each which would provide five views. Or we could add the same single attribute to each which would create one view. In this latter case of a single attribute what the user would see is a flat list of five nodes. Because our fundamental element is a node and we haven't defined a way to associate nodes with each other other than with an attribute a flat list is the best we can get. Not very interesting yet. To make this a little more interesting let us expand the fundamental element to have a simple tree structure (for now let's leave clones out of this, every node in the tree can have only one parent). Without attributes again there is no view. In the simplest case the root of each tree could be given an attribute and children would inherit that attribute. If all trees had the same attribute we're starting to get close to what Leo is right now. Where do threads fit into this? Attributes by themselves do not imply membership to a thread. Attributes do not imply any parent-child relationship. Attributes only collect trees into a list to be viewed. And in fact at this point this is almost exactly what I described in the previous forum thread as "hoisting a collection of nodes". In that case nodes as trees. For simplicity a possible restriction there could be the same as above, marking a node with an attribute would pull in the whole sub-tree and subsequent nodes couldn't be marked with the same attribute, this would prevent a sort of "pseudo-clone" being viewed in a hoisted list of trees. In fact from this build up it appears that attributes have nothing to do with threads. Threads have to include parent-child relationship between nodes. And based on your description below it seems to disregard any structure underlying trees of nodes. The only requirement is that the links defined by the red threads must > *also* be a tree/dag. > Well that's as far as my brain will take me today. Starting to really lose my grip on the concept. Don't doubt it at all just looking for some more detailed clarifications. -- You received this message because you are subscribed to the Google Groups "leo-editor" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/leo-editor. For more options, visit https://groups.google.com/d/optout.
