Scoop -- the swiss army chainsaw of content management
Front Page · Everything · News · Code · Help! · Wishlist · Project · Scoop Sites · Dev Notes · Latest CVS changes · Development Activities
A Proposal: Wikis for Scoop Feature Requests
By Eloquence , Section Wishlist []
Posted on Mon Sep 24, 2001 at 12:00:00 PM PST
The style of weblogs is very linear - it lends itself well to news, diaries and interesting findings on the web, but it is less suitable for long-term, goal-oriented discussion of a subject, or collaborative content creation. The integration of a wiki into the Scoop codebase would make it possible to use a Scoop site for both purposes. If you don't know what Wikis are, I recommend a look at Wikipedia, which is perhaps one of the most impressive wikis currently available, with over 11,000 articles. Read on for how wikis could be integrated into Scoop in several steps.

The basic wiki concept is very simple: Everyone can edit a page, either using an editbox which is always at the bottom or following an "edit this page" link. New pages can be created by linking to them and then following the link to a non-existent target. HTML is not necessary, and pages are interlinked using specially formatted links for easier editing.

Usability is essential for wikis: One click, one key, one cookie too much and people will not participate. Because of such considerations, many wikis have no security measures whatsoever -- really anyone can edit a page, and the social collective makes sure that rules or netiquette are not violated (by fixing improper changes). To aid such self-regulation, previous versions of a document are often stored. Many wikis also have a "RecentChanges" log, which shows previously changed pages (and sometimes highlights them in the text).

Integrating wiki-technology into Scoop would have a major advantage: Scoop already has an account system which can be used as a basis for assigning access rights to prevent abuse. It would also be easy to maintain several separate wikis, just as it is already possible to maintain several diaries. Here is a basic concept for integrating wikis in Scoop.

Creating a Wiki

Any user can create wikis through a "Your Wikis" interface. When a new wiki is created, the user will have to enter the following information:

  • Wiki identifier (alphanumeric, 11 chars, no spaces)
  • Wiki title
  • Wiki description (multiline)
  • Access type:
    • Blacklist - Every user can edit, users can be banned
    • Whitelist - Users must be invited before they can edit
  • Content license
    • GNU FDL
    • Public Domain
    • All content copyrighted by respective authors, permission to modify as granted in context, no permission to copy

After a name-check, the wiki is created. The wiki data can be changed later. The Your Wikis interface now allows the creator to access his wiki, to maintain blacklist or whitelist, and possibly to add other maintainers who can manage these access lists.

When the wiki maintainer first accesses his wiki, he will simply get a page with the wiki title and description, plus the edit controls (I suggest putting the textarea form element itself on a separate page in order to save bandwidth).

Editing Rules

In the interest of readability and usability, wikis will require simple editing syntax. Most important are internal links to other pages in the wiki. These could be added by typing [linkname], for example [wikis are cool] (instead of a typical wiki-style: linking to pages by shiftingTextCase, which makes text very hard to read). Square brackets could be typed by [[doubling them]].

In conventional wikis, a link to a non-existent target is not underlined but has a questionmark with a link to an edit page to it. I suggest using a different visual style, perhaps underlined links for existing targets and non-underlined ones (CSS style text-decoration:none) for non-existent targets.

Other text should be HTML, perhaps without <P> and <BR> (automatically interpreted), so that plain text can be used. When you edit a page, you can optionally enter a description of your transaction for the logs.

Propagating Wikis

How do other people learn about new wikis? First, of course, through the conventional channels: Relevant wikis can be announced in diaries, stories, comments and on external pages. Additionally, however, there should be a public wiki directory, where wikis are browsable, 50 wikis per page, sortable and searchable by different criteria (creation, date of last change, number of changes, description, creator etc.). At first, just listing them recent first will be enough.

Recent Changes and Rollback

The changelog and rollback features are perhaps one of the most complex aspects of the system. There are several stages possible here, starting with a totally changelog-free system that is kept in order through the access control lists. In the second stage, changes would simply be listed, but it would not be possible to display previous versions. The third stage would, after saving a page, create a diff entry for a table where the changes to the previous version would be stored, so it would be possible to roll back step by step to get to a previous entry (e.g. << and >> controls, where it would be clear that you are in "rollback mode" - no saving possible for security reasons, if you want to save, you have to copy the text from the textarea field, go back to the current page and save it).

Administrative Limits

A Scoop admin will at least want to limit the following aspects of wikis:

  • wiki: yes or no - use the wiki functionality at all?
  • wiki_per_user: how many wikis can a user create? 0=no limit
  • wiki_allow_images: should <img src> be an allowed HTML tag in wikis?
  • wiki_pagesize: how many bytes may an individual page have?
  • wiki_pagenum: how many pages may a single wiki have?
  • wiki_rollbacknum: how many previous versions of the document to store per wiki?
  • wiki_historylines: how many lines of wiki history to store per wiki?

Advanced Features

