Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

Datum des CBS-Abzugs: 20232026-0310-01

Dieser Bericht wurde automatisiert mit R Markdown erstellt. Der pica-rs-Code für die Abfrage aller Tc-Sätze und der R-Code für die Berechnung der Ausgabetabelle können durch Aufklappen der Codeblöcke eingesehen werden.

Von allen Datensätzen mit 002@.0 == 'Tc' ohne 050C.a =^ 'GND-kein-Schlagwort' werden die Unterfelder $2 und $4 der PICA+-Felder 022P, 028P, 029P, 030P, 041P und 065P ausgelesen und die IDN-Anzahlen für alle Kombinationen der Werte {‘agrovoc’, ‘lcsh’, ‘ram’, ‘mesh’, ‘stw’, ‘thesoz’, ‘embne’, ‘nsbncf’, ‘tpro’, ‘etiras’} in $2 und {‘ftaa’, ‘ftae’, ‘ftai’, ‘ftao’, ‘ftau’, ‘ftob’, ‘ftub’, ‘ftvb’, ‘ftnu’} in $4 berechnet.

...

Codeblock
languagebash
collapsetrue
#!/bin/bash

set -euo pipefail
# set -x

# Datenformat GND - Crosskonkordanzen zu externen Vokabularen/Thesauri:
# https://wiki.dnb.de/pages/viewpage.action?pageId=263851158x/lgy6Dw

dnb_dump=/srv/aen-data/pica/T.dat

# Tc-Sätze "f bbg Tc NOT rdb GND-kein-Schlagwort*"
pica filter -s "002@.0 == 'Tc'" --not "050C.a =^ 'GND-kein-Schlagwort'" $dnb_dump -o Tc.dat

# 028P (700) - "p" - Person
# 029P (710) - "b" - Körperschaft
# 030P (711) - "f" - Konferenz
# 022P (730) - "u" - Einheitstitel
# 041P (750) - "s" - Sachbegriff
# 065P (751) - "g" - Geografikum

pica select -H "IDN, Feld, Thesaurus, Relation" "003@.0, '028P', 028P{2, 4}" \
--where "028P.4?" Tc.dat -o Tc.csv

# ohne Header anhängen
pica select "003@.0, '029P', 029P{2, 4}" --where "029P.4?" Tc.dat --append -o Tc.csv
pica select "003@.0, '030P', 030P{2, 4}" --where "030P.4?" Tc.dat --append -o Tc.csv
pica select "003@.0, '022P', 022P{2, 4}" --where "022P.4?" Tc.dat --append -o Tc.csv
pica select "003@.0, '041P', 041P{2, 4}" --where "041P.4?" Tc.dat --append -o Tc.csv
pica select "003@.0, '065P', 065P{2, 4}" --where "065P.4?" Tc.dat --append -o Tc.csv

...

Codeblock
languagenone
collapsetrue
# Crosskonkordanzen einlesen
ck <- read_csv('Tc.csv', col_types = 'cccc')

# Wertebereiche gemäß Wiki-Seiten definieren
thesauri <- read_csv('Thesauri.csv', col_types = 'cc')
relationen <- read_csv('Relationen.csv', col_types = 'cc')

# Crosskonkordanzen filtern und zählen
rslt1rslt <- ck %>%
  filter(Thesaurus %in% thesauri$Code & Relation %in% relationen$Code) %>%
  mutate(
    Thesaurus = factor(Thesaurus, 
                       levels = thesauri$Code, labels = thesauri$Thesaurus),
    Relation  = factor(Relation,
                       levels = relationen$Code, labels = relationen$Relation)
  ) %>%
  # GESAMT als Summe über alle Relationen
  rbind((.) %>% mutate(Relation = factor('GESAMT'))) %>%
  # auch alle leeren Levels jeweils mit Anzahl 0 anzeigen
  group_by(Thesaurus, Relation, .drop = FALSE) %>% 
  # jede Kombination (Thesaurus, Relation) je IDN nur einmal zählen
  summarise(n = n_distinct(IDN)) %>%
  pivot_wider(id_cols = Relation, names_from = Thesaurus, values_from = n)

# Summe
rslt2 <- data.frame(Relation = factor('GESAMT'), 
                    rslt1 %>% select(-Relation) %>% summarise_all(.funs = sum))
colnames(rslt2) <- colnames(rslt1)

# Formatierte Ausgabetabelle
rbind(rslt1, rslt2) %>% rslt %>%
  mutate_at(.vars = setdiff(colnames(.), 'Relation'), .funs = ~ formatC(
    ., format = 'd', big.mark = '.', decimal.mark = ',')) %>%
  knitr::kable(align = c('l', rep('r', ncol(.)-1)))
RelationAGROVOCLCSHRAMEAUMeSHSTWTheSozEMBNENSoggT-PROET
Äquivalenz (ftaa)90
45
52.
334
760
44
49.
037
697
36
58
8.786
0
103
100
11
13.
259
658
8
12.
563
5162669
exakte Äquivalenz (ftae)5.
491
462
3833524.775
1.6121.0336.5185.894
5
7.
340
323
17
18
22
24363.501
inexakte Äquivalenz (ftai)5
187
933
206
953
212
4080
205
198
0
557
3
33292.362
ODER-Äquivalenz (ftao)4
35
212
23
1316500
0
10
0
5281.409
UND-Äquivalenz (ftau)1.2932.
280
3314.
472
742
116
120
406
4381.
605
6141100
Oberbegriff-Relation (ftob)2.
127
10900
54
557.
754
8842.
918
9350000
Unterbegriff-Relation (ftub)
183
1820012
11
394
360
382
387
0000
Verwandter-Begriff-Relation (ftvb)
769
75400113.
597
810931
923
0000
Null-Relation (ftnu)168
17
20.
970
589
19
23.
457
6140520888
779
2
872
300
1
0
GESAMT10.
130
067
66
78.
189
437
68
80.
547
170
5
7.
280
247
21
18.
687
94014.
353
371
11
14.
277
246
8
12.
589
656757.941