jducoeur: (Default)
[personal profile] jducoeur
Okay, good enough. The first draft of ProWiki seems to be stable enough to actually use; I've written the documentation and the beginnings of an example game, so I think folks can see what's going on.

The full details can be found at the ProWiki site -- this includes a tutorial on the major concepts, some discussion of the internals, and a few initial characters from The Incredibly Dippy Subway Game, a micro-LARP set in Harvard Square Station, which is mainly an example of how to use ProWiki.

The basics, for those who are curious, is that this is a heavily enhanced version of UseModWiki, specifically designed for use with semi-structured data such as LARPs. (The explicit motivation for this project was to make Tabula Rasa III a little easier to write and track.) The primary innovation is the concept of properties -- named characteristics that a page can have. Properties can serve as data, holding arbitrary strings; they can also serve as links between pages, defining relationships between them.

Most of the interesting parts of ProWiki come in the form of queries: structured statements that allow you to generate the contents of Wiki pages based on the properties of those pages or others. There are queries that allow you enumerate pages based on their properties, queries that enumerate the properties on a specific page, and properties that act through inheritance. Yes, as part of all this I've added a very simple concept of inheritance between pages.

It's all quite rough-and-ready, as much a technology experiment as anything. But I think it should make Wikis far more useful for the sorts of purposes I have in mind, and I suspect that I've scarcely scratched the surface of the idea. If you want to really grok how it works, dig around in the sample game and look at what the page sources look like -- if you're used to normal Wiki technology, you'll probably be a bit surprised. Feel free to download the source and play with it, but be warned that this is all still very experimental code, and probably far from stable. Please do *not* edit the ProWiki site itself without asking me first. Thanks, and feel free to ask questions if you have them...

(no subject)

Date: 2004-08-26 08:34 pm (UTC)
siderea: (Default)
From: [personal profile] siderea
Huh. You've reinvented the CMS, only.... sideways. And in a wiki.

And, unfortunately, in perl which writes to disk. This would be so much cooler in php in a real db. Maybe I'll do that, someday.

(no subject)

Date: 2004-08-27 12:53 pm (UTC)
siderea: (Default)
From: [personal profile] siderea
I don't know CMS. Pointer?

"Content Management System". Google. Check out cmsmatrix.org, sourceforge.com, or opensourcecms.com. You are now well into that space, yet uniquely in a space of your own...

Basically, you've invented a LARPing/co-authoring CMS.

As for perl and flat files -- yeah, I'm painfully aware of the shortcomings there. Perl continues to annoy the hell out of me, as I try to use it for serious programming: it is agonizingly idiosyncratic, and far too willing to conduct implicit casts that I don't want. Its attitude towards passing complex structures as parameters and returns is especially irritating, and the source of many subtle bugs.

Uh, all these things, true and irksome as they are (and you have your fingers on the pulse of my irritations with perl) my concern had more to do with security. Things like PHP, which is meant for web usage, have built-in aspect to help with certain security issues. Like auto-escaping quoting to prevent SQL insertion attacks.... not that, writing to disk, you'll have any problem with SQL insertion attacks. :}

Have you considered security at all? Even just users and ACLs and stuff?

PHP wouldn't have occurred to me, but I suppose it's probably powerful enough for the job if it has adequate regex support.

It's a perl derivative, so it might.

PHP vs. Perl

Date: 2004-08-27 05:19 pm (UTC)
From: [identity profile] metageek.livejournal.com

It's a perl derivative, so it might.

Really?

No, I don't think so; bits of it are inspired by Perl, but it's fundamentally different. Worse, mostly--it's got even more evolutionary scar tissue than Perl. For example, the thing about automatically quoting strings for SQL is terrible when you realize that only a minority of your string-handling code is passing strings to SQL. I've sworn off PHP.

(Mind you, I haven't seen it since version 3, and it's now up to 5. I don't consider that reason enough to look at it again, though. There are plenty of real languages I can use instead.)

(no subject)

Date: 2004-08-26 09:49 pm (UTC)
mindways: (Default)
From: [personal profile] mindways
Very neat!! If I had spare time, I'd probably want to get involved in helping out with it. Ah, well.

The only problem I ran into while browsing the small sample LARP was the number of dead-ends, which interfered with my usual "just keep clicking" Wiki navigation style. This is partly a result of content-free pages such as page templates, but more because query-generated text doesn't show up in the backlink searches - so if you're at GuitarGuy and you click on the page title, the only link that shows up to it is itself, instead of Characters as one would expect.

(I can understand *why* it doesn't show up - annoying to implement, that would be.)

(no subject)

Date: 2004-08-27 08:53 am (UTC)
mindways: (Default)
From: [personal profile] mindways
It entirely depends on the structure of the Wiki in question. Under many circumstances, backlink searches can compensate for poor navigation/interlinking.

For instance, in the example we're talking about, ideally one would implement the scheme you mentioned in the prior comment. Failing that (or perhaps in addition), it would be nice to have a link to "Characters" at the bottom of each Character page (easy enough to do by editing the Character Template - which would also give one a way out of the otherwise dead-end Character Template page, which is nice). Failing either of those, backlinking can often get one to someplace else relevant (except in this case, due to the parameters & suchlike - but in theory).

Basically, when one is looking at a page, there ought to be some non-pain-in-the-ass mechanism for navigating to any other page that could be considered "related" to it. (Many Wiki proponents would use "ought" in an aesthetic sense; I use it mostly in a practical one - browsing a well-linked Wiki is a marvellously easy experience.)

For a Character, the "related" pages I can think of off the top of my head would be:
  1. A list of all Characters
  2. A list of all Characters in the same group as this one
  3. Any item the Character has (handled by in-page links)
  4. Any special ability the Character has (handled by in-page links)
  5. Any other pages linking to this Character (handled to an extent by backlinks)
  6. The display template being used for this page
  7. The homepage for the LARP
#1 and #2 would be handled by the tweak you propose; #6 and #7 could be handled by appropriate page templates - though #6 might be something to put in the main navigation in some way; it's a universal enough concept in ProWiki.

Profile

jducoeur: (Default)
jducoeur

October 2025

S M T W T F S
   12 34
567891011
12131415161718
19202122232425
262728293031 

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags