denise: Image: Me, facing away from camera, on top of the Castel Sant'Angelo in Rome (Default)
Denise ([staff profile] denise) wrote in [site community profile] dw_biz2010-06-07 02:14 am
Entry tags:

Social bookmarking brainstorm post

So, one of the very first things that I put on my "things I want to do with Dreamwidth" list, way back in the middle of 2008 when we were making lists of "things we always wanted to do", was: redo the "memories" feature. One of my first decisions when thinking about the project was that I wanted to gut the existing system and start over again, since in the years since memories were first created there have been a lot of advancements in social bookmarking: sites such as del.icio.us have set the bar high, and there's no reason to redo the system if it's not going to offer something (or multiple somethings) that Delicious can't offer.

So, I wrote a basic spec that was chock-full of things I thought would be really awesome, and stuck it in Bugzilla, and put it on the list of "things we will get to when we get past the initial projects we want to add", and time passed. Then, a few weeks ago, [personal profile] yvi came to me and said she was looking for a complex summer project to really dig her teeth into. Since the memories-intto-bookmarks project is one I've been really looking forward to, it was the first idea I threw at her, and she thought it was awesome, too.

This is [personal profile] yvi's working version of the spec, based on the version I wrote a while back, and it is now time for everyone to weigh in on what they think! Please read this spec and give it careful consideration, then let us know your thoughts.

Turning you over to [personal profile] yvi now:



This spec is heavily based on an initial spec by [staff profile] denise, withfurther ideas and fleshing out by [personal profile] yvi, with help from [staff profile] mark and [staff profile] denise. You can view the bugtracking entry for this here.

Basic information

Title of Project: Dreamwidth bookmarking/tagging feature

MOTIVATION: To enhance user experience by providing an easy way to bookmark content and organize these bookmarks; to provide for an easy, grassroots form of cross-site content discovery; to make "best of site content" easy to find.

END GOAL: To replace the Memories function with a new form of site-wide bookmarking, similar to the functionality of del.icio.us, in which users can tag other people's posts and assets for later retrieval. To track both how many times a specific entry is saved by someone else, allowing users to find the most popular or most-talked-about entries, and how recently an entry was posted and/or first tagged, allowing users to find the freshest content for a specific tag.

BACKGROUND: The existing Memories function hasn't been updated in a very long time, and it wasn't very usable to begin with. With the advent of tagging, many users ceased using the memories function and switched to tagging, but tagging has its limitations -- one can only tag one's own posts, for instance.

This project will create a new type of tag -- the "bookmark tag". By applying a bookmark tag to an entry or asset, the user indicates that they'd like to save that asset for later perusal.

Bookmark tags should be freely creatable and editable by the user, so that the user can name and categorize their tags in any way they'd like. Individual cultures can then define a community-consensus folksonomy to allow them to find their preferred content.

Basic terminology

A "bookmark" is a specific bookmark item created by a user and this bookmark's metadata
A "bookmark tag" is a word or series of words applied to bookmarks for sorting them
A "bookmark bundle" is a collective of bookmark tags to sort these

Version 1

What follows is the required functionality for this feature in its version 1.0. This is by no means the functionality it will end up with, but the "least publishable functional unit", which will already be a lot of coding. Further plans for the feature are listed later.

* allow users to save bookmarks for on-site content: assign bookmark tags to entries and comments, both their own and from others, by using a link provided for every entry and comment or by filling out a form. These tags should be under the same constraints as usual tags (length, characters) and be input in a similar way (comma separated lists + list of existing ones to select from) to provide easy usage

* while the user may tag something with "style=light", "cutid=1" etc., the system canonicalize the link internally so we can see (for example) how many users have bookmarked a certain item, while retaining the original URL. That is to say, if a user bookmarks an entry using "style=mine", the user when clicking on their bookmark will always be returned to the page with the style=mine, unless they choose something differenty during the creation process, while internally we will also save the version without that argument

* the title of bookmark can be chosen freely by the user, and will not be restricted to post or comment title

* allow to set a certain bookmark to private/access/custom security, in which case no-one should see that the user bookmarked that item except the people in that group

