| |||||||||
In computer science, some hypertext systems, including Ted Nelson's Xanadu Project, have the capability for documents to include sections of other documents by reference, called transclusion. For example, an article about a country might include a chart or a paragraph describing that country's agricultural exports from a different article about agriculture. Rather than copying the included data and storing it in two places, a transclusion allows it to be stored only once (and perhaps corrected and updated if the link type supported that) and viewed in different contexts. The reference also serves to link both articles.
In Ted Nelson's original proposal for hypertext, outlined in his 1982 book, Literary Machines, micropayments would be automatically exacted from the reader for all the text, no matter how many snippets of content are taken from various places.
The idea of transclusion implies that sections of text can be written atomically, so that the content of one section does not interfere with the contents of another section. For example, the following formulations, often found in written prose, are not possible:
As you do not know where the section will appear, you cannot reference text outside the section in this manner, as you do not know if it will be there or not. If someone else chooses to use your section elsewhere, it will be confusing.
For some kinds of prose, these kinds of limitations are not severe, but to others it may be disturbing and lower the quality of the text.
Present HTML has a limited form of transclusion. For instance, it's possible to refer to an image, which the web browser will retrieve and draw on the page; see chipmunk for an example. Also, a document can contain an "iframe," or inline frame, that refers to another document and presents it as text inside the calling document. As of January 2002, Weather.com uses this technique to build its weather forecast page from several small documents. Future versions of HTML may support deeper transclusion of portions of documents referenced through XML's XPath. See also Framing in websites.
The practice of including data from other sites, such as links to images, etc., is something usually frowned upon because of the use of bandwidth (even called "bandwidth theft") and computing power required from the remote computer system. This is said to "tax" another server, and is often considered an example of leeching.
However, there is one major exception to this rule: hit counter, web bug).
There are other technologies that have similar abilities of including external components such as ASP (Active Server Pages), JSP (JavaServer Pages), PHP (originally Personal Home Page, now PHP Hypertext Preprocessor), and the use of SSI (Server Side Includes).