08.11.2014 Aufrufe

Gesamtausgabe Skriptum 3 (2013), Heft 2

Gesamtausgabe Skriptum 3 (2013), Heft 2

Gesamtausgabe Skriptum 3 (2013), Heft 2

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.

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!