Einführung in Topic Maps




                    Topic Maps Query Language
                                Session 4




 ...
Einführung in Topic Maps
Review – Session 3
Postfix
    ●     Filter
           –   Boolean-Expression
           –   Filt...
Einführung in Topic Maps
Agenda
 1. Funktionen
    ●   Draft 2007 Funktionen
    ●   TMQL4J Erweiterungen
    ●   Draft 20...
Einführung in Topic Maps




                   Sprachbestandteile
                           Funktionen




 topicmapslab...
Einführung in Topic Maps
Funktionen
 ●   erlaubt als sogenannte Value-Expression oder Content
      ●   Bestandteil einer ...
Einführung in Topic Maps
Funktion - has-datatype
 ●   Identifier:       has-datatype
 ●   Argumente:        eine Menge von...
Einführung in Topic Maps
Funktion - has-datatype
 ●   Beispiel
     %prefix o http://psi.ontopia.net/music/
     // o:comp...
Einführung in Topic Maps
Funktion - has-variant
 ●   Identifier:       has-variant
 ●   Argumente:        eine Menge von K...
Einführung in Topic Maps
Funktion - has-variant
 ●   Beispiel
     %prefix o http://psi.ontopia.net/music/
     http://en....
Einführung in Topic Maps
Funktion - length
 ●   Identifier:       length
 ●   Argumente:        eine Menge von Literalen
 ...
Einführung in Topic Maps
Funktion - length
 ●   Beispiel
     %prefix o http://psi.ontopia.net/music/
     http://en.wikip...
Einführung in Topic Maps
Konstrukt-Literal-Transformation
 ●   Topic → Name, Subject-Identifier, Subject-Locator, Item-Ide...
Einführung in Topic Maps
Funktion - slice
 ●   Identifier:       slice
 ●   Argumente:        eine Menge von Literalen und...
Einführung in Topic Maps
Funktion - count
 ●   Identifier:       count
 ●   Argumente:        eine Menge von Literalen
 ● ...
Einführung in Topic Maps
Funktion - count
 ●   Beispiel
     %prefix o http://psi.ontopia.net/music/
     // o:composer [ ...
Einführung in Topic Maps
Funktion - uniq
 ●   Identifier:       uniq
 ●   Argumente:        eine Menge von Literalen
 ●   ...
Einführung in Topic Maps
Funktion - zigzag
 ●   Identifier:       zigzag
 ●   Argumente:        eine Menge von Literalen
 ...
Einführung in Topic Maps
Funktion - zagzig
 ●   Identifier:       zagzig
 ●   Argumente:        eine Menge von Literalen
 ...
Einführung in Topic Maps
Funktionen -TMQL4J
 ●   Identifier:       substring
 ●   Argumente:        eine Menge und zwei nu...
Einführung in Topic Maps
Funktionen – Draft 2010
 ●   Identifier:       starts-with
 ●   Argumente:        eine Menge von ...
Einführung in Topic Maps
Funktionen – Draft 2010
 ●   Identifier:       ends-with
 ●   Argumente:        eine Menge von Li...
Einführung in Topic Maps
Funktionen – Draft 2010
 ●   Identifier:       contains
 ●   Argumente:        eine Menge von Lit...
Einführung in Topic Maps
Funktionen – Draft 2010
 ●   Identifier:       substring-before
 ●   Argumente:        eine Menge...
Einführung in Topic Maps
Funktionen – Draft 2010
 ●   Identifier:       substring-after
 ●   Argumente:        eine Menge ...
Einführung in Topic Maps
Funktionen – Draft 2010
 ●   Identifier:       normalize-space
 ●   Argumente:        eine Menge ...
Einführung in Topic Maps
Funktionen – Draft 2010
 ●   Identifier:       translate
 ●   Argumente:        eine Menge von Li...
Einführung in Topic Maps
Funktionen – Draft 2010
 ●   Identifier:       find
 ●   Argumente:        eine Menge von Literal...
