This is currently an [Idea], started by [Sam], there is a discussion below[go now|9].
A wiki link can catagorize itself with a type, the type defines the relationship:
means "The WikiPage ''JohnDoe'' is my ''Author''"[1]

Then the [ReferringPagesPlugin] can be limited to showing only Authors:
{{{[{INSERT ReferringPagesPlugin WHERE max=50, maxwidth=20, type=Authors}]}}}

[#1] An Author in this sense is different than the User who made the Wiki page.  For example, a User may be entering into the wiki a letter or paper written by someone else.

!! Categorization
This can also be used for making categorization more flexible:

means "The WikiPage ''Ideas'' is my ''Category''"

Now ''Ideas'' can use the [ReferringPagesPlugin] to show sub-categories:
{{{[{INSERT ReferringPagesPlugin WHERE max=50, maxwidth=20, type=Category}]}}}

This is more flexible than what is currently possible.  A Category type page does not necessarily want to show all of the pages that refer to it.  For example, you may want to say in some page ''Foo'':

{{{See [Ideas] for what people are thinking of for the future of [JSPWiki].}}} without ''Foo'' becoming a sub-category.


This could also be used for voting on things.  A user would place a link in their home page or wherever
{{{[AnIdea(VoteFor)]}}} or {{{[AnIdea(VoteAgainst)]}}} then the votes are tabulated on ''AnIdea'' with:
Votes For: [{INSERT ReferringPagesPlugin WHERE type=VoteFor}] \\
Votes Against: [{INSERT ReferringPagesPlugin WHERE type=VoteAgainst}]}}}

!! Link graphic

It would be possible to extend JSPWiki so that it could specify a graphic to place after certain types of links.  For example, a link to a Category might get an up-arrow graphic, or a link to an Author a little picture of a person.

!! This adds meta-deta to the linked-to page

A page that get's linked to in this way get's meta-data.  The links to it are also defining what they think the page is for.  This allows for a new plugin which does "show me all pages that are thought to be ''Authors''".

!! Convention - a LinkType is a page of it's own

A good convention here would be to have the link type correspond to a WikiPage of the same name.  So the wiki page 'Author' would explain what the link type 'Author' is meant to express.

Each of these pages, could in turn, by convention, contain a link like
{{{[LinkType(Category)]}}} which means ''LinkType'' is my ''Category''

!! Impact on current usage

The impact on current wiki's is likely to be small, since ( and ) are not valid characters in a [WikiName]

!! [KISS]

I think there needs to be some discussion on whether or not this violates the [KISS] principal.  I think it is acceptable because:

# it is optional
# it is easily understood and expressed (suchandsuch ''is my'' suchandsuch)
# it can be used to solve a lot of problems, only a few are given above

!!! [Discussion|#9]

Mm...  I had to read this through several times but I think I am seeing what you're after.  I agree, this could be quite useful.

I'll give this some more thought, but not immediately - my hands are full with JSPWikiAuthentication right now. :-)  In the mean time, can people think of more use cases so that we can see what kind of other things could be done with this?

--JanneJalkanen, 15-Apr-03

Actually I already implemented something like this for my [Ropemylly|] project. In that project I need a way to categorize and automatically list different types of pages (users, projects, etc). I implemented a quick hack of a form "first !!-tag in the page defines a parameter:value-pair". I think this addition would be very useful.

--[Killer], 15-Apr-03

But this is slightly different (if I understand you correctly), as it describes the relationship between pages instead of attributes of the individual pages themselves.

Though, if anyone has been looking carefully at the current [CVS head|AnonymousCVSAccess], he has noticed a quiet little addition: {{~WikiPage.setAttribute()}} and {{~WikiPage.getAttribute}}.  Guess what they are going to be for :-).

--JanneJalkanen, 15-Apr-03.

You're right, I misread the suggestion. I don't really see the value of a purely link attribute. There may be some situations where even my project would benefit from that but I don't see it solving very many problems. If it isn't difficult to implement (or someone provides a patch for it) I don't see it violating KISS, though.

--[Killer], 15-Apr-03

Hmmm... Anyone out there still thinking about this idea?  I've got some interest in this idea.  I'm thinking about the QueryPlugin and how you cna query the wiki's page and link structure, but sometimes that's a bit coarse.  Hence the common conventions of "Category" and "Tag" pages.  We use links to "Tag" pages and the primary relationships to query against.  I could envision this idea expanding on that in a less intrusive way.  --JohnV 02-Mar-2004

{{{[John Doe|JohnDoe[Author]]}}}

Maybe rather than () [[] could be used, and the emitted HTML could have a superscript image that links to the LinkType's page directly.  --JohnV