linked-swissbib / mfWorkflows

linked-swissbib workflows based on Metafacture
1 stars 0 forks source link

Erstellen von globalen Identifier für Autoren #4

Open guenterh opened 9 years ago

guenterh commented 9 years ago

Auf dem letzten linked-swissbib workshop in Basel (18.6.) haben wir uns als Ziel gesetzt, für Autorenentities, die bisher nur als blank nodes lokal referenzierbar gewesen sind, globale Identifier mittels eines eindeutigen Hashwertes zu erstellen.

guenterh commented 9 years ago

@pronguen @sschuepbach

Hallo Nicolas,

ich habe eine erste Implementierung für eine Funktion erstellt, mit der globale Identifier generiert werden können. https://github.com/linked-swissbib/swissbib-metafacture-commands/blob/master/src/main/java/org/swissbib/linked/mf/morph/functions/AuthorHash.java

Für die Entwicklung des Morphs gibt es ein (temporäres) Flux https://github.com/linked-swissbib/mfWorkflows/blob/master/src/main/resources/transformation/resource/tempAuthorTransformation.flux sowie ein temporäres Morph https://github.com/linked-swissbib/mfWorkflows/blob/master/src/main/resources/transformation/resource/tempMorphAuthors.xml

Vor allem am Morph sollten wir weiter arbeiten. Das erweiterte plugin (Jar-Datei), welches Du bei Dir im plugin Verzeichnis ablegen musst, schicke ich Di rmorgen. Vielleicht hast Du morgen Zeit ? - wäre super!

Günter

guenterh commented 9 years ago

@pronguen Hallo Nicolas,

ich habe eine neue jar Datei erstellt. Wie Du vorgeschlagen hast, wird der Hash nun 'ohne' ein Prefix erstellt. Den prefix kannst Du per Konfiguration im Morph vergeben. Der Link zur Datei sollte sich nicht geändert haben. Falls Du ihn nicht mehr hast: https://drive.switch.ch/public.php?service=files&t=04787368f4d733e6279c01aae7891cfd

Günter

guenterh commented 9 years ago

@pronguen

* Dein mail *** Hallo Günter,

ich habe in den Subfields-Statistiken geschaut (https://github.com/linked-swissbib/mfWorkflows/blob/master/src/main/resources/statistics/np_output_subfields_gh.csv#L5). Wir sollten alle Felder nehmen, die direkt über die Person/Organisation sind, und die in unseren Daten (nicht per Zufall) existieren. Das heisst:

$D Vorname $a Nachname $b Nummerierung $c Beruf/Titel $d Lebensdaten $q Vollständiger Name

Beste Grüsse Nicolas


Könntest Du das entsprechend Deinem Vorschlag vorbereiten? Es wird dann wohl etwas in der folgenden Form sein:

    <combine name="@key100" value="${firstname}##${lastname}##${bNummerierung}##${und alle anderen}" flushWith="1001 ">
        <data source="1001 .a" name="firstname" />
        <data source="1001 .D" name="lastname" />
                    <data source="1001 .b" name="bNummerierung" />
                   <...... />
        <postprocess>
            <java class="org.swissbib.linked.mf.morph.functions.AuthorHash"/>
        </postprocess>
    </combine>

Die Funktion AuthorHash gibt im Moment einen leeren Hashwert zurück, wenn Du zusätzliche Parameter angibst. Ich werde das ändern sobald Du fertig bist.

Günter

pronguen commented 9 years ago

Ich habe die Morph-Regel gerade angepasst! https://github.com/linked-swissbib/mfWorkflows/commit/71ea1c062ea878bf7a5966bfebe590f4a78e36be

guenterh commented 9 years ago

@pronguen @fxbensmann Hallo Nicolas Na, das ist dann schön.... !!!!! Ich passe die Funktion an. Werde aber wohl erst heute Nachmittag dazu kommen. Wenn das gemacht ist, denke ich macht es Sinn, unseren Bestand (oder einen Teil davon) zu verarbeiten. Aber warten wir erstmal ab, was Felix so erzählen wird.

Bis gleich, Günter

guenterh commented 9 years ago

@pronguen Hallo Nicolas, ich habe gerade angefangen, Deine Umstellungen in der "Hashklasse" umzusetzen. Dabei ist mir aufgefallen: Du verwendest das Unterfeld 100 a https://github.com/linked-swissbib/mfWorkflows/blob/master/src/main/resources/transformation/person/personMorph.xml#L12 als Vorname Wen nich mir die Daten ansehe, scheint mir in 100 a jedoch der Nachname abgebildet zu sein. 100 D hingegen scheint in den swissbib Daten für den Vornamen, getrennt von 100 a, reserviert zu sein. Im Morph definierst du 100 D jedoch für den Nachnamen. https://github.com/linked-swissbib/mfWorkflows/blob/master/src/main/resources/transformation/person/personMorph.xml#L13

Ich habe noch bei LOC und OCLC nachgesehen: https://www.loc.gov/marc/bibliographic/concise/bd100.html http://www.oclc.org/bibformats/en/1xx/100.html 100_a ist für Vor- und Nachnamen (mit Komma getrennt) reserviert, 100_D sehe ich nicht, ich denke, dies ist im Standard nicht definiert und (zur besseren Datenaufbereitung) eine Eigenkreation von swissbib Am besten kann diese Frage @ToVie beantworten....

Für die Erstellung des Haswertes ist dies nicht wichtig, vielleicht passt Du es noch an, wenn meine Annahmen richtig sind.

guenterh commented 9 years ago

@pronguen ich habe den Hashalgorthmus wie abgemacht erweitert. https://github.com/linked-swissbib/swissbib-metafacture-commands/commit/086973d818365e2f9a2f5918f9e8e71a7a80ea47 und https://github.com/linked-swissbib/mfWorkflows/commit/9f2f106d6f4877b8ff51fd31ba2e9cbd5d6f0dcc

Die jar Datei kannst Du wieder unter diesem link https://drive.switch.ch/public.php?service=files&t=04787368f4d733e6279c01aae7891cfd abholen Günter

pronguen commented 9 years ago

@guenterh Du hast völlig recht: 100 $a ist im Standard MARC21 Nach- und Vorname. In Swissbib habt Ihr den Vornamen im Unterfeld 100 $D getrennt. Ich habe die zwei verwechselt. Danke :) Ich korrigiere es. Das hat aber keine Folge für die Hashwertgenerierung...

guenterh commented 9 years ago

@pronguen Danke! Nein, für den Hash ist es egal. Ich nehme so wie es kommt... heute skype?