SlideShare a Scribd company logo
1 of 33
Download to read offline
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

More from Lutz Maicher

TMQL tutorial - part 2
TMQL tutorial - part 2TMQL tutorial - part 2
TMQL tutorial - part 2Lutz Maicher
 
TMQL tutorial - part 1
TMQL tutorial - part 1TMQL tutorial - part 1
TMQL tutorial - part 1Lutz Maicher
 
Topic Maps In The eHumanities
Topic Maps In The eHumanitiesTopic Maps In The eHumanities
Topic Maps In The eHumanitiesLutz Maicher
 
Medieninformatik und Topic Maps
Medieninformatik und Topic MapsMedieninformatik und Topic Maps
Medieninformatik und Topic MapsLutz Maicher
 
The Impact Of Semantic Handshakes
The Impact Of Semantic HandshakesThe Impact Of Semantic Handshakes
The Impact Of Semantic HandshakesLutz Maicher
 
Topic Maps Portals
Topic Maps PortalsTopic Maps Portals
Topic Maps PortalsLutz Maicher
 
Argumentation Trails and Topic Maps
Argumentation Trails and Topic MapsArgumentation Trails and Topic Maps
Argumentation Trails and Topic MapsLutz Maicher
 
Tutorial Introduction to Topic Maps
Tutorial Introduction to Topic MapsTutorial Introduction to Topic Maps
Tutorial Introduction to Topic MapsLutz Maicher
 
Topic Maps Lab and its portal at the Topic Maps User Conference 2009
Topic Maps Lab and its portal at the Topic Maps User Conference 2009Topic Maps Lab and its portal at the Topic Maps User Conference 2009
Topic Maps Lab and its portal at the Topic Maps User Conference 2009Lutz Maicher
 
Musica migrans - Topic Maps portal about the migration paths of Eastern Europ...
Musica migrans - Topic Maps portal about the migration paths of Eastern Europ...Musica migrans - Topic Maps portal about the migration paths of Eastern Europ...
Musica migrans - Topic Maps portal about the migration paths of Eastern Europ...Lutz Maicher
 
Einführung in Musica migrans
Einführung in Musica migransEinführung in Musica migrans
Einführung in Musica migransLutz Maicher
 
Dissertationsverteidigung "Autonome Topic Maps"
Dissertationsverteidigung "Autonome Topic Maps"Dissertationsverteidigung "Autonome Topic Maps"
Dissertationsverteidigung "Autonome Topic Maps"Lutz Maicher
 

More from Lutz Maicher (13)

TMQL tutorial - part 2
TMQL tutorial - part 2TMQL tutorial - part 2
TMQL tutorial - part 2
 
TMQL tutorial - part 1
TMQL tutorial - part 1TMQL tutorial - part 1
TMQL tutorial - part 1
 
Topic Maps In The eHumanities
Topic Maps In The eHumanitiesTopic Maps In The eHumanities
Topic Maps In The eHumanities
 
Musica migrans
Musica migransMusica migrans
Musica migrans
 
Medieninformatik und Topic Maps
Medieninformatik und Topic MapsMedieninformatik und Topic Maps
Medieninformatik und Topic Maps
 
The Impact Of Semantic Handshakes
The Impact Of Semantic HandshakesThe Impact Of Semantic Handshakes
The Impact Of Semantic Handshakes
 
Topic Maps Portals
Topic Maps PortalsTopic Maps Portals
Topic Maps Portals
 
Argumentation Trails and Topic Maps
Argumentation Trails and Topic MapsArgumentation Trails and Topic Maps
Argumentation Trails and Topic Maps
 
Tutorial Introduction to Topic Maps
Tutorial Introduction to Topic MapsTutorial Introduction to Topic Maps
Tutorial Introduction to Topic Maps
 
Topic Maps Lab and its portal at the Topic Maps User Conference 2009
Topic Maps Lab and its portal at the Topic Maps User Conference 2009Topic Maps Lab and its portal at the Topic Maps User Conference 2009
Topic Maps Lab and its portal at the Topic Maps User Conference 2009
 
Musica migrans - Topic Maps portal about the migration paths of Eastern Europ...
Musica migrans - Topic Maps portal about the migration paths of Eastern Europ...Musica migrans - Topic Maps portal about the migration paths of Eastern Europ...
Musica migrans - Topic Maps portal about the migration paths of Eastern Europ...
 
Einführung in Musica migrans
Einführung in Musica migransEinführung in Musica migrans
Einführung in Musica migrans
 
Dissertationsverteidigung "Autonome Topic Maps"
Dissertationsverteidigung "Autonome Topic Maps"Dissertationsverteidigung "Autonome Topic Maps"
Dissertationsverteidigung "Autonome Topic Maps"
 

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