[Trac] Re: Tags
Andre Asselin
news at aasselin.com
Mon Jan 24 18:21:19 EST 2005
Christian Boos wrote:
> Andre Asselin wrote:
>
>> 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
There are pluses and minuses to a syntax like this. On the plus side,
it is more expressive, in that from an arbitrary page, you can link any
two other pages together. On the downside, it doesn't allow you to give
a text description to display in place of the link (the
<Link-description> from above). I'm not married to the syntax I
proposed, but I do think <Link-description> is useful, and whatever new
syntax is used for links should support it.
Can you give an example of where you'd want to link 2 pages together
from some 3rd page? The thing I'm afraid of is that things could easily
get confusing. If you're on page A and there's a link to page B, but
the link itself lives on page C, you can't edit page A to get rid of the
link. Somehow the wiki has to show that the link that you see on page A
lives on page C and provide ANOTHER link to bring you to page C so that
you can edit it.
>
> 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.
Right. In Muness' tags implementation, he created this kind of link
table specifically for the "tag" <LinkFlavor>. The table would have to
be extended with a 3rd column to indicate the exact relationship between
the 2 pages.
More information about the Trac
mailing list