21.01.2013 Aufrufe

Entwurfsbeschreibung - Universität Leipzig

Entwurfsbeschreibung - Universität Leipzig

Entwurfsbeschreibung - Universität Leipzig

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Falk Stehmann Gruppe: swp6-11 9. Mai 2011<br />

1. Allgemeines<br />

<strong>Entwurfsbeschreibung</strong><br />

Wie der Name selbst andeutet, Ziel des Projektes RDF2WP ist es, ein Plugin zu entwickeln,<br />

mit welchem sich semantische Daten (RDF) in ein WordPress-Blogeintrag einbetten lassen.<br />

Dem Benutzer soll darüber hinaus die Möglichkeit gegeben werden, Daten zu editieren und<br />

abzuspeichern.<br />

Im Rahmen der vorliegenden Software-Studie sollte sich unser Team mit einer kleinen prak-<br />

tischen Anwendung befassen. Sie sollte uns die erste Einsicht in das zu bearbeitende große<br />

Projekt geben. Die Aufgabe ist es, ein PHP-Skript zu entwickeln, das alle RDF-Daten von<br />

10 Professoren aus dem Professorenkatalog der <strong>Universität</strong> <strong>Leipzig</strong> via LinkedData herun-<br />

terlädt. Die ausgelesenen Daten sollen demnächst nach HTML Tabellen konvertiert und zu<br />

10 WordPress-Blogeinträgen hinzugefügt werden.<br />

Der <strong>Leipzig</strong>er Professorenkatalog ist eine weltweit verfügbare Datenbank, in der biographische<br />

Daten von einem Großteil von Professoren enthalten sind, die an der <strong>Universität</strong> <strong>Leipzig</strong> tätig<br />

waren. Die Inhalte des Katalogs werden nach dem Standard des Semantic Web in RDF kodiert<br />

und sind als LinkedData in diesem Format und über eine Anfrage-Schnittstelle abrufbar.<br />

2. Produktübersicht<br />

Beim Aktivieren des Plugins prof2wp werden automatisch für jeden der 10 Professoren<br />

(Czermak 780, Weiss 1071, Nissen 960, Lueder 1278, Stieda 157, Struempell 160, Gertler 615,<br />

KargGasterstaedt 672, Jacobi 69, Litt 96) ein Blogeintrag mit all seinen RDF-Daten erstellt.<br />

Das Plugin rdf2html stellt die RDF-Daten in den durch das Plugin prof2wp erzeugten Blo-<br />

geinträgen als eine HTML-Tabelle dar. Vor dem Ausgeben der Seite wird der Inhalt zwischen<br />

den Tags [prof]...[/prof] ausgewertet, dabei werden das Prädikat und das Objekt jedes<br />

Triples einer Tabellenzeile zugeordnet.<br />

1


Falk Stehmann Gruppe: swp6-11 9. Mai 2011<br />

Beim Bearbeiten der RDF-Daten soll man sich an die folgende Semantik halten:<br />

[prof]<br />

[/prof]<br />

[rdf triple]<br />

[rdf data]...[/rdf data] //Subjekt<br />

[rdf data]...[/rdf data] //Prädikat<br />

[rdf data]...[/rdf data] //Objekt<br />

[rdf data]...[/rdf data] //Typ des Subjekts ( ” uri“, ” bnode“ oder ” var“)<br />

[rdf data]...[/rdf data] //Typ des Objekts ( ” uri“, ” bnode“, ” literal“ oder ” var“)<br />

[rdf data]...[/rdf data] //Link zum Identifikator des Datentyps des Objekts<br />

[rdf data]...[/rdf data] //Sprache des Objekts (z.B. ” en-us“)<br />

[/rdf triple]<br />

[rdf triple]...[/rdf triple] dürfen innerhalb von [prof]...[/prof] beliebig oft vor-<br />

kommen. Die ersten drei [rdf data]...[/rdf data] für Subjekt, Prädikat und Objekt sind<br />

wichtig, die nachfolgenden können ausgelassen werden.<br />

2


Falk Stehmann Gruppe: swp6-11 9. Mai 2011<br />

3. Grundsätzliche Struktur- und Entwurfsprinzipien für das Ge-<br />

samtsystem<br />

Der Prototyp besteht grundsätzlich aus zwei Plugins. Eines realisiert das Auslesen der RDF<br />

Daten aus der LinkedData Schnittstelle, das andere die Umwandlung der RDF Daten in eine<br />

HTML Tabelle. Die beiden Plugins können unabhängig voneinander verwendet werden. Zur<br />

Umsetzung des Prototyps ist der Einsatz folgender Komponenten notwendig.<br />

Zum einen das ARC 2 PHP Framework zur Bearbeitung von RDF Daten. ARC 2 stellt<br />

