+ All Categories
Home > Technology > SciflowWriter

SciflowWriter

Date post: 30-Nov-2014
Category:
Upload: michael-sievers
View: 622 times
Download: 0 times
Share this document with a friend
Description:
The goal to develop a realtime capable text editor for collaborative scientific writing tries to accomplish two different purposes. On one side, it should be possible for a group of authors to work on a scientific text in a cooperative way. On the other side, this cooperation should take place in realtime. These requirements imply that there are editing features and markup elements needed in the scientific context. Above all, such an editor has to support structural elements like chapters and sections. Moreover, there has to be the possibility to embed figures and to manage text-related bibliography. The additional constraint of being realtime capable tightens the demands to the effect, that changes of one author should be visible to all other authors immediately. This thesis adresses the question, how such an editor could be realized using existing software. Using the proven collaborative realtime text editor Etherpad as a starting point, this software should be extended to fit the needs of collaborative scientific writing.
35
SciflowWriter Ein echtzeitfähiger Editor für kooperatives Schreiben Michael Sievers 22.12.2011
Transcript
Page 1: SciflowWriter

SciflowWriterEin echtzeitfähiger Editor für kooperatives Schreiben

Michael Sievers22.12.2011

Page 2: SciflowWriter

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

Page 3: SciflowWriter

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

Page 4: SciflowWriter

4SciflowWriter

Theoretische Grundlagen

Page 5: SciflowWriter

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

Page 6: SciflowWriter

6SciflowWriter

Phasen des kollaborativen Schreibens

Abbildung: Phasen des kollaborativen Schreibens nach Lowry et al.

Page 7: SciflowWriter

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.

Page 8: SciflowWriter

8SciflowWriter

Kollaborative Schreibaktivitäten

Ideenfindung (brainstorming)

Ideenzusammenführung (converging on brainstorming)

Gliederung (outlining)

Textproduktion (drafting)

Begutachtung (reviewing)

Überarbeitung (revising)

Lektorierung (copy editing)

Page 9: SciflowWriter

9SciflowWriter

Kollaborative Schreibstrategien

sequentielles Schreiben

horizontal-unterteiltes, paralleles Schreiben

geschichtetes, paralleles Schreiben

reaktives Schreiben

Page 10: SciflowWriter

10SciflowWriter

Sequentielles Schreiben

Abbildung: Sequentielles Schreiben nach Lowry et al.

Page 11: SciflowWriter

11SciflowWriter

Horizontal-unterteiltes, paralleles Schreiben

Abbildung: Horizontal-unterteiltes, paralleles Schreiben nach Lowry et al.

Page 12: SciflowWriter

12SciflowWriter

Geschichtetes, paralleles Schreiben

Abbildung: Geschichtetes, paralleles Schreiben nach Lowry et al.

Page 13: SciflowWriter

13SciflowWriter

Zielsetzung und Konzeption der Arbeit

Page 14: SciflowWriter

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

Page 15: SciflowWriter

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

Page 16: SciflowWriter

16SciflowWriter

Grundlegende Architektur

Abbildung: Erweiterung der Funktionalität durch eine neue Schnittstelle

Page 17: SciflowWriter

17SciflowWriter

Grundlegende Architektur: PDF-Erzeugung

Page 18: SciflowWriter

18SciflowWriter

Entwurf der Benutzerschnittstelle

Page 19: SciflowWriter

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

Page 20: SciflowWriter

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); }); }); }); });}

Page 21: SciflowWriter

21SciflowWriter

Design und Implementierung

Page 22: SciflowWriter

22SciflowWriter

Etherpad-Internas

Kollaborationsfunktionen basieren auf dem Konzept der operationalen Transformation

Abbildung: Beispiel für operationale Transformation

Page 23: SciflowWriter

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

Page 24: SciflowWriter

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 ---

Page 25: SciflowWriter

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.

Page 26: SciflowWriter

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

Page 27: SciflowWriter

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

Page 28: SciflowWriter

28SciflowWriter

Demo

Page 29: SciflowWriter

29SciflowWriter

Page 30: SciflowWriter

30SciflowWriter

Zusammenfassung und Ausblick

Page 31: SciflowWriter

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

Page 32: 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

Page 33: SciflowWriter

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 ?

Page 34: SciflowWriter

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

Page 35: SciflowWriter

Vielen Dank für ihre Aufmerksamkeit !


Recommended