implementierung eines rdf stores michael schmidt, 29.04.2008
TRANSCRIPT
Implementierung eines RDF Stores
Michael Schmidt, 29.04.2008
Teil I: RDF Speicherung(siehe Handout)
Teil II: RDF Extraktion
Semantik von Basic Graph Patterns
Basic Graph Pattern (t1, t2, t3), wobei
t1 entweder URI oder Variable t2 entweder URI oder Variable t3 entweder URI, Literal oder Variable
Beispiele für Graph Patterns (?person, rdf:type, foaf:Person) (lx:Person1, ?y, ?z) (?x,?y,?z) (lx:Person1, foaf:name, „Linus Torvalds“)
Semantik von Basic Graph Patterns
Auswertung von Graph Patterns Liefert Menge aller möglichen Mappings von Variablen im
Pattern zu Elementen im Eingabegraphen
(?person,rdf:type,foaf:Person)
{{?person -> ms:Person1}, {?person -> lx:Person2}}
Anfragepattern
Ergebnis
Kombination von Basic Graph Patterns
Kombination von Basic Graph Patterns mittels verschiedener Operatoren AND UNION FILTER OPTIONAL
Formale Semantik nächste Woche, bis dahin lesen und verstehen (bis incl. Kap. 2.2):
Jorge Perez, Marcelo Arenas, and Claudio Gutierrez
Semantics and Complexity of SPARQL
Anforderungen Implementierung Einlesen von Graph Patterns aus Datei
GraphPattern ::= SimpleGraphPattern | ComposedGraphPattern |
FilterGraphPattern
SimpleGraphPattern ::= „(„ Subject „,“ Predicate „,“ Object „)“
ComposedGraphPattern ::= SimpleGraphPattern Operator SimpleGraphPattern
FilterGraphPattern ::= SimpleGraphPattern „FILTER“ FilterCondition
Subject ::= URI | Variable
Predicate ::= URI | Variable
Object ::= URI | Literal | Variable
FilterCondition ::= FilterSubexp FilterOperator FilterSubexp
FilterSubExp ::= URI | Literal | Variable
Operator ::= „AND“ | „UNION“ | „OPTIONAL“
FilterOperator ::= „<“ | „<=“ | „=“ | „>“ | „>=“
, wobei URI eine URI ist (möglicherweise in Prefix-Notation), Literal ein String in Anführungszeichen, und Variable eine Variable der Form ?[a-zA-Z]* (z.B. ?name, ?x, ?abcD)
Auswerten von Basic Graph Patterns p Join zwischen Patterns: p1 AND p2
Union von Patterns: p1 UNION p2
[Optionale Selektion: p1 OPTIONAL p2]
Auswerten mit konstantem Speicherverbrauch
Ausnutzen von Indizes
Anforderungen Implementierung
Teil III: Spezifikation
Spezifikation
Erforderliche Materialien (vollständig bis in zwei Wochen) Pflichtenheft Übersichtsgrafik Systemarchitektur Use Cases UML Klassendiagramm Interaktionsdiagramme Milestones (bis wann sind welche
Module fertig) + Aufteilung (Parallelisierung)
Pflichtenheft
Beschreibt Anforderungen durch den Besteller in der Interpretation des Herstellers für sein Produkt Vertraglich bindend Was wird umgesetzt? Aufbau
Zielsetzung: Musskriterien, Sollkriterien, Kannkriterien Produkteinsatz: Anwendungsbereiche, Zielgruppen,
Betriebsbedingungen Produktübersicht Produktfunktionen (detaillierte Auflistung aller Funktionen) Produktleistungen Bedienung (Spezifikation der Kommandozeilenparameter) Technische Produktumgebung (z.B. Betriebssystem, Hardware
etc.) …
Viele Materialien im WWW -> Recherche !
Use Cases
Spezifikation von konkreten Anwendungsszenarien mit gewünschtem Resultat Beispiel:
Benutzer lädt die Datei „xyz.n3“ (Datei angeben) mit dem Befehl „loadFile –dbname xyz xyz.n3“
Nach dem Laden ist folgendes Szenario gegeben: … Benutzer extrahiert Daten für das Graph Pattern „pattern.bgp“
(Pattern angeben) Ausgabe: …
Sollten möglichst viele Komponenten des Systems abdecken
Viele Materialien im WWW -> Recherche !
UML Klassendiagramm
Beschreibt das Design der Software Auflistung /aller/ Klassen und deren
Zusammenhang (Vererbung, Nutzung, etc.) Auflistung der wichtigsten Methoden inclusive
Eingabe- und Rückgabeparameter Sehr viel Arbeit!
Viele Materialien im WWW -> Recherche !
UML Klassendiagramm
Interaktionsdiagramm
Beschreibt Interaktion zwischen Programmkomponenten (Klassen und Methoden)
Typischerweise anhand von Use Cases erzeugt
Sollte möglichst große und wichtige Teile des Programms abdecken
Viele Materialien im WWW -> Recherche !
Links
Dia UML Modeling Tool:http://dia-installer.de/download.html (auch für Linux verfügbar)
Vorlesung UML-Modellierung (Universität des Saarlandes)http://graphics.cs.uni-sb.de/Courses/ss02/Sopra/folien/se-2.pdf
Vorlesung Testen (Universität des Saarlandes) http://graphics.cs.uni-sb.de/Courses/ss02/Sopra/folien/testen.pdf