---title: "PID-Typ, -Klasse, -Provider und -System"title-block-banner: images/pidnetwork_logo_bg.pngtitle-block-banner-color: whiteauthor-meta: "Andreas Czerniak [https://orcid.org/0000-0003-3883-4169]"author: - name: "Andreas Czerniak" orcid: "0000-0003-3883-4169"lang: dedate: 2024-10-10format: html: code-fold: true code-tools: true page-layout: fullheader-includes: | <link rel="stylesheet" href="https://cdn.datatables.net/2.1.8/css/dataTables.dataTables.min.css"> <script src="https://code.jquery.com/jquery-3.7.1.min.js" integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo=" crossorigin="anonymous"></script> <script src="https://cdn.datatables.net/2.1.8/js/dataTables.min.js"></script> <script> if (typeof define === "function" && define.amd) { define.amd = false; // AMD deaktivieren } document.addEventListener("DOMContentLoaded", function() { console.log("JavaScript und DataTables geladen"); }); </script>execute: echo: falsejupyter: python3---{{< include _banner.qmd >}}::: {.content-visible when-profile="german"}# Persistente IdentifikatorenPersistente Identifikatoren (PIDs) spielen eine zentrale Rolle in der modernen Wissenschaftslandschaft des digitalen Zeitalters. Sie ermöglichen die eindeutige Identifikation sämtlicher Ressourcen, Akteure und Ergebnisse des wissenschaftlichen Forschungsprozesses, was nicht nur die Transparenz, sondern insbesondere auch die Vernetzung wissenschaftlicher Aktivitäten fördert.PID sind eindeutige alphanumerische Codes, die in der Regel als Link fungieren und mit beschreibenden Informationen (Metadaten) zu den Ressourcen verknüpft sind. PIDs gewährleisten, dass die verknüpfte Information auch bei Veränderungen der Speicherorte oder Namen weiterhin auffindbar bleibt.Die Anwendung von Persistenten Identifikatoren (PIDs) erfährt eine stetige Erweiterung und findet zunehmend in verschiedenen Bereichen Anwendung. Dies zeigt sich etwa in der Entwicklung von PIDs für Forschungssoftware, Forschungsinstrumente, Daten- und Softwaremanagementpläne, Repositorien sowie wissenschaftliche Preise & Konferenzen.Ein PID-Typ wurde historisch für einen spezifischen Anwendungsfall (Ressourcentyp) entwickelt. Sehr bekannte Beispiele hierfür sind * der [Digital Object Identifier](https://doi.org){target='_blank'} , kurz DOI, der ursprünglich zur Referenzierung und Auffindbarkeit von Zeitschriftenartikeln konzipiert wurde * die *Open Researcher and Contributor ID*, kurz ORCID, welche im Wissenschafts-Bereich die Moglichkeit bietet Wissenschaftler:innen eindeutig zu identifizieren.Die Entwicklung des DOI-Systems verdeutlicht, dass inzwischen eine Vielzahl von digitalen Objekten mit einem DOI versehen wird. Der DOI ist jedoch nur ein Beispiel; ein weiteres ist die [Gemeinsame Normdatei](https://gnd.network){target='_blank'} (GND) der [Deutschen Nationalbibliothek (DNB)](/Datenquellen/DNB/info.qmd).Alle diese Entwicklungen haben und tragen aktuell zur digitalen Transformation im Wissenschafts-Bereich bei.## Der PID - TypDer Begriff "PID-Typ" repräsentiert persistente Identifikatoren, welche ihre eigene Semantik, Syntax und Komplexität haben. Zu diesen zweckdienlichen *PID-Typ* zählen u.a. folgende Identifikatoren: * Archival Resource Key (ARK)* Digital Object Identifier (DOI)* Research Activity Identifier (RAiD)* Research Organization Registry (ROR)* Open Researcher and Contributor ID (ORCID iD)* ...Im folgenden finden sich zwei Beispiele für Syntax und Semantik:* DOI: Grundlegend ist die DOI in zwei Teile aufgesplittet: ''prefix/suffix'', dabei ist das *prefix* in der Form "10.ABCD", wobei **ABCD** die registrierte Organisation beschreibt und *suffix* von der registrierten Organisation für das jeweilige Objekt eindeutig vergeben wird. Von der Syntax her ist das *suffix* nur der Einschränkung laut *Uniform Resource Locator* unterlegen und ist vollständig im ISO-Standard: [ISO 26324](https://www.iso.org/standard/81599.html) beschrieben.* ORCID: ORCID-iDs werden zunächst vom ORCID-Register nach dem Zufallsprinzip aus einem Nummernblock vergeben, der nicht mit anderweitig vergebenen ISNI-formatierten Nummern kollidiert. ORCID iDs erfordern immer alle 16 Ziffern des Identifikators; sie können nicht gekürzt werden, um führende Nullen zu entfernen, falls diese vorhanden sind. Die Syntax einer ORCID iD entspricht dem [ISO/IEC 7064:2003, MOD 11-2](https://www.iso.org/standard/31531.html){target='_blank'}.Und fügt sich damit in die Spezfikation der FAIR-Digital Objects (FDO) [@Lannom2022] mit ein.## Die Entität bzw. der RessourcentypDer Begriff "Entität" beschreibt allgemein etwas, das eine eigenständige Existenz besitzt, unabhängig davon, ob diese materieller oder immaterieller Natur ist. In der Regel bezeichnet es eine Einheit, die als individuell und eindeutig identifizierbar betrachtet werden kann ([@DudenEntity],[@WebstersNewEncyDic1996]). Im spezifischen Kontext, wie er hier verwendet wird, bezieht sich der Begriff "Entität" auf ein eindeutig identifizierbares Konzept innerhalb eines definierten Kontextes ([@Thalheim2000],[@Alter1998]). Der hier genutzte Ressourcentyp ist in seiner Bedeutung dieser Entität gleichzusetzen und wird oft im Kontext von Metadaten verwendet.# Was ist eine PID-Klasse?Persistente Identifikatoren können in der Regel **nicht** exakt einem Verwendungszweck zugeordnet werden. Daher wird eine Kombination von **PID-Typ und Entität bzw. Ressourcentyp** herangezogen, um die notwendige Präzision und Kontextualisierung sicherzustellen.Eine Übersicht der komplexen Landschaft von PID-Typen **und** Entitäten (bzw. Ressourcentypen) zeigt Abbildung [-@fig-pid-class-landscape-part].:::::: {.content-visible when-profile="platt"} GND("GND<br><img src='images/icons/gnd_person.png' width='50' height='50'/>") --> RESEARCHER:::::: {.content-visible when-profile="english"}## Persistent identifier# What is a PID-class?:::<div style='text-align: center;'>```{mermaid}%%| fig-width: 2.5%%| fig-cap: "Beispielhafte Übersicht von PID-Typ und Entität/Ressourcetyp"%%| label: fig-pid-class-landscape-partflowchart BT DOI("DOI") --> ARTICLE(" <br/> <b> Artikel </b> <br/> <br>") DOI --> CONFERENCE(" <br/> <b>Konferenz</b> <br/> <br>") DOI --> DATASET(" <br/> <b>Datensatz</b> <br/> <br>") DOI --> INSTRUMENT(" <br/> <b>Instrument</b> <br/> <br>") DOI --> SOFTWARE(" <br/> <b>Software</b> <br/> <br>") IGSN(IGSN) --> PHYSICALOBJECT(" <br/> <b>physisches Objekt</b> <br/> <br>") ORCID(ORCID) --> RESEARCHER(" <br/> <b>Wissenschaftler:in</b> <br/> <br>") ROR("ROR") --> ORGANIZATION(" <br/> <b>Organisation</b> <br/> <br>") GND("GND") --> |"<img src='images/icons/gnd_person.png' width='20'/>"| RESEARCHER GND --> |"<img src='images/icons/gnd_organisation.png' width='20'/>"| ORGANIZATION GND --> |"<img src='images/icons/gnd_veranstaltung.png' width='20'/>"| CONFERENCE GND --> |"<img src='images/icons/gnd_werk.png' width='20'/>"| PHYSICALOBJECT EPIC("EPIC") --> INSTRUMENT EDUID("edu-ID") --> RESEARCHER ISBN(ISBN) --> BOOK(" <br/> <b>Buch</b> <br/> <br>") ARK("ARK") --> ARTICLE ARK --> DATASET GERIT("GERiT") --> ORGANIZATION URN("URN") --> ARTICLE URN --> DATASET RRID("RRID") --> SOFTWARE RRID --> ARTICLE PMID("PubMed") --> ARTICLE PMCID("PubMedCentral") --> ARTICLE DOI --> BOOK```</div>::: {.content-visible when-profile="german"}Die Kombination aus **PID-Typ und Entität/Ressourcentyp** wird zu einer **PID-Klasse** verknüpft. Abbildung [-@fig-pid-klasse-python] illustriert diese Kombination.:::<div style='text-align: center;'>::: {.content-visible when-profile="german"}```{mermaid}%%| label: fig-pid-klasse%%| fig-cap: "Diagramm der PID-Klasse"graph TD subgraph C["<b>PID-Klasse</b><br> <br>"] direction LR style C fill:#f3f3f3,stroke:#000,stroke-width:1px A("<b>PID-Typ</b><br>zB. DOI<br>GND<br>ROR") <--> B("<b>Entität/<br>Ressourcentyp</b><br>zB. Artikel<br>Buch<br>Instrument<br>Organisation") end```:::::: {.content-visible when-profile="english"}```{mermaid}%%| label: fig-pid-class%%| fig-cap: "PID class diagram"graph TD subgraph C["<b>PID class</b><br> <br>"] direction LR style C fill:#f3f3f3,stroke:#000,stroke-width:1px A("<b>PID type</b><br>eg. DOI<br>GND<br>ROR") <--> B("<b>Entity/<br>Ressource type</b><br>eg. Article<br>Book<br>Instrument<br>Organization") end```:::</div><div style='text-align: center;'>::: {.content-visible when-profile="platt"}```{python}#| label: fig-pid-klasse-python#| fig-cap: "Die PID-Klasse"#| echo: false#| eval: trueimport matplotlib.pyplot as pltfrom matplotlib.patches import Circle, Rectanglefrom matplotlib import patches# Erstellen der Diagrammflächefig, ax = plt.subplots(figsize=(5, 5))# Großer umgebender Kreis (C)# circle_c = Circle((5, 5), 4, edgecolor='black', facecolor='none', linewidth=2, label='Circle C')# ax.add_patch(circle_c)# Rechteck (statt großem Kreis C)rect_c = Rectangle((1, 1.75), 7.5, 6.5, edgecolor='black', facecolor=(0.2, 0.4, 0.6, 0.5), linewidth=2, label='Rectangle C')ax.add_patch(rect_c)# Kleiner Kreis Acircle_a = Circle((3.5, 5), 1.5, edgecolor='gray', facecolor='lightblue', linewidth=2, label='PID-Typ')ax.add_patch(circle_a)# Kleiner Kreis Bcircle_b = Circle((6.5, 5), 1.5, edgecolor='gray', facecolor='lightgray', linewidth=2, label='Entität')ax.add_patch(circle_b)# Beschriftungenax.text(3.5, 5, "PID-Typ", fontsize=12, ha='center', color='blue')ax.text(6.5, 5, "Entität", fontsize=12, ha='center', color='blue')ax.text(5, 7.0, "PID-Klasse", fontsize=16, ha='center', color='black')# Achsen anpassenax.set_xlim(0, 10)ax.set_ylim(0, 10)ax.set_aspect('equal', adjustable='datalim')ax.axis('off')# Diagramm anzeigen#plt.title("Abbildung der PID-Klasse", fontsize=16)plt.show()```:::::: {.content-visible when-profile="english"}```{python}#| label: fig-pid-class-python#| fig-cap: "PID class"#| echo: false#| eval: trueimport matplotlib.pyplot as pltfrom matplotlib.patches import Circle, Rectanglefrom matplotlib import patches# Erstellen der Diagrammflächefig, ax = plt.subplots(figsize=(5, 5))# Großer umgebender Kreis (C)# circle_c = Circle((5, 5), 4, edgecolor='black', facecolor='none', linewidth=2, label='Circle C')# ax.add_patch(circle_c)# Rechteck (statt großem Kreis C)rect_c = Rectangle((1, 1.75), 7.5, 6.5, edgecolor='black', facecolor=(0.2, 0.4, 0.6, 0.5), linewidth=2, label='Rectangle C')ax.add_patch(rect_c)# Kleiner Kreis Acircle_a = Circle((3.5, 5), 1.5, edgecolor='gray', facecolor='lightblue', linewidth=2, label='PID type')ax.add_patch(circle_a)# Kleiner Kreis Bcircle_b = Circle((6.5, 5), 1.5, edgecolor='gray', facecolor='lightgray', linewidth=2, label='Entity')ax.add_patch(circle_b)# Beschriftungenax.text(3.5, 5, "PID type", fontsize=12, ha='center', color='blue')ax.text(6.5, 5, "Entity", fontsize=12, ha='center', color='blue')ax.text(5, 7.0, "PID class", fontsize=16, ha='center', color='black')# Achsen anpassenax.set_xlim(0, 10)ax.set_ylim(0, 10)ax.set_aspect('equal', adjustable='datalim')ax.axis('off')# Diagramm anzeigenplt.title("Figure of PID class", fontsize=16)plt.show()```:::</div>Anwendungsbeispiele für die PID-Klasse ist die Zuordnung eines PID-Typs zu einer Entität. Die [Tabelle](matrix.qmd)gibt eine exemplarische Übersicht hierzu.::: {.content-visible when-profile="platt"}```{python}#| label: table-pidtype-entity#| fig-cap: "Tabelle: Beispiele von PID-Typ/Entity"#| echo: false#| eval: trueimport pandas as pdfrom IPython.display import display, HTML#import locale#import warnings#warnings.filterwarnings('ignore')# Set locale to German to display month names in German#locale.setlocale(locale.LC_TIME, 'de_DE.UTF-8')file_path ="tools/PTyp-Entity.csv"df = pd.read_csv(file_path, header=None)# Tabelle als HTML konvertieren#html_table = data.to_html(index=False, classes='display', border=0)df_transposed_corrected = df.set_index(df.columns[0]).Thtml_table = df_transposed_corrected.to_html(index=False, classes='display', border=0)# DataTables Skripte und CSS einfügenhtml_script ='''<link rel="stylesheet" href="https://cdn.datatables.net/2.1.8/css/dataTables.dataTables.min.css"><script src="https://code.jquery.com/jquery-3.7.1.min.js" integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo=" crossorigin="anonymous"></script><script src="https://cdn.datatables.net/2.1.8/js/dataTables.min.js"></script><script>$(document).ready(function() { $('table.display').DataTable({ pageLength: 10, // Anzahl der Zeilen pro Seite searching: true, // Aktiviert die Suchfunktion ordering: true // Aktiviert die Sortierfunktion });});</script>'''# HTML kombinieren und anzeigendisplay(HTML(html_table + html_script))```:::# PID-ProviderEin **Provider für persistente Identifikatoren** (PID) ist eine Organisation oder ein Dienstleister, der stabile, langfristig gültige digitale Identifikatoren für Entitäten, d.h. Objekten, Personen oder Institutionen,bereitstellt und verwaltet. Diese PIDs bleiben auch dann konstant, wenn sich beispielsweise die digitale Adresse eines Objekts ändert.<br>PID-Provider sind essenziell für Langzeitarchivierung, wissenschaftliche Referenzierung und digitale Objekterhaltung, da sie verhindern, dass Ressourcen durch veraltete Links unauffindbar werden (sogenanntes "Link Rot").# PID-SystemDie Kombination aus **PID-Provider, den PID-Typ(en) und den möglichen Entitäten** wird zu einem **PID-System** verknüpft. Abbildung [-@fig-pid-system-python] illustriert diese Kombination.<div style='text-align: center;'>::: {.content-visible when-profile="german"}```{python}#| label: fig-pid-system-python#| fig-cap: "Diagramm des PID-System"#| echo: false#| eval: trueimport matplotlib.pyplot as pltfrom matplotlib.patches import Circle, Rectanglefrom matplotlib import patches# Erstellen der Diagrammflächefig, ax = plt.subplots(figsize=(5, 5))## Großer umgebender Kreis (C)#circle_c = Circle((5, 5), 4, edgecolor='black', facecolor='none', linewidth=2, label='Circle C')#ax.add_patch(circle_c)### Kleiner Kreis A## circle_a = Circle((3.5, 5), 1.5, edgecolor='gray', facecolor='lightblue', linewidth=2, label='PID-Typ')## ax.add_patch(circle_a)#rect_a = Rectangle((2.25, 3.5), 2.5, 3, edgecolor='gray', facecolor='lightblue', linewidth=2, label='PID-Typ')#ax.add_patch(rect_a)### Kleiner Kreis B#circle_b = Circle((6.5, 5), 1.5, edgecolor='gray', facecolor='lightgray', linewidth=2, label="Entitaet")#ax.add_patch(circle_b)# Großer umgebender Kreis (C)circle_c = Circle((5, 5), 4, edgecolor='black', facecolor='none', linewidth=2, label='Circle C')ax.add_patch(circle_c)# Rechteck A durch zwei Kreise ersetzen# Erster Kreis innerhalb von 'rect_a'#circle_a1 = Circle((3.25, 5), 1.2, edgecolor='gray', facecolor='lightblue', linewidth=2, label='PID-Typ (Teil 1)')#ax.add_patch(circle_a1)rect_a1 = Rectangle((2.25, 3), 2, 2, edgecolor='gray', facecolor=(0.2, 0.4, 0.6, 0.5), linewidth=2, label='PID-Klasse (Teil 1)')ax.add_patch(rect_a1)# Zweiter Kreis innerhalb von 'rect_a'#circle_a2 = Circle((4.75, 5), 1.2, edgecolor='gray', facecolor='lightblue', linewidth=2, label='PID-Typ (Teil 2)')#ax.add_patch(circle_a2)rect_a2 = Rectangle((3.75, 4.55), 2, 2, edgecolor='gray', facecolor=(0.2, 0.4, 0.6, 0.5), linewidth=2, label='PID-Klasse (Teil 1)')ax.add_patch(rect_a2)# Kleiner Kreis Bcircle_b = Circle((5.5, 3.5), 1.5, edgecolor='gray', facecolor='lightgray', linewidth=2, label="Entitaet")ax.add_patch(circle_b)# Beschriftungenax.text(3.75, 5.2, "PID-Klassen", fontsize=12, ha='center', color='blue')ax.text(5.5, 3.5, "PID-Provider", fontsize=12, ha='center', color='gray')ax.text(5, 7.5, "PID-System", fontsize=16, ha='center', color='black')# Achsen anpassenax.set_xlim(0, 10)ax.set_ylim(0, 10)ax.set_aspect('equal', adjustable='datalim')ax.axis('off')# Diagramm anzeigen#plt.title("Diagramm des PID-System", fontsize=16)plt.show()```:::::: {.content-visible when-profile="english"}```{python}#| label: fig-pid-system-en-python#| fig-cap: "Diagram of PID system"#| echo: false#| eval: trueimport matplotlib.pyplot as pltfrom matplotlib.patches import Circle, Rectanglefrom matplotlib import patches# Erstellen der Diagrammflächefig, ax = plt.subplots(figsize=(5, 5))## Großer umgebender Kreis (C)#circle_c = Circle((5, 5), 4, edgecolor='black', facecolor='none', linewidth=2, label='Circle C')#ax.add_patch(circle_c)### Kleiner Kreis A## circle_a = Circle((3.5, 5), 1.5, edgecolor='gray', facecolor='lightblue', linewidth=2, label='PID-Typ')## ax.add_patch(circle_a)#rect_a = Rectangle((2.25, 3.5), 2.5, 3, edgecolor='gray', facecolor='lightblue', linewidth=2, label='PID-Typ')#ax.add_patch(rect_a)### Kleiner Kreis B#circle_b = Circle((6.5, 5), 1.5, edgecolor='gray', facecolor='lightgray', linewidth=2, label="Entitaet")#ax.add_patch(circle_b)# Großer umgebender Kreis (C)circle_c = Circle((5, 5), 4, edgecolor='black', facecolor='none', linewidth=2, label='Circle C')ax.add_patch(circle_c)# Rechteck A durch zwei Kreise ersetzen# Erster Kreis innerhalb von 'rect_a'#circle_a1 = Circle((3.25, 5), 1.2, edgecolor='gray', facecolor='lightblue', linewidth=2, label='PID-Typ (Teil 1)')#ax.add_patch(circle_a1)rect_a1 = Rectangle((2.25, 3), 2, 2, edgecolor='gray', facecolor=(0.2, 0.4, 0.6, 0.5), linewidth=2, label='PID-Klasse (Teil 1)')ax.add_patch(rect_a1)# Zweiter Kreis innerhalb von 'rect_a'#circle_a2 = Circle((4.75, 5), 1.2, edgecolor='gray', facecolor='lightblue', linewidth=2, label='PID-Typ (Teil 2)')#ax.add_patch(circle_a2)rect_a2 = Rectangle((3.75, 4.55), 2, 2, edgecolor='gray', facecolor=(0.2, 0.4, 0.6, 0.5), linewidth=2, label='PID-Klasse (Teil 1)')ax.add_patch(rect_a2)# Kleiner Kreis Bcircle_b = Circle((5.5, 3.5), 1.5, edgecolor='gray', facecolor='lightgray', linewidth=2, label="Entitaet")ax.add_patch(circle_b)# Beschriftungenax.text(3.75, 5.2, "PID classes", fontsize=12, ha='center', color='blue')ax.text(5.5, 3.5, "PID provider", fontsize=12, ha='center', color='gray')ax.text(5, 7.5, "PID system", fontsize=16, ha='center', color='black')# Achsen anpassenax.set_xlim(0, 10)ax.set_ylim(0, 10)ax.set_aspect('equal', adjustable='datalim')ax.axis('off')# Diagramm anzeigenplt.title("Diagram of PID system", fontsize=16)plt.show()```:::</div>::: {.content-visible when-profile="german"}Einige Beispiele für Systeme mit persistenten Identifikatoren (PID) sind:* [International Standard Book Number](https://www.wikidata.org/wiki/Q33057){target='_blank'} (ISBN):<br> Ein eindeutiger Identifikator für Bücher, der weltweit in Verlagswesen und Bibliotheken verwendet wird.* [ICAO airport code](https://www.wikidata.org/wiki/Q207529){target='_blank'}<br> Ein von der International Civil Aviation Organization (ICAO) zugewiesener eindeutiger Code zur Identifikation von Flughäfen.* [ISO 3166-2](https://www.iso.org/standard/72483.html){target='_blank'}<br> Ein international standardisiertes System zur Kodierung von Untereinheiten von Staaten, beispielsweise Bundesländer oder Provinzen.* [ORCID iD](https://www.wikidata.org/wiki/Q51044){target='_blank'}<br> Eine eindeutige Kennung für Wissenschaftlerinnen und Wissenschaftler, die die eindeutige Zuordnung von Forschungsarbeiten zu ihren Urhebern ermöglicht.:::::: {.content-visible when-profile="english"}## PID-provider## PID-system:::::: {.content-visible when-profile="platt"}```{python}import matplotlib.pyplot as pltfrom matplotlib.patches import Ellipse, Circle, Rectangle# Erstellen der Diagrammflächefig, ax = plt.subplots(figsize=(6, 4.5)) # Angepasste Fläche# Zeichnen der Teilmengen als Ellipsen# AXax.add_patch(Ellipse((2, 3), width=5, height=3.5, edgecolor='blue', facecolor='none', linewidth=2, label="DataCite-DOI-Dataset"))# BXax.add_patch(Ellipse((7, 3), width=5, height=3.5, edgecolor='red', facecolor='none', linewidth=2, label="CrossRef-DOI-Artikel"))# PAax.add_patch(Ellipse((2.5, 3), width=3.5, height=2.8, edgecolor='cyan', facecolor='none', linewidth=2, label="DataCite"))# PBax.add_patch(Ellipse((6.5, 3), width=3.5, height=2.8, edgecolor='orange', facecolor='none', linewidth=2, label="CrossRef"))# X innerhalb von AX und BXax.add_patch(Ellipse((3, 3), width=2.5, height=1.5, edgecolor='darkcyan', facecolor='none', linewidth=2, label="DOI&DataSet"))ax.add_patch(Ellipse((6, 3), width=2.5, height=1.5, edgecolor='darkcyan', facecolor='none', linewidth=2))# Hinzufügen von Beschriftungenax.text(2.9, 3, "Dataset&DOI", fontsize=10, ha='center', color="darkcyan")ax.text(6, 3, "DOI&Artikel", fontsize=10, ha='center', color="darkcyan")ax.text(2, 4.8, "DataCite-DOI-Dataset", fontsize=10, ha='center', color="blue")ax.text(6.5, 4.8, "CrossRef-DOI-Artikel", fontsize=10, ha='center', color="red")ax.text(2, 3.8, "DataCite", fontsize=10, ha='center', color="cyan")ax.text(6.5, 4, "CrossRef", fontsize=10, ha='center', color="orange")# Achsen deaktivierenax.axis('equal')ax.axis('off')# Diagramm anzeigenplt.title("Mengenübersicht zu DOI-Artikel/Datensatz, dem PID-Provider und dem PID-System", fontsize=14)plt.show()```:::</div>::: {.content-visible when-profile="english"}test :::
Pre-Release
Persistente Identifikatoren
Persistente Identifikatoren (PIDs) spielen eine zentrale Rolle in der modernen Wissenschaftslandschaft des digitalen Zeitalters. Sie ermöglichen die eindeutige Identifikation sämtlicher Ressourcen, Akteure und Ergebnisse des wissenschaftlichen Forschungsprozesses, was nicht nur die Transparenz, sondern insbesondere auch die Vernetzung wissenschaftlicher Aktivitäten fördert.
PID sind eindeutige alphanumerische Codes, die in der Regel als Link fungieren und mit beschreibenden Informationen (Metadaten) zu den Ressourcen verknüpft sind. PIDs gewährleisten, dass die verknüpfte Information auch bei Veränderungen der Speicherorte oder Namen weiterhin auffindbar bleibt.
Die Anwendung von Persistenten Identifikatoren (PIDs) erfährt eine stetige Erweiterung und findet zunehmend in verschiedenen Bereichen Anwendung. Dies zeigt sich etwa in der Entwicklung von PIDs für Forschungssoftware, Forschungsinstrumente, Daten- und Softwaremanagementpläne, Repositorien sowie wissenschaftliche Preise & Konferenzen.
Ein PID-Typ wurde historisch für einen spezifischen Anwendungsfall (Ressourcentyp) entwickelt. Sehr bekannte Beispiele hierfür sind
der Digital Object Identifier , kurz DOI, der ursprünglich zur Referenzierung und Auffindbarkeit von Zeitschriftenartikeln konzipiert wurde
die Open Researcher and Contributor ID, kurz ORCID, welche im Wissenschafts-Bereich die Moglichkeit bietet Wissenschaftler:innen eindeutig zu identifizieren.
Die Entwicklung des DOI-Systems verdeutlicht, dass inzwischen eine Vielzahl von digitalen Objekten mit einem DOI versehen wird. Der DOI ist jedoch nur ein Beispiel; ein weiteres ist die Gemeinsame Normdatei (GND) der Deutschen Nationalbibliothek (DNB).
Alle diese Entwicklungen haben und tragen aktuell zur digitalen Transformation im Wissenschafts-Bereich bei.
Der PID - Typ
Der Begriff “PID-Typ” repräsentiert persistente Identifikatoren, welche ihre eigene Semantik, Syntax und Komplexität haben. Zu diesen zweckdienlichen PID-Typ zählen u.a. folgende Identifikatoren:
Archival Resource Key (ARK)
Digital Object Identifier (DOI)
Research Activity Identifier (RAiD)
Research Organization Registry (ROR)
Open Researcher and Contributor ID (ORCID iD)
…
Im folgenden finden sich zwei Beispiele für Syntax und Semantik:
DOI: Grundlegend ist die DOI in zwei Teile aufgesplittet: ‘’prefix/suffix’’, dabei ist das prefix in der Form “10.ABCD”, wobei ABCD die registrierte Organisation beschreibt und suffix von der registrierten Organisation für das jeweilige Objekt eindeutig vergeben wird. Von der Syntax her ist das suffix nur der Einschränkung laut Uniform Resource Locator unterlegen und ist vollständig im ISO-Standard: ISO 26324 beschrieben.
ORCID: ORCID-iDs werden zunächst vom ORCID-Register nach dem Zufallsprinzip aus einem Nummernblock vergeben, der nicht mit anderweitig vergebenen ISNI-formatierten Nummern kollidiert. ORCID iDs erfordern immer alle 16 Ziffern des Identifikators; sie können nicht gekürzt werden, um führende Nullen zu entfernen, falls diese vorhanden sind. Die Syntax einer ORCID iD entspricht dem ISO/IEC 7064:2003, MOD 11-2.
Und fügt sich damit in die Spezfikation der FAIR-Digital Objects (FDO) (Larry Lannom 2022) mit ein.
Die Entität bzw. der Ressourcentyp
Der Begriff “Entität” beschreibt allgemein etwas, das eine eigenständige Existenz besitzt, unabhängig davon, ob diese materieller oder immaterieller Natur ist. In der Regel bezeichnet es eine Einheit, die als individuell und eindeutig identifizierbar betrachtet werden kann ((DUDEN 2024),(Michael Harkavy 1996)). Im spezifischen Kontext, wie er hier verwendet wird, bezieht sich der Begriff “Entität” auf ein eindeutig identifizierbares Konzept innerhalb eines definierten Kontextes ((Thalheim 2000),(Alter 1998)). Der hier genutzte Ressourcentyp ist in seiner Bedeutung dieser Entität gleichzusetzen und wird oft im Kontext von Metadaten verwendet.
Was ist eine PID-Klasse?
Persistente Identifikatoren können in der Regel nicht exakt einem Verwendungszweck zugeordnet werden. Daher wird eine Kombination von PID-Typ und Entität bzw. Ressourcentyp herangezogen, um die notwendige Präzision und Kontextualisierung sicherzustellen.
Eine Übersicht der komplexen Landschaft von PID-Typen und Entitäten (bzw. Ressourcentypen) zeigt Abbildung 1.
Figure 1: Beispielhafte Übersicht von PID-Typ und Entität/Ressourcetyp
Die Kombination aus PID-Typ und Entität/Ressourcentyp wird zu einer PID-Klasse verknüpft. Abbildung ?@fig-pid-klasse-python illustriert diese Kombination.
graph TD
subgraph C["<b>PID-Klasse</b><br> <br>"]
direction LR
style C fill:#f3f3f3,stroke:#000,stroke-width:1px
A("<b>PID-Typ</b><br>zB. DOI<br>GND<br>ROR") <--> B("<b>Entität/<br>Ressourcentyp</b><br>zB. Artikel<br>Buch<br>Instrument<br>Organisation")
end
Figure 2: Diagramm der PID-Klasse
Anwendungsbeispiele für die PID-Klasse ist die Zuordnung eines PID-Typs zu einer Entität. Die Tabelle gibt eine exemplarische Übersicht hierzu.
PID-Provider
Ein Provider für persistente Identifikatoren (PID) ist eine Organisation oder ein Dienstleister, der stabile, langfristig gültige digitale Identifikatoren für Entitäten, d.h. Objekten, Personen oder Institutionen, bereitstellt und verwaltet. Diese PIDs bleiben auch dann konstant, wenn sich beispielsweise die digitale Adresse eines Objekts ändert. PID-Provider sind essenziell für Langzeitarchivierung, wissenschaftliche Referenzierung und digitale Objekterhaltung, da sie verhindern, dass Ressourcen durch veraltete Links unauffindbar werden (sogenanntes “Link Rot”).
PID-System
Die Kombination aus PID-Provider, den PID-Typ(en) und den möglichen Entitäten wird zu einem PID-System verknüpft. Abbildung 3 illustriert diese Kombination.
Figure 3: Diagramm des PID-System
Einige Beispiele für Systeme mit persistenten Identifikatoren (PID) sind:
International Standard Book Number (ISBN): Ein eindeutiger Identifikator für Bücher, der weltweit in Verlagswesen und Bibliotheken verwendet wird.
ICAO airport code Ein von der International Civil Aviation Organization (ICAO) zugewiesener eindeutiger Code zur Identifikation von Flughäfen.
ISO 3166-2 Ein international standardisiertes System zur Kodierung von Untereinheiten von Staaten, beispielsweise Bundesländer oder Provinzen.
ORCID iD Eine eindeutige Kennung für Wissenschaftlerinnen und Wissenschaftler, die die eindeutige Zuordnung von Forschungsarbeiten zu ihren Urhebern ermöglicht.
Referenzen
Alter, Steven. 1998. Information Systems: A Management Perspective. 3. Aufl. Addison-Wesley Education Publishers Inc.