A thread on Twitter led to this question from Joël de Bruijn: "Is an OPML file meant to encompass a whole library (with a notebook, subnotebook, note structure) or is it more like "one note = one OPML file" structure? Or something in between, what a user prefers?" #
OPML is just a file format, like HTML or RSS. So it can be used for whatever you want, large files, small files, libraries, bullet charts, tree charts, graphs, calendars, directories, projects, things we haven't invented yet. #
It was originally designed as the interchange format for the outliner in Frontier, a scripting environment I created at UserLand Software in the late 80s and 90s. In Frontier, an outline could be a script, a menu, an object database, a blog, a blog post, or just an outline. We needed a way to exchange outlines with our product and other outliners, so this is what we came up with. OPML wasn't the first interchange format for outlines, there was a format called .HEAD (pronounced dot-head) that we used for outliners in the 80s, but OPML was better because not only did it handle structures of text, they could also have attributes. Anywhere you could put an outline node, you could add attributes. They aren't visible when you're editing, but they're accessible through a dialog, or software can automatically attach attributes, such as the creation date of a node, so that they are indentifiable and can be pointed to from outside the outline. #
Then came a very special attribute, the type attribute -- which says basically that this node in an outline is a document, so the outline containing the node behaves like a file system. That's how I edit my blog. Each post is a document contained within a day, which is part of a month. I find it convenient to start a new outline every month, and archive the previous month in a GitHub repository. You can study what real-world OPML looks like there, I have 4.5 years of archives there. I recently created a search utility for those, which is kind of like the tagging systems you see in Tools For Thought products, but I don't have to tag anything, I can just search for the words. It's already a lot better than Google or other search engines that don't understand outline structure. #
Anyway that's a longish answer to a question that can be answered simply by saying that an OPML file can be whatever size makes sense for the application. It's just a file format. Its signficance, I hope, is that it can provide a way for all kinds of outliners, and applications that accept outlines as input, to share the same data, making it possible for lots of outline-based tools to co-exist, and for users to be able the use the right tool for whatever job they want to do right now, without having to convert any data. It's totally possible, and I'm happy to help any way I can.#
And btw, a plug for my product Drummer, whose native file format is OPML. 😄#
copyright 1994-2021 Dave Winer.
Last update: Saturday December 11, 2021; 8:51 PM EST.
You know those obnoxious sites that pop up dialogs when they think you're about to leave, asking you to subscribe to their email newsletter? Well that won't do for Scripting News readers who are a discerning lot, very loyal, but that wouldn't last long if I did rude stuff like that. So here I am at the bottom of the page quietly encouraging you to sign up for the nightly email. It's got everything from the previous day on Scripting, plus the contents of the linkblog and who knows what else we'll get in there. People really love it. I wish I had done it sooner. And every email has an unsub link so if you want to get out, you can, easily -- no questions asked, and no follow-ups. Go ahead and do it, you won't be sorry! :-)