Das Open Linked Data Projekt OD.FMI der Fakultät

Über einen SPARQL Endpunkt können Interessenten lesend auf die aktuellen Stundenplandaten zugreifen. Diese Datenbasis od.fmi ist die Primärquelle der Stundenplandaten an der Fakultät. Dort werden schrittweise weitere Daten integriert, die für das operative Geschäft auf Fakultätsebene relevant sind. Sie haben damit in der Regel nichts zu tun, können aber diese Daten in eigenen Applikationen ebenfalls verwenden. Bitte nehmen Sie bei Interesse Kontakt mit mir auf.

Diese Entwicklungen waren ein komplexer Showcase für das Ontowiki-Projekt am BIS-Lehrstuhl.

Workflow

Die im RDF Store od.fmi.uni-leipzig.de vorgehaltene Datenbasis orientiert sich grundsätzllich am aktuellen, operativen Zustand der Lehrplanungsdaten der Fakultät. Änderungen werden sowohl in den semesterspezifischen als auch den semesterübergreifenden RDF-Graphen (studium, rooms, personal) aktuell gehalten, Querverbindungen zwischen verschiedenen Graphen orientieren sich immer am operativen Zustand.

Um auch Zustandsbeschreibungen vergangener Semester verfügbar zu machen, werden diese zusammen mit den damals gültigen Querverbindungen in semesterübergreifenden Daten archiviert. Dies geschieht nach Ablauf des jeweiligen Semesters als Schnappschuss über eine entsprechende SPARQL-Anfrage. Die dabei erzeugte Turtle-Datei wird im od.fmi-Archiv gespeichert.

Im RDF Store od.fmi.uni-leipzig.de (und damit über den SPARQL-Endpunkt abfragbar) werden nur die semesterspezifischen Daten des vergangenen, aktuellen und kommenden Semesters vorgehalten. Die anderen semesterspezifischen Daten werden nach Fristablauf im Store gelöscht und stehen danach nur noch in der archivierten Form zur Verfügung.

Struktur der Datenquelle

Die URL der einzelnen Ontologien lautet http://od.fmi.uni-leipzig.de/<name>/

Die Datenquelle besteht aus mehreren Wissensbasen, und zwar

  • den semesterübergreifende Wissensbasen, jeweils auf dem Stand des aktuellen Lehrangebots
    • groups (Präfix odg:) – Abteilungssstruktur
    • model (Präfix od:) – Klassenstruktur der Wissensbasen
    • personal (Präfix odp:) – Mitarbeiter
    • rooms (Präfix odr:) – Räume
    • studium (Präfix ods:) – Units, Module, Zeitfenster, od:Studiengang, od:StudiengangSemester
    • tags (Präfix odt:) – Ausstattungsmerkmale der Räume
  • Semesterspezifische LV-Wissensbasen (importieren die semesterübergreifenden Wissensbasen)
    • wxx – Lehrveranstaltungen im Wintersemester
    • sxx – Lehrveranstaltungen im Sommersemester

Das Projekt folgt einer iterativen Entwicklungsmethodik. In die aktuellen Datenstrukturen werden nur Korrekturen eingearbeitet, die den Betrieb beeinträchtigen. Grundlegendere Strukturänderungen werden ausschließlich im Vorfeld der LV-Planung für das nächste Semester umgesetzt und für die Daten der neuen Lehrplanung wirksam.

