UB-Mannheim / zotkat

Erweiterung von Zotero für die Katalogisierung
GNU Affero General Public License v3.0
45 stars 22 forks source link

mehrere Lookupurl nacheinander abfragen #28

Open socheres opened 8 years ago

socheres commented 8 years ago

@zuphilip kann man mehrere Werte von lookupUrl nacheinander abfragen, um die Wahrscheinlichkeit des Autoren-PPN-Matching zu erhöhen, vllt. lookupUrl als Array mit while-Anweisung?

    //Lookup für Autoren
    if ((code == "3000" || code == "3010") && line[0] != "!") {
        count++;
        var authorName = line.substring(0,line.indexOf("$"));
        var lookupUrl = "http://swb.bsz-bw.de/DB=2.104/SET=70/TTL=1/CMD?SGE=&ACT=SRCHM&MATCFILTER=Y&MATCSET=Y&NOSCAN=Y&PARSE_MNEMONICS=N&PARSE_OPWORDS=N&PARSE_OLDSETS=N&IMPLAND=Y&NOABS=Y&ACT0=SRCHA&SHRTST=50&IKT0=1004&TRM0=" + authorName +"&ACT1=*&IKT1=2057&TRM1=*&ACT2=*&IKT2=8991&TRM2=*&ACT3=*&IKT3=8991&TRM3=" 

        ZU.processDocuments([lookupUrl], function(doc, url){
            var ppn = ZU.xpathText(doc, '//small[a[img]]');
            if (ppn) {
                outputText = outputText.replace(authorName, "!" + ppn.trim() + "!");
            }
        }, function() {
            count--;
            if (count === 0) {
                Zotero.write(outputText);
            }
        });
    }
zuphilip commented 7 years ago

Solche Abfragen passieren in JavaScript asynchron und damit läuft man eigentlich schon jetzt in die Gefahr, dass eine Lookup-Anfrage noch nicht fertig ist, aber der Export schon erfolgt ist.

Ich würde hier eher vorschlagen den Autoren-Lookup auszulagern z.B. als Webdienst, welcher dann serverseitig verschiedene Suchanfragen abschicken kann und die Resultate für den BearbeiterIn optimal präsentiert. Dazu habe ich jetzt einmal in die Linked Data Runde gefragt, ob es so etwas evt. schon gibt.

zuphilip commented 7 years ago

Ebenfalls möglich wäre die lobid Suche bzw. lobid API zu nutzen:

Hier ist ein Beispiel für etwas ähnliches: https://github.com/hatorikibble/lobid-genderguess

socheres commented 7 years ago

kann man in lobid API Vor- und Nachnamen getrennt abfragen? Nach diesem Beispiel kann man Alternativer Name, Beruf u.a. abfragen. Um die Wahrscheinlichkeit eines eindeutigen Treffers zu erhöhen, müssen weitere Kategorien wie Geburts- bzw. Sterbejahr, GND-Systematik abgefragt werden können.

hemmefelix commented 5 years ago

Moin, die Diskussion ist zwar schon älter, trifft aber genau eine Anforderung, die wir haben. Beim PicaGBV-Konverter kann ich keine sinnvolle Anfrage an unseren GVK-Verbundkatalog stellen, die gleichzeitig Daten aus den Normdatensätzen berücksichtigt (occupation usw.).

Die neue lobid-API ist da sehr flexibel. Zum Beispiel kann nach bevorzugten- und weiteren Namen, Beruf, Geburtsjahr und Wirkungsorten abgefragt werden. Die URI dazu sähe wie folgt aus: https://lobid.org/gnd/search?q=preferredName%3A%22snower%2Cdennis%20james%22+OR+variantName%3A%22snower%2Cdennis%20james%22 +AND+professionOrOccupation%2Elabel%3AWirtschaftswissenschaftler+AND+dateOfBirth%3A19&format=json

Mit der Angabe "format=jsonl" können auch json-lines heruntergeladen werden. Die Daten könnten als Grundlage für ein Webinterface dienen. Ich muss noch besprechen, ob das ein Projekt für uns wäre. Oder kennt ihr schon etwas ähnliches?

socheres commented 5 years ago

lobid-API werden wir bei der Datenanreicherung in Marc21 nutzen. In WinIBW verknüpfen wir mit PPN, daher nutzen wir weiterhin OGND von BSZ und scrapen von dort die entsprechende PPN. Immerhin gibt es nun zwei Schnittstellen - API und OGND Katalog -, um (halb)automatisch Autoren einer ID zuzuweisen.

hemmefelix commented 5 years ago

Danke @socheres. OGND nützt uns hier im GBV-Land leider (aktuell) nichts, da die ppns der Tp*-Sätze nicht identisch sind. Vielleicht wird das mit K10+ aber vereinheitlicht.