Clones in Freeplane.

Re: Clones in Freeplane.

Postby pilominco » Thu Feb 06, 2014 11:01 am

THIRD: ABOUT EXTENDING THE SUGGESTED VIEWS PARADIGM EVEN BEYOND CLONES AND INTRODUCING WHAT I CALL SPIDERS
Now that I come to think about it, maybe the “VIEWS PARADIGM” can be extended to meet all this kind of things, from clones to concept mapping. I know. Like Dimitry pointed out, freenodes can be used for cmapping. But I detect some demand from the public to have a bench of totally free options in the program... Nodes, networks, looping, whatever. I strongly feel that we could have a traditional chore, with our perfectly defined tree with single parents, and all the rest implemented through a single paradigm: views. The cloning would be a view: simply, a visual representation of a branch, attached somewhere else. Modifying of some cloned node in the cloned branch would change the original node towards the leafs, because views are dynamic. But it wouldn't change the real tree towards the root node, because that is the base structure of Freeplane.
Other applications would be: a network loop or any possible diagram. You just get some nodes (belonging strictly to the real underlying map), and you connect them like you want: one to many, many to one, loops... All those connections would be navigable with the keyboard. But those connections would be radically different from the underlying tree hard inheritance. I would, thus, try to integrate freenodes with clones and other things into a single mechanism and paradigm. A mechanism safely isolated from the original tree.
And we would get the option to activate or deactivate several views, maybe with checkboces in a menu, depending on the different users and their needs.
We could extend the program in this way. We would preserve it's wonderful and strongly enforced tree chore, and at the same time make room for all kinds of unrestricted things. Some people want total freedom. If we have to incorporate those users, let's do it for marketing reasons. But let's keep our golden chore well preserved and safe all along this trip.
Am I wrong? Aren't “views” the right mechanism to implement all this new class of functionality?

How would I do that? For every node in a view, I would implement the possibility to navigate and reach the nodes that are below it in the real tree. Meaning, the real tree would still be connected to the views in the bottom direction. It would still be foldable, etcetera, like the usual real tree. At the same time, we would have free connections through views. We could thus have like spiders: A loop of nodes connected through the "view special way of connecting" (and different from the "hard coded-traditional-sigle parent Freeplane inheritance"). That would be the body of the spider. Then, we would have the legs of the spider through connections that belong to the real tree. In fact, in this way we could show or hide different views, and then we would have and show or hide different bodies for the spider. The legs of each of those cloned nodes would be the same, obviously, because they belong to the real tree. This is pretty similar to the present freenodes, and I don't know the details whether it would be a significant deviation from that already existing functionality. But, at the same time, it seems to me that it would allow for loops that start at different levels of depth. Freenodes only allow for this to happen at the first level of depth.

Through this mechanism, I don't see many restrictions or barriers. For example, if some user does not need a classical tree, it can start directly with a view. In this case, all the view-nodes would still be hard stored in a classical Freeplane tree, only they would all be siblings. The real Freeplane tree would have in this case a depth of one. And the loops and all that would be represented by this special set of connections that I call “views”. We could also organize the nodes in different ways, each stored in a different view consisting of a different set of viewing-connections.
I feel that this paradigm opens up three basic possibilities. 1) Preserve the strongly limited logical traditional tree. 2) Implement the clone thing. 3) Implement free drawing between nodes that are able to represent networks, conceptual-mapping... 4) We would have perfect freedom from the user to play with her concepts, and still preserve an underlying traditional tree structure for the scripts to know how to proceed. The sripts would operate on the real tree, like they do now. I don't see, yet, much reason for the scripts to be extended to the views. The good thing about it is that the data model of Freemind would not change deeply.
Anyway, this is just a proposal. Dimitry and Volker now better. I am stepping into their world and it could be nonsense. Or it may be useful. Anyway, it is how I see it, if we want to keep growing and incorporating new users whithout loosing the old ones. After all, growing is about aquiring customers, but also about keeping the old ones.
(Sorry again about the length. And sorry if all of this is trivial because it was already perfectly obvious to most people here.)
pilominco
 
Posts: 32
Joined: Tue Jan 10, 2012 8:21 am

Re: Clones in Freeplane.

Postby kenfhill84034 » Fri Feb 07, 2014 2:55 pm

Please help me to define how exactly the clones should work. Currently I think that cloned should share everything except for folding state and incoming connectors and links which always refer to a special position. It were however possible allow to split information contained in the node in cloned and position specific part. Is someone interested in that?

I like the idea of clones. But it would be handy to be able to (1) share some sub-nodes among all the related clones while at the same time (2) create unique sub-nodes depending on parent.

