frassle/frassle specs


Reputation systems, like ebay's seller ratings or amazon's Top 1000 Reviewers, are simple but effective ways to get people to contribute to an online community in a certain way. I'd like to have some reputation rankings for frassle. How should I construct these? How would I measure useful contribution to the frassle community?

A related system would be ratings for websites linked from frassle. This is a simple addition to frassle's note system but offers an easy way to drop useful data into frassle. I should sketch out a data model for this tonight.

A useful feature for frassle would be a customizable bookmarklet called "Jot to frassle". To use this bookmarklet, you would choose a category in frassle and drag the link to your browser's toolbar (or your taskbar's quick launch area). Then, if you wanted to make a quick note to that category, you just press the button and get a popup window with a text editor. Quick popup, no fancy editor, no preview, just type and post.

link

Some of the features you requested are being worked on. Threaded comments are already implemented in the development version of frassle and will be here soon. But the idea of building a blog that looks like your own blog, rather than a part of the frassle application, is very attractive. I have begun exploring this possibility, but I haven't got a complete enough design yet. Let me tell you what I've got so far, and maybe you or others have some suggestions.

The core functionality is called the Page Builder. Any frassle user can go into their Page Builder and create a new page. When you create a page, you choose a title and URL for it, along with a layout: 1-column, 2-column, or 3-column. You then get a pretty simple page with the layout you asked for, and can add stuff to the page by adding a block into a column.

A block contains a noteset, which is a set of notes (blog posts created in or aggregated into frassle) that match a certain expression. I'm using expression here in the programming sense—an expression is a written phrase that has some meaning. In this case, a noteset expression describes a set of notes using some of the following criteria:

  • a particular note, selected by GUID/permalink
  • notes from a particular feed
  • notes from a particular category
  • notes from categories with relevance of at least n% to a particular category (i.e. posts from a variety of feeds that are pertinent to e.g. blogging)
  • notes of a particular length/word count
  • notes that contain or don't contain some text
  • notes that are responses some note or note-set
  • notes that you posted as comments to another blog
  • your suggestion here

The noteset language can describe each of these criteria and allows them to be combined in typical set-theoretic ways. For example, you might ask for all posts from my feed with under 10 words, to go into an "interesting links" block. Or you might ask for all posts from my feed that are not over 30% relevant to my computers category, in order to make a non-geek version of my blog.

You can think of the noteset language as a very powerful, expressive search. While the expressions themselves will probably look like this:

noteset:feed=123&!(cat_relevance=/computers,50)&word_count<10

there will be a friendly interface that just builds these in the background. (A good UI to clone would be MS Outlook's filtering.)

The page builder is an interesting feature because it allows you to both build an aggregator page — something like Google news that shows you the latest happenings from blogs and news sources you care about — and build a custom view of your own frassle data. Other things you could do:

  • Create a personal "dashboard" page, with relevant bookmarks, headlines from your best friends' blogs, and a to-do/to-read list
  • Create something like Google News but with your own topics (I might have Blogging, Social Networks, Open Source Content Management, and Boston), based on frassle's related news feature
  • Build a page for an online community, offering forums (just a frassle note in disguise) and latest content

But your suggestions about blog widgets got me thinking. In the backend, every block hits the frassle note database. But in the front end, we want lots of options. Given a noteset, you may want to display:

  • a set of titles/links (headlines)
  • the full note contents, possibly with links to add a comment, categorize, etc.
  • a note excerpt
  • just images(?)
  • who knows what else

Each of these implies a certain presentation of the noteset. I envision each being designed as a frassle plugin; if you want to create a new kind of view, you just create a plugin that renders a block. This allows a lot of flexibility—you could build a calendar widget, or a blogroll, or whatever—but keeps things pretty simple.

I think Movable type has a plugin architecture and we should learn from that. I have heard some complaints about it and we should especially learn from those.

The moon mission could be a community site for Envisioning the Future of Weblog Software, or as you suggest, converting Lisa to the frassle religion. :)

link

Full text search. Coming soon to frassle.

link

A tag proposed for RSS2.0 that gives a link to an RSS feed of comments on the current item. Definitely something frassle should implement.

link

These are features that should go into frassle. Some are high-priority, some far-off dreams, most in between.

Notation like [this] denotes incremental levels of complexity on a feature. {This} denotes estimated time to implement, possibly divided out by phase.

Feature list

  • Pop-up UI tips. In frassle, you might have little tricks to speed things up. For instance:
    • When adding categories, you can type "One; two;three" to create separate categories named One, two, and three.
    • When typing a local: URI, you can leave a space at the end in order to ask the server to disambiguate by appending a number. For example, if you type "local:berkman " and berkman and berkman1 already exist, your URI will be automagically changed to say berkman2.

    Near where these tricks are useful, there should be a little hint gadget.

  • Pull from Google/Feedster. When an item is published to a feed, or maybe when a user asks, frassle should query Google or Feedster to find other relevant information. {4h??}
  • Clickthrough and "return to frassle" frame. When you click on a link to an external site, the link should actually take you to clickthrough?member_id=12345. This page should [phase1] do a redirect and [phase2] return a frameset with the external site in the bottom frame below a thin top frame that takes you back to where you were on frassle. {phase1: 20m, phase2: 40m}
  • local:blahLink URIs on members should denote locally-served content. This content should be reachable at a URL that looks like http://fa.rura.org/blahLink to make things easy to write down. {40m}

Deeper observations

  • frassle is web search with really, really big search terms. It's like if you asked google not only about some words, but also provided it with a sort of personal cultural history so it could find things relevant not just to those words, but to those words as understood by you. This is anxiety-provoking because it seems to demand a high-bandwidth, computation-intensive connection on the low-bandwidth, computationally stupid internet. On the other hand, if the fundamental problems of search can be solved by faster networks and computers, that's pretty nice. Of course, a key distinction may be that search terms are getting larger by orders of magnitude, so perhaps hardware technology may not be able to keep up. On the other hand we in CS are pretty good at coming up with tractable approximations to nondeterministic problems, so if we get to the stage that this is a serious question we will have some idea how to go about solving it.

« Previous Page