Änderungen der Struktur der Datenquelle

  • September 2020: Zu od:LV wird das Prädikat od:hasCType eingeführt, um die Corona-bedingte Unterscheidung von Lehrveranstaltungen in (digital) asynchron, synchron, hybrid und praesenz zu modellieren. Weiter wurde während der Aktualisierung der reduzierten Raumkapazitäten für die Raumbeschreibungen die bisherige literale Ausstattungsbeschreibung durch Tags aus dem Namensraum odt: ersetzt.
  • Juli 2020: Zu Räumen wird das Prädikat od:reducedCapacity eingeführt, um die Corona-bedingte reduzierte Belegungsgrenze zu modellieren.
  • Juni 2019: Ein od:Kurs ist zusätzlich der Klasse od:English zugeordnet, wenn die Lehrveranstaltungen in Englisch gehalten werden. Module und Units des Studiengangs Mathematische Physik ergänzt.
  • März 2019: od:ModuleGroup in Studium.ttl am Beispiel der Pflichtmodule Mathematik und Informatik ausgerollt. Da die Mathematik keine Module hat, wurden auch Units zugeordnet.
  • Juni 2015: od:inTimeSlotLA aus den Units entfernt, wird nur noch über Studiengang-Semester verwaltet.
  • Oktober 2014: RDF-Graph Groups.ttl ergänzt, um die Zuordnung zu einzelnen Organisationseinheiten abzubilden. Umbenennung des RDF-Graphen mit der Personalliste in Personal.ttl, der Namensraum odp: bleibt aber <http://od.fmi.uni-leipzig.de/personal/>.
  • März 2013: od:Person zu foaf:Person migriert.
  • Juni 2012: Neue Wissensbasen almaweb und kurse angelegt. kurse enthält die Semester übergreifende Zuordnung von Kursen zu Units.
  • Feb 2012: Die bisherige Einheit Block wurde zugunsten von Unit komplett aufgelöst, eine weitere Einheit Kurs (Namensraum ods) wurde zwischen Unit und LV eingeschoben, um die Almaweb-Modellierung abzubilden.
  • Nov 2011: Die Einführungsveranstaltungen (Programmierpraktikum und Propädeutikum) wurden in eine eigene Wissensbasis ausgelagert, um sie ohne Datenredundanz für den Stundenplan sowohl im Sommer- als auch im Wintersemester verfügbar zu machen.
  • Aug 2011 – Wirksam ab Wintersemster 2011/12
    • Die bisherige Struktureinheit Block wurde in die Struktureinheiten Block (semesterspezifische Informationen) und Unit (semesterübergreifende Informationen) zerlegt. Letztere wurden in die Wissensbasis studium verschoben. Die Verbindung zwischen beiden wird durch das neue Feld od:relatedUnit hergestellt. Einander entsprechende Einheiten haben den gleichen relativen Namen und unterscheiden sich nur durch den jeweiligen Namensraumpräfix.
    • Neue Prädikate bei Studiengang+Semester: od:estimatedPeople, od:inTimeSlotLA, od:toStudiengang, od:hasSemesterType
    • Typ od:Semester wurde abgeschafft, die entsprechenden Informationen als globale Eigenschaften der LV-Wissensbasis abgespeichert.
  • Febr. 2011: od:additionalInformation – ergänzt als Prädikat von od:LV, od:Kurs sowie od:Unit
  • Nov. 2010: od:hasStatus – ergänzt als Prädikat von od:LV

Probleme

  • Es führt zu Problemen, wenn od:additionalInformation auch HTML-Tags enthält. SPARQL scheint einzelne HTML-Elemente zu verschlucken (inbs. a-Tag)
  • Achtung, keine & in Links verwenden, das bringt den Parser aus dem Takt!

Änderungen

Änderungen zum Sommersemester 2020

  • Neuer Studiengang Inf.MDS Master Data Science angelegt.
  • Modulbeschreibungen für Studiengang Math.MP entsprechend der vorliegenden Modulbeschreibung aktualisiert. Units und Kurse dazu angelegt.
  • Angebote der HTWK in eigener Datei HTWK.ttl archiviert und aus Studium.ttl herausgenommen

Änderungen zum Wintersemester 2019/20

  • Umbenennung der Module TI.* in NII.* bzw. TI.GTI-* in Inf.GTI-* abgeschlossen.
  • Neuer Studiengang Math.MP Master Mathematische Physik angelegt.

Änderungen zum Wintersemester 2019/20

  • Ein od:Kurs ist zusätzlich der Klasse od:English zugeordnet, wenn die Lehrveranstaltungen in Englisch gehalten werden.
  • Die Planungen für die Propädeutika vor Semesterbeginn sowie die Räume an der HTWK wurden komplett entfernt.

Änderungen zum Sommersemester 2019

  • Experimentell ist eine neue Klasse od:Modulgruppe eingeführt, um Module nach Pflicht- und Wahlbereich zu klassifizieren.
  • In Absprache mit dem Studienbüro werden die Angebote im Rahmen von od:ProKooperation nicht mehr dargestellt.

