Forum OpenACS Development: User Categorization
What do we do with email? I guess it depends on how much you get. But more than a few of us that frequent this wonderful web community receive quite a few, and a good percentage are directly from this bboard. But what happens after we get the email? Besides reading it, or at least skimming, I, at least, move them to a special folder (uh, actually a filter does that). However not all messages are the same, and I usually want to remember some special message or thread. I know this at the time, but later I forget exactly, and the message is anyway stored with all other OACS messages. Then there is the fear of losing this jumble of email messages completely. Anyway, they are on the website, I guess I can find it again if I really need to. And here is the point.
Why can't the website maintain my favorite messages and threads? If I am really open, why can I not share my culled messages with the rest of the community? I would like to be able to arrange messages in my own categories, and in whatever order seems useful at the time. From an operational perspective, I should be able to click on a link in the email of the message to add this message/thread to my personal list. I should be able to visit my list occasionally and arrange or rearrange the list. Although email is absolutely wonderful in timely notification, most of us wish to remember a few key pieces of data, and somehow email clients are a little lacking in friendliness in this regard.
So these are just my thoughts, implementation should not be too hard.
My scenario works like this:
1. The user has to activate his bookmarks first...
2. He sets up different folders (categories) to his personal bookmarks tree.
3. When a bboard thread gets mailed to him, he would see an ordered list of links that represent his bookmark folders at the bottom of the email. Maybe right above the link to the thread and the unsubscribe link.
4. The user could now decide where to save this particular thread in his bookmarks. He would only have to press the right "folder link".
5. The users could additionally add some more internal and external links via the bookmarks user interface of the openacs site...
http://www.blink.it has this functionality and it's pretty useful. It is pretty easy to implement, too!!!
add to your favorites: http://domain/favorites/msg_id=3567
When clicking on it, one is presented with an html selection bar of currently user specified categories, a field for comments etc as I imagine is available from the share bookmarks module.
I've read about Phil G's bookmark module but haven't used it, so don't know the extent of changes needed, but this certainly seems promising.
I'm thinking that we might not want to limit ourselves to bboard messages. What if the user wants to add a certain album in the photo-album to his "favorites"? And how about that mp3 page from the mp3 jukebox module?
My thinking is that we want to make this "favorites" module (bookmark may be another good word, but there is a bookmark module already, we could extend it, but I haven't looked at it yet) available to every page of the site without having to modify all other modules.
We could do this by modifying the master default template for example, having it add a link to the bottom of the page.
bboard messages. In fact, every item in the CR should be
exposed to categorization.
I wonder, though, if it's a mistake to use folders as the
categorization mechanism when the OpenACS team is actively
working on developing a CR-wide categorization mechanism
(service contract?). Why not just change the scoping on the
categorization method to allow people to create their own trees?
That way, when categorization gets enhanced and extended,
your module reaps the benefits.
Each package, module or piece of the OACS would have its own page with links to the packages documentation, SDM page and download page. In addition, there would be a place where bookmarks to revelant threads in the bboards could be made. This would all be in the interest of providing a central location for users and developers to access information quickly.
The flow might work like this. A developer is interested in the categories module. He goes to developer.openacs.org and is directed to the categories page on the site. At that page, he RTFMs the docs on categories. Not finding his answer there, he goes to the bookmarks section and can view all the threads that have discussed the design, problems or other issues related to the categories module. Not finding his answer there, he posts a follow up question on one of the threads or starts a new thread on the bboards.
Does that make sense?
Does that make sense?
Yes, it does make sense, although it's somewhat orthogonal (and complimentary) to Tom's idea. In your case, you'd have a category tree that consists of the various OpenACS packages, service contracts, etc. It would be scoped, I suppose, for all users. In Tom's case, each user would have his/her own category tree. Each of these trees could be displayed in a portlet at the appropriate place in the site.
For the record, my example intended to reflect the positive aspects of David Kuczek's suggestion.
Yet, I foresee a problem with number 3 of Kuczek's scenario. I know some people like to categorize (with perhaps 100 items in a tree). A lengthy "ordered list of links" could create awkward messages (and increase load on the system with lots of message activity --not good for scalability). To get around this, I suggest creating 1 url in the message which then sends the user to a page for entry and customization of the url.
The "add a bookmark to this thread" feature described sounds pretty interesting, though that would be as much for bboard developers to work on as for me. Right now, I've got an XML-RPC interface to the OpenACS 3.X module "with the hood up"...it mostly works, but I put it on hold a while back intending to rewrite the whole thing into OpenACS 4 once we released.
I have to admit that I wasn't really thinking of links or urls, but of objects or items of content. So I think any object in the system should be a target. Maybe besides categorization, the user could apply templates or some kind of formatting to the content, or weave these content items with new original content. I'm not sure how that would work out, but it might be interesting: collage like.
And don't worry, I certainly didn't mean to imply that that's the only way to do it. In fact, I was mainly responding to a couple of the later messages that described using the bookmarks module. OTOH, remember that almost anything in OpenACS is, in effect, a URL, since that's how you access it (via the Web). So bookmarks could make sense in a way.
OTGH (we'll see how many Niven/Pournelle fans we've got here) ... the requirements don't map precisely onto bookmarks. Perhaps a totally separate module, with some similarities to bookmarks, better hooks to the CR, etc., is needed. I see a itch that someone might scratch here...*grin*
What I was thinking is that Objects are relatively well defined types. Usually they are grouped togeather in some kind of useful interface. Maybe someone wants to remember the content of that object, more than the specific interface, or produce their own interface to the object. I tend to write notes on 8 1/2 x 11 inch paper, and stacks of this pile up around my desk. Someone else is sure to use post-it notes. Now this idea is more complicated because we have different types of objects, but maybe this provides an opportunity for synthesis. A photo, a bookmark, a bboard posting. I don't want the entire thread, just the postings, but maybe some link could bring the user to the original (or multiple) places where this content is posted.
I think of a simple experiment I happened to try in college. Some industrious student had made poster boards for a lecture he was giving. I was not able to figure out what the topic was. These posters had abstract messages, questions. All I did was to thumb-tack one of these to one of those mobile poster thingies. What happened is that other students would wander by and see this quite out of place sign and they would start writing their own responses on the poster. Soon, responses to the responses would show up. Occasionally I would change the poster for a new one from the same lecture. Eventually I started my own nonsense posters. The point is that the responses can be quite amazing, and certainly are interesting. This is more like stream of thought, which might not fit into the regular discussion but could be interesting.
So I am thinking of a separate area that would allow users to orgainze material how they see fit, and to add commentary.
If categorization like this is going to be implemented on a public server, then I'd like to see the idea of popularity implemented -- show me popular links, concepts, objects, people, etc. For example, I can find out that DonB posts a lot, so maybe I'd like to "subscribe" to DonB, not just a thread or content object. (In reality, popularity is an n-dimensional concept, needing both machine-generated values (for initial seeding, for example), with human generated values (which over time, may be more useful)).
A shared bookmark manager module might evaluate all of the URIs posted by all contributors and post a list of popular bookmarks; evaluation of multiple categorization trees can be used as input to create a shared vocabulary for describing content that can be leveraged across many uses of the system, especially with the ability to explicitly create knowlege networks and attach them to category nodes as searchable metadata. This gets even more interesting with the integration of tools like WordNet and OpenCyc as pre-processors providing input for openFTS.
Finally, I urge a kind of stochastic processing that will bring less popular items to the top of the list for evaluation. One of the problems with popularity systems (e.g., Google PageRank, DirectHit) is that popular items tend to get more popular, while less popular items tend to get less popular.
how it relates to categories) at least once before, on this thread:
At the time we talked about a "general ratings module," although
a service contract is probably a better way of thinking about it.
BTW, the offer I made on that thread to help work out functional
specs still stands, if we can come to some informal consensus
online first regarding what we would like the damned thing to
I am currently using the daily digest from the OpenACS forums and something I am *really* missing is links to each posting in the emails. In addition to such a link we could also add a "bookmark this posting link" that would take the user to the bookmark-add page in the Bookmarks module where the posting can be filed in an appropriate folder with a description.
I have recently started using the Bookmarks/Postgres package for my own bookmarks. I have a slight fear that the bookmark tree may get very slow with large numbers of bookmarks. Another and related challenge is that the SQL statements used in the module (I will take part of the blame for this...) are very lengthy and complex and thus difficult to maintain. Still, I am hoping that a complete rewrite of the module will not be necessary and I am fixing bugs as I encounter them and hope that more people will start using the package.