1. Einführung in Topic Maps
Topic Maps Query Language
Session 5
Sven Krosse M. Sc.
Topic Maps Lab an der Universität Leipzig
krosse@informatik.uni-leipzig.de
topicmapslab.de
5. Einführung in Topic Maps
Sortierung
● Sortierung von Tupeln in einer Sequenz
● Projektion und Tuple-Sequenzen
● Schlüsselwörter ASC und DESC
● Standard ASC
● Vorkommen von mindestens einem Schlüsselwort
topicmapslab.de
5
6. Einführung in Topic Maps
Sortierung - Routine
● fehlendes Schlüsselwort wird durch ASC ersetzt
● Sortierung des Tupels anhand des aktuellen Indexes
● Sortierung immer von links nach rechts
● nächste Iteration
● Sortierung von Kollision durch gleiche Werte in letzter
Iteration
topicmapslab.de
6
18. Einführung in Topic Maps
Environment
● Umgebungsdefinition zu Beginn eines Query
● vor allen drei Typen unterstützt
● Definition von
● Ontologie
● Prefixen
topicmapslab.de
18
19. Einführung in Topic Maps
Prefix-Definition
● gekennzeichnet durch Schlüsselwort %prefix
● Tripple-Darstellung
%prefix identifier QIRI
● Verwendung als relative IRI
topicmapslab.de
19
20. Einführung in Topic Maps
Prefix-Definition
%prefix o http://psi.ontopia.net/
%prefix tml http://www.topicmapslab.de/
// o:Composer ++ // tml:person
topicmapslab.de
20
21. Einführung in Topic Maps
Pragma-Definition
● gekennzeichnet durch Schlüsselwort %pragma
● Tripple-Darstellung
%pragma identifier QIRI
● Definition von Ontologie
● Transitivität
topicmapslab.de
21
22. Einführung in Topic Maps
Pragma-Definition - Transitivität
● Draft definiert nur Transitivität als Pragma
● Signatur
● identifier: taxonometry
● QIRI: tm:intransitive or tm:transitive
topicmapslab.de
22
25. Einführung in Topic Maps
Select-Style
● syntaktische Ähnlichkeit zu SQL
● besteht aus einer Menge von Sub-Expressions
● erlaubt Bindung von Variablen
● einziger Typ mit Schlüsselwort für Duplikat – Behandlung und
Selektion
topicmapslab.de
25
26. Einführung in Topic Maps
Select-Style
select < value-expression >
[ from value-expression ]
[ where boolean-expression ]
[ order by < value-expression > ]
[ unique ]
[ offset value-expression ]
[ limit value-expression ]
topicmapslab.de
26
28. Einführung in Topic Maps
Select-Klausel
● Besteht aus nicht leerer Menge von Pfad-Ausdrücken zur
Auswahl der Ergebniswerte
● Verwendung von gebundenen Variablen möglich
● einziger nicht optionaler Teil der Select-Expression
topicmapslab.de
28
29. Einführung in Topic Maps
Select-Klausel
%prefix wiki http://en.wikipedia.org/wiki/
SELECT wiki:Puccini
%prefix wiki http://en.wikipedia.org/wiki/
SELECT wiki:Puccini / tm:name , wiki:Puccini >> indicators
topicmapslab.de
29
31. Einführung in Topic Maps
From-Klausel
● Definition des Kontextes für das Variablen Binding
● optionaler Teil der Select-Expression
topicmapslab.de
31
32. Einführung in Topic Maps
Sprachbestandteile
Where – Clause und Variablen
topicmapslab.de
33. Einführung in Topic Maps
Where-Klausel
● Einschränkung möglicher Bindings einer Variable
● Definition von Variablen, welche in der Select Clause verwendet
werden können
● Funktional ähnlich zu Filtern
topicmapslab.de
33
34. Einführung in Topic Maps
Variablen
● Variablen:
● Verwendung als Platzhalter innerhalb einer Query
● Bindung an Werte erfolgt zur Laufzeit durch Bedingungen
● Muster
– '$' [w#]+'*/
topicmapslab.de
34
35. Einführung in Topic Maps
vordefinierte Variablen
● reservierte System-Variablen
@_ aktuelles Tuple
$# aktueller Index
%% Environment Topic Map
%_ angefragte Topic Map
$[0-9]+ indiziertes Element eines Tupels
$_ write-only Variable
topicmapslab.de
35
36. Einführung in Topic Maps
Where-Klausel
%prefix o http://psi.ontopia.net/music/
SELECT $composer
WHERE $composer ISA o:composer
%prefix o http://psi.ontopia.net/music/
%prefix l http://psi.ontopia.net/literature/
SELECT $composer, $opera
WHERE $composer ISA o:composer AND o:composed-by ( l:work :
$opera, o:composer : $composer )
topicmapslab.de
36
37. Einführung in Topic Maps
Sprachbestandteile
Order By – Clause
topicmapslab.de
38. Einführung in Topic Maps
Order By-Klausel
● Sortierung der Ergebnis Menge
● Definition über Pfadausdrücke
● Verarbeitung erfolgt abhängig vom vorherigen
Sortierungsergebnis
topicmapslab.de
38
39. Einführung in Topic Maps
Order By-Klausel
%prefix o http://psi.ontopia.net/music/
%prefix l http://psi.ontopia.net/literature/
SELECT $composer, $opera
WHERE $composer ISA o:composer AND o:composed-by ( l:work :
$opera, o:composer : $composer )
ORDER BY $composer / tm:name [0] , $opera / tm:name [0] DESC
topicmapslab.de
39
41. Einführung in Topic Maps
Limit- und Offset-Klausel
● Einschränkung eines Fensters zur Auswahl der Ergebnismenge
● Offset definiert erstes Element der Auswahl
● Limit definiert maximale Anzahl von Elementen
● Funktional ähnlich zu Index-Range-Filter
topicmapslab.de
41
42. Einführung in Topic Maps
Order By-Klausel
%prefix o http://psi.ontopia.net/music/
%prefix l http://psi.ontopia.net/literature/
SELECT $composer, $opera
WHERE $composer ISA o:composer AND o:composed-by ( l:work :
$opera, o:composer : $composer )
ORDER BY $composer / tm:name [0] , $opera / tm:name [0] DESC
OFFSET 5
LIMIT 10
topicmapslab.de
42