DSS data tools presentation

Author

Holger Döring and Wolfgang Zenk-Möltgen

Modified

November 6, 2023

Overview

https://hdigital.github.io/dss-presentation_data-tools/

Notes and code snippets for the DSS data tools presentation on 9. Nov. 2023 by Holger and Wolfgang.

This is our recently archived work we use as examples.

ColStudies – Wolfgang

ESS linking – Holger

The Allbus 2021 is an example of the GESIS Archive, da|ra, DataCite workflow.

Explore DOI APIs

A DOI url redirects you to a page of the record.

https://doi.org/10.5281/zenodo.8360298

You can also use the url to get structured data by specifiying a different header.

import requests

doi_url = "https://doi.org/10.5281/zenodo.8360298"

Formatted text citation

headers = {"accept": "text/x-bibliography"}
r = requests.get(doi_url, headers=headers)

r.text
'Zenk-Möltgen, W. (2023). <i>ColStudies: A web-frontend to Colectica API to register DOIs with da|ra</i> (Version v0.3) [Computer software]. Zenodo. https://doi.org/10.5281/ZENODO.8360298'

Citeproc JSON

headers = {"accept": "application/vnd.citationstyles.csl+json"}

r = requests.get(doi_url, headers=headers)

r.json()
{'type': 'book',
 'id': 'https://doi.org/10.5281/zenodo.8360298',
 'categories': ['DDI, da|ra'],
 'author': [{'family': 'Zenk-Möltgen', 'given': 'Wolfgang'}],
 'issued': {'date-parts': [[2023, 9, 19]]},
 'abstract': 'Basic ColStudies application, connect to Colectica repository, view studies, register DOIs with da|ra.',
 'DOI': '10.5281/ZENODO.8360298',
 'publisher': 'Zenodo',
 'title': 'ColStudies: A web-frontend to Colectica API to register DOIs with da|ra',
 'URL': 'https://zenodo.org/record/8360298',
 'copyright': 'MIT License',
 'version': 'v0.3'}
r = requests.get("https://doi.org/10.4232/1.14002", headers=headers)

r.json()
{'type': 'dataset',
 'id': 'https://doi.org/10.4232/1.14002',
 'language': 'de',
 'author': [{'literal': 'GESIS-Leibniz-Institut Für Sozialwissenschaften'}],
 'contributor': [{'family': 'Westle', 'given': 'Bettina'},
  {'family': 'Auspurg', 'given': 'Katrin'},
  {'family': 'Bühler', 'given': 'Christoph'},
  {'family': 'Hadjar', 'given': 'Andreas'},
  {'family': 'Hillmert', 'given': 'Steffen'},
  {'family': 'Rosar', 'given': 'Ulrich'},
  {'family': 'Wagner', 'given': 'Ulrich'},
  {'literal': 'Kantar Public, Munich'}],
 'issued': {'date-parts': [[2022]]},
 'abstract': 'Die Allgemeine Bevölkerungsumfrage der Sozialwissenschaften (ALLBUS) ist eine Trenderhebung, in der seit 1980 alle zwei Jahre eine Zufallsstichprobe der deutschen Bevölkerung befragt wird. Das primäre Ziel des Umfrageprogramms ist die Beobachtung von Einstellungen, Verhalten und sozialen Wandel in Deutschland. Jede ALLBUS-Querschnittserhebung besteht aus ein oder zwei Schwerpunktmodulen zu wechselnden Themen. Diese werden ergänzt durch weitere inhaltliche Fragen und ein Kernmodul mit detaillierten demografischen Informationen. Zudem werden Zusatzinformation zum Interview und den Interviewern bereitgestellt. Die Schwerpunktmodule folgen in der Regel einem 10-jährigen Replikationszyklus, viele Einzelindikatoren und Itembatterien werden aber auch in kürzeren Abständen repliziert. Das Schwerpunktmodul von ALLBUS 2021 befasst sich mit abweichendem Verhalten und Sanktionen. Weiterer Schwerpunkt der Erhebung war die Replikation von Fragen aus einem breiten Themenspektrum. Repliziert wurden u.a. Fragen zu Politik, sozialer Ungleichheit, Geschlechterrollen, Mediennutzung und Gesundheit. ALLBUS 2021 wurde erstmals in einem selbstadministrierten Mixed-Mode Design durchgeführt (MAIL (postalischer Selbstausfüller) und CAWI (Computer-Assisted Web Interview)). Themen: 1.) Mediennutzung:Dauer und Häufigkeit der Fernsehnutzung, Nutzungshäufigkeit von Nachrichtensendungen privater und öffentlich-rechtlicher Fernsehanbieter, Häufigkeit der Lektüre von Tageszeitungen pro Woche, Häufigkeit der Lektüre von Büchern / eBooks, Internetnutzung: Häufigkeit und Geräte, Häufigkeit der Nutzung sozialer Medien für Nachrichten und Politik, Glaubwürdigkeit verschiedener Informationsquellen beim Thema Kriminalität und öffentliche Sicherheit. 2.) Soziale Ungleichheit: Subjektive Schichteinstufung, gerechter Anteil am Lebensstandard, Zugangschancenungleichheit Bildung, Einstellungen zur sozialen Ungleichheit und zum Wohlfahrtsstaat. 3.) Ethnozentrismus und Minoritäten: Einstellungen zum Zuzug verschiedener Personengruppen, Einstellungen zu Ausländern, Kontakte zu Ausländern, antisemitische Vorurteile und Stereotype, Islamophobie, wahrgenommene Risiken und Chancen durch Flüchtlinge. 4.) Familie und Geschlechterrollen: Einstellung zur Erwerbstätigkeit von Vätern und Müttern, Arbeitsteilung mit Partner (Haushalt, Kinder), Erziehungsziele. 5.) Wertorientierungen: Arbeitsorientierungen, Einstellung zu Schwangerschaftsabbruch, Postmaterialismus (Wichtigkeit von Ruhe und Ordnung, Bürgereinfluss, Inflationsbekämpfung und freier Meinungsäußerung). 6.) Politische Einstellungen: Stolz, ein Deutscher zu sein; Vertrauen in öffentliche Einrichtungen und Organisationen: (Gesundheitswesen, Bundesverfassungsgericht, Bundestag, Stadt- und Gemeindeverwaltung, Kirchen, Justiz, Fernsehen, Zeitungswesen, Universitäten, Bundesregierung, Polizei, Parteien, Europäische Kommission, Europäisches Parlament); Verbundenheit mit Gemeinde, Bundesrepublik, EU; Steuersenkung oder Sozialleistungen, Einstellung zur Ausweitung oder Kürzung von Sozialleistungen, perzipierte Stärke von Konflikten zwischen gesellschaftlichen Gruppen, politisches Interesse, Selbsteinstufung auf einem Links-Rechts-Kontinuum, Zufriedenheit mit der Demokratie in Deutschland, Wahlabsicht (Sonntagsfrage). 7.) Abweichendes Verhalten und Sanktionen: Beurteilung der Strafpraxis von Gerichten, Kriminalitätsentwicklung, moralische Bewertung von Verhaltensweisen, deliktspezifisches Sanktionsbedürfnis (Punitivität), Wunsch nach gesetzlichem Verbot (verhaltensspezifisch), Einstellung zur Todesstrafe, selbstberichtete Delinquenz (Vergangenheit, Zukunft), wahrgenommene Entdeckungswahrscheinlichkeit, Viktimisierung (Diebstahl, Straftat), Norm Gesetzstreue, Senkung von Kriminalität durch harte Strafen (Abschreckung), Strafzwecke, Selbstkontrolle (Grasmick), Kriminalitätsfurcht, Sicherheitsgefühl in Wohnumgebung. 8.) Gesundheit: Subjektive Einschätzung des Gesundheitszustands, gesundheitliche Einschränkungen letzte 4 Wochen, Pandemien und Rechte des Staates. 9.) Religion: Religiöse Selbsteinstufung, Konfession, Häufigkeit Kirchgang / Besuch Gotteshaus. 10.) Sonstiges: Beurteilung der derzeitigen und zukünftigen Wirtschaftslage in Deutschland, Beurteilung der eigenen derzeitigen und zukünftigen wirtschaftlichen Situation, sozialer Pessimismus und Zukunftsorientierung (Anomia), interpersonales Vertrauen, subjektive Lebenszufriedenheit. 11.) ALLBUS-Demographie: Angaben zur befragten Person: Geburtsmonat, Geburtsjahr, Alter, Geschlecht, Familienstand, Staatsbürgerschaft (Nationalität), Anzahl der Staatsbürgerschaften, Herkunft, allgemeiner Schulabschluss, berufliche Ausbildung, Erwerbsstatus, Angaben zum gegenwärtigen bzw. früheren Beruf, Zugehörigkeit zum öffentlichen Dienst, wöchentliche Arbeitsdauer (Haupt- und Nebenerwerb), berufliche Aufsichtsfunktion, Furcht vor Verlust des Arbeitsplatzes, Dauer von Arbeitslosigkeit, Status der Nichterwerbstätigkeit, Zeitpunkt der Aufgabe hauptberuflicher Erwerbstätigkeit, jetzige oder frühere Gewerkschaftsmitgliedschaft, Mitgliedschaft in einer politischen Partei, monatliches Nettoeinkommen.Wohnort (Bundesland, politische Gemeindegröße, BIK-Stadtregion), Wohndauer in Deutschland, Wohndauer am Wohnort, Wohnstatus, Entfernung zum vorherigen Wohnort, Mobilitätsbereitschaft. Angaben zum Ehepartner: Geburtsmonat, Geburtsjahr, Alter, allgemeiner Schulabschluss, berufliche Ausbildung, Erwerbstätigkeit (incl. Nichterwerbsstatus), Angaben zum gegenwärtigen Beruf, Zugehörigkeit zum öffentlichen Dienst. Angaben zum nichtehelichen Lebenspartner: Geburtsmonat, Geburtsjahr, Alter, allgemeiner Schulabschluss, berufliche Ausbildung, Erwerbstätigkeit (incl. Nichterwerbsstatus), Angaben zum gegenwärtigen Beruf, Zugehörigkeit zum öffentlichen Dienst, gemeinsamer Haushalt mit befragter Person. Angaben zu den Eltern: Herkunftsland, Zusammenleben mit Eltern im Alter von 15 Jahren, allgemeiner Schulabschluss, berufliche Ausbildung, Angaben zum Beruf. Haushaltsbeschreibung: Haushaltsgröße, Haushaltseinkommen, Anzahl von über 17-jährigen Haushaltspersonen (reduzierte Haushaltsgröße). Angaben zu den einzelnen Haushaltspersonen (Haushaltsliste): Verwandtschaftsverhältnis zur befragten Person, Geschlecht, Geburtsmonat, Geburtsjahr, Alter, Familienstand. Angaben zu Kindern außerhalb des Haushalts: Zahl der Kinder außer Haus, Geschlecht, Geburtsjahr, Alter. 12.) Daten zum Interview (Paradaten): Studiennummer, Digital Object Identifier, Release, Identifikationsnummer des Befragten, Nummer des Samplepoints, Erhebungsmodus ALLBUS-Hauptbefragung, Zahl der Kontaktversuche, Anteil beantworteter Fragen, Datum Interviewbeginn und –ende, Interviewdauer, Anwesenheit weiterer Personen während des Interviews, Eingriff anderer Personen in die Beantwortung des Fragebogens, Unterbrechung der Bearbeitung des Fragebogens. 13.) Ergänzungen und abgeleitete Variablen: Postmaterialismus-Index (nach Inglehart), Berufsvercodung gemäß ISCO (International Standard Classification of Occupations) 1988 und 2008, SIOPS (nach Ganzeboom), ISEI (nach Ganzeboom), Sozioökonomische Gruppe (ESeG), ISCED (International Standard Classification of Education) 1997 und 2011, Lebensformen und Familiensituation, Transformationsgewicht für Auswertungen auf Haushaltsebene, Ost-West-Gewicht für gesamtdeutsche Auswertungen.',
 'DOI': '10.4232/1.14002',
 'publisher': 'GESIS',
 'title': 'Allgemeine Bevölkerungsumfrage der Sozialwissenschaften ALLBUS 2021',
 'URL': 'https://search.gesis.org/research_data/ZA5280?doi=10.4232/1.14002',
 'copyright': 'Alle im GESIS DBK veröffentlichten Metadaten sind frei verfügbar unter den Creative Commons CC0 1.0 Universal Public Domain Dedication. GESIS bittet jedoch darum, dass Sie alle Metadatenquellen anerkennen und sie nennen, etwa die Datengeber oder jeglichen Aggregator, inklusive GESIS selbst. Für weitere Informationen siehe https://dbk.gesis.org/dbksearch/guidelines.asp?db=d',
 'version': '2.0.0'}

Crosscite DOI APIs

https://citation.crosscite.org/docs.html#sec-4

“Currently three DOI registration agencies have implemented content negotation for their DOIs: Crossref, DataCite and mEDRA. They support a number of metadata content types, some of which are common to the three RAs.”

  • Formatted text citation // text/x-bibliography
  • BibTeX // application/x-bibtex
  • RIS // application/x-research-info-systems
  • Citeproc JSON // application/vnd.citationstyles.csl+json
  • Schema.org in JSON-LD // application/vnd.schemaorg.ld+json (only DataCite)
import time
import requests

CONTENT_TYPES = {
    "bibliography": "text/x-bibliography",
    "bibtex": "application/x-bibtex",
    "ris": "application/x-research-info-systems",
    "json-csl": "application/vnd.citationstyles.csl+json",
    "json-schema": "application/vnd.schemaorg.ld+json",
}


def get_doi_data(doi, content_type="bibliography"):
    """Return metadata for DOI."""

    url = f"https://doi.org/{doi}"
    headers = {"accept": CONTENT_TYPES[content_type]}

    return requests.get(url, headers=headers)


doi = "10.5281/zenodo.8421232"

for key in CONTENT_TYPES:
    time.sleep(2)  # pause to avoid requests limit
    doi_request = get_doi_data(doi, key)
    print(f"## DOI content type: {key}\n\n{doi_request.text}\n\n")
## DOI content type: bibliography

Bederke, P., &amp; Döring, H. (2023). <i>Linking European Social Survey (ESS) party information</i> (Version v0.1) [Computer software]. Zenodo. https://doi.org/10.5281/ZENODO.8421232


## DOI content type: bibtex

