Tagging and the new Tags Tree

This is a quick update on how the new Tagging system is coming along, and to show you the new Tags Tree. Without further ado here it is:

The Tags Tree

The first thing to note is the new Tags Tree button on the Knowledge Tree bar. The Tags Tree presents each Tag as a Folder, which in turn contains the Articles which include that Tag. Like the Knowledge Tree you click on a Folder and see all the articles in that folder in the content window, or select and display specific articles.

Next you can see the same article tagged into multiple folders. For example the article titled CodeProject: CppSQLite … is tagged with C++, Database, Library and SQL as shown in the next screen shot. If you look back at the first screen shot you will see three of the Tag folders expanded and this article in them. The fourth tag Library, is collapsed.

Example Article Tags field 

Editing an articles Tags in the content window, updates the Tags Tree accordingly. For example if you delete the tag SQL for this article, the article will be removed from the SQL folder. Similarly adding new tags to the article, will make it appear in the folders for those tags.

You can also edit the Tags themselves, either in the Tree or via. their Folder in the content window. When you rename a tag one of two things happen. If the new name doesn’t already exist, the tag simply changes to the new name and the tree is updated. If the new name does exist then all of the articles with the original tag are moved to the folder with the new name, and the original tag is deleted. Where an article has both the new and the original tag, the original tag is deleted from the articles tags field. A prompt is displayed allowing you to Cancel a rename where the new name already exists, preventing the articles from being moved and merged.

The ability to rename and merge tagged articles is an important one. For example if you had created the tags cattle and cow, used these these in lots of articles and then realized this was a mistake and you should have only used cattle, then all you need to do is rename the tag cow to cattle.

Tags can also be deleted via. the new Tags context menu.

The design of the the Tags system is such that rename and deletion of tags happens very quickly. In the case of  renaming a tag to a non-existing name, the entire knowledge base is updated instantly, even if that tag is used in a large number of articles.

As mentioned in recent posts the new tags system has been implemented using the a new SQL Database Engine and so far, I am very pleased with how this has come together and is how well it is working. But it is early days and so far only Tags use the new database. The design work for moving all existing Knowledge Base content to the SQL Database Engine is progressing smoothly.

There is still a bit more code to write and more testing to be done, but a release with Tagging isn’t far away now.