I ran into this problem recently of wanting a truly distributed method for gathering loosely structured input from everyone in an open and community organized way. How do you best go about gathering lots of opinions and getting some forms of consensus online in a way that software can make sense of, and doesn't rely on single points of authority? That may sound difficult, but it really is just the essence of the web itself, we're surrounded by it.
The first and obvious instinct is to "just use a wiki" and I was heading down that path, but I started having concerns that a single group mindset may form around that wiki, or that the administration itself could play too important of a role. Not only were there these long term organizational concerns, but scale was also troubling me, I don't want to be dealing with one monster database and a huge volume of changes.
The next thought, a much more distributed and decentralized approach, would be to use microformats. This would allow any page anywhere to openly contribute and a bot to do some type of automation and together form their own kind of consensus. I usually love everything about this model, but I also really like the instant gratification of having a wiki, and sometimes microformats tend to focus on individual contributions whereas wikis foster communities.
The answer I arrived at was really quite simple, combine the two, a wikimat :) Just use some simple recognizable keywords that people can plug into any wiki anywhere on the web. Based on that I've come up with these guidelines for a wikimat, which is just a wiki page with some common patterns like:
It may not make sense what I'm talking about yet, so I'll use an example (perhaps a little US-centric), renewable energy and communities: Lots of individuals and growing numbers of communities are experimenting with renewable energy, but there is very little coordination or structured exchange of success/failures/lessons/etc. A simple renewable-energy wikimat might define keywords for the common types, wind, solar, geo, bio, etc. Then also a bunch of important attribute keywords like funding, start date, status, homepage, people served, and so on. After there's some basic dictionary of these code words, and one important primary unique keyword to identify the wikimat itself (say "Renewmat"), any community can use any existing wiki and start sharing a semi structured experience with the world.
In the example above, a simple renewable energy project wikimat page might be:
Then either someone has listed wiki.example.org as one of the sites that has Renewmats to some central place, or web search/bot can discover these automatically. Then third party tools can collect, aggregate, and process the semi-structured information.
Of course, I have a specific wikimat I will be proposing (to the grub-dev list) soon relating to grub and crawling :)
The first and obvious instinct is to "just use a wiki" and I was heading down that path, but I started having concerns that a single group mindset may form around that wiki, or that the administration itself could play too important of a role. Not only were there these long term organizational concerns, but scale was also troubling me, I don't want to be dealing with one monster database and a huge volume of changes.
The next thought, a much more distributed and decentralized approach, would be to use microformats. This would allow any page anywhere to openly contribute and a bot to do some type of automation and together form their own kind of consensus. I usually love everything about this model, but I also really like the instant gratification of having a wiki, and sometimes microformats tend to focus on individual contributions whereas wikis foster communities.
The answer I arrived at was really quite simple, combine the two, a wikimat :) Just use some simple recognizable keywords that people can plug into any wiki anywhere on the web. Based on that I've come up with these guidelines for a wikimat, which is just a wiki page with some common patterns like:
- First, any wikimat page must be easily identifiable, for instance by putting a unique tag or code word in the title/name/url of the page.
- Second, within the wiki's human editable area there should be another unique word to know where software can start looking.
- Third, the markup used by the wikimat (if any) should be as minimal and compatible across all wikis as possible, bold, lists, breaks, etc.
- Finally, any wiki that gets used to support a wikimat should be listed or identified in some common area for that wikimat (to ease discovery).
It may not make sense what I'm talking about yet, so I'll use an example (perhaps a little US-centric), renewable energy and communities: Lots of individuals and growing numbers of communities are experimenting with renewable energy, but there is very little coordination or structured exchange of success/failures/lessons/etc. A simple renewable-energy wikimat might define keywords for the common types, wind, solar, geo, bio, etc. Then also a bunch of important attribute keywords like funding, start date, status, homepage, people served, and so on. After there's some basic dictionary of these code words, and one important primary unique keyword to identify the wikimat itself (say "Renewmat"), any community can use any existing wiki and start sharing a semi structured experience with the world.
In the example above, a simple renewable energy project wikimat page might be:
http://wiki.example.org/Renewmat:Cedar_Rapids,_IA,_US
Name: Indian Creek Nature Center
Date: Saturday, October 7, 2006
Community: Cedar Rapids, IA, US
Org: Iowa Renewable Energy Association
Type: PV
Description: The Nature Center's buildings are a model of efficiency and use a photovoltaic system to produce 40% of their electricity.
...
Then either someone has listed wiki.example.org as one of the sites that has Renewmats to some central place, or web search/bot can discover these automatically. Then third party tools can collect, aggregate, and process the semi-structured information.
Of course, I have a specific wikimat I will be proposing (to the grub-dev list) soon relating to grub and crawling :)

Calendar



