Wednesday, September 10, 2003
Musings on the problems of Transclusion
Mike Taht would like transclusion.
I don't think transclusion will truely ever come about.
Transclusion, one of the prime concepts of Xanadu (43 years and still not here!), is the ability to include quotes from other documents without having to “cut-n-paste.” Instead, you give a reference to the portion you want quoted in your document and the underlying Xanadu system will handle the actual process of “cut-n-paste” for you when someone requests your document. Sounds nice, but there are problems.
In a Xanalogical system, the actual reference contains a byte range of the target document, such that if I wanted to quote Mike Taht's paragraph on transclusion:
Transclusion for text: Bloggers do manually what Ted Nelson wanted to do automatically—quote parts of textual articles—and while his goal was lofty, I've gradually come to the conclusion that he was right. All the mass duplication of partial texts, all the work that we do to ensure credit is given—would have been handled by Xanadu. The ability to quote partial texts exists in the http 1.1 protocol, but nobody uses it. (It's byte specific, and buried deep in the protocol). It's possible to use it just as easily as we copy and paste today.
All I need to do would be to specify the document between bytes 13,226 and 13,791 inclusive, insert that reference into my document and when you bring up my page, you'll see the portion I referenced from Mike embedded within my document.
Now, here's the first problem: Mike makes a change to his document—perhaps he fixes a typo, or slightly changes the style and layout of his page. That could affect the byte ranges for that particular paragraph and what you see is:
xt: Bloggers do manually what Ted Nelson wanted to do automatically—quote parts of textual articles—and while his goal was lofty, I've gradually come to the conclusion that he was right. All the mass duplication of partial texts, all the work that we do to ensure credit is given—would have been handled by Xanadu. The ability to quote partial texts exists in the http 1.1 protocol, but nobody uses it. (It's byte specific, and buried deep in the protocol). It's possible to use it just as easily as we copy and paste today.
Anyway, off to AA
Oops. Sorry Mike, didn't mean to make you attend AA there …
Now, as it stands, Xanadu has a solution for this problem: versioning.
The original idea was that not only would you grab a reference to a portion
of the page, but a reference to the version you are quoting. So, not only
am I quoting bytes 13,226 to 13,791 inclusive, but I'm quoting bytes 13,226
to 13,791 inclusive of the version dated
But there's still a problem.
What if the domain expires? If pages are moved or removed, then (the hypothetical) versioning webserver will still have a copy of the original page to serve up, but what if the domain goes away? Or is transfered to a new owner?
I just now tried an experiment. I loaded up December, 1999 of my journal here, the first month I started, and decided to see just how many of the pages I quoted were still around.
Not a single one.
If transclusion were a part of HTTP and HTML, then this Slashdot post I quoted (December 10th, 1999):
Guess what? That's bunk. They haven't infected me. I'm merely using a library function in the way that library functions are meant to be used: they're an API, and you link to them. It is of no consequence whether it's statically linked at link/load-time, dynamically linked at start-up, or accessed at run-time during execution via any one of myriad forms of RPC. It's API only, not material inclusion. APIs aren't viral.
Would now come up as:
We can't find a comment with that ID (282) in this discussion (2833). If this comment was posted moments ago, please wait 60 seconds for it to appear. Otherwise, if you got here through a link generated by Slashdot, please report this as a bug. But if you got here thanks to a silly user's comment text or journal entry or something, or from an external site, this link is just invalid—sorry.
Well, assuming the original byte ranges requested were ignored, otherwise we end up with Slashdot going to AA …
And that's just the technical problems (which, given enough time, money and man power to, anything can be done—we went from total surprise to Sputnik to playing golf on the moon in a dozen years) but technical problems are easy to solve compared to the political and social problems transclusion brings forth.
Not everyone wants a permanent record of what they write. Or of the editing changes they made. Or even stand by their own words. Or owe up to their own history. And there are plenty of sites that hide their content behind registrations and payment schemes and don't particularly care to be quoted (and they wonder why they don't have good rankings in Google).
Of course, Xanadu has a solution to that last problem, but it requires ACLs and micropayments, which is a whole other set of problems both technical and political …