Hi,
I'm writting you because we already have developed a meta-data system ontop of the openacs datamodel. It is already being used several larger projects in the Norway and we consider it well tested on Oracle. It is only the database model that will be of interest for OpenACS, the application layer is developed in Java.
I think our implementation has a lot of similarties with work done by Collaboraid (http://www.collaboraid.biz/developer/metadata-spec). We are willing to share existing datamodel, documentation and PL/SQL scripts if the community want to use it. Please contact me for more information.
I'll give you a short description of how db-model works:
The template level is related to an acs_object_type, so that each object type can have its predefined set of relevant item properties.
ItemProperty
General metadata attributes with a value type that can be applied to object types. The ItemProperty can be of the datatypes String, Boolean, Number, Date, OptionValue and MultipleValue.
ItemPropertyText
The name of the item property in a specific language.
ItemPropertyValue
Range of values for item properties.
ItemPropertyValueText
Language dependent text for each item property value.
The instance level is related to an acs_object instance.
ItemValue
Value for an item property on an object for specific language.
As you will se we have decided to not make ItemProperty an object due to speed issues.
We have also developed a templateing mechanism so that it's possible to make a template from an object and copy it to another.
Bjørn.