Einführung in Topic Maps




                    Topic Maps Query Language
                                Session 7




 ...
Einführung in Topic Maps
Review – Session 6
 1. FLW(O)R Style
    ●   RETURN-Clause
    ●   WHERE-Clause
    ●   ORDER-BY ...
Einführung in Topic Maps
Agenda
Useful TMQL Expression
 1. If-Then-Else
TMQL Part II
 1. Delete Expression
 2. Insert Expr...
Einführung in Topic Maps




                   Sprachbestandteile
                        Useful Expression




 topicmap...
Einführung in Topic Maps
Bedingte Anweisung
 ●   bedingte Auswertung von Ergebnissen
 ●   erlaubt bedingte Verzweigung zur...
Einführung in Topic Maps
Bedingte Anweisung
 ●   Pfadausdruck nach Schlüsselwort IF bestimmt Verzweigung
      ●   leere M...
Einführung in Topic Maps
Bedingte Anweisung
%prefix o http://psi.ontopia.net/music/
FOR $topic IN // tm:subject
RETURN
   ...
Einführung in Topic Maps
Bedingte Anweisung NCL
 ●   Kurzform für bedingte Anweisung
 ●   Bedingung repräsentiert „Then“-Z...
Einführung in Topic Maps
Bedingte Anweisung NCL
%prefix o http://psi.ontopia.net/music/
FOR $topic IN // tm:subject
RETURN...
Einführung in Topic Maps




                   TMQL – Part II




 topicmapslab.de
