implementierung eines rdf stores michael schmidt, 29.04.2008

16
Implementierung eines RDF Stores Michael Schmidt, 29.04.2008

Upload: hugubert-hellstern

Post on 06-Apr-2015

105 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Implementierung eines RDF Stores Michael Schmidt, 29.04.2008

Implementierung eines RDF Stores

Michael Schmidt, 29.04.2008

Page 2: Implementierung eines RDF Stores Michael Schmidt, 29.04.2008

Teil I: RDF Speicherung(siehe Handout)

Page 3: Implementierung eines RDF Stores Michael Schmidt, 29.04.2008

Teil II: RDF Extraktion

Page 4: Implementierung eines RDF Stores Michael Schmidt, 29.04.2008

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“)

Page 5: Implementierung eines RDF Stores Michael Schmidt, 29.04.2008

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

Page 6: Implementierung eines RDF Stores Michael Schmidt, 29.04.2008

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

Page 7: Implementierung eines RDF Stores Michael Schmidt, 29.04.2008

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)

Page 8: Implementierung eines RDF Stores Michael Schmidt, 29.04.2008

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

Page 9: Implementierung eines RDF Stores Michael Schmidt, 29.04.2008

Teil III: Spezifikation

Page 10: Implementierung eines RDF Stores Michael Schmidt, 29.04.2008

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)

Page 11: Implementierung eines RDF Stores Michael Schmidt, 29.04.2008

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 !

Page 12: Implementierung eines RDF Stores Michael Schmidt, 29.04.2008

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 !

Page 13: Implementierung eines RDF Stores Michael Schmidt, 29.04.2008

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 !

Page 14: Implementierung eines RDF Stores Michael Schmidt, 29.04.2008

UML Klassendiagramm

Page 15: Implementierung eines RDF Stores Michael Schmidt, 29.04.2008

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 !

Page 16: Implementierung eines RDF Stores Michael Schmidt, 29.04.2008

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