As a simple example: I have 2 parent nodes: dog and cat. I'm working on dog and make a node "characteristics" with subnodes like "breathes" "eats" "4 legs". I could clone "characteristics" and put it under cat as well as dog. But I want to add "bark" for dog and "meow" for cat.

But I also want to add "2 eyes" and have it apply to all instances of the clone. It would be nice to be able to create either kind of subnodes to a clone.
kenfhill84034
 
Posts: 17
Joined: Fri Jan 31, 2014 3:39 am

Re: Clones in Freeplane.

Postby seb4stien » Sat Feb 08, 2014 12:39 pm

I don't have any use case regarding "clones", but the discussion makes me think of "hard links" under linux filesystems (or real links under windows 'mklink /h').

This implementation would be similar (the same ?) as the "view" mentionned by pilominco.

There would be no change in the fileformat nor the tree model, "just" a new kind of attribute, e.g.
<node ID="123" HARDLINK="456" />

At display time, a node with a HARDLINK attribute would be rendered has the target ID (+ an icons to identify the link).

In this model, a node still only has one parent.
There could be a new function "getReferences", to answer some use cases.

This implementation would help to show the same information at different places, but would preserve the "tree model".

Given the following map :
Code: Select all
a
\- b
   \- b1 - toto
\- c
   \- c1

Creation a hardlink to b1 under c1 would show this way :

Code: Select all
a
\- b
   \- b1 - toto
\- c
   \- c1 - *b1 - toto
seb4stien
 
Posts: 32
Joined: Sat Jun 08, 2013 8:28 am

Re: Clones in Freeplane.

Postby dpolivaev » Sat Feb 08, 2014 3:43 pm

Unfortunately it is not so easy because there links and connectors between nodes. For example if there is node A which has 1 clone and node B which has 2 clones and you connect some view of node A to some view of node B there is no general algorithm telling how to create links from other views of node A to a view of node B. Sometimes it seems to make sense to connect all views of A to the same view of B, but if the connected A and B are contained in the same cloned subtree only once then there are other strategies. How should I handle it? Not replicate connectors at all?

Clones and connectors.png
(43.87 KiB) Downloaded 219 times


The same problems arise from all kinds of (hyper) links going from one to another node.
User avatar
dpolivaev
Site Admin
 
Posts: 667
Joined: Sat Jul 23, 2011 1:21 pm

Re: Clones in Freeplane.

Postby pilominco » Sat Feb 08, 2014 11:17 pm

Seb4stien sees it exactly like I do, and he explains it better than me. Unfortunately, I don't understand Dimitry's objection, so I can't contribute any ideas about it besides the suggestion to forget about different views and keep just one: For clarity, the set of all sub-branches that stem from any cloned nodes could be called “The View”. We would then have the “real” tree, and the “view” of the branches copied from that real tree wherever we have a cloned node. Any connectors that link real nodes could be preserved in the cloned branch only if they begin and also end in the cloned branch. If they begin in that cloned branch but end somewhere else, out of the cloned branch, I would eliminate them. Otherwise we would get several connectors ending in the same real destination and coming from different parts of The View, which seems messy and not very useful. Alternatively, Dimitry's suggestion to make links depend on position seems wise. And if so, The View would not inherit connectors from The Reality, just the tree structure.

In any case, what worries me more is still circular reference. Seb4stien, what happens in your example if in a third step, by any chance, we assign node “toto” with a hardlink to node “c”? It happens that we get a loop. How could we manage that? On the other hand, I have always believed that the moment you break the traditional single parent strict policy there is no way to avoid self-reference and logical loops. But there may be a coding mechanism to prevent loops or to deal with them.
pilominco
 
Posts: 32
Joined: Tue Jan 10, 2012 8:21 am

Re: Clones in Freeplane.

Postby elwood151 » Sun Feb 09, 2014 6:08 am

viewtopic.php?f=1&t=882

@Dimitry:
thanks for thinking about this feature - I think that it is extremely useful and powerful (even if it adds some more complexity).

I apologize for not having found the time to read the whole long discussion (like the comments of andresf et al.) in detail.

I absolutely vote FOR the clone feature
in the sense of
* having a node with the same content on different places - even in different .mm files
* and synchronizing it in any direction, if it has changed in one of those places.
(I see that this might lead to conflicts like in version control and might create complex problems..)

