[clfswm-devel] Request for comments: changing the meaning of group in CLFSWM.
Cyrille Thouvenin
cl.thouvenin at laposte.net
Sun Mar 23 09:48:19 UTC 2008
>>>>> "PB" == Philippe Brochard <pbrochard at common-lisp.net> writes:
Hi,
PB> Cyrille propose to change the meaning of groups in CLFSWM:
PB> "I am trying to make a case to change the meaning of group in
PB> CLFSWM. For me, group is a better word for an arbitrary
PB> ensemble. In CLFSWM, groups are not so arbitrary as it is link
PB> to a geometry inclusion relation. So, I would prefer to use
PB> frame in that particular case as this word has a geometrical
PB> sounding."
PB> You can see the thread on the trac:
PB> http://trac.common-lisp.net/clfswm/wiki/UserAPI
PB> For actions on children with no geometry relationship (ie:
PB> children in arbitrary groups) I propose a tag based system.
PB> Each group have a list of tags and we can perform actions from
PB> those tags.
PB> And you, what is your prefered system to interact with
PB> arbitrary children?
PB> I'd like to have some comments before doing anything so brutal
PB> on the code :)
Here is a comparison I make between a tag system and this group system:
Definition:
- Group:
- An item is a group that contains itself. A group can also be a
member of another group. So we have a DAG representation.
- An extension so as to have a namespace organisation: Each group
has a name that must be unique in any membership it takes part
to. That could be also the number in the list of member for each
membership (relaxed constraint on the uniqueness). So, it is
possible to identify the group thanks to a path in the DAG. There
is a special group which is the root.
- Tag:
- Each item can hold multiple tag. So, we also have a DAG
representation.
- A tag is a name. A set is directly named by its tag. So, there is
one namespace.
Similarities:
- The model behind the tag system is the same as the group system,
that is a DAG; Each item can be a member of multiple set.
Particularity of a tag system:
- Tag are position on a item by item basis
- No operation on set
- Simpler to implement
Particularity of the group system:
- Problem with group containing itself: This constraint must be enforced.
- With path, multiple namespace can be represented. Need for a current
group a la "cd" (the Unix command) to ease navigation.
- Set operation (inclusion). A whole group of item can become member
of group and if an item is added to the first group, it become
automaticaly member of the second group. While performing a
new membership, the uniqueness of the name must be enforced.
- More features, but more complexity in the implementation.
Finally, if you have a group system, you have a tag system: In a group
system, you could have the groups that are a direct children of the
root group. Those child groups are the tag.
Feel free to comment,
Cheers,
--
Cyrille
More information about the clfswm-devel
mailing list