Wiki For GroupWare
Wiki For CollaborationWare focuses mainly on shared document editing, which covers a lot of ground. But all unstructured data. For handling Structured Data, let's consider Wiki For GroupWare. (Update: there are now Structured Wiki engines.)
What's the simplest way to get some SFA features into a wiki?
There are 2 main sets of structured data you might want to add to a simple page.
info about that person (contact info, etc.)
some sort task tracking data for querying ('taskAssignedTo=GeorgeB' and 'taskDueDate=12/31/03')
Note that querying almost always involves multiple fields. And that you're likely to end up with some querying on date data.
How can you handle such things in something as simple as a wiki?
for other WikiEngines, you might be able to extend them. You might not need a SQL engine for data (in fact you'd definitely want a more flexible Object Store). You might even make do with a simple streamed binary file of language objects: but with a WebApp you have to worry about handling simultaneous hits, so you'd need some mechanism to handle that...
Crude idea to chew on:
most data types are pretty flat (or you can pretend they are)
so you just need a flag list of fieldnames
you could require that the lines of structured data go at the top of the page, each line being a fieldname and value (a triple?) (YAML as a format?)
when saving a change, you could find/parse those lines and save them into a structured format (just more object properties in Zwiki)
if you're very loose/sloppy in data handling, you could tweak your field specs (and create new object types) whenever you wanted and Zope wouldn't care
and you wouldn't need to bother tweaking a pretty form (which means giving up nice pulldowns for data validation)
though adding a new field wouldn't get it included in a Z Catalog...
This is definitely tempting... I might even stay away from Zwiki Tracker.
Other area: Issue Tracker
SFA/"flexible metadata" --2003/10/14 22:15 GMT
I would definitly advise you that all those pages get a meta-meta-data field, e.g. "X-XML-Schema: http://foo.bar/sfa-v1.1.xsd". That would make it possible to 'validate' the input and it will make upgrading a bit easier.
This is probably a dreadful hack but ... --2003/10/15 02:38 GMT
I'm playing with integrating new functionality with OddMuse using just raw includes and a custom script. On <http://www.synaesmedia.com/beach/wiki.cgi/Code Generation Experiment> I'm using this combination to do a little code generation. The raw data file is written on one page. Another page uses OddMuse's "include" to trigger the external script and sends the data page name as an argument. The script pulls the data from the wiki also the raw include mode.
In this example, parsing isn't very robust, but there's no reason it couldn't be made more so.
I guess something similar could be set up to integrate sales data into the wiki. For example : a form filling script could put contact details into a database, it could also spit out the details in the right format for inclusion into the wiki. Then you hack the wiki, so that any page entitled ContactBob Smith, automatically pulls the Bob Smith record out of the database script and displays it on the page. (Though you should also allow the user to annotate the Bob Smith page.) Meanwhile an Enter Contact page should include an HTML form which allows another contact to be put into the database. Other queries can be handled as calls to the external script.
I think something YAML like is appropriate. Users ought to be able to learn a couple of bits of strange syntax if there's something in it for them. (Or am I naive here?) Maybe you reward them by making the special syntax needed to enter the data properly, also spit out the record in a pretty format.
-- Phil Jones
PIM info --2003/10/20 11:58 GMT
Nice ideas. I'm working on using a Wiki as a front end (one of several) to an RDF store. Info about a person (contact info, etc.) could be stored using the FOAF vocabulary, the RDF iCalendar vocab could take a lot more. The standard Wiki functionality can still operate. The way I'm approaching it is to move towards storing the wiki page content as (X)HTML docs, transforming it for edits. Each page has associated RDF metadata. Should be very web-friendly. For something like FOAF data, a few extensions to the Wiki syntax and/or a form could provide the editing capability. The big benefit should come when you want to do structured browsing, an RDF query language allowing smart cataloguing etc.