Einführung in Topic Maps




                    Topic Maps Query Language
                                Session 1




 ...
Einführung in Topic Maps
Agenda
 1. Grundlagen
    ●   TMQL Metamodell
         –   Vergleich zum TMDM
    ●   Grammatik
 ...
Einführung in Topic Maps




                   Grundlagen
                       Metamodell




 topicmapslab.de
Einführung in Topic Maps
Metamodell
 ●   als Topic Map repräsentiert
 ●   jedes Topic kann im Query verwendet werden
 ●   ...
Einführung in Topic Maps
TMDM




 topicmapslab.de
Einführung in Topic Maps
TMQL




 ●   Topic Map Konstrukt existiert nicht
       ●   keine Reifikation von Topic Maps mög...
Einführung in Topic Maps
TMDM




 topicmapslab.de
Einführung in Topic Maps
TMDM → TMQL




 topicmapslab.de
Einführung in Topic Maps
TMQL




 ●   keine Unterscheidung zwischen Name und Occurrence
  → Characteristics




 topicmap...
Einführung in Topic Maps
TMDM




 topicmapslab.de
Einführung in Topic Maps
TMDM → TMQL




 topicmapslab.de
Einführung in Topic Maps
TMQL




 ●   keine direkte Unterstützung von Varianten
  → Abfrage nur über spezielle Funktion

...
Einführung in Topic Maps
TMDM




 topicmapslab.de
Einführung in Topic Maps
TMDM → TMQL




 topicmapslab.de
Einführung in Topic Maps
TMQL




 ●   keine Rollenkonstrukte
  → keine Reifikation von Rollen




 topicmapslab.de
Einführung in Topic Maps
Zusammenfassung
 ●   keine Unterscheidung zwischen Namen und
     Occurrences
 ●   keine Variante...
Einführung in Topic Maps




                   Grundlagen
                       Grammatik




 topicmapslab.de
Einführung in Topic Maps
Grammatik
 ●   in drei Ebene definiert
 ●   jede Ebene inspiriert von anderen Standards




     ...
Einführung in Topic Maps
Token Level
 ●   Terminalsymbole der Sprache
 ●   Definition auf Basis von regulären Ausdrücken

...
Einführung in Topic Maps
Canonical Level
 ●   Definition von Produktionsregeln


     Beispiel: tuple-expression := <value...
Einführung in Topic Maps
Non-Canonical Level
 ●   Termsubstitution als neue Produktionsregeln
 ●   Definition von kürzeren...
Einführung in Topic Maps




                   Sprachbestandteile
                      Literale und Konstanten




 topi...
Einführung in Topic Maps
Literale und Konstanten
 ●   Konstanten ( atoms ) sind Datentypen und Operatoren
 ●   Übernahme v...
Einführung in Topic Maps
Literale und Konstanten
    atom                                    possible value
    atom      ...
Einführung in Topic Maps




                   Sprachbestandteile
                      Topic Identifizierung




 topicm...
Einführung in Topic Maps
Topic Identifizierung
 ●   Verwendung von Referenzen oder String Literalen


 ●   String Literale...
Einführung in Topic Maps
Topic Identifizierung
 ●   item-identifier
             puccini

 ●   subject-identifier
        ...
Einführung in Topic Maps
Topic Identifizierung
 ●   Item-identifier
             ”puccini“ << item

 ●   Subject-identifie...
Einführung in Topic Maps




                   Sprachbestandteile
                      Navigationskonzept




 topicmaps...
Einführung in Topic Maps
Navigationskonzept
 ●   basiert auf dem Proxy-Konzept des TMRM
 ●   Modell der Topic Map als abst...
Einführung in Topic Maps
Navigationskonzept - Syntax
   DIRECTION ::= '<<' | '>>'


   AXIS-NAME ::= 'item' | 'indicators'...
Einführung in Topic Maps
Achse - indicators
 ●   keine optionalen Typen
 ●   vorwärts: alle Subject-Identifier eines Topic...
Einführung in Topic Maps
Achse - indicators


        http://en.wikipedia.org/wiki/Puccini >> indicators




        “http...
Einführung in Topic Maps
Achse - locators
 ●   keine optionalen Typen
 ●   vorwärts: alle Subject-Locator eines Topics
 ● ...
