AW: [Lds] Personensuche in der GND unter Einbezug von
Hintergrundinformationen
Klee, Carsten
Carsten.Klee at sbb.spk-berlin.de
Mon Aug 15 08:13:47 CEST 2016
Hallo Philipp,
wir haben einen Abgleich von Personen zwischen Kalliope und der GND gemacht. Dabei haben wir erst einmal die GND als RDF in einen LDF-Server geladen und dann mit einem LDF-Client abgefragt (SPARQL siehe unten).
In eurem Fall müsstet ihr neben der GND-ID noch den Beruf extrahieren, um ihn später abzugleichen. Außerdem müsstet ihr das Geburtsdatum mit "<" und ">" vergleichen.
Schwierig wird es bei den Namen. Wenn ihr nur abgekürzte Vornamen habt, dann müsstet ihr die Namen in Vor- und Nachnamen splitten. Dann alle Ressourcen suchen, die
?name http://d-nb.info/standards/elementset/gnd#surname "Zimmermann"^^<http://www.w3.org/2001/XMLSchema#string> .
haben und ein Regex auf den Vornamen (ohne Punkt) anwenden.
?name http://d-nb.info/standards/elementset/gnd#forename ?forename .
FILTER regex(?forename, 'H') .
Und dann die eigentliche GND-ID extrahieren:
?id http://d-nb.info/standards/elementset/gnd#preferredName $name .
Das kann bei einer großen Datenmenge ganz schön dauern. Für uns war das zu aufwendig und wir haben die normale Namensform genommen:
SELECT DISTINCT ?id WHERE {
{
?id <http://d-nb.info/standards/elementset/gnd#preferredNameForThePerson> \"$name\"^^<http://www.w3.org/2001/XMLSchema#string> ;
a <http://d-nb.info/standards/elementset/gnd#DifferentiatedPerson> .
?id <http://d-nb.info/standards/elementset/gnd#dateOfBirth> ?bdate .
FILTER regex(?bdate, '$dateOfBirth') .
?id <http://d-nb.info/standards/elementset/gnd#dateOfDeath> ?ddate .
FILTER regex(?ddate, '$dateOfDeath') .
}
UNION
{
?id <http://d-nb.info/standards/elementset/gnd#variantNameForThePerson> \"$name\"^^<http://www.w3.org/2001/XMLSchema#string> ;
a <http://d-nb.info/standards/elementset/gnd#DifferentiatedPerson> .
?id <http://d-nb.info/standards/elementset/gnd#dateOfBirth> ?bdate .
FILTER regex(?bdate, '$dateOfBirth') .
?id <http://d-nb.info/standards/elementset/gnd#dateOfDeath> ?ddate .
FILTER regex(?ddate, '$dateOfDeath') .
}
UNION
{
?id <http://d-nb.info/standards/elementset/gnd#preferredNameForThePerson> \"$name\"^^<http://www.w3.org/2001/XMLSchema#string> ;
a <http://d-nb.info/standards/elementset/gnd#RoyalOrMemberOfARoyalHouse> .
?id <http://d-nb.info/standards/elementset/gnd#dateOfBirth> ?bdate .
FILTER regex(?bdate, '$dateOfBirth') .
?id <http://d-nb.info/standards/elementset/gnd#dateOfDeath> ?ddate .
FILTER regex(?ddate, '$dateOfDeath') .
}
UNION
{
?id <http://d-nb.info/standards/elementset/gnd#variantNameForThePerson> \"$name\"^^<http://www.w3.org/2001/XMLSchema#string> ;
a <http://d-nb.info/standards/elementset/gnd#RoyalOrMemberOfARoyalHouse> .
?id <http://d-nb.info/standards/elementset/gnd#dateOfBirth> ?bdate .
FILTER regex(?bdate, '$dateOfBirth') .
?id <http://d-nb.info/standards/elementset/gnd#dateOfDeath> ?ddate .
FILTER regex(?ddate, '$dateOfDeath') .
}
UNION
{
?id <http://d-nb.info/standards/elementset/gnd#preferredNameForThePerson> \"$name\"^^<http://www.w3.org/2001/XMLSchema#string> ;
a <http://d-nb.info/standards/elementset/gnd#Pseudonym> .
?id <http://d-nb.info/standards/elementset/gnd#dateOfBirth> ?bdate .
FILTER regex(?bdate, '$dateOfBirth') .
?id <http://d-nb.info/standards/elementset/gnd#dateOfDeath> ?ddate .
FILTER regex(?ddate, '$dateOfDeath') .
}
UNION
{
?id <http://d-nb.info/standards/elementset/gnd#variantNameForThePerson> \"$name\"^^<http://www.w3.org/2001/XMLSchema#string> ;
a <http://d-nb.info/standards/elementset/gnd#Pseudonym> .
?id <http://d-nb.info/standards/elementset/gnd#dateOfBirth> ?bdate .
FILTER regex(?bdate, '$dateOfBirth') .
?id <http://d-nb.info/standards/elementset/gnd#dateOfDeath> ?ddate .
FILTER regex(?ddate, '$dateOfDeath') .
}
}
Gruß,
Carsten
_______________________________________________
Carsten Klee
Abt. Überregionale Bibliographische Dienste IIE
Staatsbibliothek zu Berlin – Preußischer Kulturbesitz
Potsdamer Straße 33
10785 Berlin
Fon: +49 30 266-43 44 02
Fax: +49 30 266-33 40 01
carsten.klee at sbb.spk-berlin.de
www.zeitschriftendatenbank.de
> -----Ursprüngliche Nachricht-----
> Von: lds-bounces at lists.dnb.de [mailto:lds-bounces at lists.dnb.de] Im
> Auftrag von Philipp Zumstein
> Gesendet: Freitag, 12. August 2016 08:12
> An: lds at lists.dnb.de
> Betreff: [Lds] Personensuche in der GND unter Einbezug von
> Hintergrundinformationen
>
> Liebe Kolleginnen und Kollegen,
>
> momentan überlegen wir gerade, ob und wie man eine Suche nach
> Personen
> in der GND machen kann unter Einbezug von Hintergrundinformationen.
>
> Zum Beispiel: Ich suche in den Normdaten nach einer Person "Zimmermann,
> H.", welche einen aktuellen Zeitschriftenartikel im Bereich der
> Theologie auf Deutsch veröffentlicht hat (und somit jetzt gerade in
> einem publikationsfähigen Alter ist, wahrscheinlich einen Beruf in dem
> Bereich hat und aus dem deutschsprachigen Raum kommt). Das Ergebnis
> kann
> dann auch eine kleinere Liste mit möglichen Kandidaten sein, welche dann
> von eineR BearbeiterIn durchgesehen werden können.
>
> Kennt jemand hierzu Ansätze oder Lösungen? Mit oder ohne Linked Data?
> Unser aktueller Versuch [1] ist nur begrenzt praktikabel und nicht ohne
> Weiteres erweiterbar.
>
> Vielen Dank und mit besten Grüßen,
> Philipp Zumstein
>
>
> [1]
> http://swb.bsz-
> bw.de/DB=2.104/SET=3/TTL=1//CMD?SGE=&ACT=SRCHM&MATCFILTER=Y&
> MATCSET=Y&NOSCAN=Y&PARSE_MNEMONICS=N&PARSE_OPWORDS=N&P
> ARSE_OLDSETS=N&IMPLAND=Y&NOABS=Y&ACT0=SRCHA&SHRTST=50&IKT0
> =2073&TRM0=zimmermann,%20h*&ACT1=*&IKT1=2057&TRM1=3.*&ACT2=
> *&IKT2=8991&TRM2=19**&ACT3=%2B&IKT3=2072&TRM3=tpv*&SRT=RLV&
> COOKIE=U998,Pbszgast,I17,B0728+,SY,NRecherche-DB,D2.104,E220f51ba-
> 620,A,H,R193.197.31.15,FY