[tw5] Transclusion Terminology

When talking about transclusions, it’s a little cumbersome to talk about the tiddler that’s doing the transclusion and the tiddler that’s being transcluded.

So, if it has been done before or elsewhere, may I suggest the two terms

Transcluder (the tiddler that’s doing the transclusion)
Transcludee (the tiddler that’s being transcluded)

patterned af employer and employee?

2 Likes

LOL! Sure, but you’re running the risk of having to explain the term which kind of nullifies the point… :wink:

<:-)

reinhard...@gmail.com wrote:
… may I suggest the two terms:

  • Transcluder (the tiddler that’s doing the transclusion)
  • Transcludee (the tiddler that’s being transcluded)

I think that is a neat observation! The “linguistics” of terms in computing generally often lacks the precision to know what is the “subject” and what is the “object”. They blurr. In the specific case: you are pointing to a language issue that actually could be very relevant to beginners to understand what is what in real usage.

Part of the issue though is that in TW “transclusion” is potentially radical. Transclusions can be nested infinitely. So, in that context, the terms “Transcluder” / “Transcludee” would not be so transparent in actual use.

Just a comment
TT

@Mat

Why LOL?

Normally, every new term has to be explained when it is introduced. What’s wrong with

Transclusion is generally the inclusion of the content of a tiddler into another tiddler by reference. The tiddler that’s referencing another tiddler is called the transcluder, the tiddler (content) that is being included is called the transcludee.

That would be it.

Surely, these two new terms are not stranger than the term tiddler, that has also to be explained. But once you have grokked it, you understand it everywhere.

-Reinhard

Sorry, I just thought it was funny but I guess not. I’ve personally never had a problem to say e.g “the transcluding tiddler” vs “the transcluded tiddler”.

<:-)

The tiddler that’s referencing another tiddler is called the transcluder, the tiddler (content) that is being included is called the transcludee.

That would be it.


THAT POST, everything above the line, relayed from GG is a travesty of what I actually wrote there…

reinhard…@gmail.com wrote:

The tiddler that’s referencing another tiddler is called the transcluder, the tiddler (content) that is being included is called the transcludee.

That would be it.


No, it wouldn’t. The residual issue is positional reference. A transcluder is relative to a transcludee.

Without positional referencing you would not know what is transcluded from what is transcluding.

FYI, I think your basic split in terms is useful, but you’ll need a third term too to help explicate nesting.

A comment

TT

@TiddlyTweeter

You wrote:

“Part of the issue though is that in TW “transclusion” is potentially radical. Transclusions can be nested infinitely. So, in that context, the terms “Transcluder” / “Transcludee” would not be so transparent in actual use”

If transclusions are nested, each intermediate tiddler takes on both the roles transcludee and transcluder.
The relationship is between the transcluder and the transcludee is strictly binary. The transcluder doesn’t and shouldn’t care about how the transcludee produces its content.

@Mat

Never mind!

Just image you always have to say “the employing person” vs “the employed person”. Anyway, I wanted to add some information about transclusions into my wiki and looked for some suitable tiddler titles. TheTranscludingTiddler and TheTranscludedTiddler seemed to cumbersome. So I chose the suggested terms. They work for me, and I thought they might be useful in general.

Thanks for your remarks!

-Reinhard

@TiddlyTweeter

"No, it wouldn’t. The residual issue is positional reference. A transcluder is relative to a transcludee.

Yes, of course. That’ the whole crux of the matter. Any tiddler can take on both the role of a transcluder and a transcludee. It depends on the context. But given two tiddlers with a transclusion relationship there is never a doubt which tiddler is which.

“Without positional referencing you would not know what is transcluded from what is transcluding.”

Its not the concern of the transcluder if the transcludee produces its content by nested transclusions or not. So positional referencing is not needed.

“FYI, I think your basic split in terms is useful, but you’ll need a third term too to help explicate nesting.”

Why? We say transclusions are nested, if a transcludee (a transcluded tiddler) in turn transcludes another tiddler and so takes on the role of a trancluder relative to this thidd tiddler.

1 Like

I occasionally refer to people who use tiddlywiki as tiddleurs (pronounced with a French accent, in my mind) I don’t expect anyone else to use it but I stick to it because I think it is funny (…hm, I’m not normally that easily amused). If anyone has to ask what I mean, then no biggie. So, I say go with your terminology, whatever makes you happy!

<:-)

Mat “I occasionally refer to people who use tiddlywiki as tiddleurs (pronounced with a French accent, in my mind) I don’t expect anyone else to use it”

You, bricoleur, you :slight_smile:

TT

Well, what a nice Sunday morning exchange.

-Reinhard

Ciao reinhard,

Nice post! To get to the grist…

reinhard: “there is never a doubt which tiddler is which”

Ah! There is! In your own OP you sensibly want to differentiate “der” from “dee”.My concern is for the Virgin User who likely has no idea what recursion is; how would they know an “er” from an “ee”?

Broadly, in documents, how do we explain complex nested transclusion to neophytes?

This is just a thought.
Overall I like where you coming from.

Best, TT

@TiddlyTweeter

" Overall I like where you coming from."
And what might this be?

