@TW_Tones Gotcha. Then I think my main problem with giving some feedback might be that I think treating it as a “modelling tool” is too generic scope to be able to have a meaningful discussion about it. What I mean is that the answers to the questions you posted in the main thread will vary wildly depending on what type of modelling you’re doing. Or perhaps it all just sounds too academic for me to have an intuitive grasp given my lack of academic background.
Nevertheless! I’ll treat this as “What challenges have you encountered that relate to TW fundamental behavior” because I think it should match “What features in tiddlywiki help or hinder model making in tiddlywiki?”.
And I can answer that!
Relations:
-
1:1 relations are fairly easy – you can use tags with the name of the other tiddler or a custom field in either tiddler.
- Adding metadata is not an issue, you can use fields.
- If you decide to use tags for the relation, renaming will update the tags.
- But if you use a custom field links will get lost with rename!
-
1:many relations are also, for the most part, without a problem:
- If you use tags on the many tiddlers you can then use fields for additional metadata and renaming will be handled.
- If you use
list
field¹ on 1 tiddler then you can still store metadata in the many tiddlers, and rename will work. - But if you use a custom field on many tiddler you have the same problem as with 1:1 relation.
-
many:many relations are the worst:
- If you don’t need to store any metadata for the relation you can use
list
field¹ on both sides. - But if you need metadata the only way to go is tiddlers defining the relation and… here start the problems:
- Orphaned relation tiddler if you remove either or both of the linked tiddlers
- You can’t use tags or
list
field because you need to know which linked tiddler does what, so renaming either will break the relation.
- If you don’t need to store any metadata for the relation you can use
For my Task List plugin I have many:many relations and I had to solve both of the problems using JS. As far as I know there is no native way to do it and that’s what I’d call a hindrance.
Footnotes:
¹ - If you try to use listops
filter operators with tiddlers that contain spaces in their name you’ll have a bad time, but that’s not a fundemental problem of TW.