Post on 05-Apr-2015
SEP
Halgurt Mustafa Ali
Can Önder
Marius Morawski
Matthias Seidl
Themen:
Integration von RDQL und OWQL innerhalb des Apache Cocoon Frameworks
Semantische Repräsentation der universitären Organisationsstruktur und deren automatische Präsentation im WWW
Einführung – Apache Cocoon
XML-basiertes Publishing Framework Intelligente Verwaltung und Repräsentation von Daten Trennung von Logik, Inhalt und Darstellung Aufbereitung und Verarbeitung von XML-Dokumenten Verarbeitung der Anfragen in Pipelines
Einführung – RDQL und OWLQL
Semantic Web (SW): maschinenverständliche Darstellung von Daten und Zusammenhängen im Web
Beispiel für Technologien im SW: OWL, RDF, DAML+OIL Wir benutzen OWL (Web Ontology Language) und RDF (Resource
Description Framework) zur Beschreibung von Ontologien im Web
Kurzer Überblick: RDF und OWL
RDF: Beschreibung der Klassen einer Anwendungsdomäne und deren Properties Anfragesprache: RDQL
OWL: Erweiterung von RDF um Einschränkungen (z.B. Kardinalität), Mengenoperationen auf Instanzen und spezialisierte Properties (z.B. Transitivität) Anfragesprache: OWLQL
RDQL und OWLQL leisten für Wissensbanken das selbe wie SQL für relationale Datenbanken
Problemstellung
Anfragen auf Ontologien in Cocoon einbinden Lösung: Integration einer bestehenden Query Engine in einen
Transformer für Cocoon Für RDQL: Jena Für OWLQL: owlqlJTP
Ableiten von AbstractTransformer (Adapter für die Query Engines)
UML Klassendiagramm
Arbeitsweise eines Cocoon Transformers
Der Transformer bekommt als Eingabe einen Strom von SAX-Events von einer übergeordneten Komponente. Diese Events können beispielsweise von einem Generator, Transformer oder einer anderen Pipeline-Komponente kommen
Der Transformer implementiert die Methoden: startElement() – ein Tag wird geöffnet charachters() – den Inhalt eines Tags auslesen endElement() – ein Tag wird geschlossen
Diese Methoden verarbeiten die Eingabe-Events und schreiben sie in den Strom
Beispiel-Query in KIF-Syntax
Premise:
(<=(isPlayer ?player)( |http://www.w3.org/1999/02/22-rdf-syntax-ns#|::|type| ?player |
http://a.com/ontology#|::|Player|))(<=(hasGoals ?Player ?goals)
(and(isPlayer ?player)(|http://a.com/ontology#|::|hasGoals| ?player ?goals)))
queryPattern:
(hasGoals |http://a.com/ontology#|::|ballack| ?goals)
XML-Syntax
<owl-ql:premise> <owl-ql:KIF>
(<=(isSpieler ?spieler)( |http://www.w3.org/1999/02/22-rdf-syntax-ns#|::|type| ?spieler |http://a.com/ontology#|::|Spieler|))
(<=(hatTore ?spieler ?tore)(and(isSpieler ?spieler)(|http://a.com/ontology#|::|hatTore| ?spieler ?tore)))
</owl-ql:KIF> </owl-ql:premise>
<owl-ql:queryPattern>
<owl-ql:KIF>(hatTore |http://a.com/ontology#|::|ballack| ?tore)</owl-ql:KIF>
</owl-ql:queryPattern>
Ergebnis:
<owl-ql:answer> <owl-ql:binding-set>
<var:goals rdf:resource=„12" /> </owl-ql:binding-set> <owl-ql:answerPatternInstance>
(hasGoals |http://a.com/ontology#|::|ballack| 12) </owl-ql:answerPatternInstance> </owl-ql:answer>
Anwendung
Ausblick: dynamische Webseitengenerierung aus einer Ontologie
Einordnung in Projekt sHOME
Bereitstellung von KontextwissenOrganistationsstrukturMitarbeiter
Darstellung im WebDarstellung dieses Wissens in
menschenlesbarer Form
Kontextwissen als Ontologie
Objekte (Person, Raum, Vorlesung, …)Eigenschaften (Name, Ort, …)Relationen (ist in Gruppe, ist Autor von, …)
Verknüpfung mit anderen OntologienTermine (Time)Büros, Vorlesungsräume, … (Space,
Location)
Organsiationsontologie
Zentrale Klassen
Person+hasEm ailAddress+isHeadOf+isEm ployedAt+isInGroupOfPersons+hasFaxNum ber+hasPhoneNum ber+hasGender+isStudyingAt+hasFam ilyNam e+isParticipatingIn+hasAppointm ent+hasScientificTitle+hasBirthday+hasFirstNam e
GroupOfPersons+hasPersonAsM em ber+isHeadedBy
Organisation+hasSubOrganisation+isSubOrgansationOf+isNam ed+hasEm ployee
isHeadOf
hasEmployee
isSubOrganisationOf
isInGroupOfPersonsPerson+hasEm ailAddress+isHeadOf+isEm ployedAt+isInGroupOfPersons+hasFaxNum ber+hasPhoneNum ber+hasGender+isStudyingAt+hasFam ilyNam e+isParticipatingIn+hasAppointm ent+hasScientificTitle+hasBirthday+hasFirstNam e
GroupOfPersons+hasPersonAsM em ber+isHeadedBy
Organisation+hasSubOrganisation+isSubOrgansationOf+isNam ed+hasEm ployee
isHeadOf
hasEmployee
isSubOrganisationOf
isInGroupOfPersons
Beziehung zu anderen Ontologien Weiteres Kontextwissen erforderlich
Räumlicher Kontext Büro
Zeitlicher Kontext Termine Vorlesungen ...
Darstellung im Web
Idee: wie LehrstuhlseiteOntologie enthält die nötigen Informationen
DurchführungAnfrage an OntologieErgebnis in HTML-Seite transformieren
Ontologie Webseite
Verwendete Technologien
Informationen aus Ontologie holen:Anfrage per OWL-QL (KIF)
Darstellung im BrowserErgebnis mit XSLT transformierenHTML mit CSS formatieren
Steuerung des AblaufsCocoon (per „Sitemap“)
Die Sitemap (1)
Steuert AblaufHTTP-Anfrage wird einer Pipeline zugewiesenPipeline steuert Ablauf der einzelnen Schritte
Generator: Lädt Quelldokument XML-Datei, XSP, …
Transformator(-en): Bauen XML-Dokument um XSLT, Query-Engines (hier OWL-QL), …
Serializer: geben Ergebnis zurück (bei uns HTML) auch möglich: XSL-FO als PDF, SVG als PNG, …
Sitemap: Beispiel-Pipeline
Trennung von Inhalt und FormQueries je nach
Seite verschiedenUmwandlung in
gemeinsame Zwischenform
HTML-Umformung für alle gleich
XSLT-Stylesheet
Transformiert XML-Dokumenten in andere XML-Dokumente, z.B.:Query-Ergebnisse ZwischenformZwischenform XHTML
Stylesheets bestehen aus TemplatesFür die Elemente des Quelldokumtents wird
das erste passende Template aufgerufenDieses Template erzeugt einen Teil des
Zieldokuments
Vielen Dank für die Aufmerksamkeit• Jetzt Präsentation
der Website