GSoC Projekt Ideen

Nachstehend finden Sie einige Ideen, in welche Richtung wir Polypheny gemeinsam voranbringen könnten. Bitte betrachten Sie diese als Ausgangspunkte für Ihre Projektbeschreibung. Wenn Sie andere Ideen haben, freuen wir uns sehr, diese zu hören. Bitte zögern Sie nicht, uns zu kontaktieren und holen Sie sich im Vorfeld ein Feedback zu Ihren Plänen.

Einfaches Kopieren einer der Ideen wird nicht funktionieren. Andererseits ist es auch schwierig, eine völlig neue Projektidee zu entwickeln, ohne vorher Rücksprache mit den Mentoren zu halten.

Treiber für PHP, NodeJS, Ruby, …

Derzeit gibt es einen JDBC-Treiber, einen C++, einen .NET, einen Go und einen Python-Konnektor für Polypheny. In diesem Projekt soll die Unterstützung für andere Sprachen oder Frameworks hinzugefügt werden. Dieses Projekt ist explizit für Entwickler gedacht, die Erfahrung mit der Interaktion mit Datenbanken in einer bestimmten Sprache oder einem bestimmten Framework haben. Sie können in Ihrem Vorschlag gerne Referenzen zu Erfahrungen mit dieser Sprache oder diesem Framework angeben.

Erwartetes Ergebnis: Ein Treiber für eine derzeit noch nicht unterstützte Programmiersprache oder ein Framework, welcher die Abfrage von Polypheny mit dieser Sprache oder diesem Framework ermöglicht.

Schwierigkeit: mittel
Grösse: mittel (~175 Stunden)
Skills Gute Kenntnisse in der entsprechenden Programmiersprache
Mentor: Yiming, Martin

Natural Language Interface für die Workflow Engine

Mit der nächsten Version wird Polypheny eine Workflow-Engine zur Modellierung von ETL-Prozessen (Extract, Transform, Load) einführen. Dieses Projekt zielt darauf ab, die Erstellung von Workflows zu vereinfachen, indem Natural Language Interface (NLP) entwickelt wird, die es Nutzern ermöglicht, gewünschte Operationen in einfacher Sprache zu beschreiben. Das System interpretiert die Eingaben, generiert entsprechende Workflow-Konfigurationen und schlägt Optimierungen vor, um ETL-Prozesse auch für weniger erfahrene Nutzer zugänglich zu machen. Das Projekt umfasst die Entwicklung eines leistungsfähigen NLP-Modells zur Verarbeitung ETL-bezogener Anweisungen, die Zuordnung zu Workflow-Komponenten und die nahtlose Integration in Polyphenys Workflow-Engine. Besondere Herausforderungen sind die präzise Interpretation von Nutzereingaben, die Auflösung von Mehrdeutigkeiten und die Sicherstellung einer fehlerfreien Umsetzung.

Erwartetes Ergebnis: Eine funktionale NLP-Schnittstelle, die es Nutzern ermöglicht, ETL-Workflows mittels natürlicher Sprache zu konfigurieren.

Schwierigkeit: schwer
Grösse: gross (~350 Stunden)
Skills: Natural Language Processing (NLP), Java
Mentor: David

Präsentationsmodus für Polypheny Notebooks

Polypheny Notebooks bieten eine interaktive Umgebung für die Datenanalyse, Visualisierung und den Austausch von Erkenntnissen. In einem früheren GSoC-Projekt wurde ein Präsentationsmodus eingeführt, der es den Nutzern ermöglicht, Notebooks in dynamische, folienbasierte Präsentationen zu verwandeln. Während die erste Implementierung eine solide Grundlage bildete, sind weitere Verbesserungen erforderlich, um die Benutzerfreundlichkeit, die Funktionalität und die allgemeine Benutzererfahrung zu verbessern. Dieses Projekt zielt darauf ab, den bestehenden Präsentationsmodus zu verfeinern und zu erweitern, um einen nahtlosen Übergang zwischen Datenexploration und strukturierten Präsentationen zu gewährleisten. Zu den Erweiterungen gehört die Möglichkeit Slides besser anzupassen, die Verfeinerung der Navigationssteuerung, die Optimierung der Leistung und die Verbesserung der Benutzerfreundlichkeit. Ziel ist es, den Präsentationsmodus intuitiver und stabiler zu gestalten, damit die Benutzer in der Lage sind, komplexe Datenerkenntnisse effektiv zu präsentieren.

