PubMed mit PHP und SOAP abgefragt

Gestern ist im PHP-Magazin (Ausgabe 1.2008) ein Artikel erschienen, in dem exklusiv eine PHP Klasse vorgestellt wird, mit der man die PubMed und andere Datenbanken des NCBI elegant abfragen kann:

Remote abgefragt
Die Datenbanken des US-Zentrums für Biotechnologieinformation per SOAP und PHP elegant remote abfragen http://phpmagazin.de/itr/online_artikel/psecom,id,965,nodeid,62,_language,de.html#

 

4 comments for “PubMed mit PHP und SOAP abgefragt

  1. Martin
    17. November 2007 at 8:50

    Hmm… erstmal war ich ganz erfreut – aber das ist wirklich nur Minimalst-Funktionalität! Insbesondere bekommt man ja immer nur 500 Treffer zurück. Da möchte man doch lieber eine Klasse, die eine Suche durchführt, die Trefferzahl zurückgibt und dann jeden einzelnen Treffer ansprechen kann…
    Gruß, Martin (bastele da gerade an etwas…)

  2. ABL
    18. November 2007 at 5:01

    Das ist einfach zu lösen, man bekommt bei der ersten Suchanfrage die Gesamtanzahl zurück (Count).

    Array(
    [Count] => 603
    [RetMax] => 500
    [RetStart] =>0

    Mit RetStart und RetMax geht man nun in 500er Schritten mit einer Schleife über alle Ergebnisse und ruft sol lange ab, bis keine mehr vorhanden sind.

    Es ist halt so eine Sache, einen Source auszuliefern, bei dem mit ungeschickter Anfrage wie dem Term ‚Proteins‘ in PubMed gleich 3.657.150 Treffer automatisch abgerufen werden. Wer also weiß, was er tut, wird die kleine Änderung in dem Code problemlos vornehmen können und wer nur mal spielen möchte, kommt mit 500 Treffern gut klar.

  3. Martin
    21. November 2007 at 2:47

    Klar ist es einfach – gerade darum ist die Klasse auch so enttäuschend. Wie man es macht hat das NCBI ja gut dokumentiert. Resourcen-sparender wird das Ganze, wenn man den Suchauftrag nur einmal stellt und dann über das WebEnv auf die selber Suchfrage zugreift.
    Das 500er-Limit scheint direkt von NCBI zu stammen:
    http://www.nodalpoint.org/node/1496 (Kommentar „500 limit“)

    Martin

  4. ABL
    22. November 2007 at 10:35

    Ja, das Limit von 500 Treffern pro Suchanfrage ist vorgegeben:

    „One consideration to bear in mind is that EFetch is limited to 500 records per URL.“
    http://www.ncbi.nlm.nih.gov/Web/Newsltr/SummerFall04/index.html

Comments are closed.