LD.LEO

Aus LeipzigWiki
Zur Navigation springenZur Suche springen

Home > Leipzig Open Data und LD.Datenprojekt

LEO - Leipziger Ontologie

Zur Herstellung von Interoperabilität auf Datenebene ist es erforderlich, sich über das dabei verwendete Vokabular zu einigen. Ein erster Ansatz für ein solches Vokabular ist mit der LD.Ontologie vorgelegt. Der relevante Abstimmungsprozess soll und wird im Rahmen der Leipzig Data Aktivität wenigstens für längerfristig persistente Datenbestände auf der apileipzig Liste zügig weiter vorangetrieben werden.

URIs

Über URIs (Unique Resource Identifier) werden Ressourcen identifiziert, über die RDF-Tripel (also letztlich Sätze) in der Wissensbasis gesammelt werden. In jedem RDF-Tripel sind die ersten beiden Einträge (Subjekt und Prädikat) unbedingt URIs, der dritte (Objekt) ein Literal (String) oder ebenfalls eine URI. Während URIs für Subjekte und Objekte (also Knoten im entsprechenden RDF-Graphen) im Normalfall Objektinstanz-Bezeichner sind und damit eine realweltliche Entsprechung haben, sind URIs für Prädikate Begriffs-Bezeichner und gehören zum Modell.

URIs dienen zwar dazu, Informationen in maschinenlesbarer Form vorzuhalten, es ist aber eine gute Regel, sprechende Namen als Bezeichner zu vergeben. Jeder Bezeichner soll deshalb die Gestalt leipzig-data.de/Data/<Paketname>/EinfacherBezeichner haben, wobei EinfacherBezeichner den regulären Ausdruck [A-Za-z0-9._] matcht und CamelCase-Notation sowie '_' (minor variation) und '.' (major variation) als Trennzeichen die Lesbarkeit weiter verbessern. Für verschiedene Typen von Objektinstanzen gibt es feinere Namensgebungsregeln.

Dazu werden Umlaute und andere Sonderzeichen nach den fixID-Regeln in reine ASCII-Strings transformiert.

Alle Modellbegriffe haben Bezeichner aus dem Paket Data, Objektinstanz-Bezeichner verteilen sich auf verschiedene paketspezifische Namensräume.

Pakete

Die Wissensbasis ist in Pakete unterteilt, in denen einzelne Teile der Wissensbasis nach Management-Gesichtspunkten zusammengefasst sind. Typischerweise enthält ein Paket alle Einträge zu Subjekten, die zur selben Klasse gehören. Namensräume innerhalb von leipzig-data.de haben stets ein Präfix der Form leipzig-data.de/Data/<Paketname>/, allerdings werden Pakete auch zu anderen Strukturierungszwecken verwendet, so dass es nicht notwendig zu jedem Paketnamen URIs mit einem solchen Präfix gibt. Typischerweise ist der Paketname im Plural, der Namensraumpräfix der damit organisierten Instanzen im Singular.

Also etwa leipzig-data.de/Data/Personen/ für das Paket und leipzig-data.de/Data/Person/ als Namenspräfix für Instanzen von ld:Person, die in Personen.ttl aufgelistet sind.
  • Adressen.ttl - Instanzen von ld:Adresse und ld:Strasse
  • Personen.ttl - Instanzen von ld:NatuerlichePerson
  • Stadtbezirke.ttl - Instanzen von ld:Stadtbezirk
  • Tags.ttl - Instanzen von ld:InfoRecord, ld:Property, ld:Tag und ld:Type (vorläufig)

Namensräume und Klassen

ld = leipzig-data.de/Data/Model/ - alle relevanten Modellbegriffe (Klassen, Prädikate)

  • ld:Adresse (definiert in Adressen.ttl) - URIs haben die Struktur leipzig-data.de/Data/Adresse/plz.strasse.nummer mit Postleitzahl plz, strasse der fixId-transformierte Straßenname und Hausnummer nummer (incl. ggf. Zusatz).
  • ld:NatuerlichePerson (definiert in Personen.ttl) - URIs haben typischerwise die Struktur leipzig-data.de/Data/Person/Nachname_Vorname nach fixID-Transformation.
    • Öffentliche Informationen zu Personen, weitere Informationen werden im internen Datenbestand des Projekts gesammelt und nicht veröffentlicht.
  • ld:JuristischePerson - Namensschema ist noch festzulegen
    • Eine juristische Person kann weiteren Klassen wie ld:Verein, ld:Unternehmen zugeordnet werden, soll aber immer auch ld:JuristischePerson sein, um Inferenz längs Vererbungshierarchien zu vermeiden.
  • ld:Stadtbezirk (definiert in Stadtbezirke.ttl) - Als URI wird leipzig-data.de/Data/Stadtbezirk/stadtbezirk verwendet, wobei stadtbezirk der fixId-transformierte Name des Stadtbezirks verwendet.
    • Eigenschaften: ld:hasAPIId, ld:hasStadtId Literal - Id's in den Stadtdaten bzw. Daten von API Leipzig.
  • ld:Strasse - (definiert in Adressen.ttl) Als URI wird typischerweise leipzig-data.de/Data/Strasse/strasse verwendet, wobei strasse der fixId-transformierte Straßenname ist und Mehrwortnamen zu Strings ohne Leerzeichen zusammengezogen werden. Existiert der Straßenname mehrfach, wird strasse.stadtbezirk verwendet (das ist noch einzubauen).
    • Eigenschaften: ld:hasStreetKey - Literal. Straßenschlüssel der Stadt Leipzig.

Tagsystem:

  • Klassen ld:InfoRecord, ld:Property, ld:Tag und ld:Type
    • Die genaue Behandlung dieser Strukturen muss noch diskutiert werden. Instanzen von ld:Tag dienen auf jeden Fall dazu, Tagwolken aufzubauen.