@misc{https://doi.org/10.5281/zenodo.8421232,
  doi = {10.5281/ZENODO.8421232},
  url = {https://zenodo.org/doi/10.5281/zenodo.8421232},
  author = {Bederke, Paul and Döring, Holger},
  keywords = {comparative politics, data management, survey data, voting behavior, expert surveys, validation},
  title = {Linking European Social Survey (ESS) party information},
  publisher = {Zenodo},
  year = {2023},
  copyright = {MIT License}
}



## DOI content type: ris

TY  - COMP
T1  - Linking European Social Survey (ESS) party information
AU  - Bederke, Paul
AU  - Döring, Holger
DO  - 10.5281/ZENODO.8421232
UR  - https://zenodo.org/doi/10.5281/zenodo.8421232
AB  - R code for linking European Social Survey (ESS) party information from Rounds 1–10 with social science datasets through Party Facts.
Two examples for linking ESS parties with the Chapel Hill Expert Survey (CHES) and the Parliament and Government Database (ParlGov) are provided in notebooks.
These examples are presented in a website at hdigital.github.io/ess-linking.
KW  - comparative politics
KW  - data management
KW  - survey data
KW  - voting behavior
KW  - expert surveys
KW  - validation
PY  - 2023
PB  - Zenodo
ER  - 


## DOI content type: json-csl

{
  "type": "book",
  "id": "https://doi.org/10.5281/zenodo.8421232",
  "categories": [
    "comparative politics",
    "data management",
    "survey data",
    "voting behavior",
    "expert surveys",
    "validation"
  ],
  "author": [
    {
      "family": "Bederke",
      "given": "Paul"
    },
    {
      "family": "Döring",
      "given": "Holger"
    }
  ],
  "issued": {
    "date-parts": [
      [
        2023,
        10,
        9
      ]
    ]
  },
  "abstract": "R code for linking European Social Survey (ESS) party information from Rounds 1–10 with social science datasets through Party Facts.\nTwo examples for linking ESS parties with the Chapel Hill Expert Survey (CHES) and the Parliament and Government Database (ParlGov) are provided in notebooks.\nThese examples are presented in a website at hdigital.github.io/ess-linking.",
  "DOI": "10.5281/ZENODO.8421232",
  "publisher": "Zenodo",
  "title": "Linking European Social Survey (ESS) party information",
  "URL": "https://zenodo.org/doi/10.5281/zenodo.8421232",
  "copyright": "MIT License",
  "version": "v0.1"
}


## DOI content type: json-schema

{
  "@context": "http://schema.org",
  "@type": "SoftwareSourceCode",
  "@id": "https://doi.org/10.5281/zenodo.8421232",
  "url": "https://zenodo.org/doi/10.5281/zenodo.8421232",
  "additionalType": "",
  "name": "Linking European Social Survey (ESS) party information",
  "author": [
    {
      "name": "Paul Bederke",
      "givenName": "Paul",
      "familyName": "Bederke",
      "affiliation": {
        "@type": "Organization",
        "name": "University of Konstanz, Germany"
      },
      "@type": "Person",
      "@id": "0000-0001-7555-8656"
    },
    {
      "name": "Holger Döring",
      "givenName": "Holger",
      "familyName": "Döring",
      "affiliation": {
        "@type": "Organization",
        "@id": "https://ror.org/018afyw53",
        "name": "GESIS - Leibniz-Institute for the Social Sciences"
      },
      "@type": "Person",
      "@id": "0000-0002-6616-8805"
    }
  ],
  "description": "R code for linking European Social Survey (ESS) party information from Rounds 1–10 with social science datasets through Party Facts.\nTwo examples for linking ESS parties with the Chapel Hill Expert Survey (CHES) and the Parliament and Government Database (ParlGov) are provided in notebooks.\nThese examples are presented in a website at hdigital.github.io/ess-linking.",
  "license": "https://opensource.org/licenses/MIT",
  "version": "v0.1",
  "keywords": "comparative politics, data management, survey data, voting behavior, expert surveys, validation",
  "datePublished": "2023-10-09",
  "@reverse": {
    "isBasedOn": {
      "@type": "ScholarlyArticle",
      "identifier": {
        "@type": "PropertyValue",
        "propertyID": "URL",
        "value": "https://github.com/hdigital/ess-linking/tree/v0.1"
      }
    }
  },
  "schemaVersion": "http://datacite.org/schema/kernel-4",
  "publisher": {
    "@type": "Organization",
    "name": "Zenodo"
  },
  "provider": {
    "@type": "Organization",
    "name": "datacite"
  }
}

DataCite API

https://support.datacite.org/docs/api-get-doi

Zenodo record

Zenodo uses DataCite for DOI registration.

Let’s briefly explore the DataCite API.

doi = "10.5281/zenodo.8360298"
r = requests.get(f"https://api.datacite.org/dois/{doi}")
r.json()
{'data': {'id': '10.5281/zenodo.8360298',
  'type': 'dois',
  'attributes': {'doi': '10.5281/zenodo.8360298',
   'prefix': '10.5281',
   'suffix': 'zenodo.8360298',
   'identifiers': [{'identifier': 'https://zenodo.org/record/8360299',
     'identifierType': 'URL'}],
   'alternateIdentifiers': [{'alternateIdentifierType': 'URL',
     'alternateIdentifier': 'https://zenodo.org/record/8360299'}],
   'creators': [{'name': 'Zenk-Möltgen, Wolfgang',
     'nameType': 'Personal',
     'givenName': 'Wolfgang',
     'familyName': 'Zenk-Möltgen',
     'affiliation': ['GESIS'],
     'nameIdentifiers': []}],
   'titles': [{'title': 'ColStudies: A web-frontend to Colectica API to register DOIs with da|ra'}],
   'publisher': 'Zenodo',
   'container': {},
   'publicationYear': 2023,
   'subjects': [{'subject': 'DDI, da|ra'}],
   'contributors': [],
   'dates': [{'date': '2023-09-19', 'dateType': 'Issued'}],
   'language': None,
   'types': {'ris': 'COMP',
    'bibtex': 'misc',
    'citeproc': 'article',
    'schemaOrg': 'SoftwareSourceCode',
    'resourceTypeGeneral': 'Software'},
   'relatedIdentifiers': [{'relationType': 'IsSupplementTo',
     'relatedIdentifier': 'https://github.com/moeltgen/ColStudies/tree/v0.3',
     'relatedIdentifierType': 'URL'},
    {'relationType': 'HasVersion',
     'relatedIdentifier': '10.5281/zenodo.8360299',
     'relatedIdentifierType': 'DOI'}],
   'relatedItems': [],
   'sizes': [],
   'formats': [],
   'version': 'v0.3',
   'rightsList': [{'rights': 'MIT License',
     'rightsUri': 'https://opensource.org/licenses/MIT',
     'schemeUri': 'https://spdx.org/licenses/',
     'rightsIdentifier': 'mit',
     'rightsIdentifierScheme': 'SPDX'},
    {'rights': 'Open Access',
     'rightsUri': 'info:eu-repo/semantics/openAccess'}],
   'descriptions': [{'description': 'Basic ColStudies application, connect to Colectica repository, view studies, register DOIs with da|ra.',
     'descriptionType': 'Abstract'}],
   'geoLocations': [],
   'fundingReferences': [],
   'xml': 'PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHJlc291cmNlIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtNCIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtNCBodHRwOi8vc2NoZW1hLmRhdGFjaXRlLm9yZy9tZXRhL2tlcm5lbC00LjEvbWV0YWRhdGEueHNkIj4KICA8aWRlbnRpZmllciBpZGVudGlmaWVyVHlwZT0iRE9JIj4xMC41MjgxL1pFTk9ETy44MzYwMjk4PC9pZGVudGlmaWVyPgogIDxjcmVhdG9ycz4KICAgIDxjcmVhdG9yPgogICAgICA8Y3JlYXRvck5hbWU+V29sZmdhbmcgWmVuay1Nw7ZsdGdlbjwvY3JlYXRvck5hbWU+CiAgICAgIDxhZmZpbGlhdGlvbj5HRVNJUzwvYWZmaWxpYXRpb24+CiAgICA8L2NyZWF0b3I+CiAgPC9jcmVhdG9ycz4KICA8dGl0bGVzPgogICAgPHRpdGxlPkNvbFN0dWRpZXM6IEEgd2ViLWZyb250ZW5kIHRvIENvbGVjdGljYSBBUEkgdG8gcmVnaXN0ZXIgRE9JcyB3aXRoIGRhfHJhPC90aXRsZT4KICA8L3RpdGxlcz4KICA8cHVibGlzaGVyPlplbm9kbzwvcHVibGlzaGVyPgogIDxwdWJsaWNhdGlvblllYXI+MjAyMzwvcHVibGljYXRpb25ZZWFyPgogIDxzdWJqZWN0cz4KICAgIDxzdWJqZWN0PkRESSwgZGF8cmE8L3N1YmplY3Q+CiAgPC9zdWJqZWN0cz4KICA8ZGF0ZXM+CiAgICA8ZGF0ZSBkYXRlVHlwZT0iSXNzdWVkIj4yMDIzLTA5LTE5PC9kYXRlPgogIDwvZGF0ZXM+CiAgPHJlc291cmNlVHlwZSByZXNvdXJjZVR5cGVHZW5lcmFsPSJTb2Z0d2FyZSIvPgogIDxhbHRlcm5hdGVJZGVudGlmaWVycz4KICAgIDxhbHRlcm5hdGVJZGVudGlmaWVyIGFsdGVybmF0ZUlkZW50aWZpZXJUeXBlPSJ1cmwiPmh0dHBzOi8vemVub2RvLm9yZy9yZWNvcmQvODM2MDI5OTwvYWx0ZXJuYXRlSWRlbnRpZmllcj4KICA8L2FsdGVybmF0ZUlkZW50aWZpZXJzPgogIDxyZWxhdGVkSWRlbnRpZmllcnM+CiAgICA8cmVsYXRlZElkZW50aWZpZXIgcmVsYXRlZElkZW50aWZpZXJUeXBlPSJVUkwiIHJlbGF0aW9uVHlwZT0iSXNTdXBwbGVtZW50VG8iPmh0dHBzOi8vZ2l0aHViLmNvbS9tb2VsdGdlbi9Db2xTdHVkaWVzL3RyZWUvdjAuMzwvcmVsYXRlZElkZW50aWZpZXI+CiAgICA8cmVsYXRlZElkZW50aWZpZXIgcmVsYXRlZElkZW50aWZpZXJUeXBlPSJET0kiIHJlbGF0aW9uVHlwZT0iSGFzVmVyc2lvbiI+MTAuNTI4MS96ZW5vZG8uODM2MDI5OTwvcmVsYXRlZElkZW50aWZpZXI+CiAgPC9yZWxhdGVkSWRlbnRpZmllcnM+CiAgPHZlcnNpb24+djAuMzwvdmVyc2lvbj4KICA8cmlnaHRzTGlzdD4KICAgIDxyaWdodHMgcmlnaHRzVVJJPSJodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVCI+TUlUIExpY2Vuc2U8L3JpZ2h0cz4KICAgIDxyaWdodHMgcmlnaHRzVVJJPSJpbmZvOmV1LXJlcG8vc2VtYW50aWNzL29wZW5BY2Nlc3MiPk9wZW4gQWNjZXNzPC9yaWdodHM+CiAgPC9yaWdodHNMaXN0PgogIDxkZXNjcmlwdGlvbnM+CiAgICA8ZGVzY3JpcHRpb24gZGVzY3JpcHRpb25UeXBlPSJBYnN0cmFjdCI+Jmx0O3AmZ3Q7QmFzaWMgQ29sU3R1ZGllcyBhcHBsaWNhdGlvbiwgY29ubmVjdCB0byBDb2xlY3RpY2EgcmVwb3NpdG9yeSwgdmlldyBzdHVkaWVzLCByZWdpc3RlciBET0lzIHdpdGggZGF8cmEuJmx0Oy9wJmd0OzwvZGVzY3JpcHRpb24+CiAgPC9kZXNjcmlwdGlvbnM+CjwvcmVzb3VyY2U+',
   'url': 'https://zenodo.org/record/8360298',
   'contentUrl': None,
   'metadataVersion': 2,
   'schemaVersion': 'http://datacite.org/schema/kernel-4',
   'source': 'mds',
   'isActive': True,
   'state': 'findable',
   'reason': None,
   'viewCount': 0,
   'viewsOverTime': [],
   'downloadCount': 0,
   'downloadsOverTime': [],
   'referenceCount': 0,
   'citationCount': 1,
   'citationsOverTime': [{'year': '2023', 'total': 1}],
   'partCount': 0,
   'partOfCount': 0,
   'versionCount': 1,
   'versionOfCount': 0,
   'created': '2023-09-19T15:15:25.000Z',
   'registered': '2023-09-19T15:15:26.000Z',
   'published': '2023',
   'updated': '2023-09-19T15:28:57.000Z'},
  'relationships': {'client': {'data': {'id': 'cern.zenodo',
     'type': 'clients'}},
   'provider': {'data': {'id': 'cern', 'type': 'providers'}},
   'media': {'data': {'id': '10.5281/zenodo.8360298', 'type': 'media'}},
   'references': {'data': []},
   'citations': {'data': []},
   'parts': {'data': []},
   'partOf': {'data': []},
   'versions': {'data': [{'id': '10.5281/zenodo.8360299', 'type': 'dois'}]},
   'versionOf': {'data': []}}}}

A dataset registered with DataCite through da|ra.

doi = "10.4232/1.14002"
r = requests.get(f"https://api.datacite.org/dois/{doi}")
r.json()
{'data': {'id': '10.4232/1.14002',
  'type': 'dois',
  'attributes': {'doi': '10.4232/1.14002',
   'prefix': '10.4232',
   'suffix': '1.14002',
   'identifiers': [{'identifier': 'ZA5280', 'identifierType': 'ZA-No.'},
    {'identifier': 'ALLBUS', 'identifierType': 'FDZ'}],
   'alternateIdentifiers': [{'alternateIdentifierType': 'ZA-No.',
     'alternateIdentifier': 'ZA5280'},
    {'alternateIdentifierType': 'FDZ', 'alternateIdentifier': 'ALLBUS'}],
   'creators': [{'name': 'GESIS-Leibniz-Institut Für Sozialwissenschaften',
     'nameType': 'Organizational',
     'affiliation': [],
     'nameIdentifiers': []}],
   'titles': [{'lang': 'de',
     'title': 'Allgemeine Bevölkerungsumfrage der Sozialwissenschaften ALLBUS 2021'},
    {'lang': 'en',
     'title': 'ALLBUS/GGSS 2021 (Allgemeine Bevölkerungsumfrage der Sozialwissenschaften/German General Social Survey 2021)'}],
   'publisher': 'GESIS',
   'container': {},
   'publicationYear': 2022,
   'subjects': [],
   'contributors': [{'name': 'Westle, Bettina',
     'nameType': 'Personal',
     'givenName': 'Bettina',
     'familyName': 'Westle',
     'affiliation': ['Universität Marburg'],
     'contributorType': 'Researcher',
     'nameIdentifiers': []},
    {'name': 'Auspurg, Katrin',
     'nameType': 'Personal',
     'givenName': 'Katrin',
     'familyName': 'Auspurg',
     'affiliation': ['LMU München'],
     'contributorType': 'Researcher',
     'nameIdentifiers': []},
    {'name': 'Bühler, Christoph',
     'nameType': 'Personal',
     'givenName': 'Christoph',
     'familyName': 'Bühler',
     'affiliation': ['Universität Hannover'],
     'contributorType': 'Researcher',
     'nameIdentifiers': []},
    {'name': 'Hadjar, Andreas',
     'nameType': 'Personal',
     'givenName': 'Andreas',
     'familyName': 'Hadjar',
     'affiliation': ['Universität Luxemburg'],
     'contributorType': 'Researcher',
     'nameIdentifiers': []},
    {'name': 'Hillmert, Steffen',
     'nameType': 'Personal',
     'givenName': 'Steffen',
     'familyName': 'Hillmert',
     'affiliation': ['Universität Tübingen'],
     'contributorType': 'Researcher',
     'nameIdentifiers': []},
    {'name': 'Rosar, Ulrich',
     'nameType': 'Personal',
     'givenName': 'Ulrich',
     'familyName': 'Rosar',
     'affiliation': ['Universität Düsseldorf'],
     'contributorType': 'Researcher',
     'nameIdentifiers': []},
    {'name': 'Wagner, Ulrich',
     'nameType': 'Personal',
     'givenName': 'Ulrich',
     'familyName': 'Wagner',
     'affiliation': ['Universität Marburg'],
     'contributorType': 'Researcher',
     'nameIdentifiers': []},
    {'name': 'Kantar Public, Munich',
     'nameType': 'Organizational',
     'affiliation': [],
     'contributorType': 'DataCollector',
     'nameIdentifiers': []}],
   'dates': [{'date': '2021-06/2021-08', 'dateType': 'Collected'},
    {'date': '2022', 'dateType': 'Issued'}],
   'language': 'de',
   'types': {'ris': 'DATA',
    'bibtex': 'misc',
    'citeproc': 'dataset',
    'schemaOrg': 'Dataset',
    'resourceType': 'NumerischNumeric',
    'resourceTypeGeneral': 'Dataset'},
   'relatedIdentifiers': [{'relationType': 'IsNewVersionOf',
     'relatedIdentifier': '10.4232/1.13954',
     'relatedIdentifierType': 'DOI'}],
   'relatedItems': [],
   'sizes': [],
   'formats': [],
   'version': '2.0.0',
   'rightsList': [{'lang': 'de',
     'rights': 'Alle im GESIS DBK veröffentlichten Metadaten sind frei verfügbar unter den Creative Commons CC0 1.0 Universal Public Domain Dedication. GESIS bittet jedoch darum, dass Sie alle Metadatenquellen anerkennen und sie nennen, etwa die Datengeber oder jeglichen Aggregator, inklusive GESIS selbst. Für weitere Informationen siehe https://dbk.gesis.org/dbksearch/guidelines.asp?db=d'},
    {'lang': 'en',
     'rights': 'All metadata from GESIS DBK are available free of restriction under the Creative Commons CC0 1.0 Universal Public Domain Dedication. However, GESIS requests that you actively acknowledge and give attribution to all metadata sources, such as the data providers and any data aggregators, including GESIS. For further information see https://dbk.gesis.org/dbksearch/guidelines.asp'}],
   'descriptions': [{'lang': 'de',
     'description': 'Die Allgemeine Bevölkerungsumfrage der Sozialwissenschaften (ALLBUS) ist eine Trenderhebung, in der seit 1980 alle zwei Jahre eine Zufallsstichprobe der deutschen Bevölkerung befragt wird. Das primäre Ziel des Umfrageprogramms ist die Beobachtung von Einstellungen, Verhalten und sozialen Wandel in Deutschland. Jede ALLBUS-Querschnittserhebung besteht aus ein oder zwei Schwerpunktmodulen zu wechselnden Themen. Diese werden ergänzt durch weitere inhaltliche Fragen und ein Kernmodul mit detaillierten demografischen Informationen. Zudem werden Zusatzinformation zum Interview und den Interviewern bereitgestellt. Die Schwerpunktmodule folgen in der Regel einem 10-jährigen Replikationszyklus, viele Einzelindikatoren und Itembatterien werden aber auch in kürzeren Abständen repliziert. Das Schwerpunktmodul von ALLBUS 2021 befasst sich mit abweichendem Verhalten und Sanktionen. Weiterer Schwerpunkt der Erhebung war die Replikation von Fragen aus einem breiten Themenspektrum. Repliziert wurden u.a. Fragen zu Politik, sozialer Ungleichheit, Geschlechterrollen, Mediennutzung und Gesundheit. ALLBUS 2021 wurde erstmals in einem selbstadministrierten Mixed-Mode Design durchgeführt (MAIL (postalischer Selbstausfüller) und CAWI (Computer-Assisted Web Interview)). Themen: 1.) Mediennutzung:Dauer und Häufigkeit der Fernsehnutzung, Nutzungshäufigkeit von Nachrichtensendungen privater und öffentlich-rechtlicher Fernsehanbieter, Häufigkeit der Lektüre von Tageszeitungen pro Woche, Häufigkeit der Lektüre von Büchern / eBooks, Internetnutzung: Häufigkeit und Geräte, Häufigkeit der Nutzung sozialer Medien für Nachrichten und Politik, Glaubwürdigkeit verschiedener Informationsquellen beim Thema Kriminalität und öffentliche Sicherheit. 2.) Soziale Ungleichheit: Subjektive Schichteinstufung, gerechter Anteil am Lebensstandard, Zugangschancenungleichheit Bildung, Einstellungen zur sozialen Ungleichheit und zum Wohlfahrtsstaat. 3.) Ethnozentrismus und Minoritäten: Einstellungen zum Zuzug verschiedener Personengruppen, Einstellungen zu Ausländern, Kontakte zu Ausländern, antisemitische Vorurteile und Stereotype, Islamophobie, wahrgenommene Risiken und Chancen durch Flüchtlinge. 4.) Familie und Geschlechterrollen: Einstellung zur Erwerbstätigkeit von Vätern und Müttern, Arbeitsteilung mit Partner (Haushalt, Kinder), Erziehungsziele. 5.) Wertorientierungen: Arbeitsorientierungen, Einstellung zu Schwangerschaftsabbruch, Postmaterialismus (Wichtigkeit von Ruhe und Ordnung, Bürgereinfluss, Inflationsbekämpfung und freier Meinungsäußerung). 6.) Politische Einstellungen: Stolz, ein Deutscher zu sein; Vertrauen in öffentliche Einrichtungen und Organisationen: (Gesundheitswesen, Bundesverfassungsgericht, Bundestag, Stadt- und Gemeindeverwaltung, Kirchen, Justiz, Fernsehen, Zeitungswesen, Universitäten, Bundesregierung, Polizei, Parteien, Europäische Kommission, Europäisches Parlament); Verbundenheit mit Gemeinde, Bundesrepublik, EU; Steuersenkung oder Sozialleistungen, Einstellung zur Ausweitung oder Kürzung von Sozialleistungen, perzipierte Stärke von Konflikten zwischen gesellschaftlichen Gruppen, politisches Interesse, Selbsteinstufung auf einem Links-Rechts-Kontinuum, Zufriedenheit mit der Demokratie in Deutschland, Wahlabsicht (Sonntagsfrage). 7.) Abweichendes Verhalten und Sanktionen: Beurteilung der Strafpraxis von Gerichten, Kriminalitätsentwicklung, moralische Bewertung von Verhaltensweisen, deliktspezifisches Sanktionsbedürfnis (Punitivität), Wunsch nach gesetzlichem Verbot (verhaltensspezifisch), Einstellung zur Todesstrafe, selbstberichtete Delinquenz (Vergangenheit, Zukunft), wahrgenommene Entdeckungswahrscheinlichkeit, Viktimisierung (Diebstahl, Straftat), Norm Gesetzstreue, Senkung von Kriminalität durch harte Strafen (Abschreckung), Strafzwecke, Selbstkontrolle (Grasmick), Kriminalitätsfurcht, Sicherheitsgefühl in Wohnumgebung. 8.) Gesundheit: Subjektive Einschätzung des Gesundheitszustands, gesundheitliche Einschränkungen letzte 4 Wochen, Pandemien und Rechte des Staates. 9.) Religion: Religiöse Selbsteinstufung, Konfession, Häufigkeit Kirchgang / Besuch Gotteshaus. 10.) Sonstiges: Beurteilung der derzeitigen und zukünftigen Wirtschaftslage in Deutschland, Beurteilung der eigenen derzeitigen und zukünftigen wirtschaftlichen Situation, sozialer Pessimismus und Zukunftsorientierung (Anomia), interpersonales Vertrauen, subjektive Lebenszufriedenheit. 11.) ALLBUS-Demographie: Angaben zur befragten Person: Geburtsmonat, Geburtsjahr, Alter, Geschlecht, Familienstand, Staatsbürgerschaft (Nationalität), Anzahl der Staatsbürgerschaften, Herkunft, allgemeiner Schulabschluss, berufliche Ausbildung, Erwerbsstatus, Angaben zum gegenwärtigen bzw. früheren Beruf, Zugehörigkeit zum öffentlichen Dienst, wöchentliche Arbeitsdauer (Haupt- und Nebenerwerb), berufliche Aufsichtsfunktion, Furcht vor Verlust des Arbeitsplatzes, Dauer von Arbeitslosigkeit, Status der Nichterwerbstätigkeit, Zeitpunkt der Aufgabe hauptberuflicher Erwerbstätigkeit, jetzige oder frühere Gewerkschaftsmitgliedschaft, Mitgliedschaft in einer politischen Partei, monatliches Nettoeinkommen.Wohnort (Bundesland, politische Gemeindegröße, BIK-Stadtregion), Wohndauer in Deutschland, Wohndauer am Wohnort, Wohnstatus, Entfernung zum vorherigen Wohnort, Mobilitätsbereitschaft. Angaben zum Ehepartner: Geburtsmonat, Geburtsjahr, Alter, allgemeiner Schulabschluss, berufliche Ausbildung, Erwerbstätigkeit (incl. Nichterwerbsstatus), Angaben zum gegenwärtigen Beruf, Zugehörigkeit zum öffentlichen Dienst. Angaben zum nichtehelichen Lebenspartner: Geburtsmonat, Geburtsjahr, Alter, allgemeiner Schulabschluss, berufliche Ausbildung, Erwerbstätigkeit (incl. Nichterwerbsstatus), Angaben zum gegenwärtigen Beruf, Zugehörigkeit zum öffentlichen Dienst, gemeinsamer Haushalt mit befragter Person. Angaben zu den Eltern: Herkunftsland, Zusammenleben mit Eltern im Alter von 15 Jahren, allgemeiner Schulabschluss, berufliche Ausbildung, Angaben zum Beruf. Haushaltsbeschreibung: Haushaltsgröße, Haushaltseinkommen, Anzahl von über 17-jährigen Haushaltspersonen (reduzierte Haushaltsgröße). Angaben zu den einzelnen Haushaltspersonen (Haushaltsliste): Verwandtschaftsverhältnis zur befragten Person, Geschlecht, Geburtsmonat, Geburtsjahr, Alter, Familienstand. Angaben zu Kindern außerhalb des Haushalts: Zahl der Kinder außer Haus, Geschlecht, Geburtsjahr, Alter. 12.) Daten zum Interview (Paradaten): Studiennummer, Digital Object Identifier, Release, Identifikationsnummer des Befragten, Nummer des Samplepoints, Erhebungsmodus ALLBUS-Hauptbefragung, Zahl der Kontaktversuche, Anteil beantworteter Fragen, Datum Interviewbeginn und –ende, Interviewdauer, Anwesenheit weiterer Personen während des Interviews, Eingriff anderer Personen in die Beantwortung des Fragebogens, Unterbrechung der Bearbeitung des Fragebogens. 13.) Ergänzungen und abgeleitete Variablen: Postmaterialismus-Index (nach Inglehart), Berufsvercodung gemäß ISCO (International Standard Classification of Occupations) 1988 und 2008, SIOPS (nach Ganzeboom), ISEI (nach Ganzeboom), Sozioökonomische Gruppe (ESeG), ISCED (International Standard Classification of Education) 1997 und 2011, Lebensformen und Familiensituation, Transformationsgewicht für Auswertungen auf Haushaltsebene, Ost-West-Gewicht für gesamtdeutsche Auswertungen.',
     'descriptionType': 'Abstract'},
    {'lang': 'en',
     'description': 'ALLBUS (GGSS - the German General Social Survey) is a biennial trend survey based on random samples of the German population. Established in 1980, its mission is to monitor attitudes, behavior, and social change in Germany. Each ALLBUS cross-sectional survey consists of one or two main question modules covering changing topics, a range of supplementary questions and a core module providing detailed demographic information. Additionally, data on the interview and the interviewers are provided as well. Key topics generally follow a 10-year replication cycle, many individual indicators and item batteries are replicated at shorter intervals. The main question module of ALLBUS/GGSS 2021 focuses on deviant behavior and sanctions. Another focus of the survey was the replication of questions from a broad range of topics. This included questions on politics and political attitudes, social inequality, gender roles, media use, and health. In contrast to the previous surveys in the ALLBUS series, ALLBUS 2021 was conducted in a self-administered mixed-mode design (MAIL (postal self-completion) and CAWI (computer-assisted web interview)). Topics 1.) Use of media: Frequency and average total time of watching tv, frequency of watching news programs on public and commercial tv, frequency of reading a daily newspaper per week, frequency of reading books / e-books; internet use: frequency and type of device, frequency of using social media for political information, trustworthiness of different news sources with regard to crime and public safety. 2.) Social Inequality: Self-assessment of social class, fair share in standard of living, assessment of access to education, attitudes towards social inequality and the welfare state. 3.) Ethnocentrism and minorities: Attitude towards the influx of various groups of immigrants, attitudes towards the foreigners living in Germany, contacts with foreigners, antisemitic stereotypes and prejudices, attitudes towards Islam (Islamophobia), perceived risks and chances with respect to refugees. 4.) Family and gender roles: Attitudes towards working fathers and mothers, division of labor regarding house and family work., importance of educational goals. 5.) Values: Work orientations, attitudes towards legalizing abortion, materialism / postmaterialism (importance of law and order, fighting rising prices, free expression of opinions and influence on governmental decisions). 6.) Political attitudes: Pride in being a German, confidence in public institutions and organizations (public health service, federal constitutional court, federal parliament (Bundestag), city or municipal administration, churches, judiciary, television, newspapers, universities, federal government, the police, political parties, European Commission, European Parliament); identification with own community, the Federal Republic of Germany and the EU, preference for lower taxes or more social spending, stance on extension or reduction in social services, perceived strength of conflicts between social groups, political interest, self-placement on left-right continuum, satisfaction with democracy in Germany, voting intention (Sonntagsfrage). 7.) Deviant behavior and sanctions: Assessment of adequacy of court judgments, development of crime rate, moral assessment of deviant acts, crime-specific desire for sanctions (punitivity), desire to prohibit specific behaviors, attitude towards the death penalty, self-reported deviant behavior (past and future), perceived probability of being caught committing various crimes, own victimisation (theft, any crime), respect of the law (norm), deterring crime through punishment, purpose of punishment, self-control (Grasmick), fear of crime, feeling of safety in living environment. 8.) Health: Self-assessment of overall health, physical and psychological shape during the last four weeks, acceptance of state powers to control epidemics. 9.) Religion: Self-assessment of religiousness, denomination, frequency of church attendance / attending a house of God. 10.) Other topics: Assessment of the present and future economic situation in Germany, assessment of present and future personal economic situation, social pessimism and orientation towards the future (anomia), interpersonal trust, reciprocity, authoritarianism, overall life satisfaction. 11.) ALLBUS-Demography: Details about the respondent: month and year of birth, age, gender, marital status, citizenship (nationality), number of citizenships, geographical origin, school education, vocational training, employment status, details about current or former occupation, affiliation to public service, working hours per week (primary and secondary job), supervisory functions, fear of unemployment, length of unemployment, status of non-employment, date of termination of full-time employment, current or former membership in a trade union, membership in a political party, respondent´s income. Place of residence (federal state, size of municipality, BIK-type of region), duration of residence (in Germany and at current place of residence), mobility. Details about respondent´s current spouse: month and year of birth, age, school education, vocational training, employment status, details about current occupation, affiliation to public service, fear of unemployment, status of non-employment. Details about respondent´s steady partner: month and year of birth, age, school education, vocational training, employment status, details about current occupation, affiliation to public service, fear of unemployment, status of non-employment, common household with respondent. Details about respondent´s parents: country of origin, cohabitation with respondent as adolescent, school education of mother and father, vocational training of mother and father, details about both parents´ occupation. Description of household: size of household, household income, number of persons older than 17 in household (reduced size of household). Details about household members: family relation to respondent, gender, month and year of birth, age, marital status. Details about children not living in the household: number of children not living in the household, gender, year of birth, age. 12.) Data on the interview (paradata): Study number, digital object identifier, release, respondent id, ID of sample point, mode of data collection, number of contacts, percentage of questions completed, date of beginning and end of interview, duration of interview, presence of other persons during the interview, interference of other persons in the course of the interview, pauses during completion of survey. 13.) Added value: Inglehart-Index, International Standard Classification of Occupations (ISCO) 1988 and 2008; Standard International Occupational Prestige Scale (SIOPS, according to Ganzeboom), International Socio-economic Index of Occupational Status (ISEI, according to Ganzeboom), European Socio-Economic Groups (ESeG), International Standard Classification of Education (ISCED) 1997 and 2011, forms of cohabitation and family situation, transformation weight for analyses on household level, east-west design weight.',
     'descriptionType': 'Abstract'},
    {'lang': 'en',
     'description': 'Self-administered questionnaire: Paper',
     'descriptionType': 'Methods'},
    {'lang': 'en',
     'description': 'Self-administered questionnaire: Web-based',
     'descriptionType': 'Methods'},
    {'lang': 'de',
     'description': 'ALLBUS 2021 wurde erstmals in einem selbstadministrierten Mixed-Mode Design durchgeführt (MAIL (postalischer Selbstausfüller) und CAWI (Computer-asisted Web Interview)). Unterschiedliche Erhebungsmodi werden von unterschiedlichen Teilpopulationen bevorzugt, so auch im ALLBUS 2021. Um diese Selbstselektion in die Erhebungsmodi zu berücksichtigen, wird bei inhaltlichen Analysen empfohlen die Fälle aus beiden Modi gemeinsam auszuwerten.',
     'descriptionType': 'Methods'},
    {'lang': 'en',
     'description': 'ALLBUS/GGSS 2021 was conducted as a mixed-mode survey. The target persons had the choice between the two modes MAIL and CAWI. Different survey modes are preferred by different subpopulations, as was the case in ALLBUS/GGSS 2021. To account for this self-selection, it is strongly recommended that the cases from both modes be analyzed together.',
     'descriptionType': 'Methods'},
    {'lang': 'de',
     'description': 'Personen (Deutsche und Ausländer), die zum Befragungszeitpunkt in Privathaushalten lebten und vor dem 01.01.2003 geboren sind.',
     'descriptionType': 'Methods'},
    {'lang': 'en',
     'description': 'All persons (German and non-German) who resided in private households and were born before 1 January 2003.',
     'descriptionType': 'Methods'},
    {'lang': 'de',
     'description': 'Wahrscheinlichkeitsauswahl: Disproportional geschichtete Zufallsauswahl; Wahrscheinlichkeitsauswahl: Mehrstufige Zufallsauswahl; Auswahlverfahren Kommentar: Zweistufige, disproportional geschichtete Zufallsauswahl in Westdeutschland (inkl. West-Berlin) und Ostdeutschland (inkl. Ost-Berlin). In der ersten Auswahlstufe wurden Gemeinden in Westdeutschland und in Ostdeutschland mit einer Wahrscheinlichkeit proportional zur Zahl ihrer erwachsenen Einwohner ausgewählt. In der zweiten Auswahlstufe wurden Personen aus den Einwohnermeldekarteien zufällig gezogen. Zielpersonen mit nicht hinreichend guten Deutschkenntnissen zählen zu den systematischen Ausfällen.',
     'descriptionType': 'Methods'}],
   'geoLocations': [{'geoLocationPlace': 'Germany'}],
   'fundingReferences': [],
   'xml': 'PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHJlc291cmNlIHhtbG5zPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtNCIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtNCBodHRwOi8vc2NoZW1hLmRhdGFjaXRlLm9yZy9tZXRhL2tlcm5lbC00LjEvbWV0YWRhdGEueHNkIj4KICA8aWRlbnRpZmllciBpZGVudGlmaWVyVHlwZT0iRE9JIj4xMC40MjMyLzEuMTQwMDI8L2lkZW50aWZpZXI+CiAgPGNyZWF0b3JzPgogICAgPGNyZWF0b3I+CiAgICAgIDxjcmVhdG9yTmFtZSBuYW1lVHlwZT0iT3JnYW5pemF0aW9uYWwiPkdFU0lTIC0gTGVpYm5pei1JbnN0aXR1dCBmw7xyIFNvemlhbHdpc3NlbnNjaGFmdGVuPC9jcmVhdG9yTmFtZT4KICAgIDwvY3JlYXRvcj4KICA8L2NyZWF0b3JzPgogIDx0aXRsZXM+CiAgICA8dGl0bGUgeG1sOmxhbmc9ImRlIj5BbGxnZW1laW5lIEJldsO2bGtlcnVuZ3N1bWZyYWdlIGRlciBTb3ppYWx3aXNzZW5zY2hhZnRlbiBBTExCVVMgMjAyMTwvdGl0bGU+CiAgICA8dGl0bGUgeG1sOmxhbmc9ImVuIj5BTExCVVMvR0dTUyAyMDIxIChBbGxnZW1laW5lIEJldsO2bGtlcnVuZ3N1bWZyYWdlIGRlciBTb3ppYWx3aXNzZW5zY2hhZnRlbi9HZXJtYW4gR2VuZXJhbCBTb2NpYWwgU3VydmV5IDIwMjEpPC90aXRsZT4KICA8L3RpdGxlcz4KICA8cHVibGlzaGVyPkdFU0lTPC9wdWJsaXNoZXI+CiAgPHB1YmxpY2F0aW9uWWVhcj4yMDIyPC9wdWJsaWNhdGlvblllYXI+CiAgPHJlc291cmNlVHlwZSByZXNvdXJjZVR5cGVHZW5lcmFsPSJEYXRhc2V0Ij5OdW1lcmlzY2hOdW1lcmljPC9yZXNvdXJjZVR5cGU+CiAgPGNvbnRyaWJ1dG9ycz4KICAgIDxjb250cmlidXRvciBjb250cmlidXRvclR5cGU9IlJlc2VhcmNoZXIiPgogICAgICA8Y29udHJpYnV0b3JOYW1lIG5hbWVUeXBlPSJQZXJzb25hbCI+V2VzdGxlLCBCZXR0aW5hPC9jb250cmlidXRvck5hbWU+CiAgICAgIDxhZmZpbGlhdGlvbj5Vbml2ZXJzaXTDpHQgTWFyYnVyZzwvYWZmaWxpYXRpb24+CiAgICA8L2NvbnRyaWJ1dG9yPgogICAgPGNvbnRyaWJ1dG9yIGNvbnRyaWJ1dG9yVHlwZT0iUmVzZWFyY2hlciI+CiAgICAgIDxjb250cmlidXRvck5hbWUgbmFtZVR5cGU9IlBlcnNvbmFsIj5BdXNwdXJnLCBLYXRyaW48L2NvbnRyaWJ1dG9yTmFtZT4KICAgICAgPGFmZmlsaWF0aW9uPkxNVSBNw7xuY2hlbjwvYWZmaWxpYXRpb24+CiAgICA8L2NvbnRyaWJ1dG9yPgogICAgPGNvbnRyaWJ1dG9yIGNvbnRyaWJ1dG9yVHlwZT0iUmVzZWFyY2hlciI+CiAgICAgIDxjb250cmlidXRvck5hbWUgbmFtZVR5cGU9IlBlcnNvbmFsIj5Cw7xobGVyLCBDaHJpc3RvcGg8L2NvbnRyaWJ1dG9yTmFtZT4KICAgICAgPGFmZmlsaWF0aW9uPlVuaXZlcnNpdMOkdCBIYW5ub3ZlcjwvYWZmaWxpYXRpb24+CiAgICA8L2NvbnRyaWJ1dG9yPgogICAgPGNvbnRyaWJ1dG9yIGNvbnRyaWJ1dG9yVHlwZT0iUmVzZWFyY2hlciI+CiAgICAgIDxjb250cmlidXRvck5hbWUgbmFtZVR5cGU9IlBlcnNvbmFsIj5IYWRqYXIsIEFuZHJlYXM8L2NvbnRyaWJ1dG9yTmFtZT4KICAgICAgPGFmZmlsaWF0aW9uPlVuaXZlcnNpdMOkdCBMdXhlbWJ1cmc8L2FmZmlsaWF0aW9uPgogICAgPC9jb250cmlidXRvcj4KICAgIDxjb250cmlidXRvciBjb250cmlidXRvclR5cGU9IlJlc2VhcmNoZXIiPgogICAgICA8Y29udHJpYnV0b3JOYW1lIG5hbWVUeXBlPSJQZXJzb25hbCI+SGlsbG1lcnQsIFN0ZWZmZW48L2NvbnRyaWJ1dG9yTmFtZT4KICAgICAgPGFmZmlsaWF0aW9uPlVuaXZlcnNpdMOkdCBUw7xiaW5nZW48L2FmZmlsaWF0aW9uPgogICAgPC9jb250cmlidXRvcj4KICAgIDxjb250cmlidXRvciBjb250cmlidXRvclR5cGU9IlJlc2VhcmNoZXIiPgogICAgICA8Y29udHJpYnV0b3JOYW1lIG5hbWVUeXBlPSJQZXJzb25hbCI+Um9zYXIsIFVscmljaDwvY29udHJpYnV0b3JOYW1lPgogICAgICA8YWZmaWxpYXRpb24+VW5pdmVyc2l0w6R0IETDvHNzZWxkb3JmPC9hZmZpbGlhdGlvbj4KICAgIDwvY29udHJpYnV0b3I+CiAgICA8Y29udHJpYnV0b3IgY29udHJpYnV0b3JUeXBlPSJSZXNlYXJjaGVyIj4KICAgICAgPGNvbnRyaWJ1dG9yTmFtZSBuYW1lVHlwZT0iUGVyc29uYWwiPldhZ25lciwgVWxyaWNoPC9jb250cmlidXRvck5hbWU+CiAgICAgIDxhZmZpbGlhdGlvbj5Vbml2ZXJzaXTDpHQgTWFyYnVyZzwvYWZmaWxpYXRpb24+CiAgICA8L2NvbnRyaWJ1dG9yPgogICAgPGNvbnRyaWJ1dG9yIGNvbnRyaWJ1dG9yVHlwZT0iRGF0YUNvbGxlY3RvciI+CiAgICAgIDxjb250cmlidXRvck5hbWUgbmFtZVR5cGU9Ik9yZ2FuaXphdGlvbmFsIj5LYW50YXIgUHVibGljLCBNdW5pY2g8L2NvbnRyaWJ1dG9yTmFtZT4KICAgIDwvY29udHJpYnV0b3I+CiAgPC9jb250cmlidXRvcnM+CiAgPGRhdGVzPgogICAgPGRhdGUgZGF0ZVR5cGU9IkNvbGxlY3RlZCI+MjAyMS0wNi8yMDIxLTA4PC9kYXRlPgogIDwvZGF0ZXM+CiAgPGxhbmd1YWdlPmRldTwvbGFuZ3VhZ2U+CiAgPGFsdGVybmF0ZUlkZW50aWZpZXJzPgogICAgPGFsdGVybmF0ZUlkZW50aWZpZXIgYWx0ZXJuYXRlSWRlbnRpZmllclR5cGU9IlpBLU5vLiI+WkE1MjgwPC9hbHRlcm5hdGVJZGVudGlmaWVyPgogICAgPGFsdGVybmF0ZUlkZW50aWZpZXIgYWx0ZXJuYXRlSWRlbnRpZmllclR5cGU9IkZEWiI+QUxMQlVTPC9hbHRlcm5hdGVJZGVudGlmaWVyPgogIDwvYWx0ZXJuYXRlSWRlbnRpZmllcnM+CiAgPHJlbGF0ZWRJZGVudGlmaWVycz4KICAgIDxyZWxhdGVkSWRlbnRpZmllciByZWxhdGVkSWRlbnRpZmllclR5cGU9IkRPSSIgcmVsYXRpb25UeXBlPSJJc05ld1ZlcnNpb25PZiI+MTAuNDIzMi8xLjEzOTU0PC9yZWxhdGVkSWRlbnRpZmllcj4KICA8L3JlbGF0ZWRJZGVudGlmaWVycz4KICA8dmVyc2lvbj4yLjAuMDwvdmVyc2lvbj4KICA8cmlnaHRzTGlzdD4KICAgIDxyaWdodHMgeG1sOmxhbmc9ImRlIj5BbGxlIGltIEdFU0lTIERCSyB2ZXLDtmZmZW50bGljaHRlbiBNZXRhZGF0ZW4gc2luZCBmcmVpIHZlcmbDvGdiYXIgdW50ZXIgZGVuIENyZWF0aXZlIENvbW1vbnMgQ0MwIDEuMCBVbml2ZXJzYWwgUHVibGljIERvbWFpbiBEZWRpY2F0aW9uLiBHRVNJUyBiaXR0ZXQgamVkb2NoIGRhcnVtLCBkYXNzIFNpZSBhbGxlIE1ldGFkYXRlbnF1ZWxsZW4gYW5lcmtlbm5lbiB1bmQgc2llIG5lbm5lbiwgZXR3YSBkaWUgRGF0ZW5nZWJlciBvZGVyIGplZ2xpY2hlbiBBZ2dyZWdhdG9yLCBpbmtsdXNpdmUgR0VTSVMgc2VsYnN0LiBGw7xyIHdlaXRlcmUgSW5mb3JtYXRpb25lbiBzaWVoZSBodHRwczovL2Riay5nZXNpcy5vcmcvZGJrc2VhcmNoL2d1aWRlbGluZXMuYXNwP2RiPWQ8L3JpZ2h0cz4KICAgIDxyaWdodHMgeG1sOmxhbmc9ImVuIj5BbGwgbWV0YWRhdGEgZnJvbSBHRVNJUyBEQksgYXJlIGF2YWlsYWJsZSBmcmVlIG9mIHJlc3RyaWN0aW9uIHVuZGVyIHRoZSBDcmVhdGl2ZSBDb21tb25zIENDMCAxLjAgVW5pdmVyc2FsIFB1YmxpYyBEb21haW4gRGVkaWNhdGlvbi4gSG93ZXZlciwgR0VTSVMgcmVxdWVzdHMgdGhhdCB5b3UgYWN0aXZlbHkgYWNrbm93bGVkZ2UgYW5kIGdpdmUgYXR0cmlidXRpb24gdG8gYWxsIG1ldGFkYXRhIHNvdXJjZXMsIHN1Y2ggYXMgdGhlIGRhdGEgcHJvdmlkZXJzIGFuZCBhbnkgZGF0YSBhZ2dyZWdhdG9ycywgaW5jbHVkaW5nIEdFU0lTLiBGb3IgZnVydGhlciBpbmZvcm1hdGlvbiBzZWUgaHR0cHM6Ly9kYmsuZ2VzaXMub3JnL2Ria3NlYXJjaC9ndWlkZWxpbmVzLmFzcDwvcmlnaHRzPgogIDwvcmlnaHRzTGlzdD4KICA8ZGVzY3JpcHRpb25zPgogICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJkZSIgZGVzY3JpcHRpb25UeXBlPSJBYnN0cmFjdCI+RGllIEFsbGdlbWVpbmUgQmV2w7Zsa2VydW5nc3VtZnJhZ2UgZGVyIFNvemlhbHdpc3NlbnNjaGFmdGVuIChBTExCVVMpIGlzdCBlaW5lIFRyZW5kZXJoZWJ1bmcsIGluIGRlciBzZWl0IDE5ODAgYWxsZSB6d2VpIEphaHJlIGVpbmUgWnVmYWxsc3N0aWNocHJvYmUgZGVyIGRldXRzY2hlbiBCZXbDtmxrZXJ1bmcgYmVmcmFndCB3aXJkLiBEYXMgcHJpbcOkcmUgWmllbCBkZXMgVW1mcmFnZXByb2dyYW1tcyBpc3QgZGllIEJlb2JhY2h0dW5nIHZvbiBFaW5zdGVsbHVuZ2VuLCBWZXJoYWx0ZW4gdW5kIHNvemlhbGVuIFdhbmRlbCBpbiBEZXV0c2NobGFuZC4gSmVkZSBBTExCVVMtUXVlcnNjaG5pdHRzZXJoZWJ1bmcgYmVzdGVodCBhdXMgZWluIG9kZXIgendlaSBTY2h3ZXJwdW5rdG1vZHVsZW4genUgd2VjaHNlbG5kZW4gVGhlbWVuLiBEaWVzZSB3ZXJkZW4gZXJnw6RuenQgZHVyY2ggd2VpdGVyZSBpbmhhbHRsaWNoZSBGcmFnZW4gdW5kIGVpbiBLZXJubW9kdWwgbWl0IGRldGFpbGxpZXJ0ZW4gZGVtb2dyYWZpc2NoZW4gSW5mb3JtYXRpb25lbi4gWnVkZW0gd2VyZGVuIFp1c2F0emluZm9ybWF0aW9uIHp1bSBJbnRlcnZpZXcgdW5kIGRlbiBJbnRlcnZpZXdlcm4gYmVyZWl0Z2VzdGVsbHQuIERpZSBTY2h3ZXJwdW5rdG1vZHVsZSBmb2xnZW4gaW4gZGVyIFJlZ2VsIGVpbmVtIDEwLWrDpGhyaWdlbiBSZXBsaWthdGlvbnN6eWtsdXMsIHZpZWxlIEVpbnplbGluZGlrYXRvcmVuIHVuZCBJdGVtYmF0dGVyaWVuIHdlcmRlbiBhYmVyIGF1Y2ggaW4ga8O8cnplcmVuIEFic3TDpG5kZW4gcmVwbGl6aWVydC4KRGFzIFNjaHdlcnB1bmt0bW9kdWwgdm9uIEFMTEJVUyAyMDIxIGJlZmFzc3Qgc2ljaCBtaXQgYWJ3ZWljaGVuZGVtIFZlcmhhbHRlbiB1bmQgU2Fua3Rpb25lbi4gV2VpdGVyZXIgU2Nod2VycHVua3QgZGVyIEVyaGVidW5nIHdhciBkaWUgUmVwbGlrYXRpb24gdm9uIEZyYWdlbiBhdXMgZWluZW0gYnJlaXRlbiBUaGVtZW5zcGVrdHJ1bS4gUmVwbGl6aWVydCB3dXJkZW4gdS5hLiBGcmFnZW4genUgUG9saXRpaywgc296aWFsZXIgVW5nbGVpY2hoZWl0LCBHZXNjaGxlY2h0ZXJyb2xsZW4sIE1lZGllbm51dHp1bmcgdW5kIEdlc3VuZGhlaXQuIApBTExCVVMgMjAyMSB3dXJkZSBlcnN0bWFscyBpbiBlaW5lbSBzZWxic3RhZG1pbmlzdHJpZXJ0ZW4gTWl4ZWQtTW9kZSBEZXNpZ24gZHVyY2hnZWbDvGhydCAoTUFJTCAocG9zdGFsaXNjaGVyIFNlbGJzdGF1c2bDvGxsZXIpIHVuZCBDQVdJIChDb21wdXRlci1Bc3Npc3RlZCBXZWIgSW50ZXJ2aWV3KSkuClRoZW1lbjoKMS4pIE1lZGllbm51dHp1bmc6RGF1ZXIgdW5kIEjDpHVmaWdrZWl0IGRlciBGZXJuc2VobnV0enVuZywgTnV0enVuZ3Now6R1Zmlna2VpdCB2b24gTmFjaHJpY2h0ZW5zZW5kdW5nZW4gcHJpdmF0ZXIgdW5kIMO2ZmZlbnRsaWNoLXJlY2h0bGljaGVyIEZlcm5zZWhhbmJpZXRlciwgSMOkdWZpZ2tlaXQgZGVyIExla3TDvHJlIHZvbiBUYWdlc3plaXR1bmdlbiBwcm8gV29jaGUsIEjDpHVmaWdrZWl0IGRlciBMZWt0w7xyZSB2b24gQsO8Y2hlcm4gLyBlQm9va3MsIEludGVybmV0bnV0enVuZzogSMOkdWZpZ2tlaXQgdW5kIEdlcsOkdGUsIEjDpHVmaWdrZWl0IGRlciBOdXR6dW5nIHNvemlhbGVyIE1lZGllbiBmw7xyIE5hY2hyaWNodGVuIHVuZCBQb2xpdGlrLCBHbGF1YnfDvHJkaWdrZWl0IHZlcnNjaGllZGVuZXIgSW5mb3JtYXRpb25zcXVlbGxlbiBiZWltIFRoZW1hIEtyaW1pbmFsaXTDpHQgdW5kIMO2ZmZlbnRsaWNoZSBTaWNoZXJoZWl0LgoyLikgU296aWFsZSBVbmdsZWljaGhlaXQ6IFN1Ympla3RpdmUgU2NoaWNodGVpbnN0dWZ1bmcsIGdlcmVjaHRlciBBbnRlaWwgYW0gTGViZW5zc3RhbmRhcmQsIFp1Z2FuZ3NjaGFuY2VudW5nbGVpY2hoZWl0IEJpbGR1bmcsIEVpbnN0ZWxsdW5nZW4genVyIHNvemlhbGVuIFVuZ2xlaWNoaGVpdCB1bmQgenVtIFdvaGxmYWhydHNzdGFhdC4KMy4pIEV0aG5vemVudHJpc211cyB1bmQgTWlub3JpdMOkdGVuOiBFaW5zdGVsbHVuZ2VuIHp1bSBadXp1ZyB2ZXJzY2hpZWRlbmVyIFBlcnNvbmVuZ3J1cHBlbiwgRWluc3RlbGx1bmdlbiB6dSBBdXNsw6RuZGVybiwgS29udGFrdGUgenUgQXVzbMOkbmRlcm4sIGFudGlzZW1pdGlzY2hlIFZvcnVydGVpbGUgdW5kIFN0ZXJlb3R5cGUsIElzbGFtb3Bob2JpZSwgd2Focmdlbm9tbWVuZSBSaXNpa2VuIHVuZCBDaGFuY2VuIGR1cmNoIEZsw7xjaHRsaW5nZS4KNC4pIEZhbWlsaWUgdW5kIEdlc2NobGVjaHRlcnJvbGxlbjogRWluc3RlbGx1bmcgenVyIEVyd2VyYnN0w6R0aWdrZWl0IHZvbiBWw6R0ZXJuIHVuZCBNw7x0dGVybiwgQXJiZWl0c3RlaWx1bmcgbWl0IFBhcnRuZXIgKEhhdXNoYWx0LCBLaW5kZXIpLCBFcnppZWh1bmdzemllbGUuCjUuKSBXZXJ0b3JpZW50aWVydW5nZW46IEFyYmVpdHNvcmllbnRpZXJ1bmdlbiwgRWluc3RlbGx1bmcgenUgU2Nod2FuZ2Vyc2NoYWZ0c2FiYnJ1Y2gsIFBvc3RtYXRlcmlhbGlzbXVzIChXaWNodGlna2VpdCB2b24gUnVoZSB1bmQgT3JkbnVuZywgQsO8cmdlcmVpbmZsdXNzLCBJbmZsYXRpb25zYmVrw6RtcGZ1bmcgdW5kIGZyZWllciBNZWludW5nc8OkdcOfZXJ1bmcpLgo2LikgUG9saXRpc2NoZSBFaW5zdGVsbHVuZ2VuOiBTdG9seiwgZWluIERldXRzY2hlciB6dSBzZWluOyBWZXJ0cmF1ZW4gaW4gw7ZmZmVudGxpY2hlIEVpbnJpY2h0dW5nZW4gdW5kIE9yZ2FuaXNhdGlvbmVuOiAoR2VzdW5kaGVpdHN3ZXNlbiwgQnVuZGVzdmVyZmFzc3VuZ3NnZXJpY2h0LCBCdW5kZXN0YWcsIFN0YWR0LSB1bmQgR2VtZWluZGV2ZXJ3YWx0dW5nLCBLaXJjaGVuLCBKdXN0aXosIEZlcm5zZWhlbiwgWmVpdHVuZ3N3ZXNlbiwgVW5pdmVyc2l0w6R0ZW4sIEJ1bmRlc3JlZ2llcnVuZywgUG9saXplaSwgUGFydGVpZW4sIEV1cm9ww6Rpc2NoZSBLb21taXNzaW9uLCBFdXJvcMOkaXNjaGVzIFBhcmxhbWVudCk7IFZlcmJ1bmRlbmhlaXQgbWl0IEdlbWVpbmRlLCBCdW5kZXNyZXB1YmxpaywgRVU7IFN0ZXVlcnNlbmt1bmcgb2RlciBTb3ppYWxsZWlzdHVuZ2VuLCBFaW5zdGVsbHVuZyB6dXIgQXVzd2VpdHVuZyBvZGVyIEvDvHJ6dW5nIHZvbiBTb3ppYWxsZWlzdHVuZ2VuLCBwZXJ6aXBpZXJ0ZSBTdMOkcmtlIHZvbiBLb25mbGlrdGVuIHp3aXNjaGVuIGdlc2VsbHNjaGFmdGxpY2hlbiBHcnVwcGVuLCBwb2xpdGlzY2hlcyBJbnRlcmVzc2UsIFNlbGJzdGVpbnN0dWZ1bmcgYXVmIGVpbmVtIExpbmtzLVJlY2h0cy1Lb250aW51dW0sIFp1ZnJpZWRlbmhlaXQgbWl0IGRlciBEZW1va3JhdGllIGluIERldXRzY2hsYW5kLCBXYWhsYWJzaWNodCAoU29ubnRhZ3NmcmFnZSkuCjcuKSBBYndlaWNoZW5kZXMgVmVyaGFsdGVuIHVuZCBTYW5rdGlvbmVuOiBCZXVydGVpbHVuZyBkZXIgU3RyYWZwcmF4aXMgdm9uIEdlcmljaHRlbiwgS3JpbWluYWxpdMOkdHNlbnR3aWNrbHVuZywgbW9yYWxpc2NoZSBCZXdlcnR1bmcgdm9uIFZlcmhhbHRlbnN3ZWlzZW4sIGRlbGlrdHNwZXppZmlzY2hlcyBTYW5rdGlvbnNiZWTDvHJmbmlzIChQdW5pdGl2aXTDpHQpLCBXdW5zY2ggbmFjaCBnZXNldHpsaWNoZW0gVmVyYm90ICh2ZXJoYWx0ZW5zc3BlemlmaXNjaCksIEVpbnN0ZWxsdW5nIHp1ciBUb2Rlc3N0cmFmZSwgc2VsYnN0YmVyaWNodGV0ZSBEZWxpbnF1ZW56IChWZXJnYW5nZW5oZWl0LCBadWt1bmZ0KSwgd2Focmdlbm9tbWVuZSBFbnRkZWNrdW5nc3dhaHJzY2hlaW5saWNoa2VpdCwgVmlrdGltaXNpZXJ1bmcgKERpZWJzdGFobCwgU3RyYWZ0YXQpLCBOb3JtIEdlc2V0enN0cmV1ZSwgU2Vua3VuZyB2b24gS3JpbWluYWxpdMOkdCBkdXJjaCBoYXJ0ZSBTdHJhZmVuIChBYnNjaHJlY2t1bmcpLCBTdHJhZnp3ZWNrZSwgU2VsYnN0a29udHJvbGxlIChHcmFzbWljayksIEtyaW1pbmFsaXTDpHRzZnVyY2h0LCBTaWNoZXJoZWl0c2dlZsO8aGwgaW4gV29obnVtZ2VidW5nLgo4LikgR2VzdW5kaGVpdDogU3ViamVrdGl2ZSBFaW5zY2jDpHR6dW5nIGRlcyBHZXN1bmRoZWl0c3p1c3RhbmRzLCBnZXN1bmRoZWl0bGljaGUgRWluc2NocsOkbmt1bmdlbiBsZXR6dGUgNCBXb2NoZW4sIFBhbmRlbWllbiB1bmQgUmVjaHRlIGRlcyBTdGFhdGVzLgo5LikgUmVsaWdpb246IFJlbGlnacO2c2UgU2VsYnN0ZWluc3R1ZnVuZywgS29uZmVzc2lvbiwgSMOkdWZpZ2tlaXQgS2lyY2hnYW5nIC8gQmVzdWNoIEdvdHRlc2hhdXMuCjEwLikgU29uc3RpZ2VzOiBCZXVydGVpbHVuZyBkZXIgZGVyemVpdGlnZW4gdW5kIHp1a8O8bmZ0aWdlbiBXaXJ0c2NoYWZ0c2xhZ2UgaW4gRGV1dHNjaGxhbmQsIEJldXJ0ZWlsdW5nIGRlciBlaWdlbmVuIGRlcnplaXRpZ2VuIHVuZCB6dWvDvG5mdGlnZW4gd2lydHNjaGFmdGxpY2hlbiBTaXR1YXRpb24sIHNvemlhbGVyIFBlc3NpbWlzbXVzIHVuZCBadWt1bmZ0c29yaWVudGllcnVuZyAoQW5vbWlhKSwgaW50ZXJwZXJzb25hbGVzIFZlcnRyYXVlbiwgc3ViamVrdGl2ZSBMZWJlbnN6dWZyaWVkZW5oZWl0LgoxMS4pCUFMTEJVUy1EZW1vZ3JhcGhpZTogQW5nYWJlbiB6dXIgYmVmcmFndGVuIFBlcnNvbjogR2VidXJ0c21vbmF0LCBHZWJ1cnRzamFociwgQWx0ZXIsIEdlc2NobGVjaHQsIEZhbWlsaWVuc3RhbmQsIFN0YWF0c2LDvHJnZXJzY2hhZnQgKE5hdGlvbmFsaXTDpHQpLCBBbnphaGwgZGVyIFN0YWF0c2LDvHJnZXJzY2hhZnRlbiwgSGVya3VuZnQsIGFsbGdlbWVpbmVyIFNjaHVsYWJzY2hsdXNzLCBiZXJ1ZmxpY2hlIEF1c2JpbGR1bmcsIEVyd2VyYnNzdGF0dXMsIEFuZ2FiZW4genVtIGdlZ2Vud8OkcnRpZ2VuIGJ6dy4gZnLDvGhlcmVuIEJlcnVmLCBadWdlaMO2cmlna2VpdCB6dW0gw7ZmZmVudGxpY2hlbiBEaWVuc3QsIHfDtmNoZW50bGljaGUgQXJiZWl0c2RhdWVyIChIYXVwdC0gdW5kIE5lYmVuZXJ3ZXJiKSwgYmVydWZsaWNoZSBBdWZzaWNodHNmdW5rdGlvbiwgRnVyY2h0IHZvciBWZXJsdXN0IGRlcyBBcmJlaXRzcGxhdHplcywgRGF1ZXIgdm9uIEFyYmVpdHNsb3NpZ2tlaXQsIFN0YXR1cyBkZXIgTmljaHRlcndlcmJzdMOkdGlna2VpdCwgWmVpdHB1bmt0IGRlciBBdWZnYWJlIGhhdXB0YmVydWZsaWNoZXIgRXJ3ZXJic3TDpHRpZ2tlaXQsIGpldHppZ2Ugb2RlciBmcsO8aGVyZSBHZXdlcmtzY2hhZnRzbWl0Z2xpZWRzY2hhZnQsIE1pdGdsaWVkc2NoYWZ0IGluIGVpbmVyIHBvbGl0aXNjaGVuIFBhcnRlaSwgbW9uYXRsaWNoZXMgTmV0dG9laW5rb21tZW4uV29obm9ydCAoQnVuZGVzbGFuZCwgcG9saXRpc2NoZSBHZW1laW5kZWdyw7bDn2UsIEJJSy1TdGFkdHJlZ2lvbiksIFdvaG5kYXVlciBpbiBEZXV0c2NobGFuZCwgV29obmRhdWVyIGFtIFdvaG5vcnQsIFdvaG5zdGF0dXMsIEVudGZlcm51bmcgenVtIHZvcmhlcmlnZW4gV29obm9ydCwgTW9iaWxpdMOkdHNiZXJlaXRzY2hhZnQuCkFuZ2FiZW4genVtIEVoZXBhcnRuZXI6IEdlYnVydHNtb25hdCwgR2VidXJ0c2phaHIsIEFsdGVyLCBhbGxnZW1laW5lciBTY2h1bGFic2NobHVzcywgYmVydWZsaWNoZSBBdXNiaWxkdW5nLCBFcndlcmJzdMOkdGlna2VpdCAoaW5jbC4gTmljaHRlcndlcmJzc3RhdHVzKSwgQW5nYWJlbiB6dW0gZ2VnZW53w6RydGlnZW4gQmVydWYsIFp1Z2Vow7ZyaWdrZWl0IHp1bSDDtmZmZW50bGljaGVuIERpZW5zdC4KQW5nYWJlbiB6dW0gbmljaHRlaGVsaWNoZW4gTGViZW5zcGFydG5lcjogR2VidXJ0c21vbmF0LCBHZWJ1cnRzamFociwgQWx0ZXIsIGFsbGdlbWVpbmVyIFNjaHVsYWJzY2hsdXNzLCBiZXJ1ZmxpY2hlIEF1c2JpbGR1bmcsIEVyd2VyYnN0w6R0aWdrZWl0IChpbmNsLiBOaWNodGVyd2VyYnNzdGF0dXMpLCBBbmdhYmVuIHp1bSBnZWdlbnfDpHJ0aWdlbiBCZXJ1ZiwgWnVnZWjDtnJpZ2tlaXQgenVtIMO2ZmZlbnRsaWNoZW4gRGllbnN0LCBnZW1laW5zYW1lciBIYXVzaGFsdCBtaXQgYmVmcmFndGVyIFBlcnNvbi4KQW5nYWJlbiB6dSBkZW4gRWx0ZXJuOiBIZXJrdW5mdHNsYW5kLCBadXNhbW1lbmxlYmVuIG1pdCBFbHRlcm4gaW0gQWx0ZXIgdm9uIDE1IEphaHJlbiwgYWxsZ2VtZWluZXIgU2NodWxhYnNjaGx1c3MsIGJlcnVmbGljaGUgQXVzYmlsZHVuZywgQW5nYWJlbiB6dW0gQmVydWYuCkhhdXNoYWx0c2Jlc2NocmVpYnVuZzogSGF1c2hhbHRzZ3LDtsOfZSwgSGF1c2hhbHRzZWlua29tbWVuLCBBbnphaGwgdm9uIMO8YmVyIDE3LWrDpGhyaWdlbiBIYXVzaGFsdHNwZXJzb25lbiAocmVkdXppZXJ0ZSBIYXVzaGFsdHNncsO2w59lKS4KQW5nYWJlbiB6dSBkZW4gZWluemVsbmVuIEhhdXNoYWx0c3BlcnNvbmVuIChIYXVzaGFsdHNsaXN0ZSk6IFZlcndhbmR0c2NoYWZ0c3ZlcmjDpGx0bmlzIHp1ciBiZWZyYWd0ZW4gUGVyc29uLCBHZXNjaGxlY2h0LCBHZWJ1cnRzbW9uYXQsIEdlYnVydHNqYWhyLCBBbHRlciwgRmFtaWxpZW5zdGFuZC4KQW5nYWJlbiB6dSBLaW5kZXJuIGF1w59lcmhhbGIgZGVzIEhhdXNoYWx0czogWmFobCBkZXIgS2luZGVyIGF1w59lciBIYXVzLCBHZXNjaGxlY2h0LCBHZWJ1cnRzamFociwgQWx0ZXIuCjEyLikgRGF0ZW4genVtIEludGVydmlldyAoUGFyYWRhdGVuKTogU3R1ZGllbm51bW1lciwgRGlnaXRhbCBPYmplY3QgSWRlbnRpZmllciwgUmVsZWFzZSwgSWRlbnRpZmlrYXRpb25zbnVtbWVyIGRlcyBCZWZyYWd0ZW4sIE51bW1lciBkZXMgU2FtcGxlcG9pbnRzLCBFcmhlYnVuZ3Ntb2R1cyBBTExCVVMtSGF1cHRiZWZyYWd1bmcsIFphaGwgZGVyIEtvbnRha3R2ZXJzdWNoZSwgQW50ZWlsIGJlYW50d29ydGV0ZXIgRnJhZ2VuLCBEYXR1bSBJbnRlcnZpZXdiZWdpbm4gdW5kIOKAk2VuZGUsIEludGVydmlld2RhdWVyLCBBbndlc2VuaGVpdCB3ZWl0ZXJlciBQZXJzb25lbiB3w6RocmVuZCBkZXMgSW50ZXJ2aWV3cywgRWluZ3JpZmYgYW5kZXJlciBQZXJzb25lbiBpbiBkaWUgQmVhbnR3b3J0dW5nIGRlcyBGcmFnZWJvZ2VucywgVW50ZXJicmVjaHVuZyBkZXIgQmVhcmJlaXR1bmcgZGVzIEZyYWdlYm9nZW5zLgoxMy4pIEVyZ8Okbnp1bmdlbiB1bmQgYWJnZWxlaXRldGUgVmFyaWFibGVuOiBQb3N0bWF0ZXJpYWxpc211cy1JbmRleCAobmFjaCBJbmdsZWhhcnQpLCBCZXJ1ZnN2ZXJjb2R1bmcgZ2Vtw6TDnyBJU0NPIChJbnRlcm5hdGlvbmFsIFN0YW5kYXJkIENsYXNzaWZpY2F0aW9uIG9mIE9jY3VwYXRpb25zKSAxOTg4IHVuZCAyMDA4LCBTSU9QUyAobmFjaCBHYW56ZWJvb20pLCBJU0VJIChuYWNoIEdhbnplYm9vbSksIFNvemlvw7Zrb25vbWlzY2hlIEdydXBwZSAoRVNlRyksIElTQ0VEIChJbnRlcm5hdGlvbmFsIFN0YW5kYXJkIENsYXNzaWZpY2F0aW9uIG9mIEVkdWNhdGlvbikgMTk5NyB1bmQgMjAxMSwgTGViZW5zZm9ybWVuIHVuZCBGYW1pbGllbnNpdHVhdGlvbiwgVHJhbnNmb3JtYXRpb25zZ2V3aWNodCBmw7xyIEF1c3dlcnR1bmdlbiBhdWYgSGF1c2hhbHRzZWJlbmUsIE9zdC1XZXN0LUdld2ljaHQgZsO8ciBnZXNhbXRkZXV0c2NoZSBBdXN3ZXJ0dW5nZW4uPC9kZXNjcmlwdGlvbj4KICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZW4iIGRlc2NyaXB0aW9uVHlwZT0iQWJzdHJhY3QiPkFMTEJVUyAoR0dTUyAtIHRoZSBHZXJtYW4gR2VuZXJhbCBTb2NpYWwgU3VydmV5KSBpcyBhIGJpZW5uaWFsIHRyZW5kIHN1cnZleSBiYXNlZCBvbiByYW5kb20gc2FtcGxlcyBvZiB0aGUgR2VybWFuIHBvcHVsYXRpb24uIEVzdGFibGlzaGVkIGluIDE5ODAsIGl0cyBtaXNzaW9uIGlzIHRvIG1vbml0b3IgYXR0aXR1ZGVzLCBiZWhhdmlvciwgYW5kIHNvY2lhbCBjaGFuZ2UgaW4gR2VybWFueS4gRWFjaCBBTExCVVMgY3Jvc3Mtc2VjdGlvbmFsIHN1cnZleSBjb25zaXN0cyBvZiBvbmUgb3IgdHdvIG1haW4gcXVlc3Rpb24gbW9kdWxlcyBjb3ZlcmluZyBjaGFuZ2luZyB0b3BpY3MsIGEgcmFuZ2Ugb2Ygc3VwcGxlbWVudGFyeSBxdWVzdGlvbnMgYW5kIGEgY29yZSBtb2R1bGUgcHJvdmlkaW5nIGRldGFpbGVkIGRlbW9ncmFwaGljIGluZm9ybWF0aW9uLiBBZGRpdGlvbmFsbHksIGRhdGEgb24gdGhlIGludGVydmlldyBhbmQgdGhlIGludGVydmlld2VycyBhcmUgcHJvdmlkZWQgYXMgd2VsbC4gS2V5IHRvcGljcyBnZW5lcmFsbHkgZm9sbG93IGEgMTAteWVhciByZXBsaWNhdGlvbiBjeWNsZSwgbWFueSBpbmRpdmlkdWFsIGluZGljYXRvcnMgYW5kIGl0ZW0gYmF0dGVyaWVzIGFyZSByZXBsaWNhdGVkIGF0IHNob3J0ZXIgaW50ZXJ2YWxzLgpUaGUgbWFpbiBxdWVzdGlvbiBtb2R1bGUgb2YgQUxMQlVTL0dHU1MgMjAyMSBmb2N1c2VzIG9uIGRldmlhbnQgYmVoYXZpb3IgYW5kIHNhbmN0aW9ucy4gQW5vdGhlciBmb2N1cyBvZiB0aGUgc3VydmV5IHdhcyB0aGUgcmVwbGljYXRpb24gb2YgcXVlc3Rpb25zIGZyb20gYSBicm9hZCByYW5nZSBvZiB0b3BpY3MuIFRoaXMgaW5jbHVkZWQgcXVlc3Rpb25zIG9uIHBvbGl0aWNzIGFuZCBwb2xpdGljYWwgYXR0aXR1ZGVzLCBzb2NpYWwgaW5lcXVhbGl0eSwgZ2VuZGVyIHJvbGVzLCBtZWRpYSB1c2UsIGFuZCBoZWFsdGguCkluIGNvbnRyYXN0IHRvIHRoZSBwcmV2aW91cyBzdXJ2ZXlzIGluIHRoZSBBTExCVVMgc2VyaWVzLCBBTExCVVMgMjAyMSB3YXMgY29uZHVjdGVkIGluIGEgc2VsZi1hZG1pbmlzdGVyZWQgbWl4ZWQtbW9kZSBkZXNpZ24gKE1BSUwgKHBvc3RhbCBzZWxmLWNvbXBsZXRpb24pIGFuZCBDQVdJIChjb21wdXRlci1hc3Npc3RlZCB3ZWIgaW50ZXJ2aWV3KSkuClRvcGljcwoxLikgVXNlIG9mIG1lZGlhOiBGcmVxdWVuY3kgYW5kIGF2ZXJhZ2UgdG90YWwgdGltZSBvZiB3YXRjaGluZyB0diwgZnJlcXVlbmN5IG9mIHdhdGNoaW5nIG5ld3MgcHJvZ3JhbXMgb24gcHVibGljIGFuZCBjb21tZXJjaWFsIHR2LCBmcmVxdWVuY3kgb2YgcmVhZGluZyBhIGRhaWx5IG5ld3NwYXBlciBwZXIgd2VlaywgZnJlcXVlbmN5IG9mIHJlYWRpbmcgYm9va3MgLyBlLWJvb2tzOyBpbnRlcm5ldCB1c2U6IGZyZXF1ZW5jeSBhbmQgdHlwZSBvZiBkZXZpY2UsIGZyZXF1ZW5jeSBvZiB1c2luZyBzb2NpYWwgbWVkaWEgZm9yIHBvbGl0aWNhbCBpbmZvcm1hdGlvbiwgdHJ1c3R3b3J0aGluZXNzIG9mIGRpZmZlcmVudCBuZXdzIHNvdXJjZXMgd2l0aCByZWdhcmQgdG8gY3JpbWUgYW5kIHB1YmxpYyBzYWZldHkuCjIuKSBTb2NpYWwgSW5lcXVhbGl0eTogU2VsZi1hc3Nlc3NtZW50IG9mIHNvY2lhbCBjbGFzcywgZmFpciBzaGFyZSBpbiBzdGFuZGFyZCBvZiBsaXZpbmcsIGFzc2Vzc21lbnQgb2YgYWNjZXNzIHRvIGVkdWNhdGlvbiwgYXR0aXR1ZGVzIHRvd2FyZHMgc29jaWFsIGluZXF1YWxpdHkgYW5kIHRoZSB3ZWxmYXJlIHN0YXRlLgozLikgRXRobm9jZW50cmlzbSBhbmQgbWlub3JpdGllczogQXR0aXR1ZGUgdG93YXJkcyB0aGUgaW5mbHV4IG9mIHZhcmlvdXMgZ3JvdXBzIG9mIGltbWlncmFudHMsIGF0dGl0dWRlcyB0b3dhcmRzIHRoZSBmb3JlaWduZXJzIGxpdmluZyBpbiBHZXJtYW55LCBjb250YWN0cyB3aXRoIGZvcmVpZ25lcnMsIGFudGlzZW1pdGljIHN0ZXJlb3R5cGVzIGFuZCBwcmVqdWRpY2VzLCBhdHRpdHVkZXMgdG93YXJkcyBJc2xhbSAoSXNsYW1vcGhvYmlhKSwgcGVyY2VpdmVkIHJpc2tzIGFuZCBjaGFuY2VzIHdpdGggcmVzcGVjdCB0byByZWZ1Z2Vlcy4KNC4pIEZhbWlseSBhbmQgZ2VuZGVyIHJvbGVzOiBBdHRpdHVkZXMgdG93YXJkcyB3b3JraW5nIGZhdGhlcnMgYW5kIG1vdGhlcnMsIGRpdmlzaW9uIG9mIGxhYm9yIHJlZ2FyZGluZyBob3VzZSBhbmQgZmFtaWx5IHdvcmsuLCBpbXBvcnRhbmNlIG9mIGVkdWNhdGlvbmFsIGdvYWxzLgo1LikgVmFsdWVzOiBXb3JrIG9yaWVudGF0aW9ucywgYXR0aXR1ZGVzIHRvd2FyZHMgbGVnYWxpemluZyBhYm9ydGlvbiwgbWF0ZXJpYWxpc20gLyBwb3N0bWF0ZXJpYWxpc20gKGltcG9ydGFuY2Ugb2YgbGF3IGFuZCBvcmRlciwgZmlnaHRpbmcgcmlzaW5nIHByaWNlcywgZnJlZSBleHByZXNzaW9uIG9mIG9waW5pb25zIGFuZCBpbmZsdWVuY2Ugb24gZ292ZXJubWVudGFsIGRlY2lzaW9ucykuCjYuKSBQb2xpdGljYWwgYXR0aXR1ZGVzOiBQcmlkZSBpbiBiZWluZyBhIEdlcm1hbiwgY29uZmlkZW5jZSBpbiBwdWJsaWMgaW5zdGl0dXRpb25zIGFuZCBvcmdhbml6YXRpb25zIChwdWJsaWMgaGVhbHRoIHNlcnZpY2UsIGZlZGVyYWwgY29uc3RpdHV0aW9uYWwgY291cnQsIGZlZGVyYWwgcGFybGlhbWVudCAoQnVuZGVzdGFnKSwgY2l0eSBvciBtdW5pY2lwYWwgYWRtaW5pc3RyYXRpb24sIGNodXJjaGVzLCBqdWRpY2lhcnksIHRlbGV2aXNpb24sIG5ld3NwYXBlcnMsIHVuaXZlcnNpdGllcywgZmVkZXJhbCBnb3Zlcm5tZW50LCB0aGUgcG9saWNlLCBwb2xpdGljYWwgcGFydGllcywgRXVyb3BlYW4gQ29tbWlzc2lvbiwgRXVyb3BlYW4gUGFybGlhbWVudCk7IGlkZW50aWZpY2F0aW9uIHdpdGggb3duIGNvbW11bml0eSwgdGhlIEZlZGVyYWwgUmVwdWJsaWMgb2YgR2VybWFueSBhbmQgdGhlIEVVLCBwcmVmZXJlbmNlIGZvciBsb3dlciB0YXhlcyBvciBtb3JlIHNvY2lhbCBzcGVuZGluZywgc3RhbmNlIG9uIGV4dGVuc2lvbiBvciByZWR1Y3Rpb24gaW4gc29jaWFsIHNlcnZpY2VzLCBwZXJjZWl2ZWQgc3RyZW5ndGggb2YgY29uZmxpY3RzIGJldHdlZW4gc29jaWFsIGdyb3VwcywgcG9saXRpY2FsIGludGVyZXN0LCBzZWxmLXBsYWNlbWVudCBvbiBsZWZ0LXJpZ2h0IGNvbnRpbnV1bSwgc2F0aXNmYWN0aW9uIHdpdGggZGVtb2NyYWN5IGluIEdlcm1hbnksIHZvdGluZyBpbnRlbnRpb24gKFNvbm50YWdzZnJhZ2UpLgo3LikgRGV2aWFudCBiZWhhdmlvciBhbmQgc2FuY3Rpb25zOiBBc3Nlc3NtZW50IG9mIGFkZXF1YWN5IG9mIGNvdXJ0IGp1ZGdtZW50cywgZGV2ZWxvcG1lbnQgb2YgY3JpbWUgcmF0ZSwgbW9yYWwgYXNzZXNzbWVudCBvZiBkZXZpYW50IGFjdHMsIGNyaW1lLXNwZWNpZmljIGRlc2lyZSBmb3Igc2FuY3Rpb25zIChwdW5pdGl2aXR5KSwgZGVzaXJlIHRvIHByb2hpYml0IHNwZWNpZmljIGJlaGF2aW9ycywgYXR0aXR1ZGUgdG93YXJkcyB0aGUgZGVhdGggcGVuYWx0eSwgc2VsZi1yZXBvcnRlZCBkZXZpYW50IGJlaGF2aW9yIChwYXN0IGFuZCBmdXR1cmUpLCBwZXJjZWl2ZWQgcHJvYmFiaWxpdHkgb2YgYmVpbmcgY2F1Z2h0IGNvbW1pdHRpbmcgdmFyaW91cyBjcmltZXMsIG93biB2aWN0aW1pc2F0aW9uICh0aGVmdCwgYW55IGNyaW1lKSwgcmVzcGVjdCBvZiB0aGUgbGF3IChub3JtKSwgZGV0ZXJyaW5nIGNyaW1lIHRocm91Z2ggcHVuaXNobWVudCwgcHVycG9zZSBvZiBwdW5pc2htZW50LCBzZWxmLWNvbnRyb2wgKEdyYXNtaWNrKSwgZmVhciBvZiBjcmltZSwgZmVlbGluZyBvZiBzYWZldHkgaW4gbGl2aW5nIGVudmlyb25tZW50Lgo4LikgSGVhbHRoOiBTZWxmLWFzc2Vzc21lbnQgb2Ygb3ZlcmFsbCBoZWFsdGgsIHBoeXNpY2FsIGFuZCBwc3ljaG9sb2dpY2FsIHNoYXBlIGR1cmluZyB0aGUgbGFzdCBmb3VyIHdlZWtzLCBhY2NlcHRhbmNlIG9mIHN0YXRlIHBvd2VycyB0byBjb250cm9sIGVwaWRlbWljcy4KOS4pIFJlbGlnaW9uOiBTZWxmLWFzc2Vzc21lbnQgb2YgcmVsaWdpb3VzbmVzcywgZGVub21pbmF0aW9uLCBmcmVxdWVuY3kgb2YgY2h1cmNoIGF0dGVuZGFuY2UgLyBhdHRlbmRpbmcgYSBob3VzZSBvZiBHb2QuCjEwLikgT3RoZXIgdG9waWNzOiBBc3Nlc3NtZW50IG9mIHRoZSBwcmVzZW50IGFuZCBmdXR1cmUgZWNvbm9taWMgc2l0dWF0aW9uIGluIEdlcm1hbnksIGFzc2Vzc21lbnQgb2YgcHJlc2VudCBhbmQgZnV0dXJlIHBlcnNvbmFsIGVjb25vbWljIHNpdHVhdGlvbiwgc29jaWFsIHBlc3NpbWlzbSBhbmQgb3JpZW50YXRpb24gdG93YXJkcyB0aGUgZnV0dXJlIChhbm9taWEpLCBpbnRlcnBlcnNvbmFsIHRydXN0LCByZWNpcHJvY2l0eSwgYXV0aG9yaXRhcmlhbmlzbSwgb3ZlcmFsbCBsaWZlIHNhdGlzZmFjdGlvbi4KMTEuKSBBTExCVVMtRGVtb2dyYXBoeTogRGV0YWlscyBhYm91dCB0aGUgcmVzcG9uZGVudDogbW9udGggYW5kIHllYXIgb2YgYmlydGgsIGFnZSwgZ2VuZGVyLCBtYXJpdGFsIHN0YXR1cywgY2l0aXplbnNoaXAgKG5hdGlvbmFsaXR5KSwgbnVtYmVyIG9mIGNpdGl6ZW5zaGlwcywgZ2VvZ3JhcGhpY2FsIG9yaWdpbiwgc2Nob29sIGVkdWNhdGlvbiwgdm9jYXRpb25hbCB0cmFpbmluZywgZW1wbG95bWVudCBzdGF0dXMsIGRldGFpbHMgYWJvdXQgY3VycmVudCBvciBmb3JtZXIgb2NjdXBhdGlvbiwgYWZmaWxpYXRpb24gdG8gcHVibGljIHNlcnZpY2UsIHdvcmtpbmcgaG91cnMgcGVyIHdlZWsgKHByaW1hcnkgYW5kIHNlY29uZGFyeSBqb2IpLCBzdXBlcnZpc29yeSBmdW5jdGlvbnMsIGZlYXIgb2YgdW5lbXBsb3ltZW50LCBsZW5ndGggb2YgdW5lbXBsb3ltZW50LCBzdGF0dXMgb2Ygbm9uLWVtcGxveW1lbnQsIGRhdGUgb2YgdGVybWluYXRpb24gb2YgZnVsbC10aW1lIGVtcGxveW1lbnQsIGN1cnJlbnQgb3IgZm9ybWVyIG1lbWJlcnNoaXAgaW4gYSB0cmFkZSB1bmlvbiwgbWVtYmVyc2hpcCBpbiBhIHBvbGl0aWNhbCBwYXJ0eSwgcmVzcG9uZGVudMK0cyBpbmNvbWUuCVBsYWNlIG9mIHJlc2lkZW5jZSAoZmVkZXJhbCBzdGF0ZSwgc2l6ZSBvZiBtdW5pY2lwYWxpdHksIEJJSy10eXBlIG9mIHJlZ2lvbiksIGR1cmF0aW9uIG9mIHJlc2lkZW5jZSAoaW4gR2VybWFueSBhbmQgYXQgY3VycmVudCBwbGFjZSBvZiByZXNpZGVuY2UpLCBtb2JpbGl0eS4JCkRldGFpbHMgYWJvdXQgcmVzcG9uZGVudMK0cyBjdXJyZW50IHNwb3VzZTogbW9udGggYW5kIHllYXIgb2YgYmlydGgsIGFnZSwgc2Nob29sIGVkdWNhdGlvbiwgdm9jYXRpb25hbCB0cmFpbmluZywgZW1wbG95bWVudCBzdGF0dXMsIGRldGFpbHMgYWJvdXQgY3VycmVudCBvY2N1cGF0aW9uLCBhZmZpbGlhdGlvbiB0byBwdWJsaWMgc2VydmljZSwgZmVhciBvZiB1bmVtcGxveW1lbnQsIHN0YXR1cyBvZiBub24tZW1wbG95bWVudC4JCkRldGFpbHMgYWJvdXQgcmVzcG9uZGVudMK0cyBzdGVhZHkgcGFydG5lcjogbW9udGggYW5kIHllYXIgb2YgYmlydGgsIGFnZSwgc2Nob29sIGVkdWNhdGlvbiwgdm9jYXRpb25hbCB0cmFpbmluZywgZW1wbG95bWVudCBzdGF0dXMsIGRldGFpbHMgYWJvdXQgY3VycmVudCBvY2N1cGF0aW9uLCBhZmZpbGlhdGlvbiB0byBwdWJsaWMgc2VydmljZSwgZmVhciBvZiB1bmVtcGxveW1lbnQsIHN0YXR1cyBvZiBub24tZW1wbG95bWVudCwgY29tbW9uIGhvdXNlaG9sZCB3aXRoIHJlc3BvbmRlbnQuCQpEZXRhaWxzIGFib3V0IHJlc3BvbmRlbnTCtHMgcGFyZW50czogY291bnRyeSBvZiBvcmlnaW4sIGNvaGFiaXRhdGlvbiB3aXRoIHJlc3BvbmRlbnQgYXMgYWRvbGVzY2VudCwgc2Nob29sIGVkdWNhdGlvbiBvZiBtb3RoZXIgYW5kIGZhdGhlciwgdm9jYXRpb25hbCB0cmFpbmluZyBvZiBtb3RoZXIgYW5kIGZhdGhlciwgZGV0YWlscyBhYm91dCBib3RoIHBhcmVudHPCtCBvY2N1cGF0aW9uLgkKRGVzY3JpcHRpb24gb2YgaG91c2Vob2xkOiBzaXplIG9mIGhvdXNlaG9sZCwgaG91c2Vob2xkIGluY29tZSwgbnVtYmVyIG9mIHBlcnNvbnMgb2xkZXIgdGhhbiAxNyBpbiBob3VzZWhvbGQgKHJlZHVjZWQgc2l6ZSBvZiBob3VzZWhvbGQpLgkKRGV0YWlscyBhYm91dCBob3VzZWhvbGQgbWVtYmVyczogZmFtaWx5IHJlbGF0aW9uIHRvIHJlc3BvbmRlbnQsIGdlbmRlciwgbW9udGggYW5kIHllYXIgb2YgYmlydGgsIGFnZSwgbWFyaXRhbCBzdGF0dXMuCQpEZXRhaWxzIGFib3V0IGNoaWxkcmVuIG5vdCBsaXZpbmcgaW4gdGhlIGhvdXNlaG9sZDogbnVtYmVyIG9mIGNoaWxkcmVuIG5vdCBsaXZpbmcgaW4gdGhlIGhvdXNlaG9sZCwgZ2VuZGVyLCB5ZWFyIG9mIGJpcnRoLCBhZ2UuCjEyLikgRGF0YSBvbiB0aGUgaW50ZXJ2aWV3IChwYXJhZGF0YSk6IFN0dWR5IG51bWJlciwgZGlnaXRhbCBvYmplY3QgaWRlbnRpZmllciwgcmVsZWFzZSwgcmVzcG9uZGVudCBpZCwgSUQgb2Ygc2FtcGxlIHBvaW50LCBtb2RlIG9mIGRhdGEgY29sbGVjdGlvbiwgbnVtYmVyIG9mIGNvbnRhY3RzLCBwZXJjZW50YWdlIG9mIHF1ZXN0aW9ucyBjb21wbGV0ZWQsIGRhdGUgb2YgYmVnaW5uaW5nIGFuZCBlbmQgb2YgaW50ZXJ2aWV3LCBkdXJhdGlvbiBvZiBpbnRlcnZpZXcsIHByZXNlbmNlIG9mIG90aGVyIHBlcnNvbnMgZHVyaW5nIHRoZSBpbnRlcnZpZXcsIGludGVyZmVyZW5jZSBvZiBvdGhlciBwZXJzb25zIGluIHRoZSBjb3Vyc2Ugb2YgdGhlIGludGVydmlldywgcGF1c2VzIGR1cmluZyBjb21wbGV0aW9uIG9mIHN1cnZleS4KMTMuKSBBZGRlZCB2YWx1ZTogSW5nbGVoYXJ0LUluZGV4LCBJbnRlcm5hdGlvbmFsIFN0YW5kYXJkIENsYXNzaWZpY2F0aW9uIG9mIE9jY3VwYXRpb25zIChJU0NPKSAxOTg4IGFuZCAyMDA4OyBTdGFuZGFyZCBJbnRlcm5hdGlvbmFsIE9jY3VwYXRpb25hbCBQcmVzdGlnZSBTY2FsZSAoU0lPUFMsIGFjY29yZGluZyB0byBHYW56ZWJvb20pLCBJbnRlcm5hdGlvbmFsIFNvY2lvLWVjb25vbWljIEluZGV4IG9mIE9jY3VwYXRpb25hbCBTdGF0dXMgKElTRUksIGFjY29yZGluZyB0byBHYW56ZWJvb20pLCBFdXJvcGVhbiBTb2Npby1FY29ub21pYyBHcm91cHMgKEVTZUcpLCBJbnRlcm5hdGlvbmFsIFN0YW5kYXJkIENsYXNzaWZpY2F0aW9uIG9mIEVkdWNhdGlvbiAoSVNDRUQpIDE5OTcgYW5kIDIwMTEsIGZvcm1zIG9mIGNvaGFiaXRhdGlvbiBhbmQgZmFtaWx5IHNpdHVhdGlvbiwgdHJhbnNmb3JtYXRpb24gd2VpZ2h0IGZvciBhbmFseXNlcyBvbiBob3VzZWhvbGQgbGV2ZWwsIGVhc3Qtd2VzdCBkZXNpZ24gd2VpZ2h0LjwvZGVzY3JpcHRpb24+CiAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImVuIiBkZXNjcmlwdGlvblR5cGU9Ik1ldGhvZHMiPlNlbGYtYWRtaW5pc3RlcmVkIHF1ZXN0aW9ubmFpcmU6IFBhcGVyIDwvZGVzY3JpcHRpb24+CiAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImVuIiBkZXNjcmlwdGlvblR5cGU9Ik1ldGhvZHMiPlNlbGYtYWRtaW5pc3RlcmVkIHF1ZXN0aW9ubmFpcmU6IFdlYi1iYXNlZDwvZGVzY3JpcHRpb24+CiAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImRlIiBkZXNjcmlwdGlvblR5cGU9Ik1ldGhvZHMiPkFMTEJVUyAyMDIxIHd1cmRlIGVyc3RtYWxzIGluIGVpbmVtIHNlbGJzdGFkbWluaXN0cmllcnRlbiBNaXhlZC1Nb2RlIERlc2lnbiBkdXJjaGdlZsO8aHJ0IChNQUlMIChwb3N0YWxpc2NoZXIgU2VsYnN0YXVzZsO8bGxlcikgdW5kIENBV0kgKENvbXB1dGVyLWFzaXN0ZWQgV2ViIEludGVydmlldykpLiBVbnRlcnNjaGllZGxpY2hlIEVyaGVidW5nc21vZGkgd2VyZGVuIHZvbiB1bnRlcnNjaGllZGxpY2hlbiBUZWlscG9wdWxhdGlvbmVuIGJldm9yenVndCwgc28gYXVjaCBpbSBBTExCVVMgMjAyMS4gVW0gZGllc2UgU2VsYnN0c2VsZWt0aW9uIGluIGRpZSBFcmhlYnVuZ3Ntb2RpIHp1IGJlcsO8Y2tzaWNodGlnZW4sIHdpcmQgYmVpIGluaGFsdGxpY2hlbiBBbmFseXNlbiBlbXBmb2hsZW4gZGllIEbDpGxsZSBhdXMgYmVpZGVuIE1vZGkgZ2VtZWluc2FtIGF1c3p1d2VydGVuLjwvZGVzY3JpcHRpb24+CiAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImVuIiBkZXNjcmlwdGlvblR5cGU9Ik1ldGhvZHMiPkFMTEJVUy9HR1NTIDIwMjEgd2FzIGNvbmR1Y3RlZCBhcyBhIG1peGVkLW1vZGUgc3VydmV5LiBUaGUgdGFyZ2V0IHBlcnNvbnMgaGFkIHRoZSBjaG9pY2UgYmV0d2VlbiB0aGUgdHdvIG1vZGVzIE1BSUwgYW5kIENBV0kuIERpZmZlcmVudCBzdXJ2ZXkgbW9kZXMgYXJlIHByZWZlcnJlZCBieSBkaWZmZXJlbnQgc3VicG9wdWxhdGlvbnMsIGFzIHdhcyB0aGUgY2FzZSBpbiBBTExCVVMvR0dTUyAyMDIxLiBUbyBhY2NvdW50IGZvciB0aGlzIHNlbGYtc2VsZWN0aW9uLCBpdCBpcyBzdHJvbmdseSByZWNvbW1lbmRlZCB0aGF0IHRoZSBjYXNlcyBmcm9tIGJvdGggbW9kZXMgYmUgYW5hbHl6ZWQgdG9nZXRoZXIuPC9kZXNjcmlwdGlvbj4KICAgIDxkZXNjcmlwdGlvbiB4bWw6bGFuZz0iZGUiIGRlc2NyaXB0aW9uVHlwZT0iTWV0aG9kcyI+UGVyc29uZW4gKERldXRzY2hlIHVuZCBBdXNsw6RuZGVyKSwgZGllIHp1bSBCZWZyYWd1bmdzemVpdHB1bmt0IGluIFByaXZhdGhhdXNoYWx0ZW4gbGVidGVuIHVuZCB2b3IgZGVtIDAxLjAxLjIwMDMgZ2Vib3JlbiBzaW5kLjwvZGVzY3JpcHRpb24+CiAgICA8ZGVzY3JpcHRpb24geG1sOmxhbmc9ImVuIiBkZXNjcmlwdGlvblR5cGU9Ik1ldGhvZHMiPkFsbCBwZXJzb25zIChHZXJtYW4gYW5kIG5vbi1HZXJtYW4pIHdobyByZXNpZGVkIGluIHByaXZhdGUgaG91c2Vob2xkcyBhbmQgd2VyZSBib3JuIGJlZm9yZSAxIEphbnVhcnkgMjAwMy48L2Rlc2NyaXB0aW9uPgogICAgPGRlc2NyaXB0aW9uIHhtbDpsYW5nPSJkZSIgZGVzY3JpcHRpb25UeXBlPSJNZXRob2RzIj5XYWhyc2NoZWlubGljaGtlaXRzYXVzd2FobDogRGlzcHJvcG9ydGlvbmFsIGdlc2NoaWNodGV0ZSBadWZhbGxzYXVzd2FobDsgV2FocnNjaGVpbmxpY2hrZWl0c2F1c3dhaGw6IE1laHJzdHVmaWdlIFp1ZmFsbHNhdXN3YWhsOyBBdXN3YWhsdmVyZmFocmVuIEtvbW1lbnRhcjogWndlaXN0dWZpZ2UsIGRpc3Byb3BvcnRpb25hbCBnZXNjaGljaHRldGUgWnVmYWxsc2F1c3dhaGwgaW4gV2VzdGRldXRzY2hsYW5kIChpbmtsLiBXZXN0LUJlcmxpbikgdW5kIE9zdGRldXRzY2hsYW5kIChpbmtsLiBPc3QtQmVybGluKS4gSW4gZGVyIGVyc3RlbiBBdXN3YWhsc3R1ZmUgd3VyZGVuIEdlbWVpbmRlbiBpbiBXZXN0ZGV1dHNjaGxhbmQgdW5kIGluIE9zdGRldXRzY2hsYW5kIG1pdCBlaW5lciBXYWhyc2NoZWlubGljaGtlaXQgcHJvcG9ydGlvbmFsIHp1ciBaYWhsIGlocmVyIGVyd2FjaHNlbmVuIEVpbndvaG5lciBhdXNnZXfDpGhsdC4gSW4gZGVyIHp3ZWl0ZW4gQXVzd2FobHN0dWZlIHd1cmRlbiBQZXJzb25lbiBhdXMgZGVuIEVpbndvaG5lcm1lbGRla2FydGVpZW4genVmw6RsbGlnIGdlem9nZW4uClppZWxwZXJzb25lbiBtaXQgbmljaHQgaGlucmVpY2hlbmQgZ3V0ZW4gRGV1dHNjaGtlbm50bmlzc2VuIHrDpGhsZW4genUgZGVuIHN5c3RlbWF0aXNjaGVuIEF1c2bDpGxsZW4uPC9kZXNjcmlwdGlvbj4KICA8L2Rlc2NyaXB0aW9ucz4KICA8Z2VvTG9jYXRpb25zPgogICAgPGdlb0xvY2F0aW9uPgogICAgICA8Z2VvTG9jYXRpb25QbGFjZT5HZXJtYW55PC9nZW9Mb2NhdGlvblBsYWNlPgogICAgPC9nZW9Mb2NhdGlvbj4KICA8L2dlb0xvY2F0aW9ucz4KPC9yZXNvdXJjZT4=',
   'url': 'https://search.gesis.org/research_data/ZA5280?doi=10.4232/1.14002',
   'contentUrl': None,
   'metadataVersion': 4,
   'schemaVersion': 'http://datacite.org/schema/kernel-4',
   'source': 'fabricaForm',
   'isActive': True,
   'state': 'findable',
   'reason': None,
   'viewCount': 0,
   'viewsOverTime': [],
   'downloadCount': 0,
   'downloadsOverTime': [],
   'referenceCount': 0,
   'citationCount': 1,
   'citationsOverTime': [{'year': '2023', 'total': 1}],
   'partCount': 0,
   'partOfCount': 0,
   'versionCount': 0,
   'versionOfCount': 0,
   'created': '2022-09-26T14:06:23.000Z',
   'registered': '2022-09-26T14:06:23.000Z',
   'published': '2022',
   'updated': '2023-04-26T19:00:44.000Z'},
  'relationships': {'client': {'data': {'id': 'gesis.gesis',
     'type': 'clients'}},
   'provider': {'data': {'id': 'vzek', 'type': 'providers'}},
   'media': {'data': {'id': '10.4232/1.14002', 'type': 'media'}},
   'references': {'data': []},
   'citations': {'data': [{'id': '10.1111/pops.12892', 'type': 'dois'}]},
   'parts': {'data': []},
   'partOf': {'data': []},
   'versions': {'data': []},
   'versionOf': {'data': []}}}}

GESIS data

We can access GESIS data through the DataCite API by providing the provider-id and client-id.

You can explore and try parameters at https://support.datacite.org/reference/get_dois

url = "https://api.datacite.org/dois"
headers = {"accept": "application/vnd.api+json"}
params = {
    "provider-id": "gesis",
    "client-id": "gesis.gesis",
    "page[size]": 5,
    "sort": "-updated",
}

r = requests.get(url, headers=headers, params=params)

gesis_data = r.json()
[record["id"] for record in gesis_data["data"]]
['10.4232/1.6138',
 '10.4232/1.11922',
 '10.4232/1.6195',
 '10.4232/1.14184',
 '10.7802/2618']
gesis_data["meta"]["total"]
9447
gesis_data["meta"]["resourceTypes"]
[{'id': 'dataset', 'title': 'Dataset', 'count': 9010},
 {'id': 'text', 'title': 'Text', 'count': 436},
 {'id': 'other', 'title': 'Other', 'count': 1}]

Zenodo API

Zenodo has an API to access and deposit research outputs.

https://developers.zenodo.org/#rest-api

Record

We start by accessing a Zenodo record through the Zenodo API.

https://developers.zenodo.org/#retrieve37

r = requests.get("https://zenodo.org/api/records/8360299")

r.json()
{'created': '2023-09-19T15:15:22.704918+00:00',
 'modified': '2023-09-20T14:27:05.762099+00:00',
 'id': 8360299,
 'conceptrecid': '8360298',
 'doi': '10.5281/zenodo.8360299',
 'conceptdoi': '10.5281/zenodo.8360298',
 'doi_url': 'https://doi.org/10.5281/zenodo.8360299',
 'metadata': {'title': 'ColStudies: A web-frontend to Colectica API to register DOIs with da|ra',
  'doi': '10.5281/zenodo.8360299',
  'publication_date': '2023-09-19',
  'description': '<p>Basic ColStudies application, connect to Colectica repository, view studies, register DOIs with da|ra.</p>',
  'access_right': 'open',
  'creators': [{'name': 'Wolfgang Zenk-Möltgen', 'affiliation': 'GESIS'}],
  'keywords': ['DDI, da|ra'],
  'related_identifiers': [{'identifier': 'https://github.com/moeltgen/ColStudies/tree/v0.3',
    'relation': 'isSupplementTo',
    'scheme': 'url'}],
  'version': 'v0.3',
  'resource_type': {'title': 'Software', 'type': 'software'},
  'license': {'id': 'mit-license'},
  'relations': {'version': [{'index': 0,
     'is_last': True,
     'parent': {'pid_type': 'recid', 'pid_value': '8360298'}}]}},
 'title': 'ColStudies: A web-frontend to Colectica API to register DOIs with da|ra',
 'links': {'self': 'https://zenodo.org/api/records/8360299',
  'self_html': 'https://zenodo.org/records/8360299',
  'self_doi': 'https://zenodo.org/doi/10.5281/zenodo.8360299',
  'doi': 'https://doi.org/10.5281/zenodo.8360299',
  'parent': 'https://zenodo.org/api/records/8360298',
  'parent_html': 'https://zenodo.org/records/8360298',
  'parent_doi': 'https://zenodo.org/doi/10.5281/zenodo.8360298',
  'self_iiif_manifest': 'https://zenodo.org/api/iiif/record:8360299/manifest',
  'self_iiif_sequence': 'https://zenodo.org/api/iiif/record:8360299/sequence/default',
  'files': 'https://zenodo.org/api/records/8360299/files',
  'media_files': 'https://zenodo.org/api/records/8360299/media-files',
  'archive': 'https://zenodo.org/api/records/8360299/files-archive',
  'archive_media': 'https://zenodo.org/api/records/8360299/media-files-archive',
  'latest': 'https://zenodo.org/api/records/8360299/versions/latest',
  'latest_html': 'https://zenodo.org/records/8360299/latest',
  'draft': 'https://zenodo.org/api/records/8360299/draft',
  'versions': 'https://zenodo.org/api/records/8360299/versions',
  'access_links': 'https://zenodo.org/api/records/8360299/access/links',
  'access_users': 'https://zenodo.org/api/records/8360299/access/users',
  'access_request': 'https://zenodo.org/api/records/8360299/access/request',
  'access': 'https://zenodo.org/api/records/8360299/access',
  'reserve_doi': 'https://zenodo.org/api/records/8360299/draft/pids/doi',
  'communities': 'https://zenodo.org/api/records/8360299/communities',
  'communities-suggestions': 'https://zenodo.org/api/records/8360299/communities-suggestions',
  'requests': 'https://zenodo.org/api/records/8360299/requests'},
 'updated': '2023-09-20T14:27:05.762099+00:00',
 'recid': '8360299',
 'revision': 5,
 'files': [{'id': 'eb31bd1f-8bf9-47b9-8c44-84b895a19501',
   'key': 'moeltgen/ColStudies-v0.3.zip',
   'size': 27443,
   'checksum': 'md5:cf4dd6c6160cc7a15779dd25c133a596',
   'links': {'self': 'https://zenodo.org/api/records/8360299/files/moeltgen/ColStudies-v0.3.zip/content'}}],
 'owners': [{'id': 367396}],
 'status': 'published',
 'stats': {'downloads': 1,
  'unique_downloads': 1,
  'views': 17,
  'unique_views': 12,
  'version_downloads': 1,
  'version_unique_downloads': 1,
  'version_unique_views': 12,
  'version_views': 17},
 'state': 'done',
 'submitted': True}

API key

A Zenodo API key is needed to access most of the REST API.

Read API key from a local .env not in Git repository with python-decouple

import os
from decouple import Config, RepositoryEnv

config = Config(RepositoryEnv("/workspaces/dss-presentation_data-tools/.env"))

ACCESS_TOKEN = config("ZENODO_API_KEY")

Depositions

https://developers.zenodo.org/#retrieve

Show that the Zenodo API key is needed to access depositions.

r = requests.get(
    "https://zenodo.org/api/deposit/depositions",
    params={"access_token": "no Zenodo access token provided"},
)
r.json()
{'status': 403, 'message': 'Permission denied.'}

Get depositions for API key holder.

r = requests.get(
    "https://zenodo.org/api/deposit/depositions", params={"access_token": ACCESS_TOKEN}
)
r.status_code
200
depositions = r.json()

len(depositions)
3
depositions
[{'created': '2023-11-01T11:31:01.496048+00:00',
  'modified': '2023-11-03T09:03:45.386507+00:00',
  'id': 10061174,
  'conceptrecid': '10061173',
  'doi': '10.5281/zenodo.10061174',
  'conceptdoi': '10.5281/zenodo.10061173',
  'doi_url': 'https://doi.org/10.5281/zenodo.10061174',
  'metadata': {'title': 'Harmonizing and linking party information: The ESS as an example of complex data linking',
   'doi': '10.5281/zenodo.10061174',
   'publication_date': '2023-10-09',
   'description': '<p>Combining party information from multiple sources is a work-intensive challenge for quantitative studies of political representation. Differences in the definition of political parties and difficult data structures can make linking party information across datasets challenging. The European Social Survey (ESS) is an example of a prominent data source in political science research whose party information is particularly difficult to work with. Here, we demonstrate how Party Facts, an online infrastructure for combining party information, can be used to link different social science datasets and assess the performance of the linking process. In this article, we discuss the difficulties of complex linking tasks and show how the ESS can be combined with other sources. We have updated the database to include appropriate links for the recent Round 10 of the ESS and provide two examples of complex linking by combining the ESS with the Chapel Hill Expert Survey (CHES) and with the Parliament and Government Database (ParlGov).</p>',
   'access_right': 'open',
   'creators': [{'name': 'Bederke, Paul',
     'affiliation': 'University of Konstanz'},
    {'name': 'Döring, Holger',
     'affiliation': 'GESIS - Leibniz-Institute for the Social Sciences'}],
   'related_identifiers': [{'identifier': '10.5281/zenodo.8421233',
     'relation': 'isSupplementedBy',
     'resource_type': 'software',
     'scheme': 'doi'}],
   'license': 'cc-by-4.0',
   'imprint_publisher': 'Zenodo',
   'upload_type': 'publication',
   'publication_type': 'preprint',
   'prereserve_doi': {'doi': '10.5281/zenodo.10061174', 'recid': 10061174}},
  'title': 'Harmonizing and linking party information: The ESS as an example of complex data linking',
  'links': {'self': 'https://zenodo.org/api/records/10061174',
   'html': 'https://zenodo.org/records/10061174',
   'doi': 'https://doi.org/10.5281/zenodo.10061174',
   'parent_doi': 'https://zenodo.org/doi/10.5281/zenodo.10061173',
   'badge': 'https://zenodo.org/badge/doi/10.5281%2Fzenodo.10061174.svg',
   'conceptbadge': 'https://zenodo.org/badge/doi/10.5281%2Fzenodo.10061173.svg',
   'files': 'https://zenodo.org/api/records/10061174/files',
   'latest_draft': 'https://zenodo.org/api/deposit/depositions/10061174',
   'latest_draft_html': 'https://zenodo.org/deposit/10061174',
   'publish': 'https://zenodo.org/api/deposit/depositions/10061174/actions/publish',
   'edit': 'https://zenodo.org/api/deposit/depositions/10061174/actions/edit',
   'discard': 'https://zenodo.org/api/deposit/depositions/10061174/actions/discard',
   'newversion': 'https://zenodo.org/api/deposit/depositions/10061174/actions/newversion',
   'registerconceptdoi': 'https://zenodo.org/api/deposit/depositions/10061174/actions/registerconceptdoi',
   'record': 'https://zenodo.org/api/records/10061174',
   'record_html': 'https://zenodo.org/record/10061174',
   'latest': 'https://zenodo.org/api/records/10061174/versions/latest',
   'latest_html': 'https://zenodo.org/record/10061174/versions/latest'},
  'record_id': 10061174,
  'owner': 399146,
  'files': [],
  'state': 'done',
  'submitted': True},
 {'created': '2023-10-31T18:21:09.091174+00:00',
  'modified': '2023-10-31T18:21:09.199219+00:00',
  'id': 8275697,
  'conceptrecid': '7043510',
  'doi': '10.5281/zenodo.8275697',
  'conceptdoi': '10.5281/zenodo.7043510',
  'doi_url': 'https://doi.org/10.5281/zenodo.8275697',
  'metadata': {'title': 'Party positions from Wikipedia tags (July 2023)',
   'doi': '10.5281/zenodo.8275697',
   'publication_date': '2023-08-23',
   'description': '<p>Estimation of party positions from Wikipedia tags with Stan (July 2023)</p>',
   'access_right': 'open',
   'creators': [{'name': 'Holger Döring',
     'affiliation': 'GESIS – Leibniz Institute for the Social Sciences'},
    {'name': 'Michael Herrmann', 'affiliation': 'University of Konstanz'}],
   'related_identifiers': [{'identifier': 'https://github.com/hdigital/partypositions-wikitags/tree/23.07',
     'relation': 'isSupplementTo',
     'scheme': 'url'}],
   'version': '23.07',
   'license': 'other-open',
   'imprint_publisher': 'Zenodo',
   'upload_type': 'software',
   'prereserve_doi': {'doi': '10.5281/zenodo.8275697', 'recid': 8275697}},
  'title': 'Party positions from Wikipedia tags (July 2023)',
  'links': {'self': 'https://zenodo.org/api/records/8275697',
   'html': 'https://zenodo.org/records/8275697',
   'doi': 'https://doi.org/10.5281/zenodo.8275697',
   'parent_doi': 'https://zenodo.org/doi/10.5281/zenodo.7043510',
   'badge': 'https://zenodo.org/badge/doi/10.5281%2Fzenodo.8275697.svg',
   'conceptbadge': 'https://zenodo.org/badge/doi/10.5281%2Fzenodo.7043510.svg',
   'files': 'https://zenodo.org/api/records/8275697/files',
   'latest_draft': 'https://zenodo.org/api/deposit/depositions/8275697',
   'latest_draft_html': 'https://zenodo.org/deposit/8275697',
   'publish': 'https://zenodo.org/api/deposit/depositions/8275697/actions/publish',
   'edit': 'https://zenodo.org/api/deposit/depositions/8275697/actions/edit',
   'discard': 'https://zenodo.org/api/deposit/depositions/8275697/actions/discard',
   'newversion': 'https://zenodo.org/api/deposit/depositions/8275697/actions/newversion',
   'registerconceptdoi': 'https://zenodo.org/api/deposit/depositions/8275697/actions/registerconceptdoi',
   'record': 'https://zenodo.org/api/records/8275697',
   'record_html': 'https://zenodo.org/record/8275697',
   'latest': 'https://zenodo.org/api/records/8275697/versions/latest',
   'latest_html': 'https://zenodo.org/record/8275697/versions/latest'},
  'record_id': 8275697,
  'owner': 399146,
  'files': [],
  'state': 'done',
  'submitted': True},
 {'created': '2023-10-09T11:48:42.068068+00:00',
  'modified': '2023-11-03T16:38:11.915812+00:00',
  'id': 8421233,
  'conceptrecid': '8421232',
  'doi': '10.5281/zenodo.8421233',
  'conceptdoi': '10.5281/zenodo.8421232',
  'doi_url': 'https://doi.org/10.5281/zenodo.8421233',
  'metadata': {'title': 'Linking European Social Survey (ESS) party information',
   'doi': '10.5281/zenodo.8421233',
   'publication_date': '2023-10-09',
   'description': '<p>R code for linking <a href="https://www.europeansocialsurvey.org/">European Social Survey (ESS)</a> party information from Rounds 1–10 with social science datasets through <a href="partyfacts.org">Party Facts</a>.</p><p>Two examples for linking ESS parties with the <a href="https://www.chesdata.eu/">Chapel Hill Expert Survey (CHES)</a> and the <a href="parlgov.org">Parliament and Government Database (ParlGov)</a> are provided in notebooks.</p><p>These examples are presented in a website at <a href="https://hdigital.github.io/ess-linking/">hdigital.github.io/ess-linking</a>.</p>',
   'access_right': 'open',
   'creators': [{'name': 'Bederke, Paul',
     'affiliation': 'University of Konstanz, Germany',
     'orcid': '0000-0001-7555-8656'},
    {'name': 'Döring, Holger',
     'affiliation': 'GESIS - Leibniz-Institute for the Social Sciences',
     'orcid': '0000-0002-6616-8805'}],
   'keywords': ['comparative politics',
    'data management',
    'survey data',
    'voting behavior',
    'expert surveys',
    'validation'],
   'related_identifiers': [{'identifier': 'https://github.com/hdigital/ess-linking/tree/v0.1',
     'relation': 'isSupplementTo',
     'scheme': 'url'}],
   'version': 'v0.1',
   'license': 'mit-license',
   'imprint_publisher': 'Zenodo',
   'upload_type': 'software',
   'prereserve_doi': {'doi': '10.5281/zenodo.8421233', 'recid': 8421233}},
  'title': 'Linking European Social Survey (ESS) party information',
  'links': {'self': 'https://zenodo.org/api/records/8421233',
   'html': 'https://zenodo.org/records/8421233',
   'doi': 'https://doi.org/10.5281/zenodo.8421233',
   'parent_doi': 'https://zenodo.org/doi/10.5281/zenodo.8421232',
   'badge': 'https://zenodo.org/badge/doi/10.5281%2Fzenodo.8421233.svg',
   'conceptbadge': 'https://zenodo.org/badge/doi/10.5281%2Fzenodo.8421232.svg',
   'files': 'https://zenodo.org/api/records/8421233/files',
   'latest_draft': 'https://zenodo.org/api/deposit/depositions/8421233',
   'latest_draft_html': 'https://zenodo.org/deposit/8421233',
   'publish': 'https://zenodo.org/api/deposit/depositions/8421233/actions/publish',
   'edit': 'https://zenodo.org/api/deposit/depositions/8421233/actions/edit',
   'discard': 'https://zenodo.org/api/deposit/depositions/8421233/actions/discard',
   'newversion': 'https://zenodo.org/api/deposit/depositions/8421233/actions/newversion',
   'registerconceptdoi': 'https://zenodo.org/api/deposit/depositions/8421233/actions/registerconceptdoi',
   'record': 'https://zenodo.org/api/records/8421233',
   'record_html': 'https://zenodo.org/record/8421233',
   'latest': 'https://zenodo.org/api/records/8421233/versions/latest',
   'latest_html': 'https://zenodo.org/record/8421233/versions/latest'},
  'record_id': 8421233,
  'owner': 399146,
  'files': [{'id': '2b03a282-bd30-4a15-a843-3dd59f482323',
    'filename': 'hdigital/ess-linking-v0.1.zip',
    'filesize': 3061494,
    'checksum': 'd615e35168eddbca6efb5c5fb636d1b4',
    'links': {'self': 'https://zenodo.org/api/records/8421233/files/2b03a282-bd30-4a15-a843-3dd59f482323',
     'download': 'https://zenodo.org/api/records/8421233/draft/files/hdigital/ess-linking-v0.1.zip/content'}}],
  'state': 'done',
  'submitted': True}]

GESIS records

https://developers.zenodo.org/#records

Get records

Get records for all GESIS members.

records_api_url = "https://zenodo.org/api/records"
search_query = 'creators.affiliation:("GESIS")'
params = {"q": search_query, "access_token": ACCESS_TOKEN}

r = requests.get(records_api_url, params=params)

gesis_records = r.json()
gesis_records["hits"]["hits"][0]
{'created': '2022-02-03T15:26:38.380712+00:00',
 'modified': '2022-03-04T10:58:01.633724+00:00',
 'id': 5914219,
 'conceptrecid': '5914218',
 'doi': '10.5281/zenodo.5914219',
 'conceptdoi': '10.5281/zenodo.5914218',
 'doi_url': 'https://doi.org/10.5281/zenodo.5914219',
 'metadata': {'title': 'KonsortSWD PID Registrator',
  'doi': '10.5281/zenodo.5914219',
  'publication_date': '2022-01-31',
  'description': '<p>The purpose of this software is to enable registering any object with an existing PID handle server based on the ePIC API.</p>',
  'access_right': 'open',
  'creators': [{'name': 'Zhang, Yudong', 'affiliation': 'GESIS'},
   {'name': 'Baran, Erdal', 'affiliation': 'GESIS'},
   {'name': 'Zloch, Matthäus', 'affiliation': 'GESIS'},
   {'name': 'Mühlbauer, Alexander', 'affiliation': 'GESIS'},
   {'name': 'Klas, Claus-Peter', 'affiliation': 'GESIS'},
   {'name': 'Mutschke, Peter', 'affiliation': 'GESIS'}],
  'contributors': [{'name': 'Klas, Claus-Peter',
    'affiliation': 'Gesis',
    'type': 'ProjectManager'},
   {'name': 'Mutschke, Peter',
    'affiliation': 'Gesis',
    'type': 'ProjectManager'},
   {'name': 'Zhang, Yudong', 'affiliation': 'Gesis', 'type': 'ProjectMember'},
   {'name': 'Baran, Erdal', 'affiliation': 'Gesis', 'type': 'ProjectMember'},
   {'name': 'Muehlbauer, Alex',
    'affiliation': 'Gesis',
    'type': 'ProjectMember'},
   {'name': 'Zloch, Matthäus',
    'affiliation': 'Gesis',
    'type': 'ProjectMember'}],
  'keywords': ['NFDI', 'PID', 'DOI', 'Registration', 'ePIC', 'da|ra'],
  'version': 'v0.1.0',
  'resource_type': {'title': 'Software', 'type': 'software'},
  'license': {'id': 'apache2.0'},
  'communities': [{'id': 'konsortswd'}, {'id': 'nfdi'}],
  'relations': {'version': [{'index': 0,
     'is_last': True,
     'parent': {'pid_type': 'recid', 'pid_value': '5914218'}}]}},
 'title': 'KonsortSWD PID Registrator',
 'links': {'self': 'https://zenodo.org/api/records/5914219',
  'self_html': 'https://zenodo.org/records/5914219',
  'self_doi': 'https://zenodo.org/doi/10.5281/zenodo.5914219',
  'doi': 'https://doi.org/10.5281/zenodo.5914219',
  'parent': 'https://zenodo.org/api/records/5914218',
  'parent_html': 'https://zenodo.org/records/5914218',
  'parent_doi': 'https://zenodo.org/doi/10.5281/zenodo.5914218',
  'self_iiif_manifest': 'https://zenodo.org/api/iiif/record:5914219/manifest',
  'self_iiif_sequence': 'https://zenodo.org/api/iiif/record:5914219/sequence/default',
  'files': 'https://zenodo.org/api/records/5914219/files',
  'media_files': 'https://zenodo.org/api/records/5914219/media-files',
  'archive': 'https://zenodo.org/api/records/5914219/files-archive',
  'archive_media': 'https://zenodo.org/api/records/5914219/media-files-archive',
  'latest': 'https://zenodo.org/api/records/5914219/versions/latest',
  'latest_html': 'https://zenodo.org/records/5914219/latest',
  'draft': 'https://zenodo.org/api/records/5914219/draft',
  'versions': 'https://zenodo.org/api/records/5914219/versions',
  'access_links': 'https://zenodo.org/api/records/5914219/access/links',
  'access_users': 'https://zenodo.org/api/records/5914219/access/users',
  'access_request': 'https://zenodo.org/api/records/5914219/access/request',
  'access': 'https://zenodo.org/api/records/5914219/access',
  'reserve_doi': 'https://zenodo.org/api/records/5914219/draft/pids/doi',
  'communities': 'https://zenodo.org/api/records/5914219/communities',
  'communities-suggestions': 'https://zenodo.org/api/records/5914219/communities-suggestions',
  'requests': 'https://zenodo.org/api/records/5914219/requests'},
 'updated': '2022-03-04T10:58:01.633724+00:00',
 'recid': '5914219',
 'revision': 10,
 'files': [{'id': '3ecd1aa8-992d-443d-8ba3-77277ac22a0e',
   'key': 'nfdi_pid_registrator_v0.1.0.tar',
   'size': 259584,
   'checksum': 'md5:41c5211ba7a8cf34746ca901bc3bd96c',
   'links': {'self': 'https://zenodo.org/api/records/5914219/files/nfdi_pid_registrator_v0.1.0.tar/content'}}],
 'owners': [{'id': 295671}],
 'status': 'published',
 'stats': {'downloads': 7,
  'unique_downloads': 5,
  'views': 196,
  'unique_views': 150,
  'version_downloads': 7,
  'version_unique_downloads': 5,
  'version_unique_views': 149,
  'version_views': 195},
 'state': 'done',
 'submitted': True}

Extract names

Extract creator names from records of GESIS members.

for record in gesis_records["hits"]["hits"]:
    print(f"\n## {record['doi']}\n[ {record['title']} ]")
    for creator in record["metadata"]["creators"]:
        if creator["affiliation"] and "GESIS" in creator["affiliation"]:
            print(creator["name"])

## 10.5281/zenodo.5914219
[ KonsortSWD PID Registrator ]
Zhang, Yudong
Baran, Erdal
Zloch, Matthäus
Mühlbauer, Alexander
Klas, Claus-Peter
Mutschke, Peter

## 10.5281/zenodo.259554
[ Rich metadata from the start ]
Hopt, Oliver
Klas, Claus-Peter
Mühlbauer, Alexander
Zenk-Möltgen, Wolfgang

## 10.5281/zenodo.6630263
[ Experiences with converting DDI among versions using DDI-FlatDB ]
Klas, Claus-Peter
Hopt, Oliver
Krämer, Thomas
Nugraha, Sigit

## 10.5281/zenodo.7023258
[ Umfrage zur Situation von Professor*innen an einer technischen Hochschule in Deutschland. Fragebogen (deutsche Version) ]
Geisler, Helena
Löther, Andrea
Steinweg, Nina

## 10.5281/zenodo.7024958
[ Survey on the situation of professors at a technical university in Germany. Questionnaire (English version) ]
Geisler, Helena
Löther, Andrea
Steinweg, Nina

## 10.5281/zenodo.7220636
[ UniSAFE D4.1 Final UniSAFE-Survey Questionnaire ]
Lipinsky, Anke
Schredl, Claudia
Baumann, Horst
Lomazzi, Vera
Freund, Frederike

## 10.5281/zenodo.259565
[ The Past, Present and Future of Geocoded Survey Data at the GESIS Data Archive ]
Müller, Stefan
Zenk-Möltgen, Wolfgang
Schweers, Stefan

## 10.5281/zenodo.4621051
[ Introduction to metadata initiatives of interest to CESSDA and Service Providers ]
Borschewski, Kerrin
Akdeniz, Esra
Piesch, Sophia

## 10.5281/zenodo.7143302
[ An integrated platform for comparing reference extraction toolkits and provisioning their output ]
Mayr, Philipp
Backes, Tobias
Shahid, Muhammad Ahsan

## 10.5281/zenodo.4581806
[ MS17 Open source CAT TM software selected ]
Veronika Keck
Dorothée Behr
Brita Dorer

## 10.5281/zenodo.1118382
[ Progress with the CESSDA Euro Question Bank Project ]
MahmoudHashemi, Azadeh
Mühlbauer, Alexander
Zenk-Möltgen, Wolfgang

## 10.5281/zenodo.1118391
[ Lessons Learned with Additional Mappings into DDI-FlatDB ]
Klas, Claus-Peter
Hopt, Oliver
Mühlbauer, Alexander

## 10.5281/zenodo.5180976
[ D4.9 Guidelines on the use of Translation Memories in survey translation ]
Veronika Keck
Dorothée Behr
Brita Dorer

## 10.5281/zenodo.8386418
[ Total Error Sheets for Datasets (TES-D) zur Dokumentation Digitaler Verhaltensdaten - Eine Kritische Reflektion des Datensammlungsprozesses ]
Fröhling, Leon
Sen, Indira
Soldner, Felix
Zens, Maria
Weller, Katrin

## 10.5281/zenodo.7638506
[ User Guide for the CESSDA Metadata Model version 3.0 ]
Esra Akdeniz
Kerrin Borschewski
Katrin Baum
Libby Bishop

## 10.5281/zenodo.3582020
[ CESSDA Webinar: The CESSDA EuroQuestionBank: Search, find and reuse questionnaire items from social scientific research ]
Akdeniz, Esra
Krämer, Thomas

## 10.5281/zenodo.7464990
[ European DDI Conference 2022 Training Fair: Overview of the Session ]
Bishop, Elizabeth
Zenk-Möltgen, Wolfgang

## 10.5281/zenodo.4518893
[ GDPR & Ethical Issues with Social Media Data ]
Weller, Katrin
Watteler, Oliver

## 10.5281/zenodo.1118384
[ DDI-FlatDB: Next steps ]
Klas, Claus-Peter
Hopt, Oliver

## 10.5281/zenodo.3597408
[ DDI based Questionnaire Editor ]
Klas, Claus-Peter
Hopt, Oliver

## 10.5281/zenodo.3781700
[ Data Sharing in DASISH ]
Alexia Katsanidou
Markus Quandt

## 10.5281/zenodo.3776982
[ Secure Data Solutions for Social Media Data Analysis ]
David Schiller
Katharina Kinder-Kurlanda

## 10.5281/zenodo.1118393
[ Practical Implementations of the DDILimDAS Results at the GESIS Data Archive ]
Akdeniz, Esra
Zenk-Möltgen, Wolfgang

## 10.5281/zenodo.1134531
[ Using DDI to Link Metadata in CharmStats ]
Winters, Kristi
Friedrichs, Martin

## 10.5281/zenodo.7149418
[ Handling Non-source Items in the project OUTCITE ]
Philipp Mayr
Tobias Backes

Create a list of GESIS authors and Zenodo publications.

gesis_authors = []

for record in gesis_records["hits"]["hits"]:
    for creator in record["metadata"]["creators"]:
        if creator["affiliation"] and "GESIS" in creator["affiliation"]:
            gesis_authors.append(
                {
                    "record": record["doi"],
                    "creator": creator["name"],
                    "type": record["metadata"]["resource_type"]["type"],
                }
            )
gesis_authors[:5]
[{'record': '10.5281/zenodo.5914219',
  'creator': 'Zhang, Yudong',
  'type': 'software'},
 {'record': '10.5281/zenodo.5914219',
  'creator': 'Baran, Erdal',
  'type': 'software'},
 {'record': '10.5281/zenodo.5914219',
  'creator': 'Zloch, Matthäus',
  'type': 'software'},
 {'record': '10.5281/zenodo.5914219',
  'creator': 'Mühlbauer, Alexander',
  'type': 'software'},
 {'record': '10.5281/zenodo.5914219',
  'creator': 'Klas, Claus-Peter',
  'type': 'software'}]

Analyze names

Convert list of dictionaries into a data frame with pandas.

import pandas as pd

df = pd.DataFrame(gesis_authors)

print(df)
                    record                 creator          type
0   10.5281/zenodo.5914219           Zhang, Yudong      software
1   10.5281/zenodo.5914219            Baran, Erdal      software
2   10.5281/zenodo.5914219         Zloch, Matthäus      software
3   10.5281/zenodo.5914219    Mühlbauer, Alexander      software
4   10.5281/zenodo.5914219       Klas, Claus-Peter      software
..                     ...                     ...           ...
70  10.5281/zenodo.1118393  Zenk-Möltgen, Wolfgang  presentation
71  10.5281/zenodo.1134531         Winters, Kristi        poster
72  10.5281/zenodo.1134531      Friedrichs, Martin        poster
73  10.5281/zenodo.7149418            Philipp Mayr  presentation
74  10.5281/zenodo.7149418           Tobias Backes  presentation

[75 rows x 3 columns]

Determine the number of publications per GESIS author with pandas.

(
    df.groupby("creator")
    .size()
    .reset_index(name="Count")
    .sort_values(by="Count", ascending=False)
    .head(10)
)
creator Count
19 Klas, Claus-Peter 6
45 Zenk-Möltgen, Wolfgang 5
15 Hopt, Oliver 5
29 Mühlbauer, Alexander 4
0 Akdeniz, Esra 3
14 Geisler, Helena 2
43 Weller, Katrin 2
41 Veronika Keck 2
39 Steinweg, Nina 2
20 Krämer, Thomas 2

Visualize names

Plot the number of publications per author with altair.

import altair as alt

(alt.Chart(df).mark_bar().encode(x="count():Q", y="creator:N", color="type"))

Zenodo metadata in GitHub

Zenodo imports metadata from a GitHub repository. However, some information needs to be added manually to have a full metadata record and a complete citation reference (e.g. authors full names and affiliations)

Get metadata

Here is the metadata of a record that was completed on the Zenodo page. We provide a json dump.

import json

r = requests.get("https://zenodo.org/api/records/8421233")

metadata = r.json()["metadata"]

print(json.dumps(metadata, indent=2))
{
  "title": "Linking European Social Survey (ESS) party information",
  "doi": "10.5281/zenodo.8421233",
  "publication_date": "2023-10-09",
  "description": "<p>R code for linking <a href=\"https://www.europeansocialsurvey.org/\">European Social Survey (ESS)</a> party information from Rounds 1\u201310 with social science datasets through <a href=\"partyfacts.org\">Party Facts</a>.</p><p>Two examples for linking ESS parties with the <a href=\"https://www.chesdata.eu/\">Chapel Hill Expert Survey (CHES)</a> and the <a href=\"parlgov.org\">Parliament and Government Database (ParlGov)</a> are provided in notebooks.</p><p>These examples are presented in a website at <a href=\"https://hdigital.github.io/ess-linking/\">hdigital.github.io/ess-linking</a>.</p>",
  "access_right": "open",
  "creators": [
    {
      "name": "Bederke, Paul",
      "affiliation": "University of Konstanz, Germany",
      "orcid": "0000-0001-7555-8656"
    },
    {
      "name": "D\u00f6ring, Holger",
      "affiliation": "GESIS - Leibniz-Institute for the Social Sciences",
      "orcid": "0000-0002-6616-8805"
    }
  ],
  "keywords": [
    "comparative politics",
    "data management",
    "survey data",
    "voting behavior",
    "expert surveys",
    "validation"
  ],
  "related_identifiers": [
    {
      "identifier": "https://github.com/hdigital/ess-linking/tree/v0.1",
      "relation": "isSupplementTo",
      "scheme": "url"
    }
  ],
  "version": "v0.1",
  "resource_type": {
    "title": "Software",
    "type": "software"
  },
  "license": {
    "id": "mit-license"
  },
  "relations": {
    "version": [
      {
        "index": 0,
        "is_last": true,
        "parent": {
          "pid_type": "recid",
          "pid_value": "8421232"
        }
      }
    ]
  }
}

Specify metadata

You can also specify Zenodo metadata in a .zenodo.json file in your GitHub repository.

https://developers.zenodo.org/#github

This allows you to almost fully automate the data archiving without adding information manually in Zenodo.

Here is a version of the .zenodo.json we created. It includes only the metadata that Zenodo can not extract from other GitHub information.

zenodo_json = """
{
  "title": "Harmonizing and linking party information: The ESS as an example of complex data linking",
  "description": "R code and notebooks with examples for linking party data in the European Social Survey (ESS)",
  "creators": [
    {
      "affiliation": "University of Konstanz, Germany",
      "name": "Bederke, Paul",
      "orcid": "0000-0001-7555-8656"
    },
    {
      "affiliation": "GESIS – Leibniz Institute for the Social Sciences, Germany",
      "name": "Döring, Holger",
      "orcid": "0000-0002-6616-8805"
    }
  ],
  "keywords": [
    "comparative politics",
    "data management",
    "survey data",
    "voting behavior",
    "expert surveys",
    "validation"
  ],
  "license": {
    "id": "mit"
  }
}
"""

Let’s check if the json is valid and can be loaded in Python.

zenodo_dict = json.loads(zenodo_json)

len(zenodo_dict)
5

Get license id

This is how we found the license id – see https://developers.zenodo.org/?python#licenses

response = requests.get("https://zenodo.org/api/licenses", params={"q": "id:mit"})
response.json()
{'hits': {'hits': [{'id': 'mit',
    'created': '2023-10-12T17:24:20.716475+00:00',
    'updated': '2023-10-12T17:24:20.758570+00:00',
    'links': {'self': 'https://zenodo.org/api/vocabularies/licenses/mit'},
    'revision_id': 1,
    'title': {'en': 'MIT License'},
    'description': {'en': 'A short and simple permissive license with conditions only requiring preservation of copyright and license notices. Licensed works, modifications, and larger works may be distributed under different terms and without source code.'},
    'icon': '',
    'props': {'url': 'https://opensource.org/licenses/MIT',
     'scheme': 'spdx',
     'osi_approved': 'y'},
    'tags': ['recommended', 'all', 'software'],
    'type': 'licenses'}],
  'total': 1},
 'sortBy': 'bestmatch',
 'links': {'self': 'https://zenodo.org/api/vocabularies/licenses?page=1&q=id%3Amit&size=25&sort=bestmatch'}}

Learning Python

Background

Many of the Python approaches used in this notebook are covered in Eric Matthes (2022): Python Crash Course.

Chapter 17 covers Working with APIs. This is the majority of tasks done in this notebook as well.

Chapter 15 on Generating Data provides examples for creating figures with matplotlib. In the notebook, we use Vega-Altair which is based on a grammar of graphis and similiar to the prominent R library ggplot2.

The book does not cover pandas, the major Python library for data analysis. Here, we use pandas to convert the API reponse with a list of dictionaries into a data frame.

We used ChatGPT regularly when creating the notebook to get code examples with parameters.

Finally, a couple of dead ends and unsuccessfull coding attempts did not make it into the notebook.

Book reference

As always in this notebook, there is an API to access metadata. Here, we use the Open Library Books API to get the metadata with the book’s ISBN.

r = requests.get("https://openlibrary.org/isbn/9781718502703.json")
book = r.json()

book
{'type': {'key': '/type/edition'},
 'authors': [{'key': '/authors/OL7634726A'}],
 'isbn_13': ['9781718502703'],
 'languages': [{'key': '/languages/eng'}],
 'pagination': '544',
 'publish_date': '2022',
 'publishers': ['No Starch Press, Incorporated'],
 'source_records': ['bwb:9781718502703', 'amazon:1718502702'],
 'title': 'Python Crash Course, 3rd Edition',
 'weight': '0.369',
 'works': [{'key': '/works/OL28018702W'}],
 'key': '/books/OL38327872M',
 'latest_revision': 2,
 'revision': 2,
 'created': {'type': '/type/datetime', 'value': '2022-06-18T00:55:01.629742'},
 'last_modified': {'type': '/type/datetime',
  'value': '2022-11-15T08:14:57.012982'}}
url = f"https://openlibrary.org/{book['authors'][0]['key']}.json"
url
'https://openlibrary.org//authors/OL7634726A.json'
r = requests.get(url)
r.json()
{'name': 'Eric Matthes',
 'created': {'type': '/type/datetime', 'value': '2019-10-04T05:26:31.796765'},
 'last_modified': {'type': '/type/datetime',
  'value': '2019-10-04T05:26:31.796765'},
 'latest_revision': 1,
 'key': '/authors/OL7634726A',
 'type': {'key': '/type/author'},
 'revision': 1}