Ein Dankeschön an die Sponsoren/Unterstützer

Ein Dankeschön an alle Sponsoren – d. h. Firmen, die kostenfreie Lizenzen für die Entwicklung des CorpusExplorers bereitstellen. In der folgenden Auflistung wird kurz erklärt welche Produkte wie zum Einsatz kommen und welche Vorteile dadurch für den CorpusExplorer entstehen. Wenn man so will, ist dies auch eine Liste von Tools, die man als C#, .NET oder Visual Studio Entwickler gut bei der alltäglichen Arbeit gebrauchen kann (daher am Ende auch eine Liste / Dankeschön an alle genutzten OpenSource-Projekte/Komponenten).

PostSharp

PostSharp stellt für das Projekt die gleichnamige Compiler-Erweiterung für C# und VB.NET bereit, die Aspektorientierte Programmierung ermöglicht. Aspekte zentralisierten Funktionalitäten über unterschiedliche Klassen hinweg. Ein Beispiel hierfür wäre z. B. Fehlerbehandlung oder Caching. Hier zwei Beispiele:

// Ohne PostSharp 
public double Division(double a, double b) 
{ 
try{ 
return a / b; 
} 
catch { 
return 0; // gibt im Fehlerfall 0 zurück 
} 
}

Die Funktionalität kann in einen Aspekt ausgelagert werden – wie dieser aussehen kann zeigt folgendes Beispiel – der Quellcode kann dann entsprechend umformatiert werden:

// Mit PostSharp 
[ErrorReportingAndTracingAspect(0)] // gibt im Fehlerfall 0 zurück 
public double Division(double a, double b) 
{ 
return a / b; 
}

 

Für C# gibt es verschiedene Tools um aspektorientiert zu programmieren. PostSharp ist eines der leistungsstärksten Tools. Wie in den Quellcode-Beispielen zu sehen, reduziert Aspektorientierte Programmierung die Anzahl der Quellcodezeilen. Damit verbessert sich (1) die Lesbarkeit, (2) die Fehlerrate sinkt und (3) viele Aspekte beschleunigen das Arbeiten.

CenterSpace

CenterSpace Software gewährt dem Projekt eine Lizenz für die NMath Premium. Hierbei handelt es sich um eine Programmbibliothek für Statistik. Aktuell ist die Programmbibliothek nur in CorpusExplorer-Komponenten von zwei Projektgruppen im Einsatz. Im Verlauf von 2018 werden aber einige Teile des CorpusExplorers durch NMath ergänzt. Zwar wurden Chi-Quadrat, Poisson-Verteilung und Log-Likelihood bereits selbst implementiert. NMath bietet jedoch Optimierungen dieser Algorithmen an, die auch die GPU (Grafikkarte) nutzen.

Devart

Im Produktfokus von Devart stehen hauptsächlich Datenbank-Schnittstellen/Technologien. Wie in diesem Artikel beschrieben, nutzt der CorpusExplorer eine vergünstigte Lizenz von LinqConnect. LinqConnect erlaubt es unterschiedliche Datenbanken mit ein und derselben Codebasis anzubinden. Über alle verfügbaren Datenbanken hinweg verwaltet LinqConnect z. B. das Caching, oder optimiert die Abfragen.

Submain

Seit Jahren nutze ich bereits das Tool GhostDoc Pro (damals selbst gekauft) – ein Programm zur automatischen Generierung von Quellcode-Dokumentationen. Submain unterstützt seit Ende 2017 das Projekt mit einer vergünstigten Lizenz von CodeIt.Right – Einem Tool, das den Quellcode auf zusätzliche Probleme/Fehlerquellen überprüft, die dem Compiler nicht unbedingt auffallen. Zwar werden einige dieser Probleme auch von ReSharper erkannt (siehe unten) – trotzdem ist das Tool sehr hilfreich, da man selbst eine große Projektmappe wie die des CorpusExplorers schnell komplett analysieren kann.

Tangible Software Solutions

