wiki:PraktikumSdt2005

Problem

  • JSPWiki soll um Möglichkeiten erweitert werden, zu Desktop-Ressourcen (eingebunden durch Gnowsis) zu verlinken
  • ginge prinzipiell durch Copy&Paste der URIs
  • es soll aber auch die Möglichkeit geben, verschiedene Ressourcen in Beziehung zu setzen (Hans Wurst arbeitet in Projekt Blight)
  • also: RDF-Statements im Wiki niederschreiben
  • das ganze wird ein persönliches Tagebuch/Wiki: man kann Notizen einfach bloggen, wenn sie als Tagebucheinträge kommen oder als Wikiseiten eingeben um Dinge/Ideen zu erfassen.

Ideen

Eingabe von Semantischem Text ins Wiki

  • (Hans Wurst) (arbeitet) in Projekt (Blight). Pro Satz ein Statement
  • Standard-Syntax "(Hans Wurst)" ist wie bisher nur ein normaler Link zur entsprechenden Wiki-Seite
  • Es gibt noch komplexere Möglichkeiten, solche Sätze zu bauen. Wir haben auch schon eine genaue Beschreibung einer solchen Syntax für Semantische Wikis. Mehr dazu siehe Leos DA, Seite 75 (Seite 89 im PDF).
  • Komplexere Möglichkeit kurz beschrieben: Man entfernt den ganzen Wortmüll zwischen den Schlagwörtern und den Satzzeichen. Dann interpretiert man die Satzzeichen als N3 und die Schlagwörter als Ressourcen. Das ist in der DA beschrieben, aber mit einem N3-ähnlichen Parser wohl noch einfacher zu realisieren. Mögliche Sätze sind:
  • In Sachen (SemDeskPraktikum2005) haben sich Leute angemeldet. Die (nehmenTeil) sind (FlorianMittag), (RalfBiedert).
  • => (SemDeskPraktikum2005) (nehmenTeil) (FlorianMittag). (SemDeskPraktikum2005) (nehmenTeil) (RalfBiedert).
  • Die Verwendung von "." ";" "," ist wie bei N3 definiert.

Klare Nachteile: Unnatürliche Formulierung. Ziel in Wikis ist es eigentlich nicht, RDF "minimal anders" (= N3) hinzuschreiben, aber das wäre erstmal die schnelle und einfache Lösung.

Semantische Schlüsselwörter

  • sind Wörter, die ich mittels Wiki-Syntax eingebe, für die aber keine Wiki-Page existiert
  • ...die aber trotzdem was bedeuten. Wenn ich etwa eingebe "(FlorianMittag) (arbeitet) beim (DFKI)" und das Wiki-Wort "FlorianMittag" existiert, ist es einfach, dazu das Wiki zu machen. Angenommen, arbeitet ist noch kein Wiki-Wort, soll automatisch herausgefunden werden, welche Ressourcen aus gnowsis da vielleicht passen könnten, genauso bei DFKI. Der Benutzer soll nicht unbedingt für jedes annotierte Wort eine Wiki-Seite machen müssen.
  • Von Gnowsis soll eine Funktion listGroundingResourcesOfLabel(String) bereitgestellt werden, die Labels etc. auf Ähnlichkeit mit Schlüsselwort prüft und ggf. assoziierte !URIs zurückliefert (also listGroundingResourcesOfLabel("arbeitet") == http://orgrep.com/vocabulary/worksIn oder ähnlich). Diese Methode ist bereits im Service org.gnowsis.ontmanager.OntQuery angedacht und muss noch ausprogrammiert werden. Anfangs reicht da ein harter Vergleich der Labels. Zugriff auf gnowsis via HTTP/REST.
  • Beim Save wird überprüft, ob Seite mit Schlüsselwort schon existiert; falls nicht UND Gnowsis-listGroundingResourcesOfLabel() liefert !URIs: Anbieten, den Link zu einem URI-Link zu machen "(arbeitet !! http://orgrep.com/vocabulary/worksIn)" - Syntax ggf. überdenken
  • Ergebnis dieser Verwendung von Schlagwörtern: Benutzer müssen nicht für jede Idee, die sie aus dem Tagebuch heraus referenzieren wollen, extra eine Wiki-Seite anlegen, sondern können so eine Art "I am feeling lucky"-Suche in gnowsis verwenden.

Speicherung der RDF-Daten

  • Das Ergebnis des Eingebens und Parsens sind, zusätzlich zum normalen Wiki, bidirektionale Links, die mittels RDF-Tripel ausgedrückt werden. Das heisst, wenn ich im Wiki eine Seite ansehe, sehe ich auch Referenzen auf andere Seiten inkl. der Art der Verbindung ("Typed Links"): (Hans Wurst) (arbeitet) in Projekt (Blight).
  • Diese (geparsten) Statements werden in einem RDF-Repository gespeichert. Updates der Tripel laufen so, dass jede Seite ihre Tripel in einem Named Graph erzeugt (siehe Sesame-Dokus) und entsprechend aktualisiert.

Erweiterungen

  • Autocompletion der Schlüsselwörter (per Ajax) => Eingabe wird wesentlich komfortabler. Das heisst, wenn ein Benutzer zu schreiben beginnt und mit einem Schlüsselwort anfängt, kann das Wiki (+die gnowsis) mögliche Schlüsselwörter vorschlagen.
  • Wiki-Seiten erlauben, die speziell getaggt sind und Verbindungen zu Gnowsis-Ressourcen herstellen: Seite HansWurst, Text "gnowsisURI: http://pc-xxxx/~wurst/ \n onMouseOverDescription: Hans Wurst, Raum 4711 \n linkHere: false" (d.h. heißt z.B., dass Vorkommen von HansWurst als Vorkommen der entsprechenden URI zu interpretieren sind, ein Mouseover angezeigt werden soll, aber kein <a href>-Link daraus gemacht werden soll (= kein Wiki-Link)

Noch mehr Erweiterungen

  • Literale.
  • Verweise auf Mails, Kalendereinträge etc. sind schwer, da sie keinen guten Label haben. Angepasstes Interface bauen: "gnowsisMail" tippen, per Mini-Frontend/Ajax die gesuchte Mail auswählen (siehe GnoRetrieve, ein Google-ähnlicher Suchservice für gnowsis, der HTML oder RDF als Ausgabe liefert). Ist aber vermutlich besser über den umgekehrten Weg (Gnowsis => Wiki zu machen).
  • Syntax zum Formulieren der Statements überarbeiten. Pro Satz ein Statement ist der Anfang, mittels der Gnowsis Syntax sind ja schon mehrere Tripel möglich (ähnlich N3). Das ist aber schlecht, da man so den Nutzern unnatürliches RDF-Sprech aufzwingt. RDF-Ressourcen während des Tippens "raten" und (per Ajax) in Sidebar anzeigen, Benutzer kann sich dann die Statements daraus zusammenklicken. Erzeugte Statements z.B. in "unsichtbarem" Markup unten anhängen und per Referenz im Markup drauf verweisen.

Coding/Dokumentation

Referenzen

  • Leos DA - hier wird das Wiki/Blog auch schon beschrieben
Last modified 17 years ago Last modified on 12/07/05 15:25:00