<HTML dir=ltr><HEAD><TITLE>Re: [Tdwg-guid] Throttling searches [ Scanned for viruses ]</TITLE>
<META http-equiv=Content-Type content="text/html; charset=unicode">
<META content="MSHTML 6.00.2900.2912" name=GENERATOR><BASE href=https://mbgowa01.mobot.org/exchange/Chuck.Miller/Drafts/RE:%20%5BTdwg-guid%5D%20Throttling%20searches%20%5B%20Scanned%20for%20viruses%20%5D.EML/1_text.htm></HEAD>
<BODY>
<DIV id=idOWAReplyText13565 dir=ltr>
<DIV dir=ltr><FONT face=Arial color=#000000 size=2>This is probably a dumb question and exposes my ignorance, but what if the originating query is actually "Get all LSIDs where Family = Orchidaceae". That seems the more likely scenario to me rather than get one LSID. And that's the one that needs a throttle. </FONT></DIV>
<DIV dir=ltr><FONT face=Arial color=#000000 size=2></FONT> </DIV>
<DIV dir=ltr><FONT face=Arial color=#000000 size=2>Chuck </FONT></DIV></DIV>
<DIV dir=ltr><BR>
<HR tabIndex=-1>
<FONT face=Tahoma size=2><B>From:</B> Sally Hinchcliffe [mailto:S.Hinchcliffe@kew.org]<BR><B>Sent:</B> Mon 6/19/2006 7:01 AM<BR><B>To:</B> roger@tdwg.org<BR><B>Cc:</B> tdwg-guid@mailman.nhm.ku.edu<BR><B>Subject:</B> Re: [Tdwg-guid] Throttling searches [ Scanned for viruses ]<BR></FONT><BR></DIV>
<DIV>
<P><FONT size=2>Hi Roger</FONT> <BR><FONT size=2>Thanks for this ... I _think_ I understand it but Nicky is on leave </FONT><BR><FONT size=2>this week so I won't know if I do or not till after she returns</FONT> </P>
<P><FONT size=2>The system doesn't have to be completely villain proof, just slow </FONT><BR><FONT size=2>down most of the villains so everyone else can get a look in</FONT> <BR><FONT size=2>Sally</FONT> </P>
<P><FONT size=2>> </FONT><BR><FONT size=2>> You don't! The LSID resolves to the binding to the getMetadata() method </FONT><BR><FONT size=2>> - which is a plain old fashioned URL. At this point the LSID authority </FONT><BR><FONT size=2>> has done its duty and we are just on a plain HTTP GET call so you can do </FONT><BR><FONT size=2>> whatever you can do with any regular HTTP GET. You could stipulate </FONT><BR><FONT size=2>> another header field or (more simply) give priority service for those </FONT><BR><FONT size=2>> who append a valid user id to the URL (&user_id=12345)</FONT> <BR><FONT size=2>> </FONT><BR><FONT size=2>> So there is no throttle on resolving the LSID to the getMetadata binding </FONT><BR><FONT size=2>> (which is cheap) but there is a throttle on the actual call to get the </FONT><BR><FONT size=2>> metadata method. Really you need to do this because bad people may be </FONT><BR><FONT size=2>> able to tell from the URL how to scrape the source and bypass the LSID </FONT><BR><FONT size=2>> resolver after the first call anyhow. This is especially true if the URL </FONT><BR><FONT size=2>> contains the IPNI record ID which is likely.</FONT> <BR><FONT size=2>> </FONT><BR><FONT size=2>> Here is an example using Rod's tester.</FONT> <BR><FONT size=2>> </FONT><BR><FONT size=2>> <A href="http://linnaeus.zoology.gla.ac.uk/~rpage/lsid/tester/?q=urn:lsid:ubio.org:namebank:11815">http://linnaeus.zoology.gla.ac.uk/~rpage/lsid/tester/?q=urn:lsid:ubio.org:namebank:11815</A></FONT> <BR><FONT size=2>> </FONT><BR><FONT size=2>> The getMetadata() method for this LSID:</FONT> <BR><FONT size=2>> </FONT><BR><FONT size=2>> urn:lsid:ubio.org:namebank:11815</FONT> <BR><FONT size=2>> </FONT><BR><FONT size=2>> Is bound to this URL:</FONT> <BR><FONT size=2>> </FONT><BR><FONT size=2>> <A href="http://names.ubio.org/authority/metadata.php?lsid=urn:lsid:ubio.org:namebank:11815">http://names.ubio.org/authority/metadata.php?lsid=urn:lsid:ubio.org:namebank:11815</A></FONT> <BR><FONT size=2>> </FONT><BR><FONT size=2>> So ubio would just have to give preferential services to calls like this:</FONT> <BR><FONT size=2>> </FONT><BR><FONT size=2>> <A href="http://names.ubio.org/authority/metadata.php?lsid=urn:lsid:ubio.org:namebank:11815&user_id=rogerhyam1392918790">http://names.ubio.org/authority/metadata.php?lsid=urn:lsid:ubio.org:namebank:11815&user_id=rogerhyam1392918790</A></FONT> <BR><FONT size=2>> </FONT><BR><FONT size=2>> If rogerhyam had paid his membership fees this year.</FONT> <BR><FONT size=2>> </FONT><BR><FONT size=2>> Does this make sense?</FONT> <BR><FONT size=2>> </FONT><BR><FONT size=2>> Roger</FONT> <BR><FONT size=2>> p.s. You could do this on the web pages as well with a clever little </FONT><BR><FONT size=2>> thing to write dynamic tokens into the links so that it doesn't degrade </FONT><BR><FONT size=2>> the regular browsing experience and only stops scrapers - but that is </FONT><BR><FONT size=2>> beyond my remit at the moment ;)</FONT> <BR><FONT size=2>> </FONT><BR><FONT size=2>> p.p.s. You could wrap this in https if you were paranoid about people </FONT><BR><FONT size=2>> stealing tokens - but this is highly unlikely I believe.</FONT> <BR><FONT size=2>> </FONT><BR><FONT size=2>> Sally Hinchcliffe wrote:</FONT> <BR><FONT size=2>> > How can we pass a token with an LSID?</FONT> <BR><FONT size=2>> ></FONT> <BR><FONT size=2>> ></FONT> <BR><FONT size=2>> > </FONT><BR><FONT size=2>> >> I think the only way to throttle in these situations is to have some </FONT><BR><FONT size=2>> >> notion of who the client is and the only way to do that is to have some </FONT><BR><FONT size=2>> >> kind of token exchange over HTTP saying who they are. Basically you have </FONT><BR><FONT size=2>> >> to have some kind of client registration system or you can never </FONT><BR><FONT size=2>> >> distinguish between a call from a new client and a repeat call. The use </FONT><BR><FONT size=2>> >> of IP address is a pain because so many people are now behind some kind </FONT><BR><FONT size=2>> >> of NAT gateway.</FONT> <BR><FONT size=2>> >></FONT> <BR><FONT size=2>> >> How about this for a plan:</FONT> <BR><FONT size=2>> >></FONT> <BR><FONT size=2>> >> You could give a degraded services to people who don't pass a token (a 5 </FONT><BR><FONT size=2>> >> second delay perhaps) and offer a quicker service to registered users </FONT><BR><FONT size=2>> >> who pass a token (but then perhaps limit the number of calls they make). </FONT><BR><FONT size=2>> >> This would mean you could offer a universal service even to those with </FONT><BR><FONT size=2>> >> naive client software but a better service to those who play nicely. You </FONT><BR><FONT size=2>> >> could also get better stats on who is using the service.</FONT> <BR><FONT size=2>> >></FONT> <BR><FONT size=2>> >> So there are ways that this could be done. I expect people will come up </FONT><BR><FONT size=2>> >> with a host of different ways. It is outside LSIDs though.</FONT> <BR><FONT size=2>> >></FONT> <BR><FONT size=2>> >> Roger</FONT> <BR><FONT size=2>> >></FONT> <BR><FONT size=2>> >> Sally Hinchcliffe wrote:</FONT> <BR><FONT size=2>> >> </FONT><BR><FONT size=2>> >>> It's not an LSID issue per se, but LSIDs will make it harder to slow </FONT><BR><FONT size=2>> >>> searches down. For instance, Google restricts use of its spell </FONT><BR><FONT size=2>> >>> checker to 1000 a day by use of a key which is passed in with each </FONT><BR><FONT size=2>> >>> request. Obviously this can't be done with LSIDs as then they </FONT><BR><FONT size=2>> >>> wouldn't be the same for each user.</FONT> <BR><FONT size=2>> >>> The other reason why it's relevant to LSIDs is simply that providing </FONT><BR><FONT size=2>> >>> a list of all relevant IPNI LSIDs (not necessary to the LSID </FONT><BR><FONT size=2>> >>> implementation but a nice to have for caching / lookups for other </FONT><BR><FONT size=2>> >>> systems using our LSIDs) also makes life easier for the datascrapers </FONT><BR><FONT size=2>> >>> to operate</FONT> <BR><FONT size=2>> >>></FONT> <BR><FONT size=2>> >>> Also I thought ... here's a list full of clever people perhaps they </FONT><BR><FONT size=2>> >>> will have some suggestions </FONT><BR><FONT size=2>> >>></FONT> <BR><FONT size=2>> >>> Sally</FONT> <BR><FONT size=2>> >>></FONT> <BR><FONT size=2>> >>> </FONT><BR><FONT size=2>> >>> </FONT><BR><FONT size=2>> >>>> Is this an LSID issue? LSIDs essential provide a binding service between </FONT><BR><FONT size=2>> >>>> an name and one or more web services (we default to HTTP GET bindings). </FONT><BR><FONT size=2>> >>>> It isn't really up to the LSID authority to administer any policies </FONT><BR><FONT size=2>> >>>> regarding the web service but simply to point at it. It is up to the web </FONT><BR><FONT size=2>> >>>> service to do things like throttling, authentication and authorization.</FONT> <BR><FONT size=2>> >>>></FONT> <BR><FONT size=2>> >>>> Imagine, for example, that the different services had different </FONT><BR><FONT size=2>> >>>> policies. It may be reasonable not to restrict the getMetadata() calls </FONT><BR><FONT size=2>> >>>> but to restrict the getData() calls.</FONT> <BR><FONT size=2>> >>>></FONT> <BR><FONT size=2>> >>>> The use of LSIDs does not create any new problems that weren't there </FONT><BR><FONT size=2>> >>>> with web page scraping - or scraping of any other web service.</FONT> <BR><FONT size=2>> >>>></FONT> <BR><FONT size=2>> >>>> Just my thoughts...</FONT> <BR><FONT size=2>> >>>></FONT> <BR><FONT size=2>> >>>> Roger</FONT> <BR><FONT size=2>> >>>></FONT> <BR><FONT size=2>> >>>></FONT> <BR><FONT size=2>> >>>> Ricardo Scachetti Pereira wrote:</FONT> <BR><FONT size=2>> >>>> </FONT><BR><FONT size=2>> >>>> </FONT><BR><FONT size=2>> >>>>> Sally,</FONT> <BR><FONT size=2>> >>>>></FONT> <BR><FONT size=2>> >>>>> You raised a really important issue that we had not really addressed </FONT><BR><FONT size=2>> >>>>> at the meeting. Thanks for that.</FONT> <BR><FONT size=2>> >>>>></FONT> <BR><FONT size=2>> >>>>> I would say that we should not constrain the resolution of LSIDs if </FONT><BR><FONT size=2>> >>>>> we expect our LSID infrastructure to work. LSIDs will be the basis of </FONT><BR><FONT size=2>> >>>>> our architecture so we better have good support for that.</FONT> <BR><FONT size=2>> >>>>></FONT> <BR><FONT size=2>> >>>>> However, that is sure a limiting factor. Also server efficiency will </FONT><BR><FONT size=2>> >>>>> likely vary quite a lot, depending on underlying system optimizations </FONT><BR><FONT size=2>> >>>>> and all.</FONT> <BR><FONT size=2>> >>>>></FONT> <BR><FONT size=2>> >>>>> So I think that the solution for this problem is in caching LSID </FONT><BR><FONT size=2>> >>>>> responses on the server LSID stack. Basically, after resolving an LSID </FONT><BR><FONT size=2>> >>>>> once, your server should be able to resolve it again and again really </FONT><BR><FONT size=2>> >>>>> quickly, until something on the metadata that is related to that id changes.</FONT> <BR><FONT size=2>> >>>>></FONT> <BR><FONT size=2>> >>>>> I haven't looked at this aspect of the LSID software stack, but </FONT><BR><FONT size=2>> >>>>> maybe others can say something about it. In any case I'll do some </FONT><BR><FONT size=2>> >>>>> research on it and get back to you.</FONT> <BR><FONT size=2>> >>>>></FONT> <BR><FONT size=2>> >>>>> Again, thanks for bringing it up.</FONT> <BR><FONT size=2>> >>>>></FONT> <BR><FONT size=2>> >>>>> Cheers,</FONT> <BR><FONT size=2>> >>>>></FONT> <BR><FONT size=2>> >>>>> Ricardo</FONT> <BR><FONT size=2>> >>>>></FONT> <BR><FONT size=2>> >>>>></FONT> <BR><FONT size=2>> >>>>> Sally Hinchcliffe wrote:</FONT> <BR><FONT size=2>> >>>>> </FONT><BR><FONT size=2>> >>>>> </FONT><BR><FONT size=2>> >>>>> </FONT><BR><FONT size=2>> >>>>>> There are enough discontinuities in IPNI ids that 1,2,3 would quickly </FONT><BR><FONT size=2>> >>>>>> run into the sand. I agree it's not a new problem - I just hate to </FONT><BR><FONT size=2>> >>>>>> think I'm making life easier for the data scrapers</FONT> <BR><FONT size=2>> >>>>>> Sally</FONT> <BR><FONT size=2>> >>>>>></FONT> <BR><FONT size=2>> >>>>>></FONT> <BR><FONT size=2>> >>>>>> </FONT><BR><FONT size=2>> >>>>>> </FONT><BR><FONT size=2>> >>>>>> </FONT><BR><FONT size=2>> >>>>>> </FONT><BR><FONT size=2>> >>>>>>> It can be a problem but I'm not sure if there is a simple solution ... and how different is the LSID crawler scenario from an <A href="http://www.ipni.org/ipni/plantsearch?id=">http://www.ipni.org/ipni/plantsearch?id=</A> 1,2,3,4,5 ... 9999999 scenario?</FONT></P>
<P><FONT size=2>> >>>>>>></FONT> <BR><FONT size=2>> >>>>>>> Paul</FONT> <BR><FONT size=2>> >>>>>>></FONT> <BR><FONT size=2>> >>>>>>> -----Original Message-----</FONT> <BR><FONT size=2>> >>>>>>> From: tdwg-guid-bounces@mailman.nhm.ku.edu</FONT> <BR><FONT size=2>> >>>>>>> [<A href="mailto:tdwg-guid-bounces@mailman.nhm.ku.edu">mailto:tdwg-guid-bounces@mailman.nhm.ku.edu</A>]On Behalf Of Sally</FONT> <BR><FONT size=2>> >>>>>>> Hinchcliffe</FONT> <BR><FONT size=2>> >>>>>>> Sent: 15 June 2006 12:08</FONT> <BR><FONT size=2>> >>>>>>> To: tdwg-guid@mailman.nhm.ku.edu</FONT> <BR><FONT size=2>> >>>>>>> Subject: [Tdwg-guid] Throttling searches [ Scanned for viruses ]</FONT> <BR><FONT size=2>> >>>>>>></FONT> <BR><FONT size=2>> >>>>>>></FONT> <BR><FONT size=2>> >>>>>>> Hi all</FONT> <BR><FONT size=2>> >>>>>>> another question that has come up here. </FONT><BR><FONT size=2>> >>>>>>></FONT> <BR><FONT size=2>> >>>>>>> As discussed at the meeting, we're thinking of providing a complete </FONT><BR><FONT size=2>> >>>>>>> download of all IPNI LSIDs plus a label (name and author, probably) </FONT><BR><FONT size=2>> >>>>>>> which will be available as an annually produced download</FONT> <BR><FONT size=2>> >>>>>>></FONT> <BR><FONT size=2>> >>>>>>> Most people will play nice and just resolve one or two LSIDs as </FONT><BR><FONT size=2>> >>>>>>> required, but by providing a complete list, we're making it very easy </FONT><BR><FONT size=2>> >>>>>>> for someone to write a crawler that hits every LSID in turn and </FONT><BR><FONT size=2>> >>>>>>> basically brings our server to its knees</FONT> <BR><FONT size=2>> >>>>>>></FONT> <BR><FONT size=2>> >>>>>>> Anybody know of a good way of enforcing more polite behaviour? We can </FONT><BR><FONT size=2>> >>>>>>> make the download only available under a data supply agreement that </FONT><BR><FONT size=2>> >>>>>>> includes a clause limiting hit rates, or we could limit by IP address </FONT><BR><FONT size=2>> >>>>>>> (but this would ultimately block out services like Rod's simple </FONT><BR><FONT size=2>> >>>>>>> resolver). I beleive Google's spell checker uses a key which has to </FONT><BR><FONT size=2>> >>>>>>> be passed in as part of the query - obviously we can't do that with </FONT><BR><FONT size=2>> >>>>>>> LSIDs</FONT> <BR><FONT size=2>> >>>>>>></FONT> <BR><FONT size=2>> >>>>>>> Any thoughts? Anyone think this is a problem? </FONT><BR><FONT size=2>> >>>>>>></FONT> <BR><FONT size=2>> >>>>>>> Sally</FONT> <BR><FONT size=2>> >>>>>>> *** Sally Hinchcliffe</FONT> <BR><FONT size=2>> >>>>>>> *** Computer section, Royal Botanic Gardens, Kew</FONT> <BR><FONT size=2>> >>>>>>> *** tel: +44 (0)20 8332 5708</FONT> <BR><FONT size=2>> >>>>>>> *** S.Hinchcliffe@rbgkew.org.uk</FONT> <BR><FONT size=2>> >>>>>>></FONT> <BR><FONT size=2>> >>>>>>></FONT> <BR><FONT size=2>> >>>>>>> _______________________________________________</FONT> <BR><FONT size=2>> >>>>>>> TDWG-GUID mailing list</FONT> <BR><FONT size=2>> >>>>>>> TDWG-GUID@mailman.nhm.ku.edu</FONT> <BR><FONT size=2>> >>>>>>> <A href="http://mailman.nhm.ku.edu/mailman/listinfo/tdwg-guid">http://mailman.nhm.ku.edu/mailman/listinfo/tdwg-guid</A></FONT> <BR><FONT size=2>> >>>>>>></FONT> <BR><FONT size=2>> >>>>>>> _______________________________________________</FONT> <BR><FONT size=2>> >>>>>>> TDWG-GUID mailing list</FONT> <BR><FONT size=2>> >>>>>>> TDWG-GUID@mailman.nhm.ku.edu</FONT> <BR><FONT size=2>> >>>>>>> <A href="http://mailman.nhm.ku.edu/mailman/listinfo/tdwg-guid">http://mailman.nhm.ku.edu/mailman/listinfo/tdwg-guid</A></FONT> <BR><FONT size=2>> >>>>>>> </FONT><BR><FONT size=2>> >>>>>>> </FONT><BR><FONT size=2>> >>>>>>> </FONT><BR><FONT size=2>> >>>>>>> </FONT><BR><FONT size=2>> >>>>>> *** Sally Hinchcliffe</FONT> <BR><FONT size=2>> >>>>>> *** Computer section, Royal Botanic Gardens, Kew</FONT> <BR><FONT size=2>> >>>>>> *** tel: +44 (0)20 8332 5708</FONT> <BR><FONT size=2>> >>>>>> *** S.Hinchcliffe@rbgkew.org.uk</FONT> <BR><FONT size=2>> >>>>>></FONT> <BR><FONT size=2>> >>>>>></FONT> <BR><FONT size=2>> >>>>>> _______________________________________________</FONT> <BR><FONT size=2>> >>>>>> TDWG-GUID mailing list</FONT> <BR><FONT size=2>> >>>>>> TDWG-GUID@mailman.nhm.ku.edu</FONT> <BR><FONT size=2>> >>>>>> <A href="http://mailman.nhm.ku.edu/mailman/listinfo/tdwg-guid">http://mailman.nhm.ku.edu/mailman/listinfo/tdwg-guid</A></FONT> <BR><FONT size=2>> >>>>>></FONT> <BR><FONT size=2>> >>>>>> </FONT><BR><FONT size=2>> >>>>>> </FONT><BR><FONT size=2>> >>>>>> </FONT><BR><FONT size=2>> >>>>>> </FONT><BR><FONT size=2>> >>>>> _______________________________________________</FONT> <BR><FONT size=2>> >>>>> TDWG-GUID mailing list</FONT> <BR><FONT size=2>> >>>>> TDWG-GUID@mailman.nhm.ku.edu</FONT> <BR><FONT size=2>> >>>>> <A href="http://mailman.nhm.ku.edu/mailman/listinfo/tdwg-guid">http://mailman.nhm.ku.edu/mailman/listinfo/tdwg-guid</A></FONT> <BR><FONT size=2>> >>>>></FONT> <BR><FONT size=2>> >>>>> </FONT><BR><FONT size=2>> >>>>> </FONT><BR><FONT size=2>> >>>>> </FONT><BR><FONT size=2>> >>>> -- </FONT><BR><FONT size=2>> >>>></FONT> <BR><FONT size=2>> >>>> -------------------------------------</FONT> <BR><FONT size=2>> >>>> Roger Hyam</FONT> <BR><FONT size=2>> >>>> Technical Architect</FONT> <BR><FONT size=2>> >>>> Taxonomic Databases Working Group</FONT> <BR><FONT size=2>> >>>> -------------------------------------</FONT> <BR><FONT size=2>> >>>> <A href="http://www.tdwg.org/">http://www.tdwg.org</A></FONT> <BR><FONT size=2>> >>>> roger@tdwg.org</FONT> <BR><FONT size=2>> >>>> +44 1578 722782</FONT> <BR><FONT size=2>> >>>> -------------------------------------</FONT> <BR><FONT size=2>> >>>></FONT> <BR><FONT size=2>> >>>></FONT> <BR><FONT size=2>> >>>> </FONT><BR><FONT size=2>> >>>> </FONT><BR><FONT size=2>> >>> *** Sally Hinchcliffe</FONT> <BR><FONT size=2>> >>> *** Computer section, Royal Botanic Gardens, Kew</FONT> <BR><FONT size=2>> >>> *** tel: +44 (0)20 8332 5708</FONT> <BR><FONT size=2>> >>> *** S.Hinchcliffe@rbgkew.org.uk</FONT> <BR><FONT size=2>> >>></FONT> <BR><FONT size=2>> >>></FONT> <BR><FONT size=2>> >>> </FONT><BR><FONT size=2>> >>> </FONT><BR><FONT size=2>> >> -- </FONT><BR><FONT size=2>> >></FONT> <BR><FONT size=2>> >> -------------------------------------</FONT> <BR><FONT size=2>> >> Roger Hyam</FONT> <BR><FONT size=2>> >> Technical Architect</FONT> <BR><FONT size=2>> >> Taxonomic Databases Working Group</FONT> <BR><FONT size=2>> >> -------------------------------------</FONT> <BR><FONT size=2>> >> <A href="http://www.tdwg.org/">http://www.tdwg.org</A></FONT> <BR><FONT size=2>> >> roger@tdwg.org</FONT> <BR><FONT size=2>> >> +44 1578 722782</FONT> <BR><FONT size=2>> >> -------------------------------------</FONT> <BR><FONT size=2>> >></FONT> <BR><FONT size=2>> >></FONT> <BR><FONT size=2>> >> </FONT><BR><FONT size=2>> ></FONT> <BR><FONT size=2>> > *** Sally Hinchcliffe</FONT> <BR><FONT size=2>> > *** Computer section, Royal Botanic Gardens, Kew</FONT> <BR><FONT size=2>> > *** tel: +44 (0)20 8332 5708</FONT> <BR><FONT size=2>> > *** S.Hinchcliffe@rbgkew.org.uk</FONT> <BR><FONT size=2>> ></FONT> <BR><FONT size=2>> ></FONT> <BR><FONT size=2>> > </FONT><BR><FONT size=2>> </FONT><BR><FONT size=2>> </FONT><BR><FONT size=2>> -- </FONT><BR><FONT size=2>> </FONT><BR><FONT size=2>> -------------------------------------</FONT> <BR><FONT size=2>> Roger Hyam</FONT> <BR><FONT size=2>> Technical Architect</FONT> <BR><FONT size=2>> Taxonomic Databases Working Group</FONT> <BR><FONT size=2>> -------------------------------------</FONT> <BR><FONT size=2>> <A href="http://www.tdwg.org/">http://www.tdwg.org</A></FONT> <BR><FONT size=2>> roger@tdwg.org</FONT> <BR><FONT size=2>> +44 1578 722782</FONT> <BR><FONT size=2>> -------------------------------------</FONT> <BR><FONT size=2>> </FONT><BR><FONT size=2>> </FONT></P>
<P><FONT size=2>*** Sally Hinchcliffe</FONT> <BR><FONT size=2>*** Computer section, Royal Botanic Gardens, Kew</FONT> <BR><FONT size=2>*** tel: +44 (0)20 8332 5708</FONT> <BR><FONT size=2>*** S.Hinchcliffe@rbgkew.org.uk</FONT> </P><BR>
<P><FONT size=2>_______________________________________________</FONT> <BR><FONT size=2>TDWG-GUID mailing list</FONT> <BR><FONT size=2>TDWG-GUID@mailman.nhm.ku.edu</FONT> <BR><FONT size=2><A href="http://mailman.nhm.ku.edu/mailman/listinfo/tdwg-guid">http://mailman.nhm.ku.edu/mailman/listinfo/tdwg-guid</A></FONT> </P></DIV></BODY></HTML>