Wikiup:BibRecord/GBV

aus Wikipedia, der freien Enzyklopädie
< Wikiup:BibRecord
Dies ist die aktuelle Version dieser Seite, zuletzt bearbeitet am 17. April 2020 um 16:20 Uhr durch imported>Xqbot(627628) (Bot: Ersetze veraltetes <source> tag und veralteten "enclose"-Parameter; kosmetische Änderungen).
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

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!