Compare commits

...

295 Commits
v1.0 ... master

Author SHA1 Message Date
Felix Lohmeier
2c8c8554a1 Release Herbstsemester 2021 (v5.0) 2022-01-31 10:35:00 +01:00
Felix Lohmeier
b8621bc96f Korrektur Layout 2022-01-18 12:27:24 +01:00
Felix Lohmeier
b74f663f2a Übertrag aus HedgeDoc Tag 9 2022-01-18 12:23:47 +01:00
Felix Lohmeier
0ba01b97af Übertrag aus HedgeDoc Tag 9 zum Marktüberblick 2022-01-18 12:23:34 +01:00
Felix Lohmeier
2101d75ae5 Aufgaben genauer spezifiziert 2022-01-18 12:23:01 +01:00
Felix Lohmeier
40dfd1d680 Übertrag Skript Tag 9 2021-12-17 17:12:45 +01:00
Felix Lohmeier
a1bed65c4e Neue Testdaten 2021-12-15 18:13:03 +01:00
Felix Lohmeier
15b7ce02cc Übertrag aus HedgeDoc 2021-12-15 12:23:34 +01:00
Felix Lohmeier
08a02bf36b Testdaten für VuFind 2021-12-15 11:40:26 +01:00
Felix Lohmeier
9138bb2ce1 Ersatztermin 2.12./3.12. 2021-11-30 11:43:13 +01:00
Felix Lohmeier
55bc6115c1 Übertrag aus HedgeDoc 2021-11-19 18:15:20 +01:00
Felix Lohmeier
4b9ca03461 Abschnitt Wofür git 2021-11-19 10:16:52 +01:00
Felix Lohmeier
26b1849865 Layout 2021-11-19 09:33:06 +01:00
Felix Lohmeier
adffca68db Link zum Lerntagebuch 2021-10-25 09:05:33 +02:00
Felix Lohmeier
970f3de5f1
Merge pull request #63 from petra-novak/master
Link zum Lenrtagebuch
2021-10-25 09:03:54 +02:00
Petra Novak
a0cb818eb9 https://github.com/petra-novak/Bain21.git 2021-10-20 12:57:34 +02:00
Petra Novak
c6012979ff https://github.com/petra-novak/Bain21.git 2021-10-20 12:26:07 +02:00
Felix Lohmeier
792b1ac2e7 Link Lerntagebuch aktualisiert 2021-10-08 17:43:18 +02:00
Felix Lohmeier
66d9c3f386 Links Lerntagebücher ergänzt 2021-10-08 09:44:02 +02:00
Felix Lohmeier
c2c39c92f9
Merge pull request #62 from SimoneBehr/master
Name geändert da Link schon da
2021-10-07 21:47:29 +02:00
Simone Behr
a41c897d7b Name geändert da Link schon da 2021-10-07 18:27:41 +02:00
Felix Lohmeier
086021b698 Links sortiert 2021-10-06 22:16:27 +02:00
Felix Lohmeier
07c8e09f32 Links zu Lerntagebüchern ergänzt und sortiert 2021-10-06 22:12:21 +02:00
Felix Lohmeier
2676c1e81b
Merge pull request #61 from barboraplacha/master
Hinweis auf Lerntagebuch ergänzt
2021-10-04 14:53:21 +02:00
barboraplacha
c8dd109902
Hinweis auf Lerntagebuch ergänzt 2021-10-04 09:37:07 +02:00
Felix Lohmeier
7b6cb717c4 Lerntagebücher aus vorigem Semester entfernt
sind über einen Pull Request reingerutscht
2021-10-01 15:57:40 +02:00
Felix Lohmeier
b6f09f6b5c Merge branch 'lhaeller-master' 2021-10-01 15:56:07 +02:00
Felix Lohmeier
8dcad5653c Merge branch 'master' of https://github.com/lhaeller/bibliotheks-und-archivinformatik into lhaeller-master 2021-10-01 15:55:52 +02:00
Felix Lohmeier
5e031a10e9 Merge branch 'Riesling-Silvan-master' 2021-10-01 15:53:31 +02:00
Felix Lohmeier
987aaa27f3 Merge branch 'master' of https://github.com/Riesling-Silvan/bibliotheks-und-archivinformatik into Riesling-Silvan-master 2021-10-01 15:52:22 +02:00
Felix Lohmeier
5e6683b881
Merge pull request #37 from Menti696/master
Mein Link zu meinem Lerntagebuch
2021-10-01 15:49:27 +02:00
Felix Lohmeier
7cd739b465
Merge branch 'master' into master 2021-10-01 15:49:20 +02:00
Felix Lohmeier
9a4d9de772
Merge pull request #38 from nony-git/master
Link zu meinem Lerntagebuch
2021-10-01 15:48:46 +02:00
Felix Lohmeier
972730cadc
Merge branch 'master' into master 2021-10-01 15:48:19 +02:00
Felix Lohmeier
7866873bc5
Merge pull request #39 from El-Mongo-Bongo/master
Link zu meinem Lerntagebuch hinzgefügt
2021-10-01 15:47:52 +02:00
Felix Lohmeier
04d8748ef2
Merge branch 'master' into master 2021-10-01 15:47:45 +02:00
Felix Lohmeier
1ff51be895
Merge pull request #40 from Uliqwe/master
Link zu meinem Lerntagebuch
2021-10-01 15:47:21 +02:00
Felix Lohmeier
dc1fa8c4bf
Merge branch 'master' into master 2021-10-01 15:47:09 +02:00
Felix Lohmeier
5f7454c357
Merge pull request #41 from stutzmarion/master
Link zu meinem Lerntagebuch
2021-10-01 15:46:42 +02:00
Felix Lohmeier
91b9acfd8d
Merge branch 'master' into master 2021-10-01 15:46:35 +02:00
Felix Lohmeier
a98483331b
Merge pull request #42 from SasquatchfromAlaska/master
Namen ergänzt
2021-10-01 15:46:08 +02:00
Felix Lohmeier
52d8ef7f63
Merge branch 'master' into master 2021-10-01 15:46:02 +02:00
Felix Lohmeier
0cc5617bae
Merge pull request #44 from CKfhgr/master
Link zu meinem Lerntagebuch
2021-10-01 15:45:39 +02:00
Felix Lohmeier
273ccdc0f8
Merge branch 'master' into master 2021-10-01 15:45:33 +02:00
Felix Lohmeier
0aceaf4836
Merge pull request #45 from livelchen/master
Link zu meinem Lerntagebuch
2021-10-01 15:45:05 +02:00
Felix Lohmeier
69b0203c6a
Merge branch 'master' into master 2021-10-01 15:44:53 +02:00
Felix Lohmeier
cf1b86367b
Merge pull request #46 from m-rina/master
Lerntagebuch ergänzt
2021-10-01 15:43:26 +02:00
Felix Lohmeier
b9ac0235fb
Merge branch 'master' into master 2021-10-01 15:43:19 +02:00
Felix Lohmeier
0953479793
Merge pull request #47 from cynkoh/master
Link zu meinem Lerntagebuch-Cynthia
2021-10-01 15:42:52 +02:00
Felix Lohmeier
3cdc597255
Merge branch 'master' into master 2021-10-01 15:42:46 +02:00
Felix Lohmeier
6142a653b5
Merge pull request #48 from schoscho77/master
Link zu meinem Lerntagebuch
2021-10-01 15:42:21 +02:00
Felix Lohmeier
6aa8fcfb4f
Merge branch 'master' into master 2021-10-01 15:42:13 +02:00
Felix Lohmeier
1c32794d03
Merge pull request #49 from ElSlothboi/master
Link zu meinem Lerntagebuch
2021-10-01 15:41:06 +02:00
Felix Lohmeier
4e2b5feed0
Merge branch 'master' into master 2021-10-01 15:40:58 +02:00
Felix Lohmeier
9f7cec43aa
Merge pull request #50 from TonyDamager/master
Link zu meinem Lerntagebuch
2021-10-01 15:40:36 +02:00
Felix Lohmeier
58fc60c88d
Merge branch 'master' into master 2021-10-01 15:40:29 +02:00
Felix Lohmeier
b44201333d
Merge pull request #51 from saphirba/master
Link zu meinem Lerntagebuch
2021-10-01 15:40:05 +02:00
Felix Lohmeier
32556e1f3c
Merge branch 'master' into master 2021-10-01 15:39:55 +02:00
Felix Lohmeier
77be1b4aca
Merge pull request #52 from melakae/master
Link zu meinem Lerntagebuch
2021-10-01 15:39:28 +02:00
Felix Lohmeier
55f38bbc4a
Merge branch 'master' into master 2021-10-01 15:39:22 +02:00
Felix Lohmeier
d09cbc9c86
Merge pull request #54 from TTly1/master
new
2021-10-01 15:38:55 +02:00
Felix Lohmeier
3a81d29335
Merge branch 'master' into master 2021-10-01 15:38:48 +02:00
Felix Lohmeier
7c47040f78
Merge pull request #55 from MomoVasco/master
Link zu meinem Lerntagebuch
2021-10-01 15:38:25 +02:00
Felix Lohmeier
dcfbe54e28
Merge branch 'master' into master 2021-10-01 15:38:13 +02:00
Felix Lohmeier
7f482e3a6f
Merge pull request #56 from fribsle/master
Update README.md
2021-10-01 15:37:48 +02:00
Felix Lohmeier
2617f527c5
Merge branch 'master' into master 2021-10-01 15:37:27 +02:00
Felix Lohmeier
83819bbfca
Merge pull request #58 from NeedForSleepUndersheet2/master
Link zum Lerntagebuch hinzugefügt
2021-10-01 15:36:53 +02:00
Felix Lohmeier
11f71311fe
Merge branch 'master' into master 2021-10-01 15:36:46 +02:00
Felix Lohmeier
d7b78ee6c8
Merge pull request #60 from alexandrakoechling/master
Link zu meinem Lerntagebuch
2021-10-01 15:36:22 +02:00
Felix Lohmeier
9178b55bb0
Merge branch 'master' into master 2021-10-01 15:36:15 +02:00
Felix Lohmeier
c305aeca13
Merge pull request #53 from StRiebe/master
Link zum Lerntagebuch
2021-10-01 15:18:26 +02:00
Felix Lohmeier
8ee8d2e88f
Merge branch 'master' into master 2021-10-01 15:18:17 +02:00
Felix Lohmeier
657f4bc155
Merge pull request #59 from SarahR177/master
Link zu meinem Lerntagebuch
2021-10-01 15:15:23 +02:00
Sarah Roellin
d94ae9ca51 Link zu meinem Lerntagebuch 2021-10-01 14:48:56 +02:00
TTly1
469e9ee681
Update README.md 2021-10-01 14:46:41 +02:00
Melanie Käser
aacc1c2a6f Link Lerntagebuch aktualsiiert 2021-10-01 14:46:28 +02:00
Rina
49c4a3bbcb Lerntagebuch ergänzt 2021-10-01 14:43:34 +02:00
cynkoh
a32b5b4f50 Link zu meinem Lerntagebuch-Cynthia 2021-10-01 14:43:33 +02:00
Sebastian Preher
c8e9c729b0 Link zum Lerntagebuch hinzugefügt 2021-10-01 14:43:10 +02:00
Stephanie Riebe
8f20764b8a Link zum Lerntagebuch 2021-10-01 14:43:05 +02:00
Antonia Stadler
a393b18736 Link zu meinem Lerntagebuch 2021-10-01 14:43:03 +02:00
Marion Stutz
f3907b38b2 Link zu meinem Lerntagebuch 2021-10-01 14:42:57 +02:00
Melanie Käser
28aadc87f8 Linke zu Lerntagebuch eingefügt 2021-10-01 14:42:54 +02:00
Nina Ingold
dfed333f09 Link zu meinem Lerntagebuch 2021-10-01 14:42:51 +02:00
ElSlothboi
5a766e5481 Link zu meinem Lerntagebuch 2021-10-01 14:42:51 +02:00
Alexandra Köchling
aae6483340 Link zu meinem Lerntagebuch 2021-10-01 14:42:49 +02:00
Silvan Reis
74574e671e Link zu meinem Lerntagebuch 2021-10-01 14:42:48 +02:00
Talita Fisch
4e7d52f36b Link zu meinem Lerntagebuch 2021-10-01 14:42:37 +02:00
Joëlle Meichtry
9ac85233f4 Link zu meinem Lerntagebuch 2021-10-01 14:42:22 +02:00
Livia Schmid
7203ea49d1 Link zu meinem Lerntagebuch 2021-10-01 14:42:14 +02:00
Christina Clerici
a6b4380476 Link zu meinem Lerntagebuch 2021-10-01 14:41:44 +02:00
Caroline Krause
a0abc8bb4b Link zu meinem Lerntagebuch 2021-10-01 14:41:42 +02:00
Laura Krüsi
798ddd0b2b https://github.com/SasquatchfromAlaska/sasquatch_adventures.git 2021-10-01 14:41:16 +02:00
Jennifer Amoroso
cf217973a3 Link zu meinem Lerntagebuch 2021-10-01 14:39:12 +02:00
Sarah Roellin
4c4a15b2b7 Link zu meinem Lerntagebuch 2021-10-01 14:34:33 +02:00
fribsle
45f285a0a0
Update README.md 2021-10-01 14:27:54 +02:00
SarahR177
3cb769814b
Update README.md 2021-10-01 14:26:40 +02:00
Gene Bichler
831b959613 Link zu meinem Lerntagebuch hinzgefügt 2021-10-01 14:20:07 +02:00
Menti696
038f95a51b Mein Link zu meinem Lerntagebuch 2021-10-01 14:19:10 +02:00
Lucien Haeller
149aa92334 Link zu meinem Lerntagebuch 2021-10-01 14:05:12 +02:00
Nino Parolari
ebc133ae0a Link zu meinem Lerntagebuch 2021-10-01 14:04:55 +02:00
Felix Lohmeier
5234055ee8
Links zu Lerntagebüchern einheitlich formatiert
- Links auf GitHub Pages statt auf GitHub Repositories
- Namen teilweise ergänzt
- alphabetisch sortiert
2021-09-30 10:55:26 +02:00
Felix Lohmeier
9e291f7563
Merge pull request #33 from JoyRW/master
https://github.com/JoyRW/bibliotheks-und-archivinformatik.git
2021-09-30 10:50:32 +02:00
Felix Lohmeier
db2a3f00bc
Merge branch 'master' into master 2021-09-30 10:50:24 +02:00
Felix Lohmeier
4f91abcafb
Merge pull request #32 from hilgeann/master
Lerntagebuch Anna Hilgert
2021-09-30 10:50:00 +02:00
Felix Lohmeier
d8cacd9fa9
Merge branch 'master' into master 2021-09-30 10:49:52 +02:00
Felix Lohmeier
11f0aa9786
Merge pull request #31 from JZingg/master
Link zu Lerntagebuch JZingg
2021-09-30 10:49:22 +02:00
Felix Lohmeier
0f86bbe237
Merge branch 'master' into master 2021-09-30 10:49:13 +02:00
Felix Lohmeier
c15430a58f
Merge pull request #30 from JahnSievers/master
Link zu meinem Lerntagebuch
2021-09-30 10:48:51 +02:00
Felix Lohmeier
3bc52657ba
Merge branch 'master' into master 2021-09-30 10:48:44 +02:00
Felix Lohmeier
2859c8cbae
Merge pull request #34 from marhee48/master
Link zu meinem Lerntagebuch
2021-09-30 10:48:13 +02:00
Felix Lohmeier
6e1f0b29ee
Merge branch 'master' into master 2021-09-30 10:48:05 +02:00
Felix Lohmeier
5c26087ad7
Merge pull request #35 from sebastian-meyer/master
Hinweis entfernt
2021-09-30 10:47:20 +02:00
Felix Lohmeier
7b7c072298
Merge pull request #28 from TonyTestimony/master
Lerntagebuch Jannik Christen
2021-09-30 10:31:26 +02:00
Felix Lohmeier
f86a50e6a4
Merge pull request #27 from simon-mettler/master
Lernblog Simon Mettler
2021-09-30 10:29:14 +02:00
26829ab465
Hinweis entfernt 2021-09-30 10:22:13 +02:00
Felix Lohmeier
f3004263a5
Merge pull request #29 from sebastian-meyer/master
Tippfehler korrigiert
2021-09-30 10:21:03 +02:00
65acb2786e
Hinweis auf Lerntagebuch ergänzt 2021-09-30 10:18:21 +02:00
Martin Heeb
4f93b5cc93 Link zu meinem Lerntagebuch 2021-09-30 10:07:08 +02:00
Anna Hilgert
f89a8ab627 Link zu meinem Lerntagebuch 2021-09-30 09:21:18 +02:00
Joy Walser
8c9d130726 https://github.com/JoyRW/bibliotheks-und-archivinformatik.git 2021-09-30 09:18:24 +02:00
Julia Zingg
494e88371a Link zu meinem Lerntagebuch 2021-09-30 09:17:40 +02:00
Jahn Sievers
a1284fd255 Link zu meinem Lerntagebuch 2021-09-30 09:17:33 +02:00
simon-mettler
c2c5070b05 add link 2021-09-30 09:16:07 +02:00
982d04a180 Tippfehler korrigiert 2021-09-30 09:15:46 +02:00
TonyTestimony
8e2b536403
Update README.md 2021-09-30 09:15:22 +02:00
Martin Heeb
6127b5d72f Link zu meinem Lerntagebuch 2021-09-30 09:15:19 +02:00
Felix Lohmeier
456e458d66 Übertrag Tag 1 2021-09-29 20:54:41 +02:00
Felix Lohmeier
635fab4fed Bilddatei verschoben 2021-09-28 21:04:39 +02:00
Felix Lohmeier
4169275975 Platzhalter für Lerntagebücher entfernt 2021-09-28 21:03:23 +02:00
Felix Lohmeier
003a620311
Modulbeschreibung zurückgesetzt 2021-09-14 13:29:54 +02:00
Felix Lohmeier
06bec526f4 Initialer Commit für HS 2021 2021-09-10 23:36:16 +02:00
Felix Lohmeier
91eb770bbc Metadaten für https://oersi.de 2021-07-05 11:26:15 +02:00
Felix Lohmeier
cadddbba8c Reihenfolge Lehrinhalte aktualisiert 2020-12-22 23:23:52 +01:00
Felix Lohmeier
622e702593 Übertrag aus CodiMD 18.12. 2020-12-22 23:23:12 +01:00
Felix Lohmeier
ca03654289 Übertrag aus CodiMD 27.11. / 11.12. 2020-12-22 23:22:37 +01:00
Felix Lohmeier
412200f0eb Nachtrag zu LIDO
und Formatierung vereinheitlicht
2020-12-22 23:21:55 +01:00
Felix Lohmeier
c62d3560a7 Nachtrag zu SWORD 2020-12-22 23:21:29 +01:00
Felix Lohmeier
dc5ca64239 Formatierung vereinheitlicht 2020-12-22 23:21:15 +01:00
Felix Lohmeier
c3cbb59313 Testdaten für Tag 8 2020-12-10 11:36:38 +01:00
Felix Lohmeier
25e5ee53f9 Layout: Überschrift bei Schaubild entfernt 2020-11-25 14:59:00 +01:00
Felix Lohmeier
5157c5b1e6 Übertrag Mitschrift 20.11. 2020-11-25 14:48:11 +01:00
Felix Lohmeier
b6ee67986c Übertrag Mitschrift 30.10. 2020-11-03 10:57:15 +01:00
Felix Lohmeier
3cec052076 Layout korrigiert 2020-10-27 13:03:23 +01:00
Felix Lohmeier
4458435e73 Mitschriften 09.10. und 16.10.2020 übertragen 2020-10-27 12:58:27 +01:00
Felix Lohmeier
685c287958 Layout 2020-10-27 12:57:46 +01:00
Felix Lohmeier
158fa02ca8 Nachtrag zu Marktübersicht 2020-10-27 12:17:15 +01:00
Felix Lohmeier
f0ddecbe60 Layout vereinheitlicht 2020-10-27 12:09:17 +01:00
Felix Lohmeier
b6078c67b2 Link zu Lerntagebuch aktualisiert 2020-10-13 15:56:28 +02:00
Felix Lohmeier
8d602f823a Layout vereinheitlicht 2020-10-13 15:37:00 +02:00
Felix Lohmeier
967277e2df Übertrag Mitschrift 25.9. und 2.10. 2020-10-08 19:14:19 +02:00
Felix Lohmeier
1974ec3497 Links zu Lerntagebüchern sortiert 2020-10-06 16:11:34 +02:00
Felix Lohmeier
33df15372a Merge branch 'stemorit-master' 2020-10-06 16:06:21 +02:00
Felix Lohmeier
59b0138f70 Merge branch 'master' of https://github.com/stemorit/bibliotheks-und-archivinformatik into stemorit-master 2020-10-06 16:06:06 +02:00
Felix Lohmeier
5b0e0b38fd Merge branch 'remooda-master' 2020-10-03 22:34:11 +02:00
Felix Lohmeier
8674de4dbd Merge branch 'master' of https://github.com/remooda/bibliotheks-und-archivinformatik into remooda-master 2020-10-03 22:33:58 +02:00
Felix Lohmeier
0b2f04bbbd
Merge pull request #24 from KKBuhler/master
Update README.md
2020-10-02 12:17:12 +02:00
K.K
8056c7de4a
Update README.md 2020-10-02 12:13:40 +02:00
Stefanie Moser
dcfdab41fe Links zu meinem Lerntagebuch 2020-10-02 11:19:43 +02:00
Lucas NRC
8f17b63bb3 added link of blog to readme 2020-10-02 10:57:53 +02:00
Felix Lohmeier
6bf75becd0 Merge branch 'Tinablabla-master' 2020-09-29 22:51:00 +02:00
Felix Lohmeier
d94cd76652 Resolving merge conflict 2020-09-29 22:50:40 +02:00
Felix Lohmeier
e7315025ea
Merge pull request #22 from LillaNord/master
Link zu meinem Lerntagebuch
2020-09-29 22:46:58 +02:00
Felix Lohmeier
730d97071f
Merge branch 'master' into master 2020-09-29 22:46:49 +02:00
Tamara Mächler
cf0553d8b6 Link zu meinem Lerntagebuch 2020-09-25 21:21:04 +02:00
Felix Lohmeier
9b434b62f8
Merge pull request #20 from thanjoan/master
neuer link
2020-09-25 15:04:21 +02:00
Felix Lohmeier
f4db40843d
Merge branch 'master' into master 2020-09-25 15:04:12 +02:00
Hoitink Jonathan
5787e0d1c5 neuer link 2020-09-25 14:58:40 +02:00
Felix Lohmeier
986515a78d
Merge pull request #19 from fluecksandra/master
Stern hinzugefügt, da mein LInk schon vorhanden war
2020-09-25 14:53:36 +02:00
Felix Lohmeier
c35df9d9fa
Merge branch 'master' into master 2020-09-25 14:53:22 +02:00
Felix Lohmeier
b42cdbb167
Merge pull request #18 from sakura-72/master
Readme changes 20200925
2020-09-25 14:52:33 +02:00
Felix Lohmeier
b82af10126
Merge branch 'master' into master 2020-09-25 14:52:03 +02:00
Felix Lohmeier
1744878fa0
Merge pull request #17 from leabaechli/master
Link zu meinem Lerntagebuch
2020-09-25 14:51:20 +02:00
Felix Lohmeier
46f9ea9a4f
Merge branch 'master' into master 2020-09-25 14:51:07 +02:00
Felix Lohmeier
61a8f5ad5f
Merge pull request #16 from regrebneuel/master
Link zu Alex Musters Lerntagebuch
2020-09-25 14:50:31 +02:00
Felix Lohmeier
6b09c3f2cb
Merge branch 'master' into master 2020-09-25 14:50:22 +02:00
Felix Lohmeier
f614230af6
Merge pull request #15 from xXxjaegerxXx/master
https://github.com/xXxjaegerxXx/bibliotheks-und-archivinformatik.git
2020-09-25 14:49:48 +02:00
Felix Lohmeier
576207a714
Merge branch 'master' into master 2020-09-25 14:49:33 +02:00
Felix Lohmeier
faff475592
Merge pull request #14 from shannarachel/master
Link zu meinem Lerntagebuch
2020-09-25 14:48:59 +02:00
Felix Lohmeier
0e52c49b37
Merge branch 'master' into master 2020-09-25 14:48:43 +02:00
Felix Lohmeier
0c8a9f5cce
Merge pull request #13 from vseyffert/master
Link zu meinem Lerntagebuch
2020-09-25 14:48:11 +02:00
Felix Lohmeier
36e58ee77b
Merge branch 'master' into master 2020-09-25 14:47:56 +02:00
Felix Lohmeier
f2ff641e9d Link zu meinem Lerntagebuch, obwohl der Link eigentlich schon drin war, aber hier ist er nochmals. 2020-09-25 14:47:36 +02:00
Sandra Flückiger
f5d386399f Stern hinzugefügt, da mein LInk schon vorhanden war 2020-09-25 14:35:31 +02:00
Felix Lohmeier
ec0eb8e814
Merge pull request #12 from rumolin/master
Link zu meinem Lerntagebuch
2020-09-25 14:34:05 +02:00
sakura-72
4037484275
Update README.md 2020-09-25 14:23:51 +02:00
xXxjaegerxXx
29ff59fb64 https://github.com/xXxjaegerxXx/bibliotheks-und-archivinformatik.git 2020-09-25 14:19:50 +02:00
Leuenberger Gabriela
72c99368c7 alex link 2020-09-25 14:18:44 +02:00
sakura-72
23513c8c5e
Update README.md 2020-09-25 14:17:16 +02:00
Lea Bächli
fb252d0c99 Link zu meinem Lerntagebuch 2020-09-25 14:14:45 +02:00
Shanna Grütter
739407f979 Link zu meinem Lerntagebuch 2020-09-25 14:14:15 +02:00
Felix Lohmeier
5b993f7ce0 Link zu meinem Lerntagebuch 2020-09-25 14:14:12 +02:00
melaniemueller6
1dafb124a5 Link zu meinem Lerntagebuch 2020-09-25 14:10:54 +02:00
Leuenberger Gabriela
fe1d769020 linke alex 2020-09-25 14:04:55 +02:00
Felix Lohmeier
5d80340197 Übertrag Mitschrift 10.9. 2020-09-14 23:16:48 +02:00
Felix Lohmeier
c0f730fa62 initial commit Herbstsemester 2020 2020-09-14 17:51:42 +02:00
Felix Lohmeier
9f4d161b6c Links zu Lerntagebüchern aktualisiert 2020-07-14 13:41:31 +02:00
Felix Lohmeier
d59c61bf48 Link Lerntagebuch aktualisiert 2020-07-01 17:53:50 +02:00
Felix Lohmeier
e57048e21f Link Lerntagebuch aktualisiert 2020-06-29 22:42:58 +02:00
Felix Lohmeier
fc52719fda CC logo lokal 2020-06-23 12:50:06 +02:00
Felix Lohmeier
24e3c83c11 docsify 4.11.4 2020-06-23 12:40:50 +02:00
Felix Lohmeier
57195fe90d Formatierung korrigiert 2020-06-08 17:35:31 +02:00
Felix Lohmeier
5c16473687 Übertrag CodiMD vom 6.6. 2020-06-08 17:26:46 +02:00
Felix Lohmeier
1c47ee73ee Übertrag CodiMD vom 5.6. 2020-06-08 17:26:04 +02:00
Felix Lohmeier
470944057c Link zu SEO mit DSpace 2020-06-08 12:08:38 +02:00
Felix Lohmeier
d9e77f95b7 Korrektur Vorlage 2020-06-02 17:56:31 +02:00
Felix Lohmeier
0b4facc3d0 Link zu Lerntagebuch aktualisiert 2020-05-12 18:54:06 +02:00
Felix Lohmeier
e08f81c214 Neue URL für Lerntagebuch eingefügt 2020-04-30 11:27:20 +02:00
Felix Lohmeier
0a634afff4 Links zu Lerntagebüchern 2020-04-29 22:20:13 +02:00
Felix Lohmeier
d8165f02a8 Übertrag aus gemeinsamen Dokument 24./25.4. 2020-04-28 20:49:08 +02:00
Felix Lohmeier
c82a1c07aa Formatierung Aufgaben 2020-04-28 20:48:36 +02:00
Felix Lohmeier
ec6ca77071 Relative Links zu Bildern 2020-04-28 20:32:19 +02:00
Felix Lohmeier
0c6c12b185 Nachtrag: Vergleich Alma mit Aleph und Koha 2020-04-28 20:09:03 +02:00
Felix Lohmeier
578139e1e0 Links zu Lerntagebüchern geordnet 2020-04-28 19:47:15 +02:00
Felix Lohmeier
47c92ec6f5 Reihenfolge geändert: Erst Metadatenstandards, dann Installation 2020-04-23 18:24:58 +02:00
Felix Lohmeier
e3c4c33f73 Vorlage für ein Lerntagebuch mit GitHub Pages 2020-04-22 12:52:53 +02:00
Felix Lohmeier
41b13e303f Update Termine 2020-04-06 19:08:30 +02:00
Felix Lohmeier
352fee20b7
Merge pull request #11 from Leaena22/master
Update README.md
2020-04-06 19:05:36 +02:00
Felix Lohmeier
d4e7797351 Merge branch 'master' of github.com:felixlohmeier/bibliotheks-und-archivinformatik 2020-04-06 19:03:17 +02:00
Felix Lohmeier
4e7d24b7c8 Übertrag Tag 2 aus CodiMD 2020-04-06 19:03:05 +02:00
Felix Lohmeier
556debf9de Ergänzung GitHub Pages, Pull Requests und GitLab 2020-04-06 18:07:37 +02:00
Felix Lohmeier
b764d56a48
Merge branch 'master' into master 2020-04-03 22:14:58 +02:00
Felix Lohmeier
de608d498a
Merge pull request #10 from MichaelMathys/master
Update README.md
2020-04-03 12:56:20 +02:00
Felix Lohmeier
6985d16be7
Merge branch 'master' into master 2020-04-03 12:55:29 +02:00
Felix Lohmeier
fffc16eaf4
Merge pull request #9 from BAINAZ/master
Update README.md
2020-04-03 12:55:01 +02:00
Felix Lohmeier
d498510582
Merge branch 'master' into master 2020-04-03 12:54:49 +02:00
Felix Lohmeier
a15164fcef
Merge pull request #8 from Nadine-Kramer/master
Update README.md
2020-04-03 12:54:14 +02:00
Felix Lohmeier
44084d3a93
Merge branch 'master' into master 2020-04-03 12:54:03 +02:00
Felix Lohmeier
38628ca1fc
Merge pull request #6 from SarahClavadetscher/master
Update README.md
2020-04-03 12:53:34 +02:00
Felix Lohmeier
ffa024ed91
Merge branch 'master' into master 2020-04-03 12:53:21 +02:00
Felix Lohmeier
ca37dc3843
Merge pull request #3 from mimbulus89/patch-1
Update Lerntagebuch von Flüe
2020-04-03 12:52:42 +02:00
Felix Lohmeier
7d7f8c901c
Merge branch 'master' into patch-1 2020-04-03 12:52:18 +02:00
Felix Lohmeier
e535b4658a
Merge pull request #4 from Sidney-Manhart/master
Update README.md
2020-04-03 12:50:43 +02:00
Felix Lohmeier
d1f489b8ac
Merge branch 'master' into master 2020-04-03 12:50:36 +02:00
Felix Lohmeier
648af4ff1c
Merge pull request #2 from ismay7/master
Update README.md
2020-04-03 12:49:07 +02:00
Felix Lohmeier
16c823c919
Merge branch 'master' into master 2020-04-03 12:48:20 +02:00
Felix Lohmeier
d804864d7d
Merge pull request #1 from alset2103/patch-2
Update README.md
2020-04-03 12:47:37 +02:00
Felix Lohmeier
8b31da534f
Merge branch 'master' into patch-2 2020-04-03 12:47:30 +02:00
Felix Lohmeier
dfa981876e
Merge pull request #5 from librarygirllost/master
Lerntagebuch-Link ergänzen
2020-04-03 12:45:13 +02:00
Felix Lohmeier
c0debbdb3f
Merge branch 'master' into master 2020-04-03 12:44:26 +02:00
MichaelMathys
5fda801219
Update README.md 2020-04-03 11:37:14 +02:00
Lea
069cd6ba45
Update README.md
update lerntagebuch
2020-04-03 11:31:23 +02:00
Felix Lohmeier
5563f86a05
Merge pull request #7 from Rachel-Noemi-Thommen/Rachel-Noemi-Thommen-patch-1
Update README.md
2020-04-03 11:23:23 +02:00
BAINAZ
6b0278c6a7
Update README.md 2020-04-03 11:18:02 +02:00
SarahClavadetscher
f1c96471bd
Update README.md 2020-04-03 11:17:53 +02:00
mimbulus89
1eecf54b9f
Update Lerntagebuch von Flüe
Link zu Lerntagebuch von Erica von Flüe eingefügt.
2020-04-03 11:15:47 +02:00
Nadine-Kramer
d3cd268c8d
Update README.md 2020-04-03 11:15:29 +02:00
Rachel-Noemi-Thommen
2965e7cf2b
Update README.md 2020-04-03 11:15:04 +02:00
librarygirllost
420afde6ad
Merge pull request #1 from librarygirllost/librarygirllost-patch-1
Lerntagebuch-Link ergänzt
2020-04-03 11:14:15 +02:00
ismay7
e5cc3b9026
Update README.md 2020-04-03 11:14:07 +02:00
librarygirllost
75dcb767b4
Lerntagebuch-Link ergänzt
Der Link zu meinem Lerntagebuch ist ergänzt.
2020-04-03 11:13:55 +02:00
Sidney-Manhart
49e89931eb
Update README.md 2020-04-03 11:13:22 +02:00
alset2103
b1a13bb655
Update README.md 2020-04-03 11:11:57 +02:00
Felix Lohmeier
25f1d21751
Beispiel für Link zu Lerntagebüchern 2020-03-28 11:42:01 +01:00
Felix Lohmeier
f5157aca6f Übertrag Tag 1 aus CodiMD 2020-03-16 19:26:10 +01:00
Felix Lohmeier
e6ad2cd927 Screenshots git demo ergänzt 2020-03-16 17:52:34 +01:00
Felix Lohmeier
7aa79fa245 Screenshots git demo 2020-03-16 17:46:23 +01:00
Felix Lohmeier
caa6dc8dd6 Test Päckchen 2020-03-16 16:34:58 +00:00
Felix Lohmeier
34c78ed14a Revert "Test Päckchen"
This reverts commit 667df942914288b6f2e18b5d7edf856dd3541d96.
2020-03-16 16:32:32 +01:00
Felix Lohmeier
e782c06d30 Hinweis auf Problem mit Microsoft Konten 2020-03-16 16:32:16 +01:00
Felix Lohmeier
667df94291 Test Päckchen 2020-03-13 14:56:10 +00:00
Felix Lohmeier
067b43c980 Nachbesserung Azure Template 2020-03-13 00:12:57 +01:00
Felix Lohmeier
331c458832 Anleitung für Lehrende zur Einrichtung Azure Lab Services 2020-03-12 18:10:02 +01:00
Felix Lohmeier
8998c9bfca Link zur Vorversion korrigiert 2020-03-12 16:56:54 +01:00
Felix Lohmeier
4216968099 Screenshot Ubuntu XFCE 2020-03-12 10:54:38 +01:00
Felix Lohmeier
a528ba7e3e Screenshot Login 2020-03-12 09:01:14 +01:00
Felix Lohmeier
95486c1fd6 Screenshot Azure Lab Services 2020-03-12 08:31:04 +01:00
Felix Lohmeier
f4415e323b Link zu Markdownguide.org 2020-03-11 13:55:03 +01:00
Felix Lohmeier
cd2bb95ec5 Struktur für Frühlingssemester 2020 2020-03-09 23:20:05 +01:00
Felix Lohmeier
b2e16f0c53 Link korrigiert 2020-03-09 22:14:20 +01:00
Felix Lohmeier
4358205753 Docsify für Navigation und Suche 2020-03-09 22:07:21 +01:00
Felix Lohmeier
06bce3e1c8 Übertrag aus dem gemeinsamen Dokument (CodiMD) 2020-03-09 22:06:40 +01:00
Felix Lohmeier
ed5b5aaa41 Create CNAME 2019-12-03 15:25:47 +01:00
Felix Lohmeier
17257aceb8 MarcEdit Tag4 2019-11-05 23:19:29 +01:00
Felix Lohmeier
a326c9c2cf Notebook für Installation von MarcEdit 7 2019-11-05 23:01:18 +01:00
Felix Lohmeier
21f5acf513 Überarbeitung Notebooks 2019-10-31 13:22:31 +01:00
Felix Lohmeier
e7dee1746a Notebooks für ArchivesSpace und OpenRefine 2019-10-28 23:47:22 +01:00
Felix Lohmeier
f3728c948a Dokumentation tatsächlicher Verlauf 2019-10-16 17:05:56 +02:00
Felix Lohmeier
ce921e60a6 Anleitung für Erstellung USB-Sticks überarbeitet 2019-10-15 15:56:20 +02:00
Felix Lohmeier
78f06a90b6 Korrektur Installationsbefehle 2019-10-08 23:07:31 +02:00
Felix Lohmeier
235da60c0e Notebook für Koha Installation in VirtualBox Appliance 2019-10-08 22:27:28 +02:00
Felix Lohmeier
52dd2a8a97 Anleitung für Erstellung USB-Sticks verbessert 2019-10-08 22:26:57 +02:00
Felix Lohmeier
d8dfb45081 Anleitung zur Erstellung von USB-Sticks für Lehrende 2019-09-26 17:25:15 +02:00
Felix Lohmeier
fe20e42c8b Link zu VirtualBox Appliance 2019-09-25 02:54:13 +02:00
Felix Lohmeier
a6662b19f3 Anleitung für Herstellung VirtualBox Appliance 2019-09-25 02:36:50 +02:00
Felix Lohmeier
69bf302bf7 doch workdir auf root 2019-09-25 01:04:19 +02:00
Felix Lohmeier
2468050c79 workdir zurück auf Standard 2019-09-25 00:55:59 +02:00
Felix Lohmeier
01ba54ed50 Termine für Themen getauscht 2019-09-24 12:09:22 +02:00
Felix Lohmeier
ba15ebd1d8 Shell notebook erweitert 2019-09-24 00:42:52 +02:00
Felix Lohmeier
5ed6078024 Link korrigiert 2019-09-24 00:13:20 +02:00
Felix Lohmeier
3deceaf475 Pfade und Links korrigiert 2019-09-24 00:11:39 +02:00
Felix Lohmeier
9534565449 Binder eingerichtet und Materialien für Tag 1 (25.09.19) 2019-09-23 23:59:32 +02:00
Felix Lohmeier
ce73fbe5a3 HTW Chur ist neu die FH Graubünden 2019-09-04 13:02:13 +02:00
Felix Lohmeier
11a0058226 gitignore entfernt 2019-09-01 14:53:34 +02:00
Felix Lohmeier
b1db95f2fd initialer commit für Herbstsemester 2019 2019-09-01 14:52:54 +02:00
131 changed files with 2402 additions and 83152 deletions

16
.gitignore vendored
View File

@ -1,16 +0,0 @@
# Node rules:
## Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
.grunt
## Dependency directory
## Commenting this out is preferred by some people, see
## https://docs.npmjs.com/misc/faq#should-i-check-my-node_modules-folder-into-git
node_modules
# Book build output
_book
# eBook build output
*.epub
*.mobi
*.pdf

294
01_technische-grundlagen.md Normal file
View File

@ -0,0 +1,294 @@
# Technische Grundlagen
* Schaubild zu Lehrinhalten
* Einrichtung der Arbeitsumgebung (Linux)
* Grundlagen der Unix Shell
* Versionskontrolle mit git
* Blog mit GitHub Pages
![Schaubild zu Lehrinhalten](images/schaubild-lehrinhalte.png)
erstellt mit [mermaid](https://mermaidjs.github.io/mermaid-live-editor/)
Note:
- In diesem Schaubild sind links die Lokalsysteme (Bibliothekssytem Koha, Archivinformationssystem ArchivesSpace, Repository-Software DSpace) aufgeführt. Diese bieten jeweils eine OAI-Schnittstelle an.
- Mit einer speziellen Software (hier: VuFindHarvest) werden die Metadaten im jeweils spezifischen Format eingesammelt. Über einen XSLT Crosswalk werden die Daten dann einheitlich in MARC21-XML überführt. Zusätzlich werden Tabellendaten (CSV) mit OpenRefine ebenfalls in MARC21-XML transformiert.
- Abschließend werden alle MARC21-XML-Daten in die Discovery-Lösung VuFind eingespielt.
- Wir lernen die Systeme, Schnittstellen, Tools und Formate Schritt für Schritt kennen. Am Ende des Kurses sollten Sie das Schaubild dann in eigenen Worten erklären können.
## Einrichtung der Arbeitsumgebung (Linux)
### Arbeitsumgebung
* Jede/r erhält eine virtuelle Maschine der FH Graubünden mit Ubuntu Linux.
* Sie haben volle Administrationsrechte.
* Dozenten haben zur Unterstützung und Fehlerbehebung ebenfalls Zugriff darauf.
### Linux
* Die meisten Webserver laufen auf Linux.
* Wir verwenden [Ubuntu](https://ubuntu.com) in der Version 20.04 LTS.
* Ubuntu basiert wiederum auf [Debian](https://www.debian.org). Die ganze Familiengeschichte: [GNU/Linux Distributions Timeline](https://upload.wikimedia.org/wikipedia/commons/1/1b/Linux_Distribution_Timeline.svg)
Note:
- Normalerweise werden Linux-Server aus Sicherheitsgründen ohne grafische Oberfläche administriert, also nur über die Kommandozeile.
### Zugriff auf die virtuelle Maschine
1. Mit dem Netzwerk der FHGR verbinden (ggf. via VPN)
2. <https://horizon.fhgr.ch> aufrufen
3. Zugriff auf die virtuelle Maschine (Ubuntu) entweder direkt über den Browser (HTML5) oder über eine Zusatzsoftware (Horizon Client)
Sie können sich an allen drei Punkten (VPN, Horizon und Ubuntu) mit Ihrem persönlichen FHGR-Konto anmelden. Achtung: Beim Anmeldebildschirm von Ubuntu ist ein US-Tastaturlayout eingestellt.
Note:
- Bei Wikimedia Commons gibt es ein Bild des US-Tastaturlayouts: <https://commons.wikimedia.org/wiki/File:KB_United_States.svg>
- Copy & Paste funktioniert zuverlässiger mit der Zusatzsoftware.
### Übung: Verbindung testen
Bitte verbinden Sie sich jetzt mit der virtuellen Maschine. Nach dem Login sollte es etwa so aussehen:
![Screenshot des Ubuntu-Desktops](images/ubuntu-startscreen.png)
### Grundeinstellungen
1. Favoriten
* Unten links Anwendungsmenü öffnen
* Programm suchen (`Terminal` und `Text Editor`)
* Rechtsklick auf Icon und `Add to Favorites` wählen
2. Startseite im Firefox Browser
* Die Übersichtsseite des gemeinsamen Dokuments aufrufen
* Über das Sternchen in der Adressleiste ein Lesezeichen setzen
Note:
- Teilnehmer\*innen mit Mac? Dann im Applikationsmenü "Region & Language" das Keyboard Layout "German (Switzerland, Macintosh)" ergänzen und auswählen
## Grundlagen der Unix Shell
* Wird benötigt zur Administration von Servern
* Ist aber auch zur Automatisierung von kleineren Aufgaben beliebt (Shell-Scripte)
Note:
- Die Unix Shell werden wir im Kurs öfter für Installation und Konfiguration der Software verwenden. Daher beginnen wir hier mit einer Wiederholung der wichtigsten Kommandos, damit uns das später leichter fällt.
- Es gibt verschiedene Varianten der Shell. Ubuntu verwendet Bash.
### Download der Materialien
1. In das Home-Verzeichnis wechseln
```shell
cd
```
2. Archiv shell-lesson.zip von Library Carpentry herunterladen
```shell
wget https://librarycarpentry.org/lc-shell/data/shell-lesson.zip
```
3. Archiv in den Ordner shell-lesson entpacken und Archiv löschen
```shell
unzip shell-lesson.zip -d shell-lesson
rm shell-lesson.zip
```
### Übungen
Aufgaben:
1. Bearbeiten Sie das zweite Kapitel [Navigating the filesystem](https://librarycarpentry.org/lc-shell/02-navigating-the-filesystem/index.html) der Library Carpentry Lesson zur Unix Shell
2. Bearbeiten Sie das dritte Kapitel [Working with files and directories](https://librarycarpentry.org/lc-shell/03-working-with-files-and-folders/index.html) der Library Carpentry Lesson zur Unix Shell
### Tipps zur Unix Shell
* Copy & Paste im Terminal mit Rechtsklick oder STRG+SHIFT+C und STRG+SHIFT+V
* Nutzen Sie immer die Tab-Taste für die Autovervollständigung.
* Seien Sie faul, verwenden Sie Ihre persönliche Befehlshistorie (Pfeiltaste nach oben / Suche in der Historie mit `STRG`+`R`).
* Wichtig ist die Unterscheidung zwischen Programm (`ls`) und Parametern (`-l`).
* Nutzen Sie Spickzettel für die wichtigsten Kommandos wie z.B. [Library Carpentry Reference](https://librarycarpentry.org/lc-shell/reference.html) oder [Cheatsheet für Shell-Scripte](https://devhints.io/bash).
Note:
- Alle Programme in der Unix Shell sind ähnlich aufgebaut. Wenn Sie das Grundprinzip mit der Unterscheidung von Programm und Parametern verinnerlicht haben, dann hilft Ihnen auch die integrierte Hilfe (`--help`) weiter.
- Linux hat ein integriertes Nutzerhandbuch, das zu beinahe jedem Kommando und Programm hilfreiche Dokumentation enthält: man <command> (auch via Google)
### Redirects und Pipes
![Library Carpentry Illustration Redirects and Pipes](images/redirects-and-pipes.png)
Note:
1. Bei einer normalen Eingabe landet das Ergebnis im Terminal. `wc` steht für "word count" und liefert mit dem Parameter `-l` die Anzahl der Zeilen. Die Angabe `*.tsv` bedeutet alle Dateien mit der Dateiendung "tsv".
2. Stattdessen kann das Ergebnis aber auch in eine Datei umgelenkt werden mit der spitzen Klammer `>`
3. Das Ergebnis eines Programms kann mit "Pipes" (`|`) direkt weiterverarbeitet werden. Welche Ausgabe erwarten Sie?
## Versionskontrolle mit git
* Aus Zeitgründen schauen wir uns nur Grundfunktionen von `git` an.
* Wenn Sie im Anschluss selbst üben möchten, bietet Library Carpentry dazu [ausführliche Lehrmaterialien](<https://librarycarpentry.org/lc-git/>)
Note:
- Durch die Plattform GitHub, auf der Informatiker\*innen Ihren Quellcode ablegen, ist das Versionskontrollsystem Git sehr populär geworden. Es ist nicht nur für die Entwicklung von Software, sondern generell für die Zusammenarbeit in Projekten extrem hilfreich.
### Wozu Git?
* Git ist eine Software zur Versionskontrolle
* Ermöglicht die Arbeit an Textdateien auf mehreren Computern und/oder mit mehreren Personen zu synchronisieren.
* Jede Änderung wird nachvollziehbar.
* Funktioniert mit allen Textdateien, also geeignet für Code, Plain Text oder auch Tabellen (CSV).
Note:
* Git wurde entwickelt für die gemeinsame Software-Entwicklung; heute gibt es weitere Anwendungsfälle (z.B. Texte, Präsentationen oder Forschungsdaten).
### Unterschied Git und GitHub
* Git kann zunächst auch lokal auf einem Computer verwendet werden.
* Wenn ein Git Repository im Netz bereitgestellt werden soll, braucht es eine Installation von Git auf einem Webserver.
* Das kann man selber machen oder eine Plattform nutzen. Die bekannteste ist [GitHub](https://www.github.com).
Note:
- GitHub ist ein 2007 gegründetes Unternehmen, das 2018 aufgekauft wurde. Die meisten Dienstleistungen sind kostenfrei, aber das muss nicht unbedingt so bleiben. Es ist so erfolgreich, dass praktisch jedes Open-Source-Projekt dort seinen Code ablegt.
- Alternativen zu GitHub sind unter anderem [GitLab](https://gitlab.com), [BitBucket](https://bitbucket.org) oder auch das Urgestein [SourceForge](https://sourceforge.net).
- Viele Bibliotheken nutzen GitHub oder GitLab. Es gibt eine gemeinschaftlich gepflegte Liste [BibsOnGitHub](https://github.com/axel-klinger/BibsOnGitHub), auf der [Listen von Bibliotheken](https://axel-klinger.github.io/BibsOnGitHub/libraries.html) und [deren Repositorien](https://axel-klinger.github.io/BibsOnGitHub/repositories.html) eingesehen werden können.
### Programme installieren
1. Verzeichnis aktualisieren
```shell
sudo apt update
```
2. Programme installieren
```shell
sudo apt install git curl
```
Note:
- Darauf folgt eine Passwortabfrage (nochmal das gleiche)
- Änderungen werden komplex angezeigt, diese müssen dann nochmal mit `Y` (oder Enter) bestätigt werden
- Die Paketverwaltung unter Linux ist vergleichbar mit einem App-Store von Apple oder Google
### Übung: Link zum Lerntagebuch ergänzen
* Als Beispiel nutzen wir das [GitHub Repository dieses Kurses](https://github.com/felixlohmeier/bibliotheks-und-archivinformatik), in dem die Lehrmaterialien liegen.
* Sie ergänzen darin den Link zu Ihrem Lerntagebuch.
* So gehen wir vor:
1. Kopie des Repositories erstellen ("Fork")
2. Dateien aus Ihrem Fork herunterladen ("clone")
3. Link zu Ihrem Lerntagebuch in `README.md` einfügen
4. Die Änderung mit einer Notiz hochladen ("commit")
5. Übernahme der Änderung anfragen ("Pull request")
### Schritt 0: Git konfigurieren
Name und E-Mail für Git hinterlegen
```shell
git config --global user.name "Felix Lohmeier"
git config --global user.email "mail@felixlohmeier.de"
```
Note:
- Ersetzen Sie die Angaben durch Ihre eigenen und verwenden Sie dieselbe E-Mail-Adresse, mit der Sie sich bei GitHub registriert haben. Dadurch kann GitHub Ihnen alle Änderungen zuordnen.
- Die Konfiguration ist nur einmalig nötig. Sie wird in Ihrem Home-Verzeichnis gespeichert (```~/.gitconfig```) und künftig für jedes Repository automatisch als Standard verwendet.
#### Schritt 1: Kopie des Repositories erstellen
* Bei GitHub einloggen
* Repository aufrufen: <https://github.com/felixlohmeier/bibliotheks-und-archivinformatik>
* Oben rechts auf Button "Fork" klicken
#### Schritt 2: Dateien herunterladen
Um die Dateien aus Ihrem Fork herunterzuladen ("klonen") geben Sie den folgenden Befehl ins Terminal ein.
Ersetzen Sie dabei `...` durch den Link zu Ihrem Fork.
```shell
git clone ...
```
Wechseln Sie in das erstellte Verzeichnis.
```shell
cd bibliotheks-und-archivinformatik
```
#### Schritt 3: Änderung lokal durchführen
1. Datei `README.md` in Texteditor öffnen und Link zu Ihrem Lerntagebuch in Abschnitt "Lerntagebücher" einfügen.
2. Lassen Sie sich von `git` die Änderungen anzeigen:
```shell
git diff
```
3. Lassen Sie sich von `git` die geänderten Dateien anzeigen:
```shell
git status
```
#### Schritt 4: Änderung hochladen
1. Datei zum Päckchen hinzufügen
```shell
git add README.md
```
2. Absender eintragen (mit Ihren Daten ersetzen)
```shell
git config user.email "mail@felixlohmeier.de"
git config user.name "Felix Lohmeier"
```
3. Packzettel beilegen und Päckchen schließen
```shell
git commit -m "Link zu meinem Lerntagebuch"
```
4. Päckchen abschicken
```shell
git push
```
#### Schritt 5: Pull Request erstellen
* Mit wenigen Sekunden Verzögerung sollte Ihre Änderung nun auch bei GitHub angekommen sein.
* Öffnen Sie Ihren Fork bei GitHub.
* Klicken Sie auf den Link "Pull request". Dann erscheint ein Vergleich. Klicken Sie dort auf den Button "Create pull request".
* Vervollständigen Sie das Formular und klicken Sie auf den Button "Create pull request".
#### Ergebnis auf GitHub
Sie finden Ihren Pull Request im ursprünglichen Repository bei GitHub im Tab "Pull requests": <https://github.com/felixlohmeier/bibliotheks-und-archivinformatik/pulls>
### Wofür git in Bibliotheken und Archiven?
* Arbeitsfeld "forschungsnahe Dienste", siehe Positionspapier der Kommission für forschungsnahe Dienste des VDB: https://www.o-bib.de/article/view/5718/8434
* siehe auch "Uses in a library context" in [Library Carpentry Lesson zu git](https://librarycarpentry.org/lc-git/01-what-is-git/index.html): "Local library looking to start a crowdsourcing project" und "Multiple people editing metadata for a collection"
## Blog mit GitHub Pages
* Mit GitHub Pages lassen sich statische Webseiten direkt aus den Dateien im GitHub Repository generieren und auf Servern von GitHub kostenfrei veröffentlichen.
* GitHub verwendet dazu den (hauseigenen) Static-Site-Generator [Jekyll](https://help.github.com/en/github/working-with-github-pages/about-github-pages-and-jekyll).
* Die Software nimmt Markdown- und HTML-Dateien und generiert daraus eine komplette Webseite.
* Die Darstellung (Themes) lässt sich über eine Konfigurationsdatei einstellen.
## Aufgaben
Bis zum nächsten Termin:
1. Lerntagebuch einrichten
* Vorlage für ein Lerntagebuch mit GitHub Pages: <https://github.com/felixlohmeier/lerntagebuch>
* Link bitte auf der Übersichtsseite der gemeinsamen Dokumente ergänzen
2. Einführungsartikel (wo bin ich gestartet?) (3000 - 4000 Zeichen)
3. Beitrag zu dieser Lehreinheit "Technische Grundlagen" (3000 - 4000 Zeichen)

View File

@ -0,0 +1,449 @@
# Funktion und Aufbau von Bibliothekssystemen
* Metadatenstandards in Bibliotheken (MARC21)
* Installation und Konfiguration von Koha
* Cloud-Konzepte am Beispiel von ALMA
* Marktüberblick Bibliothekssysteme
## Metadatenstandards in Bibliotheken (MARC21)
* MARC21: International verbreiteter Metadaten-Standard, begründet von der Library of Congress 1999: <https://www.loc.gov/marc/bibliographic/>
* Hat [eigenes Binärformat](http://format.gbv.de/marc/iso) (.mrc), gibt's aber auch [als XML](http://format.gbv.de/marc/xml)
* wegen unterschiedlicher Katalogisierungsregeln und der Möglichkeit eigene Felder zu belegen, weicht die Verwendung international und auch nach Institution [stark vom vermeintlichen Standard ab](https://docs.google.com/presentation/d/e/2PACX-1vRU4J_rln00UVD7pNPT0_02NOad0HfSk_UKqRI0v29y8QkMAplEDlyjc0Ot_VE_paV6WBW29Fh_V-iN/pub?start=false&loop=false&delayms=3000#slide=id.g574306292a_0_35)
* Koha und alle anderen großen Bibliothekssysteme basieren auf MARC21 oder unterstützen es als Austauschformat
* wird zukünftig voraussichtlich von [BIBFRAME](http://format.gbv.de/bibframe), einem Datenmodell basierend auf [RDF](http://format.gbv.de/rdf), abgelöst
### Übung: Vergleich MARC21 und Dublin Core
* Dublin Core ist ein Standard, der als kleinster gemeinsamer Nenner gilt
* Wir beziehen die Daten über die SRU-Schnittstelle von Swisscovery (auf das Thema Schnittstellen und SRU gehen wir an einem anderen Tag noch ein)
**Aufgabe (15 Minuten):** Laden Sie über die folgenden Links Daten über die SRU-Schnittstelle von Swisscovery einmal im Format MARC21 und einmal im Format Dublin Core und vergleichen Sie diese.
* MARC21: <https://swisscovery.slsp.ch/view/sru/41SLSP_NETWORK?version=1.2&operation=searchRetrieve&query=title=einstein&recordSchema=marcxml>
* Dublin Core: <https://swisscovery.slsp.ch/view/sru/41SLSP_NETWORK?version=1.2&operation=searchRetrieve&query=title=einstein&recordSchema=dc>
Note:
- Der Katalog Swisscovery beinhaltet die Daten der an SLSP teilnehmenden Bibliotheken.
- Der gemeinsame Katalog ermöglicht eine übergreifende Suche, gleichzeitig bietet Swisscovery auch Schnittstellen an, über welche Metadaten der teilnehmenden Institutionen zentral bezogen werden können.
- Siehe auch: [Nutzung SLSP-Metadaten](https://slsp.ch/de/metadata), [Dokumentation der SRU-Schnittstelle von ALMA](https://developers.exlibrisgroup.com/alma/integrations/sru/)
## Installation und Konfiguration von Koha
### Einführung in Koha
* Webseite: <https://koha-community.org>
* Weltweites Open Source Projekt, gegründet 1999 in Neuseeland, heute mit Beteiligung von Unternehmen wie ByWater Solutions, Biblibre, Catalyst IT, PTFS Europe, Theke Solutions
* Status des Projekts: Siehe [Statistik bei Open Hub](https://www.openhub.net/p/koha)
Note:
- Zur Gesundheit von Open-Source-Projekten siehe auch <https://felixlohmeier.de/slides/2017-09-28_vufind-anwendertreffen-keynote.html>
- Zur Bedeutung von Open-Source-Software auch dieser Comic: <https://xkcd.com/2347/>
#### Koha Dokumentation
* Professionelle Entwicklungsstrukturen, vgl. Dashboard: <https://dashboard.koha-community.org>
* Release Notes zur Version 21.05: <https://koha-community.org/koha-21-05-released/>
* Handbuch zur Version 21.05: [englisch](https://koha-community.org/manual/21.05/en/html/), [deutsch](http://koha-community.org/manual/21.05/de/html/index.html) (Übersetzung noch in Arbeit)
#### Koha Demo
* MARC21, Koha 21.05 bereitgestellt von schweizer Unternehmen "Admin Kuhn" unter http://koha.adminkuhn.ch
* Login mit Benutzername `demo` / Passwort `demo` möglich
* wird jeweils Morgens um 5 Uhr auf Standardwerte zurückgesetzt
* siehe auch die Erläuterungen unter http://adminkuhn.ch/wiki/Koha-Demoinstallation
### Installation von Koha 21.05
Die folgenden Befehle orientieren sich an der [offiziellen Installationsanleitung](http://wiki.koha-community.org/wiki/Debian).
#### Paketquellen für Koha registrieren
1. Paketquelle hinzufügen
```shell
echo 'deb http://debian.koha-community.org/koha 21.05 main' | sudo tee /etc/apt/sources.list.d/koha.list
```
2. Schlüssel hinzufügen
```shell
wget -q -O- http://debian.koha-community.org/koha/gpg.asc | sudo apt-key add -
```
3. Paketquellen aktualisieren
```shell
sudo apt-get update
```
#### Koha und die Datenbank MariaDB installieren
```shell
sudo apt install koha-common mariadb-server
```
#### Domain `meine-schule.org` für Koha konfigurieren
```shell
sudo sed -i 's/DOMAIN=".myDNSname.org"/DOMAIN=".meine-schule.org"/' /etc/koha/koha-sites.conf
```
#### Apache Konfiguration
```shell
sudo a2enmod rewrite
sudo a2enmod cgi
sudo a2enmod headers proxy_http
sudo systemctl restart apache2
```
#### Eine Bibliothek in Koha erstellen
```shell
sudo koha-create --create-db bibliothek
```
#### Deutsche Übersetzung für Koha installieren
```shell
sudo koha-translate --install de-DE
```
Note:
- Fehlermeldung ignorieren:
> `Connection to the memcached servers '__MEMCACHED_SERVERS__' failed`
#### "Plack" aktivieren für bessere Performance
```shell
sudo koha-plack --enable bibliothek
sudo koha-plack --start bibliothek
sudo systemctl restart apache2
```
#### Host-Datei ergänzen
Es handelt sich um einen einzigen Befehl. Anders als sonst müssen hier also alle vier Zeilen gemeinsam in die Kommandozeile übernommen werden.
```shell
echo '# Koha
127.0.0.1 bibliothek.meine-schule.org
127.0.0.1 bibliothek-intra.meine-schule.org
' | sudo tee -a /etc/hosts
```
#### Befehl, um generiertes Passwort herauszufinden
```shell
sudo koha-passwd bibliothek
```
Kopieren Sie das Passwort in die Zwischenablage.
#### Fertig?
Wenn die Installation erfolgreich war, dann sollten Sie mit dem Browser auf der virtuellen Maschine die Webseite <http://bibliothek-intra.meine-schule.org> aufrufen können. Dort sollte der Koha-Installationsassistent erscheinen.
#### Bekanntes Problem
Aus noch unbekannten Gründen ist manchmal nach erfolgreicher Installation und etwas Wartezeit plötzlich Koha nicht mehr aufrufbar. Dann hilft ein Neustart von Koha:
```
sudo systemctl restart koha-common
```
#### Koha zurücksetzen
Falls etwas schiefgeht, können Sie die Konfiguration mit den folgenden Befehlen zurücksetzen. Es erscheint dann wieder der Webinstaller und Sie können von Vorne beginnen.
```shell
sudo koha-remove bibliothek
sudo koha-create --create-db bibliothek
sudo koha-passwd bibliothek
```
Note:
- Falls das auch nicht funktioniert, ist vermutlich ein Rest der eingerichteten Bibliothek noch vorhanden. Mit folgenden Befehlen können Sie auch diese Reste löschen. Anschließend sollte das Neuanlegen funktionieren.
- `sudo koha-remove --purge-all bibliothek`
- `sudo userdel bibliothek-koha`
### Grundkonfiguration mit Tutorial
Wir verwenden ein Tutorial von Stephan Tetzel, das auf deutsch und englisch verfügbar ist:
* Deutsch: <https://zefanjas.de/wie-man-koha-installiert-und-fuer-schulen-einrichtet-teil-1/>
* Englisch: <https://openschoolsolutions.org/how-to-install-and-set-up-koha-for-schools-part-1/>
Note:
- Da wir eine neuere Koha-Version (21.05) als im Tutorial 20.05 verwenden, gibt es Abweichungen im Detail. Das ist eine Situation, die in der Praxis oft auftritt. Versuchen Sie die Hinweise im Tutorial sinngemäß anzuwenden.
**Aufgabe**: Bitte bearbeiten Sie das Tutorial, um die Grundkonfiguration von Koha vorzunehmen. Das Tutorial besteht aus 6 Kapiteln (die Links zu den weiteren Kapiteln sind immer am Anfang der Blogartikel):
1. Installation und Einrichtung einer ersten Bibliothek
* Die Grundinstallation haben wir bereits durchgeführt. Starten Sie in [Kapitel 1](https://zefanjas.de/wie-man-koha-installiert-und-fuer-schulen-einrichtet-teil-1/) unter der Überschrift "Koha einrichten".
2. Das bibliografische Framework
* Dieses Kapitel bitte nur lesen und den Export/Import **nicht** durchführen. Das im Tutorial beschriebene Vorgehen ist fehleranfällig.
3. Grundeinstellungen
* Mit der Koha-Version 20.05 wurde der Parameter "OpacMainUserBlock" für die Willkommensnachricht von den Systemeinstellungen in das Nachrichten-Werkzeug verschoben (Werkzeuge > Nachrichten > Neuer Eintrag).
Optional:
4. Buchaufnahme
5. Drucken von Etiketten
6. Ausleihkonditionen
Note:
- Koha bietet eine Bearbeitungsfunktion des bibliografischen Frameworks direkt über die Webseite der Admin-Oberfläche (ohne Export/Import). Menüpunkt "MARC-Struktur".
- Der Parameter für die Willkommensnachricht wurde von den Systemeinstellungen in das Nachrichten-Werkzeug verschoben. Werkzeuge > Nachrichten > Neuer Eintrag. Anzeigebereich: OpacMainUserBlock
### Übung: Manuelle Bedienung
**Aufgabe (20 Minuten)**: Damit Sie ein Gespür für das System erhalten, machen wir nun ein Minimalbeispiel für einen vereinfachten Bibliotheksworkflow:
1. Buch erfassen
2. Benutzer anlegen
3. Buch an Theke ausleihen
4. Buch an Theke zurücknehmen
Schauen Sie sich dabei auch ein wenig um, welche Optionen das Bibliothekssystem Koha bietet.
#### Buch erfassen
Start > Katalogisierung > Neuer Titel > Schnellaufnahme
1. Neuer Marc Datensatz: Pflichtfelder ausfüllen
* `000` und `008` werden automatisch befüllt beim Anklicken
* In `245a` muss ein Titel vergeben werden
2. Exemplar hinzufügen
* `p - Barcode` muss vergeben werden (sonst können wir später nicht ausleihen)
* Unten Button "Exemplar hinzufügen" nicht vergessen
Note:
- Falls bei der Grundinstallation der Import des FA-Frameworks nicht durchgeführt wurde, steht keine Schnellaufnahme zur Verfügung.
- Nachinstallation des FA-Frameworks:
1. Im Terminal das Framework herunterladen:
```bash
wget https://raw.githubusercontent.com/sebastian-meyer/bain_fa/master/export_FA.csv
```
2. In der Koha-Dienstoberfläche: Start -> Administration -> Bibliographisches MARC-Framework
3. Button "Neues Framework": Code "FA", Beschreibung "Schnellaufnahme"
4. Rechts neben dem neu angelegten Framework über den Pfeil auf "Import"
5. Datei "export_FA.csv" auswählen und bestätigen
#### Benutzer anlegen
* Start > Benutzer > Benutzer-Schnellerfassung
* Hinzufügen Benutzer: Name und Ausweisnummer vergeben
#### Buch an Theke ausleihen
* Oben im Suchschlitz Reiter Ausleihe wählen, Ausweisnummer eingeben und abschicken
* Dann in Box "Ausleihe an" den Exemplarbarcode eingeben und Ausleihe abschicken
* Über Button "Zeige Ausleihen" prüfen, ob Ausleihe erfolgreich war
#### Buch an Theke zurücknehmen
* Oben im Suchschlitz Reiter Rückgabe wählen, Barcode eingeben und abschicken
### Übung: Datenimport
**Aufgabe (20 Minuten)**: Koha verfügt über einige Schnittstellen. Hier ein kleines Beispiel für semi-automatische Erfassung ("copy cataloging"):
1. Z39.50 Server einrichten
2. "Copy Cataloging"
3. Datenexport
#### SRU Server einrichten
Start > Administration > Z39.50/SRU-Server / Neuer SRU-Server
* Servername: `GBV`
* Hostname: `sru.gbv.de`
* Port: `80`
* Ausgewählt (Standardsuche): ja
* Datenbank: `gvk`
* Syntax: `MARC21/USMARC`
* Codierung: `utf8`
Note:
- Im Netzwerk der FHGR sind aus Sicherheitsgründen einige Ports gesperrt. Daher können wir mit unserer virtuellen Maschine einige Z39.50 Server wie z.B. von NEBIS auf Port 9909 nicht erreichen.
#### "Copy Cataloging"
Start > Katalogisierung > Import über Z39.50/SRU
* Nach etwas suchen (z.B. Titel: `open educational resources`)
* Bei gewünschtem Eintrag Aktionen > Import auswählen (oder vorher Vorschau prüfen, ob es der richtige Titel ist).
* Im folgenden Katalogisierungsbildschirm können Sie versuchen zu speichern. Es muss aber auf jeden Fall noch der Medientyp in Feld `942c` ausgewählt werden (ein Pflichtfeld).
* Im nächsten Bildschirm einen Barcode vergeben und Exemplar hinzufügen.
### Exkurs: Datenexport und Schnittstellen
* Koha unterstützt dateibasierten Datenexport und diverse Schnittstellen.
* Wir nutzen hier die Schnittstelle OAI-PMH.
* OAI-PMH steht für [Open Archives Initiative Protocol for Metadata Harvesting](https://www.openarchives.org/pmh/) und ermöglicht regelmäßiges automatisiertes Abrufen von Änderungen.
* Im Themenblock "Metadaten modellieren und Schnittstellen nutzen" gehen wir noch genauer darauf ein.
Note:
- Vorab: Was nützt OAI-PMH meiner Bibliothek?
- Abruf der Daten zur Weiterverarbeitung (z. B. Discovery-System, Digitalisierung)
- Erstellung von z. B. Regionalbibliografien oder Themenportalen
- Aggregation für Verbundrecherchen
- Datenbereitstellung für Digitalisierung, Hackathons, etc.
### Übung: OAI-PMH
**Aufgabe (20 Minuten)**: Aktivieren Sie die OAI-PMH-Schnittstelle und prüfen Sie, ob die von Ihnen erstellten Datensätze darüber abrufbar sind
#### Schnittstelle einrichten
Start > Administration > Globale Systemparameter > Web Services
* OAI-PMH: Aktiviere
* OAI-PMH:AutoUpdateSets: Aktiviere
* Button "Alle Web Services Parameter speichern"
* Siehe auch: <https://koha-community.org/manual/21.05/en/html/administration.html#oai-sets-configuration>
#### Schnittstelle abfragen
* Die Basisurl lautet bei uns: <http://bibliothek.meine-schule.org/cgi-bin/koha/oai.pl>
* Klicken Sie oben auf die Links "Identify", "Metadata Formats" usw.
* Prüfen Sie, ob die von Ihnen erstellten Katalogeinträge abrufbar sind
### Literatur
* Koha Anwenderhandbuch des Bibliothekservice-Zentrum Baden-Württemberg: <https://wiki.bsz-bw.de/display/KOHA/Dokumentation> (für ältere Versionen geschrieben)
* Felix Hemme (2016): Katalogisierung mit dem Open-Source-Bibliothekssystem Koha unter Berücksichtigung des Metadatenstandards MARC 21 und dem Regelwerk RDA. Bachelorarbeit im Studiengang Bibliotheksmanagement der FH Potsdam. <https://nbn-resolving.org/urn:nbn:de:kobv:525-13882>
* Implementation Checklist: <https://koha-community.org/manual/21.05/en/html/implementation_checklist.html>
* Fred King: How to use Koha, MarcEdit, a Raspberry Pi, and a Chicken (optional) to create an ILS for under $100 (September 2019, Vortrag auf Koha-Konferenz): <http://avengingchicken.online/misc/installing_koha_on_raspberry-pi-4.pdf>
## Cloud-Konzepte am Beispiel von ALMA
### Verwendung von ALMA an der Fachhochschule Nordwestschweiz (FHNW)
Notizen zur Live-Demo:
* Aufbau und Grundlagen: jede SLSP-Bibliothek hat eigene Einstiegsseite in ALMA-Administration
* Recherche in Alma / Primo VE: Komplexe Suchoptionen möglich, Anzeige der Treffer ähnlich wie in Discovery-System
* Ausleihe und Rückgabe: System verlangt zunächst "Login" an einem Standort, bevor Benutzungsfunktionen angezeigt werden
* Benutzerverwaltung: SLSP hat Rollenvorlagen für Mitgliedsbibliotheken erstellt
* E-Ressourcen:
* Übernahme von Daten aus verschiedenen Schnittstellen möglich. Die meisten Verlage liefern Daten direkt an Ex Libris.
* Bestandszeitraum kann "überschrieben" werden
* Datenbanken können oft auch im Volltext durchsucht werden.
* Konfiguration:
* Öffnungszeiten bestimmen den Ablauf der Ausleihfristen. Kann für jede Bibliothek definiert werden.
* Die meisten Einstellungen werden an der FHNW auf der Ebene der "Institution Zone" vorgenommen. Beispiel "Briefe" (inkl. E-Mail) zur Nutzerkommunikation
* Discovery kann direkt aus ALMA konfiguriert werden. Template (HTML, CSS, JS) kann mit "Primo Studio" erstellt werden. <https://fhnw.swisscovery.slsp.ch>
* Benutzerverwaltung: SLSP hat Rollenvorlagen für Mitgliedsbibliotheken erstellt
### Zusammenspiel Verbund und lokale Änderungen
> Was passiert, wenn Datensätze in der Community aktualisiert werden, für die lokale "Überschreibungen" vorgenommen wurden?
Lokale Änderung wird überschrieben und in einer Liste (CZ-Updates - Aufgabenliste) zur Kontrolle notiert
### Übung: Strategische Spielereien
Gruppe 1: Argumentation gegenüber Träger / Direktion
* Ihr müsst eurer Direktion / dem Träger ein Systemwechsel zu ALMA / SLSP vorschlagen, welche Argumente führt ihr auf?
* Wie rechtfertigen wir den sehr viel höheren Mitteleinsatz gegenüber den Trägern und der Direktion?
* Seht Ihr Alternativen?
Gruppe 2: Motivation und Kommunikation der beteiligten Bibliotheken
* Wie würdet Ihr die Bibliotheken miteinbeziehen?
* Wie würdet Ihr den Change begleiten?
* Welche Kommunikationskanäle würdet Ihr nutzen?
Gruppe 3: Technische Alternativen Pro und Contra
* Welche Vor- und Nachteile gibt es bei einem cloudbasierten System?
* Gibt es Alternativen zu ALMA / SLSP
* Wie beurteilt ihr die Konfigurationsmöglichkeiten?
## Marktüberblick Bibliothekssysteme
### Statistiken zum Markt USA/UK
* Marshall Breeding veröffentlicht jährlich im American Libraries Magazine den "Library Systems Report" und erfasst dafür regelmäßig Statistiken. Daran lässt sich die internationale Entwicklung der Produkte am ehesten ablesen.
* [Zusammenfassende Tabellen mit aktuellen Statistiken (2020)](https://americanlibrariesmagazine.org/wp-content/uploads/2021/04/Library-Systems-Report-2021-Tables-and-Charts.xlsx)
* Vollständiger Bericht: Marshall Breeding (3.5.2021): Library Systems Report 2021. Advancing library technologies in challenging times. In: American Libraries Magazine. https://americanlibrariesmagazine.org/2021/05/03/2021-library-systems-report/
Note:
- kurz nach Erscheinen des Berichts wurde ProQuest/ExLibris von Clarivate aufgekauft
- Sachliche Einordnung: https://americanlibrariesmagazine.org/blogs/the-scoop/clarivate-to-acquire-proquest/
- zugespitzter Kommentar: https://librarianshipwreck.wordpress.com/2021/08/16/mergers-acquisitions-and-my-tinfoil-hat/
- Übersicht über vergangene Fusionen und Aufkäufe: https://librarytechnology.org/mergers/
### Alma im Vergleich zu Aleph und Koha
* Eine Stärke von Alma ist das ERM (Electronic Resource Management). Aleph und Koha verfügen über kein integriertes ERM.
* Siehe dazu Vortrag von Katrin Fischer: [Koha und ERM - Optionen für die Verwaltung von elektronischen Ressourcen](https://nbn-resolving.org/urn:nbn:de:0290-opus4-35840) auf dem Bibliothekartag 2018.
* Alma ist auf dem aktuellsten Stand der Technik und bietet vorbildliche Programmierschnittstellen.
* Alma ist cloudbasiert, d.h. zentrale Installation auf Servern von Ex Libris und regelmäßige Updates.
* Kritiker befürchten langfristig Nachteile durch die Abhängigkeit vom Hersteller Ex Libris und dessen Marktmacht (Vendor Lock-in).
### Wann wird ein ERM-System benötigt?
* Klassische Bibliothekssysteme können auch einzelne E-Books, digitale Hörbücher etc. verwalten
* Manchmal werden Schnittstellen angeboten, um eBooks aus großen Plattformen wie OverDrive zu übernehmen
* ERM-Systeme benötigen insbesondere wissenschaftliche Bibliotheken, weil diese "Pakete" von verschiedenen Anbietern erwerben, in denen eine so große Anzahl von elektronischen Zeitschriften und/oder E-Books enthalten ist, dass diese nicht mehr einzeln katalogisiert werden.
### Unterschiede zwischen wiss. und öff. Bibliothekssoftware
- Traditionell gibt es große Unterschiede zwischen wissenschaftlichen und öffentlichen Bibliotheken (darunter Schulbibliotheken)
- Bibliotheksmanagementsoftware für öffentliche Bibliotheken enthält oft Module für Veranstaltungsmanagement oder Content-Management (Webseiten), legt Schwerpunkte auf optischer Darstellung (Buchcover, Themenschwerpunkte) und bindet Plattformen für E-Books und Hörbücher ein.
- Bibliotheksmanagementsoftware für wissenschaftliche Bibliotheken legt Schwerpunkte auf Erschließung, E-Ressourcen-Management (elektronische Zeitschriften) und komplexe Geschäftsgänge
## Aufgaben
Bis zum nächsten Termin:
1. Beitrag im Lerntagebuch zu dieser Lehreinheit (3000 - 4000 Zeichen)
2. Installation ArchivesSpace (siehe unten)
### Installation ArchivesSpace 3.1.0
1. Java 8 installieren
```bash
sudo apt update
sudo apt install openjdk-8-jre-headless
```
2. Zip-Archiv herunterladen und entpacken
```bash
wget https://github.com/archivesspace/archivesspace/releases/download/v3.1.0/archivesspace-v3.1.0.zip
unzip -q archivesspace-v3.1.0.zip
```
3. ArchivesSpace starten
```bash
archivesspace/archivesspace.sh
```
Note:
- Während Koha in der Standardinstallation so eingerichtet ist, dass es automatisch beim Systemstart zur Verfügung steht, muss ArchivesSpace in der Standardinstallation manuell gestartet werden.
- Es ist nur solange verfügbar wie der Prozess im Terminal läuft. Es handelt sich um eine Webanwendung. Im Terminal läuft die Server-Applikation. Über den Browser greifen wir darauf zu. Wenn das Terminal geschlossen wird, dann wird auch der Server beendet und die Webseite im Browser ist nicht mehr erreichbar.
### ArchivesSpace aufrufen
Nach ein paar Minuten sollte ArchivesSpace unter folgenden URLs erreichbar sein:
* http://localhost:8080/ Administrationsoberfläche / "Staff Interface"
* http://localhost:8081/ Benutzungsoberfläche / "Public Interface"
* http://localhost:8082/ OAI-PMH Schnittstelle
Zugangsdaten für das "Staff Interface" sind:
* Username: `admin`
* Password: `admin`
Note:
- Die Benutzungsoberfläche ist erst verfügbar, wenn über die Administrationsoberfläche mindestens ein Repository angelegt wurde. (Das machen wir in der nächsten Lehreinheit.)
- Da es sich um eine lokale Installation handelt, sind die Adressen nur über den Webbrowser innerhalb der Virtuellen Maschine erreichbar.
- Für technisch Interessierte:
- Unter http://localhost:8089/ ist die [REST API](https://archivesspace.github.io/archivesspace/api/) erreichbar.
- Unter http://localhost:8090/ ist die Suchmaschine Apache Solr erreichbar.

View File

@ -0,0 +1,265 @@
# Funktion und Aufbau von Archivsystemen
* Metadatenstandards in Archiven (ISAD(G) und EAD)
* Installation und Konfiguration von ArchivesSpace
* Marktüberblick Archivsysteme
## Metadatenstandards in Archiven (ISAD(G) und EAD)
### Regelwerk: ISAD(G)
* Als digitale Archivsysteme entwickelt wurden, orientierte sich die Datenstruktur an analogen Findmitteln wie Findbüchern und Zettelkästen.
* Ein wichtiger Verzeichnungsstandard im Archivwesen wurde 1994 (Revision 2000) eingeführt, die "International Standard Archival Description (General)" - kurz [ISAD(G)](https://de.wikipedia.org/wiki/ISAD(G)).
* Grundsätzlich gibt es hier eine mehrstufige Verzeichnung im Provenienzprinzip, um den Entstehungszusammenhang abzubilden.
#### Informationsbereiche
Der Standard enthält 26 Verzeichnungselemente in 7 Informationsbereichen:
1. Identifikation
2. Kontext
3. Inhalt und innere Ordnung
4. Zugangs- und Benutzungsbedingungen
5. Sachverwandte Unterlagen
6. Anmerkungen
7. Kontrolle
#### Pflichtfelder
Von besonderer Bedeutung sind 6 Pflichtfelder:
* Signatur
* Titel
* Provenienz
* Entstehungszeitraum
* Umfang
* Verzeichnungsstufe
#### Grenzen von ISAD(G)
1. Ein einzelner Datensatz ist unter Umständen nur im Kontext verständlich (z. B. nur "Protokoll" als Titel).
2. Die Tektonik ist eindimensional (keine Mehrfachzuordnung möglich).
3. Der Standard enthält keine Vorgaben zur Digitalisierung oder zur digitalen Langzeitarchivierung.
#### Normdaten mit ISAD(G)
* Um Normdateien verzeichnen zu können, wurde später ein ergänzender Standard "International Standard Archival Authority Record for Corporate Bodies, Persons, and Families" - kurz [ISAAR(CPF)](https://de.wikipedia.org/wiki/ISAAR(CPF)) verabschiedet. Dieser wird in der Praxis wegen dem Zusatzaufwand bei der Erschließung jedoch nur selten verwendet.
* Aktuell ist ein neuer Standard ["Records in Contexts" (RIC)](https://de.wikipedia.org/wiki/Records_in_Contexts) in Entwicklung. Dieser basiert auf Linked-Data-Prinzipien und soll neue und mehrfache Beziehungen zwischen Entitäten ermöglichen.
Note:
- In den Archiven der ETH-Bibliothek ist wegen der Bibliothekszugehörigkeit die [GND](https://de.wikipedia.org/wiki/Gemeinsame_Normdatei)-ID von besonderer Bedeutung.
- Projektgruppe [ENSEMEN](https://vsa-aas.ch/arbeitsgruppen/projektgruppe-ensemen/) arbeitet an einer schweizerischen Ausprägung des neuen Standards [Records in Contexts](https://www.ica.org/en/records-contexts-german) (RiC), mit Beteiligung von Niklaus Stettler (FH Graubünden)
### Übung: Archivkataloge
**Aufgabe (20 Minuten):**
* Suchen Sie nach:
* `Einstein` im [Online Archivkatalog des Staatsarchivs BS](https://query.staatsarchiv.bs.ch/query/suchinfo.aspx)
* `Einstein Ehrat` im [Hochschularchiv ETH Zürich](http://archivdatenbank-online.ethz.ch/)
* Beantworten Sie die folgenden Fragen:
1. Welche Informationen enthält die Trefferliste?
2. Welche Verzeichnungsstufen sind vertreten?
3. Sind die ISAD(G)-Informationsbereiche erkennbar?
4. Decken sich die grundlegenden Informationen oder gibt es bemerkenswerte Unterschiede?
5. Worin liegen die zentralen Unterschiede zu einem Bibliothekskatalog?
* Zum Nachschlagen: [ISAD(G) Guidelines](https://www.ica.org/sites/default/files/CBPS_2000_Guidelines_ISAD(G)_Second-edition_DE.pdf)
### Datenformat: EAD
* [Encoded Archival Description](https://de.wikipedia.org/wiki/Encoded_Archival_Description) (EAD) ist ein XML-Standard
* Verschiedene Versionen: EAD2002 und EAD3 (seit 2015; aktuell ist 1.1.1 von 2019)
* Lässt viele Wahlmöglichkeiten offen, daher gibt es oft Anwendungsprofile, die genauer spezifizieren welche Werte zugelassen sind.
* Anwendungsfälle: [Archives Portal Europa](https://www.archivesportaleurope.net/de/), [Archivportal-D](https://www.archivportal-d.de), [Kalliope](https://kalliope-verbund.info)
* Einführung: [Nicolas Moretto (2014): EAD und digitalisiertes Archivgut](https://wiki.dnb.de/download/attachments/90410326/20140414_KIMWS_EAD.pdf?version=1&modificationDate=1398246420000&api=v2). Präsentation auf dem [DINI AG KIM Workshop 2014](https://wiki.dnb.de/display/DINIAGKIM/KIM+WS+2014) in Mannheim.
Note:
- Wir werden später praktisch mit EAD-Dateien arbeiten, daher hier nur diese Kurzinfo.
- Die Präsentationsfolien von Nicolas Moretto geben einen guten Überblick über EAD2002.
- Liste der Elemente [in EAD2002](https://eadiva.com/2/elements/) und [in EAD3](https://eadiva.com/elements/)
### Aktuelle Entwicklungen
* Umstieg von ISAD(G) auf RiC wird mit viel Aufwand verbunden sein, auch mit einem Systemwechsel.
* Generierung von mehr Volltexten u.a. durch Optical Character Recognition (OCR) auch für Handschriften. Automatisierte Anreicherung von Volltexten durch Named Entity Recognition.
* In Wikidata werden Online-Findmittel über Property [Archives at](https://www.wikidata.org/wiki/Property:P485) verzeichnet. Beispiel [Albert Einstein in Wikidata](https://www.wikidata.org/wiki/Q937).
* In der Schweiz gibt es eine Vernetzungsinitiative [Metagrid](https://metagrid.ch) und weitere Dienste von [histHub](https://histhub.ch), einer Forschungsplattform für die Historischen Wissenschaften.
Note:
- Literaturempfehlung: [Umfrage "Was sich Historiker*innen von Archiven wünschen"](https://dhdhi.hypotheses.org/6107)
## Installation und Konfiguration von ArchivesSpace
### Einführung in ArchivesSpace
* Open-Source-Software für Archivinformationssysteme
* 400 zahlende [Mitglieder](http://archivesspace.org/community/whos-using-archivesspace/), woraus fast 5 Vollzeitstellen finanziert werden.
* Code bei GitHub: <https://github.com/archivesspace/archivesspace>
* ArchivesSpace ist institutionell verankert bei [Lyrasis](https://en.wikipedia.org/wiki/Lyrasis), einem internationalen "nonprofit" Bibliotheksnetzwerk vorrangig aus den USA. Es gibt auch zwei weitere Unternehmen, die dazu professionellen Support anbieten.
#### Funktionen
"What ASpace does and how do we use it" ([aus Fortbildungsmaterialien der NYU](https://guides.nyu.edu/ld.php?content_id=23461999))
* System of record for archival materials. Not everything is public, or open to staff, nor is it intended to be.
* Perform core archival functions: accessioning, arrangement and description
* Aid in public services
* Record and report location holdings information; stacks management
* Manage digital objects
* Produce access tools
* Statistics gathering, prioritization, holistic planning
* Contribute to various interdepartmental processes (preservation and digitization)
#### Metadaten in ArchivesSpace
* basiert auf den Standards [DACS](https://en.wikipedia.org/wiki/Describing_Archives:_A_Content_Standard), ISAD(G) und ISAAR(CPF)
* unterstützt Import/Export in EAD, MARCXML und METS
### Exkurs zur Systemadministration
Wir haben auf unserem Server bereits Koha installiert. Gibt es Probleme wenn wir ArchivesSpace zusätzlich installieren?
* Es könnten Versions- oder Ressourcenkonflikte entstehen.
* Best Practice: Jedes System in einer eigenen Umgebung.
* Koha und ArchivesSpace vertragen sich aber zufällig gut, daher installieren wir hier ArchivesSpace einfach zusätzlich.
Note:
- Es könnte Konflikte geben, wenn die Systeme unterschiedliche Versionen der gleichen Programmiersprache (z.B. Java, PHP) oder der Datenbank (z.B. MySQL, PostgreSQL) benötigen. Es könnten auch die Ressourcen (insbesondere Arbeitsspeicher) knapp werden.
- Um den Wartungsaufwand zu reduzieren und Ressourcen zu sparen, werden üblicherwese virtuelle Maschinen oder Container eingesetzt.
### Installation ArchivesSpace
* Installation war [Aufgabe zur heutigen Sitzung](02_funktion-und-aufbau-von-bibliothekssystemen.md#Aufgaben).
* Damit ArchivesSpace verfügbar ist, muss der Prozess im Terminal laufen. Falls zwischenzeitlich geschlossen ggf. noch einmal starten.
```bash
archivesspace/archivesspace.sh
```
* Login im Staff Interface unter <http://localhost:8080/>
* Username: `admin`
* Password: `admin`
Note:
- Während Koha in der Standardinstallation so eingerichtet ist, dass es automatisch beim Systemstart zur Verfügung steht, muss ArchivesSpace in der Standardinstallation manuell gestartet werden.
- Es ist nur solange verfügbar wie der Prozess im Terminal läuft. Es handelt sich um eine Webanwendung. Im Terminal läuft die Server-Applikation. Über den Browser greifen wir darauf zu. Wenn das Terminal geschlossen wird, dann wird auch der Server beendet und die Webseite im Browser ist nicht mehr erreichbar.
### Grundkonfiguration ArchivesSpace
#### Repository anlegen
Nach dem ersten Login erscheint die Meldung:
> To create your first Repository, click the **System** menu above and then **Manage Repositories**.
Dort nutzen Sie den Button `Create Repository` um ihr Repository anzulegen.
* Notwendig sind zunächst nur `Repository Short Name` und `Repository Name`.
* Die Checkbox `Publish?` definiert, ob die Daten im "public interface" unter <http://localhost:8081> erreichbar sind.
#### Konfigurationsmöglichkeiten
* Spracheinstellung: Es gibt noch keine deutsche Übersetzung aber Spanisch, Französisch und Japanisch
* Konfiguration: <https://archivesspace.github.io/archivesspace/user/configuring-archivesspace/#Language>
* Sprachdateien: <https://github.com/archivesspace/archivesspace/tree/master/common/locales>
* Weitere Optionen: Siehe technische Dokumentation <https://archivesspace.github.io/archivesspace/user/configuring-archivesspace/>
### Bedienung
* Wir nutzen nun die zuvor diskutierten Grundlagen, um Datensätze in ArchivesSpace zu erschließen.
* Versuchen Sie bei der folgenden Gruppenarbeit intuitiv vorzugehen und tauschen Sie sich untereinander aus.
* Denken Sie an das Provenienzprinzip. Jede Ressource, die Sie verzeichnen wollen, benötigt zunächst Informationen zur Herkunft (Akzession).
#### Begrifflichkeiten
* [Accession](https://docs.google.com/document/d/11kWxbFTazB6q5fDNBWDHJxMf3wdVsp8cd7HzjEhE-ao/edit#heading=h.qp2gyscl8fra): Dokumentation der Erwerbung, wegen vertraulichen Angaben oft nicht öffentlich
* [Resource](https://docs.google.com/document/d/11kWxbFTazB6q5fDNBWDHJxMf3wdVsp8cd7HzjEhE-ao/edit#heading=h.jvn83ztmj4y4): Zentraler Nachweis auf der obersten Ebene der Verzeichnungsstufen, zum Beispiel zu einem Nachlass (kann aber auch direkt zum Objekt sein, wenn die Resource nur eine Verzeichnungsstufe hat)
* [Archival Object](https://docs.google.com/document/d/11kWxbFTazB6q5fDNBWDHJxMf3wdVsp8cd7HzjEhE-ao/edit#heading=h.nscr859g1snm): Nachweis von Objekten auf weiteren Verzeichnungsstufen (Bestand/Fonds, Serie/Series, Akte/File, Einzelstück/Item). Sie werden über "Add Child" an vorhandene Resources gehängt.
Note:
- Verlinkte Begriffe führen zum [ArchivesSpace Manual for Local Usage at NYU](https://docs.google.com/document/d/11kWxbFTazB6q5fDNBWDHJxMf3wdVsp8cd7HzjEhE-ao/edit), weil das offizielle Handbuch nur für Mitglieder zugänglich ist.
#### Übung: Datensätze erstellen
**Aufgabe (40 Minuten)**
* Aufgabe: Erstellen Sie eigene Datensätze in Ihrer ArchivesSpace Installation. Erfinden Sie dazu sinnvolle Archivdaten oder suchen Sie sich Beispieldaten (z.B. im [Hochschularchiv der ETH](http://archivdatenbank-online.ethz.ch)).
* Ziel: Ihre Datensätze erscheinen in der öffentlichen Ansicht unter <http://localhost:8081>. Machen Sie einen Screenshot und laden Sie das Bild hier in das gemeinsame Dokument.
* Hinweis: Orientieren Sie sich beim Vorgehen an der Übung der NYU: [Create Your Own Record](https://guides.nyu.edu/ld.php?content_id=23198351)
### Literatur zu ArchivesSpace
* Einführungsvideos: <https://www.youtube.com/playlist?list=PL3cxupmXL7WiXaHnpVquPrUUiLiDAMhg0>
* ArchivesSpace Wiki: <https://archivesspace.atlassian.net/wiki/spaces/ADC/>
* ArchivesSpace Manual for Local Usage at NYU: <https://docs.google.com/document/d/11kWxbFTazB6q5fDNBWDHJxMf3wdVsp8cd7HzjEhE-ao/edit>
Note:
- Das Benutzerhandbuch von ArchivesSpace steht nur zahlenden Mitgliedern zur Verfügung. Bei Open-Source-Software suchen die Communities oft nach einem Zusatzvorteil für Mitglieder, weil die Software selbst ja kostenfrei erhältlich ist. Wirklich "open" ist diese Zurückhaltung von Informationen nicht so recht.
## Marktüberblick Archivsysteme
* ArchivesSpace hat eine große Community in den USA
* Weitere Open-Source-Alternative: [Access to Memory (AtoM)](https://www.accesstomemory.org)
* Dienstleister in der Schweiz: [docuteam](https://www.docuteam.ch/atom-access-to-memory/)
* Der Markt in der Schweiz wird von den Produkten [scopeArchiv](https://www.scope.ch/de/produkteuebersicht/scopearchiv/) und [CMI AIS](https://cmiag.ch/akten-management/archivierung/ais/) (ehemals CMISTAR) dominiert.
* Für die Online-Präsentation von digitalisiertem Archivgut wird oft zusätzliche Software eingesetzt. Beispiele:
* [E-Pics Plattform der ETH Zürich](https://www.e-pics.ethz.ch) (WordPress + Canto Cumulus)
* [e-manuscripta.ch - Kooperative Präsentationsplattorm für handschriftliche Quellen](http://www.e-manuscripta.ch) (Visual Library)
Note:
- In den Archiven der ETH-Bibliothek wird CMISTAR verwendet. Im "Rich-Client" (Programm für die Mitarbeiter*innen) wird die Erschließung anhand der ISAD(G) Informationsbereiche kategorisiert. CMISTAR beinhaltet auch ein grafisches Mapping-Tool für den Import von Excel oder CSV. Das wird verwendet, um Eingaben von Hilfskräften in Excel in das System zu importieren.
### Unterschiede zwischen Bibliotheks- und Archivsystemen
* Bibliothek
* (Massen-)Medium, Benutzerinteraktion (Ausleihe)
* Software medienzentriert
* Metadatenformat: MARC21, zukünftig BIBFRAME?
* Archiv
* Entstehungszusammenhang, eher stehender, unikaler Bestand (Nutzung auf Anfrage)
* Software orientiert sich an analogen Findmitteln
* Metadatenformat: EAD, zukünftig RiC
Note:
- Herausforderung: Datenaustausch zwischen den Systemen (kommen wir später darauf zurück)
## Aufgaben
Bis zum nächsten Termin:
1. Beitrag im Lerntagebuch zu dieser Lehreinheit (3000 - 4000 Zeichen).
2. Datensätze in ArchivesSpace vervollständigen. Mindestens Accession und Resource. Beides sollte unter <http://localhost:8081> (öffentliche Ansicht) erscheinen.
3. Übung zu Import und Export (siehe unten) und dazu einen Beitrag im Lerntagebuch verfassen (1000-2000 Zeichen).
### Import und Export
ArchivesSpace bietet dateibasierten Import und Export in diversen Formaten (EAD, MARCXML, CSV) und auch eine OAI-PMH-Schnittstelle.
In den folgenden zwei Übungen werden wir EAD-Beispieldaten in ArchivesSpace importieren und anschließend in MARCXML exportieren.
#### Übung: Import
**Aufgabe (15 Minuten)**
* Beispieldaten: <https://eadiva.com/sample-ead-files/> (laden Sie die als "a raw XML file" verlinkte Datei der "American Association of Industrial Editors" herunter)
* Aufgabe: Importieren Sie Beispieldaten im Format EAD in ArchivesSpace. Vergleichen Sie (ganz grob) die Anzeige in ArchivesSpace mit der bei den Beispieldaten verlinkten HTML-Ansicht.
* Ziel: Dokumentieren Sie Ihre Erkenntnisse ~~unten im gemeinsamen Dokument.~~ in Ihrem Lerntagebuch.
* Hinweis: Die Import-Funktion finden Sie etwas versteckt unter `Create` > `Background Job` > `Import Data`
Note:
- Import kann etwas länger dauern weil,
- wir nur die mitgelieferte Datenbank (für Testzwecke) verwendet haben und keine separate MySQL-Datenbank
- EAD ein komplexes Dateiformat ist, was etwas aufwendiger auszuwerten ist (daher auch die mehreren "Cycles" in der Log-Datei)
- ArchivesSpace in der Grundeinstellung nur 1 GB RAM benutzt, siehe Dokumentation zu "Tuning": https://archivesspace.github.io/tech-docs/provisioning/tuning.html
#### Übung: Export
**Aufgabe (15 Minuten)**
* Aufgabe:
1. Exportieren Sie die von Ihnen zuvor importierten Datensätze im Format MARCXML. Speichern Sie die Datei auf der Festplatte.
2. Vergleichen Sie die exportierte MARCXML-Datei kurz mit den in ArchivesSpace vorhandenen Informationen. Ist der Export in MARCXML verlustfrei?
* Ziel: Dokumentieren Sie Ihre Erkenntnisse unten im gemeinsamen Dokument.
* Hinweis: Die Export-Funktion finden Sie etwas versteckt in der Button-Leiste bei der "Resource".
Note:
- Mappingtabellen als XLS (Stand 2013, unklar ob aktuell) stellt ArchivesSpace auf der Webseite zur Verfügung: <https://archivesspace.org/using-archivesspace/migration-tools-and-data-mapping>
- Technische Dokumentation der Konvertierung in MARCXML (falls jemand die Proogrammiersprache Ruby können sollte): <https://archivesspace.github.io/archivesspace/doc/MarcXMLConverter.html>

View File

@ -0,0 +1,138 @@
# Repository-Software für Publikationen und Forschungsdaten
* Open Access und Open Data
* Übungen mit DSpace
* Marktüberblick Repository-Software
## Open Access und Open Data
* Publikationen
* Open Access
* [Statistik zu Open-Access-Repositorien](https://v2.sherpa.ac.uk/view/repository_visualisations/1.html)
* Fokus: Zweitveröffentlichungen ("grüner Weg") und Hochschulschriften
* Forschungsdaten
* Open Data
* [Verzeichnis von Forschungsdaten-Repositorien](https://www.re3data.org)
* Fokus: Primärdaten, die bei der Forschung entstehen. Oft Daten als Anhang zu Zeitschriftenartikeln.
Note:
- Unterscheidung institutionelles Repositorium vs. Fachrepositorium
### Forschungsinformationen
* Informationen über Forschende, Drittmittelprojekte, Patente und vieles mehr.
* Ziel ist die Forschungsberichterstattung. Um die Daten zusammenzuführen und Berichte erstellen zu können, werden oft Forschungsinformationssysteme an den Universitäten eingeführt.
* Beispiel: ["Kerndatensatz Forschung" in Deutschland](https://kerndatensatz-forschung.de/version1/technisches_datenmodell/ER-Modell.html)
* Zum Stand in der Schweiz: Ackermann Krzemnicki, Sonia and Hägele, Bernd F. (2016): Die Standardisierung von Forschungsinformationen an Schweizer universitären Hochschulen. <https://edoc.unibas.ch/54788/>
### Beispiele
* [Zenodo](https://zenodo.org) (Invenio)
* [TUHH Open Research](https://tore.tuhh.de) (DSpace-CRIS)
## Übungen mit DSpace
### Einführung in DSpace
* Software geeignet für Publikationen und Forschungsdaten
* Erweiterung für Forschungsinformationen: DSpace-CRIS.
* Metadatenstandard: Qualified Dublin Core, kann aber auch mit [DataCite](https://schema.datacite.org/) Metadatenschema betrieben werden.
* DSpace 6.x: 2016 erstmalig veröffentlicht (aktuell 6.3), wird gepflegt, aber nicht mehr weiterentwickelt.
* DSpace 7.x: im August 2021 veröffentlicht (aktuell 7.1), neue Technologien im Frontend (Angular) und Backend (neue REST API), aber noch nicht voller Funktionsumfang von 6.x.
### DSpace Demo
Aus Zeitgründen keine Installation, nur Test mit öffentlich zugänglicher Demo.
DSpace 6.x Demo: <https://demo.dspace.org>
- Site Administrator: `dspacedemo+admin@gmail.com`
- Community Administrator: `dspacedemo+commadmin@gmail.com`
- Collection Administrator: `dspacedemo+colladmin@gmail.com`
- Submitter: `dspacedemo+submit@gmail.com`
- Passwort immer: `dspace`
Note:
- Sie können die XMLUI oder die JSPUI verwenden. Beide Oberflächen sind mit dem gleichen Backend verbunden.
### Übung: Communities und Collections
**Aufgabe (10 Minuten)**
* Aufgabe: Erstellen Sie eine Sub-Community der "Sample Community" und legen Sie darin eine Collection an.
* Login: `dspacedemo+commadmin@gmail.com`
* Passwort: `dspace`
* Sample Community [in XML UI](https://demo.dspace.org/xmlui/handle/10673/1) und [in JSP UI](https://demo.dspace.org/jspui/handle/10673/1)
* Ziel: Dokumentieren Sie den Link zu Ihrer Collection unten im gemeinsamen Dokument.
* Hinweise:
* Weisen Sie Rechte für den Account "Collection Administrator" zu
* [Erläuterungen in der How-To von DSpaceDirect](https://wiki.lyrasis.org/display/DSpaceDirectKB/Getting+Started+How-To#GettingStartedHowTo-Communities&Collections)
Note:
- Der Grund, warum es zusätzlich zu Collections auch noch Communities gibt, ist das Rechtemanagement. In der Community wird festgelegt wer die (ggf. mehrere zugehörige) Collections verwalten darf. Das möchte man nur an einer Stelle und nicht an jeder Collection definieren. Außerdem können ganze Communities "geharvestet" werden, also Daten einer Einrichtung über die Schnittstellen abgefragt werden.
### Übung: Einreichung und Review
**Aufgabe (20 Minuten)**
* Aufgabe: Reichen Sie ein Beispieldokument für Ihre Collection ein. Starten Sie falls nötig den Begutachtungsprozess (falls beim Anlegen der Collection aktiviert) und veröffentlichen Sie das Dokument.
* Login: `dspacedemo+colladmin@gmail.com`
* Passwort: `dspace`
* Ziel: Dokumentieren Sie den Link zu Ihrer Veröffentlichung unten im gemeinsamen Dokument.
* Hinweis: [Erläuterungen in der How-To von DSpaceDirect](https://wiki.lyrasis.org/display/DSpaceDirectKB/Getting+Started+How-To#GettingStartedHowTo-Adding/SubmittingItems).
Note:
- Der Einreichungs- und Begutachtungsprozess in DSpace ist sehr umfangreich konfigurierbar. Alle Formulare können angepasst und vereinfacht werden.
- Der Hinweis von DSpaceDirect, dass das Geld kostet, bezieht sich auf deren Hosting. Wenn Sie DSpace selbst hosten, können Sie natürlich alles selbst kostenfrei konfigurieren.
- Automatische Datenübernahme via DOIs kann auch angeboten werden, so dass nicht alle Daten manuell eingegeben werden müssen.
### Import und Export
* DSpace bietet auch dateibasierten Import, besonders relevant sind im Kontext von Repositorien aber die Schnittstellen:
* SWORD ermöglicht die Publikation in DSpace auf anderen Webseiten.
* OAI-PMH ermöglicht es externen Systemen die in DSpace verzeichneten Metadaten abzurufen.
* OAI-PMH-Schnittstelle der DSpace-Demo (Daten erscheinen dort zeitverzögert): <http://demo.dspace.org/oai/request?verb=ListSets>
* Beispiel für Portal auf Basis von OAI-PMH: Die [Bielefeld Academic Search Engine (BASE)](https://www.base-search.net/) "erntet" weltweit OAI-PMH-Schnittstellen und verzeichnet damit weit über 250 Mio. Dokumente.
Note:
- [SWORD](https://en.wikipedia.org/wiki/SWORD_(protocol)) ist eine Schnittstelle, um Publikationen in einem Repository abzuliefern. Damit kann ein Formular mit Dateiupload auf einer Webseite (außerhalb der Repository-Webseite) angeboten werden.
- Um Daten aus dem Repository auf Webseiten anzuzeigen, z.B. eine Publikationsliste, werden andere Schnittstellen wie [RSS-Feeds](https://de.wikipedia.org/wiki/RSS_(Web-Feed)) verwendet.
### Literatur zu DSpace
* Videomitschnitte der Präsentationen auf den jährlichen D/A/CH-Anwendertreffen: https://wiki.lyrasis.org/display/DSPACE/DSpace+Anwendertreffen+2021
* Weitere Demo-Installationen:
* DSpace 7.x: https://demo7.dspace.org/home (Zugangsdaten wie oben)
* DSpace 7.x mit DSpace-CRIS: https://dspacecris7.4science.cloud (nur lesend)
* Suchmaschinenoptimierung (SEO): [Abschnitt im Nutzerhandbuch von DSpace zu SEO](https://wiki.lyrasis.org/display/DSDOC7x/Search+Engine+Optimization)
## Marktüberblick Repository-Software
* Grundsätzliches zu Repositorien: <https://open-access.network/informieren/open-access-grundlagen/repositorien>
* Open Directory of Open Access Repositories (OpenDOAR)
* [Weltweit](https://v2.sherpa.ac.uk/view/repository_visualisations/1.html)
* [Schweiz](https://v2.sherpa.ac.uk/view/repository_by_country/Switzerland.default.html)
* [Open Access Repository Ranking 2015](https://web.archive.org/web/20160110005003/http://repositoryranking.org/) (via Wayback-Machine)
### Relevante Systeme in D/A/CH
Alle Open Source!
* [DSpace](https://www.dspace.org)
* [EPrints](https://www.eprints.org)
* [Fedora](http://fedorarepository.org) / [Islandora](https://islandora.ca)
* [InvenioRDM](https://invenio-software.org/products/rdm/)
* [MyCoRe](https://www.mycore.de)
* [OPUS](https://www.opus-repository.org)
## Aufgaben
Bis zum nächsten Termin:
1. Beitrag im Lerntagebuch zu dieser Lehreinheit (3000 - 4000 Zeichen)
2. Übung zur OAI-PMH-Schnittstelle und dazu einen Beitrag im Lerntagebuch verfassen (1000-2000 Zeichen)
* Laden Sie von Ihnen erstellte Daten in der DSpace-Demo über die OAI-PMH-Schnittstelle (Daten erscheinen dort zeitverzögert ca. 1 Tag)
* Achtung: Daten auf [demo.dspace.org](http://demo.dspace.org) werden jeden Samstag nachts gelöscht.
* Rufen Sie bei einer von Ihnen erstellten Community unter http://demo.dspace.org/oai/request?verb=ListSets den Link "Records" auf
* Sie finden die Daten jeweils im Kasten "Metadata".
* Kopieren Sie die Inhalte in einen Texteditor und spei chern Sie diese auf der Festplatte der virtuellen Maschine (z.B. im Ordner "Downloads")

View File

@ -0,0 +1,690 @@
# Metadaten modellieren und Schnittstellen nutzen
* Zwischenstand (Schaubild)
* Auswertung der Übung zu DSpace
* Austauschprotokolle für Metadaten (OAI-PMH, SRU)
* Metadaten über OAI-PMH harvesten mit VuFindHarvest
* XSLT Crosswalks mit MarcEdit
* Transformation von Metadaten mit OpenRefine
* Weitere Tools zur Metadatentransformation
* Nutzung von JSON-APIs
## Zwischenstand (Schaubild)
![Schaubild zu Lehrinhalten](images/schaubild-lehrinhalte.png)
Note:
- Wir haben die Demo von DSpace getestet und in der Übung Daten aus DSpace über die OAI-PMH-Schnittstelle abgerufen.
- Nun wollen wir auch die OAI-PMH-Schnittstellen von unseren lokal installierten Systemen Koha und ArchivesSpace abrufen.
- Anschließend bearbeiten wir die Daten mit marcEdit.
- Danach schauen wir uns dann noch die Software OpenRefine an und verwenden dazu weitere Beispieldaten.
## Auswertung der Übung zu DSpace
* Aufgabe war, von Ihnen erstellte Daten in der DSpace-Demo über die OAI-PMH-Schnittstelle abzurufen und auf der virtuellen Maschine zu speichern.
* Falls das nicht geklappt hat, finden Sie hier Beispieldaten: https://pad.gwdg.de/caRGeiZbTD2AyEa7VMVEug
* Achtung! Wenn Sie Ihre eigenen Daten aus DSpace verwenden wollen, müssen Sie bitte die erste Zeile durch Folgendes ersetzen:
```xml
<oai_dc:dc xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:doc="http://www.lyncode.com/xoai" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dc="http://purl.org/dc/elements/1.1/" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
```
* Ursache: Bei den von Hand aus der OAI-Schnittstelle kopierten Daten fehlen Namespace-Deklarationen. Das würde zu einem Absturz von MarcEdit führen.
## Austauschprotokolle für Metadaten (OAI-PMH, SRU)
Es gibt zahlreiche Übertragungsprotokolle im Bibliotheks- und Archivbereich. Drei davon sind besonders weit verbreitet:
* [Z39.50](https://www.loc.gov/z3950/agency/) (Library of Congress)
* [SRU](https://www.loc.gov/sru) - Search/Retrieve via URL (Library of Congress)
* [OAI-PMH](https://www.openarchives.org/pmh/) - Open Archives Initiative Protocol for Metadata Harvesting (Open Archives Initiative)
Note:
- Z39.50 ist sehr alt, aber immer noch im Einsatz. Meist wird das modernere SRU als Ergänzung angeboten.
- Während Z39.50 und SRU sich besonders für Live-Abfragen oder gezielten Datenabruf mit vielen Parametern eignet, zielt OAI-PMH vor allem auf größere Datenabzüge und regelmäßige Aktualisierungen.
- Das Schöne an SRU und OAI-PMH ist, dass die Anfragen als Internetadresse (URL) zusammengestellt werden können und direkt über den Browser ohne Zusatzsoftware aufrufbar sind.
## Metadaten über OAI-PMH harvesten mit VuFindHarvest
* Wir "ernten" (harvesten) die über die OAI-PMH-Schnittstellen angebotenen Daten.
* Dazu verwenden wir das Tool [VuFindHarvest](https://github.com/vufind-org/vufindharvest), ein OAI Harvester aus dem VuFind-Projekt.
* Vorgehen:
1. Sicherstellen, dass die OAI-PMH-Endpoints für Koha und ArchivesSpace verfügbar sind
2. Mit dem Tool die Daten abrufen und als XML auf der Festplatte speichern
Note:
- VuFind ist ein auf der Suchmaschine Apache Solr basierendes Discovery-System (wie Primo)
- VuFindHarvest ist OAI-Harvester (auch unabhängig von VuFind einsetzbar)
### OAI-PMH Endpoints
* Koha sollte noch laufen
* http://bibliothek.meine-schule.org/cgi-bin/koha/oai.pl
* Meldung `No verb supplied` ist OK
* Format: `marcxml`
* ArchivesSpace muss ggf. gestartet werden
* http://localhost:8082
* Meldung `Parameter required but no value provided` ist OK
* Format: `oai_ead`
### VuFindHarvest 4.1.0 installieren
* Die Software wird bei GitHub veröffentlicht: https://github.com/vufind-org/vufindharvest
* Sie ist in PHP geschrieben. Für die Installation wird composer (Paketverwaltung für PHP) empfohlen.
```shell
sudo apt update
sudo apt install composer php php-xml
cd ~
wget https://github.com/vufind-org/vufindharvest/archive/v4.1.0.zip
unzip v4.1.0.zip
cd vufindharvest-4.1.0
composer install
```
### Übung: Harvesting
**Aufgabe (20 Minuten)**
* Laden Sie mit VuFindHarvest die Daten aus
* a) Koha http://bibliothek.meine-schule.org/cgi-bin/koha/oai.pl im Format `marcxml`
* b) ArchivesSpace http://localhost:8082 im Format `oai_ead`
* Hinweise:
* Benutzungshinweise in der [README.md](https://github.com/vufind-org/vufindharvest#usage)
* Speichern Sie die Daten in verschiedenen Ordnern.
* Beispiel (muss abgewandelt werden):
```shell
cd ~/vufindharvest-4.1.0
php bin/harvest_oai.php --url=http://example.com/oai_server --metadataPrefix=oai_dc my_target_dir
```
### Beispieldaten
* Falls Sie die Übung zu DSpace nicht abschließen konnten oder das Harvesting von Koha und ArchivesSpace nicht geklappt hat, können Sie die Beispieldaten verwenden.
* Dokument mit den gesammelten Beispieldaten: https://pad.gwdg.de/caRGeiZbTD2AyEa7VMVEug
* Markieren Sie die XML-Daten, kopieren Sie diese in einen Text Editor auf der virtuellen Maschine und speichern Sie die Datei an einer beliebigen Stelle ab.
## XSLT Crosswalks mit MarcEdit
* Wir haben nun Daten in verschiedenen Formaten (MARC21-XML, EAD und DC) vorliegen.
* Nun werden wir diese einheitlich in MARC21-XML konvertieren.
### Crosswalks? XSLT?
* Crosswalks
* Gängiger Begriff, um die Konvertierung von einem Metadatenstandard in einen anderen zu beschreiben.
* Beispiel: Dublin Core zu MARC21.
* Der "Crosswalk" beinhaltet Regeln wie Elemente und Werte zugeordnet werden (sog. Mapping).
* Im Idealfall verlustfrei, aber meist keine 1:1-Zuordnung möglich.
* XSLT
* Programmiersprache zur Transformation von XML-Dokumenten (W3C Empfehlung, 1999)
* Literaturempfehlung für Einstieg in XSLT: <https://programminghistorian.org/en/lessons/transforming-xml-with-xsl>
### MarcEdit 7 installieren
* MarcEdit ist eine kostenlos nutzbare Software aber nicht Open Source (siehe [Lizenz](https://marcedit.reeset.net/marcedit-end-user-license-agreement))
* Sie ist die meistgenutzte Zusatzsoftware für die Arbeit mit MARC21.
* Offizielle Webseite: <https://marcedit.reeset.net>
* Installation von Mono (MarcEdit ist in .NET geschrieben und benötigt unter Linux diese Laufzeitumgebung) und des Unicode Fonts "Noto":
```shell
sudo apt install mono-complete fonts-noto
```
* Installation von MarcEdit:
```shell
cd ~
wget https://marcedit.reeset.net/software/marcedit7/marcedit7.run
chmod +x marcedit7.run
mkdir ~/marcedit
./marcedit7.run --target ~/marcedit
```
### MarcEdit konfigurieren
* Der Installer hat das Programm MarcEdit im Startmenü (unten links) registriert. Starten Sie darüber das Programm.
* Achtung: Die Voreinstellungen in der Linux-Version von MarcEdit sind fehlerhaft. Sie können wie folgt korrigiert werden:
* MARC Tools
* Button Tools / Edit XML Function List
* Für die benötigten Funktionen (EAD=>MARC und OAIDC=>MARCXML):
* Im Menü "Defined Functions" die gewünschte Funktion auswählen und Modify klicken
* Unter XSLT/XQuery Path `XSLT\` durch `xslt/` ersetzen
* Anschließend "Save" und für nächste Funktion wiederholen
### XSLT Crosswalks anwenden
**Aufgabe (20 Minuten)**
* Konvertieren Sie einige Daten aus ArchivesSpace (EAD) und aus DSpace (OAIDC) nach MARC21XML. Speichern Sie die Daten auf der Festplatte.
* Im Auswahldialog für die zu konvertierenden Dateien achten Sie bitte darauf, dass der Filter auf "All Files (\*.\*)" gesetzt ist.
* Es gibt keine direkte Transformation von EAD zu MARC21XML, Sie benötigen also zwei Schritte:
1. EAD -> MARC
2. MARC21 -> MARC21XML
* Prüfen Sie grob, ob die konvertierten Daten korrekt aussehen.
* Anleitung für "XML Conversion" mit MarcEdit von der Unibibliothek aus Illinois: <https://guides.library.illinois.edu/c.php?g=463460&p=3168159>
Note:
- Von MarcEdit verwendete XSLT Dateien liegen auch hier: <https://github.com/reeset/marcedit_xslt_files> und <https://github.com/reeset/marcedit-xslts>
### Zur Vertiefung
**Optionale Aufgabe (2 Stunden)**
* Bearbeiten Sie die [Lehrmaterialien von Library Carpentry zu MarcEdit](https://librarycarpentry.org/lc-marcedit/01-introduction/index.html)
## Transformation von Metadaten mit OpenRefine
### Einführung in OpenRefine
* Claim
* Einsatzbereiche
* Anwender\*innen
* Formate
* Einsatzmöglichkeiten
* Historie
#### Claim von OpenRefine
> "A free, open source, powerful tool for working with messy data"
* grafische Oberfläche, die einer klassischen Tabellenverarbeitungssoftware ähnelt
* dient der Analyse, Bereinigung, Konvertierung und Anreicherung von Daten
* wird in der Regel lokal auf einem Computer installiert und über den Browser bedient
#### Einsatzbereiche
![OpenRefine 2020 Survey Results: Tasks](https://raw.githubusercontent.com/OpenRefine/openrefine.github.com/master/images/2020survey/4.png)
Note:
- Aus Umfrage vom OpenRefine-Team, n = 178
#### Anwender\*innen
![OpenRefine 2020 Survey Results: Communities](https://raw.githubusercontent.com/OpenRefine/openrefine.github.com/master/images/2020survey/1.png)
#### Von OpenRefine unterstützte Formate
* Besonders geeignet für tabellarische Daten (CSV, TSV, XLS, XLSX und auch TXT mit Trennzeichen oder festen Spaltenbreiten)
* Einfaches "flaches" XML (z.B. MARCXML) oder JSON ist mit etwas Übung noch relativ einfach zu modellieren
* Komplexes XML mit Hierarchien (z.B. EAD) ist möglich, aber nur mit Zusatztools
* Kann auch [in Kombination mit MarcEdit](https://blog.reeset.net/archives/1873) für Analyse und Transformation von MARC21 benutzt werden
#### Einsatzmöglichkeiten von OpenRefine
* Exploration von Datenlieferungen
* Vereinheitlichung und Bereinigung (zur Datenqualität in der Praxis siehe Präsentation von Peter Király ["Validating 126 million MARC records"](https://docs.google.com/presentation/d/e/2PACX-1vRU4J_rln00UVD7pNPT0_02NOad0HfSk_UKqRI0v29y8QkMAplEDlyjc0Ot_VE_paV6WBW29Fh_V-iN/pub))
* Abgleich mit Normdaten ("Reconciliation") in Wikidata, GND und VIAF
* Für lokalen Einsatz ausgelegt (Installation auf Webservern und Automatisierung möglich, aber nur mit Zusatzsoftware)
#### Historie
<https://github.com/OpenRefine/OpenRefine/graphs/contributors>
Note:
- 2010-05: Freebase Gridworks
- 2011-12-11: Google Refine 2.5
- 2015-04-30: OpenRefine 2.6 rc1
- 2017-06-18: OpenRefine 2.7
- 2020-09-06: OpenRefine 3.4
- 2021-11-07: OpenRefine 3.5.0
### Installation OpenRefine 3.5.0
1. Die OpenRefine-Version für Linux herunterladen
```shell
cd ~
wget https://github.com/OpenRefine/OpenRefine/releases/download/3.5.0/openrefine-linux-3.5.0.tar.gz
```
2. Das Tar-Archiv entpacken
```shell
tar -xzf openrefine-linux-3.5.0.tar.gz
```
3. In den entpackten Ordner wechseln und dort im Terminal den Befehl "./refine" aufrufen
```shell
cd ~/openrefine-3.5.0
./refine
```
4. Im Firefox-Browser auf der virtuellen Maschine die Adresse http://localhost:3333 aufrufen.
Note:
- OpenRefine benötigt JAVA. Das haben wir schon auf unserer virtuellen Maschine, weil wir es für ArchivesSpace installiert hatten.
- `./` ist unter Linux eine Abkürzung für "in diesem Verzeichnis". Einfach nur `refine` reicht hier nicht aus, weil das Terminal dann nicht sicher weiß, ob Sie einen systemweit installierten Befehl `refine` oder die Datei `refine` im aktuellen Verzeichnis meinen. Daher muss zum Ausführen von Dateien im selben Verzeichnis das `./` vorangestellt werden.
### Übung Library Carpentry Lesson
* In den vorigen Semestern haben wir das Kennenlernen von OpenRefine als Hausaufgabe aufgegeben. Das ist wegen dem Ersatztermin diesmal nicht möglich.
* Wir gehen deshalb nun ein paar Basisfunktionen gemeinsam durch, damit Sie einen Eindruck von der Software erhalten.
* Bei Interesse können Sie die [Lehrmaterialien von Library Carpentry zu OpenRefine](https://librarycarpentry.org/lc-open-refine/) (ca. 4 Stunden) zur Vertiefung durchgehen.
* Anschließend nutzen wir OpenRefine, um weitere Daten in MARCXML zu konvertieren.
#### Beispieldaten laden
* Create Project > Web Addresses (URL)
* https://raw.githubusercontent.com/LibraryCarpentry/lc-open-refine/gh-pages/data/doaj-article-sample.csv
* Automatisch erkannte Einstellungen für den Import können so belassen werden.
* Mit Button `Create Project` oben rechts den Import starten.
#### Vorführung von Basisfunktionen
1. Spalte Language > Facet > Text Facet
2. Spalte Authors > Edit cells > Split multi-valued cells... > Separator: |
3. Spalte Authors > Edit cells > Cluster and edit...
4. Spalte Authors > Edit cells > Join multi-valued cells... > Separator: |
#### Kleine Fingerübungen
1. Spalte Licence > Facet > Text facet
* Was ist die am häufigsten vergebene Lizenz
* CC BY (954x)
* Wieviele Artikel haben keine Lizenz?
* 6
2. Spalte Publisher > Facet > Text facet
* Warum erscheint MDPI AG zweimal?
* Eingabe einmal mit 1 Leerschlag, und einmal mit 2
* Wie lässt sich das korrigieren?
* Edit, Leerzeichen löschen und Apply klicken
* Cluster -> merge
#### Vorführung Reconciliation
* Ziel: Über die ISSN Informationen zur Zeitschrift ergänzen
* Spalte Citation > Edit column > Add column based on this column...
* Name: Journal
* Expression: `value.split(",")[0]`
* Spalte Journal > Reconcile > Start reconciling
* Wikidata reconci.link (en) auswählen
* links "Reconcile against no particular type" auswählen
* rechts "ISSNs" aktivieren und in Textfeld ISSN eingeben und P236 anklicken
* Spalte Journal > Edit column > Add columns from reconciled values...
* official website (P856)
* configure: Limit auf 1 setzen
### Übung: CSV nach MARCXML mit OpenRefine
* Wir nutzen die Funktion [Templating Exporter](https://docs.openrefine.org/manual/exporting#templating-exporter). Diese findet sich oben rechts im Menü Export > Templating
* Beschreibung des MARC21 Formats für bibliografische Daten mit Liste der Felder: <https://www.loc.gov/marc/bibliographic/>
* Beispieldatei der Library of Congress für MARC21 mit mehreren Dokumenten: <https://www.loc.gov/standards/marcxml/xml/collection.xml>
Note:
- Das Vorgehen ist ähnlich wie bei XSLT Crosswalks, nur dass das "Template" hier direkt bearbeitet werden kann und nicht bereits fest steht, wie bei MarcEdit.
- OpenRefine verwendet eine eigene Template-Sprache (GREL) statt XSLT.
#### Voraussetzung für die Übung
* OpenRefine (lokal oder auf dem Server)
* Ein Projekt mit den Beispieldaten aus der Library Carpentry Lesson.
* Schnell neu zu erstellen mit: Create Project > Web Addresses (URL)
* https://raw.githubusercontent.com/LibraryCarpentry/lc-open-refine/gh-pages/data/doaj-article-sample.csv
#### Vorlage als Ausgangsbasis
* Prefix:
```xml
<collection xmlns="http://www.loc.gov/MARC21/slim">
```
* Row Separator: (Zeilenumbruch)
* Suffix:
```xml
</collection>
```
* Row Template:
```xml
<record>
<leader> nab a22 uu 4500</leader>
<controlfield tag="001">{{cells['URL'].value.replace('https://doaj.org/article/','').escape('xml')}}</controlfield>
<datafield tag="022" ind1=" " ind2=" ">
<subfield code="a">{{cells['ISSNs'].value.escape('xml')}}</subfield>
</datafield>
<datafield tag="100" ind1="0" ind2=" ">
<subfield code="a">{{cells['Authors'].value.split('|')[0].escape('xml')}}</subfield>
</datafield>
<datafield tag="245" ind1="0" ind2="0">
<subfield code="a">{{cells["Title"].value.escape('xml')}}</subfield>
</datafield>{{
forEach(cells['Authors'].value.split('|').slice(1), v ,'
<datafield tag="700" ind1="0" ind2=" ">
<subfield code="a">' + v.escape('xml') + '</subfield>
</datafield>')
}}
</record>
```
#### Aufgabe 1: "Reverse Engineering"
* Beschreiben Sie anhand des Vergleichs der Ausgangsdaten mit dem Ergebnis mit ihren eigenen Worten welche Transformationen für die jeweiligen Felder durchgeführt wurden.
* Versuchen Sie die Aufgabe in der Gruppenarbeit zunächst einzeln zu lösen (10 min) und diskutieren Sie dann in der Gruppe.
* Dokumentieren Sie abschließend bitte hier das Gruppenergebnis.
#### Aufgabe 2: Template ergänzen
* Suchen Sie für weitere Spalten in den DOAJ-Daten die Entsprechung in MARC21: <https://www.loc.gov/marc/bibliographic/>
* Erstellen Sie geeignete Regeln im Template, um die Daten der gewählten Spalten in MARC21 zu transformieren.
* Dokumentieren Sie das gewählte MARC21-Feld und den zugehörigen Abschnitt aus dem Template.
* Wenn die Spalten leere Zellen enthalten, dann Funktion `forNonBlank()` nutzen. Beispiel:
```xml
{{
forNonBlank(
cells['DOI'].value,
v,
'<datafield tag="024" ind1="7" ind2=" ">
<subfield code="a">' + v.escape('xml') + '</subfield>
<subfield code="2">doi</subfield>
</datafield>',
''
)
}}
```
##### Lösung aus der Vorführung
```
<record>
<leader> nab a22 uu 4500</leader>
<controlfield tag="001">{{cells['URL'].value.replace('https://doaj.org/article/','').escape('xml')}}</controlfield>
<datafield tag="022" ind1=" " ind2=" ">
<subfield code="a">{{cells['ISSNs'].value.escape('xml')}}</subfield>
</datafield>
<datafield tag="100" ind1="0" ind2=" ">
<subfield code="a">{{cells['Authors'].value.split('|')[0].escape('xml')}}</subfield>
</datafield>
<datafield tag="245" ind1="0" ind2="0">
<subfield code="a">{{cells["Title"].value.escape('xml')}}</subfield>
</datafield>
{{forEach(cells['Subjects'].value.split("|"), v,
'<datafield tag="650" ind1="0" ind2="4">
<subfield code="a">' + v.escape('xml') + '</subfield>
</datafield>' + '\n').join('')}}
{{
forEach(cells['Authors'].value.split('|').slice(1), v ,'
<datafield tag="700" ind1="0" ind2=" ">
<subfield code="a">' + v.escape('xml') + '</subfield>
</datafield>')
}}
</record>
```
<record>
<leader> nab a22 uu 4500</leader>
<controlfield tag="001">{{cells['URL'].value.replace('https://doaj.org/article/','').escape('xml')}}</controlfield>
<datafield tag="022" ind1=" " ind2=" ">
<subfield code="a">{{cells['ISSNs'].value.escape('xml')}}</subfield>
</datafield>
<datafield tag="100" ind1="0" ind2=" ">
<subfield code="a">{{cells['Authors'].value.split('|')[0].escape('xml')}}</subfield>
</datafield>
<datafield tag="245" ind1="0" ind2="0">
<subfield code="a">{{cells["Title"].value.escape('xml')}}</subfield>
</datafield>
{{forEach(cells['Subjects'].value.split("|"), v,
'<datafield tag="650" ind1="0" ind2="4">
<subfield code="a">' + v.escape('xml') + '</subfield>
</datafield>' + '\n').join('')}}
{{
forEach(cells['Authors'].value.split('|').slice(1), v ,'
<datafield tag="700" ind1="0" ind2=" ">
<subfield code="a">' + v.escape('xml') + '</subfield>
</datafield>')
}}
</record><record>
<leader> nab a22 uu 4500</leader>
<controlfield tag="001">{{cells['URL'].value.replace('https://doaj.org/article/','').escape('xml')}}</controlfield>
<datafield tag="022" ind1=" " ind2=" ">
<subfield code="a">{{cells['ISSNs'].value.escape('xml')}}</subfield>
</datafield>
<datafield tag="100" ind1="0" ind2=" ">
<subfield code="a">{{cells['Authors'].value.split('|')[0].escape('xml')}}</subfield>
</datafield>
<datafield tag="245" ind1="0" ind2="0">
<subfield code="a">{{cells["Title"].value.escape('xml')}}</subfield>
</datafield>
{{forEach(cells['Subjects'].value.split("|"), v,
'<datafield tag="650" ind1="0" ind2="4">
<subfield code="a">' + v.escape('xml') + '</subfield>
</datafield>' + '\n').join('')}}
{{
forEach(cells['Authors'].value.split('|').slice(1), v ,'
<datafield tag="700" ind1="0" ind2=" ">
<subfield code="a">' + v.escape('xml') + '</subfield>
</datafield>')
}}
</record>
#### Aufgabe 3: Validieren mit xmllint
* Wir exportieren das Gesamtergebnis als XML-Datei.
* Tipp: Firefox speichert Datei im Downloads-Ordner als .txt. Ordner Downloads aufrufen und Ende umbenennen in .xml
* Für die Validierung können Sie das Programm `xmllint` verwenden, das unter Ubuntu vorinstalliert ist.
* Zum Abgleich gegen das offizielle Schema von MARC21 laden wir dieses (XSD) zunächst herunter.
```shell
cd ~/Downloads
wget https://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd
xmllint doaj-article-sample-csv.xml --noout --schema MARC21slim.xsd
```
Note:
- Wenn Sie für das Projekt in OpenRefine nicht den vorgeschlagenen Namen verwendet haben, heißt die gespeicherte Datei bei Ihnen anders.
#### OpenRefine beenden
* Im Terminalfenster `STRG` + `C` drücken
* Wenn wieder ein blinkender Cursor erscheint, kann das Terminalfenster geschlossen werden mit dem Befehl `exit`
## Aufgaben
Bis zum nächsten Termin:
1. Beitrag im Lerntagebuch zu dieser Lehreinheit (3000 - 4000 Zeichen)
2. Installation VuFind (siehe unten) bitte möglichst frühzeitig, damit wir bei Problemen noch unterstützen können
3. Übung "Konfiguration Suche und Facetten" (siehe unten) und dazu einen Beitrag im Lerntagebuch verfassen (1000-2000 Zeichen)
### Installation VuFind
#### Installation VuFind 8.0.2
Installation nach offizieller Anleitung für VuFind unter Ubuntu: <https://vufind.org/wiki/installation:ubuntu>
Es folgen die relevanten Auszüge und Hinweise/Erklärungen dazu.
##### VuFind on Ubuntu
> These instructions assume that you are starting with a clean installation of Ubuntu. If you already have an Ubuntu server, you will be able to skip some steps, but you may have to reconfigure some existing software.
Zur Erinnerung: Best Practice ist die Installation von einer Anwendung pro Server (durch Virtualisierung und Container heute einfach möglich).
##### Version Requirements
> These instructions were most recently tested on Ubuntu 20.04 (...)
Gut für uns, weil wir für unsere virtuelle Maschine Ubuntu 20.04 LTS verwenden.
##### Installing VuFind from the DEB Package
> The easiest way to get VuFind up and running is to install it from the DEB package.
VuFind stellt ein Installationspaket bereit. Unter Linux gibt es viele verschiedene Formate für Installationspakete. Für Ubuntu und Debian gibt es DEB, für Fedora und SUSE beispielsweise RPM. Wir starten die Installation wie vorgegeben:
```shell
wget https://github.com/vufind-org/vufind/releases/download/v8.0.2/vufind_8.0.2.deb
sudo dpkg -i vufind_8.0.2.deb
```
Es erscheint eine Fehlermeldung, dass noch nicht alle von VuFind benötigten Pakete installiert sind. Zunächst aktualisieren wir das Paketverzeichnis (Nachtrag 14.12.):
```shell
sudo apt-get update
```
Dann lassen wir die benötigten Pakete mit installieren:
```shell
sudo apt-get install -f
```
##### Important Notes / Database Issues
Hier ist ein Fehler in der Anleitung. Ubuntu 20.04 wird mit MariaDB ausgeliefert und nicht mit MySQL. Für uns ist daher "Case 4 - MariaDB" relevant.
##### MariaDB Passwort für root
> If you are using a distribution that includes MariaDB instead of MySQL, you will not be prompted to set a root password during installation. Instead, you should run “sudo /usr/bin/mysql_secure_installation” to properly set up security.
```shell
sudo /usr/bin/mysql_secure_installation
```
* Das aktuelle Passwort ist leer (Enter drücken).
* Neues Passwort vergeben (und merken!).
* Die voreingestellten Antworten sind OK (alle Fragen können mit Enter bestätigt werden).
##### MariaDB Zugriff auf root erlauben
> (...) you may also need to disable the root account's “unix_socket” plugin, which prevents regular logins. You can do this by logging in with “sudo mysql -uroot -p” and then running "UPDATE mysql.user SET plugin='' WHERE User='root'; FLUSH PRIVILEGES;"
Der im Zitat beschriebene Weg würde funktionieren. Einfacher ist die Eingabe der SQL-Befehle als Einzeiler:
```shell
sudo mysql -uroot -p -e "UPDATE mysql.user SET plugin='' WHERE User='root'; FLUSH PRIVILEGES;"
```
##### Important Notes / (Ende)
> You may want to restart your system one more time to be sure all the new settings are in place, or at least make sure appropriate environment variable settings are loaded by running: `source /etc/profile`
Ein Neustart ist in unserem Fall nicht erforderlich. Es reicht aus, den genannten Befehl einzugeben:
```shell
source /etc/profile
```
##### Abweichend von der Installationsanleitung: Dateirechte anpassen
* Wir starten Solr gleich "von Hand", d. h. mit den Rechten des Accounts, mit dem wir gerade an der VM angemeldet sind. Die VuFind-Installation sieht jedoch vor, mit den Rechten des ersten regulären Accounts gestartet zu werden.
* Wir übertragen diese Rechte also nun auf unseren Account und belassen die Rechte für das Cache- und das Config-Verzeichnis beim Account des Webservers (www-data).
```shell
sudo chown -R $USER:$GROUP /usr/local/vufind
sudo chown -R www-data:www-data /usr/local/vufind/local/cache
sudo chown -R www-data:www-data /usr/local/vufind/local/config
```
##### Configuring and starting VuFind / Start solr
```shell
/usr/local/vufind/solr.sh start
```
Die Warnungen zu den Limits können erstmal ignoriert werden. In der Doku von VuFind ist beschrieben, wie sich das korrigieren ließe: <https://vufind.org/wiki/administration:starting_and_stopping_solr>
##### Configuring and starting VuFind / Configure VuFind
> Open a web browser, and browse to this URL: <http://your-server-name/vufind/Install/Home> (Replace “your-server-name” with the address you wish to use to access VuFind; replace “vufind” with your custom base path if you changed the default setting during installation).
Wir haben keinen Domainnamen. Daher verwenden wir `localhost`. Öffnen Sie den Browser in der virtuellen Maschine (Linux) und rufen Sie die folgende Adresse auf:
http://localhost/vufind/Install/Home
##### Configuring and starting VuFind / Auto-Configuration
> If installation was successful, you should now see an Auto Configure screen. Some items on the list will be marked “Failed” with “Fix” links next to them. Click on each Fix link in turn and follow the on-screen instructions. (...) After an issue is successfully resolved, you can click the “Auto Configure” breadcrumb to go back to the main list and proceed to the next problem.
Die meisten Punkte können ohne weitere Angaben "gefixt" werden. Nur die beiden Punkte Database und ILS erfordern weitere Angaben.
##### Configuring and starting VuFind / Auto-Configuration / Database
Bei der Datenbank muss ein neues Passwort vergeben sowie das zuvor oben im Abschnitt "MariaDB Passwort für root" eingegeben werden.
##### Configuring and starting VuFind / Auto-Configuration / ILS
Wir haben kein Bibliothekssystem, daher wählen wir NoILS. Dann wird aber trotzdem noch "Failed" angezeigt und wenn wir nochmal auf "Fix" klicken erscheint die folgende Meldung:
> (...) You may need to edit the file at /usr/vufind/local/config/vufind/NoILS.ini
1. Datei im Texteditor (gedit) mit Administratorrechten öffnen
```shell
sudo gedit /usr/local/vufind/local/config/vufind/NoILS.ini
```
2. In Zeile 3 `ils-offline` in `ils-none` ändern und speichern.
##### Weitere Sicherheitseinstellungen
* Die in den Abschnitten [Locking Down Configurations](https://vufind.org/wiki/installation:ubuntu#locking_down_configurations) und [4. Secure your system](https://vufind.org/wiki/installation:ubuntu#secure_your_system) beschriebenen Einstellungen benötigen wir für unsere Testinstallation nicht.
#### Fehlerbehebung
Falls etwas schief geht, können die folgenden Befehle helfen die Installation teilweise oder ganz zurückzusetzen.
##### Fall 1: Auto Configuration ist nicht mehr erreichbar
* Problem: Die Seite "Auto Configuration" unter http://localhost/vufind/Install/Home war schon einmal aufrufbar, aber kann nun nicht mehr geladen werden.
* Ursache: Die Konfiguration ist defekt und kann von VuFind nicht mehr gelesen werden.
* Lösung:
* Die lokale Konfiguration (im Verzeichnis /usr/local/vufind/local/) manuell löschen.
```shell
sudo rm /usr/local/vufind/local/config/vufind/config.ini
```
* Datenbank und Nutzer löschen (bei der folgenden Abfrage das Root-Passwort für MariaDB eingeben, das oben festgelegt wurde)
```shell
sudo mysql -uroot -p -e "DROP DATABASE IF EXISTS vufind; DROP USER IF EXISTS vufind@localhost;"
```
* Danach die Seite "Auto Configuration" aufrufen und die Konfiguration erneut versuchen.
##### Fall 2: Auto Configuration kann gar nicht aufgerufen werden
* Problem: Die Seite "Auto Configuration" http://localhost/vufind/Install/Home kann nicht aufgerufen werden oder liefert nur eine leere weiße Seite zurück.
* Ursache: Bei der Installation ist etwas schief gegangen.
* Lösung:
* Installation von VuFind vollständig löschen
```shell
sudo dpkg -P vufind
```
```shell
sudo rm -rf /usr/local/vufind
sudo rm /etc/apache2/conf-enabled/vufind.conf
```
* Datenbank und Nutzer löschen (bei der folgenden Abfrage das Root-Passwort für MariaDB eingeben, das oben festgelegt wurde)
```shell
sudo mysql -uroot -p -e "DROP DATABASE IF EXISTS vufind; DROP USER IF EXISTS vufind@localhost;"
```
* Danach Installation noch einmal ganz von vorne beginnen. Dabei Befehle Zeile für Zeile eingeben und auf Fehlermeldungen achten.
##### Fall 3: Root-Passwort für MariaDB vergessen
* Problem: Sie haben das Root-Passwort für MariaDB vergessen und können daher weder die "Auto Configuration" abschließen noch von vorne beginnen, weil sie die Datenbank von VuFind nicht löschen können.
* Fehlerbeschreibung: Der Aufruf der Befehle beginnend mit `sudo mysql -uroot -p` schlägt bei der Passworteingabe fehl.
* Lösung: Aus Sicherheitsgründen ist das Zurücksetzen des Root-Passworts für MariaDB etwas komplizierter. Folgen Sie diesem Tutorial bei Digital Ocean: [How To Reset Your MySQL or MariaDB Root Password on Ubuntu 20.04](https://www.digitalocean.com/community/tutorials/how-to-reset-your-mysql-or-mariadb-root-password-on-ubuntu-20-04)
#### Testimport
* Ohne Inhalte lässt sich VuFind schlecht erproben. Daher laden wir zunächst ein paar Daten in das System.
* VuFind liefert für Tests einige Dateien mit. Wir laden einige davon im MARC21-Format.
```shell
/usr/local/vufind/import-marc.sh /usr/local/vufind/tests/data/journals.mrc
/usr/local/vufind/import-marc.sh /usr/local/vufind/tests/data/geo.mrc
/usr/local/vufind/import-marc.sh /usr/local/vufind/tests/data/authoritybibs.mrc
```
* Anschließend sollten in der Suchoberfläche unter <http://localhost/vufind> ca. 250 Datensätze enthalten sein.
### Übung: Konfiguration Suche und Facetten
* Schauen Sie sich das offizielle Einführungsvideo [Configuring Search and Facet Settings](https://www.youtube.com/watch?v=qFbW8u9UQyM&list=PL5_8_wT3JpgE5rv38PwE2ulKlgzBY389y&index=4) an.
* Ein Transkript ist auch auf der Seite <https://vufind.org/wiki/videos:configuring_search_and_facet_settings> verfügbar.
* Versuchen Sie ausgewählte Inhalte des Videos in Ihrer Installation nachzuvollziehen.
Note:
- Um die Bearbeitung der im Video benannten Konfigurationsdateien (.ini) zu erleichtern, können Sie die Dateiberechtigungen wie folgt ihrem Account zuordnen. Wir hatten diese für die Auto-Configuration beim Webserver (www-data) belassen.
```shell
sudo chown -R $USER:$GROUP /usr/local/vufind/local/config
```

View File

@ -0,0 +1,159 @@
# Suchmaschinen und Discovery-Systeme
* Installation und Konfiguration von VuFind
* Funktion von Suchmaschinen am Beispiel von Solr
* Übung zur Datenintegration
* Marktüberblick Discovery-Systeme
* Zwischenfazit
## Installation und Konfiguration von VuFind
* VuFind Internetseite: <https://vufind.org>
* VuFind Code bei GitHub: <https://github.com/vufind-org/vufind>
* Deutsche VuFind Anwendergemeinschaft: <https://vufind.de>
* Präsentation “10 Jahre VuFind” (2017): <https://felixlohmeier.de/slides/2017-09-28_vufind-anwendertreffen-keynote.html>
* VuFind-Installationen weltweit: <https://vufind.org/wiki/community:installations>
* Beispiel TU Hamburg: <https://katalog.tub.tuhh.de>
* Beispiel UB Leipzig: <https://katalog.ub.uni-leipzig.de>
### Installation VuFind 8.0.2
* Installation war [Aufgabe zur heutigen Sitzung](05_metadaten-modellieren-und-schnittstellen-nutzen.md#Aufgaben).
### Konfiguration Suche und Facetten
* Testweise konfigurieren war [Aufgabe zur heutigen Sitzung](05_metadaten-modellieren-und-schnittstellen-nutzen.md#Aufgaben).
## Funktion von Suchmaschinen am Beispiel von Solr
* Zur Einordnung von Solr
* Sichtung von Solr in VuFind
### Zur Einordnung von Solr
* Solr ist zusammen mit Elasticsearch quasi "Industriestandard".
* Üblicherweise sollte vor dem Import der Daten in einem Schema festgelegt werden welche Felder existieren und welche Datentypen diese beinhalten dürfen.
* Solr hat zwar eine integrierte Suchoberfläche, aber diese ist nur zu Demo-Zwecken gedacht.
* Das Discovery-System VuFind basiert auf Solr (ebenso wie viele kommerzielle Lösungen wie z.B. Ex Libris Primo).
### Suchindex (Solr) oder Datenbank (MySQL)?
| Solr | MySQL |
| ------------------------ | ----------------------- |
| flache Dokumente | relationale Datensätze |
| lexikalische Suche | reiner Glyphenvergleich |
| keine Konsistenzprüfung | Transaktionssicherheit |
| statische Daten | veränderliche Daten |
| -> **Retrieval** (Suche) | -> **Storage** (CRUD) |
* [CRUD](https://de.wikipedia.org/wiki/CRUD): **C**reate, **R**ead, **U**pdate, **D**elete
### Sichtung von Solr in VuFind
* Administrationsoberfläche: <http://localhost:8983>
* Bibliografische Daten im Index "biblio": <http://localhost:8983/solr/#/biblio>
* Technische Suchoberfläche in Solr für Index "biblio": <http://localhost:8983/solr/#/biblio/query>
* Schema des Index "biblio": <http://localhost:8983/solr/#/biblio/schema>
* Erläuterung der VuFind-Felder in VuFind Doku: <https://vufind.org/wiki/development:architecture:solr_index_schema>
Note:
- Ggf. müssen Sie Solr neustarten, falls Sie zwischenzeitlich Ihre VM neu gebootet haben:
```shell
/usr/local/vufind/solr.sh start
```
### Übung: Suche in VuFind vs. Suche in Solr
* Suchen in VuFind: http://localhost/vufind
* Beispielsweise nach `psychology`
* Suchen in Admin-Oberfläche von Solr: http://localhost:8983/solr/#/biblio/query
* im Feld q mit Feldname:Suchbegriff. Beispiel: `allfields:psychology`
* unten links Button "Execute Query"
* Parallel Logdatei von Solr anschauen in einem Terminal
```shell
less +F /usr/local/vufind/solr/vufind/logs/solr.log
```
* Notieren Sie Unterschiede und Auffälligkeiten im gemeinsamen Dokument
Note:
- Das Programm `less` kann bei Bedarf im Terminal beendet werden mit der Tastenkombination `STRG` + `C` (für interrupt) und dann der Taste `q` (für quit).
### Literatur zu Solr
* Das offizielle Handbuch zu Solr beinhaltet ein gutes Tutorial (ca. 2 Stunden): <https://lucene.apache.org/solr/guide/8_7/solr-tutorial.html>
## Übung zur Datenintegration
Ziel: Import der mit MarcEdit und OpenRefine konvertierten Daten aus Koha, ArchivesSpace, DSpace und DOAJ in VuFind
### Testdaten löschen
Quelle: https://vufind.org/wiki/indexing:re-indexing
```shell
/usr/local/vufind/solr.sh stop
rm -rf /usr/local/vufind/solr/vufind/biblio/index /usr/local/vufind/solr/vufind/biblio/spell*
/usr/local/vufind/solr.sh start
```
### Aufgabe für die Gruppenarbeit
* Importieren Sie alle in MARCXML konvertierten Daten. Gehen Sie dabei wie folgt vor:
1. Laden und entpacken Sie [die Beispieldaten](https://bain.felixlohmeier.de/data/vufind-testdaten.zip). Gerne können Sie zusätzlich Ihre selbst in MARCXML konvertierten Daten verwenden.
* Wenn Sie nach Klick auf den Downloadlink das Programm "Archive Manager" auswählen, können Sie die enthaltenen Verzeichnisse und Dateien bequem über den Button "Extract" in ein beliebiges Verzeichnis speichern.
* Wir gehen im Folgenden vom Verzeichnis `Downloads` aus.
2. Bearbeiten Sie vor dem Import die Datei `marc_local.properties` um den Daten eine "collection" zuzuweisen.
```shell
gedit /usr/local/vufind/import/marc_local.properties
```
3. Starten Sie das Importscript für die erste Datenquelle. Beispiel für Koha:
```shell
for f in ~/Downloads/koha/*.xml; do /usr/local/vufind/import-marc.sh $f; done
```
4. Wiederholen Sie die Schritte 2 und 3 für die übrigen Datenquellen.
* Achtung: Der Import der Beispieldaten von ArchivesSpace und DSpace schlägt fehl. Finden Sie die Ursache.
* Fügen Sie am Ende der Übung einen Screenshot der Trefferliste einer "leeren" Suche in das gemeinsame Dokument ein.
Note:
- Die Beispieldaten umfassen die in den vergangenen Lehreinheiten mit MarcEdit und OpenRefine prozessierten Daten sowie den Export aus Koha. Wir stellen Sie hier bereit, damit Sie einheitliche Daten zur Verfügung haben auch wenn bei den vorherigen Aufgaben etwas durcheinandergekommen ist.
## Marktüberblick Discovery-Systeme
### International (kommerziell)
* Jährlicher Library Systems Report von Marshall Breeding im ALA Magazine: <https://americanlibrariesmagazine.org/2020/05/01/2020-library-systems-report/>
* [Suche auf librarytechnology.org](https://librarytechnology.org/products/main.pl) vermittelt guten Überblick
* siehe auch [Statistik der Verkaufszahlen](https://librarytechnology.org/products/sales/)
* Marktführer ist Ex Libris mit [Primo](https://exlibrisgroup.com/de/produkte/primo/inhalts-index/)
* Alternative: OCLC mit [WorldCat Discovery](https://www.oclc.org/de/worldcat-discovery.html)
* Alternative: EBSCO mit [EDS](https://www.ebsco.com/de-de/wissenschaftliche-bibliotheken/produkte/ebsco-discovery-service)
* (Summon wird zugunsten von Primo abgekündigt)
Note:
- Den Library Systems Report hatten wir uns zuvor bereits angeschaut, damals jedoch mit Blick auf Bibliothekssysteme. Marshall Breeding führt in seinem Bericht aber auch Discovery-Systeme auf.
- Die Funktionalität eines Discovery-Systems besteht aus mindestens zwei Komponenten: Der Software und den Daten.
- Kommerzielle Discovery-Systeme verkaufen einen Suchindex meist separat, der vor allem Metadaten zu elektronischen Artikeln enthält.
### International (Open Source)
* Open Source-Alternative: [VuFind](https://vufind.org/vufind/) (ohne eigenen Artikelindex)
* Nische: [typo3-find](https://github.com/subugoe/typo3-find)
* Alternative Zentralindizes: [K10plus-Zentral](https://verbundwiki.gbv.de/display/VZG/K10plus-Zentral), [finc Artikelindex](https://finc.info/services)
### Schweiz: SLSP
* Durch [Swiss Library Service Platform](https://slsp.ch) wurde Ex Libris Alma und damit auch das dazu gehörige Discovery-System Primo VE an den wissenschaftlichen Bibliotheken in der Schweiz eingeführt.
* Am Mo, 7.12.2020 ist das neue Rechercheportal [swisscovery](https://swisscovery.slsp.ch) gestartet.
* Ergänzend zu SLSP wird vom Verein swisscollections der Sucheinstieg [swisscollections](https://swisscollections.ch) für Sammlungen angeboten. Dieses Portal wurde mit VuFind und Eigenentwicklungen der UB Basel realisiert.
## Zwischenfazit
![Schaubild zu Lehrinhalten](images/schaubild-lehrinhalte.png)
# Aufgaben
Bis zum nächsten Termin:
1. Beitrag im Lerntagebuch zu dieser Lehreinheit (3000 - 4000 Zeichen)
2. Lehrevaluation

173
07_linked-data.md Normal file
View File

@ -0,0 +1,173 @@
# Linked Data und Testumgebung
* Ergebnis der Unterrichtsevaluation
* Aktuelle Datenmodelle für Metadaten (BIBFRAME, RiC)
* Praxisberichte
* Suchanfragen mit SPARQL am Beispiel des Wikidata Query Service
* Empfehlenswerte Tutorials zum Selbstlernen
## Ergebnis der Unterrichtsevaluation
* Gemeinsame Sichtung der (anonymen) Auswertung
* Rückmeldungen: 20
* Gesamtbewertung: auf Skala 1 (unzufrieden) bis 7 (zufrieden)
* 3x 7
* 6x 6
* 7x 5
* 1x 4
* 3x 3
* Positive Aspekte der Lehrveranstaltung aus Sicht der Studierenden
* Inhalt
* Gestaltung
* Praxisbezug
* Materialien
* Fachliche Kompetenz
* Umgang mit Studierenden
* Betreuung
* Negative Aspekte der Lehrveranstaltung aus Sicht der Studierenden
* Inhalt (vermutlich für Schwerpunkt Web- und Usability-Engineering?)
* Transparenz der Lernziele
* Forschungsbezug
* Zeitmanagement
* Verbesserungsmaßnahmen
* Bei jedem Thema Bezug zu Lernzielen erläutern
* Zusätzliche Möglichkeiten zur Überprüfung des Lernfortschritts
* z.B. Zwischenfeedback für Lerntagebücher
* Genauere Zielvorgabe bei Übungen
## Aktuelle Datenmodelle für Metadaten (BIBFRAME, RiC)
1. BIBFRAME
2. Records in Contexts (RiC)
### BIBFRAME
* seit 2012 auf Initiative der Library of Congress als Nachfolger von MARC21 (und MODS) entwickelt, aktuell ist seit 2016 BIBFRAME 2.0
* basiert auf *Functional Requirements for Bibliographic Records* (FRBR) sowie *Resource Description and Access* (RDA) als Regelwerk, setzt diese aber nicht vollständig um
* folgt Linked Data Paradigmen
* besteht aus *BIBFRAME Model* und *BIBFRAME Vocabulary*
* Datenmodell unterscheidet zwischen *Work*, *Instance* und *Item*
* Datenmodell definiert Entitäten *Agent*, *Subject* und *Event*
* Vokabular definiert *Konzepte* und deren *Eigenschaften* zur Beschreibung der Entitäten des Datenmodells
#### BIBFRAME Model
![BIBFRAME Model](https://www.loc.gov/bibframe/docs/images/bf2-model.jpg)
Quelle: <https://www.loc.gov/bibframe/docs/bibframe2-model.html>
#### BIBFRAME Vocabulary
* Ontologie umfasst Beschreibungsklassen (*Class*), die jeweils über spezifische Eigenschaften (*Property*) verfügen
* vergleichbar mit MARC Fields und Subfields
* Klassen/Eigenschaften sind teilweise hierarchisch strukturiert
* z. B. "Autor" ist Spezialfall (*Subclass*) eines "Beiträgers"
* übernimmt die Konzepte von RDA
* siehe <https://id.loc.gov/ontologies/bibframe.html>
#### Was unterscheidet MARC21 und BIBFRAME? (1/2)
> As a bibliographic description format, the MARC format focuses on catalog records that are independently understandable. MARC aggregates information about the conceptual work and its physical carrier and uses strings for identifiers such as personal names, corporate name, subjects, etc. that have value outside the record itself.
Quelle: <https://www.loc.gov/bibframe/faqs/#q04>
#### Was unterscheidet MARC21 und BIBFRAME? (2/2)
> Instead of bundling everything neatly as a “record” and potentially duplicating information across multiple records, the BIBFRAME Model relies heavily on relationships between resources (Work-to-Work relationships; Work-to-Instance relationships; Work-to-Agent relationships). It manages this by using controlled identifiers for things (people, places, languages, etc).
Quelle: <https://www.loc.gov/bibframe/faqs/#q04>
#### BIBFRAME Links
* [BIBFRAME bei der Library of Congress](https://www.loc.gov/bibframe/)
* [Gegenüberstellung BIBFRAME <-> MARCXML](https://id.loc.gov/tools/bibframe/comparebf-lccn/2018958785.xml)
* [Präsentationen zu BIBFRAME auf der SWIB20](https://swib.org/swib20/programme.html)
### Records in Contexts (RiC)
* basiert auf Linked-Data-Prinzipien
* soll neue und mehrfache Beziehungen zwischen Entitäten ermöglichen
* Projektgruppe [ENSEMEN](https://vsa-aas.ch/arbeitsgruppen/projektgruppe-ensemen/) arbeitet an einer schweizerischen Ausprägung des neuen Standards [Records in Contexts](https://www.ica.org/en/records-contexts-german) (RiC), mit Beteiligung von Niklaus Stettler (FH Graubünden)
#### RiC Modell
* <https://www.ica.org/sites/default/files/ric-cm-02_july2021_0.pdf> (Druck S. 18 / PDF S. 23)
#### RiC Ontologie
* <https://www.ica.org/standards/RiC/ontology>
* Beispieldateien: <https://github.com/ICA-EGAD/RiC-O/tree/master/examples/examples_v0-2>
#### RiC Tools
* Open-Source-Software [RiC-O Converter](https://github.com/ArchivesNationalesFR/rico-converter)
* "for converting into RDF datasets conforming to RiC-O v0.1 the whole of the ANF EAD 2002 findings aids (about 28.000 XML files for now) and EAC-CPF authority records (about 15.000 XML files for now)"
* [Artikel zur Veröffentlichung des Quellcodes](https://blog-ica.org/2020/06/13/ric-o-converter-an-example-of-practical-application-of-the-ica-records-in-contexts-standard-ica-ric/)
* Docuteam arbeitet an Prototypen für Erschließungs- und Katalogsoftware, siehe https://ica-egad.github.io/RiC-O/projects-and-tools.html
#### RiC Links
* Einführungsartikel: David Gniffke (16.3.2020): Semantic Web und Records in Contexts (RiC). In: Archivwelt, 16/03/2020. <https://archivwelt.hypotheses.org/1982>
* Präsentation: Florence Clavaud <https://f.hypotheses.org/wp-content/blogs.dir/2167/files/2020/02/20200128_2_RecordsInContexts_englishVersionAdded1003.pdf>
* Arbeitsgruppe ICA EGAD: <https://www.ica.org/en/about-egad>
* RiC Ontologie 0.2 (2019): <http://purl.org/ica/ric>
* Access To Memory (AtoM) - Alternative zu ArchivesSpace, näher dran an RiC-Entwicklung: <https://www.accesstomemory.org>
* Archival Linked Open Data (aLOD): <http://www.alod.ch>
## Praxisberichte
### Entwicklung eines neuen Online-Katalogs für das Deutsche Literaturarchiv Marbach
* Katalog (Beta): <https://www.dla-marbach.de/katalog-beta>
* Informationen zum Projekt: <https://wdv-teamwork.dla-marbach.de/projects/info-opac-ng-hauptprojekt/wiki>
* Unser Auftrag: Prototyp, Projektkoordination und Datenintegration
* Geschwindigkeitsmessung mit "Network"-Funktion der Entwicklertools
### Datenintegration für das Portal noah.nrw
* Portal für Open-Access-Ressourcen in Nordrhein-Westfalen: https://noah.nrw. Besondere Funktion: Volltextsuche für Digitalisate **und** Born-Digitals.
* Unser Auftrag: Daten von OAI-Schnittstellen abrufen, einheitlich in Format METS/MODS konvertieren und über eine OAI-Schnittstelle bereitstellen
* Ein anderer Dienstleister erntet dann die von uns bereitgestellten OAI-Schnittstellen und kümmert sich um die Anzeige im Portal
* Beispiel Datenquelle Biejournals: <https://github.com/opencultureconsulting/noah-biejournals>
## Suchanfragen mit SPARQL am Beispiel des Wikidata Query Service
* Handout zum Query Service: <https://www.wikidata.org/wiki/File:Wikidata_Query_Service_kurzgefasst.pdf>
* Query-Service: <https://query.wikidata.org> (dort integrierte Beispiele)
* Weitere Beispiele: <https://blog.wikimedia.de/2016/10/30/10-coole-wikidata-abfragen-die-dir-neue-horizonte-eroeffnen-nummer-7-wird-dich-schockieren/>
### Tutorial
* Alex Stinson hat ein schönes Tutorial geschrieben, das eigentlich für Lehrende gedacht ist, aber auch individuell bearbeitet werden kann. Nach einer Einleitung, die sich an Lehrende richtet, kommt unter der Überschrift "Writing a Query" das Skript.
* Aufgabe (30 Minuten): Bearbeiten Sie das Tutorial ab der Überschrift "Writing a Query": <https://medium.com/freely-sharing-the-sum-of-all-knowledge/writing-a-wikidata-query-discovering-women-writers-from-north-africa-d020634f0f6c>
### Literatur
* Empfehlenswerte Tutorials zu SPARQL:
* <https://programminghistorian.org/en/lessons/intro-to-linked-data>
* <https://programminghistorian.org/en/lessons/graph-databases-and-SPARQL>
* Beispiel, wie das Hochschularchiv der ETH-Bibliothek Wikidata nutzt:
* How to Link Your Institutions Collections to Wikidata? : a short manual to a semi-automatic way of using the “archives at” property (P485) <https://doi.org/10.3929/ethz-b-000393724>
---
## Empfehlenswerte Tutorials zum Selbstlernen
* Library Carpentry: <https://librarycarpentry.org/lessons/>
* Programming Historian: <https://programminghistorian.org/en/lessons/>
* openHPI: <https://open.hpi.de/courses>
* Datenschule: <https://datenschule.de/lernmaterialien/>
---
# Aufgaben
Bis zum Abgabetermin der Lerntagebücher:
1. Beitrag im Lerntagebuch zu dieser Lehreinheit (3000 - 4000 Zeichen)
2. Abschlussartikel: “Was habe ich (nicht) gelernt?” (3000 - 4000 Zeichen)
3. Lerntagebuch fertigstellen (ggf. ältere Beiträge korrigieren und ergänzen). Bewertungskriterien:
* begründete kritische Auseinandersetzung mit den Lerninhalten
* Kontextualisierung der Lerninhalte (Zusatzinformationen, Querverweise, Screenshots)
* verständliche Darstellung in eigenen Worten
* Vollständigkeit und Einhaltung der Form

1
CNAME Normal file
View File

@ -0,0 +1 @@
bain.felixlohmeier.de

284
README.md Normal file → Executable file
View File

@ -1,185 +1,159 @@
---
lrmi:
datePublished: '2017-09-20'
license: 'http://creativecommons.org/licenses/by/4.0/'
audience:
type: EducationalAudience
educationalRole: student
interactivityType: mixed
hasCourseInstance:
type: CourseInstance
startDate: '2017-09-21'
endDate: '2018-01-11'
courseMode: onsite
offers:
type: Offer
offeredBy:
id: 'http://www.wikidata.org/entity/Q1622220'
name: HTW Chur
name: Bibliotheks- und Archivinformatik an der HTW Chur
creator:
name: Felix Lohmeier
id: 'https://orcid.org/0000-0003-3375-4362'
timeRequired: 7 days
hasPart:
- id: >-
https://felixlohmeier.gitbooks.io/kurs-bibliotheks-und-archivinformatik/kapitel-1.html
name: >-
Kapitel 1: Einführung ins Thema, Installation der Arbeitsumgebung und
eine Wiederholung in Metadatenstandards
- id: >-
https://felixlohmeier.gitbooks.io/kurs-bibliotheks-und-archivinformatik/kapitel-2.html
name: 'Kapitel 2: Bibliotheks- und Archivsysteme'
- id: >-
https://felixlohmeier.gitbooks.io/kurs-bibliotheks-und-archivinformatik/kapitel-3.html
name: 'Kapitel 3: Übertragungsprotokolle und Datentransformationen'
- id: >-
https://felixlohmeier.gitbooks.io/kurs-bibliotheks-und-archivinformatik/kapitel-4.html
name: 'Kapitel 4: Suchmaschinen, Modellierung für Meta-Suche'
- id: >-
https://felixlohmeier.gitbooks.io/kurs-bibliotheks-und-archivinformatik/kapitel-5.html
name: 'Kapitel 5: Katalogsoftware und Suchmaschinenoptimierung'
- id: >-
https://felixlohmeier.gitbooks.io/kurs-bibliotheks-und-archivinformatik/kapitel-6.html
name: 'Kapitel 6: Metadaten in Repositorien und Crosswalks'
- id: >-
https://felixlohmeier.gitbooks.io/kurs-bibliotheks-und-archivinformatik/kapitel-7.html
name: 'Kapitel 7: Linked Data und weitere Metadatenstandards'
about:
- libraries
- archives
- software
- protocols
- metadata
typicalAgeRange: 18-65
url: 'https://felixlohmeier.gitbooks.io/kurs-bibliotheks-und-archivinformatik/'
'@context': 'http://schema.org/'
educationalCredentialAwarded: 4 ECTS
type: Course
id: 'https://felixlohmeier.gitbooks.io/kurs-bibliotheks-und-archivinformatik/'
description: >-
Der Kurs ist eine Weiterentwicklung voriger Lehrveranstaltungen an der HAW
Hamburg (Wintersemester 2016/17) und an der HS Hannover (Sommersemester
2017). Es ist für eine Lehrveranstaltung mit 4 ECTS konzipiert.
---
# Skript zum Kurs "Bibliotheks- und Archivinformatik"
# Skript zum Kurs "Bibliotheks- und Archivinformatik" \(Herbstsemester 2017 ff.\) an der HTW Chur
Dieses Skript entstand in der Zeit von September 2021 bis Januar 2022 im Rahmen der folgenden Lehrveranstaltung:
Das Skript ist eine Weiterentwicklung voriger Lehrveranstaltungen an der [HAW Hamburg](https://www.gitbook.com/book/felixlohmeier/seminar-wir-bauen-uns-einen-bibliothekskatalog/) \(Wintersemester 2016/17\) und an der [HS Hannover](https://www.gitbook.com/read/book/felixlohmeier/seminar-praxis-der-digitalen-bibliothek) \(Sommersemester 2017\). Es ist für eine Lehrveranstaltung mit 4 ECTS konzipiert.
- Kurs "Bibliotheks- und Archivinformatik" (BAIN)
- Dozenten: [Felix Lohmeier](http://felixlohmeier.de), [Sebastian Meyer](https://twitter.com/_meyse_/)
- Herbstsemester 2021
- Lehrauftrag an der [FH Graubünden - Studiengang Information Science](https://www.fhgr.ch/studium/bachelorangebot/wirtschaft-und-dienstleistung/information-science/)
- Bachelor, 4 ECTS
## Formate
## Gemeinsames Dokument
* Lesefassung bei GitBook \(HTML\): [https://www.gitbook.com/read/book/felixlohmeier/kurs-bibliotheks-und-archivinformatik](https://www.gitbook.com/read/book/felixlohmeier/kurs-bibliotheks-und-archivinformatik)
* Druckfassung bei GitBook \(PDF\): [https://www.gitbook.com/download/pdf/book/felixlohmeier/kurs-bibliotheks-und-archivinformatik](https://www.gitbook.com/download/pdf/book/felixlohmeier/kurs-bibliotheks-und-archivinformatik)
* Repository bei GitHub \(zum Nachnutzen\): [https://github.com/felixlohmeier/kurs-bibliotheks-und-archivinformatik](https://github.com/felixlohmeier/kurs-bibliotheks-und-archivinformatik)
Für Notizen und zum Austausch verwenden wir ein gemeinsames Dokument in einer [HedgeDoc](https://github.com/hedgedoc/hedgedoc)-Installation [bei der GWDG](https://pad.gwdg.de/). Alle, die den Link kennen, können es bearbeiten. Zur Formatierung wird [Markdown](https://www.markdownguide.org/basic-syntax/) verwendet.
## Lehrveranstaltung
Dieses Skript entstand in der Zeit von September 2017 bis Januar 2018 im Rahmen der folgenden Lehrveranstaltung:
* Kurs "Bibliotheks- und Archivinformatik"
* Dozent: [Felix Lohmeier](http://felixlohmeier.de)
* Herbstsemester 2017
* Lehrauftrag an der [HTW Chur - Studiengang Information Science](http://studium.htwchur.ch/information-science/)
* Bachelor mit Vertiefung Bibliotheksmanagement, Archiv und Information Engineering, 4 ECTS
* [Gemeinsames Dokument für die Gruppe ISc18tzZ (Zürich)](https://pad.gwdg.de/TI2mEmrgSbuQOP7nJsfoXg?both)
* [Gemeinsames Dokument für die Gruppe ISc19vz (Chur)](https://pad.gwdg.de/70W-kLf9T0iW-rGHvTq7tg?both)
## Inhalte
Kapitel 1: Einführung ins Thema, Installation der Arbeitsumgebung und eine Wiederholung in Metadatenstandards
* [1.1 Einführung ins Thema](/kapitel-1/11-einfuhrung-ins-thema.md)
* [1.2 Installation der Arbeitsumgebung](/kapitel-1/12-installation-der-arbeitsumgebung.md)
* [1.3 Übung: Text durchsuchen und Wörter zählen auf der Kommandozeile](/kapitel-1/13-ubung-text-durchsuchen-und-worter-zahlen-auf-der-kommandozeile.md)
* [1.4 Metadatenstandards und Schnittstellen](/kapitel-1/14-metadatenstandards-und-schnittstellen.md)
* [1.5 Übung: Metadaten über eine SRU-Schnittstelle laden](/kapitel-1/15-ubung-metadaten-uber-eine-sru-schnittstelle-laden.md)
* [1.6 Metadaten ansehen mit OpenRefine](/kapitel-1/16-metadaten-ansehen-mit-openrefine.md)
Kapitel 2: Bibliotheks- und Archivsysteme
* [2.1 Metadatenflüsse der ETH-Bibliothek](/kapitel-2/21_metadatenflusse-der-eth-bibliothek.md)
* [2.2 Datenstruktur von Archivsystemen](/kapitel-2/22_datenstruktur-von-archivsystemen.md)
* [2.3 Online-Präsentation von Digitalisaten](/kapitel-2/23_online-praesentation-von-digitalisaten.md)
* [2.4 Discovery-System Wissensportal](/kapitel-2/24_discovery-system-wissensportal.md)
* [2.5 Datenbereitstellung für externe Portale](/kapitel-2/25_datenbereitstellung-fur-externe-portale.md)
Kapitel 3: Übertragungsprotokolle und Datentransformationen
* [3.1 Wir bauen uns ein Wissensportal](/kapitel-3/31-wir-bauen-uns-ein-wissensportal.md)
* [3.2 Übertragungsprotokolle SRU und OAI-PMH](/kapitel-3/32-ubertragungsprotokolle-sru-und-oai-pmh.md)
* [3.3 Testdaten über SRU herunterladen](/kapitel-3/33-testdaten-uber-sru-herunterladen.md)
* [3.4 Tutorial zu OpenRefine](/kapitel-3/34-tutorial-zu-openrefine.md)
* [3.5 Verarbeitung von MARC21 mit OpenRefine](/kapitel-3/35-verarbeitung-von-marc21-mit-openrefine.md)
* [3.6 Bonus: Vergleich mit Crosswalk-Ergebnissen](/kapitel-3/36-bonus-vergleich-mit-crosswalk-ergebnissen.md)
* [3.7 Bonus: Automatisierung](/kapitel-3/37-bonus-automatisierung.md)
Kapitel 4: Suchmaschinen, Modellierung für Meta-Suche
* [4.1 Installation von Solr](/kapitel-4/41-installation-von-solr.md)
* [4.2 Tutorial zu Solr](/kapitel-4/42-tutorial-zu-solr.md)
* [4.3 Daten in Solr laden](/kapitel-4/43-daten-in-solr-laden.md)
* [4.4 Konfiguration des Schemas](/kapitel-4/44-konfiguration-des-schemas.md)
* [4.5 Bonus: Daten Weitere indexieren](/kapitel-4/45-weitere-daten-indexieren.md)
Kapitel 5: Katalogsoftware und Suchmaschinenoptimierung
* [5.1 Installation von TYPO3 und TYPO3-find](/kapitel-5/51_installation-von-typo3-und-typo3-find.md)
* [5.2 Grundkonfiguration von TYPO3-find](/kapitel-5/52_grundkonfiguration-von-typo3-find.md)
* [5.3 Konfiguration von TYPO3-find erweitern](/kapitel-5/53_konfiguration-von-typo3-find-erweitern.md)
* [5.4 Relevanzranking mit TYPO3-find und Solr](/kapitel-5/54-relevanzranking-mit-typo3-find-und-solr.md)
* [5.5 Suchmaschinenoptimierung](/kapitel-5/55_suchmaschinenoptimierung.md)
Kapitel 6: Metadaten in Repositorien und Crosswalks
* [6.1 VuFind-Tutorial](/kapitel-6/61_vufind-tutorial.md)
* [6.2 Daten im Format MARC21 indexieren](/kapitel-6/62_daten-im-format-marc21-indexieren.md)
* [6.3 Installation von MarcEdit](/kapitel-6/63_installation-von-marcedit.md)
* [6.4 Harvesting mit MarcEdit](/kapitel-6/64_harvesting-mit-marcedit.md)
Kapitel 7: Linked Data und weitere Metadatenstandards
* [7.1 Semantische Daten](/kapitel-7/71_semantische-daten-fuer-webauftritt.md)
* [7.2 Linked Data nach dem Hype](/kapitel-7/72_linked-data-nach-dem-hype.md)
* [7.3 Projekt Linked swissbib](/kapitel-7/73_projekt-linked-swissbib.md)
* [7.4 Datenmodell und Datentransformation](/kapitel-7/74_datenmodell-und-datentransformation.md)
* [7.5 Übung: RDF mit Metafacture generieren](/kapitel-7/75_uebung-rdf-mit-metafacture-generieren.md)
* [7.6 Verlinkung und Anreicherung](/kapitel-7/76_verlinkung-und-anreicherung.md)
* [7.7 Übung: Linking mit Limes](/kapitel-7/77_uebung-linking-mit-limes.md)
* [7.8 Oberfläche: Projektresultate und Integration](/kapitel-7/78_oeberflaeche-projektresultate-integration.md)
* [7.9 Publikation und Nachnutzung](/kapitel-7/79_publikation-und-nachnutzung.md)
1. [Technische Grundlagen](01_technische-grundlagen.md) (Chur: 16.09.2021, Zürich: 15.09.2021)
- Schaubild zu Lehrinhalten
- Einrichtung der Arbeitsumgebung (Linux)
- Grundlagen der Unix Shell
- Versionskontrolle mit git
- Blog mit GitHub Pages
2. [Funktion und Aufbau von Bibliothekssystemen](02_funktion-und-aufbau-von-bibliothekssystemen.md) (Chur: 30.09.2021 und 07.10.2021, Zürich: 01.10.2021 und 08.10.2021)
- Metadatenstandards in Bibliotheken (MARC21)
- Installation und Konfiguration von Koha
- Cloud-Konzepte am Beispiel von ALMA
- Marktüberblick Bibliothekssysteme
3. [Funktion und Aufbau von Archivsystemen](03_funktion-und-aufbau-von-archivsystemen.md) (Chur: 23.10.2021, Zürich: 20.10.2021)
- Metadatenstandards in Archiven (ISAD(G) und EAD)
- Installation und Konfiguration von ArchivesSpace
- Marktüberblick Archivsysteme
4. [Repository-Software für Publikationen und Forschungsdaten](04_repository-software-fuer-publikationen-und-forschungsdaten.md) (Chur: 18.11.2021, Zürich: 19.11.2021)
- Open Access und Open Data
- Übungen mit DSpace
- Marktüberblick Repository-Software
5. [Metadaten modellieren und Schnittstellen nutzen](05_metadaten-modellieren-und-schnittstellen-nutzen.md) (Chur: 02.12.2021 und 03.12.2021, Zürich: 02.12.2021 und 03.12.2021)
- Austauschprotokolle für Metadaten (OAI-PMH, SRU)
- Metadaten über OAI-PMH harvesten mit VuFindHarvest
- XSLT Crosswalks mit MarcEdit
- Transformation von Metadaten mit OpenRefine
- Weitere Tools zur Metadatentransformation
- Nutzung von JSON-APIs
6. [Suchmaschinen und Discovery-Systeme](06_suchmaschinen-und-discovery-systeme.md) (Chur: 16.12.2021, Zürich: 17.12.2021)
- Installation und Konfiguration von VuFind
- Funktion von Suchmaschinen am Beispiel von Solr
- Übung zur Datenintegration
- Marktüberblick Discovery-Systeme
- Zwischenfazit
7. [Linked Data](07_linked-data.md) (Chur: 13.01.2022, Zürich: 14.01.2022)
- Ergebnis der Unterrichtsevaluation
- Aktuelle Datenmodelle für Metadaten (BIBFRAME, RiC)
- Praxisberichte
- Metadaten anreichern mit OpenRefine und Wikidata
- Suchanfragen mit SPARQL am Beispiel des Wikidata Query Service
- Empfehlenswerte Tutorials zum Selbstlernen
## Lerntagebücher
Als Prüfungsleistung schreiben Studierende öffentliche [Lerntagebücher](/lerntagebucher.md), in denen sie von ihren Erkenntnissen berichten und sich mit dem Inhalt des Seminars auseinandersetzen. Thematisch relevante Beiträge werden in den jeweiligen Kapiteln im Skript verlinkt.
Als Prüfungsleistung schreiben Studierende Blogs, in denen sie von ihren Erkenntnissen berichten und sich mit den Inhalten des Seminars auseinandersetzen.
## Beschreibung
Gruppe ISc19vz (Chur):
Im Modul Bibliotheks- und Archivinformatik lernen die Studierenden die in Bibliotheken und Archiven eingesetzten Softwares und Technologien kennen. Funktionsweisen von Bibliothekskatalogen \(bis hin zu Cloud-Konzepten\), von Publikationsplattformen, Repositories etc. werden erläutert. Verschiedene Suchtechnologien werden analysiert und im Einsatz über unterschiedliche Datenbestände angewandt. Es wird gezeigt, wie Metadatenstandards und Austauschprotokolle eingesetzt und genutzt werden.
* [Jannik Christen](https://tonytestimony.github.io/Lerntagebuch-BAIN/)
* [Martin Heeb](https://marhee48.github.io/Lerntagebuch-BAIN/)
* [Anna Hilgert](https://hilgeann.github.io/Lerntagebuch_BAIN/)
* [Jacqueline Küng](https://schaglin.github.io/Mein-Lerntagebuch/)
* [Simon Mettler](https://simon-mettler.github.io/lernblog-bain/)
* [Barbora Plachá](https://barboraplacha.github.io/Lerntagebuch/)
* [Jahn Sievers](https://jahnsievers.github.io/Lerntagebuch-BAIN/)
* [Joy Walser](https://joyrw.github.io/Lerntagebuch/)
* [Julia Zingg](https://jzingg.github.io/LerntagebuchBAIN_HS21/)
Gruppe ISc18tzZ (Zürich):
* [Jennifer Amoroso](https://saphirba.github.io/BAIN-Lerntagebuch/)
* [Simone Behr-Schneider](https://simonebehr.github.io/LerntagebuchBAIN/)
* [Gene Bichler](https://el-mongo-bongo.github.io/bain_lerntagebuch/)
* [Nicolas Brauchli](https://elslothboi.github.io/Lerntagebuch/)
* [Larissa Bucher](https://larri12.github.io/BAIN/)
* [Christina Clerici](https://momovasco.github.io/Lerntagebuch/)
* [Talita Fisch](https://ttly1.github.io/bain_gamora/)
* [Sandra Freiburghaus](https://fribsle.github.io/lerntagebuch/)
* [Joëlle Gantenbein](https://jogant.github.io/BAIN-Lerntagebuch/)
* [Stefan Gröber](https://groebestefan.github.io/LerntagebuchBAIN21/)
* [Lucien Haeller](http://lucienhaeller.com/lerntagebuch/)
* [Christine Holz](https://christineholz.github.io/bain_lerntagebuch/)
* [Marina Inglin](https://m-rina.github.io/lerntagebuch/)
* [Nina Ingold](https://uliqwe.github.io/BAINTagebuch/)
* [Carole Jungo](https://jungleca.github.io/Lerntagebuch_BAIN/)
* [Melanie Käser](https://melakae.github.io/bain_lerntagebuch/)
* [Laura Krüsi](https://sasquatchfromalaska.github.io/sasquatch_adventures/)
* [Cynthia Kohler](https://cynkoh.github.io/BAIN21_ck/)
* [Alexandra Köchling](https://alexandrakoechling.github.io/BAIN/)
* [Caroline Krause](https://ckfhgr.github.io/bain-lerntagebuch/)
* [Selina Lanz](https://slunz.github.io/Lerntagebuch-BAIN/)
* [Joëlle Meichtry](https://schoscho77.github.io/BAIN_Sloth-O-Nator/)
* [Adrian Menti](https://menti696.github.io/BAIN_Lerntagebuch_Adrian-Menti/)
* [Nicole Meyer](https://kekskaempferin.github.io/Lerntagebuch/)
* [Alan Müller](https://alanmueller.github.io/lerntagebuch/)
* [Petra Novak](https://petra-novak.github.io/Bain21/)
* [Lisa Oehler](https://lisaoehler.github.io/BAIN-Log/)
* [Nino Parolari](https://nony-git.github.io/my_lerntagebuch/)
* [Lara Pfister](https://larapfister.github.io/bain-lerntagebuch/)
* [Sebastian Preher](https://needforsleepundersheet2.github.io/BAIN_Lerntagebuch_3.0/)
* [Silvan Reis](https://riesling-silvan.github.io/Lerntagebuch/)
* [Stephanie Riebe](https://striebe.github.io/BAIN_Lerntagebuch/)
* [Sarah Roellin](https://sarahr177.github.io/BAIN-Lerntagebuch/)
* [Livia Schmid](https://livelchen.github.io/LerntagebuchLiviaSchmid/)
* [Antonia Stadler](https://tonydamager.github.io/BAIN/)
* [Marion Stutz](https://stutzmarion.github.io/Lerntagebuch_BAIN/)
* [Jessica Weidmann](https://luaynara.github.io/Lerntagebuch-BAIN-HS2021/)
## Modulbeschreibung
Im Modul Bibliotheks- und Archivinformatik lernen die Studierenden die in Bibliotheken und Archiven eingesetzten Softwares und Technologien kennen. Funktionsweisen von Bibliothekskatalogen (bis hin zu Cloud-Konzepten), von Publikationsplattformen, Repositories etc. werden erläutert. Verschiedene Suchtechnologien werden analysiert und im Einsatz über unterschiedliche Datenbestände angewandt. Es wird gezeigt, wie Metadatenstandards und Austauschprotokolle eingesetzt und genutzt werden.
Nach erfolgreicher Teilnahme am Modul sind die Studierenden in der Lage:
* die Funktionsweise spezifischer Bibliothekssoftware zu verstehen
* die richtige Software für eine spezifische Aufgabe zu evaluieren
* Suchmaschinen zu konfigurieren
* Webseiten für Suchmaschinen zu optimieren \(SEO\)
* Bibliothekarische und archivarische Metadaten \(z.B. MARC, MARCXML, MODS, Dublin Core, EAD, BIBFRAME\) zu modellieren und diese mit entsprechenden Protokollen / Anwendungen zu übertragen
* Bibliothekarische und archivarische Metadaten (z.B. MARC, MARCXML, MODS, Dublin Core, EAD, BIBFRAME) zu modellieren und diese mit entsprechenden Protokollen / Anwendungen zu übertragen
* Crosswalks zwischen unterschiedlichen Metadatenformaten zu programmieren
In diesem praxisorientierten Kurs setzen Sie Open-Source-Komponenten ein, um einen Prototyp eines Katalogs \(Discovery-System\) herzustellen. Ausgehend vom Laden ausgewählter Metadaten über Schnittstellen, transformieren Sie die Metadaten in ein für Suchmaschinen geeignetes Format, konfigurieren einen Suchindex und erstellen eine prototypische Anzeige eines Katalogs. Durch die konkrete Arbeit mit den Technologien und Beispieldaten lernen Sie die Funktionsweise typischer Software, Schnittstellen und verschiedene Metadatenformate kennen.
## Skripte der Vorjahre
## Intention Openness
Herbstsemester 2021:
Soweit möglich werden die Materialien für die Lehrveranstaltung an dieser Stelle online gestellt, damit sie vielleicht auch über den Kreis der SeminarteilnehmerInnen hinaus nützlich sind. Weitere Informationen dazu im Bibcast [Offene Lernskripte mit Gitbook](https://bibcast.openbiblio.eu/offene-lernskripte-mit-gitbook-erfahrungsbericht-aus-dem-seminar-wir-bauen-uns-einen-bibliothekskatalog-an-der-haw-hamburg/).
* Zenodo: [10.5281/zenodo.5925567](https://doi.org/10.5281/zenodo.5925567)
* GitHub: [v5.0](https://github.com/felixlohmeier/bibliotheks-und-archivinformatik/releases/tag/v5.0)
## Literaturempfehlungen zum Einstieg
Herbstsemester 2020:
* Anne Christensen \(2013\): Warum BibliothekarInnen bei Discovery mitmischen sollten, trotz allem. In: Blog "A growing organism - Bibliothekarische An- und Aussichten von Anne Christensen", 20.4.2013: [https://xenzen.wordpress.com/2013/04/20/discovery-mitmischen/](https://xenzen.wordpress.com/2013/04/20/discovery-mitmischen/)
* Prof. Magnus Pfeffer \(2016\): Open Source Software zur Verarbeitung und Analyse von Metadaten. Präsentation auf dem 6. Bibliothekskongress. [http://nbn-resolving.de/urn/resolver.pl?urn:nbn:de:0290-opus4-24490](http://nbn-resolving.de/urn/resolver.pl?urn:nbn:de:0290-opus4-24490)
* Christof Rodejohann & Felix Lohmeier \(2016\): Schlanke Discovery-Lösung auf Basis von TYPO3. Der neue Bibliothekskatalog der SLUB Dresden. Präsentation im Rahmen des "Bibcast", Live-Webcast im Vorfeld des Bibliothekskongresses, 9.3.2016: [http://bibcast.openbiblio.eu/schlanke-discovery-loesung-auf-basis-von-typo3-der-neue-bibliothekskatalog-der-slub-dresden/](http://bibcast.openbiblio.eu/schlanke-discovery-loesung-auf-basis-von-typo3-der-neue-bibliothekskatalog-der-slub-dresden/)
* Felix Lohmeier & Jens Mittelbach \(2014\): Offenheit statt Bündniszwang. In: Zeitschrift für Bibliothekswesen und Bibliographie 61, H. 4-5, S. 209-214. [http://dx.doi.org/10.3196/1864295014614554](http://dx.doi.org/10.3196/1864295014614554)
* Zenodo: [10.5281/zenodo.4386963](https://doi.org/10.5281/zenodo.4386963)
* GitHub: [v4.0](https://github.com/felixlohmeier/bibliotheks-und-archivinformatik/releases/tag/v4.0)
Frühlingssemester 2020:
* Zenodo: [10.5281/zenodo.3885498](https://doi.org/10.5281/zenodo.3885498)
* GitHub: [v3.0](https://github.com/felixlohmeier/bibliotheks-und-archivinformatik/releases/tag/v3.0)
Herbstsemester 2019:
* Zenodo: [10.5281/zenodo.3701841](https://doi.org/10.5281/zenodo.3701841)
* GitHub: [v2.0](https://github.com/felixlohmeier/bibliotheks-und-archivinformatik/releases/tag/v2.0)
Herbstsemester 2017:
* Zenodo: [10.5281/zenodo.3383051](https://doi.org/10.5281/zenodo.3383051)
* GitHub: [v1.0](https://github.com/felixlohmeier/bibliotheks-und-archivinformatik/releases/tag/v1.0)
## Lizenz
Dieses Werk ist lizenziert unter einer [Creative Commons Namensnennung 4.0 International Lizenz](http://creativecommons.org/licenses/by/4.0/)
[![Creative Commons Lizenzvertrag](https://i.creativecommons.org/l/by/4.0/88x31.png)](http://creativecommons.org/licenses/by/4.0/)
[![Creative Commons Lizenzvertrag](images/cc-by-88x31.png)](http://creativecommons.org/licenses/by/4.0/)

View File

@ -1,53 +1,8 @@
# Summary
* [Einleitung](README.md)
* [Kapitel 1](kapitel-1.md)
* [1.1 Einführung ins Thema](kapitel-1/11-einfuhrung-ins-thema.md)
* [1.2 Installation der Arbeitsumgebung](kapitel-1/12-installation-der-arbeitsumgebung.md)
* [1.3 Übung: Text durchsuchen und Wörter zählen auf der Kommandozeile](kapitel-1/13-ubung-text-durchsuchen-und-worter-zahlen-auf-der-kommandozeile.md)
* [1.4 Metadatenstandards und Schnittstellen](kapitel-1/14-metadatenstandards-und-schnittstellen.md)
* [1.5 Übung: Metadaten über eine SRU-Schnittstelle laden](kapitel-1/15-ubung-metadaten-uber-eine-sru-schnittstelle-laden.md)
* [1.6 Metadaten ansehen mit OpenRefine](kapitel-1/16-metadaten-ansehen-mit-openrefine.md)
* [Kapitel 2](kapitel-2.md)
* [2.1 Metadatenflüsse der ETH-Bibliothek](/kapitel-2/21_metadatenflusse-der-eth-bibliothek.md)
* [2.2 Datenstruktur von Archivsystemen](/kapitel-2/22_datenstruktur-von-archivsystemen.md)
* [2.3 Online-Präsentation von Digitalisaten](/kapitel-2/23_online-praesentation-von-digitalisaten.md)
* [2.4 Discovery-System Wissensportal](/kapitel-2/24_discovery-system-wissensportal.md)
* [2.5 Datenbereitstellung für externe Portale](/kapitel-2/25_datenbereitstellung-fur-externe-portale.md)
* [Kapitel 3](kapitel-3.md)
* [3.1 Wir bauen uns ein Wissensportal](kapitel-3/31-wir-bauen-uns-ein-wissensportal.md)
* [3.2 Übertragungsprotokolle SRU und OAI-PMH](kapitel-3/32-ubertragungsprotokolle-sru-und-oai-pmh.md)
* [3.3 Testdaten über SRU herunterladen](kapitel-3/33-testdaten-uber-sru-herunterladen.md)
* [3.4 Tutorial zu OpenRefine](kapitel-3/34-tutorial-zu-openrefine.md)
* [3.5 Verarbeitung von MARC21 mit OpenRefine](kapitel-3/35-verarbeitung-von-marc21-mit-openrefine.md)
* [3.6 Bonus: Vergleich mit Crosswalk-Ergebnissen](kapitel-3/36-bonus-vergleich-mit-crosswalk-ergebnissen.md)
* [3.7 Bonus: Automatisierung](kapitel-3/37-bonus-automatisierung.md)
* [Kapitel 4](kapitel-4.md)
* [4.1 Installation von Solr](/kapitel-4/41-installation-von-solr.md)
* [4.2 Tutorial zu Solr](/kapitel-4/42-tutorial-zu-solr.md)
* [4.3 Daten in Solr laden](/kapitel-4/43-daten-in-solr-laden.md)
* [4.4 Konfiguration des Schemas](/kapitel-4/44-konfiguration-des-schemas.md)
* [4.5 Bonus: Weitere Daten indexieren](/kapitel-4/45-weitere-daten-indexieren.md)
* [Kapitel 5](kapitel-5.md)
* [5.1 Installation von TYPO3 und TYPO3-find](/kapitel-5/51_installation-von-typo3-und-typo3-find.md)
* [5.2 Grundkonfiguration von TYPO3-find](/kapitel-5/52_grundkonfiguration-von-typo3-find.md)
* [5.3 Konfiguration von TYPO3-find erweitern](/kapitel-5/53_konfiguration-von-typo3-find-erweitern.md)
* [5.4 Relevanzranking mit TYPO3-find und Solr](/kapitel-5/54-relevanzranking-mit-typo3-find-und-solr.md)
* [5.5 Suchmaschinenoptimierung](/kapitel-5/55_suchmaschinenoptimierung.md)
* [Kapitel 6](kapitel-6.md)
* [6.1 VuFind-Tutorial](/kapitel-6/61_vufind-tutorial.md)
* [6.2 Daten im Format MARC21 indexieren](/kapitel-6/62_daten-im-format-marc21-indexieren.md)
* [6.3 Installation von MarcEdit](/kapitel-6/63_installation-von-marcedit.md)
* [6.4 Harvesting mit MarcEdit](/kapitel-6/64_harvesting-mit-marcedit.md)
* [Kapitel 7](kapitel-7.md)
* [7.1 Semantische Daten](/kapitel-7/71_semantische-daten-fuer-webauftritt.md)
* [7.2 Linked Data nach dem Hype](/kapitel-7/72_linked-data-nach-dem-hype.md)
* [7.3 Projekt Linked swissbib](/kapitel-7/73_projekt-linked-swissbib.md)
* [7.4 Datenmodell und Datentransformation](/kapitel-7/74_datenmodell-und-datentransformation.md)
* [7.5 Übung: RDF mit Metafacture generieren](/kapitel-7/75_uebung-rdf-mit-metafacture-generieren.md)
* [7.6 Verlinkung und Anreicherung](/kapitel-7/76_verlinkung-und-anreicherung.md)
* [7.7 Übung: Linking mit Limes](/kapitel-7/77_uebung-linking-mit-limes.md)
* [7.8 Oberfläche: Projektresultate und Integration](/kapitel-7/78_oeberflaeche-projektresultate-integration.md)
* [7.9 Publikation und Nachnutzung](/kapitel-7/79_publikation-und-nachnutzung.md)
* [Lerntagebücher](lerntagebucher.md)
* [Lösungen](losungen.md)
* [1. Technische Grundlagen](01_technische-grundlagen.md)
* [2. Funktion und Aufbau von Bibliothekssystemen](02_funktion-und-aufbau-von-bibliothekssystemen.md)
* [3. Funktion und Aufbau von Archivsystemen](03_funktion-und-aufbau-von-archivsystemen.md)
* [4. Repository-Software für Publikationen und Forschungsdaten](04_repository-software-fuer-publikationen-und-forschungsdaten.md)
* [5. Metadaten modellieren und Schnittstellen nutzen](05_metadaten-modellieren-und-schnittstellen-nutzen.md)
* [6. Suchmaschinen und Discovery-Systeme](06_suchmaschinen-und-discovery-systeme.md)
* [7. Linked Data](07_linked-data.md)

View File

@ -1,8 +0,0 @@
{% extends template.self %}
{% block head %}
{{ super() }}
<script type="application/ld+json">
{{ page.lrmi | dump() }}
</script>
{% endblock head %}

View File

@ -1,8 +0,0 @@
{% extends template.self %}
{% block head %}
{{ super() }}
<script type="application/ld+json">
{{ page.lrmi | dump() }}
</script>
{% endblock head %}

BIN
data/vufind-testdaten.zip Normal file

Binary file not shown.

1
docsify/buble.css Normal file

File diff suppressed because one or more lines are too long

9
docsify/docsify-copy-code.min.js vendored Normal file
View File

@ -0,0 +1,9 @@
/*!
* docsify-copy-code
* v2.1.0
* https://github.com/jperasmus/docsify-copy-code
* (c) 2017-2019 JP Erasmus <jperasmus11@gmail.com>
* MIT license
*/
!function(){"use strict";function r(o){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o})(o)}!function(o,e){void 0===e&&(e={});var t=e.insertAt;if(o&&"undefined"!=typeof document){var n=document.head||document.getElementsByTagName("head")[0],c=document.createElement("style");c.type="text/css","top"===t&&n.firstChild?n.insertBefore(c,n.firstChild):n.appendChild(c),c.styleSheet?c.styleSheet.cssText=o:c.appendChild(document.createTextNode(o))}}(".docsify-copy-code-button,.docsify-copy-code-button span{cursor:pointer;transition:all .25s ease}.docsify-copy-code-button{position:absolute;z-index:1;top:0;right:0;overflow:visible;padding:.65em .8em;border:0;border-radius:0;outline:0;font-size:1em;background:grey;background:var(--theme-color,grey);color:#fff;opacity:0}.docsify-copy-code-button span{border-radius:3px;background:inherit;pointer-events:none}.docsify-copy-code-button .error,.docsify-copy-code-button .success{position:absolute;z-index:-100;top:50%;left:0;padding:.5em .65em;font-size:.825em;opacity:0;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.docsify-copy-code-button.error .error,.docsify-copy-code-button.success .success{opacity:1;-webkit-transform:translate(-115%,-50%);transform:translate(-115%,-50%)}.docsify-copy-code-button:focus,pre:hover .docsify-copy-code-button{opacity:1}"),document.querySelector('link[href*="docsify-copy-code"]')&&console.warn("[Deprecation] Link to external docsify-copy-code stylesheet is no longer necessary."),window.DocsifyCopyCodePlugin={init:function(){return function(o,e){o.ready(function(){console.warn("[Deprecation] Manually initializing docsify-copy-code using window.DocsifyCopyCodePlugin.init() is no longer necessary.")})}}},window.$docsify=window.$docsify||{},window.$docsify.plugins=[function(o,s){o.doneEach(function(){var o=Array.apply(null,document.querySelectorAll("pre[data-lang]")),c={buttonText:"Copy to clipboard",errorText:"Error",successText:"Copied"};s.config.copyCode&&Object.keys(c).forEach(function(t){var n=s.config.copyCode[t];"string"==typeof n?c[t]=n:"object"===r(n)&&Object.keys(n).some(function(o){var e=-1<location.href.indexOf(o);return c[t]=e?n[o]:c[t],e})});var e=['<button class="docsify-copy-code-button">','<span class="label">'.concat(c.buttonText,"</span>"),'<span class="error">'.concat(c.errorText,"</span>"),'<span class="success">'.concat(c.successText,"</span>"),"</button>"].join("");o.forEach(function(o){o.insertAdjacentHTML("beforeend",e)})}),o.mounted(function(){document.querySelector(".content").addEventListener("click",function(o){if(o.target.classList.contains("docsify-copy-code-button")){var e="BUTTON"===o.target.tagName?o.target:o.target.parentNode,t=document.createRange(),n=e.parentNode.querySelector("code"),c=window.getSelection();t.selectNode(n),c.removeAllRanges(),c.addRange(t);try{document.execCommand("copy")&&(e.classList.add("success"),setTimeout(function(){e.classList.remove("success")},1e3))}catch(o){console.error("docsify-copy-code: ".concat(o)),e.classList.add("error"),setTimeout(function(){e.classList.remove("error")},1e3)}"function"==typeof(c=window.getSelection()).removeRange?c.removeRange(t):"function"==typeof c.removeAllRanges&&c.removeAllRanges()}})})}].concat(window.$docsify.plugins||[])}();
//# sourceMappingURL=docsify-copy-code.min.js.map

1
docsify/docsify-pagination.min.js vendored Normal file

File diff suppressed because one or more lines are too long

1
docsify/docsify.min.js vendored Normal file

File diff suppressed because one or more lines are too long

1
docsify/prism-bash.min.js vendored Normal file

File diff suppressed because one or more lines are too long

1
docsify/search.min.js vendored Normal file

File diff suppressed because one or more lines are too long

1
docsify/zoom-image.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -1,15 +0,0 @@
graph LR
SRU((swissbib SRU)) -->|request / <br>response| MARC("swissbib<br>MARC21 (XML)")
MARC -->|Import| OpenRefine2[Bereinigung, Transformation, Normalisierung<br>mit OpenRefine]
subgraph Datentransformation
OpenRefine2 -->|Export| swissbib("swissbib<br>TSV")
end
swissbib -->|Indexierung| Solr(Suchindex<br>Apache Solr)
subgraph Discovery-System
Solr --- TYPO3((Katalogoberfläche<br>TYPO3 + TYPO3-find))
TYPO3 --> user(":-)")
end

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 601 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 97 KiB

BIN
images/cc-by-88x31.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 463 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 512 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 207 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 425 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 281 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 133 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 173 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 141 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 268 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 368 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 194 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 687 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 672 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 435 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 243 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 168 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 208 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 219 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 331 KiB

43
index.html Normal file
View File

@ -0,0 +1,43 @@
<!DOCTYPE html>
<html>
<head>
<title>Bibliotheks- und Archivinformatik (BAIN)</title>
<meta name="author" content="Felix Lohmeier, Sebastian Meyer">
<meta name="description" content="Skript zum Kurs Bibliotheks- und Archivinformatik (BAIN) an der FH Graubünden">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta charset="UTF-8">
<meta name="referrer" content="no-referrer">
<link rel="stylesheet" href="docsify/buble.css">
</head>
<body>
<div id="app"></div>
<script>
window.$docsify = {
name: "BAIN",
repo: "felixlohmeier/bibliotheks-und-archivinformatik",
subMaxLevel: 2,
search: 'auto',
loadSidebar: 'SUMMARY.md',
auto2top: true,
noEmoji: true,
pagination: {
previousText: 'ZURÜCK',
nextText: 'VOR',
crossChapter: true
},
copyCode: {
buttonText : 'In die Zwischenablage',
errorText : 'Fehler',
successText: 'Kopiert!'
}
}
</script>
<script src="docsify/docsify.min.js"></script>
<script src="docsify/docsify-copy-code.min.js"></script>
<script src="docsify/docsify-pagination.min.js"></script>
<script src="docsify/prism-bash.min.js"></script>
<script src="docsify/search.min.js"></script>
<script src="docsify/zoom-image.min.js"></script>
</body>
</html>

View File

@ -1,18 +0,0 @@
# Kapitel 1: Einführung ins Thema, Installation der Arbeitsumgebung und eine Wiederholung in Metadatenstandards
Bitte nehmen Sie sich für die folgenden Abschnitte insgesamt etwa 8 Stunden Zeit:
* [1.1 Einführung ins Thema](/kapitel-1/11-einfuhrung-ins-thema.md)
* [1.2 Installation der Arbeitsumgebung](/kapitel-1/12-installation-der-arbeitsumgebung.md)
* [1.3 Übung: Text durchsuchen und Wörter zählen auf der Kommandozeile](/kapitel-1/13-ubung-text-durchsuchen-und-worter-zahlen-auf-der-kommandozeile.md)
* [1.4 Metadatenstandards und Schnittstellen](/kapitel-1/14-metadatenstandards-und-schnittstellen.md)
* [1.5 Übung: Metadaten über eine SRU-Schnittstelle laden](/kapitel-1/15-ubung-metadaten-uber-eine-sru-schnittstelle-laden.md)
* [1.6 Metadaten ansehen mit OpenRefine](/kapitel-1/16-metadaten-ansehen-mit-openrefine.md)
Beiträge in den Lerntagebüchern der Studierenden:
* Elena Capelli: [Die Entdeckungsreise beginnt...](https://elenasdiscovery.wordpress.com/2017/09/23/erster-blogbeitrag/) und [Erstellen eines Bibliothekskatalogs Teil 1](https://elenasdiscovery.wordpress.com/2017/10/30/erstellen-eines-bibliothekskatalogs-teil-1/)
* Marina Hess: [About This Blog](https://mainsuche.jimdo.com)
* Franziska Neuenschwander: [OPAC vs. Discovery und was das Ganze mit Metadaten zu tun hat (21.09)](https://bainblogweb.wordpress.com/2017/10/09/opac-vs-discovery-und-was-das-ganze-mit-metadaten-zu-tun-hat-21-09/)
* Moreno Pontoriero: [Ring frei!](https://morenoexplores.wordpress.com/2017/09/30/ring-frei/)
* Aline Strauss: [Bibliothekskataloge und Metadatenstandards 21/09/17](https://alinesbiblio.wordpress.com/2017/09/29/kapitel-1-bibliothekskataloge-und-metadatenstandards-210917/)

View File

@ -1,98 +0,0 @@
# 1.1 Einführung ins Thema
In diesem praxisorientierten Kurs setzen Sie Open-Source-Komponenten ein, um einen Prototyp eines Katalogs \(Discovery-System\) herzustellen. Ausgehend vom Laden ausgewählter Metadaten über Schnittstellen, transformieren Sie die Metadaten in ein für Suchmaschinen geeignetes Format, konfigurieren einen Suchindex und erstellen eine prototypische Anzeige eines Katalogs. Durch die konkrete Arbeit mit den Technologien und Beispieldaten lernen Sie die Funktionsweise typischer Software, Schnittstellen und verschiedene Metadatenformate kennen.
## Fragen
* Was unterscheidet Discovery-Systeme von vorherigen Bibliothekskatalogen \(OPACs\)?
* Discovery-Systeme gibt es schon seit etwa 10 Jahren, wo stehen wir heute? Was sind aktuelle Probleme und Lösungsansätze?
* Welche Software gibt es auf dem Markt?
## Vergleich zwischen OPAC und Discovery von Gerald Steilen \(2012\)
[![](../images/steilen-2012.png)](http://www.slideshare.net/steilen/discoverysysteme-die-opacs-der-zukunft)
Quelle: [http://www.slideshare.net/steilen/discoverysysteme-die-opacs-der-zukunft](http://www.slideshare.net/steilen/discoverysysteme-die-opacs-der-zukunft)
Der klassische Bibliothekskatalog \(Online Public Access Catalogue, kurz: OPAC\) wird von NutzerInnen nur noch selten als erster Einstieg gewählt. Gerald Steilen zitiert aus einer Studie von 2009 die folgenden Gründe:
* schlechte Nutzbarkeit
* hohe Komplexität
* fehlende Integration elektronischer Ressourcen
Die Einführung von Discovery-Systemen erfolgte im deutschprachigen Raum etwa **seit Ende der 2000er Jahre** und sollte diesen Kritikpunkten begegnen. Discovery-Systeme versuchen die von Google und anderen Internetsuchmaschinen bekannte Suchfunktionalität \(ein Suchschlitz und nach Relevanz sortierte Treffer\) auf Bibliothekskataloge zu übertragen und auch elektronische Medien in einer übergreifenden Suche mit einzubeziehen.
Während OPACs eher auf möglichst exakte Suchergebnisse zielen, liefern Discovery-Systeme sehr viele Suchergebnisse, die ähnlich wie bei anderen Suchmaschinen mittels eines Algorithmus **nach Relevanz sortiert** werden. Der Algorithmus ist meist nicht besonders kompliziert und zählt einfach das Vorkommen der Suchbegriffe in den Katalogeinträgen. Treffer in bestimmten Feldern wie Titel und Autor/in sind mehr wert als Treffer im Beschreibungstext oder in Verlagsangaben. Daraus errechnet die Suchmaschine einen Ergebniswert und sortiert die Trefferliste entsprechend.
Gerald Steilen weist in seinem Vergleich \(Folie 16/17\) auf wichtige Unterschiede der beiden Konzepte hin. Der klassische OPAC folgt dem Paradigma "exact match", während Discovery-Systeme dem Paradigma "best match" folgen. Während beim OPAC die NutzerInnen ihre Suchanfrage präzise formulieren müssen und dazu den Katalog und den Bibliotheksbestand gut kennen müssen, können NutzerInnen beim Discovery-System auch ohne besonderes Vorwissen nach beliebigen Begriffen suchen und erhalten eine sortierte Trefferliste. Durch eine hohe Fehlertoleranz werden **sehr viele Treffer** gefunden unter denen dann aber oft auch unpassende Treffer dabei sind.
Discovery-Systeme versprechen eine intuitive Nutzbarkeit. Das bedeutet aber nicht, dass die Systemeinführung ebenso "von der Stange" funktioniert. Es ist wichtig, das System richtig zu konfigurieren und auf die Bibliotheksbestände anzupassen. Um gute Filtermöglichkeiten \(Facetten\) anbieten zu können, **müssen Felder in den Metadaten identifiziert werden, die geeignet und einheitlich belegt sind** . Gegebenenfalls sind die Katalogeinträge vorher nachzubearbeiten oder zu bereinigen.
Die Systemarchitektur von Discovery-Systemen **lässt sich konzeptionell in eine Suchmaschine und eine Oberfläche/Webseite trennen** . In der Suchmaschine werden die Katalogeinträge indexiert. Die NutzerInnen rufen die Webseite mit der Katalogoberfläche auf und geben dort ihre Suchanfrage ein. Im Hintergrund gibt die Oberfläche die Anfrage an die Suchmaschine weiter und erhält von dieser ein Ergebnis \(eine Trefferliste\) zurück. Die NutzerInnen hingegen erhalten dieses Ergebnis grafisch aufbereitet auf der Webseite der Katalogoberfläche.
Funktionen zur Ausleihe, zur Verwaltung des Benutzerkontos und zur Anzeige von aktuellen Verfügbarkeitsinformationen sind oft nicht direkter Bestandteil des Discovery-Systems, sondern Teil des "Lokalsytems" \(vgl. Folie 19\). Damit ist das System gemeint, in dem die Bibliothek "verwaltet" wird, also in dem die Ausleihe, die Erwerbung und die Katalogisierung stattfindet. **Discovery-System und Lokalsystem kommunizieren über eine Schnittstelle** miteinander, so dass die Informationen aus dem Lokalsystem im Katalog live angezeigt werden können \(beispielsweise der Ausleihstatus von Büchern\).
## Zwischenbilanz von Anne Christensen \(2014\)
[![](../images/christensen-2014.png)](http://www.slideshare.net/xenzen/discoverysysteme-zwischenbilanz-fr-eine-bibliothekarische-lsung-in-einer-postbibliothekarischen-welt)
Quelle: [http://www.slideshare.net/xenzen/discoverysysteme-zwischenbilanz-fr-eine-bibliothekarische-lsung-in-einer-postbibliothekarischen-welt](http://www.slideshare.net/xenzen/discoverysysteme-zwischenbilanz-fr-eine-bibliothekarische-lsung-in-einer-postbibliothekarischen-welt)
Anne Christensen konstatiert den Monopolverlust der Bibliotheken und zitiert eine Studie von OCLC aus dem Jahr 2005, in dem nur 2% der College Students ihre Suche nach elektronischen Informationen auf der Webseite der Bibliothek beginnen. Daraufhin stellt sie die \(rhetorische\) Frage, ob es sich bei der Einführung von Discovery-Systemen nur um ein "Rückzugsgefecht" handle und angesichts der Dominanz von Suchmaschinen wie Google das "Thema Suche" von Bibliotheken ganz aufgegeben werden sollte.
Sie spricht sich dafür aus, das Thema Discovery-Systeme in Bibliotheken weiter zu behandeln. Die Herausforderung für Bibliothekarinnen und Bibliothekaren bezeichnet sie als einen schmalen Grat mit dem **Ziel "bibliothekarisches Know-How sichtbar \(zu\) machen und aus\(zu\)spielen" und gleichzeitig "Bibliothekarische Vorstellung los\(zu\)lassen".**
Für die Probleme der Bibliotheken mit Discovery-Lösungen \(zu vereinfacht, zu viel, zu ungenau und zu obskur\) schlägt sie zwei Lösungsansätze vor:
1. Klarheit über Architektur und Funktionsweise von Discovery-Systemen gewinnen
2. Klarheit über grundverschiedene "mentale Modelle" gewinnen \(denjenigen von BibliothekarInnen und NutzerInnen\)
Sie plädiert für einen pragmatischen Ansatz und **Ausrichtung der Suchoberflächen nach Nutzerwünschen** . So ist beispielsweise das Angebot von Delivery-Optionen \(elektronisch, sofort ausleihbar, ausleihbar/wartezeit, Fernleihe\) sehr wichtig.
Als Verbesserungsmöglichkeiten für aktuelle Discovery-Systeme \(Präsentation von 2014\) spricht sie an:
* Verbesserung des Rankings,
* Nutzung von Normdaten,
* Zusammenspiel zwischen Bibliothekssystem, Discovery System und
**Link-Resolvern**
Mittelfristig haben aus ihrer Sicht weder lokale Bibliothekskataloge noch lokale Discovery-Lösungen eine Zukunft, weshalb die Definition von Austauschformaten für Lizenzinformationen sehr wichtig ist.
Weil Discovery viele bibliothekarische Kernthemen betrifft \(sie nennt Katalogisierung, Authoritäts- und Qualitätskontrolle, Bestandsentwicklung, Informationskompetenz-Vermittlung\) sei die Beschäftigung damit ein guter Ansatzpunkt, "wenn man eine bibliothekarische Zukunft gestalten will".
## Marktüberblick von Marshall Breeding \(2014\)
[![](../images/breeding-2014.png)](https://journals.ala.org/ltr/issue/view/195)
Quelle: [https://journals.ala.org/ltr/issue/view/195](https://journals.ala.org/ltr/issue/view/195)
Der Autor Marshall Breeding schreibt seit längerer Zeit zusammenfassende Berichte über den Stand von IT-Systemen in Bibliotheken und hat insbesondere über die Entwicklung von Discovery-Systemen berichtet. Er war von 1985 bis 2012 in einer Bibliothek in den USA tätig und ist gleichzeitig seit 1985 als IT-Berater tätig. Durch seine Arbeit ist er den kommerziellen Anbietern recht nah und kann daher einen guten Marktüberblick geben, gleichzeitig ist er nicht völlig unabhängig, was bei der Rezeption der Texte zu beachten ist.
Sein umfassender Bericht von 2014 in der Zeitschrift ALA TechSource bietet einen guten Einstieg. Den Ergebnissen der Befragung ist zu entnehmen, dass den Markt in den USA **nur wenige Anbieter** prägen. Bei wissenschaftlichen Bibliotheken sind dies 2014 insbesondere:
* Ex Libris: Primo / Primo Central
* ProQuest: Summon
* OCLC: WorldCat local
* EBSCO: EBSCO Discovery Service
* iii: Encore \(auf Basis von EBSCO Discovery Service\)
Es gibt zwar noch eine Reihe von anderen Anbietern, aber diese sind vor allem an kleineren Einrichtungen oder mit geringen Installationszahlen auf dem Markt für wissenschaftliche Bibliotheken tätig. Open-Source-Systeme wie VuFind sind ebenfalls noch recht wenig verbreitet.
Von großer Bedeutung sind die **von den Anbietern aufgebauten Indizes mit elektronischen Artikeln** , die zusammen mit dem Discovery-Produkt, manchmal aber auch allein lizenziert werden können. Die Anbieter übernehmen dabei die Aufgabe, die Metadaten zu lizenzpflichtigen und lizenzfreien Online-Ressourcen aus verschiedenen Quellen zusammenzutragen und zu normalisieren. Der daraus resultierende "Gesamtindex" wird dann mit den Lizenzen der Kunden \("Holdings"\) abgeglichen und im Discovery-System integriert oder in einem separaten Suchraum "Elektronische Artikel" oder ähnlich bereitgestellt.
Zum genaueren Verständnis der Funktion des Gesamtindex \("Central Index"\) ist ergänzend der folgende Artikel von Athena Hoeppner von 2012 hilfreich: [The Ins and Outs of Evaluating Web-Scale Discovery Services](http://www.infotoday.com/cilmag/apr12/Hoeppner-Web-Scale-Discovery-Services.shtml) . In: Computers in Libraries, April 2012.
## **Neuere Entwicklungen**
Seit dem Artikel aus 2014 hat im Zuge der Einführung von Cloud-Lösungen und durch eine große Übernahme eine weitere Marktkonzentration stattgefunden:
* **ProQuest hat Ende 2015 Ex Libris aufgekauft.** Die beiden Produktlinien Summon und Primo existieren derzeit noch parallel, werden aber vermutlich zukünftig zusammengeführt.
* Ex Libris Primo wird mittlerweile vor allem in Kombination mit ALMA \(einem kompletten Bibliothekssystem\) als **Cloud-Lösung ** verkauft. Das gleiche gilt für OCLC, die ihre Cloud-Lösung WorldShare Management Services als neues Hauptprodukt bewerben.
* OCLC und Ex Libris verfolgen beide das Ziel den **Austausch von Metadaten vor allem innerhalb ihrer Kundschaft **zu forcieren. So gibt es bei ALMA eine "Common Bibliographic Data Zone" und bei OCLC die Integration des "WorldCat". Durch die Verfügbarkeit von geteilten Metadaten zur Katalogisierung und Erwerbung innerhalb der Systeme versprechen die Firmen den Bibliotheken Arbeitserleichterungen und sich selbst einen Marktvorteil. In Kombination mit der engen Kopplung der Bibliothekssysteme mit den Discovery-Systemen und der Angebote als Cloud-Lösungen entstehen hohe Abhängigkeiten. Ein Wechsel zwischen den Anbietern oder die Nutzung einzelner Komponenten wird erschwert. Das führt zu einem [**Vendor-lockin**](https://en.wikipedia.org/wiki/Vendor_lock-in).
* EBSCO ist nicht nur Anbieter von Bibliothekssoftware, sondern betreibt auch Fachdatenbanken. In Konkurrenz zu anderen Anbietern versucht EBSCO daraus einen Vorteil zu gewinnen, indem es die Inhalte der Fachdatenbanken bevorzugt im eigenen Discovery-System-Index verfügbar macht. Darüber ist **2013-2015 ein Streit mit Ex Libris** entbrannt, woraufhin Kunden von Ex Libris versucht haben eine Einigung herbeizuführen \(siehe Zusammenfassung der ORBIS CASCADE ALLIANCE, einem Zusammenschluss von amerikanischen Universitätsbibliotheken: [https://www.orbiscascade.org/ebsco-ex-libris/](https://www.orbiscascade.org/ebsco-ex-libris/)\).
* Um den Komplettlösungen von OCLC und Ex Libris zu begegnen, hat EBSCO zudem Mitte 2016 [in das Open-Source-Projekt Kuali OLE investiert](https://www.ebsco.com/e/de-de/nachrichten-center/pressemitteilungen-in-deutscher-sprache/folio-die-neue-kooperation-bringt-bibliotheken-dienstleister-und-entwickler) und dieses unter neuem Namen [FOLIO](https://www.folio.org) herausgebracht. Zusammen mit der Firma Index Data wird eine Alternative zu den Komplettlösungen von Ex Libris und OCLC entwickelt. Ob der angekündigte Weg der Open-Source-Community tatsächlich in Reinform eingehalten wird oder doch Abhängigkeiten geschaffen werden, bleibt noch abzuwarten.
Marshall Breeding schreibt regelmäßig Berichte unter dem Titel "Library Systems Report". Der diesjährige [Artikel von 2016](https://americanlibrariesmagazine.org/2016/05/02/library-systems-report-2016/) ist mit "Power plays" untertitelt. Das spielt auf die oben beschriebene **zunehmende Marktkonzentration** an.
Es gibt Bestrebungen, die Discovery-Systeme möglichst unabhängig von Bibliothekssystemen einsetzbar zu halten und zu gewährleisten, dass wissenschaftliche Inhalte unabhängig von Marktinteressen in allen Discovery-Systemen nachgewiesen werden können. In den USA hat die [**"Open Discovery Initiative \(ODI\)"**](https://www.niso.org/standards-committees/odi) des Standardisierungsgremiums NISO eine umfangreiche Empfehlung dazu herausgegeben: [NISO RP-19-2014: A Recommended Practice of the National Information Standards Organization](https://www.niso.org/publications/rp-19-2014-odi).

View File

@ -1,32 +0,0 @@
# 1.2 Installation der Arbeitsumgebung
Wir arbeiten mit dem Linux-Betriebssystem [**Ubuntu MATE**](https://ubuntu-mate.org/)** 16.04** LTS. Wir nutzen eine "Live"-Version mit persistentem Storage. Dadurch gibt es folgende Besonderheiten:
* Änderungen am System und eigene Daten werden in der Partition "**casper-rw**" gespeichert.
* Die Partition "**usbdata**" kann zum Datenaustausch genutzt werden. Sie ist mit dem Dateisystem NTFS formatiert und kann auch auf einem Windows-Rechner eingelesen werden.
* Der Live-Session-User heißt "**ubuntu-mate**" und hat kein Passwort.
Im Kurs verwenden wir **vorbereitete USB-Sticks**, um das System auf eigenen Laptops zu booten.
Wer dieses Skript im **Selbststudium außerhalb der HTW Chur** bearbeiten möchte, der kann sich die Software [VirtualBox](https://www.virtualbox.org/wiki/Downloads) \(kostenfrei erhältlich für Windows, MacOS und Linux\) installieren und die folgende Appliance herunterladen und importieren \(VirtualBox Manager aufrufen, STRG+I drücken und Datei auswählen\): [https://felixlohmeier.de/htw/htw-usb.ova](https://felixlohmeier.de/htw/htw-usb.ova) \(2,9 GB\). Starten Sie die virtuelle Maschine und beginnen Sie direkt mit Kapitel 1.3. Wenn Sie Unterstützung bei der Einrichtung von VirtualBox benötigen, schreiben Sie gerne eine Mail an [mail@felixlohmeier.de](mailto:mail@felixlohmeier.de).
![](../images/willkommen.png)
## Arbeitsumgebung starten (entfällt bei der Verwendung von VirtualBox)
### Schritt 1: Von USB-Stick booten
Hinweise für verschiedene Betriebssysteme:
* **Windows 7/10**: Neu starten und während des Bootvorgangs die Tasten F2, F8, F10, F12, ENTF/DEL oder Esc \(je nach Computer unterschiedlich\) drücken. In den UEFI-Einstellungen bzw. im BIOS die Bootreihenfolge ändern oder explizit vom USB-Stick starten.
* **Windows 8**: Windows-Taste + I, Umschalt-\(Shift-\)Taste gedrückt halten und Neustart wählen. Im Menü Problembehandlung / Erweiterte Optionen / UEFI-Firmwareeinstellung. Dort "Ein Gerät verwenden".
* **macOS**: Während des Bootvorgangs die "Alt"-Taste gedrückt halten.
### Schritt 2: Internetverbindung herstellen
siehe WLAN-Symbol oben rechts
### Schritt 3: Freien Arbeitsspeicher und verfügbaren Speicher in Dateisystemen prüfen
siehe Anwendungen / Systemwerkzeuge / MATE-Systemüberwachung

View File

@ -1,65 +0,0 @@
# 1.3 Übung: Text durchsuchen und Wörter zählen auf der Kommandozeile
Im Laufe des Kursus verwenden wir des Öfteren die [Kommandozeile](https://de.wikipedia.org/wiki/Kommandozeile), um Programme zu installieren und zu konfigurieren. Gleichzeitig ist sie ein mächtiges Werkzeug, um mit Textdateien umzugehen. Es lohnt also den Umgang damit kurz zu üben.
## Kommandozeile \(Terminal\) starten {#kommandozeile-terminal-starten}
Die Kommandozeile \(auch "[Terminal](https://wiki.ubuntuusers.de/Terminal/)" genannt\) von Ubuntu MATE erreichen wir über das Menü "Anwendungen -&gt; Systemwerkzeuge -&gt; MATE-Terminal".
![](../images/mate-terminal.png)
## Installieren Sie das kleine Programm curl {#installieren-sie-das-kleine-programm-curl}
Für die folgende Übung wird das \(sehr\) kleine Programm curl benötigt. Bei vielen Linux-Distributionen ist es vorinstalliert, aber bei Ubuntu MATE nicht. Starten Sie zur Installation die Kommandozeile \(Terminal\) und geben Sie den folgenden Befehl ein:
`sudo apt-get install curl`
Nach dem kurzen Installationsprozess sollte es etwa so aussehen:
![](../images/curl-installieren.png)
## Übung: Text durchsuchen und Wörter zählen {#übung-text-durchsuchen-und-wörter-zählen}
Starten Sie die Kommandozeile \(Terminal\) und geben Sie die folgenden Befehle ein:
### Schritt 1: "War and Peace" von Leo Tolstoy herunterladen und anzeigen {#schritt-1-war-and-peace-von-leo-tolstoy-herunterladen-und-anzeigen}
* `curl http://www.gutenberg.org/files/2600/2600-0.txt > war_and_peace.txt`
* `cat war_and_peace.txt | less`
Der Anhang `| less` am zweiten Befehl zeigt den Text so an, dass Sie mit den Pfeiltasten scrollen können. Beenden können Sie die Ansicht mit der Taste `q`.
### Schritt 2: Zeilen, Wörter und Zeichen zählen mit wc {#schritt-2-zeilen-wörter-und-zeichen-zählen-mit-wc}
* `wc war_and_peace.txt`
Die drei Nummern sind Zeilen, Wörter und Zeichen \(in dieser Reihenfolge\).
### Schritt 3: Suche nach Vorkommnissen der Wörter "war" and "peace" {#schritt-3-suche-nach-vorkommnissen-der-wörter-war-and-peace}
* `cat war_and_peace.txt | grep -i -ow war | wc`
* `cat war_and_peace.txt | grep -i -ow peace | wc`
Was wird häufiger in diesem Text erwähnt? Krieg oder Frieden?
## Hilfreiche Grundlagen bei der Arbeit mit der Kommandozeile {#hilfreiche-grundlagen-bei-der-arbeit-mit-der-kommandozeile}
* Dateien und Verzeichnisse: siehe [Cheatsheet](http://cheatsheetworld.com/programming/unix-linux-cheat-sheet/)
* Abbruch / Programm beenden: _**STRG**_ und _**C**_
* Kurzhilfe eines Programms aufrufen: _**Programmname**_** --help**
* Handbuch eines Programms aufrufen: **man **_** Programmname**_
* Automatische Ergänzung von Befehlen: _**Tab**_
* Vorige Kommandos anzeigen: _**Pfeiltaste nach oben**_
* Suche in Historie der Kommandozeile: _**STRG**_ und _**R**_
Die meisten Antworten finden sich über einfache Suchen im Internet. Meist reicht es an die passenden Suchbegriffe das Wort "linux" mit anzuhängen.
## Literatur {#literatur}
* Ausführlichere Übung im Blog des Projekts Librecat/Catmandu: [https://librecatproject.wordpress.com/2014/12/04/day-4-grep-less-and-wc/](https://librecatproject.wordpress.com/2014/12/04/day-4-grep-less-and-wc/). Dabei bitte beachten: Die dort referenzierte Textdatei ist anders strukturiert als die obige _war\_and\_peace.txt_ und liefert daher andere Zählergebnisse.
* Dreistündiger Einführungskurs "Shell Lessons for Librarians" im Projekt "Library Carpentry" [http://data-lessons.github.io/library-shell/](http://data-lessons.github.io/library-shell/)
* Eine gute Einführung in die Linux-Kommandozeile bietet [http://linuxcommand.org](http://linuxcommand.org) von William E. Shotts, der auch ein kostenfreies [540-Seiten-Buch](http://linuxcommand.org/tlcl.php) darüber geschrieben hat.
* Es gibt sehr viele praktische kleine Programme auf der Kommandozeile. Zur Übersicht eignet sich daher ein Spickzettel \("Cheatsheet"\) sehr gut. Ein Beispiel für die unzähligen Cheatsheets: [http://cheatsheetworld.com/programming/unix-linux-cheat-sheet/](http://cheatsheetworld.com/programming/unix-linux-cheat-sheet/).

View File

@ -1,59 +0,0 @@
# 1.4 Metadatenstandards und Schnittstellen
## Fragen
* Welche Datenformate sind im Bibliotheksbereich üblich?
* Über welche Schnittstellen können Daten abgerufen werden?
## Zum Einstieg
"Die Datenübersetzerin" - [Interview mit Kirsten Jeude im Podcast der ZBW](https://www.youtube.com/watch?v=YwbRTDvt_sA)
[![](../images/interview-kirsten-jeude.png)](https://www.youtube.com/watch?v=YwbRTDvt_sA)
## Metadatenformate und -standards
Zusammenfassung einiger wichtiger Punkte mit Verweis auf Folien in einer Präsentation von Kirsten Jeude.
Siehe auch: Kirsten Jeude \(2013\): Auf Du und Du mit Dublin Core & Co. - Berufsfeld Metadaten-Management im Kontext der Bibliothek der Zukunft. Metadaten-Management im Leibniz-Informationszentrum Wirtschaft.[ Präsentationsfolien bei Slideshare](http://www.slideshare.net/suvanni/auf-du-und-du-mit-dublin-core-co-berufsfeld-metadatenmanagement-im-kontext-der-bibliothek-der-zukunft).
Es gibt viele verschiedene Definitionen für Metadaten, je nach Perspektive \(z.B. der IT, der KatalogbastlerInnen, der BibliothekarInnen usw.\). Grundsätzlich sind es \(vgl. Folie 13\) **strukturierte "Daten über Daten"**, also eine formale Beschreibung einer Vielzahl von Dingen \(Texte, Bilder, Objekte, Personen, usw.\). Metadaten sollen u.a. das Auffinden, Identifizieren, Auswählen und den Zugang zu einer Ressource erleichtern. Metadaten können getrennt vom beschriebenen Objekt in einer separaten Datei gespeichert oder in das Objekt eingebettet sein. Bilddateien wie JPG enthalten zum Beispiel eingebettete Metadaten \(Aufnahmedatum, Auflösung usw.\).
Da die Anforderungen an Metadaten kontextabhängig sind, gibt es eine Vielzahl an Standards, die sich entwickelt haben. Beispiele im Bibliothekswesen sind **PICA, MODS, DC, MAB, MARC21, METS, EAD, TEI, LIDO **\(vgl. Folie 44\). Diese Standards können technisch in verschiedenen Formaten \(Text, XML\) umgesetzt werden. Die Regeln der Standards werden oft in einem **Schema** dokumentiert, mit dem sich prüfen lässt, ob eine Datei \(technisch\) standardkonform ist. Wenn eine Anwendung genauere Festlegungen treffen will oder gar Elemente aus verschiedenen Standards kombiniert werden sollen, dann wird dies in einem ** Anwendungsprofil ** festgelegt \(vgl. Folie 59\).
Um Metadaten aus verschiedenen Quellen zusammenzuführen, ist meist ein "Übersetzen" der Daten aus verschiedenen Quellschemas \(MARC21, PICA\) in ein einheitliches Zielschema notwendig. Dieser Prozess wird **Mapping \(oder auch "Crosswalk"\)** genannt. Dabei gehen je nach Schema mehr oder weniger Informationen verloren. Es gibt Standard-Crosswalks zwischen Metadatenstandards, die als Grundlage dienen können. Da aber jede Einrichtung die Daten etwas anders erfasst \(ist ja nur menschlich\), lohnt es sich immer in die Daten zu schauen, wie die einzelnen Metadatenfelder wirklich befüllt sind. Die meisten Mappings werden daher teils auf Basis von Standard-Crosswalks, teils auf Basis von Beispieldaten erstellt \(zu Problemen beim "Mapping in der Praxis" vgl. die Folien 70ff\).
## Schnittstellen
Für den Austausch von Metadaten gibt es **Schnittstellen wie Z39.50, SRU oder OAI-PMH** \(vgl. Folie 86ff\). Die Anbieter erstellen in der Regel ausgehend von ihrem internen Datenformat die übrigen "Exportformate" automatisch. Dazu werden Übereinstimmungen zwischen den Feldern definiert, die wie gesagt als Mapping oder [Crosswalk](https://en.wikipedia.org/wiki/Schema_crosswalk) bezeichnet werden. Wenn nicht alle Daten aus dem internen Datenformat in das Zielformat passen \(wie zum Beispiel beim "kleinsten gemeinsamen Nenner" der Metadatenformate: Dublin Core\), dann gehen bei diesem Prozess Informationen verloren. Wenn alle Daten "verlustfrei" verarbeitet werden sollen, muss also grundsätzlich entweder mit dem internen \(auch: [nativ](http://www.duden.de/rechtschreibung/nativ)en\) Datenformat gearbeitet werden oder es muss genau \(in der Dokumentation\) geprüft werden, ob der Crosswalk zum Zielformat wirklich vollständig ist. Das Abrufen der Daten über Schnittstellen wird **"Harvesting"** genannt.
## Aggregatoren
Viele Non-Profit-Einrichtungen sammeln Daten aus verschiedensten Quellen, um diese gebündelt und in einem einheitlichen Schema zur Verfügung zu stellen. Der Prozess wird oft als Aggregieren, die Datenbereitsteller als Aggregatoren bezeichnet. Beispiele:
* Bibliotheksverbünde: Lokale Bibliotheksdaten, teilweise auch Bereitsteller von Indizes \(wie GBV Zentral\)
* CrossRef: Artikel aus elektronischen Zeitschriften mit DOIs
* Bielefeld Academic Search Engine \(BASE\): Inhalte aus Repositorien \(vorwiegend Open Access\)
* Deutsche Digitale Bibliothek bzw. Europeana
## Metadateninteroperabilität
* die Einigung auf ein einziges übergreifendes Metadatenformat ist nicht realistisch, weil verschiedene Ressourcen beschrieben werden sollen und verschiedene Anforderungen an die Daten gestellt werden \(und weil unterschiedliche Katalogisierungstraditionen bestehen\)
* Eine Interoperabilität zwischen Formaten muss durch Werkzeuge erreicht werden
* setzt offene Standards voraus
Die "Open Bibliographic Data Working Group" der Open Knowledge Foundation hat 2011 Prinzipien zu offenen bibliografischen Daten veröffentlicht \(vgl. [Webseite im Internet Archive](http://web.archive.org/web/20160426071002/http://openbiblio.net/principles/)\):
* Grundlage: [Open Definition](http://opendefinition.org) "Wissen ist offen, wenn jedeR darauf frei zugreifen, es nutzen, verändern und teilen kann"
* Empfohlene Lizenzen: Public Domain Dedication and License \(PDDL\) oder Creative Commons Zero \(CC0\)
Gemeinsam mit der Public Domain Working Group ist ein "Open Metadata Handbook" entstanden. Letzte stabile Version vom 12.3.2014: [https://en.wikibooks.org/w/index.php?title=Open\_Metadata\_Handbook&stable=1](https://en.wikibooks.org/w/index.php?title=Open_Metadata_Handbook&stable=1).
## Literatur {#literatur}
* Wikipedia zu Metadaten: [https://de.wikipedia.org/wiki/Metadaten](https://de.wikipedia.org/wiki/Metadaten)
* Onlinetutorial "Einführung in Metadaten und Metadatenformate" von Claudia Effenberger und Stefanie Rühle: [http://moodle.dnb.de/course/view.php?id=14](http://moodle.dnb.de/course/view.php?id=14)
* Kleines Handbuch der DINI AG KIM: [http://www.kim-forum.org/Subsites/kim/DE/Materialien/Handbuch/handbuch\_node.html](http://www.kim-forum.org/Subsites/kim/DE/Materialien/Handbuch/handbuch_node.html)

View File

@ -1,40 +0,0 @@
# 1.5 Übung: Metadaten über eine SRU-Schnittstelle laden
Das Projekt [swissbib](https://www.swissbib.ch) sammelt Metadaten aller schweizer Universitätsbibliotheken, der Nationalbibliothek und einiger Kantonsbibliotheken sowie weiterer Institutionen. Der gemeinsame Katalog ermöglicht eine übergreifende Suche, gleichzeitig bietet swissbib auch Schnittstellen an, über welche Metadaten der teilnehmenden Institutionen zentral bezogen werden können.
In der folgenden Übung nutzen wir die SRU-Schnittstelle \(SRU steht für [Search/Retrieve via URL](http://www.loc.gov/standards/sru/)\).
## Aufgabe 1: 10 Records über die SRU-Schnittstelle von swissbib laden {#aufgabe-1-100-records-über-die-sru-schnittstelle-laden}
Lesen Sie die [Dokumentation zur SRU-Schnittstelle von Swissbib](http://www.swissbib.org/wiki/index.php?title=SRU) und stellen Sie eine Abfrage mit folgenden Parametern zusammen:
* Katalog der Bibliothek der HTW Chur
* Suche über alle Felder nach Suchbegriff: `open`
* Format:`MARC XML - swissbib`
Sie können dazu das Formular auf der Webseite [http://sru.swissbib.ch](http://sru.swissbib.ch) verwenden oder die URL anhand der Dokumentation selbst zusammenbauen.
## Aufgabe 2: Laden Sie die gleichen Daten in anderen Formaten \(z.B. Dublin Core\) und vergleichen Sie
Tipp: Öffnen Sie zwei Browserfenster nebeneinander, um die Unterschiede leichter sehen zu können.
![](../images/swissbib-sru.png)
## Aufgabe 3: Speichern der Daten mit curl
Sie können die heruntergeladenen Daten direkt aus dem Browser als Datei abspeichern oder mit dem in Kapitel 1.3 kennengelernten Programm curl herunterladen.
Beispiel marcxml:
```
curl "http://sru.swissbib.ch/sru/search/defaultdb?query=+dc.possessingInstitution+%3D+E27&operation=searchRetrieve&recordSchema=info%3Asrw%2Fschema%2F1%2Fmarcxml-v1.1-light&maximumRecords=10&startRecord=0&recordPacking=XML&availableDBs=defaultdb&sortKeys=Submit+query" > htw-chur-open-10-marc.xml
```
Beispiel dc:
```
curl "http://sru.swissbib.ch/sru/search/defaultdb?query=+dc.anywhere+%3D+open+AND+dc.possessingInstitution+%3D+E27&operation=searchRetrieve&recordSchema=info%3Asru%2Fschema%2F1%2Fdc-v1.1-light&maximumRecords=10&startRecord=0&recordPacking=XML&availableDBs=defaultdb&sortKeys=Submit+query" > htw-chur-open-10-dc.xml
```

View File

@ -1,66 +0,0 @@
# 1.6 Metadaten ansehen mit OpenRefine
[OpenRefine](http://www.openrefine.org) bietet eine grafische Oberfläche zur Analyse und Transformation von Daten, die ähnlich wie eine klassische Tabellenverarbeitungssoftware (MS Excel, LibreOffice Calc, usw.) aufgebaut ist. Wir nutzen diese Software im Seminar, weil sich mit der vertrauten grafischen Oberfläche im Tabellenformat ein schneller Überblick über die Daten gewinnen lässt und die Software mit verschiedenen Datenformaten umgehen kann.
Dem [Repository bei GitHub](https://github.com/OpenRefine/OpenRefine/graphs/contributors) ist zu entnehmen, wer wann zur Entwicklung der Software beigetragen hat. Aktuell gibt es wieder eine kontinuierliche Weiterentwicklung insbesondere in Verbindung mit Funktionen zur Nutzung von [Wikidata](https://www.wikidata.org).
## OpenRefine herunterladen und entpacken
Auf der Webseite von OpenRefine werden verschiedene Varianten zum [Download](http://openrefine.org/download.html) angeboten. Wir laden die Version OpenRefine 2.7 für das Betriebssystem Linux. Die Installationsanleitung auf der Webseite ist simpel: "Download, extract, then type ./refine to start."
Wir erledigen dies wieder mit der Kommandozeile \(MATE-Terminal\):
* Download:
`wget https://github.com/OpenRefine/OpenRefine/releases/download/2.7/openrefine-linux-2.7.tar.gz`
* Extract \(entpacken\):
`tar -xzf openrefine-linux-2.7.tar.gz`
Im Ordner `openrefine-2.7` finden Sie jetzt das Programm OpenRefine.
Als Standardeinstellung verwendet OpenRefine maximal 1400M Arbeitsspeicher. Wenn beim Import oder bei der Transformation der Speicher ausgeht (Absturz und entsprechende Meldungen im Terminal), kann dieser Wert erhöht werden. Die Einstellung ist in der Datei ```refine.ini``` in der Zeile ```REFINE_MEMORY=1400M``` mit einem Texteditor (hier beispielsweise Anwendungen/Zubehör/Pluma Text Editor) vorzunehmen.
## OpenRefine starten
```
~/openrefine-2.7/refine
```
Die Tilde \(`~`\) ist ein Kürzel für ihr Benutzerverzeichnis. Dieser Befehl funktioniert immer, egal in welchem Verzeichnis Sie sich gerade befinden. Wenn Sie sich im Ordner von OpenRefine befinden \(`cd ~/openrefine-2.7`\) reicht ein simples `refine`
Ist der Startvorgang erfolgreich, dann öffnet sich der Browser \(Firefox\) automatisch und Sie bekommen das Programm direkt angezeigt. OpenRefine ist in der Standardeinstellung unter der IP-Adresse [http://127.0.0.1:3333](http://127.0.0.1:3333) erreichbar.
Rufen Sie zunächst den Menüpunkt "Open Project" auf und klicken Sie ganz unten auf den Link "Browse workspace directory". Es öffnet sich der Ordner, in dem OpenRefine die Daten speichert. In der Standardkonfiguration unter Linux ist dies das Verzeichnis ```~/.local/share/openrefine```.
## Übung: Daten aus Kapitel 1.5 in OpenRefine laden
Im Menüpunkt "Create Project" auf den Button "Durchsuchen" klicken und eine der in Kapitel 1.5 gespeicherten XML-Dateien auswählen. Im nächsten Bildschirm unten links bei Parse data as "XML files" auswählen, dann im Vorschaubildschirm auf den Pfad ```<record xmlns:xs="http://www.w3.org/2001/XMLSchema">``` klicken und dann oben rechts den Button "Create Project" drücken.
OpenRefine "versteht" das MARC-Format nicht. Es interpretiert die Daten daher genauso wie jede andere XML-Datei. Wenn Sie die Daten erstmalig in OpenRefine öffnen, sehen Sie daher die üblichen Nummern und Codes für die jeweiligen MARC-Felder in der Baumstruktur der XML-Datei.
Die Bedeutung der MARC-Nummern und Codes müssen Sie nachschlagen. Zur Orientierung können Sie beispielsweise die [Arbeitstabelle der Deutschen Nationalbibliothek](http://www.dnb.de/SharedDocs/Downloads/DE/DNB/standardisierung/marc21FeldbeschreibungTitelExcel032016.zip) in der [Dokumentation des MARC21-Formats](http://www.dnb.de/DE/Standardisierung/Formate/MARC21/marc21_node.html) verwenden.
## Übung: Verschaffen Sie sich einen Überblick über die Daten(struktur) mit Hilfe von Facetten und Text Filtern
* Schauen Sie sich die Einführungsvideos zu OpenRefine an, insbesondere die ca. [7-Minuten-Kurzeinführung bei YouTube](https://www.youtube.com/watch?v=B70J_H_zAWM)
* Konsultieren Sie die [Seite zur Facettierung in der Dokumentation von OpenRefine](https://github.com/OpenRefine/OpenRefine/wiki/Faceting) und probieren Sie verschiedene Facetten aus.
* Gute Übungen zum Einstieg bietet auch Library Carpentry OpenRefine: [Basic OpenRefine Functions I: Working with columns, sorting, faceting, filtering and clustering](https://data-lessons.github.io/library-openrefine/03-basic-functions-I/)
## OpenRefine beenden
OpenRefine ist nur solange verfügbar, wie der oben verwendete Befehl in der Kommandozeile läuft.
1. Beenden Sie OpenRefine mit ```STRG``` und ```C``` auf der Kommandozeile. Der Browser schließt sich automatisch.
2. Starten Sie OpenRefine erneut, indem Sie auf der Kommandozeile mit der ```Pfeiltaste nach oben``` den vorigen Befehl auswählen und mit ```Enter``` ausführen.
Auf der Kommandozeile können Sie übrigens mitverfolgen, wie der Browser und OpenRefine miteinander kommunizieren. Beim Aufruf von OpenRefine im Browser erscheinen beispielsweise die folgenden POST und GET Befehle in der Kommandozeile:
```
15:10:34.819 [ refine] POST /command/core/load-language (19332ms)
15:10:34.940 [ refine] POST /command/core/load-language (121ms)
15:10:35.223 [ refine] POST /command/core/get-importing-configuration (283ms)
15:10:35.509 [ refine] GET /command/core/get-all-project-metadata (286ms)
15:10:35.632 [ refine] GET /command/core/get-languages (123ms)
15:10:35.721 [ refine] GET /command/core/get-version (89ms)
```
OpenRefine führt alle Datentransformationen im Arbeitsspeicher durch und speichert die veränderten Daten automatisch alle 5 Minuten auf die Festplatte. Beim manuellen Beenden in der Kommandozeile werden ebenfalls alle Daten gespeichert. Verwenden Sie also stets die oben beschriebene Vorgehensweise mit ```STRG``` und ```C``` um OpenRefine ordnungsgemäß herunterzufahren. Ansonsten könnten Sie die Änderungen der (maximal) letzten 5 Minuten verlieren.

View File

@ -1,19 +0,0 @@
# Kapitel 2: Bibliotheks- und Archivsysteme
Die Sitzung am 5. Oktober haben Sven Koesling und Michael Gasser von der ETH Zürich gestaltet. Sven Koesling leitet den Bereich IT-Services an der ETH-Bibliothek und Michael Gasser leitet den Bereich Archive an der ETH-Bibliothek. Sie haben einen ausführlichen Praxiseinblick in die an der ETH-Bibliothek verwendeten Bibliotheks- und Archivsysteme gegeben. Hier im Skript werden diejenigen Kernpunkte dokumentiert, die für das weitere Verständnis des Kursus von besonderer Bedeutung sind.
Bitte nehmen Sie sich für die folgenden Abschnitte insgesamt etwa 4 Stunden Zeit:
* [2.1 Metadatenflüsse der ETH-Bibliothek](/kapitel-2/21_metadatenflusse-der-eth-bibliothek.md)
* [2.2 Datenstruktur von Archivsystemen](/kapitel-2/22_datenstruktur-von-archivsystemen.md)
* [2.3 Online-Präsentation von Digitalisaten](/kapitel-2/23_online-praesentation-von-digitalisaten.md)
* [2.4 Discovery-System Wissensportal](/kapitel-2/24_discovery-system-wissensportal.md)
* [2.5 Datenbereitstellung für externe Portale](/kapitel-2/25_datenbereitstellung-fur-externe-portale.md)
Beiträge in den Lerntagebüchern der Studierenden:
* Elena Capelli: [Gastvortrag der ETH-Bibliothek](https://elenasdiscovery.wordpress.com/2017/10/30/gastvortrag-der-eth-bibliothek/)
* Marina Hess: [Gastvortrag ETH Zürich](https://mainsuche.jimdo.com/blogbeitr%C3%A4ge/gastvortrag-eth/)
* Franziska Neuenschwander: [ETH-Bibliothek und Hochschularchiv (Gastvortrag 5.10)](https://bainblogweb.wordpress.com/2017/10/09/eth-bibliothek-und-hochschularchiv-gastvortrag-5-10/)
* Moreno Pontoriero: [Geschichten aus Zürich](https://morenoexplores.wordpress.com/2017/10/14/geschichten-aus-zuerich/)
* Aline Strauss: [Vom Findmittel zur vernetzten Informationsquelle 05/10/17](https://alinesbiblio.wordpress.com/2017/11/01/vom-findmittel-zur-vernetzten-informationsquelle-051017/)

View File

@ -1,27 +0,0 @@
# 2.1 Metadatenflüsse der ETH-Bibliothek
Mit zunehmenden Anforderungen an die Verwaltung und Präsentation von Bibliotheks- und Archivressourcen wurden im Laufe der Zeit zahlreiche neue Systeme an der [ETH-Bibliothek](https://www.library.ethz.ch) eingeführt. Es war nicht mehr möglich alle Ressourcen ausschließlich im integrierten Bibliothekssystem bzw. im Archivinformationssystem zu verwalten. Heute gibt es eine Trennung unter anderem zwischen Metadatenhaltung (getrennt für Bibliotheks- und Archivressourcen), Discovery, Online-Präsentation und digitaler Langzeitarchivierung.
## Produkte an der ETH-Bibliothek
Folgende zentrale Produkte werden derzeit an der ETH-Bibliothek eingesetzt:
* Integriertes Bibliothekssystem: [Aleph](http://www.exlibrisgroup.com/de/category/ExLibrisAleph)
* Archivinformationssystem): [CMISTAR](https://www.cmiag.ch/cmistar)
* Discovery-System: [Primo](http://www.exlibrisgroup.com/de/category/Primo)
* Online-Präsentation von Digitalisaten: [Visual Library](https://www.semantics.de/visual_library/)
* Digitale Langzeitarchivierung: [Rosetta](http://www.exlibrisgroup.com/de/category/Rosetta)
## Datenfluss von Quellsystemen ins "Wissensportal"
Die Metadaten der ETH-Bibliothek werden in mehreren Quellsystemen verwaltet. Um eine übergreifende Suche für die Nutzer zu ermöglichen, werden alle Ressourcen im Discovery-System Primo (an der ETH "[Wissensportal](http://www.library.ethz.ch/de/)" genannt) zusammengeführt.
Das erfordert eine Transformation der Daten in einheitliches Format. Dieser Prozess der Vereinheitlichung wird auch "Normalisierung" genannt.
## Metadatenflussdiagramm der ETH Bibliothek (Stand: 1.9.2016)
Das folgende Diagramm visualisiert die Datenflüsse zwischen den Systemen.
![Metadatenflussdiagramm](../images/metadatenfluss-eth-bibliothek-2016-09.png)
Quelle: Judith Bisseger & Barbara Wittwer (1.9.2016): Metadatenmanagement. Die ETH-Bibliothek beschreitet neue Wege. Präsentation auf dem BIS-Kongress 2016 in Luzern. <https://www.slideshare.net/ETH-Bibliothek/metadatenmanagement-die-ethbibliothek-beschreitet-neue-wege>

View File

@ -1,64 +0,0 @@
# 2.2 Datenstruktur von Archivsystemen
Als digitale Archivsysteme entwickelt wurden, orientierte sich die Datenstruktur an analogen Findmitteln wie Findbüchern und Zettelkästen. Zahlreiche Elemente dieser analogen Form der archivischen Erschliessung wirken in den Normen, die für die computergestützte Verzeichung entwickelt wurden, bis heute nach.
## Verzeichnungsstandard ISAD\(G\)
Ein wichtiger Verzeichnungsstandard im Archivwesen wurde 1994 \(Revision 2000\) eingeführt, die "International Standard Archival Description \(General\)" - kurz [ISAD\(G\)](https://de.wikipedia.org/wiki/ISAD%28G). Grundsätzlich gibt es hier eine mehrstufige Verzeichnung im Provenienzprinzip, um den Entstehungszusammenhang abzubilden.
Der Standard enthält 26 Verzeichnungselemente in 7 Informationsbereichen:
1. Identifikation
2. Kontext
3. Inhalt und innere Ordnung
4. Zugangs- und Benutzungsbedingungen
5. Sachverwandte Unterlagen
6. Anmerkungen
7. Kontrolle
Von besonderer Bedeutung sind 6 Pflichtfelder:
* Signatur
* Titel
* Provenienz
* Entstehungszeitraum
* Umfang
* Verzeichnungsstufe
Grenzen von ISAD\(G\):
1. Ein einzelner Datensatz ist unter Umständen nur im Kontext verständlich \(z. B. nur "Protokoll" als Titel\)
2. Die Tektonik ist eindimensional \(keine Mehrfachzuordnung möglich\)
3. Der Standard enthält keine Vorgaben zur Digitalisierung oder zur digitalen Langzeitarchivierung
Um Normdateien verzeichnen zu können, wurde später ein ergänzender Standard "International Standard Archival Authority Record for Corporate Bodies, Persons, and Families" - kurz [ISAAR\(CPF\)](https://de.wikipedia.org/wiki/ISAAR%28CPF%29) verabschiedet. Dieser wird in der Praxis wegen dem Zusatzaufwand bei der Erschließung jedoch nur selten verwendet. Die ETH-Bibliothek führt Register für Personen, Körperschaften, Orte und Sachen auch im Archivbereich nach bibliothekarischen Regeln, d.h. mit Rollenkennzeichnung nach RDA und Verzeichnung von GND-IDs.
Aktuell ist ein neuer Standard "Records in Contexts" \([RIC](https://de.wikipedia.org/wiki/Records_in_Contexts)\) in Entwicklung. Dieser zielt auf eine Weiterentwicklung in Richtung Linked Data und soll neue und mehrfache Beziehungen zwischen Entitäten ermöglichen. Bis dieser neue Standard in Archivsystemen verwendet wird, werden jedoch voraussichtlich noch einige Jahre vergehen.
## Archivinformationssysteme
Der Markt in der Schweiz wird von den Produkten [scope.Archiv](http://www.scope.ch) und [CMISTAR](https://www.cmiag.ch/cmistar) dominiert. An der ETH-Bibliothek wird das Produkt CMISTAR eingesetzt. Es ist Grundlage des [Hochschularchivs der ETH Zürich](http://www.library.ethz.ch/Ressourcen/Archivalien-Dokumentationen/Hochschularchiv-der-ETH-Zuerich), des [Thomas-Mann-Archivs](http://www.tma.ethz.ch/) und des [Max Frisch-Archivs](http://www.mfa.ethz.ch/). Als Datenmodell kommt der genannte ISAD\(G\)-Standard zum Einsatz.
Das System bietet Möglichkeiten zum Import von Daten \(z.B. bei Retroerfassung auf Basis von Excel\) sowie einen parametrisierbaren Datenexport über ein Publikationsmodul, das XML-Dateien generiert. Dieser Datenexport wird in das "Wissensportal" der ETH-Bibliothek eingespielt.
Hier ein Beispiel aus dem Hochschularchiv der ETH Zürich, aus der die Verzeichnungsstruktur ersichtlich ist:
![](../images/eth-archivdatenbank-beispiel.png)
## Übung: Ein Vergleich aus Nutzersicht
Suche nach:
1. «Einstein» im [Online Archivkatalog des Staatsarchivs BS](https://query.staatsarchiv.bs.ch/query/suchinfo.aspx)
2. «Einstein Ehrat» in der [Archivdatenbank Online, Hochschularchiv ETH Zürich](http://archivdatenbank-online.ethz.ch)
Beantworten Sie für sich die folgenden Fragen:
* Welche Informationen werden auf der Trefferliste präsentiert?
* Welche Verzeichnungsstufen sind vertreten?
* Sind die ISAD\(G\)-Informationsbereiche erkennbar?
* Decken sich die grundlegenden Informationen oder gibt es bemerkenswerte Unterschiede?
* Worin liegen die zentralen Unterschiede zu einem Bibliothekskatalog?

View File

@ -1,49 +0,0 @@
# 2.3 Online-Präsentation von Digitalisaten
Für die Präsentation von digitalisiertem Archivgut kommen verschiedene Ansätze und Plattformen in Frage. Diese verfolgen unterschiedliche Ansätze abhängig von Medienform und Zielgruppe.
## Präsentation im Archivinformationssystem
* Vorschaubild in der Treffer- und/oder Detailansicht
* Viewer für Zusatzfunktionen \(Zoom, Druck, Download etc.\)
### Beispiel [Staatsarchiv Basel-Stadt](https://query.staatsarchiv.bs.ch/query/detail.aspx?ID=84077)
![Staatsarchiv Basel-Stadt](../images/staatsarchiv-basel-stadt.png)
### Beispiel [Landesarchiv Baden-Württemberg](https://www2.landesarchiv-bw.de/ofs21/olf/struktur.php?bestand=20501&sprungId=1412361&letztesLimit=suchen)
![Landesarchiv Baden-Württemberg](../images/landesarchiv-baden-wuerttemberg.png)
## Präsentation in Digital Asset Management Systemen
Für Anzeige und Zugriff auf digital assets optimiert:
* Hohe Skalierbarkeit
* Download in unterschiedlichen Auflösungen
* Download in Abhängigkeit vom Rechtevermerk
### Beispiel [E-Pics Plattform der ETH Zürich](https://www.e-pics.ethz.ch/de/home/)
[Bildarchiv Online](http://ba.e-pics.ethz.ch) mit rund 390000 Digitalisaten \(Stand Ende September 2017\):
![Bildarchiv Online](../images/bildarchiv-online.png)
## Präsentation von Handschriften und alten Drucken
### Beispiel [e-manuscripta.ch](http://www.e-manuscripta.ch) - Kooperative Präsentationsplattorm für handschriftliche Quellen
* Digitalisate aus mehreren Instiutionen \(ZB Zürich, UB Basel, ETH-Bibliothek u. a. m.\)
* Höheres Volumen stärkt Sichtbarkeit und Attraktivität
* Geteilte Kosten für Betrieb und Weiterentwicklung
* Koordination: ZB Zürich, Hosting: ETH-Bibliothek
* Laufendes Projekt: Erweiterung um ein crowdfähiges Transkriptionsmodul
* System: Visual Library der Firma semantics GmbH
* Angebundene Quellsysteme \(mit Rückverlinkung\):
* Aleph, Modul des Verbundes Handschriften, Archive, Nachlässe \(HAN\)
* scopeArchiv \(Schweizerisches Literaturarchiv\)
* CMISTAR \(Hochschularchiv der ETH Zürich\)
* analog dazu [e-rara.ch](http://www.e-rara.ch/) für alte Drucke
![e-manuscripta.ch](../images/e-manuscripta.png)

View File

@ -1,46 +0,0 @@
# 2.4 Discovery-System Wissensportal
Wie in [Kapitel 2.1](21_metadatenflusse-der-eth-bibliothek.md) beschrieben, werden alle Ressourcen im "Wissensportal" zusammengeführt, um eine übergreifende Suche für die Nutzer zu ermöglichen. Das [Wissensportal](http://www.library.ethz.ch/) ist das zentrale Discovery-Tool für Recherchen in den Informationsquellen der ETH-Bibliothek. Es integriert Daten aus dem Bibliothekssystem Aleph und mehreren Fachanwendungen. Das Discovery-System ist mit dem Produkt [Primo](http://www.exlibrisgroup.com/de/category/Primo) realisiert.
## Zweck des Discovery-Systems
* Verbesserung der Suchfunktionen des OPACs
* Integration aller Ressourcen (nicht nur klassische Bibliotheksdaten) in eine Suchoberfläche
* Zusätzliche lizenzpflichtige Ressourcen können direkt von den Herstellern bezogen und im Discovery-Tool nachgewiesen werden
## Datenfluss ins Wissensportal
Datenquellen kommen über sogenannte "Pipes" ins System, die in Primo konfiguriert werden können:
1. Harvesting (via Dateisystem oder OAI)
2. Normalisierung der Daten und Speicherung in eigenem Format (PNX)
3. Indexierung der Daten
Bei der Normalisierung der Daten für die übergreifende Suche im Wissensportal ist ein Informationsverlust nicht immer zu vermeiden. Gleichzeitig werden bei der Zusammenführung ins "Wissensportal" auch Daten (z.B. aus Normdaten) angereichert, so dass für bestimmte Daten auch ein Informationsgewinn im Vergleich zum Quellsystem entstehen kann.
## Beispiel Hochschularchiv
Die Daten des Hochschularchivs werden von der Software Primo über eine spezielle OAI-PMH-Schnittstelle (vgl. dazu [Kapitel 2.5](25_datenbereitstellung-fur-externe-portale.md)) der Archivsoftware CMISTAR eingesammelt.
Dabei müssen die hierarchisch gegliederten Erschließungsinformationen (nach ISAD(G)) in eine flache Struktur gebracht werden. Dazu wird jede Verzeichnungseinheit innerhalb der Tektonik als einzelner Datensatz im Wissensportal abgebildet.
## Übung: Vergleich Archivsystem und Discovery-System
Vergleichen Sie die Einträge im Archivsystem und im Wissensportal am Beispiel einer Postkarte von Albert Einstein an Alfred Stern.
1. [Datensatz im Archivsystem](http://archivdatenbank-online.ethz.ch/hsa/#/content/d8edf79020994271b0b8289728f7624d)
2. [Datensatz im Wissensportal](http://www.library.ethz.ch/DADS:default_scope:cmistard8edf79020994271b0b8289728f7624d) (siehe auch: [Internes Format (PNX)](http://www.library.ethz.ch/DADS:default_scope:cmistard8edf79020994271b0b8289728f7624d&showPnx=true))
Fragen:
* Wie werden Informationen zur Erschließungshierarchie im Wissensportal abgebildet? (in der Trefferliste und in der Detailansicht)
* Welche Informationen fließen in die Facetten des Wissensportals ein?
* Fehlen Ihnen im Wissensportal entscheidende Informationen?
* Welche Art der beiden Suchen und Anzeigen bevorzugen Sie? Weshalb?
## Diskussion: Discovery oder Spezialdatenbank?
Um zu klären, welche Metadaten in das Discovery-System (hier: Wissensportal) übernommen werden, muss geklärt werden, welche Informationen zu welchem Zeitpunkt für die Nutzer relevant sind. Es gibt unterschiedliche Erwartungen der Nutzer, welche Informationen Sie in den verschiedenen Rechercheangeboten erhalten.
Das Wissensportal der ETH-Bibliothek ist als übergreifende Suche konzipiert, während die weiteren Recherchesysteme als Spezialdatenbanken für vertiefende Recherchen gedacht sind. Das Discovery-System soll unter anderem durch die Zusammenführung von unterschiedlichen Bibliotheks- und Archivressourcen das Prinzip der [Serendipity](https://de.wikipedia.org/wiki/Serendipit%C3%A4t) unterstützen.
Diesem Konzept folgend wird im Wissensportal aus allen Systemen eine leicht reduzierte Informationsmenge zusammengeführt, quasi den "größten gemeinsamen Nenner". Gleichzeitig werden Informationen wie beispielsweise Cover für eine visuelle Orientierung sowie Verfügbarkeitsinformationen bei der Zusammenführung ergänzt.

View File

@ -1,32 +0,0 @@
# 2.5 Datenbereitstellung für externe Portale
## Ziele
* Mehrwert für Benutzende schaffen: Übergreifende Suche
* Eigene Sichtbarkeit und Reichweite erhöhen
* Dahin gehen, wo die Nutzer sind
## Beispiel Archivportale
Es existiert eine facettenreiche (Archiv-)Portallandschaft. Ein Überblick ist kürzlich (September 2017) im [Whitepaper Portale](http://vsa-aas.ch/ressourcen/zugang-und-vermittlung/whitepaper-portale/) des Vereins Schweizerischer Archivarinnen und Archivare erschienen.
Der Fokus der ETH-Bibliothek liegt auf dem Bereitstellen einer OAI-PMH-Schnittstelle, damit Portale die Daten "einsammeln" können. Für die Integration der Daten ins Portal [Archives Portal Europe](https://www.archivesportaleurope.net) generiert die Archivsoftware CMISTAR das Format EAD2002 und bietet es über eine OAI-PMH-Schnittstelle an. Das Archives Portal Europe sammelt diese Daten dann regelmäßig ein.
## OAI-PMH
Im Jahr 2000 hat die internationale [Open Archives Initiative](http://www.openarchives.org/) ein Protokoll verabschiedet, um die Interoperabilität zwischen Repositorien von Bibliotheken zu verbessern.
Das OAI Protocol for Metadata Harvesting ([OAI-PMH](https://www.openarchives.org/OAI/openarchivesprotocol.html)) organisiert den Datenaustausch zwischen Data Providern und Service Providern und bietet unter anderem folgende Funktionen:
* Anfrage: Einfaches Set an OAI-PMH requests (ListRecords, GetRecord ...)
* Antwort: XML-codierte Ausgabe
* Selektives Harvesting dank Zeitstempel (z. B. alle Datensätze ab dem 29.09.2017)
* Format der Datensätze kann unterschiedlich sein: Dublin Core, MARC, EAD usw.
## Beispiel einer OAI-PMH-Schnittstelle
Es gibt viele verschiedene Software-Implementierungen des OAI-PMH-Standards. Eine [Übersicht von Tools](https://www.openarchives.org/pmh/tools/) wird auf der Webseite der Open Archives Initiative geführt.
Repositoriensoftware wie die Archivsoftware CMISTAR haben oftmals eine OAI-PMH-Schnittelle integriert. Es gibt aber auch einige einfache Implementierungen. Hier ein [Beispiel](http://demo.opencultureconsulting.com/oai_pmh/?verb=ListRecords&metadataPrefix=oai_dc):
![Beispiel für OAI-PMH Data Provider](../images/oai-pmh-beispiel.png)

View File

@ -1,23 +0,0 @@
# Kapitel 3: Übertragungsprotokolle und Datentransformationen
Im vorigen Kapitel haben wir viele Praxisbeispiele der ETH-Bibliothek kennengelernt und anhand des Metadatenflussdiagramms die großen Zusammenhänge zwischen den verschiedenen Systemen diskutiert. Jetzt werden wir einzelne Aspekte vertiefen und hands-on ausprobieren.
Unser Ziel: Wir bauen uns unser eigenes "Wissensportal". Was bei der ETH im großen Stil mit der kommerziellen Software PRIMO realisiert wurde, bauen wir im Kleinen mit Open Source Software nach.
Bitte nehmen Sie sich für die folgenden Abschnitte insgesamt etwa 8 Stunden Zeit:
* [3.1 Wir bauen uns ein Wissensportal](/kapitel-3/31-wir-bauen-uns-ein-wissensportal.md)
* [3.2 Übertragungsprotokolle SRU und OAI-PMH](/kapitel-3/32-ubertragungsprotokolle-sru-und-oai-pmh.md)
* [3.3 Testdaten über SRU herunterladen](/kapitel-3/33-testdaten-uber-sru-herunterladen.md)
* [3.4 Tutorial zu OpenRefine](/kapitel-3/34-tutorial-zu-openrefine.md)
* [3.5 Verarbeitung von MARC21 mit OpenRefine](/kapitel-3/35-verarbeitung-von-marc21-mit-openrefine.md)
* [3.6 Bonus: Vergleich mit Crosswalk-Ergebnissen](/kapitel-3/36-bonus-vergleich-mit-crosswalk-ergebnissen.md)
* [3.7 Bonus: Automatisierung](/kapitel-3/37-bonus-automatisierung.md)
Beiträge in den Lerntagebüchern der Studierenden:
* Elena Capelli: [Wir bauen einen Bibliothekskatalog Teil 2](https://elenasdiscovery.wordpress.com/2017/11/10/wir-bauen-einen-bibliothekskatalog-teil-2/)
* Marina Hess: [Wir bauen uns ein Wissensportal 1](https://mainsuche.jimdo.com/blogbeitr%C3%A4ge/wir-bauen-uns-ein-wissensportal-1/)
* Franziska Neuenschwander: [Out with the old, in with the new Wir bauen uns ein eigenes Wissensportal](https://bainblogweb.wordpress.com/2017/11/09/out-with-the-old-in-with-the-new-wir-bauen-uns-ein-eigenes-wissensportal/)
* Moreno Pontoriero: [Es wird gebaut](https://morenoexplores.wordpress.com/2017/11/06/es-wird-gebaut/)
* Aline Strauss: [Übertragungsprotokolle und Datentransformationen 02/11/17](https://alinesbiblio.wordpress.com/2017/11/15/uebertragungsprotokolle-und-datentransformationen-02-11-17/)

View File

@ -1,13 +0,0 @@
# 3.1 Wir bauen uns ein "Wissensportal"
[![](/flowcharts/flowchart-swissbib.png)](https://raw.githubusercontent.com/felixlohmeier/kurs-bibliotheks-und-archivinformatik/master/flowcharts/flowchart-swissbib.png)Quellcode für Flowchart: [flowcharts/flowchart-swissbib.mmd](/flowcharts/flowchart-swissbib.mmd "Sourcecode") \(nutzbar im [Mermaid Live-Editor](https://mermaidjs.github.io/mermaid-live-editor/)\)
## Datenfluss
Das obige Bild zeigt den Datenfluss vom Abruf externer Daten über eine Schnittstelle bis hin zur Bereitstellung dieser Daten in einem Discovery-System. Das wollen wir bauen und so gehen wir vor:
* Wir laden heute eine Reihe von Testdaten aus Bibliothekssystemen über die SRU-Schnittstelle von Swissbib \(Kap 3.3\). Diese Daten transformieren wir mit OpenRefine von MARC21/XML in das Tabellenformat TSV \(Kap. 3.5\).
* In [Kapitel 4](/kapitel-4.md) \(16.11.17\) werden wir den Suchindex Apache Solr installieren, ein Datenmodell für eine Meta-Suche modellieren und dann die Testdaten als TSV indexieren.
* In [Kapitel 5](/kapitel-5.md) \(30.11.17\) werden wir schließlich das Content-Management-System TYPO3 mit der Erweiterung TYPO3-find installieren und unsere eigene Katalogoberfläche konfigurieren.
Danach haben wir noch zwei Kapitel Zeit, um alternative Software kennenzulernen und uns mit dem Thema Linked Data zu beschäftigen.

View File

@ -1,44 +0,0 @@
# 3.2 Übertragungsprotokolle SRU und OAI-PMH
Es gibt zahlreiche Übertragungsprotokolle im Bibliotheks- und Archivbereich. Drei davon sind besonders weit verbreitet:
* [Z39.50](https://www.loc.gov/z3950/) \(Library of Congress\)
* [SRU](http://www.loc.gov/standards/sru/) - Search/Retrieve via URL \(Library of Congress\)
* [OAI-PMH](https://www.openarchives.org/pmh/) - Open Archives Initiative Protocol for Metadata Harvesting \(Open Archives Initiative\)
Z39.50 ist sehr alt, aber immer noch im Einsatz. Meist wird das modernere SRU als Ergänzung angeboten.
Während Z39.50 und SRU sich besonders für Live-Abfragen oder gezielten Datenabruf mit vielen Parametern eignet, zielt OAI-PMH vor allem auf größere Datenabzüge und regelmäßige Aktualisierungen. Das Schöne an SRU und OAI-PMH ist, dass die Anfragen als Internetadresse (URL) zusammengestellt werden können und direkt über den Browser ohne Zusatzsoftware aufrufbar sind.
Bevor wir konkrete Testdaten für unser "Wissensportal" herunterladen, wollen wir zunächst die Möglichkeiten der Schnittstellen erkunden. Wir orientieren uns an dem Schweizer Projekt Swissbib, das öffentliche Schnittstellen nach SRU und OAI-PMH bereitstellt und diese auch gut dokumentiert hat:
* Dokumentation SRU: [http://www.swissbib.org/wiki/index.php?title=SRU](http://www.swissbib.org/wiki/index.php?title=SRU)
* Dokumentation OAI: [http://www.swissbib.org/wiki/index.php?title=Swissbib\_oai](http://www.swissbib.org/wiki/index.php?title=Swissbib_oai)
Bitte schauen Sie sich dort um und lösen Sie die folgenden Aufgaben. Zum Laden und Speichern der Daten über die Kommandozeile können Sie wieder das Programm `curl` nutzen, dass Sie in [Kapitel 1.5]() kennengelernt haben. Um die Aufgaben vollständig lösen zu können, müssen Sie die Dokumentation genau lesen und etwas stöbern.
## Aufgabe 1
Laden Sie 100 Datensätze der ETH-Bibliothek \(Hauptbibliothek Rämistrasse 101, 8092 Zürich\) für den Suchbegriff `Albert Einstein` \(über alle Felder\) im Format MARC21. Speichern Sie die Daten in der Datei `einstein.xml`.
## Aufgabe 2
Laden Sie einige Datensätze aus dem gesamten Swissbib-Verbund, die seit dem 31.10.2017 verändert wurden im Format MARC21. Speichern Sie die Daten in der Datei `swissbib-2017-10-31.xml`.
## Bonusaufgabe
Finden Sie heraus, nach welchen Regeln die SRU-Schnittstelle von Swissbib MARC21 in Dublin Core transformiert.
## Lösungen
Die Lösungen für die obigen Aufgaben sind auf der Seite [Lösungen](/losungen.md) dokumentiert.
## Aktuelle Entwicklungen
[Resourcesync](http://www.openarchives.org/rs/) ist ein vielversprechender neuer Standard, der schnellere und spezifischere Synchronisierungen ermöglicht, als es mit OAI-PMH möglich ist. Aktuell ist Resourcesync noch selten im Einsatz, wird aber in nächster Zeit als Ergänzung zu OAI-PMH immer öfter anzutreffen sein und könnte OAI-PMH auf längere Sicht vielleicht sogar ablösen. Es gibt Referenzimplementierungen in Python für [Data Provider](https://github.com/resourcesync/py-resourcesync) und für [Harvester](https://github.com/resync/resync).
Grundlegende Informationen und aktuelle Anwendungen sind der folgenden Präsentation zu entnehmen:
> Martin Klein, Gretchen Gueguen, Mark Matienzo, Petr Knoth \(20.4.2017\): ResourceSync - Overview and Real-World Use Cases for Discovery, Harvesting, and Synchronization of Resources on the Web. Präsentation auf DPLAfest 2017. [https://www.slideshare.net/martinklein0815/resourcesync-overview-and-realworld-use-cases-for-discovery-harvesting-and-synchronization-of-resources-on-the-web](https://www.slideshare.net/martinklein0815/resourcesync-overview-and-realworld-use-cases-for-discovery-harvesting-and-synchronization-of-resources-on-the-web)
Ein ganz anderes Feld sind die vielfältigen Linked Data Schnittstellen. Damit werden wir uns später in [Kapitel 7](/kapitel-7.md) \(11.01.18\) beschäftigen.

View File

@ -1,41 +0,0 @@
# 3.3 Testdaten über SRU herunterladen
Wir nutzen die [SRU-Schnittstelle von Swissbib](http://www.swissbib.org/wiki/index.php?title=SRU).
## Auswahl der Testdaten
Als Testdaten laden wir zunächst alles, was der NEBIS-Verbund für eine Suche nach `Albert Einstein` über alle Felder zu bieten hat \(etwa 2000 Treffer\):
* Suche im Katalog von Swissbib: [https://www.swissbib.ch/Search/Results?lookfor=albert+einstein&type=AllFields&filter%5B%5D=%7Eunion%3A%22NEBIS%22](https://www.swissbib.ch/Search/Results?lookfor=albert+einstein&type=AllFields&filter[]=~union%3A"NEBIS")
* Abfrage der SRU-Schnittstelle: <http://sru.swissbib.ch/sru/search/defaultdb?query=+dc.anywhere+%3D+Albert+Einstein+AND+dc.xNetwork+%3D+NEBIS&operation=searchRetrieve&recordSchema=info%3Asrw%2Fschema%2F1%2Fmarcxml-v1.1-light&maximumRecords=100&startRecord=0&recordPacking=XML&availableDBs=defaultdb&sortKeys=Submit+query>
Hier ist die Postkarte von Albert Einstein an Alfred Stern aus [Kapitel 2.2](//kapitel-2/22_datenstruktur-von-archivsystemen.md) übrigens nicht dabei. Die Daten aus e-manuscripta.ch laden wir erst später in [Kapitel 6](/kapitel-6.md) als separate Datenquelle.
## Abfrage der SRU-Schnittstelle mit einem Shell-Script
Die SRU-Schnittstelle lässt maximal 100 Records pro Abfrage zu, d.h. die Daten müssen in Teilen abgefragt werden:
1. `startRecord=0&maximumRecords=100`
2. `startRecord=100& maximumRecords=100`
3. und so weiter...
Um alle Daten herunterzuladen nutzen wir ein vorbereitetes Bash-Script [sru-download.sh](https://github.com/felixlohmeier/kurs-bibliotheks-und-archivinformatik/blob/master/scripte/sru-download.sh). Shell-Scripte ermöglichen die Automatisierung von Befehlen auf der Kommandozeile. So müssen Sie nicht alle Befehle nacheinander selbst eintippen, sondern brauchen nur einmal das Script starten und der Computer arbeitet die Befehle selbstständig nacheinander ab. Es können auch Variablen und Schleifen definiert werden, so dass die Befehle dynamisch innerhalb der Laufzeit des Scripts angepasst werden können, was sehr weitreichende Möglichkeiten bietet. Shell-Scripte sind somit ein erster Einstieg in die Programmierung, woher übrigens auch das Schimpfwort "[Scriptkiddie](https://de.wikipedia.org/wiki/Scriptkiddie)" stammt ;-\).
Bitte geben Sie die folgenden Befehle in die Kommandozeile ein:
* Script mit `curl` auf den Server laden: `curl -O https://raw.githubusercontent.com/felixlohmeier/kurs-bibliotheks-und-archivinformatik/master/scripte/sru-download.sh`
* Script ausführbar machen: `chmod +x sru-download.sh`
* Script starten mit `./sru-download.sh`
Das Script lädt nun die Daten in 100er Paketen und speichert sie als XML-Dateien im Ordner ```Downloads```.
## Optional: Individuelle Testdaten laden
Wenn Sie sich eher für Harry Potter als für Albert Einstein interessieren, dann können Sie das Shell-Script anpassen. Öffnen Sie die Datei ```sru-download.sh``` mit einem Texteditor (hier: Anwendungen / Zubehör / Pluma Text Editor) und bearbeiten Sie die folgenden Zeilen:
* Zeile 8: ```query="dc.anywhere+%3D+Albert+Einstein+AND+dc.xNetwork+%3D+NEBIS"``` ersetzen durch ```query="dc.anywhere+%3D+Harry+Potter+AND+dc.xNetwork+%3D+NEBIS"```
* Zeile 11: ```filename="einstein-nebis"``` ersetzen durch ```filename="potter-nebis"```
Sie können sich übrigens auch über die Oberfläche von <http://sru.swissbib.ch> eine beliebige Suchanfrage zusammenstellen. Nach einem Klick auf "Submit Query" erhalten Sie die Ergebnisse und können aus der Adresszeile des Browsers den betreffenden Abschnitt kopieren und in das Shell-Script Zeile 8 einfügen.
Wenn Sie mehr über die Programmierung von Shell-Scripten erfahren wollen, finden Sie Informationen im sehr empfehlenswerten [Bash-Skripting-Guide für Anfänger](https://wiki.ubuntuusers.de/Shell/Bash-Skripting-Guide_f%C3%BCr_Anf%C3%A4nger/).

View File

@ -1,32 +0,0 @@
# 3.4 Tutorial zu OpenRefine
Bevor wir die im vorigen Abschnitt heruntergeladenen MARC21-Daten verarbeiten, sollten wir uns erst noch gründlicher mit OpenRefine vertraut machen und an das sehr kurze erste Erlebnis aus [Kapitel 1.6](/kapitel-1/16-metadaten-ansehen-mit-openrefine.md) anknüpfen.
Für OpenRefine gibt es eine [riesige Fülle von Tutorials](https://github.com/OpenRefine/OpenRefine/wiki/External-Resources), die den Einstieg erleichtern. Um die Funktionsweise kennenzulernen, ist es am einfachsten eins dieser Tutorials durchzuarbeiten.
## Aufgabe: Tutorial "Cleaning Data with OpenRefine" durcharbeiten
Wir bearbeiten jetzt das folgende selbsterklärende Tutorial:
> Seth van Hooland, Ruben Verborgh and Max De Wilde \(2013-08-05\): "Cleaning Data with OpenRefine" In: Programming Historian. [http://programminghistorian.org/lessons/cleaning-data-with-openrefine](http://programminghistorian.org/lessons/cleaning-data-with-openrefine)
Rufen Sie sich das Tutorial im Browser auf und starten dann OpenRefine. So können Sie zwischen den Browsertabs komfortabel hin und her schalten.
Falls Sie sich nicht mehr gut an OpenRefine erinnern, schauen Sie sich die Erläuterungen in [Kapitel 1.6 Metadaten ansehen mit OpenRefine](/kapitel-1/16-metadaten-ansehen-mit-openrefine.md) noch einmal an. Hier der Startbefehl:
```
~/openrefine-2.7/refine
```
## Hinweise
Die im Tutorial benannte Ausgangsdatei `phm-collection.tsv` können Sie unter folgender Adresse herunterladen: [http://data.freeyourmetadata.org/powerhouse-museum/phm-collection.tsv](http://data.freeyourmetadata.org/powerhouse-museum/phm-collection.tsv)
Achtem Sie beim Import auf die richtigen Einstellungen:
* Checkbox "_Parse cell text into numbers, dates, ..._" aktivieren
* Checkbox "_Quotation marks are used to enclose cells containing column separators_" deaktivieren
[![](/images/tutorial-openrefine-import.png)](https://raw.githubusercontent.com/felixlohmeier/kurs-bibliotheks-und-archivinformatik/master/images/tutorial-openrefine-import.png)
Das steht zwar so auch im Tutorial, ist aber leicht zu übersehen.

View File

@ -1,165 +0,0 @@
# 3.5 Verarbeitung von MARC21 mit OpenRefine
Ein möglicher Weg zum Laden von Metadaten in den Suchindex Solr ist die Transformation der umfangreichen bibliothekarischen Metadaten in eine klassische Tabellenstruktur mit wenigen Spalten, in denen wir die für die Suche relevante Daten zusammenführen:
* Spaltenüberschriften werden zu Feldern im Suchindex
* Mehrere Werte in einer Tabellenzelle können mit einem Trennzeichen eingegeben werden \(das Trennzeichen muss eindeutig sein, darf also nicht bereits in den Daten vorkommen\)
* OpenRefine bietet als Export vorrangig CSV oder TSV an. Das kann der Suchindex Solr problemlos indexieren.
Nach der Transformation könnten die Daten beispielsweise so aussehen:
| id | Titel | AutorInnen | ... |
| :--- | :--- | :--- | :--- |
| 123 | Zur Elektrodynamik bewegter Körper | Einstein, Albert | ... |
| 299 | Albert Einstein | Ziegelmann, Horst␟Fischer, Ernst Peter␟Renn, Jürgen | ... |
| ... | ... | ... | ... |
Natürlich könnten wir auch mit einem anderen Werkzeug \(z.B. XSLT\) die Dateien direkt als XML transformieren und in den Suchindex laden, aber Tabellendaten sind eben einfach besonders übersichtlich und in dieser Struktur fallen Ungereimtheiten in den Daten sofort ins Auge. Für unsere erste Datenquelle im Discovery-System also eine gute Übung.
## Eigenes Schema oder einem Metadatenstandard folgen?
Es ist sicher klar, dass wir nicht die umständlichen MARC-Zahlen und Codes als Spaltennamen in unseren Katalog übernehmen wollen, sondern sprechende Namen wie TItel, AutorInnen und so weiter. Doch welche Daten brauchen wir in welcher Form für den Katalog?
Überlegen Sie:
* Welche Informationen wollen Sie in Ihrem Bibliothekskatalog anbieten?
* Wer soll die Hauptzielgruppe sein?
* Welche Filtermöglichkeiten \(Facetten\) wollen Sie anbieten?
* Welche Kurzinformationen \(Unterscheidungsmerkmale\) sollen in der Trefferliste stehen?
* Welche Informationen sollen in der Vollanzeige dargestellt werden?
Wenn Sie ein innovatives Discovery-System auf Basis von verschiedenen heterogenen Datenquellen bauen wollen, dann kann auch die absichtliche Reduktion auf wenige Felder helfen \("Simplicity"\). Wichtig für das Nutzererlebnis \("User Experience"\) ist, dass die Felder konsistent belegt sind und Trefferliste und Facetten nützliche und eindeutige Unterscheidungsmerkmale beinhalten. Bei der Datentransformation haben Sie die Chance einige Unstimmigkeiten zu bereinigen und Informationen clever zu aggregieren, so dass die Daten trotz verschiedener Quellen einigermaßen einheitlich durchsuchbar sind.
Haben Sie eigene Vorstellungen? Falls nicht, dann orientieren Sie sich an [Dublin Core](http://dublincore.org/documents/dces/), denn diese Initiative hatte von Beginn an das Ziel, einen gemeinsamen Mindeststandard zu definieren und entsprechend übersichtlich sind die Felder. Wenn Sie noch nicht mit MARC gearbeitet haben und die passenden Zahlen und Codes nicht im Kopf haben, dann orientieren Sie sich an der [Empfehlung der Library of Congress für einen "MARC to Dublin Core Crosswalk"](https://www.loc.gov/marc/marc2dc.html).
## Aufgabe 1: Testdaten importieren und zur weiteren Bearbeitung umstrukturieren
### Arbeitsspeicher für OpenRefine freigeben
Für das Laden und Transformieren der 2075 Beispieldatensätze benötigt OpenRefine etwa 1,5 GB Arbeitsspeicher. Als Standardeinstellung verwendet OpenRefine jedoch maximal 1,4 GB Arbeitsspeicher. Wenn während der Transformation der Speicher ausgeht, wird OpenRefine erst sehr langsam und stürzt dann irgendwann ab.
Wieviel freien Arbeitsspeicher Sie zur Verfügung haben, bestimmen Sie am besten, indem Sie alle Fenster bis auf den Browser schließen und dann in der Kommandozeile den Befehl `free -m` eingeben. In der Spalte "verfügbar" können Sie ablesen, wieviel MB maximal noch zur Verfügung stehen.
![Screenshot](../images/systemressourcen.png)
Ziehen Sie von diesem Wert zur Sicherheit mindestens 300 MB ab. Das Ergebnis ist der Höchstwert, den Sie OpenRefine zuordnen können.
Um jetzt das Limit zu erhöhen, bearbeiten wir die Einstellungsdatei von OpenRefine. Öffnen Sie die Datei `refine.ini` mit einem Texteditor \(hier: Anwendungen / Zubehör / Pluma Text Editor\) und ändern Sie den Wert in der Zeile `REFINE_MEMORY=1400M` auf `2000M` und speichern Sie die Datei \(`STRG` und `S`\).
Wenn Sie über genügend freien Arbeitsspeicher verfügen, können Sie auch gleich ein höheres Limit setzen. Falls Sie nicht genügend freien Arbeitsspeicher haben, um das Limit zu erhöhen, dann bleibt Ihnen nichts anderes übrig als die Anzahl der zu verarbeitenden Daten zu reduzieren. Sie könnten im Folgenden beispielsweise nur einen Teil der heruntergeladenen XML-Dateien importieren.
Weitere Informationen: [https://github.com/OpenRefine/OpenRefine/wiki/FAQ:-Allocate-More-Memory\#linux-or-mac](https://github.com/OpenRefine/OpenRefine/wiki/FAQ:-Allocate-More-Memory#linux-or-mac)
### Daten importieren
* Im Menüpunkt "Create Project" auf den Button "Durchsuchen" klicken, in den Ordner Downloads wechseln und alle der im vorigen Kapitel gespeicherten XML-Dateien \(`einstein-nebis`...\) auswählen. Mehrere Dateien können Sie, wie sonst auch üblich, mit der Taste Shift markieren \(oberste XML-Datei anklicken, Shift gedrückt halten und unterste XML-Datei anklicken\). Das Protokoll zum Download \(Dateiendung `.log`\) können wir nicht gebrauchen.
* Im nächsten Bildschirm könnten Sie von den ausgewählten Dateien noch wieder welche abwählen. Das ist aber nicht nötig. Klicken Sie gleich weiter oben rechts auf den Button "Configure Parsing Options".
* Im letzten Bildschirm können Sie nun Einstellungen vornehmen, wie die XML-Dateien von OpenRefine interpretiert werden sollen. Gehen Sie wie folgt vor:
* Klicken Sie als erstes im Vorschaubildschirm auf den Pfad `<record xmlns:xs="http://www.w3.org/2001/XMLSchema">`. Es ist wichtig genau diese Stelle zu treffen. Wenn Sie mit der Maus darüber fahren, wird ein Kasten angezeigt, welche Daten OpenRefine als einen Datensatz interpretieren wird.
![Screenshot](../images/openrefine-import-marc-xml.png)
* Nehmen Sie dann folgende weiteren Einstellungen vor:
* Checkbox "Store file source" deaktivieren
* Im Textfeld "Project Name" den hinteren Teil hinter dem Datum entfernen oder einen eigenen Namen vergeben
* Abschließend können Sie das neue OpenRefine-Projekt mit diesen Daten erstellen, indem Sie oben rechts den Button "Create Project" drücken.
### Daten prüfen
Klicken Sie bei der Spalte "All" auf das Dreieck und wählen Sie im Menü den Punkt Edit columns / Re-order / remove columns... aus.
So sollte die Spaltenstruktur aussehen:
![Screenshot](../images/openrefine-screenshot-reorder-columns.png)
Achtung: Die weiteren Schritte beziehen sich auf diese Spaltennamen, daher müssen Ihre Spaltenbezeichnungen zwingend mit denen vom Screenshot übereinstimmen. Falls es bei Ihnen anders aussieht, ist beim Import etwas schiefgegangen.
### Daten "massieren"
Bevor wir inhaltlich mit den MARC21-Daten arbeiten können, müssen wir diese zunächst umformen. OpenRefine "versteht" MARC21 nicht, sondern lädt die Daten wie andere XML-Dateien.
Um die MARC21-Daten so umzustrukturieren, dass sie in dem flachen Tabellenformat von OpenRefine benutzbar sind, sind zahlreiche Transformationsschritte notwendig. Damit Sie diese nicht manuell durchführen müssen, nutzen wir ein vorbereitetes Transformationsscript.
1. Rufen Sie die Datei [openrefine-marc.json](https://raw.githubusercontent.com/felixlohmeier/kurs-bibliotheks-und-archivinformatik/master/openrefine/openrefine-marc.json) im Browser auf und kopieren Sie den gesamten Inhalt in die Zwischenablage \(`STRG` und `A` um alles zu markieren und `STRG` und `C` um es in die Zwischenablage zu kopieren\)
2. Wechseln Sie in OpenRefine in den Tab "Undo / Redo" \(neben "Facet / Filter" unterhalb des OpenRefine-Logos\) und klicken Sie den Button "Apply...". Fügen Sie den Inhalt der Zwischenablage in das Textfeld ein \(`STRG` und `V`\) und bestätigen Sie mit dem Button "Perform Operations".
Die Verarbeitung kann je nach Menge der Daten ein paar Minuten dauern. Anschließend ist die Struktur schon etwas handlicher. Etwa so sollte es aussehen:
![Screenshot](../images/openrefine-marc-nach-massage.png)
## Aufgabe 2: MARC-Daten analysieren und neue Spalten für das Zielschema bilden
Jetzt wo die MARC-Daten alle einheitlich im Tabellenformat strukturiert vorliegen, können Sie für jedes Feld im Zielformat Dublin Core passende MARC-Felder und MARC-Codes auswählen/filtern und die ausgewählten Daten jeweils in neue "Dublin Core"-Spalten kopieren.
Nutzen Sie dabei die [Empfehlung der Library of Congress \(LoC\) für einen "MARC to Dublin Core Crosswalk"](https://www.loc.gov/marc/marc2dc.html) als Orientierung.
### Analyse
Um sich einen statistischen Überblick zu verschaffen, können Sie wie folgt vorgehen:
* Spalte `field` / Facet / Text facet - zeigt in einer Facette die Gesamtanzahl wie oft ein MARC-Feld in den Daten genannt wird \(ggf. mehrmals pro Datensatz\)
* Spalte `field` / Edit cells / Blank down - jetzt wird in der Facette angezeigt wie viele Datensätze das jeweilige MARC-Feld mindestens einmal beinhalten
* Klicken Sie in der Facette auf den Link "111 choices" \(oder ähnlich\), dann erhalten Sie eine tab-separierte Liste, die Sie in eine Tabellenverarbeitung kopieren können
* Vergessen Sie nicht, die Transformation "Blank down" über die Undo/Redo-Historie abschließend wieder rückgängig zu machen.
### Neue Spalten für Zielschema bilden
Wenn Sie sich auf Basis der Empfehlung der LoC, der Statistik und Stichproben für ein Mapping von bestimmten MARC-Feldern und Codes auf ein Dublin-Core-Feld entschieden haben, ist das grundsätzliche Vorgehen dann wie folgt.
1. Passende MARC Felder und Codes in den Spalten `field` und `code` mit Text-Facetten auswählen.
2. Ausgewählte Daten aus Spalte `content` mit der Funktion `add column based on column...` in eine neue "Dublin Core"-Spalte kopieren \(Name der Spalte ist das Dublin-Core-Feld\).
3. Bei Bedarf die Daten in der neuen Spalte mit Transformationen bearbeiten, um z.B. Trennzeichen einzufügen.
4. Zusammengehörige Werte \(z.B. Person und ihre Lebensdaten\) in der neuen Spalte mit der Funktion `join multi-valued cells` zusammenführen. Damit nicht zuviel \(z.B. mehrere Personen\) zusammengeführt werden, muss dabei die Spalte `index` vorne stehen.
5. Abschließend dann noch einmal mit der Funktion `join multi-valued cells` und dem bekannten Trennzeichen `␟` die Daten in einer Zeile pro Datensatz zusammenführen. Hierzu muss dann die Spalte `id` vorne stehen. Um die Performance zu verbessern, kann alternativ auch die Transformation `row.record.cells["Name der Spalte"].value.join("␟")` (zusammen mit einer Facette "by blank" mit Wert `false` auf die Spalte `id`) auf die neuen Spalten angewendet werden.
Beispiel für "Autor/in" \(MARC21 `100a,D,d,e` auf Dublin Core `dc:creator`\):
1. Passende MARC Felder und Codes auswählen.
* Die Zeilen-Ansicht wählen \(show as: rows\)
* Spalte `field` / Facet / Text facet / Wert `100` auswählen
* Spalte `code` / Facet / Text facet / Wert `a`, `D`, `d` und `e` auswählen \(zur Auswahl mehrerer Werte mit der Maus darüber fahren und Link "include" anklicken\)
2. Ausgewählte Daten in eine neue Spalte kopieren
* Spalte `content` / Edit column / Add column based on column... / Name: `creator` / Expression: `value` \(unverändert\)
3. Bei Bedarf die Daten in der neuen Spalte mit Transformationen bearbeiten
* Trennzeichen zwischen Vor- und Nachname:
* Spalte `field` / Facet / Text facet / Wert `100` auswählen
* Spalte `code` / Facet / Text facet / Wert `a` auswählen
* Spalte `creator` / Edit cells / Transform... / Expression: `value + ","`
* Lebensdaten in runde Klammern:
* Spalte `field` / Facet / Text facet / Wert `100` auswählen
* Spalte `code` / Facet / Text facet / Wert `d` auswählen
* Spalte `creator` / Edit cells / Transform... / Expression: `"(" + value + ")"`
* Funktionsbezeichnung in eckige Klammern:
* Spalte `field` / Facet / Text facet / Wert `100` auswählen
* Spalte `code` / Facet / Text facet / Wert `e` auswählen
* Spalte `creator` / Edit cells / Transform... / Expression: `"[" + value + "]"`
4. Zusammengehörige Werte in der neuen Spalte zusammenführen
* alle Facetten müssen geschlossen sein, bevor Sie fortfahren
* Spalte `id` / Edit column / Move column to end
* Spalte `creator` / Edit cells / Join multi-valued cells... / Separator: ` ` \(Leerzeichen\)
5. Abschließend die Daten in einer Zeile pro Datensatz zusammenführen
* Spalte `id` / Edit column / Move column to beginning
* Spalte `id` / Facet / Customized facets / Facet by blank... / Wert `false` auswählen
* Spalte `creator` / Edit cells / Transform... / Expression: `row.record.cells["creator"].value.join("␟")`
6. Ergebnis prüfen und ggf. nachbessern
* Spalte `creator` / Facet / Text facet
* Spalte `creator` / Edit cells / Cluster and edit... / Method: nearest neighbor
## Export
Wenn alle Spalten angelegt sind, dann können Sie die Daten für den Suchindex im Format TSV exportieren. Dazu sind noch zwei Schritte nötig:
1. Spalte `id` / Facet / Customized facets / Facet by blank / `false` - um für den Export nur die oberste Zeile pro Record auszuwählen
2. Export / Custom tabular exporter... aufrufen, dort die Spalten `index`, `field`, `ind1`, `ind2`, `code` und `content` abwählen und im Reiter "Download" auf den Button `Download` klicken.
Wenn Sie die Datei herunterladen, wird diese im Ordner `~/Downloads` gespeichert. Merken Sie sich den Dateinamen. In den Übungen in Kapitel 4 gehen wir von einem Dateinamen `einstein.tsv` aus. Wenn Ihre Datei anders heißt, müssen Sie diese entweder jetzt umbenennen oder in Kapitel 4.3 und 4.4 darauf achten, dass Sie den Dateinamen in den Befehlen entsprechend anpassen.
## Lösung
Die Lösung für Aufgabe 2 \(Mapping von MARC21 auf Dublin Core\) ist auf der Seite [Lösungen](/losungen.md) dokumentiert.

View File

@ -1,13 +0,0 @@
# 3.6 Bonus: Vergleich mit Crosswalk-Ergebnissen
Wir hätten auch auf den integrierten "Crosswalk" von Swissbib vertrauen und die Daten gleich als Dublin Core herunterladen können. Nach welchen Transformationsregeln hätte Swissbib das dann eigentlich generiert?
## Aufgabe
Versuchen Sie das [XSL-Stylesheet zur Transformation von MARC nach Dublin Core der SRU-Schnittstelle von Swissbib](http://sru.swissbib.ch/sru/xslfiles/MARC21slim2OAIDC.swissbib.xsl) zu "lesen", auch wenn Sie die Sprache XSL nicht kennen sollten. Manche Abschnitte sind dank der XML-Struktur mit etwas Puzzelei auch so verständlich.
Notieren Sie welche Dublin-Core-Felder aus welchen MARC Nummern und Codes zusammengesetzt werden. Sie werden feststellen, dass dieser Crosswalk nicht in jedem Fall der [Empfehlung der Library of Congress]((https://www.loc.gov/marc/marc2dc.html)) folgt.
## Lösung
Einen Teil der Antwort finden Sie auf der Seite [Lösungen](/losungen.md).

View File

@ -1,49 +0,0 @@
# 3.7 Bonus: Automatisierung
Die Systemarchitektur von OpenRefine macht es möglich, die Anwendung nicht nur über die grafische Oberfläche, sondern auch über eine API "fernzusteuern". Für die [HTTP-API von OpenRefine](https://github.com/OpenRefine/OpenRefine/wiki/OpenRefine-API) gibt es Clients in den Programmiersprachen Python, Ruby, node.js, PHP und für R. Am ausgereiftesten ist der [Python-Client von Paul Makepeace](https://github.com/PaulMakepeace/refine-client-py/).
Darauf aufbauend habe ich ein Shell-Script geschrieben, das gespeicherte Transformationsregeln auf eine Vielzahl von Dateien anwenden kann. Es lädt sich alle benötigten Komponenten wie beispielsweise den Python-Client automatisch aus dem Internet. Die zu verarbeitenden Daten und die Transformationsregeln (als JSON-Dateien) müssen vorab in Dateiordnern bereitgestellt werden. Das Script ist bei GitHub frei verfügbar: [felixlohmeier/openrefine-batch](https://github.com/felixlohmeier/openrefine-batch).
## Transformationshistorie
OpenRefine verfügt über hilfreiche Undo/Redo-Funktionen, mit denen Sie auch alle bisher in einem Projekt durchgeführten Transformationsregeln speichern und auf ein anderes Projekt anwenden können.
Transformationsregeln extrahieren (altes Projekt):
* Oben links im Reiter "Undo / Redo" den Button "Extract..." drücken
* Alles im rechten Textfeld in die Zwischenablage kopieren (z.B. mit ```STRG```+```A``` und ```STRG```+```C```)
Transformationsregeln anwenden (neues Projekt):
* Neues OpenRefine-Projekt mit ähnlichen oder gleichen Datenstrukturen erstellen
* Oben links im Reiter "Undo / Redo den Button "Apply..." drücken
* Den Inhalt der Zwischenablage einfügen (z.B. mit ```STRG```+```V```) und den Button "Perform Operations" drücken.
## Download des Shell-Scripts openrefine-batch
* Falls OpenRefine im Terminal noch läuft, beenden Sie es durch die Tastenkombination ```STRG```+```C```.
* Geben Sie im Terminal folgende Befehle ein:
```
wget https://github.com/felixlohmeier/openrefine-batch/archive/master.zip
unzip master.zip
cd openrefine-batch-master
chmod +x openrefine-batch.sh
```
## Tutorial aus Kapitel 3.4 automatisiert bearbeiten
In dem Download sind die Daten aus dem Tutorial enthalten. Wenn Sie mögen, können Sie die mitgelieferte JSON-Datei im Ordner examples/powerhouse-museum/config/ durch Ihre eigene Transformationshistorie ersetzen.
Geben Sie im Terminal folgenden Befehl ein, um das Script ```openrefine-batch.sh``` auf den mitgelieferten Beispieldaten laufen zu lassen:
```
./openrefine-batch.sh \
-a examples/powerhouse-museum/input/ \
-b examples/powerhouse-museum/config/ \
-c examples/powerhouse-museum/output/ \
-f tsv \
-i processQuotes=false \
-i guessCellValueTypes=true \
-RX
```

View File

@ -1,23 +0,0 @@
# Kapitel 4: Suchmaschinen, Modellierung für Meta-Suche
In diesem Kapitel werden wir zunächst den Suchindex Apache Solr installieren und kennenlernen. Solr ist eine weit verbreite Software für Volltextsuchmaschinen und quasi Industriestandard, also nichts bibliotheksspezifisches.
Nachdem wir uns mit Solr vertraut gemacht haben, laden wir die Testdaten aus dem vorigen Kapitel als TSV in den Solr-Index. Solr versucht dabei automatisch ein Schema zu bilden, anhand derer die Daten suchbar gemacht werden. Dieses Schema werden wir kontrollieren und so anpassen, dass es für eine Meta-Suche geeignet sind.
Abschließend werden wir weitere Daten mit OpenRefine gemäß des Schemas transformieren und ebenfalls in den Solr-Index laden. So erhalten wir eine Suchmaschine zur Meta-Suche über mehrere Datenquellen.
Bitte nehmen Sie sich für die folgenden Abschnitte insgesamt etwa 8 Stunden Zeit:
* [4.1 Installation von Solr](/kapitel-4/41-installation-von-solr.md)
* [4.2 Tutorial zu Solr](/kapitel-4/42-tutorial-zu-solr.md)
* [4.3 Daten in Solr laden](/kapitel-4/43-daten-in-solr-laden.md)
* [4.4 Konfiguration des Schemas](/kapitel-4/44-konfiguration-des-schemas.md)
* [4.5 Weitere Daten indexieren](/kapitel-4/45-weitere-daten-indexieren.md)
Beiträge in den Lerntagebüchern der Studierenden:
* Elena Capelli: [Solr, warum es mehr ist, als eine fahlschgeschriebene Sonne…](https://elenasdiscovery.wordpress.com/2017/11/18/solr-warum-es-mehr-ist-als-eine-fahlschgeschriebene-sonne/) und [Wir bauen einen Bibliothekskatalog Teil 3](https://elenasdiscovery.wordpress.com/2017/11/18/wir-bauen-einen-bibliothekskatalog-teil-3/)
* Marina Hess: [Solr - Unser Suchindex](https://mainsuche.jimdo.com/blogbeitr%C3%A4ge/wir-indexieren-mit-solr/)
* Franziska Neuenschwander: [Modellierung für Meta-Suche mit Apache Solr](https://bainblogweb.wordpress.com/2017/11/28/modellierung-fur-meta-suche-mit-apache-solr/)
* Moreno Pontoriero: [O Solr mio](https://morenoexplores.wordpress.com/2017/11/26/o-solr-mio/)
* Aline Strauss: [Suchmaschinen, Modellierung für Meta-Suche 16/11/2017](https://alinesbiblio.wordpress.com/2017/11/27/suchmaschinen-modellierung-fuer-meta-suche-16-11-2017/)

View File

@ -1,37 +0,0 @@
# 4.1 Installation von Solr
## Installation
Wir verwenden die Version 7.1 von Solr.
* Geben Sie im Terminal folgende Befehle ein, um diese Version herunterzuladen und zu entpacken:
```
wget http://archive.apache.org/dist/lucene/solr/7.1.0/solr-7.1.0.tgz
tar zxf solr-7.1.0.tgz
```
siehe auch: [Offizielle Installationsanleitung](https://lucene.apache.org/solr/guide/installing-solr.html)
## Solr mit Beispielkonfiguration starten
* Geben Sie im Terminal folgenden Befehl ein, um Solr mit der Beispielkonfiguration "techproducts" zu starten:
```
~/solr-7.1.0/bin/solr -e techproducts
```
* Laden Sie anschließend ein paar mitgelieferte Beispieldaten, damit in der integrierten Suchoberfläche etwas mehr zu sehen ist:
```
~/solr-7.1.0/bin/post -c techproducts ~/solr-7.1.0/example/exampledocs/*
```
siehe auch: [Offizielle Anleitung "Running Solr"](https://lucene.apache.org/solr/guide/running-solr.html)
## Administrations- und integrierte Suchoberfläche
Nach einer kurzen Wartezeit (max. 1 Minute) sollten folgende Oberflächen im Browser erreichbar sein:
* Administrationsoberfläche: <http://localhost:8983/>
* Integrierte Suchoberfläche: <http://localhost:8983/solr/techproducts/browse>

View File

@ -1,13 +0,0 @@
# 4.2 Tutorial zu Solr
Zum Kennenlernen von Solr bearbeiten wir zunächst einen kleinen Teil des offiziellen Solr Tutorials der Version 7.1.
## Aufgabe: Kapitel "Basic Searching" durcharbeiten
Bearbeiten Sie jetzt den Abschnitt "Basic Searching" im offiziellen Solr Tutorial und machen Sie sich mit dem Query-Interface vertraut:
<http://lucene.apache.org/solr/guide/7_1/solr-tutorial.html#tutorial-searching>
## Hinweise
* Geben Sie auch die im Tutorial genannten ```curl```-Befehle ins Terminal ein.
* Den folgenden Abschnitt "Exercise 1 Wrap Up" bitte nicht bearbeiten.

View File

@ -1,72 +0,0 @@
# 4.3 Daten in Solr laden
## Solr beenden und starten
Solr wurde als Prozess gestartet, der bis zum nächsten Neustart des Rechners weiterläuft. Starten Sie jetzt Solr mit folgenden Befehlen neu, damit wir nicht mehr im Beispielverzeichnis `techproducts` arbeiten, sondern im Standardverzeichnis.
* Solr beenden:`~/solr-7.1.0/bin/solr stop -all`
* Solr starten:`~/solr-7.1.0/bin/solr start`
Etwa 15-30 Sekunden nach dem Startbefehl sollte die Administrationsoberfläche unter der gewohnten Adresse \([http://localhost:8983](http://localhost:8983)\) erreichbar sein.
## Index erstellen \(im Terminal\)
Erstellen Sie jetzt einen eigenen Suchindex mit dem Namen `htw`:
```
~/solr-7.1.0/bin/solr create -c htw
```
## Daten aus Kap. 3.5 laden \(im Terminal\)
Wir benötigen jetzt die in Kapitel 3.5 erstellten Testdaten. Falls Sie dort auf Probleme gestoßen sind, finden Sie auf der Seite [Lösungen](/losungen.md) eine Datei, die Sie hier nutzen können.
Der folgende Befehl indexiert die Daten aus der Datei `einstein.tsv` aus dem Ordner `Downloads` \(die Datei wird ganz am Ende mit der öffnenden spitzen Klammer als input benannt\) im Suchindex `htw`.
```
curl "http://localhost:8983/solr/htw/update/csv?commit=true&separator=%09&split=true&f.creator.separator=%E2%90%9F" --data-binary @- -H 'Content-type:text/plain; charset=utf-8' < ~/Downloads/einstein.tsv
```
Weitere Erläuterungen des Befehls:
* Die Basis der URL, die mit curl aufgerufen wird \(`http://localhost:8983/solr/htw/update/csv`\) ist die Adresse des CSV-Update-Handlers von Solr für den Index `htw`.
* Der Teil `commit=true` sorgt dafür, dass die Daten sofort in der Anzeige sichtbar werden.
* Bei TSV-Dateien muss das Trennzeichen \(`separator=%09`\) explizit mitgegeben werden.
* Solr muss außerdem mitgeteilt werden, dass Felder mehrfachbelegt sind \(`split=true`\) und mit welchem Zeichen diese jeweils getrennt sind \(`f.creator.separator=%E2%90%9F`\)
* Der ganze hintere Teil `--data-binary @- -H 'Content-type:text/plain; charset=utf-8'` ist spezifisch für das Senden von Dateien mit curl.
Weitere mehrfachbelegte Felder ergänzen Sie, indem Sie vor dem zweiten Anführungszeichen einen weiteren Teil wie folgt anfügen. Beispiel für das Feld `title`:
```
&f.title.separator=%E2%90%9F
```
Der komplette Befehl sieht dann wie folgt aus:
```
curl "http://localhost:8983/solr/htw/update/csv?commit=true&separator=%09&split=true&f.contributor.separator=%E2%90%9F&f.coverage.separator=%E2%90%9F&f.creator.separator=%E2%90%9F&f.date.separator=%E2%90%9F&f.description.separator=%E2%90%9F&f.extent.separator=%E2%90%9F&f.format.separator=%E2%90%9F&f.identifier.separator=%E2%90%9F&f.language.separator=%E2%90%9F&f.pages.separator=%E2%90%9F&f.publisher.separator=%E2%90%9F&f.title.separator=%E2%90%9F&f.type.separator=%E2%90%9F" --data-binary @- -H 'Content-type:text/plain; charset=utf-8' < ~/Downloads/einstein.tsv
```
## Prüfen Sie das Ergebnis
In der Browsing-Oberfläche \([http://localhost:8983/solr/htw/browse](http://localhost:8983/solr/htw/browse)\) können Sie prüfen, ob die Daten indexiert wurden. Sie werden feststellen, dass keine Daten im Index angekommen sind.
Schauen Sie noch einmal in das Terminal. Auf den `curl`-Befehl hatten Sie eine Rückmeldung erhalten, aus der das Problem ersichtlich ist. Darin steht unter anderem:
> Error adding field 'date'='uuuu' msg=For input string: \"uuuu\"
Fehlermeldungen finden Sie übrigens auch in der Administrationsoberfläche im Bereich "Logging": [http://localhost:8983/solr/\#/~logging](http://localhost:8983/solr/#/~logging)
Warum ist die Indexierung gescheitert?
* Solr versucht in der Standardeinstellung die Datentypen \(Text, Zahl, Datum, usw.\) automatisch zu erkennen und generiert daraus automatisch ein Schema. Wenn später in der Datei noch andere Daten folgen, die nicht zum "erratenen" Schema passen, dann bricht der Import ab.
* Die ersten Datensätze in unserer TSV-Datei enthalten in der Spalte `date` eine Jahreszahl (1967, 1980, 1979 usw.). Solr schließt daraus, dass das Feld `date` nur Zahlen beinhalten darf und verwendet den Feldtyp `plongs` (TrieLongField, 64-bit signed integer).
* In einem der hinteren Datensätze unserer TSV-Datei stehen in der Spalte `date` Buchstaben (uuuu). Buchstaben sind im Feldtyp `plongs` nicht zugelassen. Daher bricht der Import ab.
Wir müssen also entweder das Schema manuell definieren oder die Daten vereinheitlichen, damit wir diese erfolgreich indexieren können. Darum kümmern wir uns im nächsten Kapitel.
Das `u` steht übrigens für `Date element is totally or partially unknown` und ist im MARC-Feld `008` Zeichen 7-10 [explizit zugelassen](https://www.loc.gov/marc/bibliographic/bd008a.html). Da der Suchindex Apache Solr mit dem `u` aber nichts anfangen kann, hätten wir dies in der Transformation in Kapitel 3.5 berücksichtigen müssen. Eine Lösungsmöglichkeit wäre gewesen, die Ungenauigkeit durch einen Zeitraum (Anfangs- und Enddatum) auszudrücken. Dafür gibt es in Solr [weitreichende Möglichkeiten](https://lucene.apache.org/solr/guide/7_1/working-with-dates.html#WorkingwithDates-DateRangeFormatting).
## Literatur
* [Offizielle Anleitung zum Einspielen von CSV-Daten](https://lucene.apache.org/solr/guide/7_1/uploading-data-with-index-handlers.html#csv-formatted-index-updates)

View File

@ -1,53 +0,0 @@
# 4.4 Konfiguration des Solr Schemas
Ab Solr Version 6.0 ist das sogenannte "managed schema" \(auch "schemaless mode" genannt\) voreingestellt. Solr analysiert bei der Indexierung die Daten und versucht das Schema selbst zu generieren. Felder können aber weiterhin zusätzlich manuell definiert werden.
Rufen Sie dazu die Admin-Oberfläche auf. Wählen Sie im Menü "Core Selector" den Index "htw" und dann im zweiten Menü den Punkt "Schema". Direktlink: [http://localhost:8983/solr/\#/htw/schema](http://localhost:8983/solr/#/htw/schema)
## Automatisch erkanntes Feld date löschen
Durch die Indexierung in Kapitel 4.3 hat Solr automatisch einige Felder im Schema definiert. Rufen Sie im Menü das Feld `date` auf. Sie werden sehen, dass als Feldtyp `plongs` definiert wurde. Direkte Änderungen sind hier nicht möglich, daher drücken Sie den Button `delete field` und bestätigen Sie die Sicherheitsabfrage mit `delete`.
## Feld date manuell neu anlegen
Nun können wir das Feld `date` manuell definieren. Gehen Sie dazu wie folgt vor:
* Button "Add Field" drücken
* Name `date` eingeben \(Groß- und Kleinschreibung ist wichtig\)
* Als `field type` die Option `text_general` auswählen (damit ist fast alles erlaubt)
* Button `Add field` drücken
## "Catchall" Copy Field anlegen
In der Standardkonfiguration gibt es keine übergreifende Suche. Im [Query-Interface](http://localhost:8983/solr/#/htw/query) und in der [integrierten Suchoberfläche](http://localhost:8983/solr/techproducts/browse) müsste stets ein Feld bei der Suche definiert werden. Damit ähnlich wie bei dem `techproducts`-Tutorial eine freie Texteingabe möglich wird, definieren wir eine Kopieranweisung aller Werte \(`*`\) in das Standard-Feld \(`_text_`\).
* Button "Add Copy Field" drücken
* source: `*`
* destination: `_text_`
## Neuindexierung
Damit die Änderungen wirksam werden, müssen wir die Daten erneut indexieren.
Schritt 1: Index leeren:
```
curl "http://localhost:8983/solr/htw/update?commit=true" -H "Content-Type: text/xml" --data-binary '<delete><query>*:*</query></delete>'
```
Schritt 2: `einstein.tsv` indexieren \(hier mit Mehrfachbelegungen\):
```
curl "http://localhost:8983/solr/htw/update/csv?commit=true&separator=%09&split=true&f.contributor.separator=%E2%90%9F&f.coverage.separator=%E2%90%9F&f.creator.separator=%E2%90%9F&f.date.separator=%E2%90%9F&f.description.separator=%E2%90%9F&f.extent.separator=%E2%90%9F&f.format.separator=%E2%90%9F&f.identifier.separator=%E2%90%9F&f.language.separator=%E2%90%9F&f.pages.separator=%E2%90%9F&f.publisher.separator=%E2%90%9F&f.title.separator=%E2%90%9F&f.type.separator=%E2%90%9F" --data-binary @- -H 'Content-type:text/plain; charset=utf-8' < ~/Downloads/einstein.tsv
```
## Ergebnis prüfen
Rufen Sie nun erneut die Browsing-Oberfläche \([http://localhost:8983/solr/htw/browse](http://localhost:8983/solr/htw/browse)\) auf. Jetzt sollten die Daten erscheinen und suchbar sein.
## Literatur
* [Exercise 2: Modify the Schema and Index Films Data \(im Solr Tutorial\)](http://lucene.apache.org/solr/guide/7_1/solr-tutorial.html#exercise-2)
* [Einführungsartikel zu "Managed Schema"](https://support.lucidworks.com/hc/en-us/articles/221618187-What-is-Managed-Schema-)
* [Einführungsartikel zur Definition von Feldern im Schema](http://www.solrtutorial.com/schema-xml.html)

View File

@ -1,20 +0,0 @@
# 4.5 Bonus: Weitere Daten indexieren
Um eine Meta-Suche über verschiedene Datenquellen zu ermöglichen, müssen alle Daten nach dem gleichen Schema indexiert werden. Nur wenn es große Überschneidungen bei den Suchfeldern gibt, macht eine übergreifende Suche mit Filtermöglichkeiten (Facetten) Sinn.
Wir haben mit Dublin Core bereits ein Schema verwendet, dass als kleinster gemeinsamer Nenner auch für andere Daten gut geeignet ist. Damit wir weitere Daten indexieren können, müssen wir diese also ebenfalls so transformieren, dass Sie dem Dublin Core Schema folgen.
In Kapitel 3 haben wir im OpenRefine Tutorial mit Daten des Powerhouse Museum gearbeitet. Diese Daten können wir indexieren, wenn wir zuvor die Spalten gemäß der Feldbezeichnungen in unserem Schema umbenennen. Weiterhin benötigt Solr immer einen eindeutigen Identifier pro Datensatz (bei unseren Tabellendaten also pro Zeile).
## Aufgabe 1: Transformieren Sie die Daten des Powerhouse Museum mit OpenRefine
* Benennen Sie die Spalten so um, dass Sie auf die Feldbezeichnungen in unserem Schema (Dublin Core) passen. Die erste Spalte muss `id` lauten und muss mit einem eindeutigen Identifier versehen sein.
* Exportieren Sie die Daten als TSV
## Aufgabe 2: Indexieren Sie die Daten in Solr
* Verwenden Sie dazu den bekannten Befehl mit `curl` (vgl. Kap. 4.3/4.4)
## Lösung
Beispiele und Ergebnisse zu den obigen Aufgaben finden Sie auf der Seite [Lösungen](/losungen.md).

Some files were not shown because too many files have changed in this diff Show More