[Zope-CMF] Re: [dev] Dublin Core Creator(s): a small proposal

Tres Seaver tseaver at zope.com
Tue Dec 16 10:03:37 EST 2003

On Mon, 2003-12-15 at 18:13, Yuppie wrote:
> Hi!
> Tres Seaver wrote:
> > On Mon, 2003-12-15 at 16:42, Yuppie wrote:
> >>Listing more than one creator in a Creator element violates the 
> >>standard. You are right that 'Creators' isn't a Dublin Core element, but 
> >>the proposed method represents an ordered list of 'Creator' elements.
> > 
> > 
> > Strictly speaking, *any* DC element is repeatable.
> Yes. But the CMF DublinCore interface doesn't define all elements as 
> repeatable.
> > Let's stick with the
> > pattern used by the "*Date" elements:  reserve the "initial caps" name
> > for the string version, and use a more natural method name for the one
> > which delivers a more natural representation.  E.g., call the new method
> > 'creators';  have the 'Creator' method return the
> > equivalent of '"; ".join( self.creators() )'.
> created() is the DateTime representation of CreationDate(). And 
> CreationDate() is a Dublin Core Date element.
> You propose defining creators() as the list representation of Creator(). 
> Creator() would be a string representation of a sequence of Dublin Core 
> Creator elements. That doesn't convince me.
> If we reserve the "initial caps" names for string versions
> - Subject() and Contributors() violate this rule
> - this is no reason for using Creator() instead of Creators()
> It might make sense to reserve "initial caps" names for DC elements.
> In this case only Contributors() violates the rule. Sequences of 
> elements could be called listContributors() and listCreators().
> Regarding backwards compatibility your proposal might be useful in cases 
> where the semicolon separated string can replace the old string. But it 
> breaks e.g. code where the Creator id is converted to a full name.
> If we use a new method name for the sequence (represented as string or 
> tuple), people have time to update their code.
> Would you like this more than my original proposal:
> listCreators() returns a sequence of Dublin Core Creator elements.
> Creators() returns a string "; ".join( self.listCreators() )
> Creator() returns the old value and is deprecated

I don't like the notion of deprecating the DCMI-supplied name.  I
wouldn't mind having it be just an alias for 'Creators', if that name
works better.

> The problem is that Contributors() works different. We could add an 
> alias listContributors(), but if Contributors() returns a string instead 
> of a tuple that breaks backwards compatibility.
> There might be other solutions, but I'd really like to have consistent 
> patterns without changing all existing method names.

I don't mind rationalizing CMF-internal names, but I think we should
continue to publish the DCMI-originated ones.

Tres Seaver                                tseaver at zope.com
Zope Corporation      "Zope Dealers"       http://www.zope.com

More information about the Zope-CMF mailing list