The Boston Diaries

The ongoing saga of a programmer who doesn't live in Boston, nor does he even like Boston, but yet named his weblog/journal “The Boston Diaries.”

Go figure.

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 2003-09-03T23:21:42-08:00.

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 …

Obligatory Picture

[It's the most wonderful time of the year!]

Obligatory Links

Obligatory Miscellaneous

You have my permission to link freely to any entry here. Go ahead, I won't bite. I promise.

The dates are the permanent links to that day's entries (or entry, if there is only one entry). The titles are the permanent links to that entry only. The format for the links are simple: Start with the base link for this site: http://boston.conman.org/, then add the date you are interested in, say 2000/08/01, so that would make the final URL:

http://boston.conman.org/2000/08/01

You can also specify the entire month by leaving off the day portion. You can even select an arbitrary portion of time.

You may also note subtle shading of the links and that's intentional: the “closer” the link is (relative to the page) the “brighter” it appears. It's an experiment in using color shading to denote the distance a link is from here. If you don't notice it, don't worry; it's not all that important.

It is assumed that every brand name, slogan, corporate name, symbol, design element, et cetera mentioned in these pages is a protected and/or trademarked entity, the sole property of its owner(s), and acknowledgement of this status is implied.

Copyright © 1999-2019 by Sean Conner. All Rights Reserved.