I've recently seen a very powerful and impressive demonstration of the (commercial) MindJet software in combination with Microsoft SharePoint which lets people do just that:
using nodes (representing tasks in a project) in many mindmaps and sharepoint lists simultaneously which allows flexible and individual views on projects and tasks for anybody involved with his own focus.
a very short overview is demonstrated here: http://www.youtube.com/watch?v=v5jn3PfYbeg

I see a similar use case like johnrh and I described it accidentally some minutes ago in another thread before finding out here that it might became reality soon: 8-)
viewtopic.php?f=1&t=878&p=4440#p4440
elwood151 wrote:I would wish to have a feature which lets me "clone" a node to another place and update it (bidirectionally automatically) in case of changes, so kind of a "hardlink" between 2 nodes.
Why?
I really store a lot of information in mindmaps, so it would be not possible or practical, to have everything for all my projects in one single map.
So for each project (at least) I'd like to have one mindmap with information about notes, meetings, status, tasks, milestones, etc.
If you have many projects simultaneously, the most important thing (IMHO) is getting an overview easily and anytime about status and activities of ALL relevant projects.
So I'd also like to have one master-map which gives an overview about all projects and which also gives an overview about all current tasks (from all projects!) - from my knowledge, this is not possible out-of-the-box at the moment, to define a node (task) in one mindmap and then also see its contents (updated dynamically) in another (e. g. "master"-mindmap).


johnrh wrote:Hi:
Count this as my "vote" towards clones -- the use-cases I envision are around categorization of data in multiple places (so, viewing by time and subject, and keeping them in sync -- "things I'm working on this week" and "things I'm working on for the XX project", "things I'm working on for the XX project" and "things I'm waiting for YY to do", etc.). Filters can provide much of this functionality, but I believe cloned nodes would be more natural, since the structure would be maintained in the outline, rather than implied by attributes used for filtering.

I use other technology which supports clones (e.g. leo, http://leoeditor.com), and while I use leo more as an IDE, there's a body of people who use it as a knowledge management tool.

Clones would be very useful to me.

Thanks for a great tool,

Regards,
=John
elwood151
 
Posts: 24
Joined: Fri Jul 06, 2012 1:41 am

Re: Clones in Freeplane.

Postby boercher » Mon Feb 10, 2014 8:58 am

elwood151 wrote:I absolutely vote FOR the clone feature in the sense of
* having a node with the same content on different places - even in different .mm files

Support for clones across multiple mind maps wasn't on agenda so far I think. But I agree that there would be several interesting use cases for that.

Volker
boercher
 
Posts: 644
Joined: Tue Jul 26, 2011 7:13 am

Re: Clones in Freeplane.

Postby leostaley » Wed Mar 05, 2014 7:19 am

I like being able to categorize things flexibly, and clones make that easier. Let's say I find a website I want to bookmark.

I want to categorize it
as being unread,
as being in under node "Classes > Cool Class 101 > useful research items"
as being under the node "Classes > Cool Class 102 > useful research Items"
As being under the node "Personal > Topic > Computers > widgets"

The world is not all black and white, non-reflexive, directly hierarchical categories. This would help me keep track of things in the way that is natural to me.

I'm very much in favor of cloning nodes. I want it more than any other proposed feature addition with the possible exception of automatic moving of nodes, as explained in my other thread.
leostaley
 
Posts: 19
Joined: Tue May 21, 2013 8:45 pm

Re: Clones in Freeplane.

Postby jokro » Wed Mar 05, 2014 2:55 pm

Dimitry,
Unfortunately it is not so easy because there links and connectors between nodes. For example if there is node A which has 1 clone and node B which has 2 clones and you connect some view of node A to some view of node B there is no general algorithm telling how to create links from other views of node A to a view of node B. Sometimes it seems to make sense to connect all views of A to the same view of B, but if the connected A and B are contained in the same cloned subtree only once then there are other strategies. How should I handle it? Not replicate connectors at all?


Does this situation describe the picture of the enclosed image ?
Are you asking how to find in the blue branch the node corresponding to "B"?
In this case the connector could be replicated to the node with (1) the same relative sibling position - in this case index of B is = index of A + 1; and (2) having the right node.text (B). If either of these conditions are false, the connector is not relicated. What do you think ?

Regards
Jodi
jokro
 
Posts: 486
Joined: Sun Jul 24, 2011 2:56 pm

Re: Clones in Freeplane.

Postby leostaley » Sat Mar 08, 2014 6:05 am

Dimitry, What is the ETA for a stable version with clonable nodes?
leostaley
 
Posts: 19
Joined: Tue May 21, 2013 8:45 pm

PreviousNext

Return to Open Discussion

Who is online

Users browsing this forum: Alexa [Bot] and 1 guest