Einführung in Topic Maps
TMQL Part II
 ●   kein ISO-Standard oder Draft
 ●   basiert auf TMQL Part I ( TMQL – Query Langua...
Einführung in Topic Maps
TMQL Part II
 ●   definiert Veränderungsoperationen für Topic Maps
      ●   Einfügeoperation
   ...
Einführung in Topic Maps




                   Sprachbestandteile
                        Insert Expression




 topicmap...
Einführung in Topic Maps
Insert Expression
 ●   Erzeugen neuer Topic Maps Konstrukte
 ●   Verwendung von CTM als Definitio...
Einführung in Topic Maps
Insert Expression
 ●   Grammatik
         insert-expression ::=   INSERT “““ctm-stream “““
      ...
Einführung in Topic Maps
Insert Expression
 INSERT “““ <http://psi.example.org/topic>. “““
 → Fügt ein neues Topic mit dem...
Einführung in Topic Maps




                   Sprachbestandteile
                        Delete Expression




 topicmap...
Einführung in Topic Maps
Delete Expression
 ●   Entfernen bestehender Topic Maps Konstrukte
 ●   Adressierung von Konstruk...
Einführung in Topic Maps
Delete Expression
 ●   direkte Adressierung über Pfadausdruck und Filter
 ●   Grammatik
     dele...
Einführung in Topic Maps
Delete Expression
   DELETE CASCADE http://en.wikipedia.org/wiki/Puccini
   → entfernt das Topic ...
Einführung in Topic Maps
Delete Expression
   DELETE CASCADE http://psi.ontopia.net/music/composer >> instances
   → entfe...
Einführung in Topic Maps




                   Sprachbestandteile
                        Merge Expression




 topicmaps...
Einführung in Topic Maps
Merge Expression
 ●   Mergen von Topics gemäß TMDM
 ●   Definition einer Menge von Topics, welche...
Einführung in Topic Maps
Merge Expression
MERGE // http://psi.example.org/type [ . / email == „person@gmail.com“ ]


→ all...
Einführung in Topic Maps
Merge Expression
MERGE $person, $other
WHERE $person ISA person AND $other ISA person
   AND $per...
Einführung in Topic Maps
Merge Expression
 ●   Mergen von Assoziation
 ●   Definition einer Menge von Assoziation, welche ...
Einführung in Topic Maps
Association-Definition
 ●   äquivalent zu Predicate-Invocation (eingeschränkte Syntax)
 ●   liefe...
Einführung in Topic Maps
Association-Definition
   %prefix m http://psi.ontopia.net/music/
   m:composed-by (
      m:comp...
Einführung in Topic Maps
Association-Definition
   %prefix m http://psi.ontopia.net/music/
   m:composed-by (
      tm:sub...
Einführung in Topic Maps
Merge Expression
   %prefix m http://psi.ontopia.net/music/
   MERGE m:composed-by (
      tm:sub...
Einführung in Topic Maps
Merge Expression
 ●   Bedingungen
      ●   selber Typ
      ●   selber Scope


 ●   Funktionswei...
Einführung in Topic Maps




                       ENDE




 topicmapslab.de
Nächste SlideShare
Wird geladen in …5
×

TMQL tutorial - part 7

980 Aufrufe

Veröffentlicht am

Veröffentlicht in: Bildung
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

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

Keine Downloads
Aufrufe
Aufrufe insgesamt
980
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
58
Aktionen
Geteilt
0
Downloads
9
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

TMQL tutorial - part 7

  1. 1. Einführung in Topic Maps Topic Maps Query Language Session 7 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 6 1. FLW(O)R Style ● RETURN-Clause ● WHERE-Clause ● ORDER-BY Clause ● FOR-Clause 2. Verschachtelung 3. Content Types ● XML ● CTM topicmapslab.de
  3. 3. Einführung in Topic Maps Agenda Useful TMQL Expression 1. If-Then-Else TMQL Part II 1. Delete Expression 2. Insert Expression 3. Merge Expression topicmapslab.de
  4. 4. Einführung in Topic Maps Sprachbestandteile Useful Expression topicmapslab.de
  5. 5. Einführung in Topic Maps Bedingte Anweisung ● bedingte Auswertung von Ergebnissen ● erlaubt bedingte Verzweigung zur Verarbeitungszeit ● Grammatik content ::= if path-expression then content [ else content ] topicmapslab.de 5
  6. 6. Einführung in Topic Maps Bedingte Anweisung ● Pfadausdruck nach Schlüsselwort IF bestimmt Verzweigung ● leere Menge → ELSE-Zweig ● ELSE-Zweig ist optional → leere Menge bei fehlender Definition topicmapslab.de 6
  7. 7. Einführung in Topic Maps Bedingte Anweisung %prefix o http://psi.ontopia.net/music/ FOR $topic IN // tm:subject RETURN IF $topic ISA o:composer THEN $topic >> indicators ELSE $topic / tm:name [0] topicmapslab.de 7
  8. 8. Einführung in Topic Maps Bedingte Anweisung NCL ● Kurzform für bedingte Anweisung ● Bedingung repräsentiert „Then“-Zweig ● Grammatik content ::= path-expression || path-expression topicmapslab.de 8
  9. 9. Einführung in Topic Maps Bedingte Anweisung NCL %prefix o http://psi.ontopia.net/music/ FOR $topic IN // tm:subject RETURN $topic >> indicators >> atomify [0] || $topic >> locators >> atomify [0] topicmapslab.de 9
  10. 10. Einführung in Topic Maps TMQL – Part II topicmapslab.de
  11. 11. Einführung in Topic Maps TMQL Part II ● kein ISO-Standard oder Draft ● basiert auf TMQL Part I ( TMQL – Query Language ) ● basiert syntaktisch auf dem Draft 2007 topicmapslab.de 11
  12. 12. Einführung in Topic Maps TMQL Part II ● definiert Veränderungsoperationen für Topic Maps ● Einfügeoperation ● Löschoperation ● Änderungsoperation ● Merge-Regeln topicmapslab.de 12
  13. 13. Einführung in Topic Maps Sprachbestandteile Insert Expression topicmapslab.de
  14. 14. Einführung in Topic Maps Insert Expression ● Erzeugen neuer Topic Maps Konstrukte ● Verwendung von CTM als Definitionssprache ● CTM-Content äquivalent zu FLW(O)R Style ● Verwendung von Variablen (gebunden durch Where-Klausel) ● erlaubt auch Änderung bestehender Elemente topicmapslab.de 14
  15. 15. Einführung in Topic Maps Insert Expression ● Grammatik insert-expression ::= INSERT “““ctm-stream “““ { WHERE query-expression } topicmapslab.de 15
  16. 16. Einführung in Topic Maps Insert Expression INSERT “““ <http://psi.example.org/topic>. “““ → Fügt ein neues Topic mit dem Subject-Identifier hinzu INSERT “““ { $topic >> indicators >> atomify [0] ISA <http://psi.example.org/topic> . } “““ WHERE $topic ISA tm:subject → Fügt jedem Topic den Typ http://psi.example.org/topic hinzu topicmapslab.de 16
  17. 17. Einführung in Topic Maps Sprachbestandteile Delete Expression topicmapslab.de
  18. 18. Einführung in Topic Maps Delete Expression ● Entfernen bestehender Topic Maps Konstrukte ● Adressierung von Konstrukten über Pfadausdruck ● Abhängigkeit werden nicht automatisch entfernt (z.B. Topic als Reifier, Topic als Typ) topicmapslab.de 18
  19. 19. Einführung in Topic Maps Delete Expression ● direkte Adressierung über Pfadausdruck und Filter ● Grammatik delete-expression ::= DELETE { CASCADE } simple-content {filter-postfix} WHERE boolean-expression ● Schlüsselwort CASCADE definiert Löschen aller Abhängigkeiten ● nicht kaskadiert ( Löschen wird abgebrochen ) ● Where-Klausel definiert Wertebereich der Variablen topicmapslab.de 19
  20. 20. Einführung in Topic Maps Delete Expression DELETE CASCADE http://en.wikipedia.org/wiki/Puccini → entfernt das Topic Puccini und alle seine Abhängigkeiten – gespielte Rollen und Assoziation – alle Namen und Occurrences – Verwendung als Theme (Konstrukte werden gelöscht) – Verwendung als Reifier (Reifikation wird aufgehoben) topicmapslab.de 20
  21. 21. Einführung in Topic Maps Delete Expression DELETE CASCADE http://psi.ontopia.net/music/composer >> instances → entfernt alle Komponisten aus der Topic Map DELETE CASCADE ALL → entfernt jegliche Konstrukte aus der Topic Map topicmapslab.de 21
  22. 22. Einführung in Topic Maps Sprachbestandteile Merge Expression topicmapslab.de
  23. 23. Einführung in Topic Maps Merge Expression ● Mergen von Topics gemäß TMDM ● Definition einer Menge von Topics, welche gemergt werden sollen ● Verwendung von Variablen ● Where-Klausel schränkt Wertebereich der Variablen ein ● Grammatik merge-expression ::= MERGE <value-expression> WHERE boolean-expression topicmapslab.de 23
  24. 24. Einführung in Topic Maps Merge Expression MERGE // http://psi.example.org/type [ . / email == „person@gmail.com“ ] → alle Topics, welche die folgenden Bedingung erfüllen, werden gemergt ● Instanz vom Typ http://psi.example.org/type ● besitzen mindestens eine Occurrence vom Typ email ● Wert mindestens einer dieser Occurrence ist person@gmail.com topicmapslab.de 24
  25. 25. Einführung in Topic Maps Merge Expression MERGE $person, $other WHERE $person ISA person AND $other ISA person AND $person / email == $other / email → Personen mit der selben E-Mail Adresse werden gemergt topicmapslab.de 25
  26. 26. Einführung in Topic Maps Merge Expression ● Mergen von Assoziation ● Definition einer Menge von Assoziation, welche verschmelzen sollen ● Grammatik merge-expression ::= MERGE association-definition WHERE boolean-expression topicmapslab.de 26
  27. 27. Einführung in Topic Maps Association-Definition ● äquivalent zu Predicate-Invocation (eingeschränkte Syntax) ● liefern Menge von Assoziation passend zum definierten Muster ● Ellipse hebt strikte Verarbeitung auf association-definition ::= < part [ , … ] > part ::= (ident | variable) ':' (ident | variable) topicmapslab.de 27
  28. 28. Einführung in Topic Maps Association-Definition %prefix m http://psi.ontopia.net/music/ m:composed-by ( m:composer : http://en.wikipedia.net/wiki/Puccini ) → liefert alle Assoziationen, welche ● vom Typ „komponiert“ ist ● exakt eine Rolle vom Typ „Komponist“ gespielt von Puccini besitzt topicmapslab.de 28
  29. 29. Einführung in Topic Maps Association-Definition %prefix m http://psi.ontopia.net/music/ m:composed-by ( tm:subject : http://en.wikipedia.net/wiki/Puccini , … ) → liefert alle Assoziationen, welche ● vom Typ „komponiert“ ist ● mindestens eine Rolle gespielt von Puccini besitzt → der Rollentyp ist nicht eingeschränkt topicmapslab.de 29
  30. 30. Einführung in Topic Maps Merge Expression %prefix m http://psi.ontopia.net/music/ MERGE m:composed-by ( tm:subject : http://en.wikipedia.net/wiki/Puccini , … ) → verschmelzen aller Assoziationen vom Typ „komponiert“, welche von Puccini gespielt werden topicmapslab.de 30
  31. 31. Einführung in Topic Maps Merge Expression ● Bedingungen ● selber Typ ● selber Scope ● Funktionsweise: ● Alle nicht vorhandenen Rollen werden kopiert ● Quell-Assoziation wird gelöscht ● Reifier werden verschmolzen topicmapslab.de 31
  32. 32. Einführung in Topic Maps ENDE topicmapslab.de

×