Third Dimension : Super Tree
Posted: Tue Oct 05, 2010 6:36 pm
Here's some "philosophy", i.e. very important conceptual work for MI. If you follow me here - or do something even better, and if all little quirks are eliminated -, MI will be of overwhelming practical value to professionals, and they would be willing to pay real money for this program. In fact, I am developing here the difference between an "amateurish" "we are here, too" program like dozens of others, and the real, outstanding thing. Programming time should be 1 big week or so, but less than 2, so it's worthwile.
I
As I developed before, MI is "1 Topic a Tree", whereas UltraRecall, for example, is "All in One Tree"; some people have one UR database with 1 GB or more of content, "pouring" subtrees to work on into different tabs: the tree itself (=containing all their stuff) is the supertree at the same time (but needs - and has - a (technically at least) very elaborate hoisting function in order to manage all that. (As stated elsewhere, after pouring those multiple subtrees into those multiple tabs, clutter begins, since their software design isn't at par with their softare encoding quality.)
And nobody would dare pouring all his staff into one single MI file, 1 GB of data or more - and why should he? Since there is this "1 tab 1 topic" system, including global searching (and a very fine separation of finds in those different topics, including discriminational collapsing / expanding for each topic containing finds).
I've had some 30 or 35 files in my unmentionable "basic" outliner, ActionOutline; in MI I've got some 120 for the time being, and soon I'll reach 150 or even 200; many people weren't that happy with MI's denomination of files as "topics", but as soon as you see the philosophy behind MI, naming those trees / files "topics" is the very best name for them indeed.
II
The cloning function in MI is very / too rudimentary. As you (possibly) now, by cloning, the current item is cloned (as in UR for example) with its subtree (in case there is any), and afterwards, the cloned item will be updated whenever the original item changes, and vice versa, the original item is updated with any changes in the clone. All this goes without saying, without that there would not be clones, but only copies, i.e. copied items that would not be updated by changes in the original item, and where changes would not affect the original item.
Where problems arise, is, first, in those dam**d sub-items of clones. Whenever you add or delete (or transfer to another place) any subitem of the original (or of the clone, or make changes to them, the "other party" will not be affected anymore by all this, and this way, clones in MI are of very limited use, or worse, their use could lead to many "errors" by leaving out information when you assume you dispose of information that in fact is not there, or had been updated, eliminated, whatever... but in the original item('s subtree) when you consult the clone, and vice versa.
The same problem arises whenever you do some changes within / to items in the subtree of such an original or of such a clone: Even knowing you are breaking the cloned synchronizity apart - that you are wrecking it -, you cannot but accept that fact, or manually re-do the cloning of the cloned head item, after each such a change occurs. This is awful and error-prone.
This way, the only conceivable use of MI's cloning function would be e.g. a list of customers where the first = main tree is by geography, and where you do a secondary tree, after the first, where you do clones, by ABC analysis, by size, by branch of business, or whatever. But then, there is the fine tagging feature of MI which would do all this much better, and then, even in this sparse possible example, the above-mentioned synch problem would arise as soon as you dared to do sub-items, e.g. for the commands of those customers, or for the contacts with them.
Why these problems? Let's face it, not synching but the cloned item itself, was a lot less work in programming this feature... This is not a critique, it's just a fact. Let's see the second problem with cloning in MI:
III
The second problem is, cloning is only available WITHIN the tree, within the given topic. Of course, when you have a program like UR where, by it's "definition", all your stuff (= all your stuff of a certain kind; of course there could be reasons to put all your strategy in one tree=file, all your customers into another, and all your hobbies into a third, if you want to do so) is in the same monster tree, this limitation of all those programs, "cloning only possible within the tree", does not really hamper you, since your "Action Section" / "ToDo Section" will be in that one monster tree indeed, rather at the beginning of it, on top of your various "stuff sections" containing perhaps more than 1 GB of "reference" data.
The same, in such a system, for those various not Allen's "Getting Things Done" or other project management action triggers, all together instead of dispersed within 100,000 or more items in your monster tree - and which might be considered technically as clones, but are in fact references to that various stuff damped into the whole, but for all those REAL clones, as we might call them, where some reference materials are needed in various sections where they belong. The classical example of this is, where to put car insurance, under "car" or under "insurances"? With a cloning system like that in UR, you'd have "car insurance(s)" under the "car(s)" section AND under the "insurance(s)" section of your very big tree; the same with house insurance; the same with individual insurances of each member of your familiy: Their respective insurances would be dispersed in the tree, as would perhaps the different schools your kids attend, each such a doc under the corresponding child heading, but at the same time, all insurances (and their brokers) would be grouped together under "Insurances", all schools (and teachers' telephone numbers e.g.) would be grouped together under "Education", and for every subject belonging to different headings, you'd find entries under both headings: this is the perfect example of the real advantage of digitization over paper files: the third dimension is available whenever you need it, instead of manually-to-be-sychnronized reference entries (which are very error-prone and awkward to maintain).
IV
Another example, very important this one, since it does not imply a one-and-single "we stuff all our things into our system, and then it will stay without much change afterwards, except for content (=but not for "constructing the system"):
You are a laywer, you have different cases. You are a consultant, you have cases. (You see, I am interested in high-paid professionals who do real work with their working program, and I want it to be MI...) Now, what do you do? You do a heading (=in UR) for your case, say "John Smith vs. the Government". And then, you fill up that case with reference material. Of course, in continental legal systems, your main base would be some codes of law; in many countries, the "Civil Law" comprises some 2,000 or 3,000 articles, often subdivided into paragraphs. So you would need this "Civil Law" in its entirety for all your civil cases, but then, for each case, you would need SPECIAL PARTS of these laws, and you would need specific rulings of other, similar cases, or cases similar in certain aspects to your current one.
This way, you would need to integrate a lot of various stuff into each of your individual cases, some rather general, some perhaps very specific, some at the very first beginning of your case, some rather far behind in the development of your case; some reference material then would not apply and would have to be replaced by some other, and so on; some standard material could be put there by your secretary, for further stuff your own expertise would be in demand for carefully chosing it.
Either way, some reference material would lay dormant for years, just in case of, and other reference material would be put into almost each case, or, as I said, various parts of it, or even "standard parts" of it, "standards" if you want.
A consultant of any kind would do the same, and of course, "reference material" would not only be real reference stuff, but very often parts of other projects that could be re-used: Thus, strictly separating "reference material" from "project material" is only valid for any given project; as soon as a project - or a legal or whatever "case" is completed, almost all of this material could be considered reference material for any new project / case.
V
It goes without saying that a big tree with real cloning (= cloning incl. sub-items), like in UR, seems to be perfect, at first glance, for this real work (=whereas "I do my recipies with XYZ" is not real work), whereas MI does not seem to be suitable for this work... for the time being.
There is a big flaw in the first concept, the "One Big Tree with ToDo's, then Projects, then all that Reference Stuff, and Perfect Cloning Holding It All Together" - your projects are all in that big tree, whereas legal cases should be separated, commercial projects should be separated, pychoanalytic work and everything... should be separated BY CUSTOMER. No lawyer stuffs different cases into one lever file... in UR or other "big trees", electronically, he would be forced to do that.
VI
Whereas in MI, he would have his dozens, his hundreds of individual topics, one for each case / project... but how to collect all these disparate reference materials in a neat and easy way? Or put it another way: The third dimension in electronic paper work has to be file-spanning, must not be within-the-file only, and that's a MUST!
VII
So, first, we need that SUPER TREE. What's a super tree? A tree that is a three-dimensional file system, for all topics, and superimposed on them, to begin with. A tree in which are automatically entered, under its heading "IN" or "NEW" or whatever, all newly created topics, and from which "in basket" you would shuffle all your topics into whatever heading or subheading (!) there in which you want them to be. Thus, you would put your topic cat (or whatever you name it, but it would mean "Car Assurance Thomas") underneath the headings "Cars", "Assurances" and "Thomas", and you'd put your topic "cb1" (= Customers Biz 1, understood you wear several hats) under the heading "Customers" and under the heading "Biz 1".
Whenever you rename or delete a topic - remember, here at step 1 we are strictly on the topic = file level -, it must be updated in this super tree.
This super tree should be accessible at any moment in the task pane, like the filter and the tags list should be accessible there, and in fact, very soon, this content of the task pane would soon become its default content, and it would be in this super tree that you would normally switch from 1 "tab" to another, clicking on the headings in the super tree (and loading the corresponding topic by that if it's not yet loaded anyway).
VIII
So what, up to now? Where's the interest of having this super tree, together with its topics list (with multiple entries of topics)? In this first step, the interest lays in... the HEADINGS!
Since double-clicking on the headings would load all corresponding topics !!!
(Whereas simple clicking on the heading would expand / collapse its topics or subheadings.)
This first-step advantage is tremendous yet since whenever you'd click on Thomas (= one of your children, in our example), you'd see all topics relating to him, doctors, education, assurances taken out for him, his car (which you bought for him, and of which you took the assurance, in a bunch with your others (=thus making it less expensive)), assets (= you've given to him, in order to save future inheritance tax), his wife, his children... and THEIR sub-topics...-
And whenever you want to see all assurances of all the members of your family (= even adult members, but again, one broker, one customer = yourself, in order to get all the bunch as cheap as possible), you click on "a" = "Assurances" in your super tree, and all assurances will be shown (= MI loads perhaps 15 or 20 topics into as many tabs).
The same way, you could have your super tree entry "Assurances", then "Houses" (=incl. the topic "Vacation Home"), then "Parents" (with the corresponding topics), then "Children", with 3 subheadings, 1 for each child, and this would give you the possibility to double-click on "Assurances" to load perhaps 15 topics, to double-click just on "Parents' Assurances" to load 4, to double-click on "Children's Assurances" to load 11 (=15-4) or to load just "Thomas' Assurances" = 3.
I concede that my assurances' example seems a little bit over-constructed, i.e. artificial, nobody would want to separate all his assurances into that many a file.
But imagine any legal stuff, any business management stuff, and it becomes clear that this super tree = topics list (=allowing for multiple, synchronized topic entries on multiple levels, i.e. under multiple headings / sub-headings) is of the utmost interest for serious work: It is like electronically fetching multiple files belonging together in various ways, be those files similar or disparate in kind, altogether with one double-click, instead of manually selecting those files one by one in order to load them, which is time-consuming and, worse, error-prone.
IX
Of course, you could do the same with global tagging, but there is no neat global tagging at this moment. Yes, you can do a global search for "tag:xyz" over ALL files, loaded and unloaded (and this is a very helpful feature), but this is real searching and takes many seconds (if you have many files, i.e. the results are NOT indexed, but for each such search, the tags have to be searched for anew, thru all given files. In my about 120 files, this takes very long; imagine a lawywer with 2,000 files or more: It would be impossible (since, again, there is no tag indexing beforehand, in order to throw out a list of all corresponding topics in a fraction of a second).
And then, after 1 minute or more waiting time, you'd have a search results list, from which you could manually select all items (=items within the topics, not the topics themselves: far from elegant, by the way!), in order to load the corresponding files: For a legal case, that could make 25 or more different files, to be loaded one by one, one after another, manually - that's awkward, that's not doable in everyday business: that's a deal breaker!
And then, I know that it would be possible to implement a function that would index all tags - and indeed, please implement it, it would be extremely helpful anyway! - and another one that would automatically load all topics concerned by a search result - again, please implement that, it could do no harm to anybody! -, but the real advantage that would be brought by a super tree, would be that it would be a super tree, i.e. a "graphical", "contemplateble" representation of "all things in your whole system", a representation that is always present in those "big tree systems", all the more when there is (real or rudimentary) cloning in them, and where the one and only tree represents all your stuff, expanding items showing then what MI handles as "topics" = separate files - this GLOBAL, AGGREGATE representation is nowhere in MI at this time, where thus you have to carry MANUAL LISTS (=manual even when maintening them in an MI item - awkward and error-prone), from which then you have to load your grouped items manually.
XII
In a second step, LINKING should be made possible within the tree, AND there should be a special link form, a link "load with": Every time a given topic is loaded, all those "load with" links should be loaded / opened at the link item.
I
As I developed before, MI is "1 Topic a Tree", whereas UltraRecall, for example, is "All in One Tree"; some people have one UR database with 1 GB or more of content, "pouring" subtrees to work on into different tabs: the tree itself (=containing all their stuff) is the supertree at the same time (but needs - and has - a (technically at least) very elaborate hoisting function in order to manage all that. (As stated elsewhere, after pouring those multiple subtrees into those multiple tabs, clutter begins, since their software design isn't at par with their softare encoding quality.)
And nobody would dare pouring all his staff into one single MI file, 1 GB of data or more - and why should he? Since there is this "1 tab 1 topic" system, including global searching (and a very fine separation of finds in those different topics, including discriminational collapsing / expanding for each topic containing finds).
I've had some 30 or 35 files in my unmentionable "basic" outliner, ActionOutline; in MI I've got some 120 for the time being, and soon I'll reach 150 or even 200; many people weren't that happy with MI's denomination of files as "topics", but as soon as you see the philosophy behind MI, naming those trees / files "topics" is the very best name for them indeed.
II
The cloning function in MI is very / too rudimentary. As you (possibly) now, by cloning, the current item is cloned (as in UR for example) with its subtree (in case there is any), and afterwards, the cloned item will be updated whenever the original item changes, and vice versa, the original item is updated with any changes in the clone. All this goes without saying, without that there would not be clones, but only copies, i.e. copied items that would not be updated by changes in the original item, and where changes would not affect the original item.
Where problems arise, is, first, in those dam**d sub-items of clones. Whenever you add or delete (or transfer to another place) any subitem of the original (or of the clone, or make changes to them, the "other party" will not be affected anymore by all this, and this way, clones in MI are of very limited use, or worse, their use could lead to many "errors" by leaving out information when you assume you dispose of information that in fact is not there, or had been updated, eliminated, whatever... but in the original item('s subtree) when you consult the clone, and vice versa.
The same problem arises whenever you do some changes within / to items in the subtree of such an original or of such a clone: Even knowing you are breaking the cloned synchronizity apart - that you are wrecking it -, you cannot but accept that fact, or manually re-do the cloning of the cloned head item, after each such a change occurs. This is awful and error-prone.
This way, the only conceivable use of MI's cloning function would be e.g. a list of customers where the first = main tree is by geography, and where you do a secondary tree, after the first, where you do clones, by ABC analysis, by size, by branch of business, or whatever. But then, there is the fine tagging feature of MI which would do all this much better, and then, even in this sparse possible example, the above-mentioned synch problem would arise as soon as you dared to do sub-items, e.g. for the commands of those customers, or for the contacts with them.
Why these problems? Let's face it, not synching but the cloned item itself, was a lot less work in programming this feature... This is not a critique, it's just a fact. Let's see the second problem with cloning in MI:
III
The second problem is, cloning is only available WITHIN the tree, within the given topic. Of course, when you have a program like UR where, by it's "definition", all your stuff (= all your stuff of a certain kind; of course there could be reasons to put all your strategy in one tree=file, all your customers into another, and all your hobbies into a third, if you want to do so) is in the same monster tree, this limitation of all those programs, "cloning only possible within the tree", does not really hamper you, since your "Action Section" / "ToDo Section" will be in that one monster tree indeed, rather at the beginning of it, on top of your various "stuff sections" containing perhaps more than 1 GB of "reference" data.
The same, in such a system, for those various not Allen's "Getting Things Done" or other project management action triggers, all together instead of dispersed within 100,000 or more items in your monster tree - and which might be considered technically as clones, but are in fact references to that various stuff damped into the whole, but for all those REAL clones, as we might call them, where some reference materials are needed in various sections where they belong. The classical example of this is, where to put car insurance, under "car" or under "insurances"? With a cloning system like that in UR, you'd have "car insurance(s)" under the "car(s)" section AND under the "insurance(s)" section of your very big tree; the same with house insurance; the same with individual insurances of each member of your familiy: Their respective insurances would be dispersed in the tree, as would perhaps the different schools your kids attend, each such a doc under the corresponding child heading, but at the same time, all insurances (and their brokers) would be grouped together under "Insurances", all schools (and teachers' telephone numbers e.g.) would be grouped together under "Education", and for every subject belonging to different headings, you'd find entries under both headings: this is the perfect example of the real advantage of digitization over paper files: the third dimension is available whenever you need it, instead of manually-to-be-sychnronized reference entries (which are very error-prone and awkward to maintain).
IV
Another example, very important this one, since it does not imply a one-and-single "we stuff all our things into our system, and then it will stay without much change afterwards, except for content (=but not for "constructing the system"):
You are a laywer, you have different cases. You are a consultant, you have cases. (You see, I am interested in high-paid professionals who do real work with their working program, and I want it to be MI...) Now, what do you do? You do a heading (=in UR) for your case, say "John Smith vs. the Government". And then, you fill up that case with reference material. Of course, in continental legal systems, your main base would be some codes of law; in many countries, the "Civil Law" comprises some 2,000 or 3,000 articles, often subdivided into paragraphs. So you would need this "Civil Law" in its entirety for all your civil cases, but then, for each case, you would need SPECIAL PARTS of these laws, and you would need specific rulings of other, similar cases, or cases similar in certain aspects to your current one.
This way, you would need to integrate a lot of various stuff into each of your individual cases, some rather general, some perhaps very specific, some at the very first beginning of your case, some rather far behind in the development of your case; some reference material then would not apply and would have to be replaced by some other, and so on; some standard material could be put there by your secretary, for further stuff your own expertise would be in demand for carefully chosing it.
Either way, some reference material would lay dormant for years, just in case of, and other reference material would be put into almost each case, or, as I said, various parts of it, or even "standard parts" of it, "standards" if you want.
A consultant of any kind would do the same, and of course, "reference material" would not only be real reference stuff, but very often parts of other projects that could be re-used: Thus, strictly separating "reference material" from "project material" is only valid for any given project; as soon as a project - or a legal or whatever "case" is completed, almost all of this material could be considered reference material for any new project / case.
V
It goes without saying that a big tree with real cloning (= cloning incl. sub-items), like in UR, seems to be perfect, at first glance, for this real work (=whereas "I do my recipies with XYZ" is not real work), whereas MI does not seem to be suitable for this work... for the time being.
There is a big flaw in the first concept, the "One Big Tree with ToDo's, then Projects, then all that Reference Stuff, and Perfect Cloning Holding It All Together" - your projects are all in that big tree, whereas legal cases should be separated, commercial projects should be separated, pychoanalytic work and everything... should be separated BY CUSTOMER. No lawyer stuffs different cases into one lever file... in UR or other "big trees", electronically, he would be forced to do that.
VI
Whereas in MI, he would have his dozens, his hundreds of individual topics, one for each case / project... but how to collect all these disparate reference materials in a neat and easy way? Or put it another way: The third dimension in electronic paper work has to be file-spanning, must not be within-the-file only, and that's a MUST!
VII
So, first, we need that SUPER TREE. What's a super tree? A tree that is a three-dimensional file system, for all topics, and superimposed on them, to begin with. A tree in which are automatically entered, under its heading "IN" or "NEW" or whatever, all newly created topics, and from which "in basket" you would shuffle all your topics into whatever heading or subheading (!) there in which you want them to be. Thus, you would put your topic cat (or whatever you name it, but it would mean "Car Assurance Thomas") underneath the headings "Cars", "Assurances" and "Thomas", and you'd put your topic "cb1" (= Customers Biz 1, understood you wear several hats) under the heading "Customers" and under the heading "Biz 1".
Whenever you rename or delete a topic - remember, here at step 1 we are strictly on the topic = file level -, it must be updated in this super tree.
This super tree should be accessible at any moment in the task pane, like the filter and the tags list should be accessible there, and in fact, very soon, this content of the task pane would soon become its default content, and it would be in this super tree that you would normally switch from 1 "tab" to another, clicking on the headings in the super tree (and loading the corresponding topic by that if it's not yet loaded anyway).
VIII
So what, up to now? Where's the interest of having this super tree, together with its topics list (with multiple entries of topics)? In this first step, the interest lays in... the HEADINGS!
Since double-clicking on the headings would load all corresponding topics !!!
(Whereas simple clicking on the heading would expand / collapse its topics or subheadings.)
This first-step advantage is tremendous yet since whenever you'd click on Thomas (= one of your children, in our example), you'd see all topics relating to him, doctors, education, assurances taken out for him, his car (which you bought for him, and of which you took the assurance, in a bunch with your others (=thus making it less expensive)), assets (= you've given to him, in order to save future inheritance tax), his wife, his children... and THEIR sub-topics...-
And whenever you want to see all assurances of all the members of your family (= even adult members, but again, one broker, one customer = yourself, in order to get all the bunch as cheap as possible), you click on "a" = "Assurances" in your super tree, and all assurances will be shown (= MI loads perhaps 15 or 20 topics into as many tabs).
The same way, you could have your super tree entry "Assurances", then "Houses" (=incl. the topic "Vacation Home"), then "Parents" (with the corresponding topics), then "Children", with 3 subheadings, 1 for each child, and this would give you the possibility to double-click on "Assurances" to load perhaps 15 topics, to double-click just on "Parents' Assurances" to load 4, to double-click on "Children's Assurances" to load 11 (=15-4) or to load just "Thomas' Assurances" = 3.
I concede that my assurances' example seems a little bit over-constructed, i.e. artificial, nobody would want to separate all his assurances into that many a file.
But imagine any legal stuff, any business management stuff, and it becomes clear that this super tree = topics list (=allowing for multiple, synchronized topic entries on multiple levels, i.e. under multiple headings / sub-headings) is of the utmost interest for serious work: It is like electronically fetching multiple files belonging together in various ways, be those files similar or disparate in kind, altogether with one double-click, instead of manually selecting those files one by one in order to load them, which is time-consuming and, worse, error-prone.
IX
Of course, you could do the same with global tagging, but there is no neat global tagging at this moment. Yes, you can do a global search for "tag:xyz" over ALL files, loaded and unloaded (and this is a very helpful feature), but this is real searching and takes many seconds (if you have many files, i.e. the results are NOT indexed, but for each such search, the tags have to be searched for anew, thru all given files. In my about 120 files, this takes very long; imagine a lawywer with 2,000 files or more: It would be impossible (since, again, there is no tag indexing beforehand, in order to throw out a list of all corresponding topics in a fraction of a second).
And then, after 1 minute or more waiting time, you'd have a search results list, from which you could manually select all items (=items within the topics, not the topics themselves: far from elegant, by the way!), in order to load the corresponding files: For a legal case, that could make 25 or more different files, to be loaded one by one, one after another, manually - that's awkward, that's not doable in everyday business: that's a deal breaker!
And then, I know that it would be possible to implement a function that would index all tags - and indeed, please implement it, it would be extremely helpful anyway! - and another one that would automatically load all topics concerned by a search result - again, please implement that, it could do no harm to anybody! -, but the real advantage that would be brought by a super tree, would be that it would be a super tree, i.e. a "graphical", "contemplateble" representation of "all things in your whole system", a representation that is always present in those "big tree systems", all the more when there is (real or rudimentary) cloning in them, and where the one and only tree represents all your stuff, expanding items showing then what MI handles as "topics" = separate files - this GLOBAL, AGGREGATE representation is nowhere in MI at this time, where thus you have to carry MANUAL LISTS (=manual even when maintening them in an MI item - awkward and error-prone), from which then you have to load your grouped items manually.
XII
In a second step, LINKING should be made possible within the tree, AND there should be a special link form, a link "load with": Every time a given topic is loaded, all those "load with" links should be loaded / opened at the link item.