[Zope3-dev] Re: Better access to APIs in paths (was Re:needingviewsclues
- template/title troubles)
Shane Hathaway
shane@zope.com
Tue, 25 Feb 2003 23:36:36 -0500
On 02/25/2003 08:48 PM, Tim Hoffman wrote:
> I just love where you are going with this. I have wanted/needed
> a clear concise way of representing multiple names spaces
> specifically for metadata (DC, AGLS etc ..) for quite some time in Zope
Yes! I haven't found a way to articulate this until now.
Even more than accessing APIs, I want to access metadata namespaces
through this syntax. Tim wants to display some AGLS info about objects.
It should be possible to use the syntax proposed to display this
information. No "API" concept is involved here. Tim isn't using an
"API", he's just reading metadata.
This is the first time I've heard of AGLS. Apparently it's an
Australian metadata standard designed to make government services more
accessible to the public. It's one of *thousands* of metadata standards
that are being published now. There's no reason people should be
required to configure anything or write Python code to store and display
information from many of these emerging metadata schemas. They are too
simple for that.
So what I'm proposing is not limited to programming APIs. To me, it was
a happy accident that the syntax I proposed seemed useful for accessing
Zope APIs. What's more important to me is making Zope play well in the
world of metadata.
Metadata is a buzzword, I know, but I think it's a part of the evolution
of software. Users have always been constrained to entering data based
on a fixed schema that slowly falls out of touch with actual
requirements. The metadata "movement" is an attempt to break out of
rigid schemas in all kinds of software.
This is what I had in mind when proposing the syntax. So I was
surprised when Jim wanted to take explicit namespaces out. Without
explicit namespaces in templates, you can't use this syntax to access
custom metadata without configuring something external to the template.
The template can't specify what metadata it relies on--it has to hope
that the particular metadata schema you want is available through the
environment.
For APIs, we can mandate that people don't remove methods from their
APIs or change method signatures. We can successfully maintain that
requirement because of the limited scope of Zope. But we have
absolutely no control over metadata schemas, since nearly all of them
have no current association with Zope. That's why explicit namespaces
are so important.
So if we don't allow explicit namespaces, the proposed syntax will be
good enough for accessing APIs, but not quite right for accessing
arbitrary metadata. I can live with that, but that's just not what I
intended.
Shane