FeedFerret
About
FeedFerret is a proposal for web-based feed-aggregation software with some additional features not generally found in feed aggregators:
- the ability for users to comment on feed items
- the ability for users to categorize/tag feed items
- the ability to see what comments others have left on items, and respond to those comments in a threaded way
- the ability to export the commentary in a format which the original sources could incorporate in their on-site comments (like trackbacks)
All communication would be done using open formats (pre-existing where possible).
With the addition of a blogging feature, FeedFerret would then be one core component of a distributed social network.
Prototype
Since MediaWiki is what I know, I'm going to develop my prototype as a MediaWiki extension -- but the concept should be platform-independent; the data-exchange format is the key piece.
Since that is the key piece, it should use existing open formats as much as possible (starting with RSS/Atom), and where necessary extend an existing format rather than creating a completely new one.
Software components to be adapted:
- Extension:RSS: RSS/Atom reader for MediaWiki -- mainly useful as sample RSS/Atom reader code. If it already stores the feed data, then that's a good start, but I think I want it to create a permanent wiki page for each feed item (for a number of reasons), and I doubt it does that.
Software components I'm currently hunting down:
- a MediaWiki hook that will let me periodically poll each RSS feed in turn (I know there is something like this which is triggered, I think, every time a page is viewed, because MW uses it to run jobs in the "job queue").
- Semantic MediaWiki API. I will probably need to be able to output custom formats for the /talkback and other feeds.
Other stuff to be done:
- LiquidThreads needs to be callable from non-talk pages. They may be working on this, and they may get to it before I do. Probably their implementation will not be as flexible as what I need. Not sure what I need yet, but it needs to be flexible.