[Thoughts] The Philosophy of "Units" & TW "data"

298 views
Skip to first unread message

@TiddlyTweeter

unread,
Aug 19, 2019, 10:13:24 AM8/19/19
to tiddl...@googlegroups.com
I tagged this as "offtopic", but I don't think it is.

Computing emerged in a context of being able to take something apart and reassemble it in a better way and with calculation.

The prior philosophical ideas behind it emerged partly from extreme ideas like those of  Julien Offray de La Mettrie in 1748 with "Man a Machine."

The idea that life can be reduced to "re-combinational parts" got much stronger in 1818 with Mary Shelly's "Frankenstein", a seriously good literary expression of Mettrie's thesis. 

Originally seen as repulsive and horrific, the idea you could re-combine bits into wholes is now very accepted. Google is a large Frankenstein.

I personally like the "TW Fragment" approach Jeremy is very committed to--but its a direct assault on holism.

There is a deep philosophical PROBLEM with fragments---as with any strong approach. 

HOW small is a good fragment? And how would you know?

Thoughts
TT 

@TiddlyTweeter

unread,
Aug 19, 2019, 10:14:29 AM8/19/19
to TiddlyWiki
Repeat for email ...

coda coder

unread,
Aug 19, 2019, 10:50:11 AM8/19/19
to TiddlyWiki
Great question.


On Monday, August 19, 2019 at 9:13:24 AM UTC-5, @TiddlyTweeter wrote:
I tagged this as "offtopic", but I don't think it is.


Me neither. It's central to TW philosophy and TW design/programming.

There is a deep philosophical PROBLEM with fragments---as with any strong approach. 

HOW small is a good fragment? And how would you know?


It's context-dependent.

TW's "elementary particle" is the field (not the tiddler), in my view. Most especially when viewed from a metadata perspective.

The beauty in TW's overall approach is shown in its query language (filters), its "algebra", where metadata choices "drive" filter choices, which provide for ("serve") the intended purpose.

Through a wider lens, transclusion at the tiddler-text-field level is a design choice made on a context-by-context basis. For example, I perform far more transclusions in technical guides and documentation TWs than my personal, note-taking wikis (bk-tw as you know, Josiah, also makes infrequent use of transclusion at the tiddler-text-field level, but at the metadata/field level it uses tons of transclusions).

So, in my view...

A "good fragment" is, generally speaking, something that "belongs" in a field.

And "how I know" is dictated by: purpose, context, knowledge of the algebra and personal experience ("taste").

@TiddlyTweeter

unread,
Aug 19, 2019, 11:14:13 AM8/19/19
to TiddlyWiki
Ciao coda coder

So, in my view...

A "good fragment" is, generally speaking, something that "belongs" in a field.

I think you are right. That context connection allows back to "holism". We rebuild her by orientation like this. Though our next "whole" maybe slightly over cleansed :-)

TT


coda coder

unread,
Aug 19, 2019, 11:46:21 AM8/19/19
to TiddlyWiki


On Monday, August 19, 2019 at 10:14:13 AM UTC-5, @TiddlyTweeter wrote:

I think you are right. That context connection allows back to "holism". We rebuild her by orientation like this. Though our next "whole" maybe slightly over cleansed :-)


Or outgrow it's original/intended purpose ;)

And just to beat this analogy to death...

A TW is a molecule, perhaps a long-chain molecule. Its "physics" governed by its rules (filters).

A TWederation (or TW Farm as mooted earlier in another thread) might be seen as a compound.

A tiddler can be viewed as an atom or a molecule, depending --

but like all analogies (and some elements), they can be unstable ;)


@TiddlyTweeter

unread,
Aug 19, 2019, 2:49:22 PM8/19/19
to TiddlyWiki
One thing: repetition with variation.

Its a bit moot at what point variation becomes innovation.

That is something very interesting with TW I think,

Its unusual in its revelatory aspect through complex filters. Though I don't think anyone has commented much on that.

Jermolene has relentlessly pursued the fragment and its combinations to make new wholes. A strong approach. With surprising implications

TT

TonyM

