Your SlideShare is downloading. ×

TMQL tutorial - part 3

735

Published on

In this third part of TMQL tutorials you learn anything about the postfix operators for filters and projection. Furthermore the operators in TMQL are introduced. All slides are in German.

In this third part of TMQL tutorials you learn anything about the postfix operators for filters and projection. Furthermore the operators in TMQL are introduced. All slides are in German.

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
735
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Einführung in Topic Maps Topic Maps Query Language Session 3 Sven Krosse M. Sc. Topic Maps Lab an der Universität Leipzig krosse@informatik.uni-leipzig.de topicmapslab.de
  • 2. Einführung in Topic Maps Review – Session 1 and 2 1. Meta-Modell von TMQL 2. Grammatik 3. Navigationskonzept 4. Path-Language – Draft 2010 ( kurzer Einblick ) topicmapslab.de
  • 3. Einführung in Topic Maps Agenda 1. Postfix ● Filter – Boolean-Expression – Filtertypen ● Projektion 2. Operatoren topicmapslab.de
  • 4. Einführung in Topic Maps Sprachbestandteile Postfix topicmapslab.de
  • 5. Einführung in Topic Maps Postfix ● als Ergänzung für Path-Expression ( Simple-Content ) ● erlauben exakte Definition der Ergebnismenge in Path- Expressions ● Typen ● Filter ● Projektion topicmapslab.de
  • 6. Einführung in Topic Maps Sprachbestandteile Filter topicmapslab.de
  • 7. Einführung in Topic Maps Filter ● Filter nur nach kompletter Navigation ● Filter nach jedem Schritt als Erweiterung einiger TMQL Engines ● CL-Filter ● immer Boolean-Expression ● Syntax: [ boolean-expression ] ● NCL-Filter ● zur vereinfachten Verwendung ● Syntax ist variabel topicmapslab.de 7
  • 8. Einführung in Topic Maps Boolean-Expression ● quantitativ oder nicht-quantitativ ● Unterstützung von boolean'schen Operatoren ● Konjunktion mit AND ● Disjunktion mit OR ● Negation mit NOT topicmapslab.de 8
  • 9. Einführung in Topic Maps Quantitative Boolean-Expression ● numerisch strikte Bedingung ● Anzahl der erfüllenden Tuple ● untere Grenze spezifiziert AT LEAST number binding-set SATISFIES boolean-expression ● obere Grenze spezifiziert AT MOST number binding-set SATISFIES boolean-expression ● Abhängigkeit von Variablen durch Binding-Set definiert topicmapslab.de 9
  • 10. Einführung in Topic Maps Quantitative Boolean-Expression %prefix o http://psi.ontopia.net/music/ // o:composer [ AT MOST 3 $opera IN // o:opera SATISFIES $opera >> traverse o:composed-by == . ] topicmapslab.de 10
  • 11. Einführung in Topic Maps Quantitative Boolean-Expression %prefix o http://psi.ontopia.net/music/ // o:composer [ AT MOST 3 $opera IN // o:opera SATISFIES $opera >> traverse o:composed-by == . ] Filterdefinition topicmapslab.de 11
  • 12. Einführung in Topic Maps Quantitative Boolean-Expression %prefix o http://psi.ontopia.net/music/ // o:composer Numerische Quantifizierung [ AT MOST 3 $opera IN // o:opera SATISFIES $opera >> traverse o:composed-by == . ] topicmapslab.de 12
  • 13. Einführung in Topic Maps Quantitative Boolean-Expression %prefix o http://psi.ontopia.net/music/ // o:composer Variable-Binding [ AT MOST 3 $opera IN // o:opera SATISFIES $opera >> traverse o:composed-by == . ] topicmapslab.de 13
  • 14. Einführung in Topic Maps Quantitative Boolean-Expression %prefix o http://psi.ontopia.net/music/ // o:composer [ AT MOST 3 $opera IN // o:opera SATISFIES $opera >> traverse o:composed-by == . ] Bedingung topicmapslab.de 14
  • 15. Einführung in Topic Maps Quantitative Boolean-Expression %prefix o http://psi.ontopia.net/music/ // o:composer [ AT MOST 3 $opera IN // o:opera SATISFIES $opera >> traverse o:composed-by == . ] → alle Komponisten, welche maximal 3 Opern komponiert haben topicmapslab.de 15
  • 16. Einführung in Topic Maps Quantitative Boolean-Expression ● numerisch freie Bedingung ● exakte Anzahl der erfüllenden Tuple irrelevant ● unteres Minimum SOME binding-set SATISFIES boolean-expression ● oberes Maximum EVERY binding-set SATISFIES boolean-expression topicmapslab.de 16
  • 17. Einführung in Topic Maps Quantitative Boolean-Expression %prefix o http://psi.ontopia.net/music/ // o:composer [ SOME $opera IN // o:opera SATISFIES $opera >> traverse o:composed-by == . ] topicmapslab.de 17
  • 18. Einführung in Topic Maps Quantitative Boolean-Expression %prefix o http://psi.ontopia.net/music/ // o:composer [ SOME $opera IN // o:opera SATISFIES $opera >> traverse o:composed-by == . ] → alle Komponisten, welche mindestens eine Oper komponiert haben topicmapslab.de 18
  • 19. Einführung in Topic Maps Nicht-Quantitative Boolean-Expression ● Bedingung nicht an numerische Grenzen gebunden ● reine Existenz entscheidend ● Syntax: EXISTS boolean-expression ● Schlüsselwort EXISTS optional ● NCL-Vertreter ● Typ-Instanz-Beziehung ( ISA-Expression ) ● Supertyp-Subtyp-Beziehung ( AKO-Expression ) topicmapslab.de 19
  • 20. Einführung in Topic Maps Nicht-Quantitative Boolean-Expression %prefix o http://psi.ontopia.net/music/ // o:composer [ . ISA o:musician ] topicmapslab.de 20
  • 21. Einführung in Topic Maps Nicht-Quantitative Boolean-Expression %prefix o http://psi.ontopia.net/music/ // o:composer [ . ISA o:musician ] → alle Komponisten, welche auch Instanz von Musiker sind topicmapslab.de 21
  • 22. Einführung in Topic Maps NCL-Filter ● spezielle Filter auf dem NCL ● Index-Filter ● Range-Filter ● Scope-Filter ● Typ-Filter ● besitzen eine Entsprechung auf CL topicmapslab.de 22
  • 23. Einführung in Topic Maps NCL-Filter – Index-Filter ● spezielles Tuple aus der Ergebnissequenz ● Null-basierter Index ● leere Menge wenn Index außerhalb des möglichen Bereichs ● Syntax: [ number ] → [ $# == number ] ● Bsp: // http://psi.ontopia.net/music/composer / tm:name [ 0 ] topicmapslab.de 23
  • 24. Einführung in Topic Maps NCL-Filter – Range-Filter ● spezieller Bereich aus der Ergebnissequenz ● Null-basierte Indizes ● alle Elemente die vom Index-Bereich abgedeckt werden ● Syntax [ a .. b ] → [ a <= $# AND $# < b ] ● Bsp: // http://psi.ontopia.net/music/composer / tm:name [ 0 .. 1 ] topicmapslab.de 24
  • 25. Einführung in Topic Maps NCL-Filter – Scope-Filter ● Filterung nach Themes @ theme → [ . >> scope == theme ] [ @ theme ] → [ . >> scope == theme ] ● Bsp: // http://psi.ontopia.net/music/composer / tm:name @http://psi.ontopia.net/basename/short-name oder // http://psi.ontopia.net/music/composer / tm:name [ @http://psi.ontopia.net/basename/short-name ] topicmapslab.de 25
  • 26. Einführung in Topic Maps NCL-Filter – Type-Filter ● Filterung nach Typ [ ^ type ] → [ . >> types == type ] // type → [ . >> types == type ] ● Bsp: %prefix o http://psi.ontopia.net/music/ // o:composer >> traverse [ ^ o:opera ] oder // o:composer >> traverse // o:opera topicmapslab.de 26
  • 27. Einführung in Topic Maps Vergleich Draft 2010 ● Draft 2010 ● Filterung nach jedem Navigationsschritt möglich ● Kombination von Filtern ● keine Projektion topicmapslab.de 27
  • 28. Einführung in Topic Maps Vergleich Draft 2010 ● Beispiel: Filter Draft 2010 / composer [ . / firstname / value:: =~ „.*Puccini.*“ ] / role:: / composer / webpage @web @italian / value:: topicmapslab.de 28
  • 29. Einführung in Topic Maps Sprachbestandteile Projektion topicmapslab.de
  • 30. Einführung in Topic Maps Projektion ● Alternative zu Filtern ● Erzeugung von Tupeln mit mehren Elementen ● Ausgangspunkt ist aktueller Knoten im Graph als Ergebnis der Navigation ● Beschreibung als Tuple-Expression ● optionale Sortierung definierbar ● Syntax: tuple-expression ::= ( <value-expression> ) value-expression ::= content { ASC | DESC } topicmapslab.de 30
  • 31. Einführung in Topic Maps Projektion %prefix o http://psi.ontopia.net/music/ // o:composer ( ., . / tm:name , . / tm:occurrence, . >> indicators ) topicmapslab.de 31
  • 32. Einführung in Topic Maps Projektion %prefix o http://psi.ontopia.net/music/ // o:composer ( ., . / tm:name , . / tm:occurrence, . >> indicators ) Projektionsdefinition topicmapslab.de 32
  • 33. Einführung in Topic Maps Projektion %prefix o http://psi.ontopia.net/music/ // o:composer ( aktueller Knoten ., . / tm:name , . / tm:occurrence, . >> indicators ) topicmapslab.de 33
  • 34. Einführung in Topic Maps Projektion %prefix o http://psi.ontopia.net/music/ // o:composer ( Projektionstupel ., . / tm:name , . / tm:occurrence, . >> indicators ) topicmapslab.de 34
  • 35. Einführung in Topic Maps Sprachbestandteile Operatoren topicmapslab.de
  • 36. Einführung in Topic Maps Operatoren ● erlaubt in so genannte Value-Expression oder Content ● z.B.: Bestandteil einer Boolean-Expression ● verschiedene Typen ● mathematische Operatoren ● Vergleichsoperatoren ● Mengenoperatoren topicmapslab.de 36
  • 37. Einführung in Topic Maps mathematische Operatoren ● Vorzeichen '-' ● unterstützte Datentypen: – Number topicmapslab.de 37
  • 38. Einführung in Topic Maps mathematische Operatoren ● Addition '+' ● unterstützte Datentypen: – Number – String – Date – Time – DateTime topicmapslab.de 38
  • 39. Einführung in Topic Maps mathematische Operatoren ● Subtraktion '-' ● unterstützte Datentypen: – Number – Date – Time – DateTime topicmapslab.de 39
  • 40. Einführung in Topic Maps mathematische Operatoren ● Multiplikation '*' ● unterstützte Datentypen: – Number topicmapslab.de 40
  • 41. Einführung in Topic Maps mathematische Operatoren ● Division '%' ● unterstützte Datentypen: – Number Hinweis: im Draft 2010 ersetzt durch 'div' topicmapslab.de 41
  • 42. Einführung in Topic Maps mathematische Operatoren ● Modulo 'mod' ● unterstützte Datentypen: – Number topicmapslab.de 42
  • 43. Einführung in Topic Maps Vergleichsoperatoren ● kleiner-als '<' ● unterstützte Datentypen: – Number – String – Date – Time – DateTime topicmapslab.de 43
  • 44. Einführung in Topic Maps Vergleichsoperatoren ● kleiner-oder-gleich '<=' ● unterstützte Datentypen: – Number – String – Date – Time – DateTime topicmapslab.de 44
  • 45. Einführung in Topic Maps Vergleichsoperatoren ● größer-als '>' ● unterstützte Datentypen: – Number – String – Date – Time – DateTime topicmapslab.de 45
  • 46. Einführung in Topic Maps Vergleichsoperatoren ● größer-oder-gleich '>=' ● unterstützte Datentypen: – Number – String – Date – Time – DateTime topicmapslab.de 46
  • 47. Einführung in Topic Maps Vergleichsoperatoren ● reguläre Ausdrücke '=~' ● unterstützte Datentypen: – String topicmapslab.de 47
  • 48. Einführung in Topic Maps Vergleichsoperatoren ● Gleichheit '==' ● unterstützte Datentypen: – Number – String – Date – Time – DateTime Hinweis: im Draft 2010 ersetzt durch '=' topicmapslab.de 48
  • 49. Einführung in Topic Maps Mengenoperatoren ● Vereinigung '++' ● Kombination beider Mengen als neue Sequenz ● Beispiel: {[A, C], [E, F]} ++ { [C, D]} → {[A, C], [E, F], [C, D]} Hinweis: im Draft 2010 ersetzt durch 'union' topicmapslab.de 49
  • 50. Einführung in Topic Maps Mengenoperatoren ● Differenz '--' ● entfernt die Elemente der ersten Menge, welche auch in der zweiten enthalten sind ● Beispiel: {[A, C], [C, D]} -- { [C, D]} → {[A, C]} Hinweis: im Draft 2010 ersetzt durch 'minus' topicmapslab.de 50
  • 51. Einführung in Topic Maps Mengenoperatoren ● Schnittmenge '==' ● liefert die Schnittmenge beider Mengen ● Beispiel: {[A, C], [C, D]} == { [C, D]} → {[C, D]} Hinweis: im Draft 2010 ersetzt durch 'intersect' topicmapslab.de 51
  • 52. Einführung in Topic Maps ENDE topicmapslab.de

×