Sorry for cross posting and for the looong post (I tried to structure it like a plip). What follows is just a tentative to collect some ideas on the classification of contents in Plone with some proposals of mine. At the last Plone Conference in Naples and often on the Plone lists, I met many interested people about this issue.
DEFINITIONS Keywords/Labels/Tags are different ways to refer to single words or chunks of words (phrases) applied to contents. In Plone they are arranged in a flat structure for a whole Plone site, no trees or other distinctions are allowed out of the box. Standard Plone keywords are shared across all users in the DC:Subject metadata field. Web 2.0 applications brought more power to the end users (see Flickr, Delicious) so each user can tag any content as s/he wants. The sum of all the tags make a folksonomy (a bottom-up taxonomy made by ³folk²). Usually the result is viewed in a tag-cloud view. It¹s a very powerful and costless tool but it really works only with a huge amount of contents/users. Unfortunately social tagging (aka folksonomy) presents some important disadvantages like language issues (polisemy, homonymy, plurals, synonymy, ego-oriented) and user experiences issues (low findability and scalability, alphabetical criterion, semantic relationships are not visually supported). Faceted Classification (different from the clustering) is a bibliographic technique that has become very popular on the web in the last years. So each content is classified combining labels from different facets where each facet has a name and addresses a different conceptual dimension or feature type relevant to the collection. Facets can be flat or hierarchical. Ontologies with the meanings related to the Semantic Web (look at http://en.wikipedia.org/wiki/Ontology) MOTIVATION Plone lacks a content classification system able to satisfy recent modern information retrieval needs. The flat keywords mechanism is insufficient both for a user-centric tagging classification environment and, more, for a complex professional digital environment (made by "experts"). Many just released (or not yet) Plone products try to fill this gap in different ways. We can try to harmonize them in a unique classification system able to satisfy both the tagging story and the structured classification story letting the site manager have some options to choose in order to fit as more as possible the different single needs. PROPOSAL The main goal is to provide a complete overwrite of the classification part with a completely fresh new architecture able to satisfy the most use cases emerged in recent years. Obviously the Dublin Core Metadata Set has to be taken in consideration as usual. A true semantic classification of contents should coincide with the DC:subject, indeed. We can mix the tagging mechanism with a more structured one without loosing the user centric approach. On the general ³BACKEND² side (componentized in a site manager part and in an editor part): - A thesaurus seems to be a ³must have² if we want to manage synonyms or similar to reduce the linguistic issues. Look at PloneGlossary from Ingeniweb. An A-Z view (like in AZLinks product) should be appreciated to browse the whole thesaurus in alphabetical order. At the PloneConference I see the Giovanni Toffoli¹s talk about KMap project in which he cited a Plonesaurus product more to investigate. In this sense, PloneOntology seems to be a good candidate too, even if maybe is overkill. - On the tagging story side we have many options to consider. Lovely.tagging or other tagging tools (used or going to be used in Plone4Artists bundle) are promising. Look at the Jon Baldivieso¹s recent post (http://www.nabble.com/Product-for-simple-content-tagging-tf4596065s6741.htm l#a13121772) for a panoramic view on it. - On the more classical tree-classification side we have ATVocabularyManager, PortalTaxonomy and PloneOntology. First two products need integration at AT level to be used. PloneOntology, instead, is a standalone classification system and can be applied on top of any content type without touch its code. - The last one is PloneFacetedClassification, an add-on (not yet released) commissioned by my company (Noiza) and developed with the help of Abstract and Redomino guys to implement a very basic faceted classification on top of any content type in Plone. It has some issues but, basically, works. On the ³FRONTEND² side (what an anonymous user can view): - Many products provide a tagcloud view (TagCloud, Tag Cloud Explorer, Vaporisation) with different approaches. - Faceted browsing: a very low support is offered in Portal Taxonomy. Always in our PloneFacetedClassification we integrated the powerful MIT¹s Exhibit framework (http://simile.mit.edu/exhibit/) but it definitely needs more love. - Relations¹ Graphs browsing (PloneOntology, Bersabea ) is a third way... At the present time every of these products is hard to integrate each other and, above all, it means that Plone hasn¹t yet an out of the box consistent and modern classification system. Based on what I saw around, my idea is to create, in the meanwhile, a pyhton package (i.e. plone.classification) as add-on product that overwrites the standard ³classification² tab. Eventually later, it could substitute completely the related core part in Plone. I¹m not a developer (so sorry for any kinf of error I did) and I discovered Zope3 and Plone3 magic only recently (beginning to understand their potentialities) during the last Plone Conference. So this is just a proof of concept or, maybe, less. What I can do is providing some wireframes to explain how this new classification system could/should work by an ³interaction design² point of view. My wish list for this new classification system includes: 1. Integrate and manage folksonomies (merged per-user tags) and top-down classification schemas at the same time as suggested by FaceTag project (http://www.facetag.org/) to enrich the user experience: the site manager can define "n" thesaurus (flat or hierarchical) with its own multilevels vocabulary and let or not the end user to add new keywords. (See ATVocabularyManager) 2. Every vocabulary should be workflow and multilingual aware (see PloneOntology) 3. Possibility to injects local classification scheme for different sections/folders (like CMFPlacefulWorkflow does) and for different content types too. 4. Make a folder a ³Browsing object² just to provide a view of the classification scheme (like Plone4Artists, GedPaid or other Zope3 style products do). Investigate what about it if we want the root site browsable. 5. A very minimal, clean and smart end-user interface to tag contents (see LiveSearch widget) showing/suggesting at the same time broad terms, narrow terms and synonyms to get the right semantic/linguistic context. Hey, I repeat, I¹m not a developer, but on the development side I guess: - Zope3 CA should be strongly used. - Relationships between vocabularies and keywords should benefit from the new amazing plone.relations by Alec Mitchell. - Semantic Web technologies (RDF, OWL, TopicMaps) could be a big big plus (Octapy3!) SCENARIOS With a such classification system many scenarios can be accomplished: - Knowledge base management - Document/content management - Ecommerce (e-shops) with many categories/objects/attributes to sell (i.e. Compusa) - Newspaper archives - Community content generated portals - Social network sites - Whatever?! Just to say that it would be the next ³killer-app² within Plone :) These are my scattered ideas I wanted to share with you for a long time. Now, before going on, I'd like to listen to you, members and developers, what think about it. It would be wonderful to organize very soon a round table or even better a sprint on it. My best regards to you, Enzo -- Enzo Cesanelli | information architect | [EMAIL PROTECTED] Noiza srl | http://www.noiza.com | Via San Nicolò 34- 34121 Trieste - Italy Tel. +39 040 3481382 | Fax +39 040 3475734 | Cell +39 348 7014587 _______________________________________________ Product-Developers mailing list Product-Developers@lists.plone.org http://lists.plone.org/mailman/listinfo/product-developers