brembslab / DTSsynchronization

Live upload of DTS raw research data and evaluation sheets
GNU General Public License v3.0
0 stars 0 forks source link

Universitätsspezifische Metadaten #1

Open CrazyCrud opened 5 months ago

CrazyCrud commented 5 months ago

Sollen folgende Metadaten aus der YAML-Datei ausgelagert werden?

brembs commented 5 months ago

Ausgelagert? Momentan sind sie ja gar nicht drin? Was ist mit RZ-Kennung gemeint, mein Nutzername?

CrazyCrud commented 5 months ago

@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

brembs commented 5 months ago

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!

CrazyCrud commented 5 months ago
brembs commented 5 months ago

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?

CrazyCrud commented 4 months ago

@brembs die NDS-Kennung und das Datum werden nun automatisch eingespielt.

brembs commented 4 months ago

OK, damit kann ich jetzt etwas anfangen. Vielen Dank! Ich versuche mal, das in unserer YAML Datei zu implementieren.

brembs commented 3 months ago

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?

CrazyCrud commented 3 months ago

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):

brembs commented 3 months ago

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.

CrazyCrud commented 3 months ago

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.

brembs commented 3 months ago

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!

brembs commented 2 months ago

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?

brembs commented 2 months ago

Interessanterweise bekomme ich den gleichen Fehler, wenn ich den Eintrag "licenses" aus der YAML Datei lösche.

CrazyCrud commented 2 months ago

@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.

brembs commented 1 month ago

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?

brembs commented 1 month ago

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
CrazyCrud commented 1 week ago

@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.

brembs commented 1 week ago

Bitte Bescheid sagen, wenn ich es testen kann.

CrazyCrud commented 6 days ago

@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?

brembs commented 6 days ago

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?

brembs commented 6 days ago

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
brembs commented 6 days ago

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?

CrazyCrud commented 6 days ago

@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.

brembs commented 6 days ago

Wo finde ich denn die Institutskennungen? Suche nun schon eine Weile, finde aber nichts?

CrazyCrud commented 6 days ago

Hier ist eine Übersicht der Departements, die am Publikationsserver hinterlegt ist (gezippte XML-Datei, weil Github nicht erlaubt, XML-Dateien hochzuladen):
subjects_ur.zip

brembs commented 6 days ago

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?

CrazyCrud commented 6 days ago

@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.

brembs commented 6 days ago

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.