“Broadly, in documents, how do we explain complex nested transclusion to neophytes?”

I wouldn’t even try! IMHO, recursion and complex nested transclusions are topics for people that are no longer neophytes.

I’m have an extensive programming background*.* In Programming there it is never a question if a function is the caller or the callee, even with recursive functions. And in programming recursion is an advanced topic, that is definitely not for neophytes.

Have a nice day!
-Reinhard

That’s an interesting discussion. I think it’s new. I cant remember, that we did discuss it yet. …

At tiddlywiki.com we have the following tiddlers that explain how we use the transclusion mechanism.

See: Doc links

  • Transclusion
  • Transclusion in WikiText
  • Transclusion Basic Usage
  • Transclusion with Templates
  • Transclusion and Substitution
  • TextReference
  • TemplateTiddlers
  • TranscludeWidget

We talk about the proposed “transcludee” as a basic “transclusion”. The term “transcluder” isn’t used because it doesn’t really matter.

When tiddlers are displayed, transclusions are transparent. Users only see them if they open the tiddler in edit mode. So a “transcluder” is just a tiddler. …

In a slightly different context we talk about “transcludees” as a “text references”. So the term we use is “text reference”, because it’s that what it does.

In another context we call the “transcludee” a “template” because it does a slightly different thing as a standard transclusion. Templates can be compared to parametrized transclusion where the resulting text uses variables to create a “new” text output.

So in reality we have terms for different types of transcludees, which imo makes that term obsolete. I think it’s not precise enough.

Tiddler, transclusion, text-reference and template are the terms we have already established, to precisely describe how transclusions are used with TiddlyWiki.

just some thoughts
mario

reinhard: I have an extensive programming background*.* In Programming there it is never a question if a function is the caller or the callee, even with recursive functions. And in programming recursion is an advanced topic, that is definitely not for neophytes.

Right. Sort of. BUT in TiddlyWiki many of the skilled tweakers are not professional programmers. That is part of it’s character–practically it is used by folk of many kinds. Regarding the OP, I think it will appeal to the “hobbyist jacker” too …who is the neophyte+. Certainly any idea you have to be a full-on programmer to deep tweak TW would be wrong. The whole thing we do here is testament that it isn’t.

So in that context it might be worth revisiting your interesting OP.

Whom are you thinking needs the “caller” / “callee” differentiation?

Anyway, happy today
TT

@TiddlyTweeter

" Whom are you thinking needs the “caller” / “callee” differentiation"

In the context of TiddlyWiki, nobody! I put it in just as an another example for the “er”-“ee”-relationship (see for instance Suffixes -er and -ee). It is useful as a common concept or abstraction to express that seemingly non-related things (i.e. on process calling another, one function calling another, one person calling another) have the same structure, and that aspects that pertain to one instance of this concepts might be transferrable to another instance of this concept (i.e. to save work).

“Certainly any idea you have to be a full-on programmer to deep tweak TW would be wrong.”

I don’t know what you mean by “full-on programmer”. TwiddlyWiki uses several well established programming and ‘page-description’ languages (HTML, CSS, Javascript, Markup) plus its own wikitext syntax for macros, pragmas, etc. The mastery of each of these requires some amount of time and practice. I guess, you didn’t start out with transclusions and tweaking TiddlyWiki when you first started using it? Even if you don’t consider yourself a ‘programmer’, neverless programming is what you are doing when you tweak TW. But that’s just semantics, nothing productive…

So the lore, wisdom, principles, etc. of the programming community as a whole might be applicable to TW as well. For instance, the general programming principles, that function should do one thing and one thing only or that a function should be as small as possible, apply to macros as well.

Have a neice evening,
-Reinhard

Hi Reinhard

Thanks for introducing the topic, as you can see it’s an area of interest for a lot of us.

I had to search the docs to see whether I had used the terms transcluder/transcludee; I wouldn’t have been surprised to find that I had because that terminology comes naturally to a programmer, as you note.

Generally, I rather relish introducing neologisms: it can be a powerful way to give people a conceptual blank slate on which to build meaning. The canonical example is the term “tiddler”, which I started using when writing the code of the very first version of “TwiddlyWiki” (as it then was). I wanted to be able to write clear, readable function names but found that calling tiddlers conventional words like “node” or “object” gave rise to generic method names that were already overloaded with unwanted meanings. Introducing the term made the code cleaner, and so I soon started using it in the user interface too.

The trouble is that we have a very limited budget for new terms; each one acts as a little barrier for new users. So I try to avoid making neologisms unless absolutely necessary. And if there’s an existing word that’s a good fit then I try to reuse it (e.g. “plugins”).

In this case, I think I’ve got away without these terms because of a twist in the way that I think about things: although transclusion always involves a transcludee, there isn’t necessarily a transcluder. The thing doing the transcluding might be a dynamically constructed macro that doesn’t have a 1:1 relationship with a tiddler. Now, I appreciated that that is a rarified way of looking at things but it still guides me in writing the docs.

Anyhow, lots of interesting stuff in this area, thanks for bring it up.

Best wishes

Jeremy.

@jeremy

Thank’s for your comments!
And thanks for making TiddlyWiki such a great tool!

Best wishes

Reinhard