It would be nice to be able to link to wiki pages from within elsewhere in Scoop by using syntax such as [wiki-identifier::wiki-page]. Wiki-access rights should be selectable in the "Groups" interface: participating in wikis (wiki_edit), creating wikis (wiki_create), deleting your own wikis (wiki_own_delete), deleting any wiki through the directory or from the wiki start page (wiki_foreign_delete), editing wikis you have no access to (wiki_foreign_edit).

Storage and Editing Operations

Wiki pages are stored in wiki-syntax in the database and dynamically translated to HTML. This makes it possible to easily change the wiki syntax (e.g. add features like footnotes) without regard for reverse translation. Caching should significantly speed up page retrieval most of the time. Re-generating a page will be necessary whenever the whole wiki is changed, because some links may have become valid or invalid, and their appearance needs to be changed (the alternative is modifying relevant pages, which would require an additional table of all links to be efficient). Dynamic link apperance is an essential feature for wikis because it allows a high level of interconnectedness, even when the target pages don't exist yet, motivating users to create new content.

All wiki pages could be stored in a single table with a wiki identifier field, a page number field, a page title field, and a page content field (optional: page summary, page keywords, ...). Wiki maintainer information, blacklists, whitelists, link lists, changelogs and other relational data should be stored in separate tables.

The changelog would be a fairly simple table that stores the wiki identifier, page number, date/time of the change, (optional) description of the change, user who made the change, (optional) difference between the changed page and the old page. Blacklists and whitelists would be simple Wiki-ID & user-ID tables.

Implementation Summary

The stages of implementation can be summarized as follows:

  • Stage 1
    • Basic wiki creation and editing functionality
    • Administrative limits
  • Stage 2
    • Blacklists and whitelists
    • Simple changelog
    • Wiki directory
    • Wiki group rights
  • Stage 3
    • Rollback features, improved changelog
    • Links from elsewhere within Scoop
    • Advanced directory filters and sortings
    • Advanced wiki syntax
  • Stage 4
    • Ratings and trust/mojo
    • Multi-language editing
    • Highlighting changes
    • ...

Conclusion

I believe wikis would be a very powerful addition to Scoop. Possible uses include collaborative book and story writing, link directories, glossaries, encyclopaedias, FAQs and other document archives for reference within stories and comments, personal pages ("homenodes"), project pages, notes, user group communities and much more. The integration into Scoop would allow some interesting new possibilities traditional wikis don't have, e.g. reference, announcements etc. It would also have the vast advantage of making use of the existing user database. While it may place an additional load on already stressed sites, the feature can easily be opted out by the administrator. The implementation can take place in several separate stages. Maximum usability should be strived for through simple syntax and style.

< ids.org.au and anime.org.au | Usability guff: label tags for poll options >

Menu
· create account
· faq
· search
· report bugs
· Scoop Administrators Guide
· Scoop Box Exchange

Login
Make a new account
Username:
Password:

Poll
Wikis in Scoop?
· I'll use them 71%
· I'll program them 28%
· I'll write a song about them 0%
· Who needs them? 0%

Votes: 7
Results | Other Polls

Related Links
· Scoop
· Wikipedia
· GNU FDL
· More on Feature Requests
· Also by Eloquence

Story Views
  163 Scoop users have viewed this story.

Display: Sort:
A Proposal: Wikis for Scoop | 9 comments (9 topical, 0 hidden)
good ideas. here's more! (none / 0) (#1)
by sleeper22 on Wed Sep 26, 2001 at 09:05:32 AM PST

i think scooped wikis could be loads of fun, and be really useful in places where the scoop story model is too rigid.

one immediate use that i would have for it is on my forthcoming translators' site, where wikis might be just the right platform for certain types of collaborative translations, especially of poetry....

for this use, being able to rollback and rollforward to analyse the evolution of a poem makes all the difference.

There must be vast potential for housing other types of collaborative design processes.

E.g. , IT project development, such as designing web sites (information architecture, prototyping,...)

Prototyping of a web site can be take several approaches.

  1. using screen shot images or externally created drawings, which could replace the existing wiki content (thereby depending on the rollback navigation tool to compare ideas).
  2. putting some or all the HTML of the prototype web page into the wiki, or laying out smaller mockup images with HTML.
  3. somehow using an extended wiki that supports drawing tools in addition to text. the extreme of this would be a public white-board like what can be found in the placewhere.com java chat client -- but with the ability to save a snapshot (as a version of that wiki)
Having that type of graphical power may also be useful for other design processes based on 2 dimensions, like Architecture, interior decoration, civil engineering, advertising, ...

Regarding this tangent about wiki drawing tools, I don't know if it's realistic to expect non-text industries to need or to use the wiki model; i don't know much about their design approaches -- how it's usually done and what other online systems exist. So someone else should comment.

But the fact remains that the wiki system can be used as a substitute for document sharing, and it's simpler to use.

