Erweiterte Skript-Funktionalität

Das HTML5-Labor kann auf die CorpusExplorer-Console (kurz CEC) zugreifen. Die CEC wird zusammen mit dem CorpusExplorer installiert und kann viele Aufgaben der grafischen Benutzeroberfläche erledigen (weitere Details siehe: https://github.com/notesjor/CorpusExplorer.Terminal.Console). Außerdem erweitert das HTML5-Labor mittels einfacher Platzhalter die Bedienbarkeit der CEC.
 
Folgende Dinge sollten Sie wissen:
 
1. Wie aktivieren Sie den CEC-Parser im HTML5-Labor?
Um den CEC-Parser zu aktivieren fügen Sie die folgende Sequenz in ihren Quellcode ein /*CEC
Dabei steht /* für den Begin eines JavaScript-Kommentars, direkt gefolgt (ohne Leerzeichen) von CEC - dies aktiviert den CEC-Parser. Zum deaktivieren der Parsersequenz schließen Sie den JS-Kommentar mit */
Beispiel 1:
/*CEC
import#ImporterCec6#"C:\corpus.cec6" basic-information
*/
Der /*CEC */-Kommentar wird in der Ausgabe durch ein JSON-Array ersetzt.
 
2. Wie Sie den aktuellen Schnappschuss im CEC-Skript nutzen
Normalerweise müssen Sie bei einem CEC-Skript immer einen Importer und eine Datei angeben (siehe Beispiel 1). Damit könnten Sie nur über Umwege Schnappschüsse nutzen (Sie müssten einen Schnappschuss zuvor als Korpus exportieren). Damit dieser Aufwand entfällt können Sie den Platzhalter #CURRENT nutzen. Das Beispiel 1 verkürzt sich damit auf:
Beispiel 2:
/*CEC
#CURRENT basic-information
*/
 
3. Wie Sie ein anderes Datenformat wählen können
In der Standardeinstellung fordert das HTML5-Labor alle Daten als JSON an. Sie können das Datenformat aber individuell anpassen (z. B. weil die verwendete Bibliothek zur Visualisierung XML oder CSV benötigt).
Beispiel 3:
/*CEC
F:CSV #CURRENT basic-information
*/
Stellen Sie dem Befehl F: und das gewünschte Dateiformat (in Großbuchstaben) voran. Möglich sind: F:XML, F:CSV, F:JSON
 
4. Wie Sie die Ausgabe in eine Datei umleiten und darauf zugreifen
Das Umleiten der Ausgabe in eine Datei entspricht dem typischen Konsolenstandard. Wenn Sie die Ausgabe in eine Datei umleiten, wird in der Ausgabe der /*CEC */-Kommentar entfernt und es werden keine Daten in die Ausgabe eingefügt. Damit leiten Sie die CSV-Ausgabe (siehe 3) in die Datei basic.csv um:
Beispiel 4:
/*CEC
F:CSV #CURRENT basic-information > basic.csv
*/
Die Datei basic.csv wird im virtuellen Webserver des HTML5-Labors gespeichert. Da dieser Pfad dynamisch ist, wurde der Platzhalter #WWWROOT eingefügt. Nutzen Sie diesen wie folgt:
Beispiel 4.1:
d3.csv("#WWWROOT/basic.csv", type, function(error, data) {
Der komplette Pfad zu basic.csv wird in der Ausgabe korrekt erzeugt. Achten Sie auch auf ein trennendes / zwischen #WWWROOT und dem Dateinamen. Sie können auch einen Ordner angeben - z. B. #WWWROOT/data/basic.csv
 
5. Was Sie auf jeden Fall vermeiden sollten
  • Das HTML5-Labor ist kein Ersatz für die CEC. Daher sollten Sie auf keinen Fall die CEC im HTML5-Labor für ...
  • ... Abfragen nutzen - Besser: Nutzen Sie den Platzhalter #CURRENT (siehe 2) und erstellen Sie die Abfragen über die grafische Benutzeroberfläche.
  • ... die Erstellung und/oder Konvertierung von Korpora nutzen. Besser: Nutzen Sie entweder die grafische Benutzeroberfläche ODER die CEC direkt.
  • Die Daten kommen von der CEC ungefiltert. HTML5 und JavaScript sind bei weitem nicht so leistungsstark, wie die normale Benutzerschnittstelle des CorpusExplorers. Daher sollten Sie keine große Schnappschüsse (> 10 Mio. Token) mittels HTML5-Labor visualisieren. Außerdem sollten Sie auf JS-Bibliotheken zurückgreifen, die das Filtern von Daten erlauben (z. B. D3.js). Ein Vorfilter kann die Performance erheblich steigern.
  • Prinzipell können Sie mehrere /*CEC */-Bereiche im Quellcode hinterlegen. Jeder Aufruf kostet jedoch Zeit - daher beschränken Sie sich auf ein Minimum.
  • Pro /*CEC */-Bereich können Sie mehrere CEC-Befehle hinterlegen. Wenn Sie mehrere Befehle bündeln, sollten Sie unbedingt die Ausgabe in eine Datei umleiten (siehe 4). Da ansonsten nur das Resultat des letzten Befehls ausgegeben wird. Alternativ könnten Sie die Befehle auch in mehrere /*CEC */-Bereich aufsplitten, dies senkt jedoch die Performance (siehe oben).