Knora v2

Knora v2 #

Neuerungen:

  • JSON-LD als Austauschformat, später auch XML geplant (Format via Content Negotiation)
  • Elemente von schema.org verwendet
  • schema:Thing = knora:Ressource
  • Möglichst generische (d.h. auch möglichst wenige) Anfrage- und Antwortformate => Verschiedene Routen verwenden dasselbe Antwortformat: eine Liste von Ressourcen mit ihren Werten
  • Verschiedene Routen liefern mehr oder weniger Daten zurück, das Format bleibt aber dasselbe
  • Externes und internes Format stärker entkoppeln
  • Externes Format in zwei Varianten: simple und complex

KnarQL:

  • Subset von SPARQL 1.1 mit Knora-spezifischen Typannotationen
  • KnarQL wird via URL-Parameter an Knora-Route gesandt, Antwort in JSON-LD anstelle von Triples (hybrides System zwischen API und SPARQL-Endpoint)
  • KnarQL besteht immer aus einer CONSTRUCT-Query
  • Knora übersetzt KnarQL für Backend in SPARQL (via RDF4J (ex-Sesame))
  • Ermöglicht komplexe Suchen über mehrere Ebenen von Ressourcen

Nächste Schritte in Entwicklung:

  • Schreibender Zugriff auf Daten (im Moment zur lesbar)
  • Ontologien über die API erzeugen und ändern
  • Unterstützung der IIIF Presentation-API

Fragerunde:

  • Es wäre grundsätzlich möglich, eine direkte Route zum Triplestore zu definieren und damit SPARQL-Abfragen zuzulassen
  • Zusätzlicher Key-Value-Store für weiteren State
  • Wie können angepasste Präsentationsoberflächen für einzelne Projekte ins DaSCH überführt werden. Hintergrund: Custom-GUIs (bspw. Präsentationsoberfläche für Editionen) können im DaSCH nicht unterhalten werden.
  • Visionen Knora:
    • Vision LDP (Linked Data Platform) für Knora: REST-API, doch offen für beliebige Ontologien
    • Knora Simplified Data Model (mit API als Transmissionsriemen)?
    • Andere Möglichkeiten?