"shared pool" of tags for multiple TWs

186 views
Skip to first unread message

HansBKK

unread,
Jun 16, 2011, 9:48:29 AM6/16/11
to TiddlyWiki
I've got a group of separate documents with a set of common tags.

As the number of tags and documents has grown, the work involved in
maintaining consistency among them has now become pretty burdensome,
up to about 900 tags in a hierarchy/network, most branches between
four and eight levels deep.

I'd also like to be able to import/export tiddlers - with their tags
intact, so it's become more critical that the different files are
truly 100% consistent. In doing manual importing/exporting, I've found
that it's very easy to create nearly duplicate tag tiddlers, and the
hierarchy/network relationships get all messed up.

Is there a way for me to have one TW act as the "master" file for the
tagging hierarchy, and for the "content" files to transparently and
dynamically load the tags from that master?

I'm envisioning the tiddler contents of the master file would simply
be a "glossary" explaining the tag's term, pointing out distinctions
between this one and other related ones with perhaps some cross-
linking.

Any suggestions would be most welcome. . .

Julian Knight

unread,
Jun 16, 2011, 10:24:30 AM6/16/11
to tiddl...@googlegroups.com
How about having a set of tiddlers named after the tag and tagged with the name:

Tiddler Title = tag1
Tags            = tag1 excludeLists

etc.

As each tiddler is tagged with excludeLists, it would prevent them clogging up the general lists but are still easily available from the tag lists in other tiddlers. Each of these tag tiddlers would contain their own description of course.

You could then either just use the normal import tiddlers tools to import the tag tiddlers from a central, common source. This would work if the list doesn't change too much (since adding/deleting would be manual) updates would be handled via the normal sync process.

Alternatively, you could use Erics external tiddler tools (see tiddlytools.com) keeping all of the common tags in a TW file that all other files reference, loading the tag tiddlers on startup. Then you just have to sync the common tags TW file between users computers - you might use Dropbox or some other mechanism for this.


Anyway, a few ideas to try.
Regards, Julian Knight

HansBKK

unread,
Jun 16, 2011, 12:11:10 PM6/16/11
to TiddlyWiki
Thanks Julian.

Sorry I wasn't more clear.

> How about having a set of tiddlers named after the tag and tagged with the
> name:
>
> Tiddler Title = tag1
> Tags            = tag1 excludeLists

Yes the tags are tiddlers already - if there's another way to organize
tags into a complex hierarchy as I described, I'd like to know about
it. And list visibility isn't an issue, with thousands of tiddlers in
addition to the 900+ tagging ones, I'm not using the sidebar for
navigation much 8-)

> You could then either just use the normal import tiddlers tools to import
> the tag tiddlers from a central, common source. This would work if the list
> doesn't change too much (since adding/deleting would be manual) updates
> would be handled via the normal sync process.

Sorry, what "normal sync process"? And define "too much" - every once
in a while I refactor say 30% of the hierarchy, and I want all the
"child" TW's to reflect the new structure of the "master" without
having to manually keep them in sync as I'm doing now.

