Possible Components / More specific problem spaces
Getting Content In *
Allow users to get content into the application. The system should actively understand the content and be able to add some context (ex. auto-tagging and/or organizing based on file type -- iphoto puts pics into several categories automatically when new images are added). Users may be able to add their own context to the files (ex. tagging). The thinking about this space should include how users may utilize the content in multiple places in the application (ex. include a particular article in more than one site, attach an assignment to an announcement). Where should the content live? We need to also think about how this relates to file explorer view.
File Management Views *
a.k.a Mac Finder or Windows Explorer
Allow users to have several views on their files. Sometimes a hierarchical tree and folder structure will work best and others user will want to see the items spatially, while still others may want to see thumbnail previews of the files. Within these views we should allow users to "drag and drop" files around for organization (reorganizer component). Certain arrangements may need to be "snapshotted" for later use, or shared with others.
Users may want to establish rules or logical conditions (perhaps based on events or activity in other areas of the system) for access control.
Allow users to see the history of edits made to content, and, where appropriate, see "diffs" of particular version edits. There should also be some affordance for reverting a file to a particular version.
Tag Cloud *
Give users a way to browse their tags (their folksonomy) to find files, content, etc. in their site (perhaps across sites). The tag cloud should give users indication of how often tags have been used (ex. font size indicates relative frequency).
Rather than views described above is there a component that includes more robust functionality like search, add & delete files, etc?
A user might want to explicitly share a folder or files with a specified set of groups or individual users, deciding along the way whether these others should only be able to view the shared content, or also be allowed to edit it. A site containing these users shouldn't need to be a prerequisite.
Allow users to break up long lists of items into pages. They should be able to decide if they want paging and how many per page.
Sakai has page navigation now. The default for how many items to show on a page varies. How many makes sense depends on context, how many total items, what type of items, etc. The idea here is to make this navigator remember the users last setting (across sessions). That way they set if for what makes sense given the current situation and it is persistent. As things change for them they simply change the setting to meet current needs and again it's persistent until they need to change it again. Currently this is a "one size fits all" default and many users have to change it every time the visit a particular page.
Allow users to create their own folksonomy of files, content, etc. The component should be smart about remembering and suggesting previously used tags to help users build up their own folksonomy.
The value of tagging for users is in searching and browsing by tags later so this functionality would need to go hand and hand.
Description to come...
Allow users to attach files to other content. Files could come from user's personal computer, websites and apps, other sites and/or portlets.
Description to come...
Preview content as the user is creating it within the application.