[Zope3-dev] annotations/dc and component definitions

Garrett Smith garrett@mojave-corp.com
Thu, 24 Apr 2003 10:13:57 -0500


Steve Alexander wrote:

> Garrett Smith wrote:=20
>> Should an interface omit a property (e.g. title,
>> description, etc.) under the assumption that it will be handled via
>> "metadata"?=20
=20
> Yes, if it is metadata.
> No, if it is essential to the object.
> For a book, 'title' is essential to the object.
> I would expect a book's 'title' to be the same as its DC title.
> One way to do this to to make Book implement one of the Dublin Core
> interfaces. This is not as easy as it should be. We need to work on
> making this easier.=20
>=20
> You could help by shepherding a proposal for making this kind of thing
> easier. Collecting requirements, such as the ones you list in this
> email, is a good start. Perhaps the authors of the NewsSite product
> have things to contribute too?

Will do :-) I assume by this you mean some sort of proposal? Is that the
mechanism used to flesh out this sort of thing?

> I think you are confusing the mechanism "annotations" with the
> requirement to have Dublin Core metadata.

I am indeed. I think the confusion stems from the fact that implementing
IAttributeAnnotatable enables metadata for content. Without tracing down
the linkages, this seems like a bit of magic.

>> - What happens when component properties and annotations overlap or
>> collide? (I see collision being when a metadata value "is the same
>> as" a component property or when a metadata value "is a function of"
>> one or more component properties.)
>=20
> I'd like to see a proposal that clearly lists the use-cases for this
> (I'm sure there are many compelling ones), and (eventually) spells out
> how to make this straightforward.

Lest I create undue noise in the Wiki, I want to make sure I'm on the
right track...

Issues:

- What are the typical use cases for metadata within Zope 3? E.g.
searching, categorization, table columns, etc. (Fleshing this out will
highlight the role metadata is intended to play in Zope 3 -- from what I
can see, it appears to play a primary role.)

- How are metadata values determined? There seems to be two options: by
the object or by something external to the object. Perhaps this is
better described as metatada ownership.

- How are metadata implemented? This could be nearly anything given the
component arch, but what are the likely scenarios and under what
circumstances would they be used?

  -- Garrett