[meta] WikiText - what type of language is it?

217 views
Skip to first unread message

Mat

unread,
Jun 15, 2019, 6:33:10 AM6/15/19
to TiddlyWiki
In the docs it says 

WikiText is a concise, expressive way of typing a wide range of text formatting, hypertext and interactive features. It allows you to focus on writing without a complex user interface getting in the way. It is designed to be familiar for users of MarkDown, but with more of a focus on linking and the interactive features.

but if I were to describe it to coders, I'd say it is a "high level language" but is it a pure "markup language"? And could it at all be called any of these; declarative, imperative, scripting, procedural, functional etc?

BTW, that quote above...  there is an irony here. Because of TW's generality, I find a lot of my time is not spent on "focus on writing without a complex user interface getting in the way". Instead a lot of time is spent on customizing the content to have it shown 'my way' and that does involve complex UI matters.

<:-)

Jed Carty

unread,
Jun 15, 2019, 8:38:47 AM6/15/19
to TiddlyWiki
I don't think that WikiText is a turning complete language, but I think it would fit best as a macro language.

There are a lot of descriptions you could argue fit, at least Interpreted, Embeddable, Logic, List-based, Declarative 

It also has similarities to PostScript.

Mat

unread,
Jun 15, 2019, 1:46:31 PM6/15/19
to TiddlyWiki
Thanks for reply


I don't think that WikiText is a turning complete language, but I think it would fit best as a macro language.

Yes, my impression is we've come at it from another angle. Rather than Jeremy setting out to create a language, the 'commands' have instead grown on a need basis to manage the information and to customize the presentation... or maybe that's also how Turing complete languages come about.

I think the atomic nature of tiddlers is the driving force behind the programming aspects in TW. We need to slice'n dice them tids so we need precise instructions for this. Makes sense I guess... anything complex would need rules to become orderly.

<:-)

TonyM

unread,
Jun 16, 2019, 3:50:48 AM6/16/19
to TiddlyWiki
Some thoughts on this subject

In many ways we confuse wiki text with the macros and widgets we use to manipulate wiki text, tiddlers and fields further. Beyond markdown, and camelcase links we move away from wiki text and use macros and widgets. Then in many cases the macros and widgets generate wiki text that is rendered to be displayed.

In many ways macros are not much more than wiki text snipits although they feel like more.

The thing is we can use highly customisable widgets with lots of parameters, write our own macros and use text references to fields, with text the default, to build what we want. Plugings allow us to import tiddlywiki widgets and macros to further enhance what we can do.

With wikitext macros and widgets we can program what we want. There is only wiki text macros and widgets on top of the tiddlywiki platform that we program with not a programming language persay. However given we can use css and html as well, then if these are programming languages then we can program in them, or program widgets with JavaScript.

Tiddlywiki is a platform on which we can use multiple internet technologies to build websites and applications, serve these over http/s and includes server-side features.

Tiddlywiki is programmable using these various technologies but is not a fully defined programming language although it approaches one. Its key is as a platform, it provides its own environment to handle and manipulate the objects it defines as save itself. Its user interface is defined within its own platform and data structures. All of which are ultimately presented to the browser as a html css JavaScript application.

Being as extensible as it is you can incorporate any technology that can be used in a browser as long as it conforms to the platforms requirements.

The saving mechanisiums allow tiddlywiki to save back to file or multiple server configurations to ensure persistence.

I think we program on top of the tiddlywiki platform, our programming is stored in tiddlywiki but is realised in the browser, we program on tiddlywiki in a range of ways but not in a tiddlywiki language. We program on not in tiddlywiki.

Regards
Tony

Mat

unread,
Jun 16, 2019, 7:40:18 AM6/16/19
to TiddlyWiki
@Tony

While what you write is, of course, true, I think it is more fair to not go beyond the native tools provided by TW when describing what WikiText is. Any computer language can be anti-abstracted down to machine code but the point (or at least my point) is to stay in the layer we're at.

That said, maybe TW makes it unusually easy to integrate and break out of the immediate layer one is in compared to other "languages". I'm not qualified to tell.

