Wikiup:BibRecord/GBV
Zur Erstellung von Bibliographischen Datensätzen für Wikipedia (Wikipedia:BibRecord) kann auf den Katalog des Gemeinsamen Bibliotheksverbund (GVK) zurückgegriffen werden.
Zugriff auf den GVK
Die Datenübernahme ist am einfachsten mit der Perl-Prorgammbibliothek PICA::Record möglich (siehe auch [http://www.gbv.de/wikis/cls/PICA::Record Informationen zu PICA::Record im GBV-Verbundwiki). Um beispielsweise den ersten Titeldatensatz zur ISBN 3-8334-1351-4 zu bekommen, genügt folgendes Perl-Skript
use PICA::Source;
my $gvk = PICA::Source->new( SRU => "http://gso.gbv.de/sru/DB=2.1/" );
my $isbn = "3833413514";
my @records = $gvk->cqlQuery("pica.isb=$isbn")->records();
my $record = shift @records;
print "$record\n";
Der Titeldatensatz kann anschließend mit den Methoden der Klasse PICA::Record weiterverarbeitet werden.
Umwandlung nach BibRecord
Um aus dem PICA+ Format einen BibRecord-Datensatz zu erhalten, müssen die benötigten Felder und Unterfelder ausgewertet werden. Folgende Perl-Funktion erstellt einen rudimentären BibRecord-Datensatz aus einem PICA::Record-Objekt:
sub pica2bibrecord {
my $p = shift;
my %br = ();
my @au = $p->field('028A');
@au = $p->field('028C(/..)?') unless @au;
@au = map { $_->sf('d') . ' ' . $_->sf('a') } @au;
$r{Autor} = join(", ", @au);
$r{Sprache} = $p->sf('010@$a');
$r{Jahr} = $p->sf('011@$a');
$r{Auflage} = $p->sf('032@$a'); # TODO: filter
$r{Auflage} =~ s/ (ed.*|aufl.*)$//i if defined $r{Auflage};
$r{Ort} = $p->sf('033A$p');
$r{Verlag} = $p->sf('033A$n');
$r{ISBN} = $p->sf('004A$0');
# Erstkatalogisierungs-ID - eindeutiger Identifier über verschiedene Bibliotheksverbünde
$r{EKI} = join('', $p->values('007G','c0'));
$r{Seiten} = exists $r{Seiten}
? '{{{Seiten|'.$r{Seiten}.'}}}'
: '{{{Seiten|}}}';
$r{format} = '{{{format|}}}';
$r{Kommentar} = '{{{Kommentar|}}}';
$r{record} = '{{{record|}}}';
return %r;
}
Eintragen in Wikipedia
Vor dem Eintragen sollte der Datensatz in jedem Fall manuell kontrolliert und ggf. korrigiert werden. Die Automatische Eintragung (z.B. zur Ergänzung von Feldern) ist z.B. mit dem MediaWiki::Bot-Framework möglich. Dabei sollten jedoch die Regel zu Bots in Wikipedia beachtet werden!