[Zope3-dev] RFC: Dublic core meta-data for content

Tim Hoffman timhoffman@cams.wa.gov.au
17 Jun 2002 10:30:45 +0800


Hi Jim

I have been thinking about the metadata problem for some time,
and have been extending it in CMF for a number of projects to date, that
we have undertaken.

I have come to the conclusion on the basis of my experience of modifying
CMF and DublinCore that we need a more general/generic method of
implementing Metadata. 

I say the for the following reasons.

1. In every project I have done to date I have to extend DublinCore,
however the existence and definition/use  of DefaultDublinCoreImpl is so
hardwired into everything in CMFDefault, that to make massive changes
also means you have to make changes to lot's of other classes - have a
look at any of the content types methods. We have to provide AGLS (West
Australian, Government Legislation mandates this), plus additional
metadata covering things like artwork categorisation etc,)

2. If I extend the DublinCore implementation with the use of a monkey
patch approach, then all sites/content on that Zope server get the new
metadata elements whether appropriate or not.

3. In our (is in mine ;-) goals for re-purposing content for new
contexts (think semantic web) we will want to add new metadata elements
to content objects over time, and not want to have write new code to add
the additional contextually grouped metadata elements.

So on that basis I wonder if we couldn't look at the concept of
introducing MetadataNamespaces. ie have a generalized framework for
specifying logically/semantically/contextually grouped meta data 
schemes  for sites within in a server, and have a default namespace that
points to the DublinCoreMetaData

Each metadata names space is in essence a named view (ie may be a
propertysheet)

I have roughly done this in Zope2 CMF using Formulator and
Propertysheets (I haven't got it all working yet as I still need
to support all of the legacy Metadata interfaces)

I have replaced portal_metadata with my own custom tool
which then contains a modified formulator instance for each metadata
name space. The default methods (for compatability to existing
portal_metadata methods) mapping to a DublinCore instance.

Then you can query the portal_metadata tool to find out what names space
exist, in addition I had planned to add the capability to add specific
metadata names space to a particular content type.

Each metadata namespace can have it's own validators (ie against the 
DublinCore or AGLS XML/DTD for one thing. 

Now how one would take this and make it fit to the Zope3 architecture
that I am not sure.  

Just my 2c worth

Regards

tim


On Sat, 2002-06-15 at 01:09, Jim Fulton wrote:
> See:
> 
> http://dev.zope.org/Wikis/DevSite/Projects/ComponentArchitecture/DublicCoreMetaDataForContent
> 
> Jim
> 
> --
> Jim Fulton           mailto:jim@zope.com       Python Powered!        
> CTO                  (888) 344-4332            http://www.python.org  
> Zope Corporation     http://www.zope.com       http://www.zope.org
> 
> 
> _______________________________________________
> Zope3-dev mailing list
> Zope3-dev@zope.org
> http://lists.zope.org/mailman/listinfo/zope3-dev