Hi, I have been seeking a system that will allow me to store all of my written output as structured data. After recently discovering Scribble, I think I may have found it (I really like the @-form syntax)! However, I think I need to make some changes to turn it into what I need, and that's where I could use some help.

I want to treat all of my written output as structured data first and foremost, which I could then traverse & transform into various documents as needed. As an example, suppose I have taken notes on 100 different math books and have written down some 3000 theorems from these books. Throughout the rest of my life, there are a number of things I may want to do with these notes, such as: - In a REPL, get a list of all theorems I've ever written down. - In a REPL, for a given list xs of theorems, get a list of all references I have made to those theorems across all my written content. - Take theorems x and y and display them in a document. At a finer granularity, within a theorem, I might reference a specific entity type that I deemed important enough to represent structurally, like, say `@math-term{finite list}` (or more likely as `@finite-list`, which expands to `@math-term{finite list}`). Years later, I may want to do something like 'Traverse the list of all top-level entities that reference `(math-term "finite list")` anywhere within.' Generalizing from those examples, I actually have a pretty broad ontology of entity types I am devising for different types of content I might write down. Things like: (ask scribble-devs "Advice for treating content as structured data ...") (tell scribble-devs "I love Scribble and its embedded @-form s-exprs!") (code [racket library] "I had an idea for a Scribble modification that...") (search [web] "Is there anything else out there like Scribble?") (explore [math] @{Is @theorem-ref{LADR/foo} about @finite-list related to @theorem-ref{IntroToProbability/bar} somehow?} (remember [happened-to-me] "Today I discovered Scribble and got very excited.") That `(explore ...)` example would show up in my REPL "list of all references...to those theorems [xs]" I mentioned in the example use cases earlier, because it references a `@theorem-def` I'm interested in. Finally, something like `(math-term "finite list")`, when embedded into a document, should be able to render to html as '<span class="math-term">finite list</span>' and to TeX as "\textbf{finite list}", and I should be able to define new entity types & their content-type translations easily whenever needed. To recap, I'm looking to treat my written output as structured datums/syntax objects/structs foremost, which I can traverse/combine/transform into documents as needed; I want to extend my ontology of datums easily whenever needed; I want to define translations of new datums into various content-types whenever relevant. Although Scribble is mostly document-oriented as it stands, my instincts tell me that the combination of Racket + Scribble's @-forms would make a great fit for my needs. Do you think I could/should leverage Scribble for any of this? Do you have any advice on approaches I might try to get to where I want to be? I realize those are extremely open-ended and vague questions. Feel free to answer at whatever level of granularity you have time for, if at all. I just wanted to gather suggestions from the world's premier Scribble experts before I begin writing any code. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.