...but on the other hand, if one insists on bringing up JS+HTML+CSS then what TW allows is clearly more limited since TW implements restrictions on what to do, especially with JS.

<:-)
 

@TiddlyTweeter

unread,
Jun 17, 2019, 2:23:56 AM6/17/19
to TiddlyWiki
Ciao Mat

I think part of the issue is that there large variation about the scope of what "markup" means.

The term "markup" was originally derived from printer's (blue or red pen) annotations that were instructions for the layout of physical type on a printing press. This later evolved into formalised typesetting systems. LaTex and troff emerged, in turn from those (and as Jed mentions, PDF partly carries the heritage of that and is still used by publishers as a way to submit a documents to printers). Then there is HTML, SGML, XML etc. Long history, several directions. (See here for a reasonable overview: https://en.wikipedia.org/wiki/Markup_language#History_of_markup_languages)  A major issue that  emerged over the years is to what extent they are "presentational", "procedural", "descriptive" or "semantic".

MarkDown and cousins is a "lightweight markup language" (LML) ... https://en.wikipedia.org/wiki/Lightweight_markup_language

Coming to your question with regards to WikiText in TW ... I think Jed is likely close with "macro language". It "does things" you would not normally think of as just a LML system.

Its worth underling that its possible in TW to seamlessly add new markup parsers, or modify existing ones. In other words, its "markup potential" is not inherently any specific LML, rather its, in a way, a macro language that can define them.

Best wishes
Josiah

Jeremy Ruston

unread,
Jun 17, 2019, 3:56:42 AM6/17/19
to @TiddlyTweeter, TiddlyWiki
Hi Josiah

Interesting question, and oddly I'm one of the least qualified person to answer it. Partly due to not having a formal background in CS, but partly because I'm a bit too close to it.

In any case, I'd say that there are several distinct languages in TW5:

* wikitext shortcuts (ie ''bold'', __italic__ etc) and macros
* widgets
* filters

This is something that Joe Armstrong and I used to discuss before his untimely death. I found an email from last December where says "You invented the monad... actually you invented the monad not horn clauses". I think he was thinking particularly of the filter language (he liked it, and helped me come round to appreciating it more).

Best wishes

Jeremy.






On 17 Jun 2019, at 07:24, @TiddlyTweeter <Tiddly...@assays.tv> wrote:


--
You received this message because you are subscribed to the Google Groups "TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tiddlywiki+...@googlegroups.com.
To post to this group, send email to tiddl...@googlegroups.com.
Visit this group at https://groups.google.com/group/tiddlywiki.
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/94d1b301-cd86-43a1-8003-e37daeb67eab%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

TonyM

unread,
Jun 17, 2019, 8:50:48 AM6/17/19
to TiddlyWiki
Mat

Actualy I do not find html and css limited too much in tiddlywiki except as I believe we both acknowledge, they are limited in such a way the tiddlywiki platform needs to deliver its promises. A Quine, its ui, its tiddlers, tag and fields.

As I learn more I can see how even if we need to build a plugin we can use any JavaScript html and css feature and technology we want. It just must conform to the platforms requirements and then it can thrive in the tiddlywiki ecosystem.

The compliance cost is much less than the advantages gained by participating in the tiddlywiki environment because tiddlywiki delivers in many different ways. File server ui data models interface software development file and server hosting and other plugins and macros.

This is a win win exponential.

Tony

Mat

unread,
Jun 17, 2019, 5:15:28 PM6/17/19
to TiddlyWiki
* wikitext shortcuts (ie ''bold'', __italic__ etc) and macros
* widgets
* filters