> Alternatively, you could use Erics external tiddler tools (see

Cool! Looks like just the ticket, as long as the tiddlers come in with
their tags intact - I'll check it out!

For future googlers - http://tiddlytools.com/#ExternalTiddlersPluginInfo

> sync the common tags TW file between users computers - you might use Dropbox
> or some other mechanism for this.

No need to keep the hierarchy in sync once the files have been
"published", and I'm the only author at the moment.

Thanks for your help Julian. . .

Yakov

unread,
Jun 16, 2011, 5:40:58 PM6/16/11
to TiddlyWiki
You can also try MasterIncludesPlugin [1]. It is made for shared
"settings" but actually all the settings are tiddlers, so presumably
it allows to achieve what do you want.

[1] http://masterincludes.tiddlyspace.com/ (Tobias' repository and
docs for FND's plugin)

HansBKK

unread,
Jun 16, 2011, 10:20:06 PM6/16/11
to TiddlyWiki
Thanks, choices are good.

I noticed this references to another of Eric's:

http://www.tiddlytools.com/#LoadTiddlersPlugin

http://www.tiddlytools.com/#ExternalTiddlersPlugin

Can anyone comment on pro's and con's between the two? (or
masterinclude's for that matter)

It seems to me that the latter requires the "child" TW to be pre-
populated with (in my case) 900+ tiddlers with unique macro code in
each calling its content from the "master", while the former will do a
bulk import/update into a blank target based on tiddlers with a
certain tag in the source TW.

If so my testing will start with that one 8-)

And of course I'll report back here. . .

On Jun 17, 4:40 am, Yakov <yakov.litvin.publi...@gmail.com> wrote:
> You can also try MasterIncludesPlugin [1]. It is made for shared
> "settings" but actually all the settings are tiddlers, so presumably
> it allows to achieve what do you want.
>
> [1]http://masterincludes.tiddlyspace.com/(Tobias' repository and

Eric Shulman

unread,
Jun 16, 2011, 11:11:30 PM6/16/11
to TiddlyWiki
> http://www.tiddlytools.com/#LoadTiddlersPlugin
> http://www.tiddlytools.com/#ExternalTiddlersPlugin
>
> It seems to me that the latter requires the "child" TW to be pre-
> populated with (in my case) 900+ tiddlers with unique macro code in
> each calling its content from the "master", while the former will do a
> bulk import/update into a blank target based on tiddlers with a
> certain tag in the source TW.

Indeed. For your purposes, ExternalTiddlersPlugin would *not* be the
right fit. That plugin allows you to keep content in other TWs AND/OR
external text files, and then *render* that content via the
<<tiddler>> macro by using an external file/URL reference instead of a
local tiddler title reference. Note: content loaded in this fashion
does NOT pull in tags or custom field values from the external
document. Only the tiddler *text* content is accessed.

In contrast, LoadTiddlersPlugin is an "importer". It pulls tiddler
content from other TW documents and adds them to the current
document. Once imported, those tiddlers are full participants in all
the local TW functionality, and include all their tags, custom fields,
create/modification dates, author info, etc. If you also install
TemporaryTiddlersPlugin, then you can have LoadTiddlersPlugin
automatically add the "temporary" tag to the imported tiddlers, so
that they will NOT be stored in the local file when that file is
saved.

enjoy,
-e
Eric Shulman
TiddlyTools / ELS Design Studios
----------
Was this answer useful? If so, please help support TiddlyTools:

TiddlyTools direct contributions: (paypal)
http://www.TiddlyTools.com/#Donate
UnaMesa tax-deductible contributions:
http://about.unamesa.org/Participate (paypal)
TiddlyWiki consulting:
http://www.TiddlyTools.com/#ELSDesignStudios
http://www.TiddlyTools.com/#Contact

HansBKK

unread,
Jun 17, 2011, 2:28:09 AM6/17/11
to tiddl...@googlegroups.com
On Friday, June 17, 2011 10:11:30 AM UTC+7, Eric Shulman wrote:
In contrast, LoadTiddlersPlugin is an "importer".  It pulls tiddler content from other TW documents and adds them to the current document.  Once imported, those tiddlers are full participants in all the local TW functionality, and include all their tags, custom fields, create/modification dates, author info, etc.  If you also install TemporaryTiddlersPlugin, then you can have LoadTiddlersPlugin automatically add the "temporary" tag to the imported tiddlers, so that they will NOT be stored in the local file when that file is saved.

Most excellent Eric, thanks, not only for responding here, but for all the tremendous work you've put into the project over the years.

A followup question, perhaps a bit OT and of course addressed to anyone willing to chime in, not just Eric:

Is there a way to distinguish at tagging time between one set of tags and another?

Say I'm tagging a new tiddler in one of my "child" TWs. I have my 900+ tiddlers "sync/imported" from the "master", and then I have a set that are specific only to the local document. I'd like to either:

tag the tiddler in two 'rounds', first using the set from the master, then using the local set.

or, if that isn't possible

to at least be able to somehow tell the two sets apart

I'm thinking I could keep the two sets in separate hierarchies, or, if they were all tiddlers, use distinguishing "meta-tags" (e.g. "external" vs "local).

Related questions while I'm at it: Is it possible to similarly distinguish somehow between tags that are "just tags" (those that aren't also tiddlers) and the "taggly tiddlers" (excuse if there are more precise terms to distinguish the two types)?

Worst case, I suppose I could use a naming convention for the tags themselves, but that's kludgier than I'd like.

HansBKK

