Open CrazyCrud opened 5 months ago
Ausgelagert? Momentan sind sie ja gar nicht drin? Was ist mit RZ-Kennung gemeint, mein Nutzername?
@brembs danke für das Feedback! Ich wollte nur mal die Überlegung festhalten, ob uni-spezifische Metadaten wie das RZ-Kürzel in einer separaten Datei gespeichert werden sollten. Für den Fall, dass bspw. die YAML-Datei mal mit Personen, die nicht an der UR sind, ausgetauscht oder nachgenutzt werden sollte.
Aktuell hätte ich aber alles in die YAML-Datei geschrieben: Die Kennung (nur beispielhaft) oder das Institut
OK, jetzt verstehe ich eher um was es geht, danke! Die Benutzerkennung würde ich nie verwenden wollen, denn damit würde ja nur noch das PW fehlen um meinen Account hacken zu können - oder sind diese Kennungen öffentliche Daten? Ich bin mir nicht sicher, glaube aber nicht, dass man die öffentlich machen sollte.
Die anderen Metadaten in dem Beispiel würden mehrheitlich eher in die XML-Dateien, denn die YAML Dateien gehören, würde ich sagen. Einige Beispiele:
Je mehr ich darüber nachdenke, umso mehr würde mir ein automatisch generierter "header" schon ganz gut gefallen. Dann aber ganz oben, würde ich sagen, und nicht da wo "metadata" jetzt steht. Wenn das von Ihnen auch gewünscht wäre, sollten wir uns darüber etwas dezidierter unterhalten, weil es da dann schon eine Reihe kleinerer Aspekte zu besprechen gibt, wenn da jetzt Sachen in die Datei geschrieben werden, die nicht von den Nutzenden kommt. Da gilt es mögliche Fehlbedienungen vorausschauend zu behandeln. Können wir gerne machen!
Für Institutionen scheint sich die ROR Liste immer weiter durchzusetzen, z.B.: https://ror.org/01eezs655 Viele alternative IDs sind da auch dabei. "fak11_02_09" hingegen ist total kryptisch.
dateType: "published" #
oaType: "primary" # gold_paid, gold_free, gold_olh, scoap, hybrid, offsetting, rsc, alliance, copyright_law, sherpa, before1994, individual_contract, no_oa, unknown, other, or leave empty string
subjects: ["ddc_2_570"]
institutions: ["fak11_02_09"]
createdHere: "yes" # unknown, no, partially
type: "dataset" # article, book_section, monograph, conference_item, book, thesis_rgbg, thesis, teaching_resource, video, image, audio, experiment, software, patent, journal, translation, other
mit "dateType", "oaType", "subjects", "createdHere" und "type" kann ich nicht wirklich etwas anfangen? Was sollen die bedeuten?
@brembs die NDS-Kennung und das Datum werden nun automatisch eingespielt.
Die Institutskennung beschreibt hierbei die einzelnen Fakultäten der UR, die in der ROR-Liste nicht aufgeführt sind. Man könnte aber eine ROR-Kennung noch hinzunehmen. Die Fakultät wäre ein Pflichtfeld für den Publikationsserver, kann aber dann auch manuell in der Eingabemaske nachgetragen werden, wenn man sie nicht in der YML-Datei mitangeben wollen würde.
Die "Subejcts" sind in der der DDC-Notation kodiert. Hier könnte man im Hintergrund auch eine Mappingtabelle anlegen, mit deren Hilfe man (offizielle) DDC-Notation in das kryptische DDC-Fomat des Publikationsserver übersetzten lassen könnte. "ddc_2_570" steht im Publikationsserver dabei für die DDC-Notation "Biowissenschaft, Biologie"
Der OA-Typ gibt an, ob und falls, um welche Art der OpenAccess-Veröffentlichung es sich handelt. Diese Werte werden vom Publikationsserver ebenfalls fest vorgegeben und sollten aber zwingend angegeben werden.
"createdHere" gibt an, ob die Publikation an der UR entstanden ist:
Hier könnte man aber auch "Keine Angabe" anklicken, um das Feld zu umgehen.
"dateType" habe ich aus der YML-Datei entfernt, da es sich wahrscheinlich immer um das "Veröffentlichungsdatum" handeln wird, wenn etwas am Publikationsserver hochgeladen werden sollte. Ansonsten wäre
OK, damit kann ich jetzt etwas anfangen. Vielen Dank! Ich versuche mal, das in unserer YAML Datei zu implementieren.
Habe das jetzt mal so gelöst, dass die YAML Dateien so anfangen:
---
meta-data:
- institution:
name: Universität Regensburg
id: 01eezs655
- department:
name: Neurogenetics
id: aaa12345
- subject:
name: Biology
id: ddc_2_570
- data.type:
name: dataset
id:
- licenses:
name: ODC-PDDL-1.0
uri: http://opendatacommons.org/licenses/pddl
Was mir noch fehlen würde, wäre ein ID für "type", oder gibt es das nicht? Würde das jetzt soo ausreichen?
Vielen Dank! Das würde auf jeden Fall so ausreichen und ich würde es dann auch direkt so einarbeiten, wenn für Sie nichts dagegen spricht.
Die Typen wären wie folgt (und für Datensätze gleich dataset
):
OK, wenn es kein ID für "type" gibt, dann lasse ich das eben weg. Einfach Bescheid geben, wenn wir das testen können, habe einen Datensatz bereit. Ich muss dann noch auf meiner Seite die Dokumentation der YAML Datei auf den entsprechenden Stand bringen und aufpassen, dass mir meine Auswertungen nicht abstürzen, mit der neuen YAML Datei.
Der "type"-Name wäre in eprints quasi die ID.
Ich habe den aktuellen Stand gepusht und hoffe, dass es soweit passt. Dieser könnte gerne getestet werden.
Ich habe der YML-Datei noch den Key oa.type
hnzugefügt. Die möglichen Werte würden in der READM.me stehen.
OK, für das oa.type gibt es dann auch nur einen "name" und kein "ID", wenn ich das richtig sehe? Dann würde ich das kommende Woche mal testen!
Wie es aussieht, mag der Server unsere "licenses" nicht?
C:\WINDOWS\system32>python B:\GitHub\DTSsynchronization\synchronization\eprints_sword.py -p D:\data\FoxP_aPKC_OMR -v
B:\GitHub\DTSsynchronization\synchronization\eprints_sword.py:232: SyntaxWarning: invalid escape sequence '\/'
regex = "text\/html.*\/document\/\d+"
B:\GitHub\DTSsynchronization\synchronization\eprints_sword.py:238: SyntaxWarning: invalid escape sequence '\/'
m = re.search('(?<=\/document\/)\d+', match)
B:\GitHub\DTSsynchronization\synchronization\eprints_sword.py:260: SyntaxWarning: invalid escape sequence '\<'
ep_timestamp = re.search('(?<=\<updated\>).*(?=T)', resp.text)
B:\GitHub\DTSsynchronization\synchronization\eprints_sword.py:272: SyntaxWarning: invalid escape sequence '\/'
m = re.search('(?<=file\/)\d+', resp.text)
User for epub.uni-regensburg.de: brb09744
D:\data\FoxP_aPKC_OMR\FoxP_aPKC_OMR.yml
Traceback (most recent call last):
File "B:\GitHub\DTSsynchronization\synchronization\eprints_sword.py", line 419, in <module>
note = doc['licenses']['name']
~~~^^^^^^^^^^^^
KeyError: 'licenses'
Lösungsvorschlag?
Interessanterweise bekomme ich den gleichen Fehler, wenn ich den Eintrag "licenses" aus der YAML Datei lösche.
@brembs ich habe die YAML-Datei nochmals angepasst. Das Skript hat das Feld licenses
doppelt ausgelesen (einmal direkt auf oberster Ebene und einmal wie von Ihnen oben schon kommentiert https://github.com/brembslab/DTSsynchronization/issues/1#issuecomment-2155020807 unter meta-data
).
Jetzt sollte es korrekt sein.
Ich musste zusätzlich noch das Feld funding
hinzufügen (https://github.com/brembslab/DTSsynchronization/blob/89a8fe12df078754d1dcaa9400bb56b28b945192/example_data/colorlearning/colorlearning.yml#L31). Seit neustem ist das für den Publikationsserver bzw. eprints ebenfalls ein Pflichtfeld. Ich hoffe, das Feld ist an der richtigen Stelle, ansonsten kann ich es gerne auch noch an einer anderen Stelle in der YAML-Datei platzieren.
OK, wenn funding noch mit rein muss, braucht es auch PIDs für die Förderorganisationen. Die DFG zumindest hat eine ROR ID, die verwende ich jetzt. Eiegtnlich müsste da jetzt noch eine ID für das geförderte Projekt hin, oder nicht?
Der Anfang meiner YAML Datei sieht jetzt so aus:
---
meta-data:
- institution:
name: Universität Regensburg
id: 01eezs655 #ROR ID
- department:
name: Neurogenetics
id: aaa12345 #NDS ID
- subject:
name: Biology
id: ddc_2_570 #DDC ID
- data.type:
name: dataset
- oa.type:
name: primary
- funding:
received.funding: yes
acknowledged.funders: yes
- name: DFG
title: Deutsche Forschungsgemeinschaft
description: Die Deutsche Forschungsgemeinschaft ist die Selbstverwaltungsorganisation der Wissenschaft in Deutschland.
id: 018mejw64 #ROR ID
- licenses:
name: ODC-PDDL-1.0
uri: http://opendatacommons.org/licenses/pddl
author:
name: bjoern-brembs
description: Björn Brembs
firstName: Björn
lastName: Brembs
id: 0000-0001-7824-7650
experiment:
type: Torquemeter
id: nan
name: foxp_apkc_CRISPR_torquelearning_omr
title: OMR after Torque Learning with CRISPR aPKC knock-out in FoxP-neurons
description: Testing optomotor asymmetry after standard duration torque learning in flies with aPKC CRISPR knock-out in FoxP-iB-positive neurons
resources:
Müsste das jetzt so klappen? Wo könnte man die Projekt-ID der DFG unterbringen?
Vielleicht könnte man die project IDs als "data:" unter "- name" hängen:
- funding:
received.funding: yes
acknowledged.funders: yes
- name: DFG
title: Deutsche Forschungsgemeinschaft
description: Die Deutsche Forschungsgemeinschaft ist die Selbstverwaltungsorganisation der Wissenschaft in Deutschland.
id: 018mejw64 #ROR ID
data: BR 1892/20-1
@brembs das finde ich eine gute Idee! Zwar wird vom Publikationsserver nicht gezielt nach der Fördergesellschaft gefragt, aber es wäre bestimmt sinnvoll diese mit aufzunehmen.
Ich würde Ihren Vorschlag einfach mal einarbeiten.
Bitte Bescheid sagen, wenn ich es testen kann.
@brembs Damit das YAML valide ist, hätte ich es folgendermaßen angepasst:
- funding:
received.funding: no
acknowledged.funders: no_funders
funder:
- name: DFG
- title: Deutsche Forschungsgemeinschaft
- description: Die Deutsche Forschungsgemeinschaft ist die Selbstverwaltungsorganisation der Wissenschaft in Deutschland.
- id: 018mejw64 #ROR ID
- data: BR 1892/20-1
Die Informationen zum Förderer würden einen eigenen Key benötigen (hier "funder"). Wäre das Ihrer Meinung nach in Ordnung?
Funder Key ist kein Problem, aber
received.funding: no
acknowledged.funders: no_funders
und dann einen Funder angeben ist ein Widerspruch. Müsste doch heissen:
received.funding: yes
acknowledged.funders: DFG #comma-separated list?
Oder? Auch die Spiegelstriche unter "name" müssten weg, oder, damit ich mehrere Funder verwenden kann?
So bekomme ich eine volle Validierung:
- funding:
received.funding: yes
acknowledged.funders: DFG #comma-separated list
funder:
- name: DFG
title: Deutsche Forschungsgemeinschaft
description: Die Deutsche Forschungsgemeinschaft ist die Selbstverwaltungsorganisation der Wissenschaft in Deutschland.
id: 018mejw64 #ROR ID
data: BR 1892/20-1
Metadaten würden in der YAML Datei jetzt so aussehen:
meta-data:
- institution:
name: uni_regensburg
title: Universität Regensburg
description: The University of Regensburg (UR) is a nationally and internationally highly renowned center of research and teaching with a strong tradition in international cooperation. With its twelve faculties, it has a broad variety of disciplines with an excellent research spectrum, an attractive range of courses and a high sense of social responsibility. The UR stands for diversity, an open-minded approach to the world, and shaping the future.
id: 01eezs655 #ROR ID
- department:
name: neurogenetics
title: Institut für Zoologie - Neurogenetik
description: The laboratory of Björn Brembs studies the neurobiology of operant learning and spontaneous behavior.
id: aaa12345 #NDS ID
- subject:
name: Biology
id: ddc_2_570 #DDC ID
- data.type:
name: dataset
- oa.type:
name: primary
- funding:
received.funding: yes
acknowledged.funders: DFG #comma-separated list
funder:
- name: DFG
title: Deutsche Forschungsgemeinschaft
description: The Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) is the central self-governing research funding organisation in Germany.
id: 018mejw64 #ROR ID
data: BR 1892/20-1
Kann ich das so testen? Oder gibt es noch etwas anzupassen?
@brembs das aktuelle Skript kann gerne getestet werden!
- department:
name: neurogenetics
title: Institut für Zoologie - Neurogenetik
description: The laboratory of Björn Brembs studies the neurobiology of operant learning and spontaneous behavior.
id: aaa12345 #NDS ID
Eine Anmerkung: Die id
des Departements müsste für Ihr Institut den Wert fak11_02_09
haben, damit es vom Publikationsserver erkannt wird.
Wo finde ich denn die Institutskennungen? Suche nun schon eine Weile, finde aber nichts?
Hier ist eine Übersicht der Departements, die am Publikationsserver hinterlegt ist (gezippte XML-Datei, weil Github nicht erlaubt, XML-Dateien hochzuladen):
subjects_ur.zip
OK, vielen Dank! Wo kommt jetzt dieses Schema her? Ist das ein Standard, oder hat sich das jemand ausgedacht? Link gibt es anscheinend keinen dafür, oder? Habe das jetzt erstmal mit " #proprietary library ID" gekennzeichnet, oder gibt es da etwas passenderes?
@brembs Gerne! Ich bin hierzu noch auf der Suche. So viel ich weiß, werden die IDs von der Verwaltung der Universität vergeben. Am Publikationsserver sind sie statisch eingefügt, weswegen ich aktuell nicht weiß, ob es eine offizielle Schnittstelle zum Abfragen der IDs gibt.
Danke sehr, werde es dann diese Woche noch testen. Die Details um diese eine ID lösen wir dann im Nachgang, finde ich nicht super wichtig gerade.
Sollen folgende Metadaten aus der YAML-Datei ausgelagert werden?