Skip to content

Commit

Permalink
Fixed internal links
Browse files Browse the repository at this point in the history
  • Loading branch information
MontyBitto committed Jan 14, 2025
1 parent 780e298 commit fb54b2b
Show file tree
Hide file tree
Showing 10 changed files with 27 additions and 33 deletions.
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ Zur Erstellung der HTML-Version der Vortragsfolien in `slides` muss Pandoc insta

## Danksagung

Die Technische Infrastruktur für die Bereitstellung dieses Handbuchs wurde von [Felix Lohmeier](https://felixlohmeier.de/) abgeschaut, der übrigens auch weitere interessante Einführungen in Themen der Datenverarbeitung für Bibliotheks- und Kultureinrichtungen anbietet. Die Implementierungen zur [Verarbeitung von PICA-Daten](verarbeitung) basieren zu wesentlichen Teilen auf der Arbeit von Carsten Klee und Johann Rolschewski. Weitere Beiträge und hilfreiche Hinweise zu diesem Handbuch stammen von Cornelius Amzar, Nico Wagner, Sabrina Gaab und Anne Schuchardt.
Die Technische Infrastruktur für die Bereitstellung dieses Handbuchs wurde von [Felix Lohmeier](https://felixlohmeier.de/) abgeschaut, der übrigens auch weitere interessante Einführungen in Themen der Datenverarbeitung für Bibliotheks- und Kultureinrichtungen anbietet. Die Implementierungen zur [Verarbeitung von PICA-Daten](verarbeitung) basieren zu wesentlichen Teilen auf der Arbeit von Carsten Klee und Johann Rolschewski. Weitere Beiträge und hilfreiche Hinweise zu diesem Handbuch stammen von Cornelius Amzar, Nico Wagner, Sabrina Gaab und Anne Schuchardt. Das Handbuch wurde von Monty Bitto zu Quarto konvertiert.

## Lizenz

Expand Down
4 changes: 2 additions & 2 deletions bearbeitung.qmd
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@ indirekt zu Änderungen an PICA-Daten führen können:
- den **Digitalen Assistent** (DA-3)
- das Mapping-Werkzeug **[Cocoda](https://coli-conc.gbv.de/cocoda/)**

Um unabhängig von einzelnen Werkzeugen Änderungen an PICA-Datensätzen auszudrücken, wurde an der VZG das [PICA-Patch-Format](formate.qmd#Änderungsformat) entwickelt.
Um unabhängig von einzelnen Werkzeugen Änderungen an PICA-Datensätzen auszudrücken, wurde an der VZG das [PICA-Patch-Format](formate.qmd#änderungsformat) entwickelt.

## Änderungen mit Catmandu

Das Werkzeug [Catmandu](catmandu) ermöglicht neben der Abfrage und Auswertung
Das Werkzeug Catmandu (@sec-catmandu) ermöglicht neben der Abfrage und Auswertung
von PICA-Daten auch die Erstellung von PICA-Patch-Datensätzen um Änderungen
festzustellen ("diff") oder ausführen ("patch"). Die Eintragung dieser Änderungen
in zentrale PICA-Datenbanken ist allerdings nur durch Verbundzentralen möglich.
Expand Down
6 changes: 3 additions & 3 deletions catmandu.qmd
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Das Werkzeug Catmandu {#sec-catmandu}

**Catmandu** ist ein digitaler Werkzeugkasten für die Verarbeitung von Metadaten. Im Gegensatz zu ähnlichen ETL-Tools unterstützt Catmandu gängige Datenformate und Schnittstellen von Bibliothekssoftware, darunter auch PICA. Die PICA-Unterstützung in Catmandu basiert auf [picadata] und geht darüber hinaus, vor allem was Möglichkeiten des Zugriffs auf [Schnittstellen](schnittstellen) und der Konvertierung zwischen PICA und anderen Formaten betrifft.
**Catmandu** ist ein digitaler Werkzeugkasten für die Verarbeitung von Metadaten. Im Gegensatz zu ähnlichen ETL-Tools unterstützt Catmandu gängige Datenformate und Schnittstellen von Bibliothekssoftware, darunter auch PICA. Die PICA-Unterstützung in Catmandu basiert auf [picadata] und geht darüber hinaus, vor allem was Möglichkeiten des Zugriffs auf Schnittstellen (@sec-apis) und der Konvertierung zwischen PICA und anderen Formaten betrifft.

::: {.callout-note appearance="simple"}
[Catmandu-Einführung](https://metacpan.org/pod/Catmandu::Introduction) (in Englisch)
Expand Down Expand Up @@ -45,7 +45,7 @@ catmandu convert pp to JSON < example.pica
[{"record":[["003@","","0","12345X"],["021A","","a","Ein Buch","h","zum Lesen"],["045B","02","a","Spo 1025","a","BID 200"]],"_id":"12345X"}]
~~~

Funktionen zur Verarbeitung von PICA in Catmandu werden erst durch das Paket [Catmandu-PICA](https://metacpan.org/release/Catmandu-PICA) bereitgestellt (siehe [Installation](#installation-1)):
Funktionen zur Verarbeitung von PICA in Catmandu werden erst durch das Paket [Catmandu-PICA](https://metacpan.org/release/Catmandu-PICA) bereitgestellt (siehe [Installation](#installation)):

* Lesen und Schreiben verschiedener [PICA-Serialisierungen](formate.qmd#serialisierungen)
* Auswerten und Verändern der Inhalte von PICA-Datensätzen
Expand Down Expand Up @@ -86,7 +86,7 @@ Weitere Beispiele für Fix-Skripte gibt es in @sec-aendern.

## Schnittstellen

Seine Stärken spielt Catmandu bei der Unterstützung einer Vielzahl von Schnittstellen und Datenbanksystemen aus um Daten aus verschiedenen Quellen aus- und in andere Systeme einzuspielen. Hier ein kurzes Beispiel mit der [SRU-Schnittstelle](schnittstellen.qmd#SRU) des K10Plus-Katalogs. Folgender Aufruf beantwortet die Frage welche Datensätze mit einer bestimmtender DDC-Sachgruppe der Deutschen Nationalbibliothek aber nicht mit der Basisklassifikation erschlossen sind:
Seine Stärken spielt Catmandu bei der Unterstützung einer Vielzahl von Schnittstellen und Datenbanksystemen aus um Daten aus verschiedenen Quellen aus- und in andere Systeme einzuspielen. Hier ein kurzes Beispiel mit der [SRU-Schnittstelle](schnittstellen.qmd#sru) des K10Plus-Katalogs. Folgender Aufruf beantwortet die Frage welche Datensätze mit einer bestimmtender DDC-Sachgruppe der Deutschen Nationalbibliothek aber nicht mit der Basisklassifikation erschlossen sind:

~~~bash
catmandu convert kxp --query pica.sgd=590 --fix 'reject pica_match(045Q) remove_field(record)' to CSV --header 0
Expand Down
6 changes: 3 additions & 3 deletions darstellung.qmd
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# Anzeigen von PICA-Daten {#sec-anzeigen}

Der erste Schritte bei jeder Analyse und Verarbeitung von PICA-Daten besteht darin, sich die Daten anzusehen. Dazu ist am besten die [PICA Plain Serialisierung](formate.qmd#serialisierungen) geeingnet. Werkzeuge zur Konvertierung in dieses Format werden [im folgenden Kapitel](verarbeitung) vorgestellt. Zur übersichtlicheren Anzeige von PICA Plain gibt es verschiedene Methoden der [Syntaxhervorhebung](#syntaxhervorhebung).
Der erste Schritte bei jeder Analyse und Verarbeitung von PICA-Daten besteht darin, sich die Daten anzusehen. Dazu ist am besten die [PICA Plain Serialisierung](formate.qmd#serialisierungen) geeingnet. Werkzeuge zur Konvertierung in dieses Format werden in @sec-verarbeiten vorgestellt. Zur übersichtlicheren Anzeige von PICA Plain gibt es verschiedene Methoden der [Syntaxhervorhebung](#syntaxhervorhebung).

::: {.callout-important appearance="simple"}
Dieses Kapitel soll noch um Methoden ergänzt werden um Hilfe zu einzelnen PICA-Feldern abzurufen.
:::

## Syntaxhervorherbung
## Syntaxhervorhebung

Durch farbliche Hervorhebung von Feldern und Unterfeldern lassen sich PICA-Daten leichter lesen. Unter <https://gbv.github.io/lipstick/> werden Funktionen zum **Syntax-Highlighting von PICA+** und verwandten Formaten gesammelt:

Expand All @@ -22,7 +22,7 @@ Der Texteditor vim gehört praktisch zur Standardausstattung für jedes Unix-Sys

### picadata

Das Kommandozeilenprogramm [picadata](verarbeitung.qmd#picadata) wird im folgenden Kapitel vorgestellt.
Das Kommandozeilenprogramm picadata wird im @sec-picadata vorgestellt.

![Screenshot PICA Syntax-Highlighting mit picadata](img/screenshot-picadata.png){#fig-picadatasyntax}

Expand Down
12 changes: 5 additions & 7 deletions formate.qmd
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Beim PICA-Format handelt es sich genaugenommen um eine Reihe aufeinander aufbaue

* Zunächst werden der [grundsätzliche Aufbau](#grundsätzlicher-aufbau) von PICA+ und [Pica3](#pica3) sowie mögliche [PICA-Serialisierungen](#serialisierungen) vorgestellt.

* Zum Zugriff auf einzelne Elemente von PICA-Datensätzen gibt es die [Abfragesprache PICA Path Expressions](#abfragesprache) und zum Vergleich von Datensätzen ein [Änderungsformat](#Änderungsformat).
* Zum Zugriff auf einzelne Elemente von PICA-Datensätzen gibt es die [Abfragesprache PICA Path Expressions](#abfragesprache) und zum Vergleich von Datensätzen ein [Änderungsformat](#änderungsformat).

* Konkrete Anwendungsformate von PICA werden als [Anwendungsprofile](#anwendungsprofile) durch semi-formale Katalogisierungsrichtlinien oder mittels formaler [Avram-Schemas](#avram-schemas) festgelegt.

Expand Down Expand Up @@ -108,9 +108,7 @@ Bei der formalen Beschreibung von Katalogisierungsregeln mittels [Avram] können

## Serialisierungen

Zur Speicherung und Übertragung können PICA-Daten in verschiedener Form [kodiert bzw. serialisiert](grundlagen.qmd#kodierungen) werden. Alle PICA-Kodierungen lassen sich verlustfrei ineinander umwandeln, so dass jeweils die für eine Anwendung am einfachsten zu verarbeitende Serialisierung genutzt werden kann. Bei den [Schnittstellen] unAPI, SRU und OAI-PMH kann mit der Anfrage unter PICA-Kodierungen ausgewählt werden.

[Schnittstellen]: schnittstellen.qmd
Zur Speicherung und Übertragung können PICA-Daten in verschiedener Form [kodiert bzw. serialisiert](grundlagen.qmd#kodierungen) werden. Alle PICA-Kodierungen lassen sich verlustfrei ineinander umwandeln, so dass jeweils die für eine Anwendung am einfachsten zu verarbeitende Serialisierung genutzt werden kann. Bei den Schnittstellen (@sec-apis) unAPI, SRU und OAI-PMH kann mit der Anfrage unter PICA-Kodierungen ausgewählt werden.

Neben den Binärformaten **[Binäres PICA](https://format.gbv.de/pica/binary)**, **[Normalisiertes PICA](https://format.gbv.de/pica/normalized)** und dem [PICA-Importformat](https://format.gbv.de/pica/import), die direkt in CBS- und LBS-Software verwendet werden, gibt es:

Expand All @@ -119,7 +117,7 @@ Neben den Binärformaten **[Binäres PICA](https://format.gbv.de/pica/binary)**,
* **[PICA/XML](https://format.gbv.de/pica/xml)** Syntax, eine Kodierung in XML (primäre XML-Kodierung im GBV)
* **[PPXML](https://format.gbv.de/pica/ppxml)** Syntax, eine alternative Kodierung in XML (primäre XML-Kodierung der Deutschen Nationalbibliothek)

PICA Plain ist den internen Binärformaten am nächsten: Datensätze und Felder werden durch Zeilenumbrüche (Bytecode `0A`) getrennt und Unterfelder mit einem Dollar-Zeichen (`$`) eingeleitet. Dollar-Zeichen in Werten lassen sich durch Doppelung (`$$`) kodieren. Das Format ist über einen "versteckten Link" direkt [aus dem OPAC verfügbar](schnittstellen.qmd#OPAC). Statt dem Dollarzeichen verwendet WinIBW zur Kennzeichnung von Unterfeldern den kleinen Buchstaben F mit Haken (ƒ). PICA/JSON hat den Vorteil dass Felder und Unterfelder bereits maschinenlesbar getrennt sind und dass praktisch alle Programmiersprachen mit JSON umgangen werden können. Die XML-Serialisierungen sind für XML-basierte Anwendungen und Schnittstellen relevant. PPXML weist die Besonderheit auf, dass Titel-, Lokal- und Exemplarebene bereits im Format getrennt sind. Nachfolgend der gleiche Beispieldatensatz in allen sieben Serialisierungen (bei den Binärformaten steht zur besseren Lesbarkeit `[XX]` für ein Byte mit dem hexadezimalen Bytecode `XX`):
PICA Plain ist den internen Binärformaten am nächsten: Datensätze und Felder werden durch Zeilenumbrüche (Bytecode `0A`) getrennt und Unterfelder mit einem Dollar-Zeichen (`$`) eingeleitet. Dollar-Zeichen in Werten lassen sich durch Doppelung (`$$`) kodieren. Das Format ist über einen "versteckten Link" direkt [aus dem OPAC verfügbar](schnittstellen.qmd#opac). Statt dem Dollarzeichen verwendet WinIBW zur Kennzeichnung von Unterfeldern den kleinen Buchstaben F mit Haken (ƒ). PICA/JSON hat den Vorteil dass Felder und Unterfelder bereits maschinenlesbar getrennt sind und dass praktisch alle Programmiersprachen mit JSON umgangen werden können. Die XML-Serialisierungen sind für XML-basierte Anwendungen und Schnittstellen relevant. PPXML weist die Besonderheit auf, dass Titel-, Lokal- und Exemplarebene bereits im Format getrennt sind. Nachfolgend der gleiche Beispieldatensatz in allen sieben Serialisierungen (bei den Binärformaten steht zur besseren Lesbarkeit `[XX]` für ein Byte mit dem hexadezimalen Bytecode `XX`):

### PICA Plain

Expand Down Expand Up @@ -242,7 +240,7 @@ Als Erweiterung der PICA/JSON Serialisierung können Markierungszeichen als letz
]
~~~

Zur Erzeugung von Änderungsdatensätzen siehe auch der Abschnitt zur [Bearbeitung von PICA-Daten](bearbeitung).
Zur Erzeugung von Änderungsdatensätzen siehe auch der Abschnitt zur Bearbeitung von PICA-Daten (@sec-aendern).

## Anwendungsprofile

Expand All @@ -252,7 +250,7 @@ Die Regeln eines PICA-Standards können auch Angaben zu erlaubten Werten und wei

## Avram-Schemas

Avram ist eine [Schemasprache](grundlagen.qmd#abfrage-und-schemaformate) für feldbasierte Formate wie MARC, PICA, MAB und allegro. Ein Avram-Schema legt beispielsweise fest welche PICA-Felder und -Unterfelder in einem Datensatz vorkommen können oder müssen und welche Felder und Unterfelder wiederholbar sind. Avram-Schemas für PICA-Daten können verwendet werden um Informationen zur Definition von Feldern anzuzeigen und um PICA-Daten gegen das Schema zu validieren. Ein Beispiel für die Verwendung von Avram-Schemas ist der [PicaEditor](verarbeitung.qmd#picaeditor). Für verschiedene im GBV verwendeten PICA-Formate werden Avram-Schemas per [Avram-API](schnittstellen.qmd#avram-api) bereitgestellt.
Avram ist eine [Schemasprache](grundlagen.qmd#abfrage--und-schemaformate) für feldbasierte Formate wie MARC, PICA, MAB und allegro. Ein Avram-Schema legt beispielsweise fest welche PICA-Felder und -Unterfelder in einem Datensatz vorkommen können oder müssen und welche Felder und Unterfelder wiederholbar sind. Avram-Schemas für PICA-Daten können verwendet werden um Informationen zur Definition von Feldern anzuzeigen und um PICA-Daten gegen das Schema zu validieren. Ein Beispiel für die Verwendung von Avram-Schemas ist der [PicaEditor](verarbeitung.qmd#picaeditor). Für verschiedene im GBV verwendeten PICA-Formate werden Avram-Schemas per [Avram-API](schnittstellen.qmd#avram-api) bereitgestellt.

::: {.callout-note appearance="simple"}
[Avram-Spezifikation in der GBV-Formatdatenbank](http://format.gbv.de/schema/avram/specification)
Expand Down
6 changes: 3 additions & 3 deletions grundlagen.qmd
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ Eine umfassende [Einführung zu Bibliotheksmanagementsystemen] gibt es im Handbu
Das PICA-Format ist ein Datenformat, doch was ist überhaupt ein Datenformat? Ein Datenformat ist eine Konvention zur Strukturierung digitaler Objekte (Datensätze). So legen beispielsweise CSV-Formate die Struktur einer Tabelle aus Zeilen und Spalten fest. Letzendlich dienen alle Datenformate dazu, Daten in Bestandteile zu zerlegen, denen Bedeutung zugewiesen werden kann. Bei CSV besteht die Bedeutung von einzelnen Datenelementen beispielsweise aus "Zeile", "Spalte", "Trennzeichen" und "Zelle". Datenformat deren Elemente solche eher abstrakten Bedeutungen haben, werden auch [Strukturierungsformate] genannt. Davon zu unterscheiden sind [Anwendungsformate], [Kodierungen] und [Datenmodelle]. Eine besondere Rolle bei der Festlegung von Datenformaten spielen [Standards und Profile] sowie [Abfrage- und Schemaformate].

[Standards und Profile]: #standards-und-profile
[Abfrage- und Schemaformate]: #abfrage-und-schemaformate
[Abfrage- und Schemaformate]: #abfrage--und-schemaformate
[Strukturierungsformate]: #strukturierungsformate
[Datenstrukturierungssprache]: #strukturierungsformate
[Anwendungsformate]: #anwendungsformate
Expand Down Expand Up @@ -95,12 +95,12 @@ Da das PICA-Format eng mit der PICA-Software CBS und LBS verbunden ist wurden di
[Schemaformate](http://format.gbv.de/schema) in der GBV-Formatdatenbank
:::

[PICA Path Expression]: formate.qmd#abfragesprachen
[PICA Path Expression]: formate.qmd#abfragesprache
[Avram]: formate.qmd#avram-schemas

### Kodierungen

Letzendlich müssen alle Daten als Folge von Bits bzw. Bytes ausgedrückt werden. Eine **Kodierung**, **Serialisierung** oder **Syntax** legt fest, wie Datensätze eines Datenformates oder -Modells durch Elemente eines anderen Datenformates ausgedrückt werden können. Meist werden [Anwendungsformate] in [Strukturierungsformaten](#strukturierungsformat) kodiert, die sich wiederum über mehrere Ebenen auf Bytes zurückführen lassen. Direkt in Bytes kodierte Datenformate werden auch **Binärformate** genannt.
Letzendlich müssen alle Daten als Folge von Bits bzw. Bytes ausgedrückt werden. Eine **Kodierung**, **Serialisierung** oder **Syntax** legt fest, wie Datensätze eines Datenformates oder -Modells durch Elemente eines anderen Datenformates ausgedrückt werden können. Meist werden [Anwendungsformate] in [Strukturierungsformaten](#strukturierungsformate) kodiert, die sich wiederum über mehrere Ebenen auf Bytes zurückführen lassen. Direkt in Bytes kodierte Datenformate werden auch **Binärformate** genannt.

Während Computer nur mit Kodierungen arbeiten, interessiert Menschen eigentlich nur was mit Kodierungen ausgedrückt wird. In der Praxis wird deshalb nicht immer genau zwischen einem Datenformat und seiner Kodierung unterschieden. So liegt beispielsweise XML in der Regel in XML-Syntax vor, also wird beides als XML bezeichnet. Bei der Verarbeitung von Daten ist jedoch genau darauf zu achten, auch welcher Kodierungsebene jeweils angesetzt wird.

Expand Down
2 changes: 1 addition & 1 deletion pica-rs.qmd
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Das Werkzeug pica-rs {#sec-pica-rs}

pica-rs ist wie [picadata](picadata.qmd) ein Kommandozeilenwerkzeug zur Auswertung von PICA-Daten.
pica-rs ist wie picadata (@sec-picadata) ein Kommandozeilenwerkzeug zur Auswertung von PICA-Daten.

::: {.callout-note appearance="simple"}
[Dokumentation von pica-rs](https://github.com/deutsche-nationalbibliothek/pica-rs#readme)
Expand Down
6 changes: 3 additions & 3 deletions picadata.qmd
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,13 @@ sudo apt-get install libxml-libxml-perl cpanminus
sudo cpanm PICA::Data
~~~

Das Programm setzt vorhandene PICA-Daten voraus (siehe [Kapitel Schnittstellen](schnittstellen) zum Zugriff auf PICA-Daten). Zum Ausprobieren können PICA-Daten in [PICA Plain Syntax](https://format.gbv.de/pica/plain) auch mit einem Texteditor erstellt werden. Laden Sie die Datei [`example.pica`](example.pica ':ignore') mit folgendem Inhalt herunter:
Das Programm setzt vorhandene PICA-Daten voraus (siehe @sec-apis) zum Zugriff auf PICA-Daten). Zum Ausprobieren können PICA-Daten in [PICA Plain Syntax](https://format.gbv.de/pica/plain) auch mit einem Texteditor erstellt werden. Laden Sie die Datei [`example.pica`](example.pica ':ignore') mit folgendem Inhalt herunter:

[](example.pica ':include :type=code plain')

## Konvertierung

Im einfachsten Anwendungsfall liest `picadata` PICA+ Datensätze in PICA Plain und gibt sie mit [Syntax-Hervorhebung](darstellung.qmd#syntaxhervorherbung) wieder aus. Hier drei Aufruf-Möglichkeiten:
Im einfachsten Anwendungsfall liest `picadata` PICA+ Datensätze in PICA Plain und gibt sie mit [Syntax-Hervorhebung](darstellung.qmd#syntaxhervorhebung) wieder aus. Hier drei Aufruf-Möglichkeiten:

~~~bash
picadata example.pica
Expand Down Expand Up @@ -58,7 +58,7 @@ Folgende Serialisierungsformate werden unterstützt:
[PICA/XML]: https://format.gbv.de/pica/xml
[PPXML]: https://format.gbv.de/pica/ppxml

Für PICA Plain und PICA/JSON werden vorhandene [Annotationen](formate.qmd#Änderungsformat) standardmäßig mit ausgegeben. Die Option `-A` unterdrückt die Ausgabe von Annotationen. Umgekehrt stellt die Option `-a`/`--annotate` sicher dass alle Felder annotiert sind, indem ggf. ein Leerzeichen als Standard-Annotation ergänzt wird.
Für PICA Plain und PICA/JSON werden vorhandene [Annotationen](formate.qmd#änderungsformat) standardmäßig mit ausgegeben. Die Option `-A` unterdrückt die Ausgabe von Annotationen. Umgekehrt stellt die Option `-a`/`--annotate` sicher dass alle Felder annotiert sind, indem ggf. ein Leerzeichen als Standard-Annotation ergänzt wird.

In der Regel sind PICA-Felder in einem Datensatz geordnet. Die Option `-o` sortiert Datensätze neu und zwar getrennt für die bibliographische Ebene und innerhalb der einzelnen Lokal- und Exemplardatensätze.

Expand Down
Loading

0 comments on commit fb54b2b

Please sign in to comment.