unter anderem Klassen für das Erstellen und den Zugriff (über SPARQL) auf RDF Triple<br />

Stores bereit. Des Weiteren werden diverse Parser für den Umgang mit semantischen Daten<br />

zur Verfügung gestellt. Für den Prototyp ist hier vorerst nur der Einsatz des RDF Parsers<br />

notwendig, welcher RDF Daten von der LinkedData Quelle des Professorenkatalogs ausliest.<br />

Zur Entwicklung eines Plugins in WordPress gibt es eine Vielzahl von Konzepten, die realisiert<br />

wurden. Der Prototyp verwendet dabei die zwei grundlegenden. Dies sind die Plugin API und<br />

die Shortcode API.<br />

Die Plugin API ist vor allem für das Action Handling durch Hooks, Actions und Filter ver-<br />

antwortlich. Hooks sind Event Handler, welche es erlauben bestimmte Funktionen des Plugins<br />

zu speziellen Zeitpunkten aufzurufen. Actions, welche im Prototyp Anwendung finden, sind<br />

Hooks, die zu spezifischen Ausführungspunkten oder Events des WordPress, ausgeführt wer-<br />

den. Filter dagegen sind Hooks, welche verschiedene Datentypen oder Texte modifizieren<br />

bevor diese in die Wordpress eigene Datenbank geschrieben werden.<br />

Bei der Shortcode API handelt es sich um Funktionen, welche das Definieren von Macro Co-<br />

des (Tags) in WordPress Posts ermöglichen. Dabei können den Tags verschiedene Attribute<br />

übergeben werden. Sie können schließend und selbstschließend definiert werden. Der einge-<br />

schlossene Code kann dann beispielsweise ausgelesen und vor der Ausgabe des eigentlichen<br />

Posts modifiziert werden, was der Prototyp zum Umwandeln von RDF Tripeln in HTML<br />

Code verwendet.<br />

4. Grundsätzliche Struktur- und Entwurfsprinzipien der einzel-<br />

nen Pakete<br />

Die Aufteilung in zwei Plugins ist durch die unterschiedliche Handhabung und den Einsatzbe-<br />

reich dieser zu erklären. Das Plugin ” Prof2Wordpress“ ist ausschließlich für das Importieren<br />

der RDF Daten verantwortlich und muss daher auch nur zum Import dieser Daten akti-<br />

viert werden. Das Plugin ” rdf2html“ wird ausschließlich für die Anzeige der RDF Daten der<br />

Posts verwendet, muss für diesen Zweck außerdem während der gesamten WordPress Nutzung<br />

aktiviert bleiben. Im Folgenden wird die genaue Funktionsweise durch das Beschreiben der<br />

einzelnen Funktionen der Plugins erklärt.<br />

3


Falk Stehmann Gruppe: swp6-11 9. Mai 2011<br />

4.1. ” Prof2Wordpress“<br />

function prof2wp createPost($content, $title)<br />

Diese Funktion erstellt einen neuen Blogeintrag mit dem übergebenen Inhalt $content und<br />

Titel $titel. Dazu wird intern die WordPress API Funktion wp insert post aufgerufen. Die<br />

Posts sind keiner Kategorie zugeordnet. Der Status ist ” published“, die Posts werden also im<br />

Blog ausgegeben.<br />

function prof2wp getProfURI()<br />

Diese Funktion gibt einen statisch definierten Array mit zehn URIs von Professoren.<br />

function prof2wp getProfRDFHandler()<br />

Diese Funktion wird aufgerufen, nachdem das Plugin Prof2WordPress aktiviert wurde. Zehn<br />

URI werden mit dem ARC2 RDF Parser ausgelesen und jeweils in einen Blockeintrag ge-<br />

speichert. Zu den RDF Daten werden die Tags [rdf triple] und [rdf data] hinzugefügt.<br />

Können die entsprechenden RDF Daten nicht gefunden werden, wird über die Funktion wp die<br />

eine Fehlermeldung ausgegeben. Sie enthält die Professoren zu denen keine Informationen<br />

erhältlich waren. Außerdem wird bei erfolgreichem Hinzufügen, eine entsprechende Meldung<br />

sichtbar.<br />

4.2. ” rdf2html“<br />

function rdf2html parseRDF($attributs, $content = null)<br />

Diese Funktion konvertiert RDF Daten zwischen den [prof] ... [/prof] Tag in eine html<br />

Tabelle. In einer Zeile sind Daten aus einem [rdf triple] ... [/rdf triple] Tag. Wobei<br />

nur der zweite und dritte [rdf data] ... [/rdf data] Eintrag in die Tabelle übernommen<br />

wird.<br />

4

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!