-
Notifications
You must be signed in to change notification settings - Fork 20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Datenmodell im JSON Schema Format speichern #283
Comments
Zumindest zum Teil ist dies ein Duplicate von #27.
Ich begrüße es, wenn die Maschinenlesbarkeit von Spezifikationen gefördert wird !
Ich habe seit Juli 2014 schon drauf gewartet, dass OParl das Semantic Web für sich neu erfindet - bravo ;-) Allerdings wäre #237 aus mehreren Gründen ein wesentlich nachhaltigerer Weg dort hin, denn eine Insellösung für OParl würde zukunftige Entwicklungen behindern und in eine Sackgasse führen. (EDIT: leicht umformuliert) |
Zwei Links für diejenigen, die sich für relevante Aktivitäten der Semantic Web Community im W3C interessieren: RDF Data Shapes Working Group Charter SHACL (Shapes Constraint Language) Primer |
Konkreter: OpenGovLD geht damit aber noch einfacher um: inverse Properties werden nicht geschaffen, denn sie sind unerwünscht und unnötig, siehe OpenGovLD#127 Dabei wird die JSON-LD Property "@reverse" verwendet. Dies deckt sich auch mit der Position von TimBL, siehe mnot/I-D#39 (comment) |
Die Dateien werden nicht mehr benötigt, da mit dem json_schema2markdown.py Skript das JSON Schema (inklusive der Beispiele) zu Markdown konvertiert werden kann.
Das Schema ist jetzt komplett in JSON-Schema gespeichert. Für die OParl eigenen Eigenschaften, habe ich Präfixe verwendet (Beispiel: "oparl:ref"). @akuckartz: wie ich bereits oben geschrieben habe, wollen wir das JSON-Schema nur intern verwenden um komfortabler an der Spezifikation arbeiten zu können. Mit JSON-LD kann man Linked Data Informationen zu den JSON-Eigenschaften speichern. Dabei ist es möglich, ein JSON-LD Objekt ohne Informationsverlust in verschiedene Formen umzuwandeln. Es ist also nicht dazu gedacht, die genaue Form und Struktur eines JSON-Objekts zu beschreiben und zu validieren. Daher war JSON-LD keine Alternative für uns. Mit den aktuell vorhandenen inversen Referenzen bin ich auch noch nicht zufrieden, dafür werde ich aber ein eigenes Issue öffnen. |
@lu-j Nur als Ausblick: JSON-Schema können prinzipiell zur Festlegung von JSON-LD Serialisierungen (der Syntax) verwendet werden. Darauf kann z.B. in einem JSON-LD Profile (#222) verwiesen werden. Es gibt aber derzeit auch wieder Diskussionen über "rdf crystalization". Auch dabei geht es um Festlegungen der Serialisierung für Nicht-RDF-Anwender. |
Das Datenmodell ist aktuell nicht maschinenlesbar in Markdown geschrieben. Ich will das Datenmodell in das JSON Schema Format übertragen. Aus JSON Schema können wir automatisch ein ER Diagramm oder Markdown Tabellen für das Schema Kapitel generieren lassen. Auch Clients und der Validator können das JSON Schema verwenden. Der Vorteil wäre, dass man bei Änderungen am Datenmodell nur das JSON Schema anpassen muss und den Rest automatisch neu generieren lassen kann. Es ist vor allem eine Arbeitsersparnis, inhaltlich wird sich dadurch nichts an der Spezifikation ändern.
Allerdings kann man mit JSON Schema nicht die Beziehung zwischen zwei OParl Objekten abbilden. Wir können JSON Schema aber mit den folgenden drei Eigenschaften erweitern (eigene Erweiterungen sind in JSON Schema erlaubt):
Hier ein JSON Schema Beispiel für AgendaItem: die "meeting" Eigenschaft referenziert ein Meeting Objekt. Im Meeting Objekt gibt es die die Eigenschaft "agendaItem" die auf AgendaItems zurück referenziert.
Das Schema will ich in diesem Repo speichern, aber nochmal zusätzlich im Repo "schema" bereitstellen, das ausschließlich das Schema beinhalten soll und so besser in andere Projekte eingebunden werden kann. Mit Hilfe von git-subtree kann man das "schema" Repo komfortabel mit dem Schema in diesem Repo synchronisieren. Aktuell haben wir schon ein "schema" Repo, das aktuell JSON-LD-Kontexte enthält, daher will ich dieses Repo in "json-ld-context" umbenennen.
The text was updated successfully, but these errors were encountered: