worked on by: Julius Harms
Hintergrund zur Review Quality Collector Initiative:
Forscher_innen streben vor allem nach Ansehen (Reputation). Die bekommt man aktuell vor allem durch Publikationen. Allerdings ist auch das Begutachten der Artikel anderer Forscher_innen (
peer review) eine enorm wichtige Aufgabe im Wissenschaftssystem. Deren Erledigung krankt heute oft daran, dass Begutachten fast keine Reputation liefert; viele Forscher_innen geben sich dabei deshalb viel zu wenig Mühe und machen diesen wichtigen Job mehr schlecht als recht.
Review Quality Collector ist eine Initiative, um das künftig zu ändern: Forscher_innen bekommen für die Begutachtungen eine Quittung, die die Qualität der Arbeit quantifiziert und als Reputationsquelle dienen kann -- im Erfolgsfall wäre das eine gewaltige Verbesserung der Art, wie das Wissenschaftssystem funktioniert.
Damit RQC funktionieren kann, müssen die Manuskriptverwaltungssysteme (MHS: manuscript handling system) der Zeitschriften, über die die Artikelentwürfe bei den Zeitschriften eingereicht und dann von den Zeitschriften die Begutachtungen abgewickelt werden, die Begutachtungsdaten an RQC reichen. Dafür gibt es auf der RQC-Seite
eine API.
Auf der MHS-Seite muss als Gegenstück eine Erweiterung gebaut werden, die die Reviewer um Zustimmung fragt und dann die RQC-API anspricht. Das erste MHS, für das eine solche Erweiterung existiert, ist
Open Journal Systems (OJS).
Der Text in diesem Abschnitt wurde von der Seite des ähnlichen Themas RQC-Erweiterung für PLOS Ambra übernommen.
Hintergrund zu Janeway:
Ähnlich wie OJS ist Janeway auch eine digitale Plattform für das wissenschaftliche Publizieren (MHS) und bietet einen eigenen Arbeitsablauf zur Einreichung, Begutachtung, Korrektur und Veröffentlichung von Artikeln. Janeway wurde 2017 am Centre for Technology and Publishing in Birbeck veröffentlicht und wird seitdem von einem Entwickler-Team der Open Library of Humanities an der University of Birbeck London weiterentwickelt. Die Software ist unter der Open-Source AGPL v3 Lizenz lizenziert und öffentlich auf
GitHub abrufbar (
https://github.com/openlibhums/janeway). Janeway ist in Python (3.10+) geschrieben und benutzt das Django Framework 4.2.
Aufgabenstellung
Die Zielstellung der Arbeit ist es ein Plugin für Janeway zu entwicklen, welches die Anbindung von Janeway and RQC Quality Collector ermöglicht. Dadurch können dann Gutachten (Reviews), welche über Janeway verwaltet werden an RQC gesendet werden. Dazu muss das Plugin die API Anforderungen von RQC erfüllen.
Unter anderem fällt hauptsächlich darunter:
- Funktionalität, um Reviewer die opt-in/opt-out-Frage zu stellen und das Ergebnis zu speichern.
- Funktionalität, um einen Satz Reviewdaten an RQC zu schicken und ggf. den Benutzer zu RQC zu lenken.
- Funktionalität, um RQC-Journaldaten (ID, Key) in Janeway einzugeben und abzulegen.
Zudem sollen bei der Arbeit folgende Punkte beachtet werden:
- Idealerweise: automatisierte Integrationstests für all dies.
- In der schriftlichen Ausarbeitung sind a) die Architektur der Lösung vorzustellen und b) zu beschreiben, was die Vorgehensweise war, wo dabei die Herausforderungen lagen und wie sie überwunden wurden.
Ergebnisse
Das
GitHub -Projekt für das Plugin kann
hier gefunden werden.
Im Rahmen der Arbeit wurden alle nötigen Funktionailtäten (auf der Seite des Plugins) implementiert um RQC in Janeway zu benutzten.
Ein Problem besteht. Derzeit wird kein Ereignis ausgelöst wenn Revisionen in Janeway angefragt werden. Dadurch wird das Plugin in diesem Fall nicht korrekt benachrichtigt, wodurch kein impliziter API-Aufruf an RQC erfolgen kann. Um das zu beheben und das Hauptsystem um diese Funktionalität zu erweitern habe ich folgenden PR beantragt:
https://github.com/openlibhums/janeway/pull/4980.
Qualitätssicherung
Zur Qualitätssicherung wurde eine Test-Suite mit 47 Tests geschrieben. Diese umfassen Unit- und Integrationstests. Zum Beispiel wird getestet, ob die Templates des Plugins über Hooks bei Anfrage der entsprechenden Tempaltes des Hauptsystems geladen werden, oder dass nur Benutzer mit den korrekten Rollen bestimmte Funktionen ausführen können (Submission-Daten versenden, Journal-ID und API-Key konfigurieren etc.), dass Typen von redaktionellen Entscheidungen in Janeway ("Accept","Decline", etc.) auf die korrekten Gegenstücke der RQC-API und so weiter.
Delayed Calls
Die Funktionalität verzögerte API-Aufrufe (Delayed-Calls) auszuführen, kann mit dem rqc_install_cronjob Management-Command installiert werden. Wichtig ist, dass die Cron-Umgebung aber derzeit noch manuell kofiguriert werden muss um Djago-Management Commands in Janeway ausführen zu können. Je nachdem wie das System kofiguriert ist, auf dem Janeway läuft, sieht das anders aus.
Wenn man den Janeway Docker-Container benutzt, (Installation hier:
https://janeway.readthedocs.io/en/latest/dev/installation.html ) kann man Cron wie folgt konfigurieren (Zuerst Cron installieren, dann im Crontab hinzufügen. Vielleicht muss auch ein Texteditor installiert werden. Beispielsweise: apt-install vim):
SHELL=/bin/bash
PATH=/usr/local/bin:/usr/bin:/bin
PYTHONPATH=/vol/janeway/src (oder generell /path/to/janeway/src)
JANEWAY_SETTINGS_MODULE=core.janeway_global_settings
DB_PASSWORD=janeway-web
DB_PORT=5432
DB_USER=janeway-web
DB_HOST=janeway-postgres
DB_VENDOR=postgres
DB_NAME=janeway
Wichtig ist, Cron benötigt Zugriff auf einen Python-Interpreter in Systempfad von Cron und die Einstellungen um auf Django, die Janeway-Settings und die Datenbank zuzugreifen!
Links