unread,
Jun 17, 2011, 2:28:31 AM6/17/11
to tiddl...@googlegroups.com
On Friday, June 17, 2011 10:11:30 AM UTC+7, Eric Shulman wrote:
In contrast, LoadTiddlersPlugin is an "importer".  It pulls tiddler content from other TW documents and adds them to the current document.  Once imported, those tiddlers are full participants in all the local TW functionality, and include all their tags, custom fields, create/modification dates, author info, etc.  If you also install TemporaryTiddlersPlugin, then you can have LoadTiddlersPlugin automatically add the "temporary" tag to the imported tiddlers, so that they will NOT be stored in the local file when that file is saved.

Tobias Beer

unread,
Jun 17, 2011, 8:16:37 AM6/17/11
to TiddlyWiki
Why would you want to distinguish tags coming from the external source
vs. those that exist in the local scope of your wiki?

Cheers, Tobias.

HansBKK

unread,
Jun 17, 2011, 12:03:59 PM6/17/11
to tiddl...@googlegroups.com
Sorry this is so involved - first, the background:

My current thinking is that the "external source" is simply a repository containing a hierarchy of tags which I want to maintain centrally. These tags will be applied to many - currently a dozen, eventually hundreds of separate different "content sets" (lets call them books), which are stored in separate TW files, containing somewhat related types of content, but not on exactly the same topics.

The master contains the "universal" concepts common to all the texts, which hierarchy is important to keep consistent across all the TW files.

But each individual TW file will need to also have its own specific terminology - internal, local taxonomy - that doesn't need to - in fact shouldn't - exist in the "central thesaurus" master.

For example, if I were cross-indexing hundreds of source texts from all the major religions - in the master file I maintain the thesaurus of "universal values" terms - ethical concepts, personality traits, states of mind, behavioral practices etc that are common to nearly all the major religions. However Islam has its own set of specialized terms, which I want do want to index within the Muslim TW files; Buddhism has a lot of its own set of unique terms as well, Hinduism, etc.

If I had to maintain each of the separate religions' terms together all mixed in with the universal set, the master becomes much more difficult to manage.


Now from the POV of processing a given text:

Tagging a books' tiddlers is much more difficult if I have to try to remember which terms are universal and which are specific to that religion - it works much better if I can first run through the text applying all the master tags in one pass, and then make a separate pass applying the local ones.

Now that I think about it, since I'm likely to end up with multiple Buddhist TWs - one mahayana and one theravada - or perhaps I start hitting performance issues and want to split the ancient Hindu texts out from the more recent ones, it would probably be better to simply talk about separating the tag hierarchies not just local vs external but more generally by source - multiple external sources, with if it isn't too much of a problem still leaving the possibility for local-only ones.


andrew.j.harrison84

unread,
Jun 17, 2011, 7:38:37 PM6/17/11
to tiddl...@googlegroups.com

Is there a way to silence the display of loadtiddlersplugin message at the top in orange that displays how many tiddlers were loaded? It is annoying and I have to hit close twice for it to go away.

> --
> You received this message because you are subscribed to the Google Groups "TiddlyWiki" group.
> To view this discussion on the web visit https://groups.google.com/d/msg/tiddlywiki/-/weXHZkaSJdQJ.
> To post to this group, send email to tiddl...@googlegroups.com.
> To unsubscribe from this group, send email to tiddlywiki+...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/tiddlywiki?hl=en.
>

HansBKK

unread,
Jun 18, 2011, 12:27:27 AM6/18/11
to tiddl...@googlegroups.com
Isn't that what the "quiet" option is for?
http://www.tiddlytools.com/#LoadTiddlersPluginInfo

And why are you loading so frequently that the message becomes annoying?

HansBKK

unread,
Jun 18, 2011, 12:38:12 AM6/18/11
to tiddl...@googlegroups.com
LoadTiddlersPlugin is just the ticket for my use case Eric, thanks heaps!

HansBKK

unread,
Jun 18, 2011, 1:23:43 AM6/18/11
to tiddl...@googlegroups.com
Now to handle the problem of users not being aware that they shouldn't edit the externally-sourced tagglyTiddlers locally.

Here's my current kludge:

<div macro="hideWhenTagged lt-mq">
<div class='toolbar' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></div>
<div class='title' macro='view title'></div>
</div>
<div macro="showWhenTagged lt-mq">
<div class='title' macro='view title'>[[Warning_lt-mq]]<br><br></div>
</div>

The [[Warning_lt-mg]] tiddler says:

Master Quality - do not edit here!

"Quality" being my term for the concepts labeled with the external tags

More elegant suggestions for handling this would be most welcome.

