Tones,

I think we're looking at the state of different things. Let me see if I can 
articulate. If I'm understanding what you're saying, you're talking about 
the entire application including all the tiddlers as the state machine. I 
create a new tiddler in my wiki instance, the state of that wiki has 
changed. Yea that would not be finite. Sorry if I wasn't clear. 

I was referring more to the engine - the parser (and maybe other things) - 
as it process a tiddler to convert it into html. For example, a tiddler has 
a text field the parser reads that field. The TW parser is initially in 
"General wiki text" (as you describe it). The parser encounters the string 
\define, the parser recognizes this as macro definition therefore TW state 
has changed to "Macro definition" and therefore rules of what valid text 
should follow is different than if TW was still in "General wiki text.

Hopefully that clarifies things.

Thanks.
On Monday, August 9, 2021 at 5:29:51 PM UTC-4 TW Tones wrote:

> Davou,
>
> I just refreshed the concept of finite state machine 
> <https://en.wikipedia.org/wiki/Finite-state_machine> and I would be 
> confident in saying tiddlywiki is not one. You may see elsewhere and 
> reasonable claim tiddlywiki is a "non-trivial quine", it can change itself 
> and save its state.
>
> This is because an  finite state machine 
> <https://en.wikipedia.org/wiki/Finite-state_machine>'s memory is limited 
> by the number of states it has, tiddlywiki is not, and its memory 
> limitations are in undetermined.
>
> However I suspect the reason you think this may be the case is reasonable, 
> but would argue that this mostly stems from tiddlywiki being used in the 
> browser. Along with other websites and even much earlier Mainframe 
> terminals the client server model a need to limit the effort required by 
> the server html tends to respond to a client when needed and not until 
> then. Think of a html form, it sits on your screen and the server may be 
> able to forget you exist until you hit the submit button, at which point 
> the server/host responds. Tiddlywiki however exists wholy within the 
> browser and only on saving do we need to communicate with the server/host.
>
> Tiddlywiki's update process that reflects any change throughout the whole 
> wiki, makes use of a thing call widget trees, examples such as 
> transclusions need to be resolved based on any relevant change. However 
> such could result in infinite loops but tiddlywiki is designed to avoid 
> this. Basically it works to ensure each change is processed in a finite way 
> so it returns quickly to allow the user to interact or provide more data to 
> it. 
>
> I feel that tiddlywiki is better thought of as an approximation of a 
> Turing machine that handles most freeze, fails and infinite regress 
> (although not all).
>
> Part of the complexity comes on one hand from the feature rich code and 
> services available to software in the modern browser and on the other hand 
> it can be hosted such that changes can't be saved. It could be argued a 
> read only tiddlywiki has finite states, however there are so many states it 
> can be in, it may as well be infinite.
>
> Thanks for posting such ideas.
> Tones
> On Tuesday, 10 August 2021 at 03:01:42 UTC+10 davou...@gmail.com wrote:
>
>>
>> Hello all,
>>
>> I've been casually using TW for a few months now. In the past couple 
>> weeks I have started working with the slightly more advanced features. 
>> https://groktiddlywiki.com/read/ has been very helpful, thanks Soren. 
>> One of the obstacles for me to grok TW is there appears to be a lot of 
>> conditional rules based on the current context of the parser - ex: in 
>> tiddler text vs macro call vs macro definition. This makes me visualize TW 
>> as a finite state machine. Maybe it's actually designed as such, I haven't 
>> looked at the code. Anyway, the nice explanation by PMario here 
>> <https://groups.google.com/g/tiddlywiki/c/RoTA7OJFMMg/m/sjnaY93TBgAJ>just 
>> bolstered my visualization.
>>
>> I don't suppose there is documentation of TW as finite state machine. 
>> Probably not, but thought I would ask. What I mean is documentation broken 
>> down as:
>>
>>    1. Here are all the possible states TW can be in
>>    2. Here are the rules for when TW is in a given state
>>    3. And here are the triggers that will change TW from one state to 
>>    another
>>    
>> Maybe there are too many states, or may different levels/granularities of 
>> states.
>>
>> The closest I found is Tones' https://anthonymuscio.github.io/It has 
>> many of the rules for a given "state".
>>
>> Thank you.
>>
>>

-- 
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+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/tiddlywiki/81d79e3d-e127-47d7-b26c-2680e6e6e98fn%40googlegroups.com.

Reply via email to