<rant mode: on>
Very appealing with such high level views. Makes me wonder why we have this particular division of "things" that control out data. We have clearly not aimed for the ruling paradigm that distinguishes between "physical structure" (HTML), "style" (CSS) and "actions" (JS) - or maybe this comparison is irrelevant. The "wikitext shortcuts" do seem to be about styling, but macros can be anything(?) more like a container. Widgets... are placed out as if they were html/structure elements but they are really small creatures; things that do stuff. And filters... I agree with Joe that these are really something special. We treat the filter operators almost like physical manifestations... the cutter, the end-applier, the inspector, etc. I dabbled with SQL long ago and while filters are of course central to any DB, they felt like more of an activity than a thing. Maybe it is the tiddler aspect of things that make them feel physical?

Does any other "text tool" exist where you can manipulate textual content in any comparable way? And is tiddler philosophy the secret and necessary ingredient for this dynamism?

<:-)

TonyM

unread,
Jun 17, 2019, 6:16:25 PM6/17/19
to TiddlyWiki
Mat

And is tiddler philosophy the secret and necessary ingredient for this dynamism?

Perhaps it is, I wonder if its because the atomic element in tiddlywiki, the tiddler, is front and centre, a human scale object we all learn about. The tiddler, effectively a unique key record is not hidden in rows within a database table, nor losing its uniqueness inside some other category. Tiddlers live and must be unique within a tiddlywiki, all of which is a clearly defined human scope.

Tony

@TiddlyTweeter

unread,
Jun 19, 2019, 4:38:23 AM6/19/19
to TiddlyWiki
Ciao Jeremy

I slept on it.

Joe's insight about The Monad is incredibly succinct and to the point about TW.

I know about monads from philosophy rather than CS. But it's the same territory.

When Leibnitz wrote the "Monadology" (giving name to a philosophy that first evolved in ancient Greece with Pythagoras) he pointed to the seamless nature of experiencing. Monad as "undivided multiplicity".

In philosophy it tends to be associated with "idealism". I don't have space to explain what that means. But it is not a fault, it's an orientation.

Of more recent philosophers Gendlin (A Process Model) and Whitehead (Process & Reality) understand the monad. Whitehead particularly is relevant in that he formalised a math philosophy. It's very close to CS.

"Process" philosophy is very different than most ideas of what happens. In particular it's very good at understanding how we derive novelty from re-combination of the prior. In brief, mostly we tend to think of explaining before we do, whilst in practice the new is only explainable after it's occurred.

Back to The TiddlyWiki...

Whilst my points are not gonna make any difference to most practical issues ...

... I'd say that The TiddlyWiki is both a MONAD & a QUINE

In a sense they are same type of thing, almost interchangeable terms. I think those two overview concepts are helpful.

If TWX were renamed THE MONAD I'd be happy 😁

Just thought you might be interested!

Best wishes
Josiah

TonyM

unread,
Jun 19, 2019, 8:47:17 AM6/19/19
to TiddlyWiki
Josiah,

very interesting. I did not know about Monad but a brief review suggests you may be right.

Interestingly I was about to extend my last argument about how the tiddler is the uniquely keyed object in the centre of tiddlywiki with the fact that this rule is cast into stone, yet one can immediately code a solution to shield the logic from this rule.

Tiddlywiki provides excellent rules then gives you the tools to bend them.

In recent decades we discovered the human brain was much more adaptable or plastic than we imagined. I think tiddlywiki is a very plastic software solution that works well with our plastic minds. Reminding me of one of my first metaphors for tiddlywiki that it is like plasticine from which you can build almost anything.

I would be happy if twx was named with inspiration from moldable plastic, clay or a version there of. Dough, Lego or macarno also comes to mind but with Quine Monad and self referential qualities it is hard to find a common analogy.

Tiddlywiki stands alone but connected to everything.

Universal software or like the invention of the general purpose computer, the universal client the browser do we have general purpose software?

my imagination is sparked.

Tony

@TiddlyTweeter

unread,
Jun 21, 2019, 4:52:01 AM6/21/19
to tiddl...@googlegroups.com
Ciao TonyM

An interesting issue (for me) about software is its intrinsically "determinate"--meaning it HAS to have fixed logic. At machine level its 0 or 1. Nothing else. The human brain is not like that. The "logic" of "wetware", physical organic matter, and consciousness, does not work that way. 

A body is not a car. A mind is not a machine.

