Folks,
I have built a tsn "Tiddler Serial number" solution to make renaming tiddlers after the event OK.
At first I thought, with the creation of the relink plugin, I considered this had become irrelevant;
- However I have discovered reasons why not, ie a new set of compelling reasons.
- I can do a lot of this on my own but certainly not all
Why this post?
I am posting this idea for those who may want to comment on this idea or assist in collaborating in its development.
This idea need not be implemented in the core, and if it were used independently
I am however aware when I give a comprehensive post people seem to be reluctant to reply, unless they fully understand what I have posted.
- Please do not let this stop you, if only to say this is something you may like.
- No ideas or questions are stupid ideas/questions (at least in this case)
Concept Overview
This project is an enabler, not simply an end solution in its own right, although many can follow from it with little additional complexity.
By being able to set a Tiddler Serial Number (TSN) on any tiddler and subsequently Child Tiddler Serial numbers (CTSN) the following will be possible;
When I use SN (Serial number) in the text I am referring to all serial number such as TSN CTSN and SSN
For those with a deep knowledge of TiddlyWiki you may see that such a solution will solve a number of perceived limitations in tiddlywiki and yet ultimately be easy to understand or use.
I say perceived limitations because just as this solution proposes to overcome these using tiddlywiki itself, you can create similar solutions already, perhaps not as generic and comprehensive as this suggestion
- Rename tiddlers without disrupting links (an alternative link method) to the tiddler with or without the relink plugin
- Renaming parent tiddlers yet maintain the link to child tiddlers with or without a tag and relink plugin
- Ensure automatic unique tiddler titles for tiddlers children
- Allow any name to be used for child tiddlers and retain the connection to their parents regardless of either being renamed
- Allow unique automated child tiddler titles based on TSN/CTSN fields and also to be hidden behind the $:/ system or other name spaces.
- Still permitting naming to comply with various desirable naming standards like parent/child
- Still permitting children to have the parents tag
- Allow multiple cross hierarchy child tiddler sets
- Allow all child tiddlers to be listed with or without further filters eg to see if they are a son a daughter etc...
- This allows a large number of alternate relationships to be used for children
- For example a person may have multiple children
- Children can have multiple parents and a separate order with each of those parents.
- The ability to include a wiki-name or epoch when assigning a TSN enables other structures to be built.
Tiddler Serial Numbers TSN's
- Allow a tidder to be given a unique serial number (that never changes)
- So it can be located regardless of any future renaming
- Provide a form of "permalink" within wikis regardless of the title
- Links remain valid after a name change
- Allow Wiki name or Wiki Serial number (WSN) to be added to TSN's to make it valid on movement to another wiki.
- Hide the TSN field from edit mode
- Ideally one day these TSN's could be issued by default in the core, against which a unique prefix can be added later for interwiki transfers.
- The freedom to name a tiddler anything (unique) including by prefix also opens a set of possibilities I will not detail here.
- I also have a mechanism to access tiddlers without knowing their prefix.
Current Tiddler Serial Numbers CTSN's
- Allow any tiddler to issue its own additional serial number to new child tiddlers, along with their tsn
- A field named PTSN//tsn// will be created on children containing the CTSN ie parent
- CTSN's will never change
- Hide Hide the TSN field from edit mod
- New CTNS will be added to the child-list field permitting reordering and reduced search
- Hide the CTSN field from edit mod
- Allow children to select one or more new or additional parents
Existing Related solutions
- TocP
- KIN filter
- Alternative to tags
- Gen Tags
- Alias plugin
- All editions that have gone to lengths, to identify and keep relationships between tiddlers.
Related projects of my own
- Additional Actions on any button
- Ghost tiddlers
- Compound tiddlers
- Genealogical and generic trees
- Autonomous fields and Tags
Technical/conceptual information
- It is possible to only set TSN's and/or CTNS when needed, for example only once a TSN is available will you be able to add children
- TSN and CTSN's will only be issued once and will not be editable
- As a result there is little in the way of referential integrity issues
- The TSN consists of both a unique serial number and may have a prefix or suffix added.
- If necessary the Existing TSN prefix or suffix could be renamed while retaining the serial number.
- Children can be added or removed on the child-list to remove (but not delete the relationship)
- SN's issued to a tiddler or child that is deleted will not be reused,
- TSN's CTSN's will thus be an additional timeline sort field
- Parent tiddlers can be used as an Index to many tiddlers
- TSN's and CTSN's can be used in lists and indexes to build additional lists and relationships such as many to many and lookups
- This can be done independently from tiddler vs index of field naming requirements
- It would be easy to retain a log of tiddler renames (by TSN) such as previous names become aliases or history that can be searched
- Including backups, trash and versions
- This would also empower my "Ghost" Tiddler concept discussed elsewhere.
- [updated] The addition of a SN of any kind will use $timestamp=no so created and modified dates remain true. This assignment can be logged.
Special Advanced Features/Futures
- Develop a feature that allows an external permalink (URL) using the tsn so they arrive at the same tiddler even after a name change
- Supporting Editor toolbar tools.
- Widgets to allow interactions with the future solution
- Introduce operators and widgets to support this comprehensively.
- TSN's could be used to issue a new version (new TSN) for a given tiddler title, so the previous version remains valid if only deprecated.
- Provide a public registry of Wiki Serial Numbers WSN's for those wanting a Global Unique ID or use a "brand" in your TSN's
- Allow alternates/additions to the child-list to cater for fundamentally different kinds of relationships such as networks, sets and tiddlers which are set joins, unions, differences
- In effect a tiddler could then be wither master set or a set relationship.
- There are ways to use the export and import mechanisms to gain further features
- Modify inbound TSN prefixes/suffixes.
- Reissue Serial numbers
- Allow the transfer of tiddlers that request a deletion of a given tiddler (currently Not possible)
- Perhaps one day a form of structured Query language to support any structure built on top of tsn's and ctsn's, thus any structure you can implement in tiddlywiki
As a result of feedback [edited]
- Davids Question whist answered, made me realise if the TSN number starts at say 100,000 buy default, it would be possible to use the TSN 0-99999 as registered tsn's
- thus a defacto standard may say tiddlers with the tsn 100 are used to store the owners user name and details. These would be published for use.
- However see in updates below SSN's
Updates by Author [edited]
- Not mentioned previously one can use the TSN, CTSN or SSN (below) for
- next previous
- contains references (eg tiddlers the current one depends on or transcludes)
- Even to introduce MRU or most recently used records.
- Or a list of valid values by Serial number
- Not mentioned previously, I ALSO want to create a Shadow Serial Number SSN,
- that only applies to shadow tiddlers,
- the serial number will not be saved in the shadow tiddler unless done so in the core distribution, but in a data tiddler.
- All shadow tiddlers can then have a unique serial number even if renames occur in the future,
- documentation can list them with the SSN as the key
- Relationships can be established without using tags
- This may simplify upgrades by permitting a deletion and rename as well.
- This can include core and 3rd party plugins
- Not mentioned previously, With a TSN/CTSN or SSN available you can build independent rename immune, list of any tiddlers without tags, or editing of tiddlers.
Regards
TW Tones