Ankündigung von CourseGraph, einem neuen Tool in der Maple-Version

13. Januar 2022 | Von

Mit der bevorstehenden Open edX-Version Maple freut sich das edX-Team, eine Technologie zu teilen, die es seit einiger Zeit intern verwendet. Dieses Tool heißt CourseGraph und ist jetzt als nicht unterstützter Teil von Devstack und Maple verfügbar. Mit CourseGraph können Sie Fragen zum Inhalt aller Kurse Ihrer Instanz insgesamt beantworten, wie z. B. Anzahl und Standorte bestimmter XBlocks, Fragen zur Struktur Ihrer Kurse, Fragen zu Prüfungen, und vieles mehr!

Bei edX ist die Nutzung von CourseGraph auf die Teams des Kundensupports und der Technik beschränkt. Diese Teams finden es nützlich, Fragen beantworten zu können, die durch aggregierte Statistiken beantwortet werden; Insbesondere ihr Partner-Support-Team ist oft in der Lage, Dozentenproblemen in Studio mit einer XBlock-Abfrage zu helfen. Das Engineering-Team erhält Einblicke in alle Arten von potenziellen Problemen – wie zum Beispiel herauszufinden, wo sich „verwaiste Blöcke“ (Blöcke, die vom Kursstamm nicht über Kinder erreichbar sind) befinden.

Was ist CourseGraph?

CourseGraph ist eine grafische Darstellung der Kursinhalte Ihrer Instanz in neo4j, eine beliebte Graphdatenbank; CourseGraph ist kein Frontalunterricht. eine Laufzeit-API. Der Vorteil der Darstellung von Kursdaten in Diagrammform besteht darin, dass Sie umfassende Abfragen sowohl zum Kursinhalt als auch zur Kursstruktur schreiben können. Die Verwendung von CourseGraph setzt voraus, dass Sie mit dem Kursdatenmodell vertraut sind, dass Kurse Graphen sind, normalerweise Bäume, bei denen jeder Knoten ein XBlock ist.

Na und?

Hatten Sie schon einmal Fragen wie:

  • Kursteams (und andere!) fragen sich vielleicht …
    • Wo sind alle Videokomponenten in meinem Kurs? Wie lauten alle ihre Titel und IDs?
    • Welche ORA-Einheiten (Open Response Assessment) haben falsch konfigurierte Daten? (falsch konfigurierte Daten können Lernende daran hindern, auf die Aufgabe zuzugreifen)
    • Welche Arten von Blöcken (z. B. Problem oder ORA) verwende ich in meinem Kurs und wie häufig verwende ich diese Blöcke?
  • Entwickler/Site-Betreiber/Support-Teams fragen sich vielleicht …
    • Wie viele derzeit laufende Kurse verwenden einen bestimmten Blocktyp?
    • Wo befinden sich alle Videos einer Organisation und von welcher Videoquelle/URL werden sie bereitgestellt?
    • Welche Kurse nutzen LTI-Komponenten und welche davon sind benotet?

Angesichts der Art und Weise, wie Kursdaten in Mongo gespeichert werden, ist es im Moment wirklich schwierig, diese Fragen zu beantworten. Split Mongo, das Backend fast aller Ihrer laufenden Kurse, ist für das Laden eines einzelnen Kurses auf einmal optimiert, nicht für allgemeine Abfragen über mehrere Kursstrukturen hinweg. Das Rekonstruieren der diagrammartigen Struktur jedes Kurses würde außerhalb einer reinen Mongo-Abfrage eine Menge Verarbeitung erfordern. Der andere Vorteil der Verwendung von neo4j besteht darin, dass ein Abfrageergebnis-Visualizer integriert ist, sodass Sie die Diagrammstrukturen von Teilen von Kursen sehen können. 

Die folgende Abfrage zählt die Anzahl der jsinput-Probleme in Ihrer Open edX-Instanz:

PASSEN ZU 

(Kurs)-[:PARENT_OF*]->(p:Problem) 

WO 

p.daten 

ENTHÄLT 

'jsinput'

RÜCKKEHR

    count(p) als Zahl

und gibt das folgende Ergebnis zurück (31026):

Sie können die Daten auch visuell sehen, wenn das Ergebnis der Abfrage Knoten sind. Diese Abfrage ist identisch mit der vorherigen, außer dass wir RETURN * und das Ergebnis auf 50 Elemente beschränken. Die Knoten und ihre PARENT OF-Beziehungen werden im Diagramm angezeigt. Wenn Sie den Mauszeiger über einen Knoten bewegen, werden in der unteren Leiste die für diesen Knoten festgelegten Attribute angezeigt.

Was ist die Datenstruktur?

