際際滷

際際滷Share a Scribd company logo
Einf端hrung in Topic Maps




                    Topic Maps Query Language
                                Session 6




         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 5
Sortierung
High-Level
       Environment
       SELECT Style




  topicmapslab.de
Einf端hrung in Topic Maps
Agenda
 1. FLW(O)R Style
       RETURN-Clause
       WHERE-Clause
       ORDER-BY Clause
       FOR-Clause
 2. Verschachtelung
 3. Content Types
       XML
       CTM
  topicmapslab.de
Einf端hrung in Topic Maps




                   Sprachbestandteile
                        FLW(O)R-Style




 topicmapslab.de
Einf端hrung in Topic Maps
FLW(O)R-Style
    syntaktische hnlichkeit zu XML FLW(O)R oder
     Programmiersprachen ( FOR-Loops)
    besteht aus einer Menge von Sub-Expressions
    eingeschr辰nkte syntaktische M辰chtigkeit ( im. Vgl. zu SELCT )
    erlaubt Bindung von Variablen
    Unterst端tzung verschiedener Ergebnistypen




     topicmapslab.de
                                                                     5
Einf端hrung in Topic Maps
FLW(O)R-Style
   [ <for < binding-set >> ]
   [ where boolean-expression ]
   [ order    by < value-expression > ]
   return content




  topicmapslab.de
                                          6
Einf端hrung in Topic Maps




                   Sprachbestandteile
                        Return - Clause




 topicmapslab.de
Einf端hrung in Topic Maps
Return-Klausel
    besteht aus dem Schl端sselwort RETURN und einer Content-
     Definition als Ergebnis
          Content definiert Art und Inhalt der R端ckgabe
    Verwendung von gebundenen Variablen m旦glich
    einziger nicht optionaler Teil der FLW(O)R-Expression




     topicmapslab.de
                                                               8
Einf端hrung in Topic Maps
FLW(O)R-Klausel
   %prefix wiki http://en.wikipedia.org/wiki/
   RETURN wiki:Puccini
    Topic f端r Puccini


   %prefix wiki http://en.wikipedia.org/wiki/
   RETURN wiki:Puccini / tm:name , wiki:Puccini >> indicators
    zweispaltiges Ergebnis ( Namen und Subject-Identifier von
   Puccini )


  topicmapslab.de
                                                                 9
Einf端hrung in Topic Maps




                   Sprachbestandteile
                     Where  Clause und Variablen




 topicmapslab.de
Einf端hrung in Topic Maps
Where-Klausel (Wdh)
    Einschr辰nkung m旦glicher Bindings einer Variable
    Definition von Variablen, welche in der Return-Klausel verwendet
     werden k旦nnen
    funktional 辰hnlich zu Filtern




     topicmapslab.de
                                                                    11
Einf端hrung in Topic Maps
Where-Klausel (Wdh.)
   %prefix o http://psi.ontopia.net/music/
   WHERE $composer ISA o:composer
   RETURN $composer


       Variable $composer nur an Komponisten gebunden




  topicmapslab.de
                                                         12
Einf端hrung in Topic Maps
Where-Klausel (Wdh.)
   %prefix o http://psi.ontopia.net/music/
   %prefix l http://psi.ontopia.net/literature/
   WHERE $composer ISA o:composer AND o:composed-by ( l:work :
   $opera, o:composer : $composer )
   RETURN $composer, $opera
       Variable $composer nur an Komponisten gebunden
       Variable $opera nur an Gegenspieler (von $composer) vom Typ
      Werk in der Assoziation komponiert gebunden




  topicmapslab.de
                                                                      13
Einf端hrung in Topic Maps




                   Sprachbestandteile
                       Order By  Clause




 topicmapslab.de
Einf端hrung in Topic Maps
Order By-Klausel (Wdh.)
    Sortierung der Ergebnismenge
    Definition 端ber Pfadausdr端cke
         Verarbeitung erfolgt abh辰ngig vom vorherigen
          Sortierungsergebnis




     topicmapslab.de
                                                         15
Einf端hrung in Topic Maps
Order By-Klausel (Wdh.)
   %prefix o http://psi.ontopia.net/music/
   %prefix l http://psi.ontopia.net/literature/
   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
   RETURN $composer, $opera


       Sortierung nach Name des Komponisten
       bei gleichen Komponisten, sortieren nach Name der Oper

  topicmapslab.de
                                                                  16
Einf端hrung in Topic Maps




                   Sprachbestandteile
                       For  Clause




 topicmapslab.de