Einführung in Topic Maps
Achse - locators


        http://en.wikipedia.org/wiki/Puccini >> locators




        “http://e...
Einführung in Topic Maps
Achse - item
 ●   keine optionalen Typen
 ●   ohne Pluralisierung!
                       → items...
Einführung in Topic Maps
Achse - item


        http://en.wikipedia.org/wiki/Puccini >> item




        “http://en.wikipe...
Einführung in Topic Maps
Achse - types
 ●   keine optionalen Typen
 ●   vorwärts: alle Typen eines Topics oder der Typ ein...
Einführung in Topic Maps
Achse - types


        http://en.wikipedia.org/wiki/Puccini >> types
        http://en.wikipedia...
Einführung in Topic Maps
Achse - supertypes
 ●   keine optionalen Typen
 ●   vorwärts: alle Super-Typen eines Topic Typs
 ...
Einführung in Topic Maps
Achse - supertypes


        http://psi.ontopia.net/music/composer >> supertypes
        http://p...
Einführung in Topic Maps
TMQL – Typhierarchie

                                 A


           D                 B        ...
Einführung in Topic Maps
TMQL – Typhierarchie

                                  A


           D                 B       ...
Einführung in Topic Maps
TMQL – Typhierarchie

                                  A


           D                 B       ...
Einführung in Topic Maps
TMQL – Typhierarchie

                                  A


           D                 B       ...
Einführung in Topic Maps
Achse - characteristics
 ●   vorwärts: alle Eigenschaften eines Topics


 ●   rückwärts: das Topi...
Einführung in Topic Maps
Achse - characteristics

             http://en.wikipedia.org/wiki/Puccini
                      ...
Einführung in Topic Maps
TMQL – characteristics axis

                             Name 1        t


                     ...
Einführung in Topic Maps
TMQL – characteristics axis

                              Name 1             t


               ...
Einführung in Topic Maps




                       ENDE




 topicmapslab.de
Upcoming SlideShare
Loading in …5
×

TMQL tutorial - part 1

1,914 views

Published on

In this first part of TMQL tutorials you learn the basics of TMQL: the metamodel, the grammar, the topic identification and the basic navigation concept.

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
1,914
On SlideShare
0
From Embeds
0
Number of Embeds
473
Actions
Shares
0
Downloads
13
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