unread,
Aug 19, 2019, 6:17:37 PM8/19/19
to TiddlyWiki
I am confident that tiddlywikis success with a broad audience relates to placing the tiddler, the item with the unique key at "eye level". It is easy to construct larger objects consisting of multiple tiddlers, starting with tag groups, and smaller objects, within fields or data tiddlers or subTiddlers. In most databases the table is at eye level, in many applications the document is at eye level. Tiddlywiki makes the objects defined by their unique key, clear and present. However we also have sufficient ways to bend but not break the rules to accommodate arguably any knowledge structure. This is made easier because the tiddler is a wikis basic atom.

Personally I am dead against deprecating data tiddlers of any form. 

Regards
Tony

PMario

unread,
Aug 20, 2019, 8:14:25 AM8/20/19
to tiddl...@googlegroups.com
Hi,

With TW5 we can transclude full tiddlers "only".

With TWclassic we had so called "slices" and "sections" that could be transcluded from "other" tiddlers.

Transclude "slices" syntax is basically gone in TW5. The file format is used for .multids files and dictionary tiddlers. .multids are "read-only" and therefore only useable for TW developers.

The "section" transclusion syntax is used for TW5 data-tiddlers but the concept is completely different, which as Jeremy pointed out several times, hasn't been the best decision.

With section transclusions, users could transclude parts of one tiddler into an other, using "headings" as the selectors. -->> Don't understand me wrong: There where some reasons, why this function is gone. Technically it's much more heavy weight then transcluding full tiddlers.

And it suffers the "broken link syndrome" even more than renaming tiddler titles. ... Since it is very common to change the heading text while editing a tiddler. -> So those links are broken way to easy!!

-----------------

On the other hand there was something extremely powerful going on, while writing content. Headings do create data structure, even if the writer didn't intend it. 

eg: Authors use headings like Overview - Introduction - Description - very often. ... So over time, tiddlers contain sections with "similar" intention more and more often.

So after several refactoring iterations of a wiki, users did create very powerful intrinsic data-structure, that can be used to create - lists with section content.

With TW5 this natural creation of data structures is gone. ... I personally miss this functionality the most in TW5. This was a real regression.

eg: Mixing code and prose documentation in 1 tiddler like in a TWclassic plugin, was the most important thing that brought me to TiddlyWiki. I was searching for a "literate programming" tool / editor. ... And TW was the closest thing I could find and actually liked!

-----------------

Coming back to the topic.

There is a deep philosophical PROBLEM with fragments---as with any strong approach. 

HOW small is a good fragment? And how would you know?

IMO good fragments go down to a single paragraph, without tearing it apart from it's "initial" context. ... So it's the "tiddler section", without the drawbacks.

have fun!
mario

PMario

unread,
Aug 20, 2019, 8:25:33 AM8/20/19
to TiddlyWiki
On Monday, August 19, 2019 at 4:50:11 PM UTC+2, coda coder wrote:
...
So, in my view...

A "good fragment" is, generally speaking, something that "belongs" in a field.

I do like the quotes around your "belongs"!

IMO with TW5 this is a technical reason and it shouldn't be that way. ... It should be much more user friendly.

-m

coda coder

unread,
Aug 20, 2019, 10:13:39 AM8/20/19
to tiddl...@googlegroups.com


On Tuesday, August 20, 2019 at 7:25:33 AM UTC-5, PMario wrote:
On Monday, August 19, 2019 at 4:50:11 PM UTC+2, coda coder wrote:
...
So, in my view...

A "good fragment" is, generally speaking, something that "belongs" in a field.

I do like the quotes around your "belongs"!

Yep. ;)


IMO with TW5 this is a technical reason and it shouldn't be that way. ... It should be much more user friendly.


Agreed. I too think we lost something when TWC's heading-sections didn't make it into the TW5 model.

I do use custom tags to create a poor-man's version of sections within a text - but individual addressability is not possible.

In my dreams, this would work:

{{tiddler-name[!!optional-field]..section-name}}

And in markup...

\define-section my-section

Stuff and things

\end

Or, perhaps,

<tiddler-section name="my-section">

More stuff

</>



Mohammad

unread,
Aug 20, 2019, 10:33:34 AM8/20/19
to TiddlyWiki
The find macro can be used for this purpose!
It actually can extract any part of tiddler delimited between any set of delimiters of your choice!

Mohamed Amin

unread,
Aug 20, 2019, 11:03:00 AM8/20/19
to TiddlyWiki
Just to say, I loved this conversation.