Änderungen zum Sommersemester 2018

  • Neuer “Studiengang” Seniorenstudium eingeführt
  • Die Zuordnungen der Exportverpflichtungen aus den Fächerkooperationsvereinbarungen sind dem Studiengang “Lehrexport” und dort jeweils zwei Studiengang-Semestern pro FKV zugeordnet, eins für Exporte im Sommersemester und eins für Exporte im Wintersemester.

Änderungen zum Wintersemester 2015/16

  • Zeitfenster E1 (LA.SMath-Gym/MS.3) und F1 (LA.SMath-MS.6) als Erweiterungen der Zeitfenster E und F ergänzt
  • od:inTimeSlotLA aus dem Units entfernt, wird nur noch über Studiengang Semester verwaltet.

Änderungen zum Sommersemester 2015

  • Einarbeitung der beiden FKV vom 23.01.2014 mit der Wifa.
  • Einbau von od:ProKooperation, Hinterlegung der dort einbezogenen LV und Einarbeitung des Lehrangebots der HTWK, das im Rahmen des Kooperationsprojekts angeboten wird.

Änderungen zum Wintersemester 2014/15

  • RDF-Graph Groups.ttl ergänzt, um die Zuordnung zu einzelnen Organisationseinheiten abzubilden. Umbenennung des RDF-Graphen mit der Personalliste in Personal.ttl, der Namensraum odp: bleibt aber <http://od.fmi.uni-leipzig.de/personal/>.
  • Zuordnung des Personals zu Struktureinheiten als Instanzen von org:OrganizationalUnit, ein neuer Namensraum-Präfix odg: für Organisationseinheiten eingeführt und im RDF-Graph Personal.ttl Zuordnungen angelegt, wo die Zugehörigkeit über das Prädikat org:memberOf modelliert ist.

Änderungen zum Sommersemester 2014

  • Um Inferenzen zu vermeiden, sind im Portal immer nur die beiden aktuellen Studienjahre enthalten, alle anderen liegen in archivierter Form im Repo.
  • Die Units *.Schwerpunkt der Mathematik wurden in Studium.ttl durch die Kurse *.K1 = Spezialvorlesungen und *.K2 = Fachseminare untersetzt, so dass in den jeweiligen Stundenplänen nur noch die Zuordnungen der LV enthalten sind.
  • Die Daten wurden auf einen neuen Rechner umgesetzt, auf dem ein Virtuoso basiertes Ontowiki läuft. Damit dient Ontowiki allein noch dem Editieren (durch berechtigte Personen) und Inspizieren der RDF-Datenbasis.
  • Weitere Modulbeschreibungen der Lehramtsstudiengang-Semester LA.S*.* wurden eingearbeitet, insbesondere LA.S*.4.

Änderungen zum Wintersemester 2013/14

  • Es wurde ein ordentlicher Archivierungsprozess alter Studienjahres-Beschreibungen mit Import der relevanten Informationen aus den aktuell gültigen studienjahresübergreifenden Wissensbasen unter Nutzung eines lokalen Sparql-Endpunkts aufgesetzt.
  • Abgleich der Modulnummern im Master Informatik und Ergänzung des Studiengangs Master Bioinformatik
  • Aktualisierung der Modulnummern der Lehramtsstudiengänge
  • od:hasStatus um Wert “reserve” ergänzt, der im Stundenplan Zerbst nicht angezeigt wird.
  • Studiengang Master Bioinformatik integriert

Änderungen zum Sommersemester 2013

  • Instanzen in Personal.ttl als foaf:Person remodelliert.
  • Instanzen von od:Kurs wurden in die Wissensbasis Studium integriert.
  • LVType und LVCategory in der Almaweb-Anbindung von Literal auf URI umgeschrieben.
  • Die entsprechenden Semesterinformationen für Lehramt auf Staatsexamen 2. und 3. Semester gefixt und alte Bachelorstudiengänge Lehramt entfernt.
  • Studiengänge Physik in Phys.Mathe- 1..4 und IPSP.Mathe-1..4 vereinheitlicht. Obsolete Units mit level=X markiert. Fliegen perspektivisch raus. So weit Modulbeschreibungen da sind, weisen die Module auf die Unit Unit.Obsolete und werden gelöscht, wenn entsprechende Beschlüsse des Fakultätsrats vorliegen. Wissensbasis Studium stellt damit ebenfalls nur die Sicht auf das operative Geschäft dar.

