Submitted by Paul_J_Miller on 2018/05/09 19:00
I like to classify things by tagging them.  But I find it much more useful if the tagging system has its own hierarchy.  Unfortunately most note taking programs have flat tagging systems.
 
I am in the process of transferring some of my notes into InfoQube to give it a more thorough workout and see if I can break it
 
My first attempt at making a hierarchical tagging system involved assigning the items in the hierarchy as parents to the topics (articles) and this works but it doesn't scale very well, it becomes cumbersome quite quickly so I wondered about using WikiTags (ugh ... what an ugly name).
 
If you make a hierarchy of categories and make each of them a link to a wikitag then assign that wikitag to each of the appropriate articles then you can click on any category in the list and get a list of all the topics assigned to that tag.  The categories don't need any text in the HTML pane, thats what the articles are for, but they could contain explanatory notes if appropriate.  This is when someone quotes this post saying this is nothing new and everyone else has been doing it this way for years !
 
Anyway this is how it looks on my laptop (I have edited the toolbars and other UI elements to cut down on things I don't need) :-
 
 
However there is a problem.  On my machine at work, using IQ Portable on Windows 7 everything works as expected.  On my laptop using the installed version and Windows 10 I have to insert a space after the text in the grid (after and not included in the link) or the formatting gets messed up.
 
Here is the dialog box to insert the wikitag link into the category without adding a space at the end of the text in the grid :-
 
 
And here is the problem, the entry has a bunch of extra text appear in before the entry :-
 
 
But the hierarchical tagging system works and is quite useful, the strange behaviour with Windows 10 is easy to work around.
 
Now if only there was a slick way of putting links to items into the HTML pane, copying the item ID number is definately not a slick way of doing things.
 

Comments

 Interesting!  Thanks for the post.  I haven't made much use of wikitags, but because of your article I looked into how they are used.  There are so many ways to organize info in IQ, it's hard to know which methods will work the best for me.

Hi Paul
I used to use wikitags -- but in a limited manner, so I'm not sure how much can be done with them.
I did create a grid with wikitag links, but not a hierarchical one.
[quote] If you make a hierarchy of categories and make each of them a link to a wikitag then assign that wikitag to each of the appropriate articles then you can click on any category in the list and get a list of all the topics assigned to that tag.  The categories don't need any text in the HTML pane, thats what the articles are for, but they could contain explanatory notes if appropriate.  This is when someone quotes this post saying this is nothing new and everyone else has been doing it this way for years ! [/quote]I'm confused by your use of the words 'topic' and 'article' -- do you mean an individual 'item' in IQ-speak ?
Or do you mean one of the sub-categories ?
 
So, yes, the idea of the wikitag is to create a link as you have done which will open all items tagged thus in a scratch grid (as per Wikitags )
But I'm not sure if one can create a link that will show multiple tags (?)
 
I have to admit I'm also unclear about hierarchical tagging in general, not having really used it much
If I use a hierarchical series of tags e.g.
  • Artist
    • Painter
      • Rembrandt
      • Gaugin
    • Sculptor
      • Rodin
I guess I would want 'Artist' to be a tag that would show all the sub-items of 'Artist' above. 'Painter' to show just the painters etc. (So ideally, if I tagged something as 'Painter' it would automatically be also tagged 'Artist'. Maybe you're doing this manually? )
Is that what you mean by hierarchical tagging?
If so I'd be curious about the details of your implementation.

Paul_J_Miller

2018/05/11 13:36

In reply to by Tom

[quote=Tom]
I'm confused by your use of the words 'topic' and 'article' -- do you mean an individual 'item' in IQ-speak ?
Or do you mean one of the sub-categories ?
[/quote]
 
Yes this is from ConnectedText terminology but also from my IQ notebase which has imported the ConnectedText terminology (see tabs).
 
[quote=Tom]
  • Artist
    • Painter
      • Rembrandt
      • Gaugin
    • Sculptor
      • Rodin
I guess I would want 'Artist' to be a tag that would show all the sub-items of 'Artist' above. 'Painter' to show just the painters etc. (So ideally, if I tagged something as 'Painter' it would automatically be also tagged 'Artist'. Maybe you're doing this manually? )
Is that what you mean by hierarchical tagging?
If so I'd be curious about the details of your implementation.
[/quote]
 
Clicking on one of the nodes in the 'Categories' tree brings up just the Articles (items, topics) with that tag.  It would be nice if it could also bring up sub categories as well (tags of the sub items) but it doesn't, I am trying to think of a way to do this but I haven't come up wiht anything yet.  The drop down list of WikiTags is a flat list no matter where the link to the tag appears in the tree and currently I just apply the tags I think are appropriate for the item.
 
The tree doesn't create a WikiTag in the list, a WikiTag is created in the list if an article (item, topic) has that tag.
 
It would also be nice to be able to get a list of Articles (items, topics) tagged with a combination of tags, combined with AND, OR, NOT & brackets(), I haven't worked out how to do this either.

Hi Paul,
 
This is quite clever ! I'll look into incorporating it in the new Welcome to IQ file supplied with the installation when I come back from holidays 
 
Regarding the bug with the "extra" text, it is not related to Windows 10 but to the way your link was created. That is, the bug is present when creating the link while in edit mode using the WYSIWYG editor.
 
It is now fixed in v108a (to be released today)
 
Thanks for reporting
 
Pierre_Admin
IQ Designer
 

Since once calendar integration is done, powerful Tagging is the last remaining item on my own personal wish list for for IQ*, I am going to piggy back on this thread. Here is a video I recorded showing what IMO is the type of "true" tagging system that IQ should implement. This video starts showing the so-called tags that most applications use, then shows what real tagging looks like :-). Would love to see this in IQ. youtu.be/_RKTBVnNGrs
 
*Of course I'll never stop being able to think of improvements :-), but this is really the only thing I currently miss as I use it day to day. That and the ability to create a column pop-up and select multiple IQ fields from a pre-defined list.

Paul, I also find it useful to be able to categorize tags under a heading, though I find it less important these days than I used to. I've experimented with different methods of doing it in IQ. I've never been a fan of the wikitag feature [nor the name, so I found your comment about that funny) as currently implemented, and also tried to develop workarounds to be able to categorize tags.
 
One thing I experimented with is using a grid to store all my tags just like you are doing, but instead using a column/field that calls up the values in that grid, and syncs the values in the column (grid) with fields [but the list is still flat in the column :-(]. The advantages and disadvantages of this method is mentioned in my wish list thread I linked to above. I mainly tried that because I've always suspect that fields IQ already has provide and incredibly powerful foundation for Pierre to use to build the ultimate tagging system....but I'm not a programmer. I especially like that fields can be renamed, which I often want to do with tags. As a tag collection grows, I often find it useful to be able to rename tags.

Paul_J_Miller

2018/05/12 13:46

In reply to by David_H

I agree with almost everything in the video.  It would be nice to have that sort of tagging system in IQ, when a tag is selected a list pops up of those other tags that are shared by some of the items with that tag but not if all of them have the tag.  For instance if you select tag A and all the items in the list which comes up also have tag B but only some of them have tag C and tag D then B should be ignored because it doesn't help you narrow down the list at all it just adds extra clutter.
 
This may seem pedantic but if you have hundreds of tags then every bit of clarity helps.

By the way you can add captions to WikiTag so it gets re-named in grids and properties.  I called it 'Tag'.
 

Pierre_Admin

2018/05/12 13:51

In reply to by Paul_J_Miller

[quote=Paul_J_Miller]
I agree with almost everything in the video.  It would be nice to have that sort of tagging system in IQ, when a tag is selected a list pops up of those other tags that are shared by some of the items with that tag but not if all of them have the tag.  For instance if you select tag A and all the items in the list which comes up also have tag B but only some of them have tag C and tag D then B should be ignored because it doesn't help you narrow down the list at all it just adds extra clutter.
 
This may seem pedantic but if you have hundreds of tags then every bit of clarity helps.

By the way you can add captions to WikiTag so it gets re-named in grids and properties.  I called it 'Tag'.
 
[/quote]
I'll work on this when I get back from holidays. It seems not only feasible, but fairly easy to implement in IQ...
 
 
Pierre_Admin
IQ Designer
 

Consider the following way of categorizing items in IQ.  
 
- a text field named "Composer", value "Chopin"
- a Y/N field "Chopin", perhaps a subfield under a Y/N "Composer" field
- a "Chopin" wikitag
- an Item with Item field text "Composer", with a child item with Item field text "Chopin", with specific compositions as child items of "Chopin" item.
 
Somehow I think that the first method is best - have a text field named "Composer", with many different values, one being "Chopin".  You can do a lot with a Composers grid that way, sorting and filtering by the contents of the Composer field.
 
But then again it's awfully nice to be able to get to Chopin-related items by scrolling in the Fields List in the Properties Pane, finding the Chopin field, and double-clicking on it.
 
In implementing the sort of tagging that David's talking about, if the values under the IQ defined fields were treated as tags.  For example, when searching for tags, and you typed in a "Chopin" tag, it would retrieve not only items that had a wikitag "Chopin", but also items with the value "Chopin" in a "Composer" field.
 
 

Paul_J_Miller

2018/05/13 06:03

In reply to by jimspoon

At the moment I'm using a variety of different methods for classifying notes, I don't think there is one best all encompassing method which could work for everything.  But I have used all four methods in ConnectedText.  I think the text field works well for some items, for example in both CT and IQ there is an 'Author' field which contains the name of the autor of various articles and linked URLs in the notebase but not every article has an Author.
 
All four methods are useful in different circumstances.

One further point which I failed to mention in the original post is that the tree in the hierarchical tagging system isn't a tree.  A tree is a strict hierarchy with only one parent per item this is one of the limitations of many outliners, as the tree grows it becomes more difficult to find one unambiguous place for any item to sit because it could plausibly be placed in several different places.
 
In InfoQube an item can have more than one parent and this is very important.  It means that an item can appear in more than one place and so it can appear wherever it is appropriate for it to appear.  In mathematical terms it is not a tree but a graph and a graph is much more useful.
 
So the hierarchical tagging system has many branches which have been duplicated in several places which makes it much easier to find things. Things will appear wherever I expect to find them.
 

 I'm sure Pierre already has his own idea about how he will do it, but to clarify, the only reason I mentioned fields is it was the only thing that came close to giving me what I want with the current feature set. There are also several downsides to using fields and a standalone tagging system such as wiki tags seems ideal if it is feasible.
 
  • Be able to SEE my tags and click on them to select them. i.e. not just search for them.
  • Be able to rename them (and have the tag name update on all items using it).
  • Related tagging as shown in the video.
 

Paul_J_Miller

2018/05/14 02:47

In reply to by David_H

[quote=David_H]
 I'm sure Pierre already has his own idea about how he will do it, but to clarify, the only reason I mentioned fields is it was the only thing that came close to giving me what I want with the current feature set. There are also several downsides to using fields and a standalone tagging system such as wiki tags seems ideal if it is feasible.
 
  • Be able to SEE my tags and click on them to select them. i.e. not just search for them.
  • Be able to rename them (and have the tag name update on all items using it).
  • Related tagging as shown in the video.
 
[/quote]
 
With the system I have implemented if you rename a tag you have to manually rename it in the search tree.  The tree just has a bunch of searches that are not locked to tags, they are just text which happens to be correct for the tags but if you change one then you have to change the other.
 
But it would be nice if Pierre could come up with something that worked in a more synchronised way.
 

Armando

2018/05/14 11:51

In reply to by Paul_J_Miller

I don't have the time to develop right now, but I've implemented my own hierarchical tagging system with AHK, independently of IQ. With that system, I achieve high consistency and there's only one spot where I manage and store all my tags : a text file.
Obviously, being able to do it in IQ would somehow facilitate some operations, but not all of them. Why? Simply because I use the Same tags everywhere, not only in IQ.
I'd like to be able to integrate more tightly my AHK textual tagging system in IQ though, just so that it's easier to rearrange when needed, but I'm not sure how advantageous that would be -- in terms of time/energy spent.

jimspoon

2018/05/14 17:54

In reply to by Armando

 Hi Armando, when you have time I will be interested to hear more about your tagging system!

Tom

2018/05/15 09:13

In reply to by jimspoon

[quote=jimspoon]
 Hi Armando, when you have time I will be interested to hear more about your tagging system!
[/quote]
 
until Armando chimes in, he made a post (Link) about his method on donationcoder -- it's an old post, but he confirmed in 2016 that he was still using same system.
 
I also have a more detailed description including an AHK script for tagging, but unfortunately without any link (I believe it was from the older IQ forum and cannot find it here), I could post it here if Amando didnt mind (?)
PS is there any spoiler tag here?

Armando

2018/05/15 09:35

In reply to by Tom

Thanks Tom!
Yes, it's basically that, but the post you referred to also speaks about filenames. Only the tag part is related to this thread.
My AHK scripts have changed a bit though (somewhat cleaner/more sophisticated).
In IQ I have scripts to find and replace tags.
For filenames I use "renamer".
For inside pdfs and docx, I use scripting utilities like "debenu".
 
Setting things up takes time, but once it's set up, it's easy and quicker than anything else I've tried.
Not for everybody though, I admit.

jimspoon

2018/05/15 16:24

In reply to by Armando

thanks Tom and Armando!  I will study Armando's post.  I've often wondered why Windows doesn't implement a tags feature that's available for all files, not just a few, one that allows user-created tags, in an attribute:value format. 

Armando

2018/05/15 21:51

In reply to by jimspoon

[quote=jimspoon]
thanks Tom and Armando!  I will study Armando's post.  I've often wondered why Windows doesn't implement a tags feature that's available for all files, not just a few, one that allows user-created tags, in an attribute:value format. 
[/quote]
 
The post is rather old...
There are others, probably more complete descriptions on DonationCoders, or maybe even here... Can't remember.
 
I've studied the issue quite a bit, and there are lengthy discussions on the matter on DonationCoders.
 

Tom

2018/05/16 08:27

In reply to by Armando

This below the line is an edited quote (just shortened slightly) from you Armando, from around 2008 -- I leave out the AHK script that was included. As said above, this is from the old IQ/Sqlnotes forum and seems to be no longer online.
 
Note the "abcz abbreviation system" link no longer works.
 

I use a general tagging "system" using simple principles/rules that I can apply in many different situations (whatever the application, if text can be entered : Word processors, file names, etc.). The principles/rules are simple, but their practical applications has to be strict for them to work. Note that all the different combinations and uses can be fairly complex… That's why I use AHK to help me with the practical applications.

Although it feels like a pretty personal thing to share, I’ll explain parts of it (otherwise it’ll be too long)


1. The syntactic structure of my tags/categories

As it is now, my tagging scheme is built around the abcz abbreviation system.


1-   "tgs" (a fixed string that indicates that the “word” is a tag — it could be something even shorter, like two numbers, but it has to be pretty unique… Otherwise, your searches might bring up a lot of undesirable results)

2-  "X" (a capitalized letter which indicates a metacategory. I personally mainly use 2 letters here : "P" & "O", hence 2 metacategories.

3- "abcz" (the abbreviated theme, following the abcz system).

1.1. Short Explanations :

"O" characterizes almost any tag that is an answer to the question “what is it?”. These answers can be : it’s late, it’s a draft, it’s important. In other words, tags of this type have to do more or less with the object itself (the image, the file, etc.), its nature, state, provenance, the approach used, the format, etc.

"P" is for almost any tags, ranging from projects to themes, subjects,  etc. It doesn’t answer the question “What is it”, but, rather, “what is it about ?”.

Following this model, here are some tag examples (just for illustration, won't go into too much detail...):

tgsOimpt (something important)
tgsOdrat (something that’s a draft)
tgsPthee (something related to theatre)
tgsPemon (something related to emotions. Note : in my abcz abbreviation system, I never use the plural )

etc.

Example: a text, an item or whatever, could be both important and adraft (what is it?) : tgsOimpt tgsOdrat. But also talk about theatre and emotions : tgsPthee tgsPemon. The four tags put together would be :  tgsOimpt tgsOdrat tgsPthee tgsPemon

 
These tags can be placed in the category or wikitag field (or at the end of my strictly formatted file names in which all “info fields” are delimited by specific characters. But I won’t go into that now….)  very rapidly… thanks to AutoHotkey (downloadable for free here)
 

2. AutHokey

So, to use all that efficiently, I use AutoHotkey autocomplete feature. Using AutoHotkey allows me to :

1- make sure I never ever make orthographic mistakes,
2- never use a tag that "doesn't exist" in my "registry",
3- easily search through my tags (just use "search" in my AutoHotkey script) which are classified hierarchically (easy to do in an AHK script),
4- easily add new tags or modify them,
5- have some tags to always appear together, grouped ; example : if I write "perl", I want AHK to write : "tgsOmi tgsOPERL" (which means : "something personal, written by me...)
6-  only enter a few letter to have the complete tag

…etc. possibilities are… uncounted

Of course, I try to organize my AHK script so that it’s not too hard on the eyes and pleasant to use (with lots of commented lines -- essential)!

 

Armando

2018/05/17 09:01

In reply to by Tom

Thanks Tom!
Just want to add that it's not so much the syntax that I wanted to focus on here (to each his own...), but the fact that one can manage tags in AHK, organize them, and invoke them at will, hierarchically, grouped, etc. in any applications for consistency.
That's the other part of the system I never got to explain in details, even though it's fully formed here.
I'll look at that with Pierre when he's back from holidays...

In a way tagging could be done by assigning multiple parents to an item.  But to do this it would be useful if not essential to be able to auto-assign parent items based on strings contained in the child item.  I made another post asking how this might be done - http://www.sqlnotes.net/drupal5/index.php?q=node/4195.

Paul_J_Miller

2018/07/19 16:55

In reply to by jimspoon

My first attempt at implementing hierarchical tagging was to assign multiple parents to items but this gets very cumbersome very quickly.  It does not scale very well.  With large numbers of tags it messes up the tree structure in your grids.
 
The system described in this post works reasonably well and is quite useful but I'm sure Pierre could come up with something a lot better and it would be integrated into the structure of InfoQube.