I'm considering a project, and am keen not to end up re-inventing the wheel.
I'm looking to use collaborative techniques to put together a 'knowledge
base'... I require:
* Collaborative editing to grow the number of 'records' held.
* For the 'records' (pages) to be of a standard form - so that data of a
similar 'type' can be processed (summarised and filtered) based upon any
attribute (field). The 'records' - however need to be flexible - in the
sense that a field might be a sequence of records (recursively) in a
table... The 'type' of a particular record will be known, and should
have a common appearance and layout that can be edited independent of
the data. It must be possible to extend the type of records after data
has been collected... as the system evolves... but these fundamental
changes need only be possible for an administrator.
* Support for a hierarchy of users - such that only the
submitter/members of senior groups can view new data until it is
approved by a member of a senior group.
* Support for public comment & discussion on every page - a threaded
forum approach would be fine.
* (Ideally - not sure how this would be used) Support to drag in data
from third-party sites either using RSS or using web-services.
* Email notification of changes to pages where an interest is registered.
* Full version management.
I've briefly looked at Twiki and Xwiki (which show some promise - but
I'm not sure they're up to the job.) I'm familiar with Ruby on Rails -
though I suspect that it is too low-level for my purposes. I would like
to avoid focusing on the implementation details as much as possible and
focus on the design of the collaborative system using the highest-level
RAD approach I available today.
Have others addressed a similar problem (using gentoo)?