Entwurfsbeschreibung - Universität Leipzig
Entwurfsbeschreibung - Universität Leipzig
Entwurfsbeschreibung - Universität Leipzig
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