A new Plone classification system (a Plip proposal)

Enzo Cesanelli enzo.cesanelli at gmail.com
Wed Oct 17 22:21:23 UTC 2007

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.

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

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.

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
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

- 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

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

2. Every vocabulary should be workflow and multilingual aware (see

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

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.
- 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 Cesanelli | information architect | enzo at noiza.com

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

More information about the Product-Developers mailing list