[Home]AnnotationWikiImplementation

MeatballWiki | RecentChanges | Random Page | Indices | Categories

This page is the implementation side of the AnnotationWiki idea.

Here is the part we are doing now: Interested persons will be able to view the web through various Mediator proxies running on different machines, and they will be able to see when someone in a Wiki has made a comment on a web page that they visit. These comments will be kept to a minimum because they will be refactored by the WikiCitizen?""s who visit the wikis hosting the annotations.


The site http://www.seedwiki.com/page.cfm?doc=AnnotationWiki&wikiid=368 is proposed for an AnnotationWiki

That is to say, that is the proposed site for hosting [AnnotationWiki:AnnotatingPage] s (wiki-controlled annotations).

See [AnnotationWiki:InDepthIntroduction] for a long intro to how wiki-controlled annotations currently works. See also the section WikiControlOfCritLink? Realized!, just below.

See AnnotationWikiIssues for specific issues and bugs.


WikiControlOfCritLink? Realized!

It turns out that CritLinkMediator is designed in such an awesome way that it is trivial to allow wikis to add to the database of annotations. Basically, as you are browsing through a CritLinkMediator, the Mediator scans each page that you visit for special <link> tags. If it finds these special tags, the tags direct Mediator to enter a new annotation into its database. By default, the annotation will point to the page with the <link> tag on it (can this be changed?); that is, putting a link tag on page A can tell Mediator to put an annotation onto page B that, when clicked on, takes the viewer to page A.

So, let's say you want to make an annotation to page B. Instead of using CritLink itself to make your comment, just create a wiki page called PageBDiscussion? or whatever, and somewhere in that page, place the <link> tag. Now view your page through a CritLinkMediator (let's assume you will be viewing it through CritOrg for the sake of discussion). CritOrg, upon viewing PageBDiscussion?, will remember the annotation that is created by the <link> tag. Now, when someone else views page B through CritOrg, they will see your annotation. If they click on it, they will be taken to PageBDiscussion?.

The main benefit of creating your annotation on a wiki page rather than through the CritLink software is that it allows others to change your annotation. Is a page getting cluttered up with annotations? If the annotations are all from Wiki pages, you can go to those pages and delete (or move or consolidate) the annotations! Refactoring applied to annotations.

Here is the syntax for the <link> tags. CritLink places the tags in the <head> section of the html in its internal data, but the tags work just as well in the body, which makes this a lot easier to use in a Wiki. I don't know if KaPingYee plans to change this or not, so if we start using this we should let him know so that it continues working.

    <link rel=stylesheet href="http://bayle.Stanford.EDU/crit/note.css">
    <link rev=comment href="http://bayle.stanford.edu/wiki/wiki.pl?AnnotationWikiTest3#:words:should-see-a-test-annotation-(here)">
    <link rel=author rev=made href="mailto:bshanks2@yahoo.com" title="bshanks">

I haven't had a chance yet to see if this only requires the middle <link>, or if it wants all three. The href= in the middle line contains the URL of the page which is to be annotated, up to the # (in the example, this is a Wiki page named AnnotationWikiTest?3. After the #, there is the string :words:. Then there is a list of words separated by dashes (-). This is the context of the target phrase. The phrase to actually be tagged is surrounded by parentheses (in this case, the word 'here' is tagged, and the context phrase is 'should see a test annotation here').

Now, there is one more issue to be addressed. The wiki software must actually transmit these tags to the browser (actually to the CritLinkMediator) for this to work. MeatBall, for example, will not do this; it marks up the link tags. There is an option in the UseMod config file to allow specified tags, but it doesn't work in this case (even if you tell it to allow <link> tags, UseMod still marks up the http:// given as an argument in the middle of the tag). So a small patch to UseMod is required. Specifically, in sub CommonMarkup?, right before the line

  if ($HtmlTags) {
, you can add the following line:
  s/\&lt;link(\s[^<>]+?)?\&gt;/&StoreRaw("<link$1>")/ige;

This line protects the <link> tags from any sort of markup.

I have installed UseMod onto my own machine so we can try out annotating from Wiki pages. I should warn that my machine may go offline this summer (and whenever i reboot it!), so if we end up annotating lots of stuff we need to find a more permanent solution.

Also, SeedWiki will transmit <link> tags without modification.


Added AnnotationWiki in InterMapTxt and set up an annotation wiki in SeedWiki:AnnotationWiki. I ask Ken, if he'll set up annotation as a permanent solution. Another good place would be Meatball because it could glue all wikis and beyond by annotations. A new tool for collaboration building. Of course this text should go as annotation. Feb 28, 2002, 05:28 PST FridemarPache

What a great idea, thanks a lot!

Of course, it would be cool if any wiki could be an AnnotationWiki (i think many already can). But since MeatBall currently cannot (see WikiControlOfCritLink? Realized!, below, for the reason), [AnnotationWiki:AnnotationWiki] sounds like a good starting place.

--- BayleShanks


Here is a link to a page on my temporary wiki that creates the annotation: http://bayle.stanford.edu/crit/nph-med.cgi/http://bayle.stanford.edu/wiki/wiki.pl?AnnotationWiki Update: for examples, you probably should see [AnnotationWiki:AnnotatingPage] instead

If you click on "Edit this page", you'll be able to see (and manipulate!) the <link> tags. Please feel free to create/refactor/etc whatever pages you want on my temporary wiki; go ahead and create more wiki pages that annotate. Update: i've proposed we use [AnnotationWiki:AnnotationWiki] instead -- bs

I should note that if you change the target of an annotation or even delete the annotation on the wiki page controlling it, and look at it with CritLinkMediator, CritLinkMediator will recognize the change. Change the targets of the annotations on the test pages on my temporary wiki, it's fun.

Here's a link to the test page using CritOrg rather than my local CritLinkMediator. Note that CritOrg is a lot slower; I would recommend using my local Mediator for testing. but to try crit.org's mediator: http://crit.org/http://bayle.stanford.edu/wiki/wiki.pl?AnnotationWiki

-- BayleShanks


CategoryWebAnnotation


Discussion

MeatballWiki | RecentChanges | Random Page | Indices | Categories
Edit text of this page | View other revisions
Search: