<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Hi Markus,<br>
<br>
The original motivations behind TapirLite was a reaction to the custom
response model (which seemed very difficult to implement) and the
perceived need for a simple web service like system that could be
implemented in a simple way on top of complex 'legacy' systems. The
fact that the custom response models are now formally on more of an
experimental footing has removed 50% of the motivation but the simple
service motivation remains.<br>
<br>
You are correct in that TapirLite isn't really Tapir at all. It IS just
a GET based web service. The kind of thing that full Tapir
implementations would have no problem in imitating. <br>
<br>
Currently (well some of the time) I am trying to figure out a simple
API for taxonomic data source that will enable people like Donald to
crawl them in something of a meaningful way.&nbsp; I can't assume that data
providers will be happy to install (or write) a full Tapir
implementation (what if you are in a .Net only environment etc). They
have their own agendas and the simpler the system they have to put in
place the more likely they are to do it. My hope was to keep them
within the Tapir fold.<br>
<br>
So options are:<br>
<ol>
  <li>Define the API in terms of simple http calls. Data providers can
either write their own script or they can get a full Tapir provider to
imitate the taxonomic API. Advantage is it might actually be quick and
easy both to define and implement. Disadvantage is it doesn't integrate
with other Tapir providers in the long run - no metadata or
capabilities responses.<br>
  </li>
  <li>Define the API in terms of templated Tapir calls and insure that
any script that is written makes the data provider look like a very
limited Tapir provider (the TapirLite approach). Advantage is that it
provides consistent metadata and other calls in line with other Tapir
providers. Disadvantage is that it actually adds complexity to the
Tapir protocol by having too many things optional and adds complexity
to the custom scripts.<br>
  </li>
  <li>Use another technology altogether such as SOAP or XML-RPC to
expose the API. Advantage is that organisation and individuals involved
are familiar with the technologies, easier to hire and outsource etc (VisualStudio
doesn't yet provide a Tapir integration wizard!). Disadvantage is that
it doesn't integrate with Tapir.<br>
  </li>
</ol>
As I write this all three approaches look equally attractive so I am
not advocating anything just rolling ideas around. I'd be grateful for
any thoughts that help clarify this. If it would mean getting Tapir to
version 1 quicker if option 2 above was dropped then it might be a good
strategy. I assume Tapir's primary function is to unite DiGIR and
BioCASE and the notion of TapirLite probably should not get in the way
of this.<br>
<br>
Roger<br>
<br>
<br>
D&ouml;ring, Markus wrote:
<blockquote
 cite="mid0A231B952796AB48A31A49AC18A76E41424A15@bgbm23.bgbm.fu-berlin.de"
 type="cite">
  <pre wrap="">I would like to get into the lite idea a bit more in detail.
Lets start with the list of expected "levels" of tapir compliant services:


1- a full TAPIR service incl an experimental dynamic custom output model

2- a full TAPIR service restricted to certain output models identfied via a list of URLs pointing to the output model definition documents

3- a TAPIR Lite that only wants to accept certain parameters for fixed queries. The main idea as I can see is to have a limited list (maybe only 1?) of query templates here (reminder: QTs are filters &amp; a URL reference to an output model) that define the accepted parameters. I assume this service also only works via http GET and not through xml messaging.


The difference between level 1 &amp; 2 is quite small (not necessarily for implementations though). The list of accepted output models simply go into the capabilities of a provider and a client can easily identfy if it is able to communicate with a datasource service.

A level 3 TAPIR lite service is quite different from the others. Essentially its a regular GET based webservice that can be described by a WSDL, cause no serialised filter is allowed and the response model is fixed. If we really want to define these kind of simple services with the same protocol schema, what should be its "capabilities"?
 - only http GET invocation, no xml messaging
 - the TAPIR envelope should be supported for responses
 - ping, metadata, capabilites should work
 - no inventory operation
 - no (complex) filters or variables, only parameters

If only parameters are accepted, then this is not a real search. In the old protocol this was a distinct "view" operation. What we want here is exactly this again. A service only available via http get and parameters. A list of accepted query templates  would be enough and no operators, variables and alike need to be supported.


The current definition of capabilities does only allow to specify http-GET only services or the accepted list of query templates by the way!


A new adhoc idea: what about defining these 3 levels and allowing no other intermediate compliance? Then we can reduce the capabilities a lot, a lot of burden would be removed from clients and we would get more interoperability? Just a quick thought when looking at the above.

We could make it as simple as this:

&lt;FullService accept_custom_models="false"&gt;
  &lt;supportedModels&gt;
    &lt;model location="URI" namespace=""&gt;
     ...
  &lt;/supportedModels&gt;
  &lt;concepts&gt;
    &lt;concept id="..." /&gt;
     ...
  &lt;/concepts&gt;
&lt;/FullService&gt;

or 

&lt;LiteService&gt;
  &lt;supportedQueryTemplates&gt;
    &lt;template location="URI"&gt;
      &lt;parameter name="" /&gt;
       ...
    &lt;/template&gt;
     ...
  &lt;/supportedQueryTemplates&gt;
&lt;/LiteService&gt;


What do you think?
I am really a bit afraid of ending up with different services that implement only bits of the specification. We are about to move all burden towards the clients which for my feeling should be easy to create as a researcher with just simple programming knowledge.


Sorry to raise this issue again and especially for this drastic new suggestion.
It came up while writing this mail, so dont take it for a well thought idea. I just want to think a bit more about the problems involved in having variable and mutating tapir services.

Markus




-----Urspr&uuml;ngliche Nachricht-----
Von: Roger Hyam [<a class="moz-txt-link-freetext" href="mailto:roger@tdwg.org">mailto:roger@tdwg.org</a>] 
Gesendet: Freitag, 18. November 2005 10:32
An: Donald Hobern
Cc: D&ouml;ring, Markus; <a class="moz-txt-link-abbreviated" href="mailto:tdwg-tapir@lists.tdwg.org">tdwg-tapir@lists.tdwg.org</a>
Betreff: Re: [tdwg-tapir] ideas &amp; TapirLite

As TapirLite champion I do have a problem with having to implement all the operators. I just want to be pretty and dumb! I don't have a problem with the concept of a named subset protocol i.e. Tapir (the real thing) and TapirLite (the not so bright second cousin).

Are there some use cases somewhere listing what Tapir clients are expected to call or some statistical break down of what kinds of queries are run against existing BioCASE and DiGIR providers?

Roger

Donald Hobern wrote:
  </pre>
  <blockquote type="cite">
    <pre wrap="">Markus,

Doesn't "all operations" imply that the provider must implement 
generic search operations?  Isn't a large part of the reason for TAPIR 
Lite the need to support "databases" that cannot be mapped using the 
standard RDBMS mapping and which are just trying to emulate common views?

I would say that these should be supported but that each TDWG content 
subgroup needs to define a set of (web service) interfaces that must 
be supported by any compliant provider.  If they can handle this set 
of views, they may appear as TAPIR providers.

Or did I miss something?

Donald
 
---------------------------------------------------------------
Donald Hobern (<a class="moz-txt-link-abbreviated" href="mailto:dhobern@gbif.org">dhobern@gbif.org</a>)
Programme Officer for Data Access and Database Interoperability Global 
Biodiversity Information Facility Secretariat Universitetsparken 15, 
DK-2100 Copenhagen, Denmark
Tel: +45-35321483   Mobile: +45-28751483   Fax: +45-35321480
---------------------------------------------------------------


-----Original Message-----
From: <a class="moz-txt-link-abbreviated" href="mailto:tdwg-tapir-bounces@lists.tdwg.org">tdwg-tapir-bounces@lists.tdwg.org</a> 
[<a class="moz-txt-link-freetext" href="mailto:tdwg-tapir-bounces@lists.tdwg.org">mailto:tdwg-tapir-bounces@lists.tdwg.org</a>] On Behalf Of "D&ouml;ring, Markus"
Sent: 17 November 2005 16:25
To: <a class="moz-txt-link-abbreviated" href="mailto:tdwg-tapir@lists.tdwg.org">tdwg-tapir@lists.tdwg.org</a>
Subject: [tdwg-tapir] ideas &amp; TapirLite

Hi,
talking to Anton today we were wondering if it makes sense to allow a 
tapir client to embed its own request-id into the tapir headers for 
later identification of asynchronous and distributed messages. 
Currently we would need to identify a message by its sendtime (vague) and source.

Does this make sense? Does anyone know how other people deal with this 
problem?

-----------

The other thoughts were about TapirLite.
We both think its a very bad idea to push all responsibility to the 
client by allowing any TAPIR service to be very minimalistic. If a 
client should be able to contact services that have different 
operators, operations and concepts, then I dont think we will get anything interoperable.

I still prefer that these things must exist in the most basic TAPIR service.
Otherwise we should call it different - maybe even TAPIR Lite as a 
valid
subset:
- all operations
- all logical operators
- the main COPs (&lt;=&gt; like)

Cconcepts and response models can be optional without much problems I think.
What do you think? should we sacrifice all this to have few clients 
but many providers?

BTW, I think we didnt specify anywhere in capabilities if GET or XML 
Messaging is supported. So the idea is to always have both for all 
services, right?


Markus


_______________________________________________
tdwg-tapir mailing list
<a class="moz-txt-link-abbreviated" href="mailto:tdwg-tapir@lists.tdwg.org">tdwg-tapir@lists.tdwg.org</a>
<a class="moz-txt-link-freetext" href="http://lists.tdwg.org/mailman/listinfo/tdwg-tapir_lists.tdwg.org">http://lists.tdwg.org/mailman/listinfo/tdwg-tapir_lists.tdwg.org</a>



_______________________________________________
tdwg-tapir mailing list
<a class="moz-txt-link-abbreviated" href="mailto:tdwg-tapir@lists.tdwg.org">tdwg-tapir@lists.tdwg.org</a>
<a class="moz-txt-link-freetext" href="http://lists.tdwg.org/mailman/listinfo/tdwg-tapir_lists.tdwg.org">http://lists.tdwg.org/mailman/listinfo/tdwg-tapir_lists.tdwg.org</a>

  
    </pre>
  </blockquote>
  <pre wrap=""><!---->
  </pre>
</blockquote>
<br>
<pre class="moz-signature" cols="72">-- 

-------------------------------------
 Roger Hyam
 Technical Architect
 Taxonomic Databases Working Group
-------------------------------------
 <a class="moz-txt-link-freetext" href="http://www.tdwg.org">http://www.tdwg.org</a>
 <a class="moz-txt-link-abbreviated" href="mailto:roger@tdwg.org">roger@tdwg.org</a>
 +44 1578 722782
-------------------------------------
</pre>
</body>
</html>