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