Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Viaf Matching based on Searchindex #8

Open
guenterh opened this issue Jul 29, 2015 · 4 comments
Open

Viaf Matching based on Searchindex #8

guenterh opened this issue Jul 29, 2015 · 4 comments

Comments

@guenterh
Copy link
Member

@pronguen @oschihin @sschuepbach @fxbensmann

Hallo Nicolas,

wie gestern im skype erwähnt, habe ich mich gestern Nachmittag damit beschäftigt, unsere aktuellen Transformationen mit einem Matching gegen VIAF zu erweitern.

Wenn Du diesen Mechanismus benutzen möchtest, musst Du einen Update auf das repository mfWorkflows laufen lassen und Dir die neueste library
https://drive.switch.ch/public.php?service=files&t=04787368f4d733e6279c01aae7891cfd
als Plugin herunterladen.
Neu gibt es in der config Datei
https://github.com/linked-swissbib/mfWorkflows/blob/master/config/java-options.conf
einen Eintrag (-DindexURL=http://sb-s8.swissbib.unibas.ch:8080/solr/viaf), der es der MF Funktion ermöglicht, Autoren gegen den bei uns aufgebauten VIAF Index zu matchen.
Im Moment benutze ich nur Personennamen, keine Körperschaften und Kongresse.
Ein kleines Testergebnis hier:
https://github.com/linked-swissbib/mfWorkflows/blob/master/src/main/resources/transformation/person/personOutputviaf.rdf

Wie wir die gewonnen IDs weiterverarbeiten, müssen wir uns noch überlegen. Möglicherweise in einem Folgecommand, darüber möchte ich mir aber auch noch mit Sebastian Gedanken machen.

Für den Testauthor Bouvier matchen recht viele IDs.
Ich habe mir Viaf ein wenig (allerdings natürlich noch nicht ausreichend) angesehen.
Eine mögliche Einschränkung wäre der Einbezug eines 'Werkattributs'. Ich bezeichne das mal so, wohl nicht sehr bibliothekarisch...
Hier im Morphscript:
https://github.com/linked-swissbib/mfWorkflows/blob/master/src/main/resources/transformation/person/personOutputviaf.rdf

Leider wird der value im combine tag nicht berücksichtigt. Im Moment weiss ich nicht warum.
Hast Du eine Idee?

Meine Bitte(n):

  • Könntest Du das mal bei Dir ausprobieren und mir sagen, ob es bei Dir funktionsfähig ist?
  • Hast Du einen Idee, wie man im Morph einen solchen Wert einbeziehen könnte?
  • Könntest Du einen Vokabularnamen definieren, um solche Identifier einzubeziehen?
  • Kannst Du Dir mal die referenzierten links ansehen und darüber nachdeken, wie man ein besseres Matching erzielen könnte?

Dieses Verfahren ersetzt natürlich nicht die Methoden und Mechanismen von Felix. Wir werden heute beginnen, bei uns in Basel die Infrastruktur von Gesis aufzubauen, um seine Verfahren bei uns nachvollziehen und begleiten zu können. Am Ende werden wir -hoffentlich- ein "best of" erhalten.

Matchingverfahren und daraus Ergebnisse zu erzielen hat für mich im Moment eine sehr hohe Priorität. Wir brauchen das unbedingt, um unsere Projektziele zu erreichen. Wue gestern bereits im Skype kurz angesprochen, gibt es hier im Moment recht viele Aktivitäten. Weitere sind:

Weitere sind zum Beispiel:
https://librecatproject.wordpress.com/2015/06/03/matching-authors-against-viaf-identities/
oder
https://twitter.com/infolis_project
(ein Projekt an dem Gesis ja auch beteiligt ist)

Erstmal soviel,
Günter

@guenterh
Copy link
Member Author

@pronguen
Hallo Nicolas, noch ein Hinweis: wenn Du hier
https://github.com/linked-swissbib/mfWorkflows/blob/master/config/log4j.xml#L27
debug auf info setzt, bekommst Du nach dem Einbau des neuen commands nicht mehr so viele Logmeldungen auf der Console.

Günter

@pronguen
Copy link
Contributor

Hallo Günter,

Danke für diesen interessanten Test! Das funktioniert tip top bei mir.

Ich habe in der Morph-Datei deine "combine"-Funktion ein bisschen verändert, damit auch der Titel berücksichtigt wird (6d7ea4b). Hauptänderung ist das flushWith-Attribut mit "record" als Wert. Aber wenn der Titel von der MatchViaf-Funktion berücksichtigt ist, gibt diese dann keine Ergebnisse mehr :(

Ausserdem habe ich die VIAF-Links für Nicolas Bouvier analysiert. Ergebnisse:

VIAF ID RDF class
http://viaf.org/viaf/312204555 Expression (http://schema.org/CreativeWork)
http://viaf.org/viaf/313583522 Expression
http://viaf.org/viaf/313612467 Expression
http://viaf.org/viaf/312059458 Expression
http://viaf.org/viaf/313580733 Expression
http://viaf.org/viaf/314567671 nicht mehr in VIAF
http://viaf.org/viaf/313874072 nicht mehr in VIAF
http://viaf.org/viaf/314627443 Werk (http://schema.org/CreativeWork)
http://viaf.org/viaf/201893591 Werk
http://viaf.org/viaf/34453647 Person (http://schema.org/Person) die richtige Aufnahme!

Mein Schluss: Um die Anzahl der Links zu reduzieren sollten wir unsere Daten nur mit den VIAF-Daten, die der Klasse "Person" sind, vergleichen.

Als Vokabularname für die VIAF-ID habe ich "skos:closeMatch" verwendet:

skos:closeMatch is used to link two concepts that are sufficiently similar that they can be used interchangeably in some information retrieval applications. In order to avoid the possibility of "compound errors" when combining mappings across more than two concept schemes, skos:closeMatch is not declared to be a transitive property.

Ein anderes Problem: die VIAF-Links werden alle zusammen geliefert. Wir brauchen nur ein Link. Fall zwei oder mehr Links für uns auch ok sind, sollen diese Links in unterschiedlichen Tags erscheinen. Deshalb soll (glaube ich) deine Funktion verändert werden, damit sie die VIAF-Links als unterschiedliche Streams liefert.

Nicolas

@guenterh
Copy link
Member Author

Hallo Nicoals,
auch @sschuepbach z. Info

freut mich, dass es bei Dir gleich geklappt hat und danke für die Auswertungen. Meine Antwort jetzt nur kurz, ich bin heute ein wenig kränklich und werde kaum arbeiten können. Hier kurze Anmerkungen:

  • bist Du sicher, dass mit Deiner Umstellung im combine der Titel der Funktion mitgeliefert wird? Für mich gehört das Thema zu "Ausleuchten der schwarzen Löcher". Ich werde mir das auf jeden Fall noch ansehen
  • ich hatte eigentlich die Idee, nur gegen Klassen vom Typ Person zu suchen. Muss mir das aber noch ansehen
  • vielleicht könnte auch Sinn machen, gegen meherer Quellen zu matchen (z.B. DBPedia) VIAF enthält auch links hierauf und das könnte das Ergebnis einschränken. Ähnliches macht aber auch Felix bereits. Wir müssen das zusammen anschauen. Der Rechner in Basel, auf dem wir die Arbeiten von Felix nachvollziehen können, sollte im Laufe der kommenden Woche fertig werden.
  • doppelte links: ja das ist unschön. Ich kann das aber im Moment nicht verhindern. Ich vermisse im metamorph eine tokenizer Funktion (evtl. widerspricht das dem grundsätzlichen Konzept)
    https://github.com/culturegraph/metafacture-core/blob/master/src/main/resources/morph-functions.properties
    Deswegen in meiner letzten message der Hinweis, dies in einem Folgecommand / Folge-morph zu machen. Hier müssen wir noch daran arbeiten.

Wenn wir nichts mehr voneinander hören - schönes Wochenende. Nächste Woche bist Du wieder n den Ferien?

@pronguen
Copy link
Contributor

Ja, ich bin sicher, dass der Titel geliefert wird. Ich hatte es gestern getestet. Ergebnis der Regel ohne Postprocess:

<skos:closeMatch rdf:resource="Américo##Castro####Spanien Vision und Wirklichkeit##ca. 1880-ca.1930####personname" />

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants