I’ve recently been chatting with my friend Trejkaz about CMS’s mainly and the restrictiveness of them. It seems they and also the other above-mentioned packages are mostly single purpose or make it difficult to write new addons.
We’ve been talking about how people could program something which is a lot easier to work with. He quite likes Drupal as it’s less restrictive compared to the others, but we believe it could go even further.
You see, the problem is that these are programmed individually to their own tasks. Why not have a framework created which can be put to any use? Why limit text entry to go into the forum database or the wiki database and limited to only those areas?
All text typed into a text box should just be entered into a database and referenced. Then when it comes to outputting the text, the application just needs templates to display the text in different ways.
Say you want to reply to a post in a forum. You are just typing in text, the same as you do for a blog post or a wiki post right? All you need to do is add another field to link this new post to the last one. When it comes to displaying it, you just display it a different way with a template. All text should be entered in a standard generic way and reference previous text. Perhaps even a doubly-linked list so it points to what is is replying to (another post, a forum topic, a wiki article, a blog page, etc) and the next one replying to it.
The output is determined by behaviours as defined in templates. Blog posts, forum replies, wiki posts all just reference something else, so you just have a field saying "This post is a reply to a forum post" or "This post is another post to my blog" or "This post is a new Wiki article". Then it doesn’t matter what you or the other users type, it is always entered in the same way. This makes it extremely extensible. You can just define new template behaviours for displaying the text.
Why should a new blog entry or comment be any different to a forum reply or wiki addition? They are all just text being entered.
Now you don’t have the trouble of rewriting a ton of different plugins to display the text, you just write another template behaviour for displaying the text in a different way. Any text entered therefore could be a blog post, a blog comment, a forum post or reply, a wiki article or update to a wiki article, etc.
It’s all just different ways of discussing information. The real beauty should be the behaviour of displaying the text. This way if it’s a new blog entry, it just displays on top of the last blog entry. If it’s a forum post, it just displays after the last post. If it’s a comment, the template displays a link to the blog post and all comments underneath that.
In fact, using this method text entered could be members of many groups. That way, you could have a front page of a news website (eg like PDArcade.com) and you want the same text to appear as a new post in the forum, you just give the post the properties of "News article" and "Forum post" and so it will appear in both places simultaneously. Then, you can reply in the forum or in the comments of the blog and both are relevant and easier to work with. In fact, replies can appear in both areas. If you like, you could set up the "News article" behaviour template to ignore comments therefore making all replies (comments or otherwise) only appear in the forum.
Of course, all text entered would have to be easily moderated and managed, but all of that is done by a site-wide definition of your admin level as is already standard.
All text entered would, of course, be indexed so it may be found in a site search engine easily.
In fact, this could also apply to knowledge base software. You can always set up a behaviour that nobody can reply to the KB entry. Only admins can post text defined as "Knowledge Base".
The possibilities are endless.

October 18th, 2005 at 11:16 am - Edit
It begs the use of RDF, really… an RDF data store where things can be linked to anything else in any order you want. Comments on a page and comments on a forum are, then, the same thing. The page which renders any given content would just say “render this, then render any content in the store which are a comment on this item, ordered by date”. Nested comments are just comments on comments and nothing special.
If ActiveOntology ever kicks off and has nice persistence, maybe it will be possible to whack something like this together in Rails.
October 18th, 2005 at 6:24 pm - Edit
Sounds kinda like the Model-View-Controller design pattern
October 18th, 2005 at 9:56 pm - Edit
So you WERE paying attention in your classes
Hey Ruby on Rails fits MVC apparently. Trej would be so proud.
Maybe we should get together and write it.. If we had the time and cbf..