Erwartetes Ergebnis: Ein verfeinerter und verbesserter Präsentationsmodus in Polypheny Notebooks, der eine bessere Benutzerfreundlichkeit und erweiterte Funktionen für die Präsentation von Notebooks als strukturierte Folien bietet.

Schwierigkeit: mittel
Grösse: klein (~90 Stunden)
Skills: TypeScript, Angular
Mentor: Marco

LDAP Query Schnittstelle

LDAP (Lightweight Directory Access Protocol) ist ein weit verbreitetes, offenes und herstellerneutrales Anwendungsprotokoll und der Industriestandard für den Zugriff auf die Verwaltung von verteilten Verzeichnisinformationsdiensten über ein Internetprotokoll (IP)-Netz. Es bietet eine gemeinsame Schnittstelle für den Zugriff auf und die Bearbeitung von Verzeichnisinformationen, wie Benutzernamen und Passwörter, E-Mail-Adressen und andere verzeichnisbasierte Informationen. Durch die Unterstützung für die Abfrage von Polypheny über LDAP kann Polypheny nahtlos in Anwendungen integriert werden, welche LDAP verwenden.

Erwartetes Ergebnis: Eine neue Abfrageschnittstelle, die es ermöglicht, von Polypheny verwaltete Daten mit einfachen LDAP-Abfragen abzufragen.

Schwierigkeit: mittel-schwer
Grösse: gross (~350 Stunden)
Skills: Java
Mentor: Heiko

CouchDB-ähnliche HTTP-Query-Schnittstelle

CouchDB ist ein beliebtes dokumentenorientiertes Datenbanksystem. Es verfügt über eine HTTP-Abfrageschnittstelle, die das Abfragen und Manipulieren von Daten ermöglicht. Die Idee dieses Projekts ist es, eine Abfrage-Schnittstelle für Polypheny zu entwickeln, die sich an die Spezifikation der CouchDB-Abfrage-API hält. Dies würde es ermöglichen, eine CouchDB Datenbank nahtlos durch Polypheny zu ersetzen oder Anwendungen, die für CouchDB geschrieben wurden, mit Polypheny zu verwenden.

Erwartetes Ergebnis: Eine neue Abfrageschnittstelle, die es erlaubt, Daten mit der CouchDB Abfragesyntax abzufragen.

Schwierigkeit: mittel-schwer
Grösse: gross (~350 Stunden)
Skills: Java
Mentor: Isabel

RADIUS Query Schnittstelle

RADIUS (Remote Authentication Dial-In User Service) ist ein Netzwerkprotokoll, das eine zentralisierte Authentifizierungs-, Autorisierungs- und Abrechnungsverwaltung (Authentication, Authorization, and Accounting, AAA) für Benutzer ermöglicht, die sich mit einem Netzwerkdienst verbinden und diesen nutzen. Es wird üblicherweise von ISPs und Unternehmen verwendet, um den Zugang zum Internet oder zu internen Netzwerken zu verwalten, Benutzer zu authentifizieren und ihre Aktionen zu verfolgen. Eine RADIUS-Abfrageschnittstelle in Polypheny würde es ermöglichen, Polypheny (und damit die von ihr verwalteten Daten) in solche Anwendungen ohne eine Zwischenschicht zu integrieren.

Erwartetes Ergebnis: Eine neue Abfrageschnittstelle, die es ermöglicht, auf von Polypheny verwaltete Daten mit einfachen RADIUS-anfragen zuzugreifen.

Schiwerigkeit: mittel
Grösse: gross (~350 Stunden)
Skills: Java
Mentor: Martin

Vereinheitlichung der Polypheny-UI

