[Trac] Re: Tags

Christian Boos cboos at bct-technology.com
Fri Jan 21 04:56:22 EST 2005


Andre Asselin wrote:

> Muness Alrubaie wrote:
>
>> They're not completely clear in my head yet, but I am fairly sure that
>> applying tagging to wikis gives us ways of organizing things that
>> we've not had before.  I think after using it for a while it'll feel a
>> lot more intuitive than strict hierarchical organizations.
>
>
> I started using categories recently, and find them to be a useful 
> feature.  In essence, though, what you've created is simply a 
> different flavor of a link.  [[TagIt]] creates this new kind of link, 
> and [[ListTags]] is the same thing as [[BackLinks]] for the new link.
>
> I think generalizing this would be quite useful.  If, for example, you 
> could do something like
>
>     [wiki:<PageName> <LinkFlavor> <Link-description>]
>
> where <LinkFlavor> could be any kind of flavor you want, it would 
> expand on the tag idea to allow you to specify any kind of 
> relationship you want between the pages.  Today, with the two 
> specialized link tags, you only can specify an 'ordinary' link flavor 
> and a 'category' link flavor.  By generalizing this function, you can 
> specify exactly how the two pages are related.

I had very similar thoughts, and I think this can even be more generic 
than that,
providing a generalized Relationship for any Trac objects.

The base idea is very simple, yet there are issues with some details.

The base idea is to be able to link any two Trac objects together,
with optionally specifying the semantic of the link (the <LinkFlavor> 
mentioned above).

Currently, such links are implicit and don't have a semantic annotation.
They can be created from within the Wiki markup of the source Trac object
(ticket, Wiki, changeset, ...) simply by referring the target Trac object by
naming it using the appropriate TracLinks..

What can't be currently done is to link 2 arbitrary objects from anywhere.
What is also missing is an easy way to add semantic to those links.
One way would be what is proposed in the previous mail,
tough this is not compatible with existing WikiLinkFormat.

Instead, I would propose the following notation:

#226 -- duplicates --> #31

This links the ticket:226 to the ticket:31 with the ''duplicates'' semantic.
By omitting the semantic information, one simply link 2 objects together:

#226 ----> #31

If the source object is the one in which the Wiki markup is written,
it can be omitted. E.g. assuming we are in the ticket:226:

--duplicates--> #31

--category--> FeatureRequests, WildIdeas

Currently, Trac links objects together informally, simply by creating the
appropriate links in the generated HTML.
What would be needed to be able to take additional benefits of these links
is to store those links in a relationship table. This would enable efficient
generation of backlinks, the generation of a graph of object 
relationship, etc.

Some implementation details:
Each newly created markup would be used to add relationship information.
Besides the relationship information itself (source object, target 
object, semantic),
the reference to the markup in which this relationship was created will 
be kept.
Then, if that markup is later modified, this relationship will be deleted.
It will eventually be recreated if the newly edited markup contains 
again that relationship.

-- CB

>
> Similarly, [[BackLinks]] would need to be enhanced to take a parameter 
> to specify what flavor of link to list.
> ...



-- 
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.300 / Virus Database: 265.7.1 - Release Date: 2005-01-19



More information about the Trac mailing list