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âŚ
- Scenes
- âŚ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.