TMQL tutorial - part 1

  1. 1. Einführung in Topic Maps Topic Maps Query Language Session 1 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 Agenda 1. Grundlagen ● TMQL Metamodell – Vergleich zum TMDM ● Grammatik 2. TMQL als Sprache ● Topic Identifizierung ● Navigationskonzept topicmapslab.de
  3. 3. Einführung in Topic Maps Grundlagen Metamodell topicmapslab.de
  4. 4. Einführung in Topic Maps Metamodell ● als Topic Map repräsentiert ● jedes Topic kann im Query verwendet werden ● Topic Maps Elemente anders repräsentiert als im TMDM topicmapslab.de
  5. 5. Einführung in Topic Maps TMDM topicmapslab.de
  6. 6. Einführung in Topic Maps TMQL ● Topic Map Konstrukt existiert nicht ● keine Reifikation von Topic Maps möglich ● Abfrage aller Topics bzw. Assoziation schwer topicmapslab.de
  7. 7. Einführung in Topic Maps TMDM topicmapslab.de
  8. 8. Einführung in Topic Maps TMDM → TMQL topicmapslab.de
  9. 9. Einführung in Topic Maps TMQL ● keine Unterscheidung zwischen Name und Occurrence → Characteristics topicmapslab.de
  10. 10. Einführung in Topic Maps TMDM topicmapslab.de
  11. 11. Einführung in Topic Maps TMDM → TMQL topicmapslab.de
  12. 12. Einführung in Topic Maps TMQL ● keine direkte Unterstützung von Varianten → Abfrage nur über spezielle Funktion topicmapslab.de
  13. 13. Einführung in Topic Maps TMDM topicmapslab.de
  14. 14. Einführung in Topic Maps TMDM → TMQL topicmapslab.de
  15. 15. Einführung in Topic Maps TMQL ● keine Rollenkonstrukte → keine Reifikation von Rollen topicmapslab.de
  16. 16. Einführung in Topic Maps Zusammenfassung ● keine Unterscheidung zwischen Namen und Occurrences ● keine Varianten von Namen ● keine Rollenkonstrukte ● kein Topic Map Konstrukt topicmapslab.de
  17. 17. Einführung in Topic Maps Grundlagen Grammatik topicmapslab.de
  18. 18. Einführung in Topic Maps Grammatik ● in drei Ebene definiert ● jede Ebene inspiriert von anderen Standards topicmapslab.de
  19. 19. Einführung in Topic Maps Token Level ● Terminalsymbole der Sprache ● Definition auf Basis von regulären Ausdrücken Token Level topicmapslab.de 19
  20. 20. Einführung in Topic Maps Canonical Level ● Definition von Produktionsregeln Beispiel: tuple-expression := <value-expression> Canonical Level Token Level topicmapslab.de 20
  21. 21. Einführung in Topic Maps Non-Canonical Level ● Termsubstitution als neue Produktionsregeln ● Definition von kürzeren Ausdrücken anchor / tm:name ==> anchor >> chracteristics tm:name Non-Canonical Level Canonical Level Token Level topicmapslab.de 21
  22. 22. Einführung in Topic Maps Sprachbestandteile Literale und Konstanten topicmapslab.de
  23. 23. Einführung in Topic Maps Literale und Konstanten ● Konstanten ( atoms ) sind Datentypen und Operatoren ● Übernahme von CTM Datentypen topicmapslab.de
  24. 24. Einführung in Topic Maps Literale und Konstanten atom possible value atom Undefined | boolean | number | date | dateTime | string | iri undefined undef boolean true or false number decimal or integer decimal /[+-]?d+(.d+)?/ integer /[+-]?d+/ date '-'? yyyy '-' mm '-' dd (zzzzzz)? dateTime '-'? yyyy '-' mm '-' dd 'T' hh ':' mm ':' ss ('.' s+)? (zzzzzz)? iri see RFC 3987 string /"([^"]|")*"/ | /'([^']|')*'/ topicmapslab.de
  25. 25. Einführung in Topic Maps Sprachbestandteile Topic Identifizierung topicmapslab.de
  26. 26. Einführung in Topic Maps Topic Identifizierung ● Verwendung von Referenzen oder String Literalen ● String Literale durch Achsen übersetzt ● Referenzen werden automatisch übersetzt ● Subject-Identifier ● Subject-Locator ● Item-Identifier topicmapslab.de
  27. 27. Einführung in Topic Maps Topic Identifizierung ● item-identifier puccini ● subject-identifier http://en.wikipedia.org/wiki/Puccini ● subject-locator http://en.wikipedia.org/wiki/Puccini topicmapslab.de
  28. 28. Einführung in Topic Maps Topic Identifizierung ● Item-identifier ”puccini“ << item ● Subject-identifier “http://en.wikipedia.org/wiki/Puccini“ << indicators ● Subject-locator “http://en.wikipedia.org/wiki/Puccini“ << locators topicmapslab.de
  29. 29. Einführung in Topic Maps Sprachbestandteile Navigationskonzept topicmapslab.de
  30. 30. Einführung in Topic Maps Navigationskonzept ● basiert auf dem Proxy-Konzept des TMRM ● Modell der Topic Map als abstrakter bidirektionaler Graph ● Definition von 12 Achsen ( +2 NCL ) topicmapslab.de 30
  31. 31. Einführung in Topic Maps Navigationskonzept - Syntax DIRECTION ::= '<<' | '>>' AXIS-NAME ::= 'item' | 'indicators' | 'locators' | 'traverse' | 'players' | 'roles' | 'types' | 'reifier' | 'atomify' | 'characteristics' | 'supertypes' | 'scope' STEP ::= DIRECTION AXIS-NAME [ TOPIC-REF ] topicmapslab.de 31
  32. 32. Einführung in Topic Maps Achse - indicators ● keine optionalen Typen ● vorwärts: alle Subject-Identifier eines Topics ● rückwärts: Adressierung eines Topics mit Subject Identifier topicmapslab.de 32
  33. 33. Einführung in Topic Maps Achse - indicators http://en.wikipedia.org/wiki/Puccini >> indicators “http://en.wikipedia.org/wiki/Puccini” << indicators topicmapslab.de 33
  34. 34. Einführung in Topic Maps Achse - locators ● keine optionalen Typen ● vorwärts: alle Subject-Locator eines Topics ● rückwärts: Adressierung eines Topics mit Subject Locator topicmapslab.de 34
  35. 35. Einführung in Topic Maps Achse - locators http://en.wikipedia.org/wiki/Puccini >> locators “http://en.wikipedia.org/wiki/Puccini” << locators topicmapslab.de 35
  36. 36. Einführung in Topic Maps Achse - item ● keine optionalen Typen ● ohne Pluralisierung! → items ● vorwärts: alle Item-Identifier eines Topics ● rückwärts: Adressierung eines Topics mit Item Identifier topicmapslab.de 36
  37. 37. Einführung in Topic Maps Achse - item http://en.wikipedia.org/wiki/Puccini >> item “http://en.wikipedia.org/wiki/Puccini” << item topicmapslab.de 37
  38. 38. Einführung in Topic Maps Achse - types ● keine optionalen Typen ● vorwärts: alle Typen eines Topics oder der Typ eines Topic Maps Konstruktes ● rückwärts: alle Instanzen eines Topic Typs ● NCL: instances – Achse ● vorwärts: alle Instanzen eines Topics Typs ● rückwärts: alle Typen einer Topics oder der Typ eines Topic Maps Konstruktes topicmapslab.de 38
  39. 39. Einführung in Topic Maps Achse - types http://en.wikipedia.org/wiki/Puccini >> types http://en.wikipedia.org/wiki/Puccini << instances http://psi.ontopia.net/music/composer << types http://psi.ontopia.net/music/composer >> instances topicmapslab.de 39
  40. 40. Einführung in Topic Maps Achse - supertypes ● keine optionalen Typen ● vorwärts: alle Super-Typen eines Topic Typs ● rückwärts: alle Sub-Typen eines Topic Typs ● NCL: subtypes – Achse ● vorwärts: alle Sub-Typen eines Topic Typs ● rückwärts: alle Super-Typen eines Topic Typs topicmapslab.de 40
  41. 41. Einführung in Topic Maps Achse - supertypes http://psi.ontopia.net/music/composer >> supertypes http://psi.ontopia.net/music/composer << subtypes http://psi.ontopia.net/music/musician << supertypes http://psi.ontopia.net/music/musician >> subtypes topicmapslab.de 41
  42. 42. Einführung in Topic Maps TMQL – Typhierarchie A D B C E F G e1 e2 g1 g2 topicmapslab.de 42
  43. 43. Einführung in Topic Maps TMQL – Typhierarchie A D B C E F G e1 e2 g1 g2 TMQL-Query: e1 >> types topicmapslab.de 43
  44. 44. Einführung in Topic Maps TMQL – Typhierarchie A D B C E F G e1 e2 g1 g2 TMQL-Query: E >> supertypes topicmapslab.de 44
  45. 45. Einführung in Topic Maps TMQL – Typhierarchie A D B C E F G e1 e2 g1 g2 TMQL-Query: A >> instances topicmapslab.de 45
  46. 46. Einführung in Topic Maps Achse - characteristics ● vorwärts: alle Eigenschaften eines Topics ● rückwärts: das Topic mit der Eigenschaft ● vordefinierte Typen ● alle Name tm:name ● alle Occurrences tm:occurrence topicmapslab.de 46
  47. 47. Einführung in Topic Maps Achse - characteristics http://en.wikipedia.org/wiki/Puccini >> characteristics http://en.wikipedia.org/wiki/Puccini >> characteristics tm:name http://en.wikipedia.org/wiki/Puccini >> characteristics tm:occurrence topicmapslab.de 47
  48. 48. Einführung in Topic Maps TMQL – characteristics axis Name 1 t Name 2 g e1 Occurrence 1 t Occurrence 2 g topicmapslab.de 48
  49. 49. Einführung in Topic Maps TMQL – characteristics axis Name 1 t Name 2 g e1 Occurrence 1 t Occurrence 2 g TMQL-Query: e1 >> characteristics g topicmapslab.de 49
  50. 50. Einführung in Topic Maps ENDE topicmapslab.de

×