owned this note
owned this note
Published
Linked with GitHub
# Library Carpentry Marburg
Zeitplan, Installationshinweise etc.:
https://evamarik.github.io/2018-06-25-marburg/
# Organisatorisches
Am Montag, 25.6.18, ist im [Rotkehlchen](https://waggonhalle.de/rotkehlchen/rotkehlchen-start.html) (Waggonhalle, Rudolf-Bultmann-Straße 2A, 35039 Marburg) ab 19.00 Uhr ein Tisch für unsere Gruppe reserviert.
# Jargon Busting
Welche Begriffe, Phrasen oder Ideen rund um Programmieren, Code oder Software-Entwicklung sind euch schon begegnet? Bei welchen habt ihr das Gefühl, dass ihr mehr darüber wissen solltet?
* Semantic Web
* SQL (!!!)
* [LibraryCarpentry.GitHub.io/lc-sql](https://librarycarpentry.github.io/lc-sql/)
* [SwCarpentry.GitHub.io/sql-novice-survey](https://swcarpentry.github.io/sql-novice-survey/)
* Schnittstellen (Daten auslesen und transformieren, welche Werkzeuge gibt es?, bsp. MARC21 zu PICA), z.B. Normdaten verwenden
* APIs = Application Programming Interfaces = "Schnittstellen"
* Versionskontrolle über Git -- nicht nur für Programme (auch für Dokumente etc.)
* [Datalad](http://www.datalad.org) => Peer fragen
* MarkDown / LaTeX + Git(Hub/Lab) => katrin.leinweber@tib.eu
* [AuthorCarpentry.GitHub.io](https://authorcarpentry.github.io/)
* Mehr Vertrautheit mit Bash/CLI - Standardbefehle
* [software carpentry "The Unix Shell"](http://swcarpentry.github.io/shell-novice/) => Peer fragen
* XML-Familie
* Makros
* Skripte
* Programme vs. Programmiersprachen
# OpenRefine
https://librarycarpentry.github.io/lc-open-refine/
Datensatz als Datei herunterladen: [doaj-article-sample.csv](https://box.uni-marburg.de/index.php/s/PVzAL1Xh8gnFDUC)
Oder folgende URL direkt in OpenRefine as `Web Adress` einfügen:
https://raw.githubusercontent.com/LibraryCarpentry/lc-open-refine/gh-pages/data/doaj-article-sample.csv
Text-Filter: Hier können Regular Expressions genutzt werden. Weitere Infos dazu: https://librarycarpentry.github.io/lc-data-intro/04-regular-expressions/
## Aufgabe
* Welche Lizenzen werden für die Artikel in diesem Datensatz genutzt?
Was ist die häufigste Lizenz in diesem Datensatz?
Wie viele Artikel in diesem Datensatz haben keine Lizenz?
## Aufgabe
Nutzt die “Facet by blank”-Funktion, um alle Publikationen in diesem Datensatz zu finden, die keine DOI haben.
+Clustering: see https://github.com/OpenRefine/OpenRefine/wiki/Clustering-In-Depth
## Weitere Ressorcen
+ [Cleaning Data with OpenRefine](https://programminghistorian.org/en/lessons/cleaning-data-with-openrefine)
+ [Fetch and Pare Data with OpenRefine](https://programminghistorian.org/en/lessons/fetch-and-parse-data-with-openrefine)
# Python
Eine kurze Übersicht über Python Datentypen:
* https://www.programiz.com/python-programming/variables-datatypes
* https://www.tutorialspoint.com/python/python_variable_types.htm
* https://docs.python.org/3/library/stdtypes.html
Python Bibliotheken finden:
* https://pypi.org
Link Python resources (José & Peer)
* https://drive.google.com/drive/folders/1Aq_KmFXGa4jIeE-ekquRNbMxc1UjdtVC?usp=sharing
+ Bibliotheken zur Visualisierung
* https://matplotlib.org/gallery/index.html
* http://seaborn.pydata.org/index.html
* https://altair-viz.github.io
# Web scraping
## Setup
1. [Chromebrowser installieren](https://www.google.com/chrome/)
2. Das Chrome-Plugin [Scraper](https://chrome.google.com/webstore/detail/scraper/mbigbapnjcgaffohmbkdlecaccepngjd) installieren
## Inhalt
1. Was ist Web-Scraping?
```
<div class='vornamen'>
<p>Christian</p>
</div>
```
`<testCase> ungleich <testcase>`
### XPath ([LibraryCarpentry.GitHub.io/lc-webscraping/02-xpath](https://librarycarpentry.github.io/lc-webscraping/02-xpath/index.html))
https://librarycarpentry.github.io/lc-webscraping/02-xpath/index.html
```nodenname``` Selektiert Knotenpunkte des gleichen Namens
```/``` Selektiert alles ab dem Wurzelknoten(root)
```//``` Selektiert alle direkten und indirekten Childnodes / erlaubt ein Springen
```.``` Meint aktuell selektierte Element/Knoten
```..``` Selektiert das Elternelement des aktuell gesuchten Elements
```@``` Selektiert Attribute von Elementen
``[@attribute='value']`` Selektiert Elemente mit Attributen die einen bestimmten Wert haben
```text()``` Text eines Elements
### Webconsole
https://hessischer-landtag.de/aktive-abgeordnete
### Daten scrapen via Browserplugin
https://www.bundestag.de/abgeordnete/
### Vorschläge
- Suchergebnisse sinnvoll erfassen z.B.
https://www.deutsche-digitale-bibliothek.de/searchresults?isThumbnailFiltered=true&query=b%C3%BCchner&viewType=list
- http://www.zeitschriftendatenbank.de/erschliessung/arbeitsunterlagen/zeta/
- Erfassung von Digitalisaten
http://tudigit.ulb.tu-darmstadt.de/show/sammlung43
## Fazit
* Web-scraping ist grundsätzlich legal
Aber in einigen Dingen sollte man Umsichtig sein:
* Webserver nicht bombardieren, Rücksicht auf andere NutzerThere
* Keinen Inhalt stehlen, Copyright beachten
* Seid nett, im Zweifel fragen.
# Git
> 20min-Vorbereitung: Katrin Leinweber (2018) Wieso, weshalb, warum Versionskontrolle? Und wie? [doi.org/10.5446/32224](https://av.tib.eu/media/32224)
- bitte installieren: [desktop.github.com](https://desktop.github.com/) & [atom.io](https://atom.io/)
- bitte [Beispieldatensatz herunterladen](https://raw.githubusercontent.com/caltechlibrary/git-desktop/gh-pages/data/survey_data_cleaned.csv)
# Fragen
## Open Refine
* Wo werden die Projektdateien gespeichert? Bzw. kann man in O.R. das Arbeitsverzeichnis definieren?
* Hier ist beschrieben, wo die Daten gespeichert werden: https://github.com/OpenRefine/OpenRefine/wiki/Back-Up-OpenRefine-Data
* So wie ich es sehe, kann man das Arbeitsverzeichnis nicht ändern.
* OpenRefine: Spalten automatisch in mehrere Spalten aufteilen
* Aus dem Menü auswählen: "edit column" -> "Split into several columns" -> ""|"" als Separator eingeben -> ok
* Daten anreichern mit WikiData und der GND
* Siehe hierzu auch: OpenRefine reconcilable data sources: https://github.com/OpenRefine/OpenRefine/wiki/Reconcilable-Data-Sources
# Ideencontainer und Interessenten für die Online-Follow-Up-Phase
* Python Notebooks weiter bearbeiten z.B. Funktionen schreiben
* Visualisierung bestimmter Fragen/Auswertungen in Python
* Webscraping zur Erzeugung von Neuerscheinungslisten
* ....
## Interessenten
* Birte Cordes (UB Kassel) cordes@bibliothek.uni-kassel.de
* Mirjam Kant (UB Gießen) mirjam.kant@bibsys.uni-giessen.de
* Nadine Schröder schroeder@mmg.mpg.de
* Andreas Morgen
* Evamaria Krause
# Evaluation
* Bitte schreibt auf den blauen (grün) Post-It Zettel einen Aspekt, den Ihr heute gelernt habt und der für Euch nützlich ist.
* Bitte schreibt auf den gelben (rot) Post-It eine Frage, die offen bzw. unklar geblieben ist.
# Gesamt-Feedback
One-Up, One-Down
Was war gut?
- Notizzettel & schnelle Helfer*innen
Was war nicht gut? Was könnten wir verbessern?
- weniger Texteditordinge bei Git
- mehr Themen-relevante Beispieldaten, statt Standard
- zu voll, zu viel reingepackt => Lessons durchklicken
Welche Themen oder Beispiele wären interessant?
# Weitere Selbst-Lernressourcen
- [try.github.io](https://try.github.io/): GitHub's Lernportal mit interaktiven Tutorials für Kommandozeile & Web-Interface
- [regexr.com](http://regexr.com/): Reguläre Ausdrücke/Expressions interaktiv zusammenpuzzlen
- [exercism.io](http://exercism.io/): Programmierübungen in vielen Sprachen mit Peer Review
- Carpentry Lessons: [Library](https://librarycarpentry.org/), [Data](http://www.datacarpentry.org/lessons/), [Software](http://software-carpentry.org/lessons/)