Date post: | 30-Nov-2014 |
Category: |
Technology |
Upload: | michael-sievers |
View: | 622 times |
Download: | 0 times |
SciflowWriterEin echtzeitfähiger Editor für kooperatives Schreiben
Michael Sievers22.12.2011
2E-Mail Spamschutz
Motivation
Status quo, wissenschaftliches Schreiben Word + Email Word + Dropbox LaTeX + SVN
Lösungen sind entweder unflexibel oder nicht leicht zu bedienen
Wunschliste Bedienbarkeit von Word PDF-Ausgabe von LaTeX Echtzeit-Kollaboration Browser-basiert
3E-Mail Spamschutz
Agenda
Theoretische Grundlagen
Zielsetzung und Konzeption der Arbeit Funktionsanforderungen Grundlegende Designentscheidungen Technisches Rahmenwerk
Design und Implementierung Anpassung der Programmierschnittstelle Anpassung der Datenhaltung Texttransformation nach LaTeX
Zusammenfassung und Ausblick
4SciflowWriter
Theoretische Grundlagen
5SciflowWriter
Kollaboratives Schreiben
Phasen der Texterstellung durch einen einzelnen Autor Planung (planing) Translation (translation) Begutachtung (reviewing)
Übertragung dieser Phasen auf eine Gruppe von Autoren
Zusätzliche Koordinierung und Planung bei mehreren Autoren notwendig Festlegung von Vorgehensweisen Verteilung von Rollen und Aufgaben …
Definition einer einheitlichen Nomenklatur durch Lowry et al.*
* P. B. Lowry, A. Curtis, and M. R. Lowry. Building a Taxonomy and Nomenclature of Collaborative Writing to Improve Interdisciplinary Research and Practice
6SciflowWriter
Phasen des kollaborativen Schreibens
Abbildung: Phasen des kollaborativen Schreibens nach Lowry et al.
7SciflowWriter
Nomenklatur nach Lowry et al.
Kollaborative Schreibaktivitäten Ideenfindung, Ideenzusammenführung usw.
Kollaborative Schreibstrategien sequentielles Schreiben, paralleles Schreiben usw.
Rollen Autor, Gutachter usw.
Arbeitsmodi synchron-verteilt, asynchron-verteilt usw.
8SciflowWriter
Kollaborative Schreibaktivitäten
Ideenfindung (brainstorming)
Ideenzusammenführung (converging on brainstorming)
Gliederung (outlining)
Textproduktion (drafting)
Begutachtung (reviewing)
Überarbeitung (revising)
Lektorierung (copy editing)
9SciflowWriter
Kollaborative Schreibstrategien
sequentielles Schreiben
horizontal-unterteiltes, paralleles Schreiben
geschichtetes, paralleles Schreiben
reaktives Schreiben
10SciflowWriter
Sequentielles Schreiben
Abbildung: Sequentielles Schreiben nach Lowry et al.
11SciflowWriter
Horizontal-unterteiltes, paralleles Schreiben
Abbildung: Horizontal-unterteiltes, paralleles Schreiben nach Lowry et al.
12SciflowWriter
Geschichtetes, paralleles Schreiben
Abbildung: Geschichtetes, paralleles Schreiben nach Lowry et al.
13SciflowWriter
Zielsetzung und Konzeption der Arbeit
14SciflowWriter
Funktionsanforderungen
Anwendungsszenarien Konferenz, Seminar, Arbeitsgruppe
Auszeichnungsmerkmale für wissenschaftliche Textgestaltung Überschriften Abbildungen Literaturverwaltung
Keine direkte Manipulation des zugrundeliegenden Markups Möglichkeit der Manipulation der Dokumentenvorlage
Restriktion der Dokumentenzugriffe z.B. schreibender Zugriff nur für Mitglieder der Autoren des Dokuments
15SciflowWriter
Grundlegende Designentscheidungen
Etherpad(-lite) als Softwarebasis der zu entwickelnden Software kollaborativer , webbasierter Texteditor
PDF als angestrebtes Ausgabeformat
Erzeugung des Ausgabeformats mit Hilfe von LaTeX Existenz von Dokumentenvorlagen für den wissenschaftlichen Bereich hohe Qualität der generierten PDF-Dateien
16SciflowWriter
Grundlegende Architektur
Abbildung: Erweiterung der Funktionalität durch eine neue Schnittstelle
17SciflowWriter
Grundlegende Architektur: PDF-Erzeugung
18SciflowWriter
Entwurf der Benutzerschnittstelle
19SciflowWriter
Technisches Rahmenwerk: Etherpad(-lite)
Etherpad ursprüngliche Web-Applikation von AppJet Inc. auf Basis des gleichnamigen Frameworks später Open-Source-Software nach der Übernahme von AppJet durch Google
Etherpad-lite Fork von Etherpad auf Basis von Node.js (anstatt AppJet) Clientcode fast vollständig identisch mit Etherpad
Etherpad Etherpad-lite
Codegröße 30 MB 1,5 MB
Codegröße (LOC) ca. 100‘000 ca. 9‘000
Programmiersprachen JavaScript, Java, Scala
JavaScript
Arbeitsspeicherverbrauch 250 – 1000 MB 15 – 30 MB
20SciflowWriter
Node.js
asychrones, ereignisgetriebenes, serverseitiges JavaScript-Framework
Google V8 JavaScript Engine
Event-Loop + strikt asynchrone Laufzeitblibliothekfunction(err, callback) { var directory = '/var/pads'); fs.mkdir(directory, 0755, function(err) { directory += '/' + padId; fs.mkdir(directory, 0755, function(err) { directory += '/exports'; fs.mkdir(directory, 0755, function(err) { directory += '/rev' + requestedRevision.toString(); fs.mkdir(directory, 0755, function(err) { … callback(null); }); }); }); });}
21SciflowWriter
Design und Implementierung
22SciflowWriter
Etherpad-Internas
Kollaborationsfunktionen basieren auf dem Konzept der operationalen Transformation
Abbildung: Beispiel für operationale Transformation
23SciflowWriter
Etherpad-Internas: Changesets
Operationen heißen im Kontext von Etherpad Changesets
Beispiel Z :196 |5=97 =31 *4 *5 +1 $ x
Erläuterung* Basistext hat eine Länge von 196 Lasse 97 Zeichen unverändert, wobei 5 Zeichen davon \n sind Lasse 31 Zeichen unverändert Setze die Attribute mit der Attribut-ID 4 und 5 für die folgende Operationen Füge ein Zeichen aus der Charbank (Bereich hinter dem $-Zeichen) ein
Dokument besteht aus einer Menge von Changesets zu einem definierten Basistext
* alle Zahlenangaben sind jeweils Base-36 kodiert
24SciflowWriter
Erweiterung der Programmierschnittstelle
RESTful-Webservice
simples Mapping auf CRUD-Operationen (create, read, update, delete)
einfache Zugriffsbeschränkung auf Basis von URLs und HTTP-Verben möglich
Beispiel
/api/2/pads
GET Liefert eine Liste von Pad-Ids.
PUT ---
POST Erzeugt ein Pad und gibt die Pad-Id zurück.
DELETE ---
25SciflowWriter
Erweiterung der Datenhaltung
Notwendingkeit der Bindung beliebiger Daten an ein Pad
Lösung: Datastores
Ein Datastore ist ein Namensraum für eine beliebige Anzahl von JSON-Objekten.
Jedes Pad kann beliebig viele solcher Datastores haben (z.B. bibliography).
Zugriff über die REST-API
/api/2/pads/[padId]/datastores/[datastoreId]
GET Liefert eine List von Elementkennungen (Element–IDs).
PUT Erstellt einen Datastore mit der angegebenen Datastore–ID.
POST Erstellt ein Element in dem angegebenen Datastore mit dem Inhalt des Payload der Anfrage und liefert die Element–ID zurück.
DELETE Löscht den angegebenen Datastore.
26SciflowWriter
Texttransformation nach LaTeX
Etherpad speichert pro Pad-Revision einen sog. attributierten Text unformatierter Text inkl. \n Attributstring
Attributstring-Format ist ein vereinfachtes Changeset-Format
Beispiel Hello World\n *1 *3 +5 *2 *4 +6 *2 |1+1
H e l l o W o r l d \n
Attribut-Id Bedeutung1 Author-12 Author-23 kursiv4 durchgestrichen
27SciflowWriter
Texttransformation nach LaTeX
LaTeX-Exporter erstellt ein Mapping zwischen Pad-lokalen Attribut-Ids und LaTeX-Tags parst den attributierten Text einer Pad-Revision hält den Zustand der einzelnen Attribute (ist Attribut x für den aktuellen Text gesetzt ?) fügt jeweils bei Attributzustandsänderungen öffnende bzw. schließende LaTeX-Tags ein
Beispiel
*1 *3 +5 *2 *4 +6 *2 |1+1
\textit{Hello}\sout{ World}\n
Attribut-Id Bedeutung LaTeX-Tag1 Author-1 ---2 Author-2 ---3 kursiv \textit4 durchgestrichen \sout
H e l l o W o r l d \n
28SciflowWriter
Demo
29SciflowWriter
30SciflowWriter
Zusammenfassung und Ausblick
31SciflowWriter
Evaluation der Software
Aufgabenstellung Erstellung eines wissenschaftlichen Artikels zum Thema „Endliche Automaten“ Umfang: 6 Seiten DIN A4 Ausgabeformat: PDF zu verwendendes Template: ieeetran Gruppenstärke: 3 Bearbeitungszeit: 30 Minuten
Evaluationsfragebogen System Usability Scale (SUS) allgemeine Fragen zum Vorwissen der Probanden in Bezug auf kollaboratives Schreiben Freitextfragen zu den Funktionen von SciflowWriter
32SciflowWriter
Ergebnisse der Evaluation
SUS-Wert von 83 alles über 60 ist ein Indikator für eine gute Benutzbarkeit
Ergebnisse der Freitextfragen fehlender Formelsatz keine Möglichkeit der direkten Manipulation des Markups Löschen von Text ist schwer nachvollziehbar kein Schutz von Textabschnitten vor der Bearbeitung durch andere möglich
geforderte Funktionen teilweise im Widerspruch zum Konzept z.B. sollte die direkte Manipulation des Markups ausgeschlossen sein
33SciflowWriter
Fazit
Grundkonzept konnte erfolgreich umgesetzt werden Überschriften, Abbildungen, Literaturverweise LaTeX-Export, PDF-Generierung unter Verwendung verschiedener LaTeX-Templates
Etherpad-lite eignet sich (nur) bedingt als Basis für Rich-Text-Editing kollaboratives Texteditieren funktioniert sehr gut Hinzufügen von Rich-Text-Editing ist schwierig
Um wirklich wissenschaftliche Abhandlungen schreiben zu können bedarf es Formelsatz Tabellen
Grundsätzliche Entscheidung müssen ggf. revidiert werden direkte Manipulation des Markups zulassen ?
34SciflowWriter
Ausblick
Hinzufügen von Tabellen und Formelsatz zu SciflowWriter
Anbindung von SciflowWriter an externe Authentifizierungssysteme
Entkopplung der Funktionalitäten Datenspeicherung Operationale Transformation Editorkomponente
Beispiel Ein TinyMCE, welcher mit Hilfe von ShareJS mit einem PHP-Backend kommuniziert
Vielen Dank für ihre Aufmerksamkeit !