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.
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. Einführung in Topic Maps
Agenda
1. Grundlagen
● TMQL Metamodell
– Vergleich zum TMDM
● Grammatik
2. TMQL als Sprache
● Topic Identifizierung
● Navigationskonzept
topicmapslab.de
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
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
15. Einführung in Topic Maps
TMQL
● keine Rollenkonstrukte
→ keine Reifikation von Rollen
topicmapslab.de
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
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. Einführung in Topic Maps
Sprachbestandteile
Literale und Konstanten
topicmapslab.de
23. Einführung in Topic Maps
Literale und Konstanten
● Konstanten ( atoms ) sind Datentypen und Operatoren
● Übernahme von CTM Datentypen
topicmapslab.de
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. Einführung in Topic Maps
Sprachbestandteile
Topic Identifizierung
topicmapslab.de
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
29. Einführung in Topic Maps
Sprachbestandteile
Navigationskonzept
topicmapslab.de
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
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
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
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
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
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
42. Einführung in Topic Maps
TMQL – Typhierarchie
A
D B C
E F G
e1 e2 g1 g2
topicmapslab.de
42
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. 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. 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. 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
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. 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