Gesamtausgabe Skriptum 3 (2013), Heft 2
Gesamtausgabe Skriptum 3 (2013), Heft 2
Gesamtausgabe Skriptum 3 (2013), Heft 2
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
1 require_once('LibRDF/LibRDF.php');<br />
2 $store = new LibRDF_Storage($world, "mysql", $storageName = "db1",<br />
$options =<br />
"new='yes',host='127.0.0.1',database='redland',user='redland','password='r<br />
edland'");<br />
3 $model = new LibRDF_Model($store);<br />
Danach werden ein Store (welcher alle Models beinhaltet) und ein Model instanziiert (Zeile 2 und<br />
3). Wenn man in Zeile 2 new LibRDF_Storage() keine Argumente mitgibt, wird ein sogenannter<br />
In-Memory-Store im Arbeitsspeicher angelegt. Dieser ist allerdings nicht persistent. Deshalb wurde<br />
an dieser Stelle auf eine MySQL Datenbank zurückgegriffen.<br />
4 $statements = "@prefix hild:<br />
.<br />
@prefix pred: .<br />
@prefix spat: .<br />
@prefix anno: .<br />
spat:featA38 pred:locates hild:DI58-0012 .<br />
anno:annoZ42 pred:belongsto hild:DI58-0012 .";<br />
In Zeile 4 definieren wir einen String welcher einige Präfixdefinitionen und zwei Tripel enthält.<br />
5 $model->loadStatementsFromString(new LibRDF_Parser('turtle'),<br />
$statements);<br />
6 //load more statements in RDF/XML Format from local uri<br />
7 $model->loadStatementsFromURI( new<br />
LibRDF_Parser('rdfxml'),'http://localhost/bachelorarbeit/beispieltripel/RD<br />
F-XML-Inschrift_klassifizieren.xml');<br />
In Zeile 5 wird der String aus Zeile 4 dem Model hinzufügt. Wichtig hierbei ist, dass das RDF-<br />
Format für den Parser explizit angegebenen werden muss. In Zeile 7 wird ein RDF/XML File von<br />
einer (lokalen) URI geladen. Der Inhalt dieser Datei findet sich im Anhang 2. Hierbei ist es wieder<br />
wichtig, das entsprechende Format anzugeben. Nachdem wir nun Testdaten in dem Model haben,<br />
können Abfragen darauf gestellt werden. Wir benutzen wie auch in den anderen Beispielen eine<br />
SPARQL-Abfrage. Im vorliegenden Fall sollen alle vorhandenen Tripel abgefragt werden. Der<br />
Abfragestring dazu wird in Zeile 8 definiert, der Query in Zeile 9 ausgeführt.<br />
8 $query = new LibRDF_Query("SELECT * WHERE {?subject ?predicate ?object}",<br />
NULL, 'sparql');<br />
9 $results = $query->execute($model);<br />
In $results steht das Ergebnis der Abfrage zur weiteren Verarbeitung zur Verfügung. Die<br />
Variablennamen, die wir im SPARQL-Query benutzt haben, stehen als Arrayschlüssel in den<br />
60