Änderungen zum Wintersemester 2012/13

  • Neue Studiengänge LA.SMath-Gym, LA.SMath-MS, LA.SMath-GS, LA.SInf-Gym, LA.SInf-MS für Lehramt auf Staatsexamen eingerichtet und die entsprechenden Semesterinformationen für 1. Semester gefixt.
  • Räume der Fakultät in rooms (entsprechend Zuständigkeit fmi-goetz, fmi-wenzel, fmi-other) und Organisationszugehörigkeit von Personen in personal ergänzt.
  • Neue Wissensbasen almaweb und kurse angelegt. kurse enthält die Semester übergreifende Zuordnung von Kursen zu Units, s12 und w12 wurden entsprechend abgespeckt. Nach außen keine Änderung, da kurse in beiden Wissensbasen importiert wird.
  • Inf.Bachelorseminar und Inf.Masterseminar auf der Ebene von Units und Kurs neu eingerichtet. Hier sind (ggf. zusätzlich) die relevanten Seminar-Angebote der Abteilungen einzutragen.

Änderungen zum Sommersemester 2012

  • Studiengang+Semester Phys.IPSP.* und Phys.Phys- B.* zugunsten Export.Phys.W und Export.Phys.S aufgelöst, um den Lehrexport der Fakultät genauer darzustellen. Alle Export-Studiengang+Semester gehören zum Studiengang “Export”.
  • od:estimatedPeople wird in od:Unit verwendet, wenn sich diese Anzahl nicht aus den empfohlenen Studienjahr-Semester-Angaben berechnen lässt oder wesentlich davon abweicht (etwa Erfahrungszahlen bei Wahlpflichtangeboten, insoweit sie über die Zahl 70 hinausgehen).
  • Auf der Ebene zwischen Unit und LV gibt es eine weitere Struktur od:Kurs (Namensraum ods), in der zusammengehörende LV nach Almaweb-Systematik erfasst sind.

Auflistung der Struktur im Detail

Globale Eigenschaften einer LV-Wissensbasis

  • od:beginDate Literal^xsd:date – Beginn des Semesters
  • od:endDate Literal^xsd:date – Ende des Semesters
  • od:hasCalendarWeeks List Decimals – Kalenderwochen
  • od:hasSemesterType {"W","S"} – Winter- oder Sommersemester

od:Kurs – Gruppierungseinheit zwischen den Ebenen Unit und LV (Almaweb-Systematik, ab S12)

  • URI-Schema (Unit).K<nr> (Namensraum ods)
  • rdfs:label Literal – Titel (single)
  • od:containsLV od:LV – zugeordnete Lehrveranstaltungen
  • od:additionalInformation Literal – Informationen, die in den Stundenplan übernommen werden sollen
  • rdfs:comment Literal – interner Kommentar

od:Module

  • URI-Schema (Modulnummer) (Namensraum ods)
  • od:toStudiengangSemester od:StudiengangSemester – empfohlen für Studiengang Semester
  • od:hasModuleDescription od:ModuleDescription – existierende Beschreibungen zu dieser Modulnummer
  • od:toModuleGroup od:ModuleGroup – Zuordnung zu einer oder mehreren Modulgruppen
  • od:contains Literal – Bestandteile, die sich als Almaweb-Kurse wiederfinden müssten

od:ModuleGroup

  • od:toStudiengang od:Studiengang – Studiengang, auf den sich die Modulgruppe bezieht.

foaf:Person – Mitarbeiter

  • URI-Schema (Name)_(Vorname) – transkribiert in ASCII-Zeichen (Namensraum odp)
  • foaf:name (Name), (Vorname)
  • spezielle Person odp:NN – noch keine Zuordnung
  • org:memberOf org:organizationalUnit – Organisationsstruktur, der die Person zugehört

org:organizationalUnit – Struktureinheiten (auf verschiedenen Ebenen) siehe Groups.ttl