And actually I just read the following in "PyTiddlyWiki":
Having the possibility to capture ideas and thoughts in a non-linear, 'rhizomatic' way is one of the amazing features of TiddlyWiki

From Wikipedia:
Rhizome is a philosophical concept developed by Gilles Deleuze and Félix Guattari in their Capitalism and Schizophrenia (1972–1980) project. It is what Deleuze calls an "image of thought," based on the botanical rhizome, that apprehends multiplicities

Regards
Mohamed Amin

PMario

unread,
Aug 20, 2019, 11:41:59 AM8/20/19
to TiddlyWiki
On Tuesday, August 20, 2019 at 4:13:39 PM UTC+2, coda coder wrote:
...
In my dreams, this would work:

{{tiddler-name[!!optional-field]..section-name}}

And in markup...

\define-section my-section

Stuff and things

\end


Hmmm, That's a similar thought as I posted in the thread: IDEA Multi-line Fields ... Possible implementation

Defining prose text like this, would make it technically accessible. ... But there wouldn't be the "beauty" of a continuous writing process.

-m



coda coder

unread,
Aug 20, 2019, 12:56:57 PM8/20/19
to TiddlyWiki


On Tuesday, August 20, 2019 at 10:41:59 AM UTC-5, PMario wrote:
On Tuesday, August 20, 2019 at 4:13:39 PM UTC+2, coda coder wrote:

Hmmm, That's a similar thought as I posted in the thread: IDEA Multi-line Fields ... Possible implementation


Ha! almost identical :)
 
Defining prose text like this, would make it technically accessible.

That's the key - addressability.
 
... But there wouldn't be the "beauty" of a continuous writing process.


Agreed. But I don't see a way around that. I guess something like @@ could be used (or !headings again, which terminate at the next identical !heading or end of field).

But, to be clear, I was suggesting \define-section be used inline, not at the start of the text like macros:

Stuff and things

\define-section my-section
More stuff
\end

And more things