Einf端hrung in Topic Maps
For-Klausel
    definiert Wertebereich der zu bindenden Variablen
    kann mehrere Binding Definitionen enthalten
    Muster
         FOR variable IN context
         FOR other IN other-context
         ...




     topicmapslab.de
                                                         18
Einf端hrung in Topic Maps
For-Klausel
   %prefix o http://psi.ontopia.net/music/
   %prefix l http://psi.ontopia.net/literature/
   FOR $composer IN // o:composer
   WHERE o:composed-by ( l:work : $opera, o:composer : $composer )
   ORDER BY $composer / tm:name [0] , $opera / tm:name [0] DESC
   RETURN $composer, $opera


    Bereich der Variable $composer auf alle Komponisten beschr辰nkt


  topicmapslab.de
                                                                      19
Einf端hrung in Topic Maps
For-Klausel
   %prefix o http://psi.ontopia.net/music/
   %prefix l http://psi.ontopia.net/literature/
   FOR $composer IN http://en.wikipedia.org/wiki/Puccini
   WHERE o:composed-by ( l:work : $opera, o:composer : $composer )
   ORDER BY $composer / tm:name [0] , $opera / tm:name [0] DESC
   RETURN $composer, $opera


       Bereich der Variable $composer auf Puccini beschr辰nkt


  topicmapslab.de
                                                                     20
Einf端hrung in Topic Maps




                   Sprachbestandteile
                       Verschachtelung




 topicmapslab.de
Einf端hrung in Topic Maps
Verschachtelung
    Return Klauseln k旦nnen als Verschachtelung einen TMQL Query
     enthalten
    Variablen besitzen nur innerhalb ihres Queries G端ltigkeit
     (Vererbung an Kind-Query )
    z.B. Verwendung um Variablen Bindung abh辰ngig von Variablen
     zu machen




     topicmapslab.de
                                                                   22
Einf端hrung in Topic Maps
Verschachtelung
   %prefix o http://psi.ontopia.net/music/
   FOR $composer IN // o:composer
   RETURN {
       FOR $type IN $composer >> characteristics >> types
       RETURN $composer, $type, $composer / $type
   }
    dreispaltiges Ergebnis
          ( Komponist, Eigenschaftstyp, Eigenschaftswert )

  topicmapslab.de
                                                             23
Einf端hrung in Topic Maps




                   Sprachbestandteile
                       Content Types




 topicmapslab.de
Einf端hrung in Topic Maps
Content Types
    FLW(O)R ist der einzige Query Typ, welcher verschiedene
     Formate liefern kann
    kann als Transformation, 辰hnlich XSLT, f端r Topic Maps verwendet
     werden
    Ergebnis kann ein CTM Fragment oder ein XML Fragment sein
     ( neben Topic Items )
    Fragmente k旦nnen beliebig definiert werden
         nicht zwingend valide Fragmente der jeweiligen Sprache



     topicmapslab.de
                                                                       25
Einf端hrung in Topic Maps




                   Sprachbestandteile
                       CTM Result




 topicmapslab.de
Einf端hrung in Topic Maps
CTM - Content
    CTM Fragmente werden durch dreifache Anf端hrungszeichen
     symbolisiert
          RETURN  ... 
    CTM Stream kann eine Menge von Queries enthalten
         Variablen werden wie bei Verschachtelungen behandelt
    Verwendung um Informationen als Topic Maps Fragment zu
     exportieren oder eine Topic Map zu modifizieren




     topicmapslab.de
                                                                 27
Einf端hrung in Topic Maps
CTM - Content
   %prefix o http://psi.ontopia.net/music/
   %prefix l http://psi.ontopia.net/literature/
   RETURN """
   {
         FOR $composer IN // o:composer
         RETURN """ { $composer } """
   }
   """

  topicmapslab.de
                                                  28
Einf端hrung in Topic Maps




                   Sprachbestandteile
                       XML Result




 topicmapslab.de
Einf端hrung in Topic Maps
XML - Content
    XML Fragmente werden durch XML Tags definiert
          RETURN <yml> ... </yml>
    XML Fragmente k旦nnen eine Menge von Queries enthalten
         Variablen werden wie bei Verschachtelungen behandelt
    Verwendung um Informationen als XML Fragmente zu
     exportieren ( Web-Services )




     topicmapslab.de
                                                                 30
Einf端hrung in Topic Maps
XML - Content
   %prefix o http://psi.ontopia.net/music/
   %prefix l http://psi.ontopia.net/literature/
   RETURN <yml>
   {
       FOR $composer IN // o:composer
       RETURN <composer> { $composer } </composer>
   }
   </yml>

  topicmapslab.de
                                                     31