Einführung in Topic Maps
Funktionen – Draft 2010
 ●   Identifier:       extract-regexp
 ●   Argumente:        eine Menge v...
Einführung in Topic Maps
Funktionen – Draft 2010
 ●   Identifier:       ceiling
 ●   Argumente:        eine Menge von nume...
Einführung in Topic Maps
Funktionen – Draft 2010
 ●   Identifier:       floor
 ●   Argumente:        eine Menge von numeri...
Einführung in Topic Maps
Funktionen – Draft 2010
 ●   Identifier:       round
 ●   Argumente:        eine Menge von numeri...
Einführung in Topic Maps
Funktionen – Draft 2010
 ●   Identifier:       topicmap
 ●   Argumente:        keine
 ●   Beschre...
Einführung in Topic Maps
Funktionen – Draft 2010
 ●   Literalfunktionen
 ●   Transformation von Konstrukt zu Literalen des...
Einführung in Topic Maps




                       ENDE




 topicmapslab.de
Nächste SlideShare
Wird geladen in …5
×

TMQL tutorial - part 4

859 Aufrufe

Veröffentlicht am

Veröffentlicht in: Bildung
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
859
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
104
Aktionen
Geteilt
0
Downloads
8
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

TMQL tutorial - part 4

  1. 1. Einführung in Topic Maps Topic Maps Query Language Session 4 Sven Krosse M. Sc. Topic Maps Lab an der Universität Leipzig krosse@informatik.uni-leipzig.de topicmapslab.de
  2. 2. Einführung in Topic Maps Review – Session 3 Postfix ● Filter – Boolean-Expression – Filtertypen ● Projektion Operatoren topicmapslab.de
  3. 3. Einführung in Topic Maps Agenda 1. Funktionen ● Draft 2007 Funktionen ● TMQL4J Erweiterungen ● Draft 2010 Funktionen topicmapslab.de
  4. 4. Einführung in Topic Maps Sprachbestandteile Funktionen topicmapslab.de
  5. 5. Einführung in Topic Maps Funktionen ● erlaubt als sogenannte Value-Expression oder Content ● Bestandteil einer Boolean-Expression ● Bestandteil von Select-Expressions ● jeder Operator existiert als Funktion ● alle im Namespace fn (http://psi.topicmaps.org/tmql/1.0/functions/) topicmapslab.de 5
  6. 6. Einführung in Topic Maps Funktion - has-datatype ● Identifier: has-datatype ● Argumente: eine Menge von Konstrukten ● Beschreibung: ● liefert für jede Occurrence den Datentyp als Locator ● liefert für andere Konstrukte das Systemtopic undef topicmapslab.de 6
  7. 7. Einführung in Topic Maps Funktion - has-datatype ● Beispiel %prefix o http://psi.ontopia.net/music/ // o:composer >> characteristics tm:occurrence [ fn:has-datatype(.) == xsd:string ] → alle Occurrence vom Typ XSD String topicmapslab.de 7
  8. 8. Einführung in Topic Maps Funktion - has-variant ● Identifier: has-variant ● Argumente: eine Menge von Konstrukten ● Beschreibung: ● liefert die Varianten von Namen ● sonst Systemtopic undef topicmapslab.de 8
  9. 9. Einführung in Topic Maps Funktion - has-variant ● Beispiel %prefix o http://psi.ontopia.net/music/ http://en.wikipedia.org/wiki/Puccini >> characteristics tm:name ( fn:has-variant(.) ) → die Namensvarianten aller Namen von Puccini topicmapslab.de 9
  10. 10. Einführung in Topic Maps Funktion - length ● Identifier: length ● Argumente: eine Menge von Literalen ● Beschreibung: ● liefert die Länge der String-Literale ● andere Konstrukte werden zu Literal konvertiert Hinweis Draft 2010: umbenannt in 'string-length' topicmapslab.de 10
  11. 11. Einführung in Topic Maps Funktion - length ● Beispiel %prefix o http://psi.ontopia.net/music/ http://en.wikipedia.org/wiki/Puccini >> characteristics tm:name [ fn:length( . >> atomify ) == 10 ] → alle Namen von Puccini mit Länge 10 topicmapslab.de 11
  12. 12. Einführung in Topic Maps Konstrukt-Literal-Transformation ● Topic → Name, Subject-Identifier, Subject-Locator, Item-Identifier ● Name → Stringliteral ● Occurrence → Stringliteral ● Variant → Stringliteral ● Role → Item-Identifier ● Association → Item-Identifier topicmapslab.de 12
  13. 13. Einführung in Topic Maps Funktion - slice ● Identifier: slice ● Argumente: eine Menge von Literalen und zwei numerische Werte ● Beschreibung: ● liefert die Submenge definiert durch die numerischen Grenzen topicmapslab.de 13
  14. 14. Einführung in Topic Maps Funktion - count ● Identifier: count ● Argumente: eine Menge von Literalen ● Beschreibung: ● liefert die Anzahl der Elemente der Menge topicmapslab.de 14
  15. 15. Einführung in Topic Maps Funktion - count ● Beispiel %prefix o http://psi.ontopia.net/music/ // o:composer [ fn:count( . / tm:name ) == 2 ] → alle Komponisten, welche genau zwei Namen haben topicmapslab.de 15
  16. 16. Einführung in Topic Maps Funktion - uniq ● Identifier: uniq ● Argumente: eine Menge von Literalen ● Beschreibung: ● entfernt aller Duplikate topicmapslab.de 16
  17. 17. Einführung in Topic Maps Funktion - zigzag ● Identifier: zigzag ● Argumente: eine Menge von Literalen ● Beschreibung: ● erzeugt neues Tupel bestehend aus allen Tupeln der gegebenen Menge ● Beispiel: zigzag( { [A, B] , [C, D] } ) = { [A, B, C, D] } topicmapslab.de 17
  18. 18. Einführung in Topic Maps Funktion - zagzig ● Identifier: zagzig ● Argumente: eine Menge von Literalen ● Beschreibung: ● erzeugt neue Menge mit Singleton Tupeln ● Beispiel: zagzig( { [A, B] , [C, D] } ) = { [A], [B], [C], [D] } topicmapslab.de 18
  19. 19. Einführung in Topic Maps Funktionen -TMQL4J ● Identifier: substring ● Argumente: eine Menge und zwei numerische Werte ● Beschreibung: ● Menge von Sub-Strings definiert durch numerische Werte ● numerische Werte definieren maximalen Bereich ● Beispiel: substring( „abc“ , 0 , 9 ) = { „abc“ } Hinweis Draft 2010: 3. Argument definiert die Menge an Zeichen topicmapslab.de 19
  20. 20. Einführung in Topic Maps Funktionen – Draft 2010 ● Identifier: starts-with ● Argumente: eine Menge von Literalen und Vergleichsliteral ● Beschreibung: ● Prüfung ob Literal mit Vergleichsliteral beginnt ● Beispiel: starts-with( { „ab“,“bc“ } , „a“ ) = { true, false } topicmapslab.de 20
  21. 21. Einführung in Topic Maps Funktionen – Draft 2010 ● Identifier: ends-with ● Argumente: eine Menge von Literalen und Vergleichsliteral ● Beschreibung: ● Prüfung ob Literal mit Vergleichsliteral endet ● Beispiel: ends-with( { „ab“,“bc“ } , „b“ ) = { true, false } topicmapslab.de 21
  22. 22. Einführung in Topic Maps Funktionen – Draft 2010 ● Identifier: contains ● Argumente: eine Menge von Literalen und Vergleichsliteral ● Beschreibung: ● Prüfung ob Literal das Vergleichsliteral enthält ● Beispiel: contains( { „ab“,“bc“ } , „a“ ) = { true, false } topicmapslab.de 22
  23. 23. Einführung in Topic Maps Funktionen – Draft 2010 ● Identifier: substring-before ● Argumente: eine Menge von Literalen und Vergleichsliteral ● Beschreibung: ● liefert Zeichenkette vor dem gegebenen Literal, falls vorhanden, ansonsten leere Zeichenkette ● Beispiel: substring-before( { „ab“,“bc“ } , „b“ ) = { „a“, „“ } topicmapslab.de 23
  24. 24. Einführung in Topic Maps Funktionen – Draft 2010 ● Identifier: substring-after ● Argumente: eine Menge von Literalen und Vergleichsliteral ● Beschreibung: ● liefert Zeichenkette nach dem gegebenen Literal, falls vorhanden, ansonsten leere Zeichenkette ● Beispiel: substring-after( { „ab“,“bc“ } , „b“ ) = { „“, „c“ } topicmapslab.de 24
  25. 25. Einführung in Topic Maps Funktionen – Draft 2010 ● Identifier: normalize-space ● Argumente: eine Menge von Literalen ● Beschreibung: ● entfernt multiple Vorkommen von Leerzeichen ● Beispiel: normalize-space( { „a b“,“b c“ } ) = { „a b“, „b c“ } topicmapslab.de 25
  26. 26. Einführung in Topic Maps Funktionen – Draft 2010 ● Identifier: translate ● Argumente: eine Menge von Literalen und zwei weitere Literale ● Beschreibung: ● ersetzt jedes Zeichen des 2. Literals durch Zeichen des 3. Literals (index-basiert) ● Beispiel: translate( „Puccini“,“Pci“,“xyz“ ) = { „xuyyznz“ } topicmapslab.de 26
  27. 27. Einführung in Topic Maps Funktionen – Draft 2010 ● Identifier: find ● Argumente: eine Menge von Literalen und weiteres Literal ● Beschreibung: ● lierfert Index des ersten Vorkommens des 2. Literals ● Beispiel: find( „Puccini“,“cc“ ) = {2} topicmapslab.de 27
  28. 28. Einführung in Topic Maps Funktionen – Draft 2010 ● Identifier: extract-regexp ● Argumente: eine Menge von Literalen und weiteres Literal ● Beschreibung: ● liefert den 1. Substring welcher den regulären Ausdruck erfüllt ● Beispiel: extract-regexp( „Puccini“,“.*cc.*“ ) = { „Pucc“ } topicmapslab.de 28
  29. 29. Einführung in Topic Maps Funktionen – Draft 2010 ● Identifier: ceiling ● Argumente: eine Menge von numerischen Literalen ● Beschreibung: ● liefert kleinste natürliche Zahl die nicht kleiner als die gegeben ist ● Beispiel: ceiling( { 1.5, - 1.5, 5 } ) = { 2, -1, 5 } topicmapslab.de 29
  30. 30. Einführung in Topic Maps Funktionen – Draft 2010 ● Identifier: floor ● Argumente: eine Menge von numerischen Literalen ● Beschreibung: ● liefert größte natürliche Zahl die nicht größer als die gegeben ist ● Beispiel: floor( { 1.5, - 1.5, 5 } ) = { 1, -2, 5 } topicmapslab.de 30
  31. 31. Einführung in Topic Maps Funktionen – Draft 2010 ● Identifier: round ● Argumente: eine Menge von numerischen Literalen ● Beschreibung: ● liefert gerundete Werte ● Beispiel: round( { 1.5, - 1.5, 5.1 } ) = { 2, -1, 5 } topicmapslab.de 31
  32. 32. Einführung in Topic Maps Funktionen – Draft 2010 ● Identifier: topicmap ● Argumente: keine ● Beschreibung: ● liefert die Instanz der Topic Map topicmapslab.de 32
  33. 33. Einführung in Topic Maps Funktionen – Draft 2010 ● Literalfunktionen ● Transformation von Konstrukt zu Literalen des entsprechenden Typs ● Funktionen ● string ● boolean ● number topicmapslab.de 33
  34. 34. Einführung in Topic Maps ENDE topicmapslab.de

×