* implement the ability to rename bookmarks and to rename and merge bookmark tags, just as regular tags

* when viewing a bookmark, there should be an indication as to how often an item (entry or comment) has been bookmarked by others and a link to a page where the user can see who has bookmarked this item and notes/tags the other users have given this item. To make coding less complicated, the total number of times the item has been bookmarked will be shown, only the public bookmarks will be displayed in details and a "X additional users have bookmarked this item" will be displayed at the bottom of the list to account for locked bookmarks

* allow the user to attach a note to the bookmark and decide whether the note should be private/public

* every user should have a page where others can view all their bookmarks (depending on security, of course), by tag or with sorting options (date saved, alphabetically, number of time item has
been bookmarked across the site)

* allow for bulk-editing of bookmarks -- an easy way to remove a specific tag from all bookmarks, delete the bookmarks altogether, etc.

* a page where the user can view recent public bookmarks from the users they are subscribed to and their notes for these bookmarks

Changes to the site:

Basically, this will create the following new things around the site:

* change entry pages to incorporate links for users to create bookmarks

* a bookmark management area where users can edit bookmarks, create bookmark tags

* a bookmark viewing area, where users can see and sort all of their own bookmarks and those from their subscriptions

* a detailed bookmark page with information on who had bookmarked this item, when they bookmarked it, what tags the bookmark was given and the note, as far as this information is marked as public

Future functionalities

The above list for version 1 is already quite a bit of coding and will take a while to do. There are many more ideas in my mind for that feature, though, and I won't have time to do them all, so a priority is to get version 1 set up so that others may also work on improvements and additions for the bookmarking system. Here is an unordered list of ideas that I have also noted down and I hope you like at least some of them.

* display how many times an entry/comment has been bookmarked on the entry page (might be moved to version 1)

* make it possible to bookmark content off-site (the database will be created with this in mind, so that implementing this won't be too difficult)

* make it possible to sort bookmark tags into bundles, where one bookmark tag can be in more than one bundle

* allow users to write a description for bookmark tags (to explain their use of this tag etc.)

* view recent public bookmarks on Dreamwidth, similar to latest posts

* allow global search for bookmarks according to tags

* convert existing memories to bookmarks

* show common tags on the URL detail page (aka, "other tags that are used for this post") to encourage tagging-system standardization

* see which of your entries have been publicly bookmarked by other users, be able to sort that by "last saved" and by "number of times saved"

* allow you to make entire bookmark tags locked or private ("don't show anyone that I have a bookmark tag of 'sex'")

* tresholds for tag search results ("only entries saved by 2/5/10/etc people")

* implement "network" bookmark view for paid users and finer viewing options for the viewing area ("view bookmarks from people I have given access to / mutal access with / etc.")

* display a tag cloud of the most popular tags used (by you / your circle / your network / site-wide).

* ability to set up automatic posting of bookmarks to the user's journal (once a day/once a week/etc).

* allow a user to send individual bookmarks to other people's inboxes ("links for you") with sufficient opt-out abilities (no-one, people I give access to, etc.), similar to the "share this" feature

* incorporate user feedback! :)

Questions to the user base

* how would you like to handle the security issues when it comes to bookmarking locked entries to be handled? So if someone posts an access-locked entry and a user wants to bookmark that, should only people with access to that entry be able to see the bookmark (this is not the case with memories right now)

* do you see any further security concerns in this spec so far?

* is there anything on the list of "Future functionalities" or anything that I haven't yet thought of that you think is needed for a version 1 functionality?

And of course any further ideas, suggestions or criticism are welcome. There has been no coding done yet on this.

[personal profile] nacbrie 2010-06-08 01:41 pm (UTC)(link)
So if someone posts an access-locked entry and a user wants to bookmark that, should only people with access to that entry be able to see the bookmark

That would be great, if only to save other users reading the bookmarks from "You do not have permission ..." errors.
cleverthylacine: a cute little thylacine (Default)

[personal profile] cleverthylacine 2010-06-08 05:59 pm (UTC)(link)
This, plus I'd rather not have people I don't trust seeing what someone else thinks my entries are about and making assumptions.