Thank you for the responses! Yes, it makes perfect sense that clones require unique invariant IDs, to enable referencing. In Org mode it is possible to enable these though `(require 'org-id)` and thence `(org-map-entries 'org-id-get-create)`.
As for finding entries, libraries like `org-depend` use `org-id` to create rich Org-mode node dependencies. I've tried `org-depend` and found it somewhat clunky and slow so I don't think the foundation is quite there yet. I think `org-brain` just uses files for each object so it wires together DAGs that way. What would you recommend for an Emacs user looking to make a partial foray into Leo? Migrate all Org files into Leo outlines and then use emacsclient as the node editor? I tried the other direction, using Leo as a service from Emacs, but the solution in the docs requires Pymacs which to my knowledge is now defunct. On Thursday, July 4, 2019 at 6:40:45 PM UTC-4, Edward K. Ream wrote: > > > > On Tue, Jul 2, 2019 at 8:22 PM David Szent-Györgyi <das...@gmail.com > <javascript:>> wrote: > > There's a significant impedance mismatch between the full function made >> possible by the data structures of Leo and those of other applications. >> > > I agree. > >> Attempting to shoehorn that full function into other applications that >> provide limited subsets of that full function is not going to be easy, >> because that requires working against that mismatch continually. I wonder >> whether one works against a different mismatch for each application that is >> to interface with Leo. How does one cope with the multiple mismatches >> without complicating Leo and thereby making Leo fragile or harder to >> install and maintain? >> > > My main approach is to provide @auto importers. This is not always a > perfect (or even very good) solution. > >> Emacs and any plugin I've seen thus far lacks a true cloning ability. >>> Though I actually do not think it would be too difficult to implement one's >>> self. >>> >> > This is an open question. Not being an emacs user I can only give some of > my thoughts. > > 1. Clones *require* a unique, invariant id. In Leo, we call such things > gnx's, for Global Node Indices. It would be straightforward to add this to > org mode: just add a gnx field to org "drawers". > > 2, Adding gnx's to org mode "nodes" makes possible Leonine clones, but > does not, by itself, make it easy or natural to simulate Leonine > *operations* such as Leo's generators. Otoh, org mode uses filters to > "find" data. It's not clear to me what would be the natural way to proceed > in org mode. > > 3. In Leo, all clones are actually the *same* node (A VNode instance). > In other words, Leo outlines are DAG's underneath the covers, which is a > significant/crucial optimization. The MORE outliner created copies of all > cloned nodes, and suffered severe performance problems as a result. I'm > not sure what the performance implications are for org mode. > > In short, one could imagine org mode having Leonine clones. Org mode > might then recapitulate significant parts of Leo's history. Or org mode > might find its own way forward. > > Edward > -- You received this message because you are subscribed to the Google Groups "leo-editor" group. To unsubscribe from this group and stop receiving emails from it, send an email to leo-editor+unsubscr...@googlegroups.com. To post to this group, send email to leo-editor@googlegroups.com. Visit this group at https://groups.google.com/group/leo-editor. To view this discussion on the web visit https://groups.google.com/d/msgid/leo-editor/f0532709-48a5-4a58-a50f-a0924ba1beb1%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.