Integrating with scoop
I think it's important to establish bidirectional links between the wikis and stories. That way, a design team or group of creative artists can have two parallel processes: the model or object itself, which gets captured with snapshots but continues to evolve; and the discussion about that object, which is threaded. This bidirectional link should have two features:

  1. Linking to wikis from within a story. Like you say, this should be done without using full URLs -- only a wiki tag that contains the wiki ID -- so that the site can be changed and the links don't break. We could even use XML type <ref class="wiki" id="the-wiki-name"/&t; Upon display this tag would become a link to that wiki, unless maybe there is a hidden="yes" attribute, which would be a "quiet" reference -- visible to a story search, but not including in the story text during displaystory -- which leads to the second feature...

  2. Explicit references that the story makes to one or more wikis. This is meta-information about the story; each story will have one or more references, and each reference will contain the wiki identifier as well as a relevance value (i.e. this story is mostly about wiki1 but also concerns wiki2).

More about references
References should kept in their own table (storyrefs?) rather than embedded in the text, so that a) they can be accessed quickly and b) they can be specified in a variety of ways. As mentioned, references could be specified in tags (XML-style or otherwise) within the text, where they would be detected during the story submission and added to the storyrefs table). An additional way to specify refs would be a simple textfield or textarea box on the submit story page that prompts the user to enter IDs in order of relevance. If the submit story page was reached via a "write a story about this wiki" link on a wiki page, then that wiki's ID could already by entered in the box (or even put in a hidden field, for beginners).

In any case the system for references should be kept flexible i think. I'd also like to keep it generalized beyond wiki, so that the ID could point to any sort of object or record. E.g. on my site i want to allow book reviews, so ISBNs might be serve as IDs for class "book" -- in this way a story will be marked as pertaining to one or more books. Maybe there's a better name than references? citations? keywords?

One benefit of using this refs meta data is in story searches. On a wiki page there could be a link "click here to see the 3 stories that refer to this wiki"; the stories can be listed in order of relevance matching, if it's available. The book review example can involve even more powerful searching capability, especially if you have a books-in-print database that matches ISBNs to authors, publishers, etc -- a search using refs can find stories relevant to an author or publisher name even if those names are not written explicitly (or spelled correctly) in the text of the story.

Maybe i'm getting a bit off topic talking about generalizing the 'references'? :)
Well, it's something i've been thinking about and plan to implement, and it seems applicable to a wiki system. Thanks Eloquence for outlining a workable model for scooped wikis.
--
babelguides.com <<world literature in translation>>



Acropolis (none / 0) (#2)
by acestus on Thu Oct 18, 2001 at 08:44:47 AM PST

For a wiki+board-like project, have a look at acropolis.
-- This is not an exit.


History and Responsibility (none / 0) (#3)
by eb on Fri Nov 30, 2001 at 07:19:16 AM PST

A history would be essential, noting who made what changes. I've considered implementing something like this as an add-on to Scoop for a while -- something in the everything2 vein, to enrich viewing.

Usability is a big deal, but so is security. I think a link to an edit page, which shows if someone is trusted enough to view it. Simple is good.

Is anything being done about this right now? Or do I need to start?



Great Idea (none / 0) (#5)
by nickeldeedick on Sun Dec 09, 2001 at 08:46:03 PM PST

I'm interested in helping with this.

Twiki uses RCS to track page histories.



professional editing uses: a different diff? (none / 0) (#6)
by sleeper22 on Tue Jan 08, 2002 at 10:07:45 AM PST

Anyone seen alternative document comparison (diff) programs used in wiki-type systems?
The traditional diff approach -- a list of line differences -- is useful in some contexts, but i'd like to see diff output that displays the entire text, with revisions marked up by highlighting, strikethroughs, and other graphical means.

It turns out that MS Word does have change tracking functionality, and it's not bad, so if you know someone with that program you might want to take a look to see what i mean.

The uses i have in mind are the publishing and translation industries, where authors (or translators) and editors collaborate on a document. I'm sure we can make it simpler (and of course more accessible) than the MS Word solution, which is what most people seem to be using for this so far.

--
babelguides.com <<world literature in translation>>


Potential building block: the slash::wiki plugin? (none / 0) (#7)
by sleeper22 on Mon Jan 21, 2002 at 06:43:45 AM PST

This article describes in detail the Wiki plugin for Slash, which was made for the O'Reilly book about Slash. It uses the Text::WikiFormat parser, but otherwise is built from scratch -- simple and less feature-rich than, say, Twiki.
--
babelguides.com <<world literature in translation>>


Link reply revision to comments (none / 0) (#8)
by Exostra on Mon May 01, 2006 at 08:53:20 PM PST

When someone posts a comment, it should keep a link to the revision that the user read in order to understand his context if the document changes substantially post-comment. Exostra



We like it (none / 0) (#9)
by haylaz on Sat Apr 26, 2008 at 08:28:19 AM PST

WebcamSex WebcamSex WebcamSex WebcamSex WebcamSex



A Proposal: Wikis for Scoop | 9 comments (9 topical, 0 hidden)
Display: Sort:

Hosted by ScoopHost.com Powered by Scoop
All trademarks and copyrights on this page are owned by their respective companies. Comments are owned by the Poster. The Rest © 1999 The Management

create account | faq | search