SlideShare ist ein Scribd-Unternehmen logo
1 von 52
Downloaden Sie, um offline zu lesen
Einführung in Topic Maps




                    Topic Maps Query Language
                                Session 3




         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 1 and 2
 1. Meta-Modell von TMQL
 2. Grammatik
 3. Navigationskonzept
 4. Path-Language – Draft 2010 ( kurzer Einblick )




  topicmapslab.de
Einführung in Topic Maps
Agenda
 1. Postfix
    ●   Filter
         –    Boolean-Expression
         –    Filtertypen
    ●   Projektion
 2. Operatoren




   topicmapslab.de
Einführung in Topic Maps




                   Sprachbestandteile
                           Postfix




 topicmapslab.de
Einführung in Topic Maps
Postfix
 ●   als Ergänzung für Path-Expression ( Simple-Content )
 ●   erlauben exakte Definition der Ergebnismenge in Path-
     Expressions
 ●   Typen
      ●   Filter
      ●   Projektion




     topicmapslab.de
Einführung in Topic Maps




                   Sprachbestandteile
                           Filter




 topicmapslab.de
Einführung in Topic Maps
Filter
 ●   Filter nur nach kompletter Navigation
      ●   Filter nach jedem Schritt als Erweiterung einiger TMQL
          Engines
 ●   CL-Filter
      ●   immer Boolean-Expression
      ●   Syntax:      [ boolean-expression ]
 ●   NCL-Filter
      ●   zur vereinfachten Verwendung
      ●   Syntax ist variabel
     topicmapslab.de
                                                                   7
Einführung in Topic Maps
Boolean-Expression
 ●   quantitativ oder nicht-quantitativ
 ●   Unterstützung von boolean'schen Operatoren
      ●   Konjunktion mit AND
      ●   Disjunktion mit OR
      ●   Negation mit NOT




     topicmapslab.de
                                                  8
Einführung in Topic Maps
Quantitative Boolean-Expression
 ●   numerisch strikte Bedingung
      ●   Anzahl der erfüllenden Tuple
 ●   untere Grenze spezifiziert
          AT LEAST number binding-set SATISFIES boolean-expression
 ●   obere Grenze spezifiziert
          AT MOST number binding-set SATISFIES boolean-expression
 ●   Abhängigkeit von Variablen durch Binding-Set definiert



     topicmapslab.de
                                                                     9
Einführung in Topic Maps
Quantitative Boolean-Expression
   %prefix o http://psi.ontopia.net/music/
   // o:composer
      [
          AT MOST 3
          $opera IN // o:opera
          SATISFIES $opera >> traverse o:composed-by == .
      ]




  topicmapslab.de
                                                            10
Einführung in Topic Maps
Quantitative Boolean-Expression
   %prefix o http://psi.ontopia.net/music/
   // o:composer
      [
          AT MOST 3
          $opera IN // o:opera
          SATISFIES $opera >> traverse o:composed-by == .
      ]

                        Filterdefinition


  topicmapslab.de
                                                            11
Einführung in Topic Maps
Quantitative Boolean-Expression
   %prefix o http://psi.ontopia.net/music/
   // o:composer
                                   Numerische Quantifizierung
      [
          AT MOST 3
          $opera IN // o:opera
          SATISFIES $opera >> traverse o:composed-by == .
      ]




  topicmapslab.de
                                                                12
Einführung in Topic Maps
Quantitative Boolean-Expression
   %prefix o http://psi.ontopia.net/music/
   // o:composer
                                             Variable-Binding
      [
          AT MOST 3
          $opera IN // o:opera
          SATISFIES $opera >> traverse o:composed-by == .
      ]




  topicmapslab.de
                                                                13
Einführung in Topic Maps
Quantitative Boolean-Expression
   %prefix o http://psi.ontopia.net/music/
   // o:composer
      [
          AT MOST 3
          $opera IN // o:opera
          SATISFIES $opera >> traverse o:composed-by == .
      ]

                                             Bedingung


  topicmapslab.de
                                                            14