od:RegularEvent
Oberklasse zu verschiedenen Event-Arten, der folgenden Struktur:
wöchentlicher Termin mit Literalen dayOfWeek, beginsAt und endsAt sowie hasRegularity mit Range od:TimeConstraint (A-Woche, Blockveranstaltungen usw., default: weekly), die auf Nummern der entsprechenden Kalenderwochen abgebildet werden. Siehe auch od:Semester

  • od:dayOfWeek Literal – Wochentag (single)
  • od:hasTimeConstraint od:TimeConstraint – Turnus, steht auch literal in od:dayOfWeek
  • od:beginsAt Literal – Beginn des Termins (hh:mm) (single)
  • od:endsAt Literal – Ende des Termins (hh:mm) (single)
  • od:locatedAt od:Room – zugeteilter Raum (single)
  • rdfs:label Literal – Titel (single)

od:Extern rdfs:subClassOf od:regularEvent – weitere Termine, die für die Raumplanung zu berücksichtigen sind

  • URI-Schema “Extra”.(Nummer) oder “LSGM”.(Nummer)

od:LV rdfs:subClassOf od:regularEvent

  • URI-Schema (Unit).(Nummer) (Semesterspezifischer Namensraum sxx: oder wxx:)
  • od:servedBy foaf:Person – Verantwortliche Lehrkraft (multiple)
  • od:hasStatus Literal – Planungsstatus (alt, ok, tok, pok, reserve)
  • rdf:type (rdfs:subClassOf od:LV) – Typ der Lehrveranstaltung
  • od:additionalInformation Literal – Informationen zur LV, die in den Stundenplan übernommen werden sollen

rdfs:subClassOf od:LV

  • od:Oberseminar – obsolet zugunsten od:Seminar entsprechend Almaweb-Planung
  • od:Onlinekurs
  • od:Praktikum
  • od:Seminar
  • od:Uebung
  • od:Vorlesung

od:Room

  • URI-Schema (Raumkuerzel) (Namensraum odr)
  • od:capacity Integer – Raumkapazität
  • od:reducedCapacity Integer – durch die Coronaregeln reduzierte Raumkapazität
  • od:hatAusstattung Literal – Ausstattung
  • od:planung Literal – Wer verwaltet den Raum (entsprechend Zuständigkeit “fmi-goetz”, “fmi-wenzel”, “fmi-other”, “imise”, “wifa”, “zentral”)

od:Studiengang – von uns verantwortete Studiengänge

  • URI-Schema (Studienrichtung).(Studiengang) (Namensraum ods)

od:StudiengangSemester – Aggregat aus Studiengang und Semester für Stundenplaneinteilung

  • URI-Schema (Studienrichtung).(Studiengang).(Semester) (Namensraum ods)
  • od:estimatedPeople Literal^xsd:integer – erwartete Teilnehmerzahl (neu)
  • od:inTimeSlotLA od:TimeSlotLA – Zeitfenster bei Lehramtsstudiengängen
  • od:toStudiengang od:Studiengang – zugehöriger Studiengang
  • od:hasSemesterType {"W","S"} – Winter- oder Sommersemester

od:TimeConstraint – Klassifikation nicht wöchentlicher Termine

  • od:hasCalendarWeeks List Decimals – Kalenderwochen

od:TimeSlotLA – Lehramt-Zeitfenster laut zentraler Übersicht

  • URI-Schema “Zeitfenster”.[A-H] -> "Time Slot LA".[A-H] – entsprechend der offiziellen Liste, sowie E1 und F1

od:Unit – semesterübergreifende Gruppierungseinheit für zusammenhängende Lehrveranstaltungen (LV-Verantwortungsbereich) in “studium”

  • URI-Schema (Abteilung).(Kuerzel) (Namensraum ods)
  • od:additionalInformation Literal – Informationen zur Unit, die in den Stundenplan übernommen werden sollen
  • od:containsKurs od:Kurs – zugeordnete Kurse (Almaweb-Systematik Kurs als Ebene zwischen Unit und LV)
  • od:estimatedPeople Literal^xsd:integer – erwartete Teilnehmerzahl – nur in den Fällen, wo sich diese nicht aus den empfohlenen Studiengängen berechnen lässt (etwa SQ)
  • od:hasLevel Literal – intern für Planungszwecke, Planungsebene (single)
  • od:hasUmfang Literal – Umfang laut Modulbeschreibung (single)
  • od:planung Literal – intern für Planungszwecke, Planungsträger (single)
  • rdfs:label Literal – Titel (single)
  • od:hasMaintainer foaf:Person – prinzipiell Verantwortlicher (single)
  • od:recommendedFor od:StudiengangSemester – empfohlen für Studiengang / Semester (m:n)
  • od:relatedModule od:Module – zugehörige Module
  • od:toModuleGroup od:ModuleGroup – Zuordnung zu einer oder mehreren Modulgruppen, wenn es zu dieser Unit keine Module gibt (trifft auf viele Units der Mathematik zu)
  • rdfs:comment Literal – interner Kommentar (single)

