Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
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

966 Aufrufe

Veröffentlicht am

Veröffentlicht in: Bildung
  • Als Erste(r) kommentieren

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

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

×