[Bei dieser etwas längeren E-mail geht es um mögliche Lösungswege, wie man ein Video in einem beliebigen Moodle-Kurs einbinden könnte.]
Der kurzfristig vorgeschlagene Lösungsweg (Benutzer kann konfigurieren, mit welcher Opencast Serie ein Moodle Kurs verbunden ist) erlaubt es zwar, bestehende Opencast Videos eines Moodle Kurses in neuen Moodle Kursen zu verwenden - unterstützt aber den Use Case «Opencast Videos in beliebigen Moodle Kursen verwenden» nicht.
Hier ein paar Gedankengänge, wie man diesen Use Case «Opencast Videos in beliebigen Moodle Kursen verwenden» in Zukunft umsetzen könnte und wieso ich persönlich davon abraten würde, dies mittels «Opencast Serien» zu tun:
Ist-Zustand
---------------
Aktuell wird die «Abstraktion» Moodle-Kurs auf die Abstraktion Opencast Serie 1:1 abgebildet.
Das macht durchaus Sinn und ist auch korrekt, da beide Abstraktionen im Grunde genommen Aspekte der realen «Veranstaltungsreihe» modellieren, z.B. die Veranstaltungsreihe «Das Leben HS 2018» (Opencast Serie respektive Moodle Kurs) bestehend aus Einzelveranstaltungen (Opencast Events).
Das Problem ist nun, dass diese Abbildung nicht flexibel genug ist. Zum Beispiel möchte man Inhalte der Veranstaltungsreihe «Das Leben HS 2018» nun in die Folgeveranstaltung «Das Leben FS 2019» übernehmen können, ohne nochmals alle Inhalte erneut hochladen zu müssen.
Wenn man bei der korrekten 1:1 Abbildung von Moodle-Kurs auf Opencast Serien bleiben würde, würde dies eine Duplizierung der Inhalte der alten Opencast Serie implizieren.
Das ist aber eine relativ teure Operation (seitens Opencast), d.h. der Benutzer muss «warten».
Im Grunde genommen ergibt sich zudem ein semantischer Abbildungsfehler: Das gleiche Video in verschiedenen Veranstaltungsreihen zu verwenden impliziert, dass das Video nicht eindeutig einer Veranstaltungsreihe zugeordnet werden kann.
Ich würde diesen Weg (1:1 Abbildung beibehalten) nicht beschreiten – weniger wegen dem «Warten», sondern mehr, weil die 1:1 Abbildung auch andere Use Cases nicht sinnvoll unterstützen kann (mehr dazu später).
Der kurzfristige Vorschlag
----------------------------------
Der kurzfristige Lösungsvorschlag der vorherigen E-Mail führt bewusst einen Abbildungsfehler ein: Neu werden Moodle-Kurs zu Opencast Serie nicht mehr 1:1 sondern n:1 abgebildet (also potentiell mehrere Moodle-Kurse pro Opencast Series).
Das ist strenggenommen falsch, da die Abstraktion «Opencast Series» nur eine «Instanz» einer Veranstaltungsreihe (z.B. «Das Leben HS 2018» ODER «Das Leben FS 2019») abstrahiert und nicht mehrere Instanzen der Veranstaltungsreihe (z.B. «Das Leben HS 2018» UND «Das Leben FS 2019»).
Solche Abbildungsfehler haben wenig überraschend auch negative Konsequenzen. In diesem Fall zum Beispiel:
Die würde ich aber zumindest kurzfristig in Kauf nehmen. In der Realität überwiegen die Vorteile dann doch.
Kurzfristig++
-----------------
Eine naheliegende Lösung, welche die kurzfristige Lösung weiter ausbaut, wäre: Die Abbildung Moodle-Kurs -> Opencast Serie von 1:1 (korrekt, ursprünglich) über n:1 (inkorrekt, kurzfristige Lösung) zu n:n (noch inkorrekter, «Chaos») zu erweitern, d.h. man würde einen beliebigen Moodle Kurs eine beliebige Menge von Opencast Serien zuordnen können.
Das wäre schon umsetzbar. Ob dann aber irgendjemand noch versteht, wie nun was zusammenhängt (Wieso sehe ich Video X nicht, aber Video B schon?), sei dahingestellt («Chaos»).
Die Frage meinerseits wäre dann, wieso man überhaupt Serien einsetzen will, wenn man diese dermassen falsch einsetzt, dass sie aussagelos werden und mehr im Weg stehen als dass sie nutzen.
Back to the future: «Videos in beliebigen Moodle-Kursen»
-----------------------------------------------------------------------------
Dann würde ich eher eine 1:n Abbildung von Moodle-Kurs zu Opencast Events einführen, d.h. in einem Moodle-Kurs können beliebige Opencast Events (unabhängig von Serie) eingebunden werden.
Was dann aber fehlt ist die Einschränkung «Welche Opencast Events können vom Benutzer Bob in Moodle-Kurse eingebunden werden?» (vorher war die Auswahl auf die Events einer Serie beschränkt. Ohne die Serie benötigen wir ein neues Auswahlkriterium).
Hier stehen verschiedene Wege zur Auswahl, z.B.
Personenbezogen
Einem Moodle-Benutzer stehen jeweils alle Videos zur Auswahl, welche er selbst hochgeladen hat. Das dürfte nicht flexibel genug sein, z.B. Übergabe an andere Personen, mehrere Personen benötigen Zugriff, etc.
Gruppenbezogen
Einer Moodle-Gruppe (Annahme: Moodle unterstützt Gruppen) stehen jeweils alle Videos zur Auswahl, welche «im Namen der Gruppe» (=von einem Gruppenmitglied) hochgeladen wurde. Ohne tief darüber nachzudenken scheint dies gangbar, aber etwas zu stark vereinfacht. Zudem wäre mir nicht klar, wie man das aus Sicht von Openast her sinnvoll abbildet (welche Videos werden in Moodle verwendet?).
«Video-Repository»-bezogen
In Moodle gäbe es ein neues «Objekt» Videorepository, welches ein Container für Opencast Events darstellt. Dieses könnte wiederum auf eine Opencast Serie abgebildet sein (erscheint mir korrekt, 1 Videorepository mit Titel, Beschreibung, etc. zu n Events).
Durch die zusätzliche Indirektion (im Vergleich zu Gruppenbezogen) würde man tendenziell mehr Flexibilität gewinnen, z.B. könnte man verschiedenen Personen(-Gruppen) noch verschiedene Rechte auf das Repository zugestehen (z.B. nur einbinden, nicht aber hochladen oder löschen). Es wäre auch einfacher, ein solches Videorepository direkt über Opencast zu manipulieren (da als Serie abgebildet).
Wichtig: Die Verbindung Moodle-Kurs zu Opencast Serie (und auch Moodle-Kurs zu Videorepository) gibt es in diesem Ansatz nicht. Wohl aber die Verbindung Moodle-Videorepository zu Opencast Serie (wegen Verwaltbarkeit aus Sicht von Opencast).
Bei all diesen Wegen würde ich «auf die Schnelle» sagen, dass sie mittels Opencast Zugriffsrichtlinien (ACLs) umsetzbar sind. Beispiel: Beim Hochladen eines Videos wird die Rolle «ROLE_MOODLE_REPOSITORY_MOODLE_ID» gesetzt.
Bei der Darstellung eines Blocks oder Moodle Repositories kann der API Benutzer (in Abhängigkeit des angemeldeten Moodle-Benutzers) Role-Switching einsetzen. Damit erhält er nur noch die Events, für die bestimmte Rollen gesetzt sind.
Welche Videos würde nun ein angemeldeter Benutzer sehen (im Block / Repository)?
Vorher: Diejenigen der Serie, welche mit dem Moodle-Kurs verbunden ist
Nachher: Alle Videos von allen (Moodle-)Videorepositories auf welche der Benutzer gemäss Moodle-Rechtesystem Lesezugriff hat
Allerdings: Ich kenne Moodle überhaupt nicht und mir ist nicht klar, wie und ob man in einem Moodle-Plugin «Objekte» haben kann, welche eigentlich global sind und nicht direkt mit einem Moodle Kurs in Verbindung stehen.
@Tobias: Du kommst doch von der Moodle-Seite… wäre so etwas in Moodle überhaupt machbar und sinnvoll?
Zum Schluss: Wieso nicht kurzfristig in diese Richtung gehen?
Antwort: Im Vergleich zur «kurzfristigen» Lösung wäre dies ein sehr viel stärkerer Eingriff in das Plugin, welcher einiges aufwendiger und riskanter in der Umsetzung ist.
Mit einer 1:n Abbildung von Moodle-Kursen zu Opencast Events bewegt man sich klar in eine Richtung, welche das Thema «Video-Management» aufgreift. Zum Beispiel wäre zu erwarten, dass die neue Repository-Abstraktion zu wesentlich grösseren Auswahlen von Videos führen könnte.
Kann der «Block» dem Benutzer dann eine effiziente Auswahl von 100+ Videos ermöglichen? Wo, wie und von wem werden die Videos eines solchen (Moodle-)Videorepositories dann verwaltet (Achtung: Kein Bezug zu Moodle-Kurs mehr)?
Wir sehen einen ähnlichen Use Case wie ihr. Das von euch beschriebene Verlinken von Serien in mehrere Kurse, sollte mit unserer aktuellen Version des Plugins bereits funktionieren. Die Erweiterung durch des Backup und Restore Prozesses stünde allerdings noch aus. Dabei sollte das Plugin bereits in der Lage sein die Zugriffsberechtigungen für mehrere Kurse gleichzeitig richtig zu setzen. Allerdings besteht dann natürlich das Problem, dass Änderungen an der Serie in einem Kurs auch die Serie in allen anderen Kursen verändern.
Aus diesem Grund und dem Grund, dass bei uns die Aufzeichnungsannotationen in Opencast gespeichert werden, benötigen wir zusätzlich die Möglichkeit ganze Serien in einen neuen Kurs zu kopieren. Wir haben das eben mal getestet. Opencast ist schlau genug und erkennt die identischen Dateien in den verschiedenen Mediapackages. In seinem internen Speicher legt er die Dateien als Hardlinks an. Dadurch werden die Daten nicht doppelt gespeichert. Das duplizieren kostet zwar etwas Aufwand (in unseren Tests etwa 15s), steht aber nicht im Vergleich zum Aufwand die Videos etwa neu zu ingesten. Wir sehen das Duplizieren also auch als validen Use Case. Könnt ihr euch vorstellen, dass ihr diesen auch benötigen könntet? Wir würden anstreben am Schluss eine Auswahl zu haben, ob ein Kurs nur verlinkt oder ob eine Kopie der Serie erstellt werden soll.
Vorab erstmal ein grundsätzliches Thema: Wir diskutieren inzwischen über konzeptionelle Themen, die auch für meine Kollegen (hab sie auch hier mal mit ins CC aufgenommen) und andere Unis interessant sind. Dabei haben die Mails immer wieder andere Verteiler. Ich würde es sehr begrüßen, wenn wir diese Diskussionen auf einer öffentlichen Plattform weiterführen würden (Z.B. im Github-Repository, auf der Opencast-Mailingliste, in einem Moodle-Forum). Was haltet ihr davon?
[Done]
Jetzt zum eigentlichen Thema:
danke für deine interessanten Ideen. Ich verstehe gegenwärtig den logischen Unterschied zwischen Serie und Videorepository noch nicht. Welchen Vorteil hätte man davon ein Videorepository einzuführen. Man hätte immer noch das Problem, dass man sich Gedanken drüber machen muss, was bei einer Einschränkung der Zugriffsberechtigungen bzw. dem Löschend es Events passieren soll. Und ich habe immer noch eine Liste von Events die einem Kurs zugeordnet sind. Genauso wie bei einer 1:1 Beziehung zwischen Moodle-Kurs und Opencast.
Ich stelle mir die zukünftige Anbindung immer noch so vor, dass wir eine fixe 1:1 Beziehung zwischen Kurs und Serie haben. Jede Serie ist dabei beliebig erweiterbar und bildet immer genau die Videos ab, welche im Kurskontext verfügbar sind. Dadurch wird auch von Opencast-Seite ersichtlich, welcher Nutzer eigentlich auf welche Events Zugriff hat. Dabei ermöglichen wir es den Nutzern einzelne Videos in die Kursserie zu kopieren. Man könnte dem Nutzer dabei eine Liste aller Events anbieten, auf die er Schreibberechtigungen hat. Die Schreibberechtigungen werden automatisch vom MoodleRoleProvider gesetzt oder in Ausnahmefällen durch den Opencast-Admin. Dann spart man sich den Check, wer ein Video hochgeladen hat, und ermöglicht es gleichzeitig, dass eine Vorlesungsreihe auch von mehreren Nutzern verwaltet werden kann. Wie ich in meiner anderen Mail dargelegt habe, ist da Kopieren zwar ein Prozess der etwas Zeit in Anspruch nimmt, aber nicht im Vergleich dazu steht, ein Video neu hochzuladen. Auch werden die Videos deshalb nicht mehrfach im System gespeichert. Die Änderungen am Block würden sich dabei auch in Grenzen halten.
Zusätzlich könnte man dem Lehrenden dann auch anbieten, die gesamte Serie ins nächste Semester zu kopieren.
Bei all den Überlegungen müssen wir aber natürlich auch im Blick behalten, wie wir mit den Einschränkungen der Zugriffsberechtigungen auf Basis von Moodle-Gruppen verfahren wollen.
Um deine Frage noch zu beantworten: Ja ein solche Videorepository wäre möglich. Letztendlich wird gegenwärtig ja auch die 1:1 Beziehung in Moodle in einer Datenbank hinterlegt. Stattdessen könnte man auch eine 1:n, n:n oder n:1 Beziehung je nach belieben speichern. Allerdings halte ich diese Zuordnung aus o.g. Gründen für weniger sinnvoll.
danke für deine interessanten Ideen. Ich verstehe gegenwärtig den logischen Unterschied zwischen Serie und Videorepository noch nicht. Welchen Vorteil hätte man davon ein Videorepository einzuführen.
Man hätte immer noch das Problem, dass man sich Gedanken drüber machen muss, was bei einer Einschränkung der Zugriffsberechtigungen bzw. dem Löschend es Events passieren soll. Und ich habe immer noch eine Liste von Events die einem Kurs zugeordnet sind. Genauso wie bei einer 1:1 Beziehung zwischen Moodle-Kurs und Opencast.
Ich stelle mir die zukünftige Anbindung immer noch so vor, dass wir eine fixe 1:1 Beziehung zwischen Kurs und Serie haben. Jede Serie ist dabei beliebig erweiterbar und bildet immer genau die Videos ab, welche im Kurskontext verfügbar sind. Dadurch wird auch von Opencast-Seite ersichtlich, welcher Nutzer eigentlich auf welche Events Zugriff hat.
Dabei ermöglichen wir es den Nutzern einzelne Videos in die Kursserie zu kopieren. Man könnte dem Nutzer dabei eine Liste aller Events anbieten, auf die er Schreibberechtigungen hat. Die Schreibberechtigungen werden automatisch vom MoodleRoleProvider gesetzt oder in Ausnahmefällen durch den Opencast-Admin.
Dann spart man sich den Check, wer ein Video hochgeladen hat, und ermöglicht es gleichzeitig, dass eine Vorlesungsreihe auch von mehreren Nutzern verwaltet werden kann. Wie ich in meiner anderen Mail dargelegt habe, ist da Kopieren zwar ein Prozess der etwas Zeit in Anspruch nimmt, aber nicht im Vergleich dazu steht, ein Video neu hochzuladen. Auch werden die Videos deshalb nicht mehrfach im System gespeichert. Die Änderungen am Block würden sich dabei auch in Grenzen halten.
Zusätzlich könnte man dem Lehrenden dann auch anbieten, die gesamte Serie ins nächste Semester zu kopieren.
Bei all den Überlegungen müssen wir aber natürlich auch im Blick behalten, wie wir mit den Einschränkungen der Zugriffsberechtigungen auf Basis von Moodle-Gruppen verfahren wollen.
Um deine Frage noch zu beantworten: Ja ein solche Videorepository wäre möglich. Letztendlich wird gegenwärtig ja auch die 1:1 Beziehung in Moodle in einer Datenbank hinterlegt. Stattdessen könnte man auch eine 1:n, n:n oder n:1 Beziehung je nach belieben speichern. Allerdings halte ich diese Zuordnung aus o.g. Gründen für weniger sinnvoll.
[...]. Eine Anforderung, die ich noch sehe, ist, dass ein Video nicht immer unbedingt einem Lehrenden gehört und ich auch meinen Kollegen/Nachfolgern ermöglichen können muss auf meine Videos zuzugreifen.
Außerdem löst dein Szenario nicht das Problem des Berechtigungsmanagements. Wenn ich immer noch über die Einbindung eines Videos in einem Kurs steuern möchte, dass nur Teilnehmer dieses Kurses auf dieses Video Zugriff haben, dann habe ich meiner Einschätzung nach keine andere Wahl als "das Rechtemanagement von Moodle auf Opencast abzubilden und synchron zu halten".
Mir würde dabei aber sehr helfen, zu erfahren, wie ihr dieses Berechtigungsmanagement bei euch geregelt habt. Vor allem, da ihr wie du meinst einen anderen Ansatz als den MoodleRoleProvider verwendet.
Für mich hat das Szenario mit den Serien immer noch den Charme, dass ich in Opencast auch eine grobe Ahnung erhalte, welche Videos jetzt von welchen Personenkreisen zugreifbar sind. Ansonsten habe ich keine andere Wahl, als in jedem Event die ACL Regeln zu betrachten.