od:recommendedFor kann aus od:Module und od:toStudiengangSemester inferiert werden, wenn es Module gibt. Das ist aber für Veranstaltungen der Mathematik nicht unbedingt gegeben. Deshalb sind beide im Zuge einer Qualitätssicherung von Zeit zu Zeit abzugleichen.

Anbindung an Almaweb

Die Modellierung der Prüfungsordnungen von Almaweb kennt eine Baumstruktur (wohl eher ein DAG) – im Weiteren Almaweb-DAG -, deren Blättern die einzelnen Module sind, die im jeweiligen Studiengang zur Wahl stehen. Module können in mehreren Studiengängen eingehängt sein, um die bisherige Vervielfachung von Modulnummern für einen Modul in verschiedenen Studiengängen zu vermeiden. Jedem Modul ist eine Reihe von Kursen zugeordnet, die wiederum Lehrveranstaltungen enthalten.

Die Modul-Kurs-Zuordnung bildet semesterübergreifende Zusammenhänge ab und ist – so weit dies geht – auf od-Seite in eine eigene Wissensbasis Kurse ausgelagert, in der diese semesterübergreifenden Zusammenhänge auf Unit-Kurs-Ebene dargestellt sind, da unsere Planungseinheit nicht Modul, sondern Unit (als planungstechnische Zusammenfassung mehrerer LV, die auf mehrere Module verteilt sind) ist. Unit-Kurs-Zusammenhänge, die sich nicht (oder noch nicht) so darstellen lassen, sind in der Wissensbasis des jeweiligen Semesters zu finden wie auch alle Kurs-LV-Beziehungen.

aw:Kurs

  • aw:belongsToLVCategory aw:LVCategory (konsolidiert aus Almaweb)
  • aw:hasLVType aw:LVType (konsolidiert aus Almaweb)
  • aw:servedByOrgUnit aw:ServingUnit (aus Almaweb)
  • rdfs:label string – Bezeichnung des Kurses (aus Almaweb)
  • owl:sameAs od:Kurs – od:Kurs, wenn eine solche Zuordnung möglich ist.
  • od:mapsTo od:Kurs – wenn mehrere aw:Kurse auf einen od:Kurs abgebildet werden. Dabei werden alle LV im od:Kurs in jedem aw:Kurs angeboten.

aw:GradeSystem – Graduierungssystem aus Almaweb (was das auch immer ist)

aw:LVCategory – Kategorie einer LV aus Almaweb (was das auch immer ist)

aw:LVType – Typ einer LV aus Almaweb (was das auch immer ist)

aw:Modul

  • aw:belongsTo aw:Tag – Anbindung an nächsthöheren Knoten
  • aw:containsKurs aw:Kurs (multiple) (aus Almaweb)
  • aw:duration int – Dauer in Semestern (aus Almaweb)
  • aw:ects int – Credits (aus Almaweb)
  • aw:hasGradeSystem aw:GradeSystem – Graduierungssystem des Moduls (konsolidiert aus Almaweb)
  • aw:servedByOrgUnit aw:ServingUnit (aus Almaweb)
  • od:relatedUnit od:Unit – Zuordnung des Moduls zu einer od:Unit
  • od:toStudiengang od:Studiengang – zugehöriger Studiengang
  • od:wasModule od:Modul – Zuordnung zu früherem od:Modul (multiple)
  • rdfs:label string – Bezeichnung der Unit (aus Almaweb)

aw:ServingUnit – Resource-URI in die Almaweb-Wissensbasis

aw:Tag

  • aw:belongsTo aw:Tag – Anbindung an nächsthöheren Knoten
  • rdfs:label string – Bezeichnung der Einheit

Disclaimer