Thanks that’s useful.
So this is mixed-mark-up style where the bracket indicate a link that, unless stored somewhere, is calculated on-the-fly.
So a ‘line’ of text is the same as the wider notion of a paragraph, a single string between line-feed characters† (or that and the beginning/end of the overall string). So, a paragraph is a block. But, notably, a block can nest a block. Unclear to me is whether a Roam page can be nested.
Clearly, though, two differing design paradigms. Note, again, no zero-sum ‘right’ here. We have:
- App A. A note contains link-addressable paragraph blocks. Blocks are (infinitely nestable and addressable). Links are calculated on the fly using inline markup. (Presumably a literal
[[
inline string would require escaping).
- App B. A note is an atomic object. Notes can be nested. An attribute of a note is its ‘text’. Links are not calculated but created and stored in a link base. There is support for zeitgeist-y notions like
[[ ]]
indication of links. Even so, when detected, these are turned into actual link upon detection. Text is not nested, but notes maybe. The app has the notion of note-to-note, note-to-notetext, notetext-to-note and notetext-to-notetext links (all stored in a linkbase outside the note (but within the document).
Worthy of observation is that App B is a server based web app. App B is a Mac (only) desktop app with tight macOS integration as well as integration with other (Mac-based) knowledge tools (DEVONthink, Bookends, etc.); it is also a single-user app, note designed for multi-user use or use-via-any-access. The latter should stop going from A to B but is a point to bear in mind. A (webserver-stored) database for A, a local XML file for B.
For app B to represent app A’s data, given the different design, each block would ideally be exported as if a discrete page (note), I think B’s linking would allow for this though how the lower-level nested items would be named in not clear. As long as page/block names are unique in the corpus, [[ ]]
links could—I think—be detected and on first such be (re-)created as text links.
TL;DR a simple one-shot lift from Roam to Tinderbox seems a stretch, but due to design paradigm differences
Consulting the devs of another block-based system, they cite Engelbart’s article on Open Hypertext Systems (OHS) (see). Interesting as whilst NLS/Augment had paragraph links (later, ‘purple numbers’) the article dates from the early 1900s. so, formally after the birth of the Web but before is was at scale. OHS was partly resolving the fact that , then, most hypertext systems were standalone and with differing architectures (see now—see above
).
However, and @eastgate may correct me here (as we can’t ask Doug), I think hindsight blinds us slightly. Looking at (output of) NLS journal files it is essentially one long text file. So, I assume, outlines were possible as blocks [sic] somehow knew their nesting structure (given the time this might be as simple as being tabs at paragraph start‡).
If nothing else this shows how deep the design paradigm can go. Interestingly, we’re reminded of OHs, another idea essentially kicked into the long grass by the popularity of the web. We tend to view hypertext through the lens of the Web, IMO unfortunately so—without prejudice implied.
And interesting topic to finish the week. 
†. In other words, the character : \n
, Unicode : U+000A
, ASCII : 10
, hex : 0x0a
.
‡. Ironically, such simple outline notions crop up in this thread, though I’d contest any notion of outline ‘norms’.