Neo4j ist eine Graphdatenbank und hat daher, wie ein Graph, zwei grundlegende Datentypen: Knoten und Kanten. Im Fall von CourseGraph sind Knoten XBlocks: Kursblöcke, Probleme, Vertikale, HTMLs usw. Attribute auf diesem Knoten entsprechen den Feldern auf dem XBlock. Darüber hinaus sind für jeden Knoten auch die Attribute course_key, org, course, run, edited_on und location festgelegt.

Kanten stellen dar, wie die Knoten in Beziehung stehen. Es gibt zwei Arten von Beziehungen zwischen Blöcken: „PARENT_OF“, das einen Block mit seinem Kind verknüpft, und „PRECEDES“, das einen Block mit seinem Geschwister verknüpft. So kann eine Vertikale ein PARENT_OF eines Videoblocks sein; In einer Folge von zwei Vertikalen geht die erste Vertikale der zweiten voran.

Wie schreibe ich Abfragen dagegen?

Neo4j verwendet eine eigene Abfragesprache, Chiffre. Es ist ähnlich wie SQL, daher dauert es nicht zu lange, bis Sie den Dreh raus haben. Kasse diese praktische refcard für nützliche Tipps! Bei edX haben wir kontinuierlich nützliche Abfragen zur Kenntnis genommen; Sehen Sie sich an, was wir uns ausgedacht haben – und fügen Sie Ihre eigenen hinzu! - auf der CourseGraph-Abfragesammlungsseite.

Hier ist eine kompliziertere Abfrage, die einen Kurs auf Ihrer Instanz durchläuft (hier den Kurs „DemoX“ von edx.org) und alle für Lernende sichtbaren XBlocks des Typs „Problem“ im Kurs ausgibt, kommentiert mit dem Anzeigenamen the Name der Branche, die ihn enthält, und wann er zuletzt bearbeitet wurde:

PASSEN ZU

    (c:kurs) -[:PARENT_OF*]-> (v:vertikal) -[:PARENT_OF*]-> (n:item)

WO

    c.course_key = 'Kurs-v1:edX+DemoX.1+2T2019'

    UND

    n.block_type = 'Problem'

    UND

    n.visible_to_staff_only = falsch

RÜCKKEHR  

    n.block_type,

    n.Anzeigename,

    v.display_name als unit_location,

    n.edited_on

SORTIEREN NACH

  n.edited_on;

Hier sind die ersten 16 Ergebnisse, von 17 wie in der letzten Zeile erwähnt:

Wie stelle ich CourseGraph bereit und betreibe es?

Die Veröffentlichung von Nutmeg (voraussichtlich für Juni 2022) wird Folgendes enthalten: a CourseGraph-Plugin für Tutor! Sehen Sie sich die README des Plugins an, um zu erfahren, wie Nutmeg-Betreiber CourseGraph als Teil ihrer Tutor-verwalteten Open edX-Bereitstellung einfach installieren, konfigurieren und ausführen können. (Für Open edX-Instanzen, auf denen eine ältere Version als Nutmeg ausgeführt wird, gibt es keine offiziell empfohlene Methode zum Bereitstellen von CourseGraph.)

Ab Nutmeg befindet sich das Plugin im „Beta“-Status und seine Betreuer suchen aktiv nach Benutzern, die bereit sind, es in einer Produktionsumgebung auszuprobieren und Feedback zu geben. Um Fragen zu stellen, Fehler zu melden oder Ihre Erfahrungen mit CourseGraph zu teilen, öffnen Sie bitte ein GitHub-Problem im Tutor-Contrib-CourseGraph-Repository.

Wir hoffen, dass dieses Tool für Sie hilfreich ist!

Laden

Starten Sie die Diskussion unter diskutiere.openedx.org

Zeit für mehr? Sehen Sie sich die folgenden Artikel an.

Gemeinsam Probleme lösen: Community-getriebene Plattformentwicklung
Kompetenzentwicklung und Skalierung als Zukunftsthemen auf der Open edX Konferenz
Open edX Konferenz – Entwicklerworkshops
Unsere digitale Zukunft zurückerobern: Warum ich der Open Renaissance Group beigetreten bin
Nehmen Sie an der Open edX Conference 2026 teil!

Auf der Open edX-Konferenz 2026 werden innovative Anwendungsfälle für eines der weltweit besten Open-Source-Online-Lernmanagementsysteme, die Open edX-Plattform, vorgestellt und die neuesten Fortschritte im Lehrdesign, der Kurskonstellation und Methoden für den Betrieb und die Erweiterung der Open edX-Plattform vorgestellt , einschließlich bahnbrechender Technologien wie generativer KI.