Hi Roger & Renato, I somehow wasn't subscribed to the list properly, so I nearly repeated all of Renatos comments on the wiki without being aware of this mail ...
I think we said earlier that all parameters in views should be optional by nature - this is also how the pywrapper implements it. Does it make sense for any view to have mandatory parameters in filters? If a parameter is not being used in the actual view call, then this part of the filter should be ignored. Otherwise it would evaluate to false and therefore no AND combinations of parameters would be possible. But if we have a view exposing only one parameter, lets say the objectID, and this one is not given - that also doesnt make too much sense. So this could be a case where a parameter is required.
From the formal aspect I support Renatos idea of having another flag "optional" or "required" to indicate this. We could also use an attribute "use='required'" as in attribute definitions in xml schema. By default I think all parameters should be optional.
Most of the changes are included now in the current schema proposal, but views are still a separate category in capabilities. I dont mind to change this the way renato showed below.
One other issue to discuss is importing/including directives in views and schemas. Would it be of great value to have includes in views?
If so, would we need include directives on the base of the protocol: <include href="dwc_base.xml"> or should we define xml processing instructions like this: <?include href="dwc_base.xml" ?> If we want to be able to do includes at any place in a document, I think we have to go for PIs. Just something to think about if you are bored.
But my main concern is still the IndexingElementExplosion: http://ww3.bgbm.org/protocolwiki/IndexingElementExplosion I hope to have some new ideas about the explosion in my next mail.
Thanks, Markus
---------------------------------------- Hi Roger,
No need to be nervous, tapirs are friendly animals... ;-)
I really like the idea of TapirLite. Originally the capibilities response had a specific section to indicate the supported operations. I think we could bring it back, making ping, metadata, and capabilities the only mandatory operations, as suggested. For consistency, perhaps we could make the accepted views subelements of the corresponding operation element. And since dynamic views can actually be represented by the functionality of the search operation, they would become optional.
So for TapirLite implementations, that section could look like:
<operations> <ping/> <metadata/> <capabilities/> <view> <view identifier="http://tdwg.org/tapir/views/a" alias="a"/> <view identifier="http://tdwg.org/tapir/views/b" alias="b"/> </view> </operations>
I also like the idea of only using view ids: GUIDs redirecting to the respective xml definitions. The alias would be the view name used in URLs.
About filtering, I think it's already possible to have an empty section "operators" in the capabilities response. And when a TapirLite provider says it understands a particular view, even if that view contains an XML-encoded filter the provider could hard code the local translation for that filter and not necessarily be able to parse generic filters.
Regarding the new "id-defined" operator, I was thinking if there's another way to achieve the same results. Perhaps by creating an additional attribute in the <parameter> element called "optional". "Optional" could also be optional, and when not specified the parameter would be considered mandatory. An explicit optional="true" combined with the inexistence of the parameter could have the effect of telling the parser to ignore that condition. Just another idea...
Best Regards, -- Renato
On 20 Oct 2005 at 11:41, Roger Hyam wrote:
Hi Everyone,
I am nervous at being the first to post to this most esteemed list but here goes.
I have just added two pages to the wiki concerning minor changes that could be made to the protocol to make it easier to implement 'Lite' versions of Tapir providers.
http://ww3.bgbm.org/protocolwiki/TapirLite http://ww3.bgbm.org/protocolwiki/SimpleFiltering
Please read and add your support or reservations to the wiki or discuss it here.
All the best,
Roger