emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* DAG structure / hard links /  shared subtrees
@ 2011-12-22 10:11 Jan Kybic
  2011-12-30 13:13 ` Eric S Fraga
  0 siblings, 1 reply; 3+ messages in thread
From: Jan Kybic @ 2011-12-22 10:11 UTC (permalink / raw)
  To: emacs-orgmode

Dear org-mode users,

this is my first post, so let me first state that I am using org-mode
more and more for organizing my daily agenda and I find it really
useful.

I have a feature request. The structure of the org file is a tree. 
I wondered if it could be made a directed acyclic graph (DAG) instead. 
In other words, could a subtree be shared between two trees? In yet
another words, a kind of Unix directory structure with hard links.

One possible use case is as follows: I am preparing a meeting that
concerns several projects. I have my org file structured by projects. I
want to prepare an agenda for this meeting, which would contain the
issues to discuss from the projects. I want to be able choose the order
the issues. During the meeting, I want to add notes. Right now, I see the following
options:

a) I can copy the subtrees corresponding to issues from the projects. 
   However, if I later edit either of the copies, I would need to
   synchronize the changes manually.

b) I can make an internal link from the agenda to the issues. However,
   the agenda would then not contain the full detail of the issues, just
   a short part of the headline. During the meeting I would have to jump
   there and back.

c) I can create the meeting agenda dynamically, by assigning tags to
   projects and creating a sparse tree, e.g. from the Agenda
   buffer. However, this requires me to mark every issue to be discussed
   with a meeting-specific tag. I do not have much control over the order
   in which the issues appear. I cannot structure them. The generation
   takes time. And it is not straightforward to add new items to the
   meeting.

I am not familiar with the internals of the org-mode but I can envision
several possible implementations:

a) Enhance existing links so that they can be expanded in-place to show the
   whole subtree, not just a start of the headline. Ideally, it should
   be possible to make changes there but a read-only access would also help.

b) Physically copy "linked" trees to the new location. Make the copies
   share an Id but have a unique subId. Then when one of the copies is
   changed, the changes are propagated into other copies. I believe 
   a lot of the logic could be borrowed from org-mobile, which also
   performs synchronization.

What do you think, does it sound feasible? Is there any other way to
achieve what I want with org-mode? 

Thank you very much and keep up the good work.

Yours,

Jan


-- 
-------------------------------------------------------------------------
Jan Kybic <kybic@fel.cvut.cz>               tel. +420 2 2435 5721 or 5877
http://cmp.felk.cvut.cz/~kybic                              ICQ 200569450

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: DAG structure / hard links /  shared subtrees
  2011-12-22 10:11 DAG structure / hard links / shared subtrees Jan Kybic
@ 2011-12-30 13:13 ` Eric S Fraga
  2011-12-30 21:11   ` Jan Kybic
  0 siblings, 1 reply; 3+ messages in thread
From: Eric S Fraga @ 2011-12-30 13:13 UTC (permalink / raw)
  To: kybic; +Cc: emacs-orgmode

Jan Kybic <kybic@fel.cvut.cz> writes:

> Dear org-mode users,
>
> this is my first post, so let me first state that I am using org-mode
> more and more for organizing my daily agenda and I find it really
> useful.
>
> I have a feature request. The structure of the org file is a tree. 

yes, due to the basis being an outline.

> I wondered if it could be made a directed acyclic graph (DAG) instead. 
> In other words, could a subtree be shared between two trees? In yet
> another words, a kind of Unix directory structure with hard links.

not possible unfortunately.  

> One possible use case is as follows: I am preparing a meeting that
> concerns several projects. I have my org file structured by projects. I
> want to prepare an agenda for this meeting, which would contain the
> issues to discuss from the projects. I want to be able choose the order
> the issues. During the meeting, I want to add notes. Right now, I see the following
> options:
>
> a) I can copy the subtrees corresponding to issues from the projects. 
>    However, if I later edit either of the copies, I would need to
>    synchronize the changes manually.

or simply refile the notes?  I always go through the notes I have taken
at a meeting after the meeting, in my case to define tasks etc.  You
could refile all the notes into the proper places in the hierarchy at
this point.  org has very nice refile support.

> b) I can make an internal link from the agenda to the issues. However,
>    the agenda would then not contain the full detail of the issues, just
>    a short part of the headline. During the meeting I would have to jump
>    there and back.

True but jumping is easy in org?

> c) I can create the meeting agenda dynamically, by assigning tags to
>    projects and creating a sparse tree, e.g. from the Agenda
>    buffer. However, this requires me to mark every issue to be discussed
>    with a meeting-specific tag. I do not have much control over the order
>    in which the issues appear. I cannot structure them. The generation
>    takes time. And it is not straightforward to add new items to the
>    meeting.

I am not sure how the hard links mechanism you suggest above would help
in this case?  Preparing an agenda can be difficult.  What you could do
is have special TODO labels for issues that need to be discussed at the
next meeting?

>
> I am not familiar with the internals of the org-mode but I can envision
> several possible implementations:
>
> a) Enhance existing links so that they can be expanded in-place to show the
>    whole subtree, not just a start of the headline. Ideally, it should
>    be possible to make changes there but a read-only access would also help.
>
> b) Physically copy "linked" trees to the new location. Make the copies
>    share an Id but have a unique subId. Then when one of the copies is
>    changed, the changes are propagated into other copies. I believe 
>    a lot of the logic could be borrowed from org-mobile, which also
>    performs synchronization.
>
> What do you think, does it sound feasible? Is there any other way to
> achieve what I want with org-mode? 

I think both of these would be very difficult to implement with the
latter being quite prone to conflicts...

I think a judicious combination of refiling, jumping and TODO
customisation could give you what you want?

HTH,
eric
-- 
: Eric S Fraga (GnuPG: 0xC89193D8FFFCF67D) in Emacs 24.0.92.1
: using Org-mode version 7.8.02 (release_7.8.02.55.g1870)

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: DAG structure / hard links /  shared subtrees
  2011-12-30 13:13 ` Eric S Fraga