Julian Knight

unread,
Jun 20, 2011, 9:23:20 AM6/20/11
to tiddl...@googlegroups.com
I think you may be trying to push TW a little too far, it is really meant to be a straight-forward information management tool & trying to get it to kludge multiple taxonomies is rather a stretch.

If you could cope with an online tool rather than offline, Wordpress might be a better fit.

Otherwise, maybe pressing a custom field into use as an alternative taxonomy would be better?

Julian Knight

unread,
Jun 20, 2011, 9:35:39 AM6/20/11
to tiddl...@googlegroups.com
Tag hierarchies are FAR from obvious in TW ;) Many have a google for "tagglytagging" - it may take a while to get the concepts straight in your head!


>Sorry, what "normal sync process"? And define "too much" - every once in a while I refactor say 30% of the hierarchy, and I want all the "child" TW's to reflect the new structure of the "master" without having to manually keep them in sync as I'm doing now.

You can import any tiddler from another TW file. That would include a tiddler that had the name of a tag you wanted. For example, if one of your tags was "MyTag1", create a TW file containing a new tiddler, name the tiddler "MyTag1" and give it a tag of "MyTag1". Now create a new TW file, go to the "Backstage" and choose "Import". Point the import at your first TW file and press the Open button, you will get a list of the tiddlers in that file, choose "MyTag1". At the bottom of the import tiddler list, you will see an option checkbox called "Keep these tiddlers linked to this server so that you can synchronise subsequent changes" this is ticked by default. OK so save the new TW file and go back to the original file, change the "NewTag1" tiddler and give it a description. Switch back to the new file, go to Backstage again and choose "Sync". This is the "normal sync process" I mentioned. You should see the NewTag1 tiddler marked as updated so resync and the descriptive text should appear in your new TW file.

Having said all that, I don't think this will work for you as you are regularly reworking the hierarchy - you'd have to manually delete the old hierarchy from the child TW files.Yep, you got it ;) Never can keep all these plugins straight myself! And Eric is far too productive for me to remember all his plugins let alone everyone else's as well!

HansBKK

unread,
Jun 21, 2011, 3:09:20 AM6/21/11
to tiddl...@googlegroups.com
On Monday, June 20, 2011 8:35:39 PM UTC+7, Julian Knight wrote:

>Tag hierarchies are FAR from obvious in TW ;) Many have a google for "tagglytagging" - it may take a while to get the concepts straight in your head! <snip>

 
Thanks so much for your detailed answers Julian. I've come a long way in the past few days, and had already found the "built-in" sync you discuss - I'm using Eric's ImportTiddler's plugin, seems to work the same way (using the native functionality?)

In fact I find this much better for me than LoadTiddlers, although LoadTiddlers works great for simple scenarios, e.g. I now have a "master Plugins" TW which I use for sync'ing with the original author's source, and then a single "update plugins" button updates them all in the child TWs.

For the "master hierarchical tag repository" challenge, a combination of TiddlersTweak and ImportTiddlers works well so far.

Yes I need to be attentive, make backups etc, but it's so much better than the previous alternative - manually editing in multiple TW files to keep them in sync.

> Having said all that, I don't think this will work for you as you are regularly reworking the hierarchy - you'd have to manually delete the old hierarchy from the child TW files.

I do delete the tags from the child TWs and then do a fresh import, so far not a problem - TagglersTweak is just the ticket, also for bulk re-tagging. I just wish it would make use of Matchtags' boolean select capabilities. . .


Regarding the challenge of hierarchical tagging, it's a challenge just about anywhere! The only tool I've found that handles it well from a user-friendly POV is Evernote (I'm sticking to the offline v2 for that), but it's very limited in allowing for any other presentation/navigation paradigms - great for collecting and classifying data up-front, but not so much for distributing/presenting for consumption - IMO TW's forte.

Regarding multiple taxonomies - that's a bit challenge in many ways, not just technical, and I doubt it would be much easier in WordPress. Although I could set it up, I really like TW's single-file portability and lack of dependencies for distribution, version control integration etc so I think I'll keep forging ahead here.

BTW I highly recommend checking out TWT-treeview - I'm using the "Executive" template - very flexible tool for multiple navigation schemes - tabbed menus, multiple hierarchies per tab. . .

For future googler's, here's an updated ViewTemplate to handle the issue that the externally-maintained tagging tiddlers (indexing terms) shouldn't be edited locally in the child TWs. Rather than just "warning" the user (there were logic problems in the previous example as well), this one actually prevents any editing, and incorporates the notice that this is a special tiddler right into the display of the title:

<div macro="hideWhenTagged ltmq">
<div class='toolbar' macro='toolbar [[ToolbarCommands::ViewToolbar]]'> </div>
<div class='title' macro='view title'></div>
</div>
<div macro="showWhenTagged ltmq">
<div class='toolbar' macro='toolbar closeTiddler'></div><div class='title' macro='view title'>Master Quality - </div>
</div>

Eric Shulman

unread,
Jun 21, 2011, 4:19:10 AM6/21/11
to TiddlyWiki
> problem - TagglersTweak is just the ticket, also for bulk re-tagging.
> I just wish it would make use of Matchtags' boolean select capabilities. . .

hmm... let me see what I can do about that :-)

