On 30/08/2012, at 11:22 AM, Dylan Jay wrote:
On 30/08/2012, at 1:09 AM, Malthe Borch wrote:
Hello,
We're about to develop a new package that brings support for
taxonomies to Plone with Dexterity-based content:
Here's a brief overview:
1. The taxonomy will be tree-structured.
2. There are two kinds of nodes: root nodes (which map to
vocabularies) and terms (which can contain other terms or even root
nodes).
3. Both types of nodes are Dexterity-objects.
4. Terms can be restricted to a set of FTIs. For example, a term (and
its children) might apply only to documents².
5. There's a javascript snippet that transforms the default selection
widget into an option tree – based on the title format³.
Obviously, Plone's "sharing" tab will work just fine and because
we're
already using the catalog to determine which terms to show for a
given
context, this will also double as a permissions filter.
The reason I'm writing this post is both so as to serve as a roadmap,
but also to get feedback or learn about any existing products.
I wrote about existing options recently http://djay.posterous.com/facets-taxonomies-in-plone
. In particular I'd like to add taxonomy support to
collective.facets (ie the ability to classify any content item using
hierarchical tags not just flat tags). For example using http://pypi.python.org/pypi/redomino.advancedkeyword
with collective.facets.
There are also been several "boil the earth" attempts to get
together and come up with something
e.g
http://www.coactivate.org/projects/ploneclassification/project-home
http://www.coactivate.org/projects/plone-taxonomy/timeline
I think part of the issue with taxonomies is the same word gets used
to mean different things in the CMS world. Drupal in particular has
"abused" it to mean not just classifying something with a
hierarchical tags, but creating a navigation structure based on
those hierarchical tags. It's not clear to me if you are suggesting
ways to tag content or ways to use tags in content to build
navigation or something else? It's not clear to me your use case, so
I think it might help to write this out more fully.
I really want to help get this sorted however so that we have one
solution that is very flexible instead of all these partial
implementations. However I think starting from small steps that
integrate well with how we currently do things in plone is the best
way to get there. Hence why collective.facets is very minimal and
only deals with adding classification to existing content.
I think sprinting on this at conference would be a great idea.
BTW, here is where my thinking is at with regard to creating
navigation out of hierarchical tags.
The user creates their taxonomies using an approach like http://pypi.python.org/pypi/redomino.advancedkeyword
, ie by editing content. Or perhaps with more fixed vocabularies in
the control panel. But not by creating content objects.
Instead what they can do is create "virtual folder" folder structures
by linking a tag hierarchy to a folder. The contents of that folder
then not only includes real content but appears to have folders based
on the parent tags of the linked vocabulary. Think of this as a
collection that has virtual sub-collections. To make all this work,
changes would need to made to the navigation portlet such that child
nodes can appear that aren't indexed content. Perhaps some api where
the navigation portlet either asks the current context what the child
nodes are, or else falls back to using the catalog. This could fit in
really nicely with the plans to offload navigation from the catalog.
Does any of that make sense?
Notes:
1) Dexterity's default container type is based on b-trees; this might
result in a substantial oid-overhead.
2) Practically, there will be a keyword index that allows the
taxonomy
widget to quickly look up terms that are valid for its context.
3) Typically, the vocabulary term titles will be formatted as "<term>
» <term> » <term>"; it's easy to provide a heuristic that matches on
values from a taxonomy.
Thanks!
--
Au revoir, et tous mes voeux pour un avenir plein de succès et de
bonheur ––
Malthe Borch
[email protected]
_______________________________________________
Product-Developers mailing list
[email protected]
https://lists.plone.org/mailman/listinfo/plone-product-developers
_______________________________________________
Product-Developers mailing list
[email protected]
https://lists.plone.org/mailman/listinfo/plone-product-developers