@ 2011-12-30 21:11   ` Jan Kybic
  0 siblings, 0 replies; 3+ messages in thread
From: Jan Kybic @ 2011-12-30 21:11 UTC (permalink / raw)
  To: emacs-orgmode

>> I have a feature request. The structure of the org file is a tree. 
>> I wondered if it could be made a directed acyclic graph (DAG) instead. 

Thanks for the reaction. 

>or simply refile the notes?  I always go through the notes I have taken
>at a meeting after the meeting, in my case to define tasks etc.  You
>could refile all the notes into the proper places in the hierarchy at
>this point.  org has very nice refile support.

Yes, I am using a combination of refiling, tags, links and searches, and
it works. However, it looks fragile and ad hoc. As far as I see it, some things
just naturally can be classified using several hierarchies, like
something that concerns project A, was first discussed at meeting B and should
be consulted with person C. Where should I put it? I would like to be
able to find it in all three places. Moreover, I would like to prepare a
meeting with person C, make notes on the subject while we talk and then
have the notes available also when browsing the hierarchy of project A. 
I have to choose one of the three trees and use tags or whatever
other means to make it visible in the other two trees. If I forget to
tag it, it is lost, very difficult to find again.

>> c) I can create the meeting agenda dynamically, by assigning tags to
>>    projects and creating a sparse tree, e.g. from the Agenda
>>    buffer. However, this requires me to mark every issue to be discussed
>>    with a meeting-specific tag. I do not have much control over the order
>>    in which the issues appear. I cannot structure them. The generation
>>    takes time. And it is not straightforward to add new items to the
>>    meeting.
>
>I am not sure how the hard links mechanism you suggest above would help
>in this case?  Preparing an agenda can be difficult.  What you could do
>is have special TODO labels for issues that need to be discussed at the
>next meeting?
>

Even with such TODO labels, how do I sort them into the order I want?
With links, it is easy, I just link all the issues I want to discuss to
the meeting subtree, in the order I want.

Thanks for your help.

Jan

-- 
-------------------------------------------------------------------------
Jan Kybic <kybic@fel.cvut.cz>               tel. +420 2 2435 5721 or 5877
http://cmp.felk.cvut.cz/~kybic                              ICQ 200569450

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2011-12-30 21:11 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-12-22 10:11 DAG structure / hard links / shared subtrees Jan Kybic
2011-12-30 13:13 ` Eric S Fraga
2011-12-30 21:11   ` Jan Kybic

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).