Es exsisitiert eine vielzahl von Skripten und OpenSource-Programmen in der Korpus-/Computerlinguistik. Tangible Software Solution bietet Cross-Compiler, um unterschiedliche Programmiersprachen zu übersetzen (C++, Java, C#, VB.NET). Quellcode kann so weitesgehend automatisiert von einer in eine andere Programmiersprach übersetzt werden. Ganz ohne Nachkorrektur geht dies allerdings nicht. Im Projekt wird der Cross-Compiler für zwei Dinge genutzt: Analyse von Programmcode -UND- Übersetzung des CorpusExplorer Frameworks nach C++.


Freie Tools (für den akademischen Gebrauch) / OpenSource-Tools

SaltXML & Pepper

Pepper konvertiert unterschiedliche linguistische Datenformate (vornehmlich XML) untereinander. Pepper kann als Add-on installiert werden und erlaubt dann zusätzliche Im-/Export-Funktionen. Download des Add-ons auf dieser Seite.

Pandoc

Pandoc konvertiert unterschiedliche Textformate (u. a. LaTeX, ePUB, markdown) untereinander. Pandoc kann als Add-on installiert werden und erweitert die Funktion „Dokumente annotieren“ um viele zusätzliche Dateiformate. Details dazu hier. Download des Add-ons auf dieser Seite.

ReSharper

ReSharper muss man als .NET-Entwickler kennen/nutzen. Eine grandiose Ergänzung für Visual Studio. Jetbrains hat ein Academic/Student-Program, dass entsprechend kostenfreie Lizenzen verteilt.

Newtonsoft.Json

Eine Programmbibliothek um das JSON-Format in .NET zu lesen/schreiben. Frei über NuGet verfügbar.

AvalonEdit

Ein Syntax-Editor für .NET – wird im HTML5-Labor eingesetzt, um einen HTML5-Editor mit Syntax-Highlighting zu bieten. Frei verfügbar über NuGet.

Elasticsearch.NET und NEST

Sind notwendig für die Anbindung von ElasticSearch an den CorpusExplorer. Frei verfügbar über NuGet.

ExcelDataReader

Wird zu Lesen/Schreiben von Excel-Dateien genutzt. Frei verfügbar via NuGet.

HtmlAgilityPack

Die wohl umfangreichste Programmbibliothek für HTML-Interaktion in .NET. Erlaubt XPath-Analyse, Bereinigung und Extraktion von HTML-Teilen. Über NuGet frei verfügbar.

IKVM / Stanford POS

IKVM ist ein Cross-Compiler, der Java-Komponenten für .NET verfügbar macht. Der Stanford POS-Tagger und IKVM können über ein Add-on im CorpusExplorer genutzt werden.

OpenNLP

Ebenso kann OpenNLP via Add-on in den CorpusExplorer integriert und genutzt werden. Verfügbar sind aktuell nur die Tagger-/Aufbereitungsfunktionen.

LinqToTwitter

LinqToTwitter kann über NuGet bezogen werden und erlaubt Abfragen des Twitter-Streams. Die Programmbibliothek ist aktuell nicht Teil des CorpusExplorer oder eines Add-ons und wird ausschließlich in einer Projektgruppe genutzt. Eine Bereitstellung der CorpusExplorer-Twitter-Schnittstelle ist geplant.

NHunspell

NHunspell wird im CorpusExplorer zur Silbentrennung genutzt. Verfügbar über NuGet.

NTextCat

NTextCat erlaubt die automatische Erkennung der Sprache eines gegebenen Textes (aus 280 trainierten Sprachen). Verfügbar über GitHub.

SharpSerializer

Wird vom CorpusExplorer als alternativen Serialisierer für XML genutzt. Verfügbar über NuGet.

TikaOnDotnet

Apache Tika ist bekannt (insbesondere im Java-Umfeld) dafür, aus fast allen Dateiformaten Text zu extrahieren. TikeOnDotnet ist die Umsetzung in .NET. Bitte installieren Sie das Add-on bei Bedarf.

Toxy

Toxy kann als Alternative für Tika gesehen werden. Bei Toxy werden jedoch keine Java-Bibliotheken portiert – das Toxy-Projekt nutzt ausschließlich freie .NET-Bibliotheken um einen ähnlichen Umfang wie Tika zu erreichen. Toxy ist ebenfalls als Add-on verfügbar.


Eingekaufte Komponenten / ehemalige Unterstützer

Telerik

Für die Oberfläche des CorpusExplorers nutze ich hauptsächlich die WinForm- und WPF-Komponenten von Telerik. Das Look&Feel ist sehr schick und die Funktionalitäten sind sehr Umfangreich. Die Komponenten sind nur gegen Entgelt nutzbar.

TeamDev

Die Unterstützung durch TeamDev lief Anfang 2018 aus. Der CorpusExplorer nutzt ab 2018 CefSharp (eine OpenSource-Lsöung) zur Web-Anzeige. TeamDev gilt trotzdem ein großes Dankeschön für die Unterstützung.

TeamDev stellt den DotNetBrowser her und gewährt eine kostenfreie Lizenz für das Projekt. Für .NET gibt es verschiedene Webbrowser – .NET selbst bringt sogar einen Webbrowser mit. Das wesentliche Problem mit dem hauseigenen .NET-Browser: Scheinbar ist die Zeit stehen geblieben. Viele Funktionalitäten fehlen und HTML5/JS/CSS wird nur sehr marginal unterstützt. Der .NET-Browser erinnert stark an den längst veraltetet Internet Explorer. Der DotNetBrowser basiert hingegen auf der Chromium-Engine (die auch Google Chrome verwendet) – aktuell Version 60. Damit lassen sich alle Webfeatures u. a. auch Wiedergabe von Videos einbinden. Im CorpusExplorer wird der DotNetBrowser aktuell für zwei Visualisierungen verwendet: