ProWiki is a system developed by MarkWaks during the middle of 2004 -- before I found out about FlexWiki, so its ideas evolved in parallel. It is based on the relatively simple UseModWiki codebase, and adds the concept of Properties to that. It is interesting in the FlexWiki context mostly in that it is a good example of using properties to represent objects.
It can be found at http://jducoeur.org/wiki.cgi -- this site includes a moderately detailed tutorial of the main concepts, plus an example of how to use it for semi-structured text development.
ProWiki is designed with properties as a central element, moreso than the other wikis that I've seen. Some of the main concepts:
Each page can have an arbitrary number of properties; while the syntax is quite different, the actual key/value pairing of a property is very similar to that in FlexWiki. A page may have any number of declarations of the same property -- properties are inherently multi-valued, although some contexts only use a single value.
Property values can name other pages, providing a concise way to link pages together. Queries make it very easy to dereference through property values. So one can use properties to build a powerful semantic web quickly and easily.
There is a crude concept of inheritance: pages can declare a parent using the IS_A property. The OO scheme is prototype based, a la MOO or Javascript or suchlike. A page inherits its parents properties as a default. (The long-term intent is that properties are additive: a child adds its properties to its parents. This isn't fully implemented yet, though.)
Pages can control how they appear using the DISPLAY_TEMPLATE property. A display template is usually a set of query rules to take the page's properties and lay them out in a consistent way. This is particularly useful when combined with inheritance, so that all pages of a given type can be rendered similarly.
There is a fairly simple query language, which is much more concise than that of FlexWiki's WikiTalk but less flexible. It allows the following types of queries:
Page queries allow you to select a set of pages based on the presence of a particular property, or based on the class hierarchy. Eg, "list all pages with the Item property" or "list all Characters" or "list all pages listed in the Archetype property of Character pages".
Value substitutions allow you to substitute property values, check for the existence of a particular property, or list all values of a property for a particular page. This can be combined with page queries, to get things like, "list the Name property of the objects named in each Item property of each Character object".
All of these queries work with a query/pattern syntax, applying the specified pattern to everything that matches the query. Again, this is cognate to some of the ideas in FlexWiki, although the syntax is quite different.
The database implements properties as a cross-cutting dimension, with each property type having its own DB file. This allows property queries to be highly efficient.
ProWiki was designed as an environment for developing semi-structured text. Specifically, I built it for writing Live Action Roleplaying games, which require large numbers of highly interlinked typed text objects mixed in with some unstructured text.
I describe it here mainly as an example of some ideas that FlexWiki might want to adapt. In particular, the strengths of ProWiki over FlexWiki are:
Concise, reasonably easy-to-use query and insertion language.
Easy page interlinking using properties.
Display templates.
Strong typing of pages as desired.
Written in Perl, so runs more easily on more servers.
Much more powerful and flexible programming language (WikiTalk).
More stable and mature, with a much richer Wiki feature set.
Written in C#/.NET, so faster and cleaner code.
Overall, I suspect that FlexWiki has a better future ahead of it, as .NET/Mono penetrate the Web more deeply. But it may want to incorporate some of the ideas from ProWiki, to make it more useful for in developing object-oriented environments
The software running this site. -> jump to HomePage
10/22/2006 7:52:17 AM - -81.182.199.248
Click to read this topic
6/30/2008 6:40:56 AM - 203.177.74.139
Click to read this topic
6/30/2008 6:40:56 AM - 203.177.74.139
Developer of ProWiki. Professional C# geek.
1/24/2008 8:51:58 AM - FLWCOM-jwdavidson
The software running this site. -> jump to HomePage
10/22/2006 7:52:17 AM - -81.182.199.248
The software running this site. -> jump to HomePage
10/22/2006 7:52:17 AM - -81.182.199.248
Click to read this topic
6/30/2008 6:40:56 AM - 203.177.74.139
Click to read this topic
6/30/2008 6:40:56 AM - 203.177.74.139
The software running this site. -> jump to HomePage
10/22/2006 7:52:17 AM - -81.182.199.248
The software running this site. -> jump to HomePage
10/22/2006 7:52:17 AM - -81.182.199.248
Click to read this topic
6/30/2008 6:39:32 AM - 210.212.95.115
The software running this site. -> jump to HomePage
10/22/2006 7:52:17 AM - -81.182.199.248
Click to read this topic
6/30/2008 6:40:56 AM - 203.177.74.139
The software running this site. -> jump to HomePage
10/22/2006 7:52:17 AM - -81.182.199.248
Click to read this topic
6/30/2008 6:40:56 AM - 203.177.74.139
The software running this site. -> jump to HomePage
10/22/2006 7:52:17 AM - -81.182.199.248
Click to read this topic
6/30/2008 6:40:56 AM - 203.177.74.139
The software running this site. -> jump to HomePage
10/22/2006 7:52:17 AM - -81.182.199.248
The software running this site. -> jump to HomePage
10/22/2006 7:52:17 AM - -81.182.199.248
Click to read this topic
6/30/2008 6:40:56 AM - 203.177.74.139
Click to read this topic
6/30/2008 6:39:32 AM - 210.212.95.115
The software running this site. -> jump to HomePage