Silva Metadata Infrastructure

============================= DRAFT VERSION ================================

  Meta::
  
    Valid for:  Silva 0.9.2+
    Author:     Jan-Wijbrand Kolman
    Email:      jw+infrae.com
    CVS:        $Revision: 1.3 $

  Introduction:

    Note: This documentation is not complete yet. See also the *.txt files
    in the SilvaMetadata Products directory.

    Silva 0.9.2 introduces a completely new, flexible metadata
    architecture. The metadata architecture allows for defining custom sets
    of metadata elements. Sets can be defined on a per object type basis.

    Individual metadata elements can be declared to be read- and writeable
    or read-only. Elements can have default values and can be set to be
    required and/or acquired (through the containment hierarchy).

  Standard Silva Metadata sets:

    silva-content and silva-extra set. silva-content set ir *required* for
    Silva to function properly!

  ZMI:

    * define set
    * define elements in set
    * initialize set (initialize catalog indexes for this set)
    *

  SMI:

    * tab_metadata shows elements for editable version and published
    version.
    * shows acquired metadata where appropiate
    *

  Python(script) examples:

    snippet::

      request = context.REQUEST
      ms = context.service_metadata
      model = request.model
      binding = ms.getMetadata(model)
      
      set_names = binding.getSetNames()
      for set_name in set_names:
          element_names = binding.getElementNames(set_name)
          for element_name in element_names:
               element_value = binding.get(set_name, element_name)
               print element_name, element_value

  Import / Export of set definitions:

  ToDo / Caveats:
    