Whilst medical science needs reduction to "parts"/"units"/"fragments" in order to make sense of the otherwise obscure situation (e.g. appendicitis/brain fever) its always an APPROXIMATION, not a DETERMINATION.

What IS interesting in TW is that it's degree of support to "wetware" functioning is very unusual. Largely that is to do, I think, to do with its "self-modifying" nature.

BTW, modern genetics is particularly relevant conceptually as its NOT about strict determinism as that is not how (despite wider ideas) gene manifestation happens. (see, e.g. Life Unfolding)

The upshot of what I am saying is that TW, by Quine Behaviour, approaches a generic problem in Computer Science. I.e.: how to Properly emulate human meaning shaping. 

That is about as far as I can get.

Basta
Josiah

TonyM

unread,
Jun 21, 2019, 10:09:22 PM6/21/19
to TiddlyWiki
Josiah,

I enjoy viewing things from a philosophical and scientific perspective. I will share some ideas here

An interesting issue (for me) about software is its intrinsically "determinate"--meaning it HAS to have fixed logic. At machine level its 0 or 1. Nothing else. The human brain is not like that. The "logic" of "wetware", physical organic matter, and consciousness, does not work that way. 

This is changing a little with machine learning and pre-Artificial Intelligence systems. Some ways of using computers are less and less determinate and they are getting harder to demonstrate why a computer answers X, and some will even answer Y the second time. However this intrinsically "determinate" is generally true. Determinism in computers is something we rely on, and a reason I do not think we will put too much effort to make "conscious" computers like us, except for experimentation. I agree consciousness does not work in a deterministic way and is is part of why it can induct and create so well. The key I believe is abstraction. 
 

A body is not a car. A mind is not a machine.

Whilst medical science needs reduction to "parts"/"units"/"fragments" in order to make sense of the otherwise obscure situation (e.g. appendicitis/brain fever) its always an APPROXIMATION, not a DETERMINATION.

I agree, but just as we must accept this, we must also accept we can learn more about how it works, it is not an unfathomable system. While some parts of it are most likely non-deterministic due to combinatorial complexity, much is deterministic but is currently undetermined by us.
 

What IS interesting in TW is that it's degree of support to "wetware" functioning is very unusual. Largely that is to do, I think, to do with its "self-modifying" nature.

Philosophically if we can accept the argument there is a "single Objective Reality", life and the human brain has being built in this "single Objective Reality" and despite chance playing a substantial role, physical and intellectual survival strategies have being honed by the evolutionary process, continuously tested by the "single Objective Reality". This is why we can drive cars, our evolutionary thread has passed through multiple body types, the nervous system has being forcibly generalised as a result. With a little practice we can adapt our proprioception to many body shapes and operate them as if they were our bodies.

I would argue that TiddlyWiki has a philosophy behind it, that drives it towards an open and malleable platform, that maintains a generality, that increases its fitness within the software domain, and since we keep it tested in the "single Objective Reality" it will co-evolve with our wetware, and we should not be surprised if it comes to emulate human meaning and shaping.
 

BTW, modern genetics is particularly relevant conceptually as its NOT about strict determinism as that is not how (despite wider ideas) gene manifestation happens. (see, e.g. Life Unfolding)

Agreed, and supported by my previous comments. TiddlyWiki evolves in an environment of computers and our minds, we add selective pressure to its evolution, and one key pressure is to maintain its plasticity.
 

The upshot of what I am saying is that TW, by Quine Behaviour, approaches a generic problem in Computer Science. I.e.: how to Properly emulate human meaning shaping. 

I am sure you can see from my above notes, I have come to the same conclusion, the philosophy many of us share will keep it going in that direction. My key argument is I am not surprised tiddlywiki approaches a generic problem in Computer Science. There is convergence happening.
 

That is about as far as I can get.

Thanks so much for you musings, It allows me to feel momentarily, that my obsession with TiddlyWiki, is justified and not a mental health problem :)

Yours Sincerely
Tony

Reply all
Reply to author
Forward
0 new messages