Im Laufe der Zeit haben mehrere Überarbeitungen des Polypheny-UI zu Inkonsistenzen in der Benutzeroberfläche geführt, die sowohl die Benutzerfreundlichkeit als auch die visuelle Kohärenz beeinträchtigen. Dieses Projekt zielt darauf ab, das Erscheinungsbild der gesamten Polypheny-Benutzeroberfläche zu vereinheitlichen, um ein ausgefeiltes, konsistentes und benutzerfreundliches Erlebnis zu gewährleisten. Das Hauptaugenmerk liegt dabei auf der Angleichung der Stile, der Verfeinerung der UI-Komponenten und der Verbesserung der allgemeinen Benutzerfreundlichkeit der verschiedenen Bereiche, einschliesslich der Polypheny-Notizbücher. Besondere Aufmerksamkeit wird dem Benachrichtigungssystem gewidmet, um die Kommunikation von Systemereignissen und Benutzeraktionen zu verbessern. Dies beinhaltet die Verbesserung der Klarheit, der Sichtbarkeit und der Handhabung von Benachrichtigungen, um ein besseres Feedback zu geben und sicherzustellen, dass die Benutzer ohne unnötige Unterbrechungen informiert bleiben. Als optionale Erweiterung kann dieses Projekt auch die Unterstützung von Benachrichtigungen über Hintergrundaktivitäten einführen, so dass lang laufende Aufgaben im Hintergrund ausgeführt werden können, während die Benutzer mit Statusmeldungen in Echtzeit auf dem Laufenden gehalten werden. Die Implementierung dieser Funktion würde die Projektgröße von mittel auf gross erhöhen.

Erwartetes Ergebnis: Eine visuell verfeinerte und konsistentere Benutzeroberfläche in ganz Polypheny, mit besonderem Augenmerk auf das Schema-Management und die Notizbücher. Das Benachrichtigungssystem wird verbessert, um die Benutzerfreundlichkeit zu erhöhen, mit optionaler Unterstützung für Benachrichtigungen über Hintergrundaktivitäten, um die Benutzererfahrung zu verbessern.

Schwierigkeitsgrad: leicht-mittel
Größe: mittel (~175 Stunden) oder gross (~350 Stunden) Skills: TypeScript, Angular
Mentor: David, Martin

Server-seitige Query-to-File

Für einige Anwendungen, insbesondere für solche, die die Multimedia- und Dateispeicherfähigkeiten von Polypheny nutzen, ist es nützlich, eine Tabelle (oder das Ergebnis einer beliebigen Abfrage) als Dateisystem darzustellen und mit ihr zu interagieren. Mit Query to File haben wir bereits eine prototypische Implementierung, die FUSE verwendet und auf dem Client-Computer läuft. Die Idee dieses Projekts ist es, dieses Konzept direkt in Polypheny zu integrieren. Anstelle einer Anwendung, die auf dem lokalen Rechner läuft, soll Polypheny eine FTP- oder WebDAV-Freigabe bereitstellen, die dann auf anderen Computern gemountet werden kann.

Erwartetes Ergebnis: Eine neue Abfrageschnittstelle, die ein mountfähiges Dateisystem bereitstellt, welches das Ergebnis einer spezifizierbaren Abfrage enthält.

Schwierigkeit: mittel-schwer
Grösse: gross (~350 Stunden)
Skills: Java
Mentor: Isabel

Abfragbares Multimodell-Informationsschema für Polypheny

Dieses Projekt zielt darauf ab, ein abfragbares Informationsschema in Polypheny einzuführen, ähnlich dem Informationsschema, das in traditionellen relationalen Datenbanken zu finden ist. Das Informationsschema ist eine wichtige Metadatenbank, die den Zugang zu Metadaten über das Schema ermöglicht. Ziel ist es, ein einheitliches Informationsschema zu erstellen, das umfassende Metadaten für diese verschiedenen Datenmodelle bereitstellt und die Struktur, Beziehungen und Besonderheiten jedes Modells in einem einzigen Schema widerspiegelt. Dieses Schema wird es den Benutzern ermöglichen, Metadaten über Tabellen, Dokumente, Spalten, Knoten, Kanten, Datentypen und deren Zusammenhänge abzufragen. Die Implementierung dieser Funktion beinhaltet den Entwurf eines flexiblen Schemas, das die Nuancen von Multimodell-Daten berücksichtigt, das Auffüllen mit genauen Metadaten und die Bereitstellung effizienter Abfragefunktionen. Diese Funktion erleichtert das Verständnis der Datenbank, die Optimierung und die Integration mit anderen Tools und Frameworks, indem sie eine weitere Methode für den Zugriff auf Datenbank-Metadaten bietet.

Erwartetes Ergebnis: Ein virtuelles Schema, welches abgefragt werden kann, um Informationen über das gesamte Datenbankschema zu erhalten.

Schwierigkeit: mittel
Grösse: mittel (~175 Stunden)
Skills: Java
Mentor: Marc