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.

Präsentationsmodus für Polypheny Notebooks

Polypheny Notebooks dienen als interaktive Umgebung für die Analyse, Visualisierung und das Verständnis von Daten. Dieses Projekt zielt darauf ab, den Nutzen von Polypheny Notebooks zu erhöhen, indem ein fortschrittlicher Präsentationsmodus integriert wird, der Notebooks in dynamische, folienbasierte Präsentationen verwandelt. Dieser Modus wird es den Nutzern ermöglichen, nahtlos zwischen einer vertieften Datenexploration und einem strukturierten, narrativen Präsentationsformat zu wechseln, das ideal ist, um Erkenntnisse und Ergebnisse mit einem breiteren Publikum zu teilen. Diese Erweiterung überbrückt die Lücke zwischen Datenexploration und -kommunikation und macht es den Nutzern leichter, komplexe Datengeschichten auf überzeugende und zugängliche Weise zu vermitteln. Dieses Projekt kann auch zu einem mittleren Projekt (~175 Stunden) erweitert werden.

Erwartetes Ergebnis: Eine neue Ansicht für Polypheny Notebooks, die über eine Schaltfläche in der Benutzeroberfläche aufgerufen werden kann und die es ermöglicht, Notebooks als Präsentationen zu benutzen, welche aus mehreren “Folien” bestehen.

Schwierigkeit: klein
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

Bessere Visualisierung von Queryplänen

Polypheny visualisiert Abfragepläne in seiner Benutzeroberfläche. Obwohl diese Funktion sehr leistungsfähig ist und verschiedenste Einblicke ermöglicht, gibt es Potenzial für visuelle Verbesserungen. In dieser Projektidee geht es um die visuelle Verbesserung der Planansicht. Eine mögliche Optimierung ist, die geschätzte Anzahl an Ergebnistupeln zu den Kanten hinzuzufügen. Auch könnte die Dicke der Kanten davon abhängig gemacht werden. Die Projektbeschreibung sollte ein Konzept für die geplanten Änderungen enthalten.

Erwartetes Ergebnis: Eine verbesserte und optisch ansprechendere Darstellung von Abfrageplänen im Benutzerinterface.

Schwierigkeit: leicht
Grösse: mittel (~175 Stunden)
Skills: Angular,TypeScript
Mentor: David, Marc

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

Treiber für C++, .Net, PHP, …

Derzeit gibt es einen JDBC-Treiber 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 Java
Mentor: Yiming, 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

Cypher Qualitätssicherung

Testen ist ein wichtiger Teil des Softwareentwicklungsprozesses, da es dazu beiträgt, die Qualität und Funktionalität der Software sicherzustellen. Sie helfen bei der Identifizierung von Fehlern, verbessern die Benutzerfreundlichkeit und stellen sicher, dass die Software die festgelegten Anforderungen und Standards erfüllt. Abfragesprachen haben eine genau definierte Syntax und erfordern ein bestimmtes Verhalten des Datenbanksystems. Anstatt eine komplett neue Funktion hinzuzufügen, zielt dieses Projekt darauf ab, die Testabdeckung für die Abfragesprache openCypher in Polypheny zu verbessern. Anhand der offiziellen Dokumentation der openCypher-Abfragesprache sollen systematisch Testfälle hinzugefügt werden. Dies ermöglicht es bestehende Fehler zu identifizieren und Regressionen in Zukunft zu vermeiden. Eventuell können LLMs verwendet werden um die Erstellung dieser Testfälle teilweise zu automatisieren.

Erwartetes Ergebnis: Ein umfassender Satz von Integrationstests, welcher möglichst viele der in unserer Cypher-Dokumentation beschriebenen Funktionen abdeckt.

Schwierigkeit: leicht
Grösse: mittel (~175 Stunden)
Skills: Java
Mentor: Marco, David

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