Fünf Dinge aus der Informatik, die ein Digital Humanist kennen sollte

Werbung
Fünf Dinge „aus der Informatik“, die ein
Digital Humanist kennen sollte
Dipl.-Math. Martin Sievers
Trier Center for Digital Humanities
DH Orientierungstage WiSe 2016 / 2017
Einführung / Motivation
Was sind die „Digital Humanities“?
Was tut ein „Digital Humanist“?
Interdisziplinäres Team am TCDH
Abgrenzung (manchmal „Kampfsprache“):
I
I
I
Geisteswissenschaftler vs. Informatiker
Anwender vs. Programmierer
Fachwissenschaftler vs. Techniker
Ziel: Diskussion auf Augenhöhe
Themenauswahl subjektiv, aber nicht willkürlich
Kein Anspruch auf Vollständigkeit
Dipl.-Math. Martin Sievers (TCDH) Fünf Dinge „aus der Informatik“, die ein Digital Humanist kennen sollte DH Orientierungstage
2
Gliederung
1
Reguläre Ausdrücke
2
Auszeichnungssprachen
3
Typographie
4
Versionsverwaltung
5
Datenbanken
Dipl.-Math. Martin Sievers (TCDH) Fünf Dinge „aus der Informatik“, die ein Digital Humanist kennen sollte DH Orientierungstage
3
Gliederung
1
Reguläre Ausdrücke
2
Auszeichnungssprachen
3
Typographie
4
Versionsverwaltung
5
Datenbanken
Dipl.-Math. Martin Sievers (TCDH) Fünf Dinge „aus der Informatik“, die ein Digital Humanist kennen sollte DH Orientierungstage
4
Idee / Konzept
Ein regulärer Ausdruck ermöglicht es, einen Text nach einem bestimmten Muster (mit Wildcards) zu durchsuchen und dieses Muster (oder Teile davon) zu ersetzen.
Pattern Matching (Musterabgleich): Suche alle Vorkommen einer
Zeichenkette im Text
Abkürzungen: RegExp oder Regex
Unterstützung in Skript- und Programmiersprachen sowie in
Texteditoren
Verschiedene Standards:
I
I
Perl Compatible Regular Expressions (PCRE)
Portable Operating System Interface (POSIX.2)
(Unterscheidung zwischen Basic RegExp und Extented RegExp)
Dipl.-Math. Martin Sievers (TCDH) Fünf Dinge „aus der Informatik“, die ein Digital Humanist kennen sollte DH Orientierungstage
5
Zeichenvorrat
Einzelne Zeichen: a b 0
Zeichenauswahl:
[abc] Menge einzelner Buchstaben
[0-5] Zeichenbereich (kann wiederholt werden: [0-9a-f])
[^a] Ausschluss von Zeichen
Vordefinierte Zeichenklassen, u. a.:
I
I
I
I
=
ˆ [0-9]
\w =
ˆ [a-zA-Z_0-9] (und ggf. Umlaute)
\s Whitespace-Character (Leerzeichen, Tabs, Zeilenumbruch, . . .)
Komplimentärmengen \D, \W und \S
\d
.
steht für ein beliebiges Zeichen (\. sucht das Zeichen .)
^
markiert Anfang, $ Ende einer Zeichenkette bzw. Zeile
Dipl.-Math. Martin Sievers (TCDH) Fünf Dinge „aus der Informatik“, die ein Digital Humanist kennen sollte DH Orientierungstage
6
Operationen
Verkettung Aneinanderreihung einzelner Ausdrücke: Test
Alternative | für boolesche ODER-Verknüpfung: Test|Seite
Wiederholung Angabe von „Quantoren“ für den voranstehenden
Ausdruck:
Vorkommen mindestens min-mal und
höchstens max-mal
Varianten: {n}, {min,}, {0,max}
? Vorkommen optional (=
ˆ {0,1})
+ Vorkommen mindestens einmal (=
ˆ {1,})
ˆ {0,})
* Vorkommen beliebig oft (=
{min,max}
Ggf. ist eine Klammerung nötig. Vgl. ab|c vs. a(b|c)
Dipl.-Math. Martin Sievers (TCDH) Fünf Dinge „aus der Informatik“, die ein Digital Humanist kennen sollte DH Orientierungstage
7
Besonderheiten
Gierig vs. faul
I
I
I
I
Quantoren sind greedy, d. h. sie liefern immer die größtmögliche
Übereinstimmung zurück
Non-greedy oder lazy durch zusätzliches ?
wird nicht von allen Implementierungen unterstützt
Beispiel: A.*B bzw. A.*?B für Zeichenfolge ABCDEB
Gruppierung und Rückwärtsreferenzierung
I
I
I
I
Ausdrücke können durch (...) gruppiert (und gespeichert) werden (Capturing group)
späterer Zugriff (beim Ersetzen) durch \1 (oder $1)
Erzeugung von Rückwärtsreferenzen kostet Laufzeit und Speicher
Non-capturing group (?:...)
Dipl.-Math. Martin Sievers (TCDH) Fünf Dinge „aus der Informatik“, die ein Digital Humanist kennen sollte DH Orientierungstage
8
Anwendungsbeispiel I
Aufgabe
Ersetze alle normalen Leerzeichen bei Seitenangaben der Form S.␣X
durch geschützte Leerzeichen (in LATEX durch ~)
Definiere präzises Suchmuster:
S ist einfaches Zeichen (Character)
I . ist Sonderzeichen (Escaped character)
I Leerzeichen kann als Klasse ausgedrückt werden (Whitespace)
I Seitenangabe ist ein Bereich mit Wildcard +
I Seitenangabe muss man sich merken (Capturing group)
⇒ Suche nach S\.\s([0-9]+)
I
Ersetzungsausdruck S.~$1
Tests z. B. über http://regexr.com/
Dipl.-Math. Martin Sievers (TCDH) Fünf Dinge „aus der Informatik“, die ein Digital Humanist kennen sollte DH Orientierungstage
9
Anwendungsbeispiel II
Aufgabe
Ein Datum im Format MM/DD/YYYY soll in das Format YYYY-MM-DD
überführt werden.
Monat ein- oder zweistellig: erste Ziffer 0 oder 1, zweite 0 bis 9
Tag ein- oder zweistellig: erste Ziffer 0 bis 3, zweite 0 bis 9
Jahreszahl muss vierstellig sein: Ziffern jeweils 0 bis 9
Gruppierung der Einzelteile
/ muss je nach Anwendung maskiert werden
⇒ Suche nach ([0-1]?[0-9])\/([0-3]?[0-9])\/([0-9]{4})
Ersetzungsausdruck: \3-\1-\2
Dipl.-Math. Martin Sievers (TCDH) Fünf Dinge „aus der Informatik“, die ein Digital Humanist kennen sollte DH Orientierungstage
10
Gliederung
1
Reguläre Ausdrücke
2
Auszeichnungssprachen
3
Typographie
4
Versionsverwaltung
5
Datenbanken
Dipl.-Math. Martin Sievers (TCDH) Fünf Dinge „aus der Informatik“, die ein Digital Humanist kennen sollte DH Orientierungstage
11
Idee / Konzept
Eine Auszeichnungssprache (markup language) ist eine maschinenlesbare Sprache für die Gliederung und Formatierung von Texten
und anderen Daten.
Begriff ursprünglich aus der Druckersprache
Typographische Bedeutung
Trennung von Inhalt und Form führt zu Kennzeichnung von
Elementen gleicher Bedeutung (semantische Auszeichnung)
SGML (Standard Generalized Markup Language) 1986 und
XML (Extensible Markup Language) 1998 als Metasprachen zur
Definition von Auszeichnungssprachen
Wichtigste Anwendung in den DH: TEI P5 (Text Encoding
Initiative)
Dipl.-Math. Martin Sievers (TCDH) Fünf Dinge „aus der Informatik“, die ein Digital Humanist kennen sollte DH Orientierungstage
12
Aufbau einer XML-Datei
Aufteilung in Kopf (<head>) und Hauptteil (<body>)
Umschließe Teile (Elemente) in <...> (Tags)
Tags können Attribute enthalten:
1
<body> <!-- vgl. http://teibyexample.org/examples/TBED07v00.htm -->
2
<div>
3
<lg>
4
5
6
7
<l n="1"> <app>
<rdg wit="#H201 #L1894 #LL">Faith</rdg>
<rdg wit="#P1891 #CP">FAITH</rdg>
</app> is a fine invention</l>
Schema zur Validierung eines Dokuments (DTD, RelaxNG)
Vielfältige Analyse-, Umwandlungs- und Weiterverarbeitungsmöglichkeiten (X-Technologien)
Dipl.-Math. Martin Sievers (TCDH) Fünf Dinge „aus der Informatik“, die ein Digital Humanist kennen sollte DH Orientierungstage
13
Spezialfall LATEX
I hope to die before I have to
use Microsoft Word.
Donald E. Knuth
LATEX als Markup-Sprache basierend auf TEX
Turing-vollständige Programmiersprache
Idee: Textsatz als Optimierungsproblem
Erste Veröffentlichung 1978 (TEX78)
Open Source
Breite Unterstützung des wissenschaftlichen Textsatzes
Dipl.-Math. Martin Sievers (TCDH) Fünf Dinge „aus der Informatik“, die ein Digital Humanist kennen sollte DH Orientierungstage
14
Gliederung
1
Reguläre Ausdrücke
2
Auszeichnungssprachen
3
Typographie
4
Versionsverwaltung
5
Datenbanken
Dipl.-Math. Martin Sievers (TCDH) Fünf Dinge „aus der Informatik“, die ein Digital Humanist kennen sollte DH Orientierungstage
15
Idee / Konzept
Typographie bezieht sich klassischerweise auf die Kunst und das
Handwerk des Druckens mit beweglichen Lettern (Gutenberg).
Heutzutage oft Oberbegriff für den Gestaltungsprozess, auch
für elektronische Medien
Mehrere Ebenen:
I
I
Makrotypographie beschreibt die Gesamtheit einer Druckseite
oder Webpage (Seitenformat, Satzspiegel, Platzierung von Bildern
und Tabellen, . . .)
Mikrotypographie (oder Detailtypographie) umfasst Feinheiten
des Schriftsatzes (Schriftart, Kapitälchen, Ligaturen, Laufweite, . . .)
Dipl.-Math. Martin Sievers (TCDH) Fünf Dinge „aus der Informatik“, die ein Digital Humanist kennen sollte DH Orientierungstage
16
Beispiele aus dem Alltag (I)
Quelle: https://butschinsky.wordpress.com/2011/09/14/spitze-finger-ironie-dialog/
Dipl.-Math. Martin Sievers (TCDH) Fünf Dinge „aus der Informatik“, die ein Digital Humanist kennen sollte DH Orientierungstage
17
Beispiele aus dem Alltag (II)
Quelle: https://butschinsky.wordpress.com/2011/09/10/ohne-titel/
Dipl.-Math. Martin Sievers (TCDH) Fünf Dinge „aus der Informatik“, die ein Digital Humanist kennen sollte DH Orientierungstage
18
Beispiele aus dem Alltag (III)
Quelle: https://butschinsky.wordpress.com/2011/09/10/der-apostroph/
Dipl.-Math. Martin Sievers (TCDH) Fünf Dinge „aus der Informatik“, die ein Digital Humanist kennen sollte DH Orientierungstage
19
Konsequenzen für Publikationen
Geeignete Software nutzen („Office“ ist nur bedingt geeignet)
Verwendung (hochwertiger) OpenType-Schriften (Kapitälchen,
Ligaturen, Mediävalziffern, . . .)
Trennung von Inhalt / Struktur und Layout
Verwendung korrekter Zeichen (Unicode) und Abstände:
I
I
I
I
– vs. „ “ vs. " " oder auch ’ vs. ´
5 % vs. 5% / 5 %
...
Absatz vs. Zeilenumbruch
Web: Nutzung von CSS (Cascading Style Sheets)
Dipl.-Math. Martin Sievers (TCDH) Fünf Dinge „aus der Informatik“, die ein Digital Humanist kennen sollte DH Orientierungstage
20
Gliederung
1
Reguläre Ausdrücke
2
Auszeichnungssprachen
3
Typographie
4
Versionsverwaltung
5
Datenbanken
Dipl.-Math. Martin Sievers (TCDH) Fünf Dinge „aus der Informatik“, die ein Digital Humanist kennen sollte DH Orientierungstage
21
Idee / Konzept
Eine Versionsverwaltung ist ein System zur Erfassung von
Änderungen an Dokumenten oder Dateien
Alle Versionen in Archiv (Repository)
Zeitstempel und Nutzerkennung
Typische Nutzung für Quelltexte in der Softwareentwicklung
bzw. in CMS
Anwendung auf Binärdaten (Grafiken, proprietäre Formate
etc.) eingeschränkt möglich (kein Merge)
Nutzung über eigene Server / NAS / externe Festplatten oder
über Plattformen wie GitHub, Sourceforge und BitBucket bzw.
Ticketsysteme wie Redmine
Dipl.-Math. Martin Sievers (TCDH) Fünf Dinge „aus der Informatik“, die ein Digital Humanist kennen sollte DH Orientierungstage
22
Funktionen einer Versionsverwaltung
Protokollierungen der Änderungen:
Wer hat wann was geändert
Wiederherstellung alter Fassungen einzelner Dateien:
Versehentliche Änderungen jederzeit rückgängig machen
Archivierung einzelner Fassungen: jederzeit Zugriff auf alle
Versionen
Koordinierung des gemeinsamen Zugriffs mehrerer Entwickler
Gleichzeitige Entwicklung durch mehrere Zweige (Branches)
Dipl.-Math. Martin Sievers (TCDH) Fünf Dinge „aus der Informatik“, die ein Digital Humanist kennen sollte DH Orientierungstage
23
Arbeitsweise von Versionsverwaltungen
Variante 1: Zentrales Repository
I
I
I
Hinzufügen mit commit
Aktualisierung mit update
Beispiel: Subversion (SVN)
Variante 2: Lokales und zentrales Repository
I
I
I
Indexierung per add, hinzufügen per commit bzw. push (lokal bzw.
zentral)
Aktualisierung per push bzw. checkout; dabei evtl. merge
Beispiele: Git, Mercurial
Dipl.-Math. Martin Sievers (TCDH) Fünf Dinge „aus der Informatik“, die ein Digital Humanist kennen sollte DH Orientierungstage
24
Ablauf am Beispiel Git
c b n a Brigitte Jellinek, entnommen https://web-development.github.io/git/basic-git/
Dipl.-Math. Martin Sievers (TCDH) Fünf Dinge „aus der Informatik“, die ein Digital Humanist kennen sollte DH Orientierungstage
25
Gliederung
1
Reguläre Ausdrücke
2
Auszeichnungssprachen
3
Typographie
4
Versionsverwaltung
5
Datenbanken
Dipl.-Math. Martin Sievers (TCDH) Fünf Dinge „aus der Informatik“, die ein Digital Humanist kennen sollte DH Orientierungstage
26
Idee / Konzept
Eine Datenbank speichert große Datenmengen effizient, widerspruchsfrei und dauerhaft. Sie stellt benötigte Teilmengen in unterschiedlichen, bedarfsgerechten Darstellungsformen für Benutzer
und Anwendungsprogramme bereit
Unterschiedliche Datenbankmodelle
Relationale Datenbanken (seit den 1970er-Jahren): MySQL
I
I
I
Relation als Tabelle: Attribute in Spalten, Werte in Zeilen
Arbeitssprache SQL (Structured Query Language)
am weitesten verbreiteter Datenbanktyp
Dipl.-Math. Martin Sievers (TCDH) Fünf Dinge „aus der Informatik“, die ein Digital Humanist kennen sollte DH Orientierungstage
27
Beispiel
Entity-Relationship-Modell (ER-Modell):
c b a Nils Boßung, entnommen https://de.wikipedia.org/wiki/SQL
Relationen:
Student
MatrNr
26120
25403
27103
hört
Name
Fichte
Jonas
Fauler
MatrNr
25403
26120
26120
Vorlesung
VorlNr
5001
5001
5045
VorlNr
5001
5022
5045
Professor
Titel
ET
IT
DB
PersNr
15
12
12
PersNr
12
15
20
Name
Wirth
Tesla
Urlauber
Beispiel für Relationen: (26120,Fichte), (5022,IT,12)
Dipl.-Math. Martin Sievers (TCDH) Fünf Dinge „aus der Informatik“, die ein Digital Humanist kennen sollte DH Orientierungstage
28
Beispielabfragen
SELECT VorlNr, Titel FROM Vorlesung;
VorlNr
5001
5022
5045
Titel
ET
IT
DB
SELECT VorlNr, Titel FROM Vorlesung WHERE Titel = 'ET';
VorlNr
5001
Titel
ET
SELECT Vorlesung.Titel, Professor.Name FROM Professor,
Vorlesung WHERE Professor.PersNr = Vorlesung.PersNr;
Titel
ET
IT
DB
Name
Tesla
Wirth
Wirth
Dipl.-Math. Martin Sievers (TCDH) Fünf Dinge „aus der Informatik“, die ein Digital Humanist kennen sollte DH Orientierungstage
29
Alternativen zu SQL
Probleme z. B. bei der Indexierung großer Datenmengen oder
auch Websites mit hohen Lastaufkommen
Alternative: NoSQL (Not only SQL, seit etwa 2000), u. a.
I
I
Dokumentorientierte Datenbanken (XML-Datenbanken): eXistDB
Graphdatenbanken: Neo4j
Genealogy of Relational Database Management Systems
v6.0, 1986
OpenIngres 2.0, 1997
vR3, 2004
v9.0, 2006
v10, 2010
Monet Database System (Data Distilleries)
DABA (Robotron, TU Dresden)
Ingres v5.x, 1970s
PostgreSQL
v1, 1995
v6, 1997
MonetDB
IBM
Greenplum
Illustra
Informix
v1.0, 1980s
v4.0, 1990
v5.0, 1992
v6.0, 1994
C-Store
Informix
Sybase SQL Server
v4.0, 1990
Sybase ASE
v11.5, 1996
v11, 2007
Netezza
PostgreSQL
v12.10, 2013
Red Brick
Microsoft SQL Server
H-Store
H-Store
Informix
Vertica Analytic DB
Volt DB
v11.9, 1998
Expressway 103
Sybase IQ v11, 1995
v12.5, 2001
v12.5.1, 2003
v15.0, 2005
v3, 1995
VoltDB
Vertica
v16.0, 2012
SAP
Sybase ASE
v15, 2009
Sybase SQL Anywhere
v1, 1992 v2, 1993
Microsoft Access
v12.0, 1999
v12, 1999
Watcom SQL Powersoft
CODD RIVER
Microsoft SQL Server
HP
code
brand
v1.0, 1987
v1.0, 1981
Greenplum
v11.70, 2010
DATAllegro
v3.0, 1988
BAY AREA PARK
v10, 1993
v9, 2010
IBM Red Brick
Warehouse
v7.0, 1995
Pivotal
EMC
IBM Informix v10, 2005
v9.0, 2000
alpha, 1979
VectorWise
Netezza
v7, 2000
v8, 2005
Red Brick
Empress Embedded
Ingres
VectorWise (Actian)
MonetDB (CWI)
Postgres
Berkeley Ingres
v4, 1997
v5, 1999
v10, 2001
v11, 2003
Sybase IQ
v12, 2007
SQL Anywhere
v14, 2010
Access
v1, 1989
FoxPro
Oracle
v4.21, 1993
VisualFoxPro (Microsoft)
v6, 1994
v6.5, 1995 v7, 1998
mSQL
v3, 1983
v4, 1984
v5, 1985
v8, 1997
v9i, 2001
v10g, 2003
v10, 2008
v3.1, 1997
MySQL
v3.21, 1998
v3.23, 2001
v4, 2003
v10gR2, 2005
v4.1, 2004
1990s
RDB (DEC)
1980s
ShareBase (BrittonLee)
MySQL
MariaDB
v10, 2013
v5.5, 2010
TimesTen
v13.10, 2010
Aster Database
JBMS
v5.1, 2004
v6.0, 2005
v6.2, 2006
v12, 2007
v13.0, 2009
v14.0, 2012
Teradata
Teradata
Empress Embedded
RDB
v10.2, 2008
v8.1, 1998
2010s
v7, 2010
v1, 1983
Cloudscape
DB2/400
DB2 UDB v3, 1993
v2, 1988
Informix
Apache Derby
v6, 2008
IBM
DB2 z/OS v7, 2001
v6, 1999
v4, 1992
DB2 for VSE & VM
Derby
DB2 UDB for iSeries
v5, 1997
v2, 1992
Solid DB
TimesTen
Paradox
v4, 1995
RELATIONAL CREEK
v1, 1988
DB2
Infobright
Oracle
Oracle
v6.1, 1997
v3, 1993
SQL/400
System/38
Oracle
v12c, 2013
Infobright
MariaDB
Corel
NCR
DB2 MVS
SQL/DS
System-R (IBM)
v11gR2, 2009
v5.1, 2008
Sun
InnoDB (Innobase)
Borland
Oracle
BAY AREA PARK
v11, 2012
v11g, 2007
v5, 2005
v7, 1992
Paradox (Ansa)
Teradata v1, 1983
persons
v8i, 1999
v9, 2005
v5.1, 1986
v2, 1979
Multics Relational Data Store
(Honeywell)
v8, 2000
DB2 for iSeries
Derby
v9, 2007
v8, 2004
Transbase
v10, 2010
DB2 for z/OS
DB2 for VSE & VM
v5, 1996
v4, 1994
v6, 1999
v7, 2001
v8, 2003
IBM
v9, 2006
TinyDB
Transbase
(Transaction Software)
Solid DB
EXASolution
EXASolution
dBase
REDABAS (Robotron)
dBase (Ashton Tate)
Borland
IBM IS1
InterBase
GDBM
1970s
v1, 1991
v3, 1999
FileMaker
(Nashoba)
Siemens
Nonstop SQL
(Tandem)
v1, 1987 v2, 1989
AdabasD
(Software AG)
Claris (Apple) II, 1988
v1, 1985
v1.5, 2004
v4, 2001
HSQLDB
Mariposa (Berkeley)
Gamma (Univ. Wisconsin)
DDB4 (Nixdorf)
v1, 2003
SAP DB
BerkeleyDB
CODD RIVER
SQLite
SAP
v1.7, 2002
c b a entnommen
v5, 2010
SAP HANA
P*TIME
HANA
MaxDB
MaxDB
Nonstop SQL
https://hpi.de/
v3, 2011
Compaq
HP
FileMaker Pro v2, 1992 v3, 1995 v4, 1997 FileMaker Inc. v5, 1999
v7, 2004
v6, 2002
AdabasD
v11, 2011 v14, 2015
v8, 2005
Neoview
v9, 2007
v10, 2009
FileMaker
Felix Naumann, Jana Bauckmann, Claudia Exeler, Jan-Peer Rudolph, Fabian Tschirschnitz
Key to lines and symbols
naumann/projects/
Contact - Hasso Plattner Institut, Potsdam, [email protected]
v9, 2006CC
Publishing Date
v2, 2012
v1.8, 2005
Oracle
v1.6, 2001
DB2 for LUW
HSQLDB
v2.0, 2010
v2, 2006
2000s
SQLite
Sleepycat v2, 1997
NDBM
VDN/RDS
Firebird
Firebird
Berkeley DB
DBM
dBase Inc. InfiniDB
Ashton Tate
Groton Database Systems
IBM Peterlee
Relational Test Vehicle
Acquisition
Versions
Discontinued
Branch (intellectual and/or code)
Crossing lines have no special semantics
Design - Alexander Sandt Grafik-Design, Hamburg
Version 5.0 - October 2015
http://www.hpi.uni-potsdam.de/naumann/projekte/rdbms_genealogy.html
rdbms-genealogy.html
Fazit / Abschluss
Informatik ist wesentlicher Bestandteil der DH, nicht notwendiges Übel
Diskussionen auf Augenhöhe nur mit Vorkenntnissen möglich
Vielen Dank für Ihre Aufmerksamkeit
Fragen?
Anmerkungen?
Q [email protected]
7 TeX4Publication
B http://kompetenzzentrum.uni-trier.de
Dipl.-Math. Martin Sievers (TCDH) Fünf Dinge „aus der Informatik“, die ein Digital Humanist kennen sollte DH Orientierungstage
31
Herunterladen