Following a brief exchange with @lesteph last night, I thought it might be worth making a quick post about the idea of content or document transclusion.
Simply put, transclusion refers to the inclusion, or embedding, of one document or resource in another. To a certain extent, whenever you embed an image or Youtube video in a page is a form of transclusion. (Actually, I’m not sure that’s strictly true? But it gets the point across…)
Whilst doing a little digging around for references to fill out this post, I came across a nicely worked example of transclusion from Wikipedia – Transclusion in Wikipedia
The idea? You can embed the content of any Wikipedia page in any other Wikipedia page. And presumably the same is true within any Mediawiki installation.
That is, in a MediaWiki wiki:
you can embed the content of any one page in any other page.
(I’m not sure if one MediaWiki installation can transclude content from any other MediaWiki installation? I assume it can???)
It’s also possible to include, (that is, transclude) MediaWiki content in a WordPress environment using the Wiki Inc plugin. A compelling demonstration of this is provided by Jim Groom, who has shown how to republish documentation authored in a Wiki via a WordPress page, an approach we adopted in our WriteToReply Digital Britain tinkerings.
One of the things we’ve started exploring the JISCPress project is the ability to publish each separate paragraph in a document (each with its own URI), in a variety of formats – txt, JSON, HTML, XML. That is, we have (or soon will have) an engine in place that supports the “publishing” side of paragraph level transclusion of content from reports published via the JISCPress/WTR platform. Now all we need is the transclusion (re-presentation of transcluded content) part to be able to transclude content from one document in another. (See Taking the Conversation Elsewhere – Embedded Quotes; see also Image Based Quotes from WriteToReply Using Kwout for a related mashup).
(Hmm, although Joss won’t like this, I do think we need a [WTR-include=REF] shortcode handler installed by default in WTR/JISCPress that will pull in paragraph level content in to one document from a document elsewhere on the local platform?)
Now this is really what hypertext is about – URIs (that is, links), that can act as a portal that can pull content in to one location from another. It may be of course that the idea of textual transclusion is just too confusing for people. But it’s something we’re going to explore with WriteToReply.
And on of the things we’re looking at for both WriteToReply and JISCPress is the use of semantic tagging to automatically annotate parts of the document (at the paragraph level, if possible?) so that content on a particular topic (i.e. tagged in a particular way) in one document can be automatically transcluded in – or alongside – a related paragraph in a separate document. (Hmm – maybe we need a ‘related paragraphs’ panel, cf. the comments panel, that can display transcluded, related paragraphs, from elsewhere in the document or from other documents?)
PS If you have an hour, here’s the venerable Ted Nelson giving a Google Tech Talk on the topic of transclusion:
Enjoy…
PPS here’s an old library that provides a more general case framework for content transclusion: Purple Include. I’m not sure if it still works though?
PPPS Here’s the scarey W3C take on linking and transclusion ;-) This is also interesting: auto/embed is not node transclusion
PPPPS for another take on including content by reference, see Email By Reference, Not By Value, or “how I came up with the idea for Google Wave first”;-)
PPPPPS Seems like eprints may also support transclusion… E-prints – VLit Transclusion Support.
Thanks for this, Tony.
One step closer, indeed. I’ve been interested in the idea of transclusion since I read Nelson’s ‘Literary Machines’ in the early 80s. I recall that, for Nelson, an important aspect of transclusion would be the ability to credit the author of the piece being transcluded for copyright or royalty purposes.
It would be interesting to consider whether this is doable, or even desirable.
Wouldn’t credit be implicit in the link back to the source document?
Our first effort at transclusion for JISCPress includes a visible full link back to the source (it also provides us with a trackback), but personally, I’d like this to be hidden, viewable only by a mouse over or click to expand under the embedded content. We’ve also added the comment count on the page and paragraph.
The credit/links/extra metadata is useful but gets in the way of reading if not hidden from view. Footnotes are the usual way to get around this, but until there’s a universal footnoting standard that places the references at the bottom of the document in the correct style and inserted in the right order, metadata hidden from normal view, seems like a reasonable compromise to me.
Joss is gonna be pissed about the short codes, soon enough you’ll have a system. Lucky he’s out right now campaigning against Anarchy Media player, or this post would have been vandalized long ago :)
I’ve been using MediaWiki templates for a while (I did not know that they had such a fancy shmancy name) for creating common navigation, sidebars, and layered content pages in our Horizon project Wikis. You can pair that with almost anything that can pull dynamic content into a MW site via RSS or any other code (http://cogdogblog.com/2008/09/10/anything-in-your-mediawiki-pages/)– its a simple mattter of writing your own Extension code, pop that into a MW file, and reuse it anywhere via {{MyFunkyIncludeThing}}
This feature is also available in WikiSpaces, though you cant get custom PHP in there, it is a useful tool.
It’s a powerful feature that I found my accident, as are most things in MediaWiki, I might use about 8% of its capabilities.
The internal wiki “transclusion” is easy; I am not so convinced you can do it between MW instances, as it is done via access to its own database table.
The push out to WordPress though is where it looks exciting, keep banging the pipes in the lab, Dr Hirst!
Another piece of work that has supported transclusion for some time and in which you might be interested, is DITA. Originally from IBM it became an OASIS standard in 2005 – if I remember correctly.
Info about DITA and transclusion – http://xml.coverpages.org/ni2003-04-25-a.html
Info about DITA – http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=dita
and
http://xml.coverpages.org/dita.html
It’s approach to specialisation has also lead to one for Learning and Training and there has been some interesting work in that group with OER content and transformation.
I read your comments about paragraph-level publishing, micro-publishing in the age of micro-blogging?, anyhow it spurred me to say something.
http://paulgeraghty.posterous.com/a-good-cms-will-respect-you-in-the-morning
Thanks