Einf端hrung in Topic Maps
XML - Content
    Topic Maps Elemente werden in XTM Fragment 端berf端hrt
    simple Datentypen werden in Zeichenketten 端bersetzt
    Zeichenketten werden unverarbeitet in den Strom geschrieben




     topicmapslab.de
                                                                   32
Einf端hrung in Topic Maps




                       ENDE




 topicmapslab.de

More Related Content

TMQL tutorial - part 6

  • 1. Einf端hrung in Topic Maps Topic Maps Query Language Session 6 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 5 Sortierung High-Level Environment SELECT Style topicmapslab.de
  • 3. Einf端hrung in Topic Maps Agenda 1. FLW(O)R Style RETURN-Clause WHERE-Clause ORDER-BY Clause FOR-Clause 2. Verschachtelung 3. Content Types XML CTM topicmapslab.de
  • 4. Einf端hrung in Topic Maps Sprachbestandteile FLW(O)R-Style topicmapslab.de
  • 5. Einf端hrung in Topic Maps FLW(O)R-Style syntaktische hnlichkeit zu XML FLW(O)R oder Programmiersprachen ( FOR-Loops) besteht aus einer Menge von Sub-Expressions eingeschr辰nkte syntaktische M辰chtigkeit ( im. Vgl. zu SELCT ) erlaubt Bindung von Variablen Unterst端tzung verschiedener Ergebnistypen topicmapslab.de 5
  • 6. Einf端hrung in Topic Maps FLW(O)R-Style [ <for < binding-set >> ] [ where boolean-expression ] [ order by < value-expression > ] return content topicmapslab.de 6
  • 7. Einf端hrung in Topic Maps Sprachbestandteile Return - Clause topicmapslab.de
  • 8. Einf端hrung in Topic Maps Return-Klausel besteht aus dem Schl端sselwort RETURN und einer Content- Definition als Ergebnis Content definiert Art und Inhalt der R端ckgabe Verwendung von gebundenen Variablen m旦glich einziger nicht optionaler Teil der FLW(O)R-Expression topicmapslab.de 8
  • 9. Einf端hrung in Topic Maps FLW(O)R-Klausel %prefix wiki http://en.wikipedia.org/wiki/ RETURN wiki:Puccini Topic f端r Puccini %prefix wiki http://en.wikipedia.org/wiki/ RETURN wiki:Puccini / tm:name , wiki:Puccini >> indicators zweispaltiges Ergebnis ( Namen und Subject-Identifier von Puccini ) topicmapslab.de 9
  • 10. Einf端hrung in Topic Maps Sprachbestandteile Where Clause und Variablen topicmapslab.de
  • 11. Einf端hrung in Topic Maps Where-Klausel (Wdh) Einschr辰nkung m旦glicher Bindings einer Variable Definition von Variablen, welche in der Return-Klausel verwendet werden k旦nnen funktional 辰hnlich zu Filtern topicmapslab.de 11
  • 12. Einf端hrung in Topic Maps Where-Klausel (Wdh.) %prefix o http://psi.ontopia.net/music/ WHERE $composer ISA o:composer RETURN $composer Variable $composer nur an Komponisten gebunden topicmapslab.de 12
  • 13. Einf端hrung in Topic Maps Where-Klausel (Wdh.) %prefix o http://psi.ontopia.net/music/ %prefix l http://psi.ontopia.net/literature/ WHERE $composer ISA o:composer AND o:composed-by ( l:work : $opera, o:composer : $composer ) RETURN $composer, $opera Variable $composer nur an Komponisten gebunden Variable $opera nur an Gegenspieler (von $composer) vom Typ Werk in der Assoziation komponiert gebunden topicmapslab.de 13
  • 14. Einf端hrung in Topic Maps Sprachbestandteile Order By Clause topicmapslab.de
  • 15. Einf端hrung in Topic Maps Order By-Klausel (Wdh.) Sortierung der Ergebnismenge Definition 端ber Pfadausdr端cke Verarbeitung erfolgt abh辰ngig vom vorherigen Sortierungsergebnis topicmapslab.de 15
  • 16. Einf端hrung in Topic Maps Order By-Klausel (Wdh.) %prefix o http://psi.ontopia.net/music/ %prefix l http://psi.ontopia.net/literature/ 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 RETURN $composer, $opera Sortierung nach Name des Komponisten bei gleichen Komponisten, sortieren nach Name der Oper topicmapslab.de 16
  • 17. Einf端hrung in Topic Maps Sprachbestandteile For Clause topicmapslab.de
  • 18. Einf端hrung in Topic Maps For-Klausel definiert Wertebereich der zu bindenden Variablen kann mehrere Binding Definitionen enthalten Muster FOR variable IN context FOR other IN other-context ... topicmapslab.de 18
  • 19. Einf端hrung in Topic Maps For-Klausel %prefix o http://psi.ontopia.net/music/ %prefix l http://psi.ontopia.net/literature/ FOR $composer IN // o:composer WHERE o:composed-by ( l:work : $opera, o:composer : $composer ) ORDER BY $composer / tm:name [0] , $opera / tm:name [0] DESC RETURN $composer, $opera Bereich der Variable $composer auf alle Komponisten beschr辰nkt topicmapslab.de 19
  • 20. Einf端hrung in Topic Maps For-Klausel %prefix o http://psi.ontopia.net/music/ %prefix l http://psi.ontopia.net/literature/ FOR $composer IN http://en.wikipedia.org/wiki/Puccini WHERE o:composed-by ( l:work : $opera, o:composer : $composer ) ORDER BY $composer / tm:name [0] , $opera / tm:name [0] DESC RETURN $composer, $opera Bereich der Variable $composer auf Puccini beschr辰nkt topicmapslab.de 20
  • 21. Einf端hrung in Topic Maps Sprachbestandteile Verschachtelung topicmapslab.de
  • 22. Einf端hrung in Topic Maps Verschachtelung Return Klauseln k旦nnen als Verschachtelung einen TMQL Query enthalten Variablen besitzen nur innerhalb ihres Queries G端ltigkeit (Vererbung an Kind-Query ) z.B. Verwendung um Variablen Bindung abh辰ngig von Variablen zu machen topicmapslab.de 22
  • 23. Einf端hrung in Topic Maps Verschachtelung %prefix o http://psi.ontopia.net/music/ FOR $composer IN // o:composer RETURN { FOR $type IN $composer >> characteristics >> types RETURN $composer, $type, $composer / $type } dreispaltiges Ergebnis ( Komponist, Eigenschaftstyp, Eigenschaftswert ) topicmapslab.de 23
  • 24. Einf端hrung in Topic Maps Sprachbestandteile Content Types topicmapslab.de
  • 25. Einf端hrung in Topic Maps Content Types FLW(O)R ist der einzige Query Typ, welcher verschiedene Formate liefern kann kann als Transformation, 辰hnlich XSLT, f端r Topic Maps verwendet werden Ergebnis kann ein CTM Fragment oder ein XML Fragment sein ( neben Topic Items ) Fragmente k旦nnen beliebig definiert werden nicht zwingend valide Fragmente der jeweiligen Sprache topicmapslab.de 25
  • 26. Einf端hrung in Topic Maps Sprachbestandteile CTM Result topicmapslab.de
  • 27. Einf端hrung in Topic Maps CTM - Content CTM Fragmente werden durch dreifache Anf端hrungszeichen symbolisiert RETURN ... CTM Stream kann eine Menge von Queries enthalten Variablen werden wie bei Verschachtelungen behandelt Verwendung um Informationen als Topic Maps Fragment zu exportieren oder eine Topic Map zu modifizieren topicmapslab.de 27
  • 28. Einf端hrung in Topic Maps CTM - Content %prefix o http://psi.ontopia.net/music/ %prefix l http://psi.ontopia.net/literature/ RETURN """ { FOR $composer IN // o:composer RETURN """ { $composer } """ } """ topicmapslab.de 28
  • 29. Einf端hrung in Topic Maps Sprachbestandteile XML Result topicmapslab.de
  • 30. Einf端hrung in Topic Maps XML - Content XML Fragmente werden durch XML Tags definiert RETURN <yml> ... </yml> XML Fragmente k旦nnen eine Menge von Queries enthalten Variablen werden wie bei Verschachtelungen behandelt Verwendung um Informationen als XML Fragmente zu exportieren ( Web-Services ) topicmapslab.de 30
  • 31. Einf端hrung in Topic Maps XML - Content %prefix o http://psi.ontopia.net/music/ %prefix l http://psi.ontopia.net/literature/ RETURN <yml> { FOR $composer IN // o:composer RETURN <composer> { $composer } </composer> } </yml> topicmapslab.de 31
  • 32. Einf端hrung in Topic Maps XML - Content Topic Maps Elemente werden in XTM Fragment 端berf端hrt simple Datentypen werden in Zeichenketten 端bersetzt Zeichenketten werden unverarbeitet in den Strom geschrieben topicmapslab.de 32
  • 33. Einf端hrung in Topic Maps ENDE topicmapslab.de