Then the transclusion previously mentioned digs them out (or they're double-stored in data-fields for easier lookup/retrieval).

Mohammad

unread,
Aug 20, 2019, 12:59:20 PM8/20/19
to TiddlyWiki
look here

This is an example of partial transclusion! Only what you need is to use appropriate delimiter!
For example

! h1

!! h2

!h3


can use ! as delimiter!

There is another solution by Thomas Telmiger called Extract.


On Tuesday, August 20, 2019 at 6:43:39 PM UTC+4:30, coda coder wrote:

coda coder

unread,
Aug 20, 2019, 2:08:27 PM8/20/19
to TiddlyWiki
Thanks Mohammad.

Yes, I use Thomas' extract and a few other bits I've cobbled together over the years. I'll give find/slice a look.

Mark S.

unread,
Aug 20, 2019, 2:09:33 PM8/20/19
to TiddlyWiki
You know, you could already do something sort of like that with macros:

\define show-macro(macro)
<$reveal type="match" state=<<qualify "$macro$">> text="show">

<<$macro$>>
</$reveal>
<$button set=<<qualify "$macro$">>  setTo="show">Show</
$button>
<$button set=<<qualify "$macro$">>  setTo="hide">Hide</$button>


\end

\define GAN-010()
!! The Great Anhk-Porkian Novel

The waters of the Anhk River were flowing briskly that day. Which meant, for most of the neighborhood, that they could function as a form of moving sidewalk. Albeit, one you might be stuck to forever.

\end
\define GAN-020()
!!! A Chat with DEATH

But the flow of the river matched the slower, more leisurely flow of photons from the Desk World sun. The flight flowing slower, necessarily putting an upper limit on everyone's activities, per the  Anne Stein's law of Relativity. To wit, if you were a relative of Anne Stein, the curvaceous bar-maid, then maybe you better make your order and hurry up with it.

At the end of the bar sat a tall, lonely figure wearing a black shroud, a permanent grin, and a large toupee.
 
\end

<<show-macro "GAN-010">>
<<show-macro "GAN-020">>

If there was a way to find all the macros inside a tiddler, then you wouldn't need to individually invoke them.

--Mark

coda coder

unread,
Aug 20, 2019, 2:24:56 PM8/20/19
to TiddlyWiki
Thanks Mark.

Yes. I do similar things already. But where I'm coming from (and Mario) is that traditional macros do not aid writing "free text", i.e. prose.

In fact, I think it was you that wrote the paragraph regex I'm already using (out of which came regexps, if i remember correctly).

Ring any bells?

\define toc-get-text-context(find)
<$set name=f value='[title<foundTiddler>get[text]regexps[(?g)(\w|\s|\,|\.|\-|“|”|\`|\?|\x22|\x27|\/\/){1,50}$find$(\w|\s|\,|\.|\-|“|”|\`|\?|\x22|\x27|\/\/){1,100}]first[5]]'>

<h2 class="bg-text">Sections</h2>

...and it goes on...



Sincere aplogies to Josiah for having hijacked his thread :(

@TiddlyTweeter

unread,
Aug 21, 2019, 7:34:09 AM8/21/19
to TiddlyWiki
Mohamed Amin wrote: 
Rhizome is a philosophical concept developed by Gilles Deleuze and Félix Guattari ...

Ciao Mohamed A. (we have another Mohammad :-)

I think its great to make such cross-thoughts into philosophy.

Philosophy is about "concepts" of what we do. Philosophers are good at thinking beneath concepts to make new ones. 
A lot of quite radical computer applications are badly under-conceptualised.

Deleuze & Guattari are interesting for trying to rethink "holism".

I actually think the work of Gene Gendlin is very good & relevant, though he only deals with computer programs tangentially.

For instance: A Process Model.

Its difficult philosophy to understand at first. 
But he centrally deals with the issue of "emergent holism"--and that, in effect, is what TW usage is orientated to. 
On the one hand, TW "deconstructs" through "fragments" radically--yet provides rich tools for re/creating "wholes."

The point is its the ACTIVITY of the user that instantiates the whole.

I would hazard that the major cognitive issue for the user is to get to the point they know enough to "reconstruct the semantic whole" from proto-parts.

Thoughts
Josiah  

@TiddlyTweeter

unread,
Aug 21, 2019, 7:52:26 AM8/21/19
to tiddl...@googlegroups.com
PMario wrote:
Coming back to the topic.

TT: There is a deep philosophical PROBLEM with fragments---as with any strong approach. 

HOW small is a good fragment? And how would you know?

IMO good fragments go down to a single paragraph, without tearing it apart from it's "initial" context. ... So it's the "tiddler section", without the drawbacks. 

I agree that sentences & paragraphs in written language often form semantic units. Though, that is not a TW issue, its a linguistic & cognitive one. 
But I think your "no-nonsense" approach works practically.

The issue for me, though, looking conceptually, is a problem with infinite regress. The relation between a "semantic fragment" and its "semantic context" is not as easy as it sounds. 
The issue is that by saying "its meaningful in its context dependency" lacks any explanation of how you derive context. 
IF you mainly have "fragments", what process gives you the whole?

An easier way of saying this is: 

You get to understand what the wider contextual meaning WAS only AFTER you have created it.

But what goes on in that? 

I mentioned before that actual making of TW by active uses, as we often have here, is, in many ways formally similar to what in France is called "Bricolage".

Thoughts
Josiah

  

 

Mat

unread,
Aug 21, 2019, 3:03:37 PM8/21/19
to TiddlyWiki
HOW small is a good fragment? And how would you know?

I can answer this... in a more general way but also with an exact answer:

A tiddler, i.e the smallest semantically meaningful bit of information, should be EXACTLY as small as the context demands for it to be meaningful.

There is not reason to split up, say, the huge Encyclopedia Britannica tiddler if one never needs any subpart of it (and if the system can handle such a big tiddler).

And it is pointless to have a tiddler for each ingredient in your pancake recipe if those tiddlers are never used in any other context.

This is why I came up with the "tiddler = filter" concept.

It should be effortless to merge and split tiddlers and rearrange "subtiddlers" showing within them.

(I hope my post isn't straying too far off topic ;-)

<:-)

TonyM

unread,
Aug 21, 2019, 7:23:33 PM8/21/19
to TiddlyWiki
Mario,

With structuring content within tiddlers I understand the need to use "sections" and we would like to access it separately, for example tiddler content could have a section for an "excerpt" or an overview. That we could access selectively when listing tiddlers, These could be moved into fields if we better supported multiline fields however it would be nice if sections could be placed anywhere in a tiddlers text and be referenced elsewhere.

Personally I think the answer lies with html tags. Not only do they have a rich offering like layouts Grids, responsive layouts and plenty of templates available they respond to css.

I believe we only need a small set of macros/widgets to leverage these effectively. For example a widget `<$display-section tiddler=tiddlername html-tag="article"/>` would "transclude the content between one of more tags (or with the html tags still wrapping the content)
<article> </article>

  • We could use names and ids to get more specific and an index to specify the Nth occurrence.
  • See the block and inline elements for all the immediately available tags
The tools to support this will also support extracting content from html sourced elsewhere, for example capture the html on a page in a tiddler and extract only list items `<li>content</li>`

But we could also use this to extract data from xml and JSON files stored in tiddlers.

Regards
Tony

TonyM

unread,
Aug 21, 2019, 7:38:12 PM8/21/19
to TiddlyWiki

@TiddlyTweeter

unread,
Aug 22, 2019, 5:58:31 AM8/22/19
to TiddlyWiki
HOW small is a good fragment? And how would you know?

Mat wrote  
... an exact answer:
 
.... There is not reason to split up, say, the huge Encyclopedia Britannica tiddler if one never needs any subpart of it (and if the system can handle such a big tiddler).

And it is pointless to have a tiddler for each ingredient in your pancake recipe if those tiddlers are never used in any other context ...
 
Like with PMario, I can only agree on that practicality. It makes sense.

I, of course, want to know HOW you found out that its not sensible to have each ingredient a Tiddler. (Though it might be if you needed to create a shopping list for your next cook-up :-).

The point I was trying to get to, somewhat slowly, is the functioning of IMPLICIT knowledge in the conceptual construction of the whole. What is that?

Part of the technical philosophical issue is that in trying to explain what we do in TW to create a "whole" often the EXPLANANS gets conflated with the EXPLANANDUM (https://en.wikipedia.org/wiki/Explanandum_and_explanans).

This is not a criticism. Rather, an observation.

Practical difficulties arise when you have "meaningful fragments" but don't yet have a "solid defined context". 
That happens quite a lot, I think.

The issue in your comments is not they lack utility, it is that there is no accounting of "emergent properties". 
I think that is the Elephant In The Room :-).

Thoughts
TT




Mat

unread,
Aug 22, 2019, 12:01:41 PM8/22/19
to TiddlyWiki
@TiddlyTweeter wrote:
I, of course, want to know HOW you found out that its not sensible to have each ingredient a Tiddler. (Though it might be if you needed to create a shopping list for your next cook-up :-).

How? Well, would having it as a tiddler benefit the context or not? The changing variable is the context, and the tiddlers be-or-not is a consequence. The need for "Milk" to be a tiddler or not can flip back and forth. In reality the context isn't even defined by the wiki, but by the reader and the moment. Even a common link could often as well be text if it is not clicked on. But IMO this is not so much a philosophical question as it is a pragmatic one and this is why I ended with:

It should be effortless to merge and split tiddlers and rearrange "subtiddlers" showing within them. - Imagine, for example, a UI where you (ideally in view mode) mark out a text segment and drag it to the river to create a tiddler with that text segment, at the same time removing it from the original tiddler. Or the reverse, drag'n dropping a tiddler onto a another one to have it merged into that spot.

There ain't no "solid defined context" only momentary needs that we vainly try to predict.

<:-)

@TiddlyTweeter

unread,
Aug 22, 2019, 12:27:33 PM8/22/19
to TiddlyWiki
Ciao Mat

Thank you for such a thoughtful reply.

... the context isn't even defined by the wiki, but by the reader and the moment.

Yes. 
 
... this is not so much a philosophical question as it is a pragmatic one

Its BOTH, really. 

Your approach instantiates A Philosophy that is quite strong.  I'd say you are a (good) "Pragmatist" :-)

... Imagine ... a UI where you ... mark out a text segment and drag it to the river to create a tiddler with that text segment, at the same time removing it from the original tiddler... 

Well, yes. That in no way obviates MY contention that the "conceptual heft" here is as much to do with YOU than The Mechanism.

My point remains that you grapple forward in your brain, the technology is secondary. At least I hope so.

There ain't no "solid defined context" only momentary needs that we vainly try to predict.

Exactly. 

Best wishes
TT
Reply all
Reply to author
Forward
0 new messages