Data classification with Freeplane

Data classification with Freeplane

Postby dpolivaev » Mon Aug 15, 2011 7:20 pm

I would like to talk about the new conditional styles introduced in Freeplane 1.2.x . They open some new possibilities in modeling relationships between data. At the same time new functionality looks too complex, redundant and not well thought. I hope that we can find some ideas how to use and simplify it.

As I already wrote node styles actually represents data classes a node belongs to.

Currently each node may be assigned a style by five (!) different methods:

1. directly, using style selection drop-down box,
2. conditionally, using "conditional styles for map", which apply to every map node,
3. conditionally, using "conditional styles for node", which apply to one node only,
4. conditionally, using conditional styles assigned to a style nodes from style editor.
5. Style "Default" is automatically assigned to every node.

In the latest preview version 1.2.8_05 information about all node styles is displays on buttons on the formatting panel. Button titled "Node conditional styles applied to node" shows styles assigned using methods 1, 3 and 4, and the second button titled "Map conditional styles applied to node" shows styles assigned using method 2 and related styles from method 4.

Method 4 seems to be very powerful for modeling relationships between node classes. Each style represents a class. Unconditional assignment of other styles to it means generalization. For instance if you have style named "giraffe" and style named "animal" you can assign style "animal" to style "giraffe". This way each node which has style "giraffe" automatically gets style "animal" too.

Conditional assignment of styles means specialization. For instance to define "giraffe" as an "animal with a long neck" one can assign style "giraffe" to "animal" with condition "Attribute" "Neck" "equals to" "Long". So all nodes with style "animal" and attribute "Neck" with value "Long" automatically get style "giraffe".

Both assignments work recursively. For instance if you define style "giraffe baby" and assign it styles "giraffe" and "baby", all nodes of style "giraffe baby" also have style "animal".

Filter condition "Style" "Contains" can be used to test if a node has some particular style.

Because each node has style "Default", assigning of (conditional) styles to style "Default" have the same effect as definition of "Map conditional styles". It is the redundancy I mentioned earlier.

So as I already wrote the whole looks extremely powerful but designed not clear enough :). Therefore I would like to get your feedback about what should be changed before the release.

Kind regards,
Dimitry
User avatar
dpolivaev
Site Admin
 
Posts: 667
Joined: Sat Jul 23, 2011 1:21 pm

Re: Data classification with Freeplane

Postby quinbus » Mon Aug 15, 2011 8:29 pm

dpolivaev wrote:
[...]

4. conditionally, using conditional styles assigned to a style nodes from style editor.

[...]

Method 4 seems to be very powerful for modeling relationships between node classes. Each style represents a class. Unconditional assignment of other styles to it means generalization. For instance if you have style named "giraffe" and style named "animal" you can assign style "animal" to style "giraffe". This way each node which has style "giraffe" automatically gets style "animal" too.

[...]

Kind regards,
Dimitry


Dimitry, I'm happy to play the role of the least common denominator--if Q! can understand it, then it must be something that ANYBODY can understand! :oops:

I need a little help grasping method 4... is this a new capability with this version? If so, I'm not sure how to use it and how it might differ from a "Map" conditional variable or a node-specific. Sounds like it could be a combination of both?

Thanks in advance... :D

Q!
quinbus
 
Posts: 228
Joined: Wed Jul 27, 2011 4:04 am

Re: Data classification with Freeplane

Postby dpolivaev » Mon Aug 15, 2011 8:39 pm

I need a little help grasping method 4... is this a new capability with this version

It comes probably in 1.2.8_04. But I postponed this post until now. !.2.8_05 makes just some interface changes.
You can use it as follows:

1. Open styles editor using Styles->Edit styles.
2. From the style editor select some style node and edit its styles using either an action "Styles->Edit conditional styles for node" or a button with a titled border "Node conditional styles applied to node" which start the same dialog.

Dimitry
User avatar
dpolivaev
Site Admin
 
Posts: 667
Joined: Sat Jul 23, 2011 1:21 pm

Re: Data classification with Freeplane

Postby seatrout » Tue Aug 16, 2011 6:49 am

If I may stick an oar in here ...

I don't understand the role of "conditional styles for node", which seems to me an elaborate redundancy. If I want to style one node only, I can do that directly. If I want a conditional style it will be informative only if it applies to the whole map. An example:

Suppose I have a style for "direct quote" -- I'm reading a book, making notes, and want to preserve the words cited, so these appear in italic on a blue background. That tells me, at a glance, roughly how many quotes are on the map.

But this is a hard quote to apply conditionally without errors. If I paste the quotes in a hurry some markers for the condition are missed. So sometimes I will have to apply the same style manually.

So far so good.

But what possible use is there for applying a conditional style to one node only?

Andrew
seatrout
 
Posts: 88
Joined: Mon Aug 15, 2011 8:32 pm

Re: Data classification with Freeplane

Postby jokro » Tue Aug 16, 2011 7:22 pm

Dimitry,
In developing the FP 1.2 documentation I applied the functionality of the conditional styles as much as possible. I use this concrete, specific example to reply to your question.

Currently each node may be assigned a style by five (!) different methods:

I think you missed a 6th option: the drop dowm box in the workmenu. Disadvantage: need of scrolling and only one style pro node.

1. directly, using style selection drop-down box,

Unlike option 6 it It allows you to apply multiple styles. In developing the doucumentation of FP 1.2 I would have used this option most of the time. Also because option 6 needs too much scrolling if one is using a bigger number of styles.
Proposal: put option 1 in the workmenu in stead of option 6.

2. conditionally, using "conditional styles for map", which apply to every map node,

In case of the FP documentation I used this option to implement revisions in a more flexible way than de standard revision menu. It is very powerful.

3. conditionally, using "conditional styles for node", which apply to one node only,

I did not find a useful instant for this option in developing the FP documentation given the limitation that it is not possible (yet) to filter for the style of ancestors. The latter would make possible to inherit styles, which I think would be an important application.
Proposal: add a filter options style of parent and style of ancestor. It would make sense to have also the reverse: style of child and style of descendant.

4. conditionally, using conditional styles assigned to a style nodes from style editor.

This seems an powerful capacity. I did not find an application in case of the FP documentation. If it would become possible to inherit content automatically also with exisitng nodes, then I think the applicability would increase.

5. Style "Default" is automatically assigned to every node.

This is a basic functionality. As you stated, map conditional styles could be implemented using conditional map style for the default style. The disadvantage of this option is that it is more difficult to understand and takes more clicks to do so. A way out might be to implement the conditional map styles with the defauld conditional style, but presenting it as conditional map style.

Finally, I like very much the way how you integrated conditional styles in the properties panel. I have connected the panel to an F-key. I wonder if it the panel should get a standard, predifiend F-key.

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

Re: Data classification with Freeplane

Postby dpolivaev » Tue Aug 16, 2011 8:13 pm

Jokro,
I did not find a useful instant for this option in developing the FP documentation given the limitation that it is not possible (yet) to filter for the style of ancestors. The latter would make possible to inherit styles, which I think would be an important application.
Proposal: add a filter options style of parent and style of ancestor. It would make sense to have also the reverse: style of child and style of descendant.


Please explain what you mean: why filtering for styles of ancestor nodes helps to inherit styles?
Now you can inherit styles editing conditional styles for styles as I explained in point 4. "conditionally" just means that you use dialog for conditional styles, but the condition can be set to "always" (which actually is a default.)

And the related filter is (currently) Styles->contains->"some style"

Dimitry
User avatar
dpolivaev
Site Admin
 
Posts: 667
Joined: Sat Jul 23, 2011 1:21 pm

Re: Data classification with Freeplane

Postby jokro » Wed Aug 17, 2011 6:03 pm

Dimitry,
I want a node to apply a particular style if its current parent or child node is applying the style. This could be implemted if the condition parent/child style could be checked (and similarly ancestor/descendant style).
Example 1. In the documentation I would like to define that child nodes of a node which I give style "example" automatically shows this style too. In fact it is the same behaviour you use to inherit edge styles with "as parent".
Example 2. Inversely, if a child node gets style "revision", I want all ancestors to show this style too. This is especially useful in case the node is folded. In fact this is the same behaviour which exist for the clock-icon in the calendar function.
Example 3 Suppose a GTD-map with two top level nodes called actions and wating respectively, each with its own style. When I append a node to one of the two nodes, I want it to automatically take over its (branch)style; and moving the appended node to the other branch should change the displayed style accordingly.

For Example 3 I use now "Parent Text" = "action" resp. "waiting" as a filter condition for the resp. style to be applied. It works as a work around. I would like a more principled approach using styles. See the example, move the node actionOrWaiting and you see what I mean...

In addition to my comment in the previous post I would like to raise another point. In the styles list the predefined styles take up a lot of space in the list of styles, also if they are not used because the user defines his own styles. This is especially boring if one has to scroll for the home made styles to appear. I would like the user defined styles as the first items in the style list in stead of as the last items.

Regards,
Jokro
Attachments
demoStyleInheritance.mm
(3.09 KiB) Downloaded 50 times
jokro
 
Posts: 486
Joined: Sun Jul 24, 2011 2:56 pm

Re: Data classification with Freeplane

Postby dpolivaev » Thu Aug 18, 2011 9:24 pm

Jokro,

I understand what you propose. I am afraid it is too difficult to implement so that the program still works fast enough because if style of every node can depend on every other node it should either be recalculated for each node change or dependencies between node styles should be explicitly analyzed. I am sorry I shall not try to do it.

Regards, Dimitry
User avatar
dpolivaev
Site Admin
 
Posts: 667
Joined: Sat Jul 23, 2011 1:21 pm

Re: Data classification with Freeplane

Postby jokro » Thu Aug 18, 2011 9:33 pm

Dimitry,
In the extreme you are right. However, in practice one will use only one or two levels and for this it is very useful. The solution with the parent text is a bit awkward work around for this. May be at a later time ? :roll:
regards
Jokro
jokro
 
Posts: 486
Joined: Sun Jul 24, 2011 2:56 pm


Return to Open Discussion

Who is online

Users browsing this forum: No registered users and 1 guest

cron