making zwiki folderish... i am currently playing with a quick hack of a zclass based on zwiki and objectmanager... and its amazing! =)

why did i do it?

because i was frustrated with some of the namespace limitations that i was experiencing with the current zwiki setup. let me explain this further with an example scenario.

lets say you have two projects:

in the normal flat namespace, this is how it would look:

Root
 |
 |-!Peripherals
 |
 |-LabAnimals
 |
 |-OtherProjects

but yout projects are huge! you need more than a single page to encompass all those bits and pieces. and in a flat namespace the only way to do them is like so:

Root (folder)
 |
 |-!Peripherals
 |
 |-PeripheralsDevelopers
 |
 |-PeripheralsMilestones
 |
 |-PeripheralsVision
 |
 |-PeripheralsCurrentStatus
 |
 |-PeripheralsDevCorner
 |
 |-CompetitionFromMicrosoft
 |
 |-UnifiedVision
 |
 |-LabAnimals
 |
 |-LabAnimalsMilestones
 |
 |-LabAnimalsVision
 |
 |-LabAnimalsLegs
 |
 |-LabAnimalsCurrentStatus
 |
 |-OtherProjects

... where you append the project name in front of the page descriptions... and, as much as it may seem straightforward in practise, once you hit a sizeable number in an organisation / community, it becomes a major hassle.

what if both the LabAnimalsTeam and the PeripheralsTeam wanted a page on MouseErgonomics? they are talking about totally different topics here, and they don't want the contents of one page mixed up each other.

the solution in this case is of course to introduce (or is it bring back?) hierarchy, and have a separate zwiki for each of the projects:

Root (folder)
 |
UnifiedVision (folder)
 |
 |-FrontPage
 |
Projects (folder)
 |
 |-!Peripherals (folder)
   |
   |-FrontPage
   |
   |-!Developers
   |
   |-!Milestones
   |
   |-!Vision
   |
   |-CurrentStatus
   |
   |-DevCorner
   |
   |-CompetitionFromMicrosoft
 |
 |-LabAnimals (folder)
   |
   |-FrontPage
   |
   |-!Milestones
   |
   |-!Vision
   |
   |-!Legs
   |
   |-CurrentStatus
 |
 |-OtherProjects (folders)

this system works quite nicely, and has in fact served most of our needs for the least 8 months or so. however, grow a bit more and we run into a rather ironic problem =)

let's assume that both projects have a sub-project called WikiBackendSystem... it's vital to both projects, but in reality its a common project, and resources can be shared.

however, with the current system, it has to exist as two separate pages under two separate folders. bang! we have hit that big assed limitation with the hierarchical namespace, we wish we could benefit from the amazing dynamically linked nature of wikis.

btw, on a sidenote, one of the things that still impresses me with wikis, is the parenting aspect... the ability to reparent and explore the path from so many different threads.

in a flat namespace, WikiBackendSystem would have existed on the same plane, but would have both projects as its parents. the solutions in the hierarchical namespace is:

at this point i was stuck, flat namespace --> hierarchical namespace --> flat namespace --> and so on... it's a rather frustrating cycle and the damned folders in the middle were making my life a misery!

then it struck me that this is python and zope here! so a few hours later i had a fully functioning zclass subclassed from zwikipage and objectmanager (objectmanager gives an object container, that is "folderish" powers)!

the advantage of this is that i can keep most of the data in a flat namespace! and then when i need specific hierarchicalised data, e.g. the milestones for Peripherals or LabAnimals, then i can create those pages within their specific objects

i.e. most of the information would be strongly pushed into the flat namespace objects, and then the hierarchal namespace used for nothing more than specific information, pertinent only to the container namespace

and of course, we can use the in built amazing parenting system for true logical parenting. so, in our above example, WikiBackendSystem would be in the root folder as part of the flat namespace, but, be defined as childrens of LabAnimals and !Peripherals in the projects context.

i dunno what this means to anyone else, but it was a nice solution which got rid of those annoying folder objects in the middle which were screwing everything up!

btw, i tried to create the product as a python product and after two weeks of that, have given up, so if anyone manages to implement a folderish zwiki as a python product, do tell!

i look forward to any comments / criticisms / questions
tav

RefactorMe --FloK

See FolderishZwikiArchive? for old messages.

WikiWikiWeb:AndyGlew, 2003/03/04 21:01 GMT
I'm somewhat disappointed that you are moving away from Folders.

I think wikis are really just an interface to a filesystem. They need all the filesystem primitives: folders (directories) (namespaces), file copying, deleting, renaming.

They need relative paths - short names for objects in the current namespace - as well as absolute paths. Inter-wiki: links are a sort of absolute path, but they are the equivalent of being able to specify a DOS drive letter without having a folder hierarchy within the drive. We need absolute paths, and/or things like ../.., in wiki names.

By the way, almost the very first thing I did when I started using my project's zwiki was to use ZoPe management to create my subproject zwiki inside the project wiki. I then had to link it up. Quite annoying.

Yes: there is stuff that needs to be shared. Its redundant for my subproject zwiki to have it's own help pages. Not so redundant to have it's own issue tracking, although it would be nice if the project zwiki's issue tracker could incorporate my subproject zwiki's issue tracker.

problems with SubWiki's --DeanGoodmanson, 2003/03/04 21:57 GMT

>> I then had to link it up. Quite annoying.

You found linking through RemoteWikiLinks annoying? Could you explain more. Did you expect the parent wiki to auto-link a subwiki page? Or did the absense of folderish characteristics annoy you, such as not being able to [sub/FrontPage], much more understandably [sub/sub2/FrontPage], which in current form could only be managed through [Sub2]#FrontPage .

Perhaps we should move this to SubWikiDiscussion ?

FolderishZwiki needs cleanup/clarification --Simon Michael, 2003/03/05 17:39 GMT
zwiki-wiki@zwiki.org (AndyGlew?) writes:
> I'm somewhat disappointed that you are moving away from Folders.

Hi Andy. I'm not, at this time. Note this is a very old page (and we need to do something with it). SubWiki/SubwikiDiscussion?/GeneralDiscussion is probably where you want to be.