Einführung in Topic Maps
Quantitative Boolean-Expression
   %prefix o http://psi.ontopia.net/music/
   // o:composer
      [
          AT MOST 3
          $opera IN // o:opera
          SATISFIES $opera >> traverse o:composed-by == .
      ]
      → alle Komponisten, welche maximal 3 Opern komponiert
      haben

  topicmapslab.de
                                                              15
Einführung in Topic Maps
Quantitative Boolean-Expression
 ●   numerisch freie Bedingung
 ●   exakte Anzahl der erfüllenden Tuple irrelevant
 ●   unteres Minimum
         SOME binding-set SATISFIES boolean-expression
 ●   oberes Maximum
         EVERY binding-set SATISFIES boolean-expression




     topicmapslab.de
                                                          16
Einführung in Topic Maps
Quantitative Boolean-Expression
   %prefix o http://psi.ontopia.net/music/
   // o:composer
      [
          SOME
          $opera IN // o:opera
          SATISFIES $opera >> traverse o:composed-by == .
      ]




  topicmapslab.de
                                                            17
Einführung in Topic Maps
Quantitative Boolean-Expression
   %prefix o http://psi.ontopia.net/music/
   // o:composer
      [
          SOME
          $opera IN // o:opera
          SATISFIES $opera >> traverse o:composed-by == .
      ]
      → alle Komponisten, welche mindestens eine Oper
      komponiert haben

  topicmapslab.de
                                                            18
Einführung in Topic Maps
Nicht-Quantitative Boolean-Expression
 ●   Bedingung nicht an numerische Grenzen gebunden
 ●   reine Existenz entscheidend
      ●   Syntax:      EXISTS boolean-expression
 ●   Schlüsselwort EXISTS optional
 ●   NCL-Vertreter
      ●   Typ-Instanz-Beziehung ( ISA-Expression )
      ●   Supertyp-Subtyp-Beziehung ( AKO-Expression )



     topicmapslab.de
                                                         19
Einführung in Topic Maps
Nicht-Quantitative Boolean-Expression
   %prefix o http://psi.ontopia.net/music/
   // o:composer
      [
          . ISA o:musician
      ]




  topicmapslab.de
                                             20
Einführung in Topic Maps
Nicht-Quantitative Boolean-Expression
   %prefix o http://psi.ontopia.net/music/
   // o:composer
      [
          . ISA o:musician
      ]


   → alle Komponisten, welche auch Instanz von Musiker sind



  topicmapslab.de
                                                              21
Einführung in Topic Maps
NCL-Filter
 ●   spezielle Filter auf dem NCL
      ●   Index-Filter
      ●   Range-Filter
      ●   Scope-Filter
      ●   Typ-Filter
 ●   besitzen eine Entsprechung auf CL




     topicmapslab.de
                                         22
