• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
TMQL tutorial - part 5
 

TMQL tutorial - part 5

on

  • 814 views

 

Statistics

Views

Total Views
814
Views on SlideShare
748
Embed Views
66

Actions

Likes
0
Downloads
6
Comments
0

2 Embeds 66

http://www.topicmapslab.de 64
http://translate.googleusercontent.com 2

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-NoDerivs LicenseCC Attribution-NoDerivs License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    TMQL tutorial - part 5 TMQL tutorial - part 5 Presentation Transcript

    • 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
    • Einführung in Topic Maps Review – Session 4 Funktionen ● Zeichenketten-Funktionen ● numerische Funktionen ● Transformationsfunktionen topicmapslab.de
    • Einführung in Topic Maps Agenda 1. Sortierung 2. High-Level ● Environment ● SELECT Style topicmapslab.de
    • Einführung in Topic Maps Sprachbestandteile Sortierung topicmapslab.de
    • 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
    • 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
    • Einführung in Topic Maps Sortierung - Routine Query … ( . / tm:name[0] , . / tm:name[1] ) unsortiertes Ergebnis { [ „A“ , „AA“ ] ; [ „A“ , „BA“ ] ; [ „C“ , „AA“ ] ; [ „D“ , „AD“ ] } sortiertes Ergebnis? topicmapslab.de 7
    • Einführung in Topic Maps Sortierung - Routine Query … ( . / tm:name[0] , . / tm:name[1] ) unsortiertes Ergebnis { [ „C“ , „AA“ ] ; [ „A“ , „BA“ ] ; [ „C“ , „AB“ ] ; [ „D“ , „AD“ ] } keine Sortierung, da kein Schlüsselwort vorkommt! topicmapslab.de 8
    • Einführung in Topic Maps Sortierung - Routine Query … ( . / tm:name[0] , . / tm:name[1] ASC ) unsortiertes Ergebnis { [ „C“ , „AA“ ] ; [ „A“ , „BA“ ] ; [ „C“ , „AB“ ] ; [ „D“ , „AD“ ] } Ergebnis? 1: { [ „A“ , „BA“ ] ; [ „C“ , „AA“ ] ; [ „C“ , „AB“ ] ; [ „D“ , „AD“ ] } 2: { [ „C“ , „AA“ ] ; [ „A“ , „AB“ ] ; [ „D“ , „AD“ ] ; [ „A“ , „BA“ ] } topicmapslab.de 9
    • Einführung in Topic Maps Sortierung - Routine Query … ( . / tm:name[0] , . / tm:name[1] ASC ) unsortiertes Ergebnis { [ „C“ , „AA“ ] ; [ „A“ , „BA“ ] ; [ „C“ , „AB“ ] ; [ „D“ , „AD“ ] } { [ „A“ , „BA“ ] ; [ „C“ , „AA“ ] ; [ „C“ , „AB“ ] ; [ „D“ , „AD“ ] } topicmapslab.de 10
    • Einführung in Topic Maps Sortierung - Routine Query … ( . / tm:name[0] DESC, . / tm:name[1] ) unsortiertes Ergebnis { [ „C“ , „AA“ ] ; [ „A“ , „BA“ ] ; [ „C“ , „AB“ ] ; [ „D“ , „AD“ ] } sortiertes Ergebnis? topicmapslab.de 11
    • Einführung in Topic Maps Sortierung - Routine Query … ( . / tm:name[0] DESC, . / tm:name[1] ) unsortiertes Ergebnis { [ „C“ , „AA“ ] ; [ „A“ , „BA“ ] ; [ „C“ , „AB“ ] ; [ „D“ , „AD“ ] } { [ „D“ , „AD“ ] ; [ „C“ , „AA“ ] ; [ „C“ , „AB“ ] ; [ „A“ , „BA“ ] } topicmapslab.de 12
    • Einführung in Topic Maps Sortierung - Routine Query … ( . / tm:name[0] DESC, . / tm:name[1] DESC ) unsortiertes Ergebnis { [ „C“ , „AA“ ] ; [ „A“ , „BA“ ] ; [ „C“ , „AB“ ] ; [ „D“ , „AD“ ] } sortiertes Ergebnis? topicmapslab.de 13
    • Einführung in Topic Maps Sortierung - Routine Query … ( . / tm:name[0] DESC, . / tm:name[1] DESC) unsortiertes Ergebnis { [ „C“ , „AA“ ] ; [ „A“ , „BA“ ] ; [ „C“ , „AB“ ] ; [ „D“ , „AD“ ] } { [ „D“ , „AD“ ] ; [ „C“ , „AB“ ] ; [ „C“ , „AA“ ] ; [ „A“ , „BA“ ] } topicmapslab.de 14
    • Einführung in Topic Maps Sprachbestandteile High-Level topicmapslab.de
    • Einführung in Topic Maps High-Level ● Alternativen zu Path-Expression ● zwei unterstütze Typen ● SELECT ( Ähnlichkeit zu SQL ) ● FLW(O)R ( Ähnlichkeit zu OOL ( For-Loop ) ) ● Umgebungsdefinitionen vor der eigentlichen Abfrage topicmapslab.de 16
    • Einführung in Topic Maps Sprachbestandteile Environment topicmapslab.de
    • Einführung in Topic Maps Environment ● Umgebungsdefinition zu Beginn eines Query ● vor allen drei Typen unterstützt ● Definition von ● Ontologie ● Prefixen topicmapslab.de 18
    • Einführung in Topic Maps Prefix-Definition ● gekennzeichnet durch Schlüsselwort %prefix ● Tripple-Darstellung %prefix identifier QIRI ● Verwendung als relative IRI topicmapslab.de 19
    • 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
    • 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
    • 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
    • Einführung in Topic Maps Pragma-Definition - Transitivität %prefix o http://psi.ontopia.net/ %prefix tml http://www.topicmapslab.de/ %pragma taxonometry tm:intransitive // o:Composer ++ // tml:person topicmapslab.de 23
    • Einführung in Topic Maps Sprachbestandteile Select - Style topicmapslab.de
    • 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
    • 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
    • Einführung in Topic Maps Sprachbestandteile Select - Clause topicmapslab.de
    • 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
    • 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
    • Einführung in Topic Maps Sprachbestandteile From - Clause topicmapslab.de
    • Einführung in Topic Maps From-Klausel ● Definition des Kontextes für das Variablen Binding ● optionaler Teil der Select-Expression topicmapslab.de 31
    • Einführung in Topic Maps Sprachbestandteile Where – Clause und Variablen topicmapslab.de
    • 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
    • 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
    • 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
    • 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
    • Einführung in Topic Maps Sprachbestandteile Order By – Clause topicmapslab.de
    • 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
    • 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
    • Einführung in Topic Maps Sprachbestandteile Limit / Offset – Clause topicmapslab.de
    • 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
    • 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
    • Einführung in Topic Maps ENDE topicmapslab.de