-e

HansBKK

unread,
Jun 22, 2011, 12:57:16 AM6/22/11
to tiddl...@googlegroups.com
I just love it when such a little hook snags the big fish

Seriously Eric, I reckon you're the most "proactively responsive" open-source coder I've come across, you're a huge part of why TW's such a killer project, when I get some extra dosh I'll definitely be contributing. . .

In the meantime I might name my next child after you 8-)

BTW while we're at it, it would be "really" good if there were a "failsafe" warning popup for when the user forgets the + or - on one of the tag specs (thanks Jeremy for "AutoSave + SaveBackups")


In case anyone's confused, the correct plugin's name is TiddlerTweaker: http://tiddlytools.com/#TiddlerTweaker

HansBKK

unread,
Jun 22, 2011, 12:59:45 AM6/22/11
to tiddl...@googlegroups.com

Just came across this - looks like the bee's knees for helping content editors with hiearchical tagging: http://tagsearch.tiddlyspot.com

Alex Hough

unread,
Jun 22, 2011, 2:52:53 AM6/22/11
to tiddl...@googlegroups.com
> In the meantime I might name my next child after you 8-)

(I ran this idea past the mother of my child.
It was rejected because it had connections to TiddlyWiki - and because
the child turned out to be a girl)

Alex


> BTW while we're at it, it would be "really" good if there were a "failsafe"
> warning popup for when the user forgets the + or - on one of the tag specs
> (thanks Jeremy for "AutoSave + SaveBackups")
>
>
> In case anyone's confused, the correct plugin's name is TiddlerTweaker:
> http://tiddlytools.com/#TiddlerTweaker
>

> --
> You received this message because you are subscribed to the Google Groups
> "TiddlyWiki" group.
> To view this discussion on the web visit

> https://groups.google.com/d/msg/tiddlywiki/-/TLEj19s61yEJ.

HansBKK

unread,
Jun 22, 2011, 9:00:49 AM6/22/11
to tiddl...@googlegroups.com
But Erica's a beautiful name!

Alex Hough

unread,
Jun 22, 2011, 9:51:36 AM6/22/11
to tiddl...@googlegroups.com
> But Erica's a beautiful name!
True! - never thought of that..
One day ... who knows...

Alex


> --
> You received this message because you are subscribed to the Google Groups
> "TiddlyWiki" group.
> To view this discussion on the web visit

> https://groups.google.com/d/msg/tiddlywiki/-/bPxxRm9YDk8J.

Yakov

unread,
Jul 12, 2011, 2:22:20 PM7/12/11
to TiddlyWiki
Hans,

would you mind to write a summary of what did you come to with the
hierarchy? The thread is large, and the issue is important!

HansBKK

unread,
Jul 13, 2011, 3:43:23 AM7/13/11
to tiddl...@googlegroups.com
Yakov,

I'm happy to help you, but as you say it became a pretty wide-ranging topic, so rather than my trying to write a small book's worth of "summary", why don't you ask some specific questions and I'll do my best to give you details of the solutions that worked best for me.

These questions could be based on snippets of my "problem postings", or directly addressing what you're trying to accomplish in your use case.

Keep the "hierarchical tagging" side from the "master pool of tiddlers" idea, as they are completely separate ideas.

Hans

HansBKK

unread,
Jul 13, 2011, 3:46:54 AM7/13/11
to tiddl...@googlegroups.com
Eric, since this got bumped anyway, did this idea ever seem valuable enough to have a look at?
Reply all
Reply to author
Forward
0 new messages