Thanks for your note. I can see why it looks there’s an “original” vs. “cloned” distinction in the story characters example, because there’s a sort-of “official” list of major characters and then the “other” lists in the scenes. However, my thought is that there would be no “original” node vs. “cloned” nodes from the user’s point of view, but rather they are all simply references to the same node.
To illustrate nodes that don’t have an original vs. cloned relationship, imagine the following shopping list:
- Auto Store
- Grocery Store
- Home Store
Let’s say I’m planning to run errands. I thought of buying batteries while writing up the auto store list, and added them there. Later I decided to make “clones” of the battery item in the Grocery and Home store lists, since I might find batteries at any of those places.
If I find batteries at any of the stores, and check off any one of the Batteries nodes, I would expect that all three Batteries nodes would become checked off, since they’re clones. Or if I realized I needed AA Batteries I could change the name of one of them and they would all change. That’s the power of cloning.
However, let’s say I get to the Auto store and they don’t have any batteries. I would naturally want to delete the Batteries item from the Auto store list since they aren’t there. My expectation would be that Batteries would be removed from the Auto store but they would remain on the Grocery and Home store lists.
Essentially, I don’t think the user should have to try to remember which list they added Batteries to first, fearing that if they delete the “original” it will disappear everywhere but if they delete a “clone” it only disappears in that spot. In my opinion the best user experience is if deletion works exactly the same way on every node, irrespective of whether it’s a regular node, a clone of some other node, or the “original” node from which clones were made.
Agreed, links are great! I do sometimes use links in this way.
The reason I wish I had clones in addition to links is that the two serve somewhat different purposes:
Links are separate nodes from the one they link to, so I can check them off independently, use whatever link text I want, make changes to the links without affecting the target node, and generally use them as “jump-off points” to other areas in the outline. This is great when I want to refer to another node in-line, or provide a table of contents to other nodes, or otherwise refer to information elsewhere in the outline.
Clones are essentially the same node in different places, so if I check off one, they all get checked off; if I change the node text in one, they all change; if I change its children, the children of the clones also change. This is great when I want to keep details of a node handy while working in a different context, or work on two nodes next to each other that would otherwise be far apart in the outline, or otherwise embed information from elsewhere in the outline and work with it locally.
The difference is most noticeable when the nodes are far apart in the outline. To illustrate this difference, let’s go back to the storyline example for a moment:
- Major Characters
- …imagine lots of other nodes here…
- …lots of other scenes…
- Scene 22
Let’s say I’m zoomed into the Scene 22 node so that I can focus on just that scene. I’m working along, in the zone, and then I realize that I can’t remember the name of John’s sister, one of the child nodes of John under Major Characters.
If John is a link to the node under Major Characters, then I must: click on the link; jump out of Scene 22; expand John’s node; look up his sister’s name; click Back to return to Scene 22; find the node I was working on; and then get back to work – hopefully still remembering the name. It requires a context switch, a bunch of clicking, and enough friction that it makes me reluctant to click on the link unless I really need to.
On the other hand, if John is a clone of the node in Major Characters, then I simply: expand his node right here in this scene to show his family, and get back to work. No context switch, no friction. Even better, John’s family info stays on the screen visible to me, in my current zoomed-in context, as I work. Best of all, if I learn something new about John I can edit his info right here in this context, knowing that the clone up in Major Characters will get updated too.
I hope this makes sense, and isn’t too long-winded. I really appreciate your dedication to understanding our suggestions, no matter how complicated they get.