Einführung in Topic Maps
NCL-Filter – Index-Filter
 ●   spezielles Tuple aus der Ergebnissequenz
 ●   Null-basierter Index
 ●   leere Menge wenn Index außerhalb des möglichen Bereichs
 ●   Syntax:
         [ number ] → [ $# == number ]
 ●   Bsp:
         // http://psi.ontopia.net/music/composer / tm:name [ 0 ]



     topicmapslab.de
                                                                    23
Einführung in Topic Maps
NCL-Filter – Range-Filter
 ●   spezieller Bereich aus der Ergebnissequenz
 ●   Null-basierte Indizes
 ●   alle Elemente die vom Index-Bereich abgedeckt werden
 ●   Syntax
         [ a .. b ] → [ a <= $# AND $# < b ]
 ●   Bsp:
         // http://psi.ontopia.net/music/composer / tm:name [ 0 .. 1 ]



     topicmapslab.de
                                                                     24
Einführung in Topic Maps
NCL-Filter – Scope-Filter
 ●   Filterung nach Themes
     @ theme           → [ . >> scope == theme ]
     [ @ theme ]       → [ . >> scope == theme ]
 ●   Bsp:
     // http://psi.ontopia.net/music/composer / tm:name
                       @http://psi.ontopia.net/basename/short-name
     oder
     // http://psi.ontopia.net/music/composer / tm:name
                       [ @http://psi.ontopia.net/basename/short-name ]
     topicmapslab.de
                                                                     25
Einführung in Topic Maps
NCL-Filter – Type-Filter
 ●   Filterung nach Typ
     [ ^ type ] → [ . >> types == type ]
     // type → [ . >> types == type ]
 ●   Bsp:
     %prefix o http://psi.ontopia.net/music/
     // o:composer >> traverse [ ^ o:opera ]
     oder
     // o:composer >> traverse // o:opera

     topicmapslab.de
                                               26
Einführung in Topic Maps
Vergleich Draft 2010
 ●   Draft 2010
      ●   Filterung nach jedem Navigationsschritt möglich
      ●   Kombination von Filtern
      ●   keine Projektion




     topicmapslab.de
                                                            27
Einführung in Topic Maps
Vergleich Draft 2010
 ●   Beispiel: Filter Draft 2010


         / composer [ . / firstname / value:: =~ „.*Puccini.*“ ] / role::


         / composer / webpage @web @italian / value::




     topicmapslab.de
                                                                            28
Einführung in Topic Maps




                   Sprachbestandteile
                        Projektion




 topicmapslab.de
Einführung in Topic Maps
Projektion
 ●   Alternative zu Filtern
 ●   Erzeugung von Tupeln mit mehren Elementen
 ●   Ausgangspunkt ist aktueller Knoten im Graph als Ergebnis der
     Navigation
 ●   Beschreibung als Tuple-Expression
 ●   optionale Sortierung definierbar
 ●   Syntax:      tuple-expression ::= ( <value-expression> )
                 value-expression ::= content { ASC | DESC }


     topicmapslab.de
                                                                    30
Einführung in Topic Maps
Projektion
   %prefix o http://psi.ontopia.net/music/
   // o:composer
      (
          .,
          . / tm:name ,
          . / tm:occurrence,
          . >> indicators
      )


  topicmapslab.de
                                             31
Einführung in Topic Maps
Projektion
   %prefix o http://psi.ontopia.net/music/
   // o:composer
      (
          .,
          . / tm:name ,
          . / tm:occurrence,
          . >> indicators
      )

                       Projektionsdefinition
  topicmapslab.de
                                               32
Einführung in Topic Maps
Projektion
   %prefix o http://psi.ontopia.net/music/
   // o:composer
      (                        aktueller Knoten

          .,
          . / tm:name ,
          . / tm:occurrence,
          . >> indicators
      )


  topicmapslab.de
                                                  33
Einführung in Topic Maps
Projektion
   %prefix o http://psi.ontopia.net/music/
   // o:composer
      (                           Projektionstupel
          .,
          . / tm:name ,
          . / tm:occurrence,
          . >> indicators
      )


  topicmapslab.de
                                                     34
Einführung in Topic Maps




                   Sprachbestandteile
                           Operatoren




 topicmapslab.de
Einführung in Topic Maps
Operatoren
 ●   erlaubt in so genannte Value-Expression oder Content
      ●   z.B.: Bestandteil einer Boolean-Expression
 ●   verschiedene Typen
      ●   mathematische Operatoren
      ●   Vergleichsoperatoren
      ●   Mengenoperatoren




     topicmapslab.de
                                                            36
Einführung in Topic Maps
mathematische Operatoren
 ●   Vorzeichen '-'
      ●   unterstützte Datentypen:
           –   Number




     topicmapslab.de
                                     37
Einführung in Topic Maps
mathematische Operatoren
 ●   Addition '+'
      ●   unterstützte Datentypen:
           –   Number
           –   String
           –   Date
           –   Time
           –   DateTime




     topicmapslab.de
                                     38
Einführung in Topic Maps
mathematische Operatoren
 ●   Subtraktion '-'
      ●   unterstützte Datentypen:
           –   Number
           –   Date
           –   Time
           –   DateTime




     topicmapslab.de
                                     39
Einführung in Topic Maps
mathematische Operatoren
 ●   Multiplikation '*'
      ●   unterstützte Datentypen:
           –   Number




     topicmapslab.de
                                     40
Einführung in Topic Maps
mathematische Operatoren
 ●   Division '%'
      ●   unterstützte Datentypen:
           –   Number




     Hinweis: im Draft 2010 ersetzt durch 'div'


     topicmapslab.de
                                                  41
Einführung in Topic Maps
mathematische Operatoren
 ●   Modulo 'mod'
      ●   unterstützte Datentypen:
           –   Number




     topicmapslab.de
                                     42
Einführung in Topic Maps
Vergleichsoperatoren
 ●   kleiner-als '<'
      ●   unterstützte Datentypen:
           –   Number
           –   String
           –   Date
           –   Time
           –   DateTime




     topicmapslab.de
                                     43
Einführung in Topic Maps
Vergleichsoperatoren
 ●   kleiner-oder-gleich '<='
      ●   unterstützte Datentypen:
           –   Number
           –   String
           –   Date
           –   Time
           –   DateTime




     topicmapslab.de
                                     44
Einführung in Topic Maps
Vergleichsoperatoren
 ●   größer-als '>'
      ●   unterstützte Datentypen:
           –   Number
           –   String
           –   Date
           –   Time
           –   DateTime




     topicmapslab.de
                                     45
Einführung in Topic Maps
Vergleichsoperatoren
 ●   größer-oder-gleich '>='
      ●   unterstützte Datentypen:
           –   Number
           –   String
           –   Date
           –   Time
           –   DateTime




     topicmapslab.de
                                     46
Einführung in Topic Maps
Vergleichsoperatoren
 ●   reguläre Ausdrücke '=~'
      ●   unterstützte Datentypen:
           –   String




     topicmapslab.de
                                     47
Einführung in Topic Maps
Vergleichsoperatoren
 ●   Gleichheit '=='
      ●   unterstützte Datentypen:
           –   Number
           –   String
           –   Date
           –   Time
           –   DateTime


     Hinweis: im Draft 2010 ersetzt durch '='

     topicmapslab.de
                                                48
Einführung in Topic Maps
Mengenoperatoren
 ●   Vereinigung '++'
      ●   Kombination beider Mengen als neue Sequenz
      ●   Beispiel:
             {[A, C], [E, F]} ++ { [C, D]} → {[A, C], [E, F], [C, D]}




     Hinweis: im Draft 2010 ersetzt durch 'union'


     topicmapslab.de
                                                                        49
Einführung in Topic Maps
Mengenoperatoren
 ●   Differenz '--'
      ●   entfernt die Elemente der ersten Menge, welche auch in der
          zweiten enthalten sind
      ●   Beispiel:
             {[A, C], [C, D]} -- { [C, D]} → {[A, C]}




     Hinweis: im Draft 2010 ersetzt durch 'minus'

     topicmapslab.de
                                                                       50
Einführung in Topic Maps
Mengenoperatoren
 ●   Schnittmenge '=='
      ●   liefert die Schnittmenge beider Mengen
      ●   Beispiel:
             {[A, C], [C, D]} == { [C, D]} → {[C, D]}




     Hinweis: im Draft 2010 ersetzt durch 'intersect'


     topicmapslab.de
                                                        51
Einführung in Topic Maps




                       ENDE




 topicmapslab.de

Weitere ähnliche Inhalte

Mehr von Lutz Maicher

TMQL tutorial - part 6
TMQL tutorial - part 6TMQL tutorial - part 6
TMQL tutorial - part 6Lutz 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
 

Mehr von Lutz Maicher (13)

TMQL tutorial - part 6
TMQL tutorial - part 6TMQL tutorial - part 6
TMQL tutorial - part 6
 
Maiana
MaianaMaiana
Maiana
 
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 3

  • 1. Einführung in Topic Maps Topic Maps Query Language Session 3 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 1 and 2 1. Meta-Modell von TMQL 2. Grammatik 3. Navigationskonzept 4. Path-Language – Draft 2010 ( kurzer Einblick ) topicmapslab.de
  • 3. Einführung in Topic Maps Agenda 1. Postfix ● Filter – Boolean-Expression – Filtertypen ● Projektion 2. Operatoren topicmapslab.de
  • 4. Einführung in Topic Maps Sprachbestandteile Postfix topicmapslab.de
  • 5. Einführung in Topic Maps Postfix ● als Ergänzung für Path-Expression ( Simple-Content ) ● erlauben exakte Definition der Ergebnismenge in Path- Expressions ● Typen ● Filter ● Projektion topicmapslab.de
  • 6. Einführung in Topic Maps Sprachbestandteile Filter topicmapslab.de
  • 7. Einführung in Topic Maps Filter ● Filter nur nach kompletter Navigation ● Filter nach jedem Schritt als Erweiterung einiger TMQL Engines ● CL-Filter ● immer Boolean-Expression ● Syntax: [ boolean-expression ] ● NCL-Filter ● zur vereinfachten Verwendung ● Syntax ist variabel topicmapslab.de 7
  • 8. Einführung in Topic Maps Boolean-Expression ● quantitativ oder nicht-quantitativ ● Unterstützung von boolean'schen Operatoren ● Konjunktion mit AND ● Disjunktion mit OR ● Negation mit NOT topicmapslab.de 8
  • 9. Einführung in Topic Maps Quantitative Boolean-Expression ● numerisch strikte Bedingung ● Anzahl der erfüllenden Tuple ● untere Grenze spezifiziert AT LEAST number binding-set SATISFIES boolean-expression ● obere Grenze spezifiziert AT MOST number binding-set SATISFIES boolean-expression ● Abhängigkeit von Variablen durch Binding-Set definiert topicmapslab.de 9
  • 10. Einführung in Topic Maps Quantitative Boolean-Expression %prefix o http://psi.ontopia.net/music/ // o:composer [ AT MOST 3 $opera IN // o:opera SATISFIES $opera >> traverse o:composed-by == . ] topicmapslab.de 10
  • 11. Einführung in Topic Maps Quantitative Boolean-Expression %prefix o http://psi.ontopia.net/music/ // o:composer [ AT MOST 3 $opera IN // o:opera SATISFIES $opera >> traverse o:composed-by == . ] Filterdefinition topicmapslab.de 11
  • 12. Einführung in Topic Maps Quantitative Boolean-Expression %prefix o http://psi.ontopia.net/music/ // o:composer Numerische Quantifizierung [ AT MOST 3 $opera IN // o:opera SATISFIES $opera >> traverse o:composed-by == . ] topicmapslab.de 12
  • 13. Einführung in Topic Maps Quantitative Boolean-Expression %prefix o http://psi.ontopia.net/music/ // o:composer Variable-Binding [ AT MOST 3 $opera IN // o:opera SATISFIES $opera >> traverse o:composed-by == . ] topicmapslab.de 13
  • 14. Einführung in Topic Maps Quantitative Boolean-Expression %prefix o http://psi.ontopia.net/music/ // o:composer [ AT MOST 3 $opera IN // o:opera SATISFIES $opera >> traverse o:composed-by == . ] Bedingung topicmapslab.de 14
  • 15. Einführung in Topic Maps Quantitative Boolean-Expression %prefix o http://psi.ontopia.net/music/ // o:composer [ AT MOST 3 $opera IN // o:opera SATISFIES $opera >> traverse o:composed-by == . ] → alle Komponisten, welche maximal 3 Opern komponiert haben topicmapslab.de 15
  • 16. Einführung in Topic Maps Quantitative Boolean-Expression ● numerisch freie Bedingung ● exakte Anzahl der erfüllenden Tuple irrelevant ● unteres Minimum SOME binding-set SATISFIES boolean-expression ● oberes Maximum EVERY binding-set SATISFIES boolean-expression topicmapslab.de 16
  • 17. Einführung in Topic Maps Quantitative Boolean-Expression %prefix o http://psi.ontopia.net/music/ // o:composer [ SOME $opera IN // o:opera SATISFIES $opera >> traverse o:composed-by == . ] topicmapslab.de 17
  • 18. Einführung in Topic Maps Quantitative Boolean-Expression %prefix o http://psi.ontopia.net/music/ // o:composer [ SOME $opera IN // o:opera SATISFIES $opera >> traverse o:composed-by == . ] → alle Komponisten, welche mindestens eine Oper komponiert haben topicmapslab.de 18
  • 19. Einführung in Topic Maps Nicht-Quantitative Boolean-Expression ● Bedingung nicht an numerische Grenzen gebunden ● reine Existenz entscheidend ● Syntax: EXISTS boolean-expression ● Schlüsselwort EXISTS optional ● NCL-Vertreter ● Typ-Instanz-Beziehung ( ISA-Expression ) ● Supertyp-Subtyp-Beziehung ( AKO-Expression ) topicmapslab.de 19
  • 20. Einführung in Topic Maps Nicht-Quantitative Boolean-Expression %prefix o http://psi.ontopia.net/music/ // o:composer [ . ISA o:musician ] topicmapslab.de 20
  • 21. Einführung in Topic Maps Nicht-Quantitative Boolean-Expression %prefix o http://psi.ontopia.net/music/ // o:composer [ . ISA o:musician ] → alle Komponisten, welche auch Instanz von Musiker sind topicmapslab.de 21
  • 22. Einführung in Topic Maps NCL-Filter ● spezielle Filter auf dem NCL ● Index-Filter ● Range-Filter ● Scope-Filter ● Typ-Filter ● besitzen eine Entsprechung auf CL topicmapslab.de 22
  • 23. Einführung in Topic Maps NCL-Filter – Index-Filter ● spezielles Tuple aus der Ergebnissequenz ● Null-basierter Index ● leere Menge wenn Index außerhalb des möglichen Bereichs ● Syntax: [ number ] → [ $# == number ] ● Bsp: // http://psi.ontopia.net/music/composer / tm:name [ 0 ] topicmapslab.de 23
  • 24. Einführung in Topic Maps NCL-Filter – Range-Filter ● spezieller Bereich aus der Ergebnissequenz ● Null-basierte Indizes ● alle Elemente die vom Index-Bereich abgedeckt werden ● Syntax [ a .. b ] → [ a <= $# AND $# < b ] ● Bsp: // http://psi.ontopia.net/music/composer / tm:name [ 0 .. 1 ] topicmapslab.de 24
  • 25. Einführung in Topic Maps NCL-Filter – Scope-Filter ● Filterung nach Themes @ theme → [ . >> scope == theme ] [ @ theme ] → [ . >> scope == theme ] ● Bsp: // http://psi.ontopia.net/music/composer / tm:name @http://psi.ontopia.net/basename/short-name oder // http://psi.ontopia.net/music/composer / tm:name [ @http://psi.ontopia.net/basename/short-name ] topicmapslab.de 25
  • 26. Einführung in Topic Maps NCL-Filter – Type-Filter ● Filterung nach Typ [ ^ type ] → [ . >> types == type ] // type → [ . >> types == type ] ● Bsp: %prefix o http://psi.ontopia.net/music/ // o:composer >> traverse [ ^ o:opera ] oder // o:composer >> traverse // o:opera topicmapslab.de 26
  • 27. Einführung in Topic Maps Vergleich Draft 2010 ● Draft 2010 ● Filterung nach jedem Navigationsschritt möglich ● Kombination von Filtern ● keine Projektion topicmapslab.de 27
  • 28. Einführung in Topic Maps Vergleich Draft 2010 ● Beispiel: Filter Draft 2010 / composer [ . / firstname / value:: =~ „.*Puccini.*“ ] / role:: / composer / webpage @web @italian / value:: topicmapslab.de 28
  • 29. Einführung in Topic Maps Sprachbestandteile Projektion topicmapslab.de
  • 30. Einführung in Topic Maps Projektion ● Alternative zu Filtern ● Erzeugung von Tupeln mit mehren Elementen ● Ausgangspunkt ist aktueller Knoten im Graph als Ergebnis der Navigation ● Beschreibung als Tuple-Expression ● optionale Sortierung definierbar ● Syntax: tuple-expression ::= ( <value-expression> ) value-expression ::= content { ASC | DESC } topicmapslab.de 30
  • 31. Einführung in Topic Maps Projektion %prefix o http://psi.ontopia.net/music/ // o:composer ( ., . / tm:name , . / tm:occurrence, . >> indicators ) topicmapslab.de 31
  • 32. Einführung in Topic Maps Projektion %prefix o http://psi.ontopia.net/music/ // o:composer ( ., . / tm:name , . / tm:occurrence, . >> indicators ) Projektionsdefinition topicmapslab.de 32
  • 33. Einführung in Topic Maps Projektion %prefix o http://psi.ontopia.net/music/ // o:composer ( aktueller Knoten ., . / tm:name , . / tm:occurrence, . >> indicators ) topicmapslab.de 33
  • 34. Einführung in Topic Maps Projektion %prefix o http://psi.ontopia.net/music/ // o:composer ( Projektionstupel ., . / tm:name , . / tm:occurrence, . >> indicators ) topicmapslab.de 34
  • 35. Einführung in Topic Maps Sprachbestandteile Operatoren topicmapslab.de
  • 36. Einführung in Topic Maps Operatoren ● erlaubt in so genannte Value-Expression oder Content ● z.B.: Bestandteil einer Boolean-Expression ● verschiedene Typen ● mathematische Operatoren ● Vergleichsoperatoren ● Mengenoperatoren topicmapslab.de 36
  • 37. Einführung in Topic Maps mathematische Operatoren ● Vorzeichen '-' ● unterstützte Datentypen: – Number topicmapslab.de 37
  • 38. Einführung in Topic Maps mathematische Operatoren ● Addition '+' ● unterstützte Datentypen: – Number – String – Date – Time – DateTime topicmapslab.de 38
  • 39. Einführung in Topic Maps mathematische Operatoren ● Subtraktion '-' ● unterstützte Datentypen: – Number – Date – Time – DateTime topicmapslab.de 39
  • 40. Einführung in Topic Maps mathematische Operatoren ● Multiplikation '*' ● unterstützte Datentypen: – Number topicmapslab.de 40
  • 41. Einführung in Topic Maps mathematische Operatoren ● Division '%' ● unterstützte Datentypen: – Number Hinweis: im Draft 2010 ersetzt durch 'div' topicmapslab.de 41
  • 42. Einführung in Topic Maps mathematische Operatoren ● Modulo 'mod' ● unterstützte Datentypen: – Number topicmapslab.de 42
  • 43. Einführung in Topic Maps Vergleichsoperatoren ● kleiner-als '<' ● unterstützte Datentypen: – Number – String – Date – Time – DateTime topicmapslab.de 43
  • 44. Einführung in Topic Maps Vergleichsoperatoren ● kleiner-oder-gleich '<=' ● unterstützte Datentypen: – Number – String – Date – Time – DateTime topicmapslab.de 44
  • 45. Einführung in Topic Maps Vergleichsoperatoren ● größer-als '>' ● unterstützte Datentypen: – Number – String – Date – Time – DateTime topicmapslab.de 45
  • 46. Einführung in Topic Maps Vergleichsoperatoren ● größer-oder-gleich '>=' ● unterstützte Datentypen: – Number – String – Date – Time – DateTime topicmapslab.de 46
  • 47. Einführung in Topic Maps Vergleichsoperatoren ● reguläre Ausdrücke '=~' ● unterstützte Datentypen: – String topicmapslab.de 47
  • 48. Einführung in Topic Maps Vergleichsoperatoren ● Gleichheit '==' ● unterstützte Datentypen: – Number – String – Date – Time – DateTime Hinweis: im Draft 2010 ersetzt durch '=' topicmapslab.de 48
  • 49. Einführung in Topic Maps Mengenoperatoren ● Vereinigung '++' ● Kombination beider Mengen als neue Sequenz ● Beispiel: {[A, C], [E, F]} ++ { [C, D]} → {[A, C], [E, F], [C, D]} Hinweis: im Draft 2010 ersetzt durch 'union' topicmapslab.de 49
  • 50. Einführung in Topic Maps Mengenoperatoren ● Differenz '--' ● entfernt die Elemente der ersten Menge, welche auch in der zweiten enthalten sind ● Beispiel: {[A, C], [C, D]} -- { [C, D]} → {[A, C]} Hinweis: im Draft 2010 ersetzt durch 'minus' topicmapslab.de 50
  • 51. Einführung in Topic Maps Mengenoperatoren ● Schnittmenge '==' ● liefert die Schnittmenge beider Mengen ● Beispiel: {[A, C], [C, D]} == { [C, D]} → {[C, D]} Hinweis: im Draft 2010 ersetzt durch 'intersect' topicmapslab.de 51
  • 52. Einführung in Topic Maps ENDE topicmapslab.de