OPUS4 / application

OPUS 4 application.
Other
15 stars 21 forks source link

Bereinigungsskript für doppelte Dokumente anhand von DOIs #1159

Closed j3nsch closed 9 months ago

j3nsch commented 10 months ago

Das Skript sollte als Input eine Liste von zu überprüfenden DOIs bekommen und dann nach folgenden Regeln Dokumente entfernen.

Sind weitere Punkte zu berücksichtigen?

j3nsch commented 10 months ago

Für die Zukunft könnten wir neue Import-Regeln implementieren, die mehrfach Importe unterbinden. Hier geht es um eine nachträglich Bereinigung.

j3nsch commented 10 months ago

@slohrum @alw-bsz Ich habe hier mal festgehalten, was mir zu dem Skript eingefallen ist. Ich würde das Skript dann Teil des Standard-OPUS 4 machen und vermutlich als Kommando zum bin/opus4 Tool hinzufügen.

Ich denke die DOIs sollten als einfache Textdatei geliefert werden.

j3nsch commented 10 months ago

@vgerlach, @ViciJ FYI

j3nsch commented 10 months ago

Das Skript würde Dokumente über die OPUS 4-APIs löschen.

vgerlach commented 10 months ago

Ist diese Anforderung nur aus der doppelten Lieferung durch DeepGreen entstanden oder gibt es darüber hinaus Bedarf für diese Funktionalität?

j3nsch commented 9 months ago

Die erste Testversion für OPUS 4.8 liegt auf dem Branch duplicates1159. Der Branch doiSkript1159 ist für 4.8.1 und wird erst wieder aktualisiert, wenn die 4.8er Version fertig und als Patch Releases 4.8.0.3 veröffentlicht ist. Eine Version für OPUS 4.7.x ist nicht geplant.

j3nsch commented 9 months ago

Das neue Kommando bin/opus4 document:duplicates ist auf dem Branch duplicates1159 als Patch für OPUS 4.8 verfügbar. Es muss ein Composer Update ausgeführt werden, weil das Framework angepasst werden musste. Das Tool soll jetzt im Hosting getestet werden, bevor es als OPUS 4.8.0.3 Patch Release veröffentlicht wird.

Man kann DOIs für die Überprüfung angeben oder die gesamte Datenbank nach doppelten DOIs durchsuchen lassen. Die Ergebnisse können as CSV-Datei ausgegeben werden.

Alle DOIs prüfen und Report generieren:

$ bin/opus4 doc:dup --csv-report report.csv

Alle DOIs prüfen und jüngere Dokumente mit doppelter DOI, im Zustand UNPUBLISHED löschen:

$ bin/opus4 doc:dup --remove

Weitere Hilfe zum Kommando bekommt man mit:

$ bin/opus4 help document:duplicates

Wie immer kann das Kommando abgekürzt werden, also z.B.

$ bin/opus4 help doc:dup

Ideen für Verbesserungen bzw. Hinweise zu Problemen bitte hier oder in neuen Issues melden. Das Tool ist erst einmal sehr rudimentär umgesetzt und auch kleinere Sachen, wie die Ausgaben oder die Namen von Optionen usw. können und sollten sicherlich noch weiter verbessert werden. Vielen Dank!

j3nsch commented 9 months ago

Der CSV-Report sollte für einen Dry-Run mit --remove Option, die Dokumente markieren, die gelöscht würden.

j3nsch commented 9 months ago

Es sollte möglich sein doppelte Dokumente zu markieren und in der Administration sichtbar zu machen.

Das ist ein größeres Thema, das in separaten Issues behandelt werden muss. Die Information müsste in den Metadaten vermerkt werden, eine Facette wäre gut, eine Anzeige der doppelten Dokumente in der Frontdoor (für Administratoren) und eine automatische Bereinigung der Verlinkung in den Metadaten, wenn doppelte Dokumente gelöscht werden. Das sind zu viele Punkte für einen Patch-Release. Eine Umsetzung mit einer späteren Version ist aber denkbar.

j3nsch commented 9 months ago

Der Patch-Release ist für den 28. Nov 2023 geplant.

j3nsch commented 9 months ago

Der Branch duplicates1159 enthält jetzt auch noch ein Kommando document:diff, das verwendet werden kann, um zwei oder mehr Dokumente miteinander zu vergleichen. Anstatt von Dokument-IDs, kann auch eine DOI angegeben werden, um alle Dokumente mit dieser DOI zu vergleichen.

Der Vergleich ist bislang sehr rudimentär und dient dem Überblick. Bei Texten, wie Titeln und Zusammenfassungen (abstracts) werden nicht die genauen Unterschiede hervorgehoben. Komplexe Daten, wie Personen und Patente, werden nicht mit allen Metadaten angezeigt. Zusätzliche Wünsche können hier oder in neuen Issues festgehalten werden.