SlideShare una empresa de Scribd logo
1 de 34
Descargar para leer sin conexión
Einführung in Topic Maps




                    Topic Maps Query Language
                                Session 4




         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 3
Postfix
    ●     Filter
           –   Boolean-Expression
           –   Filtertypen
    ●     Projektion
Operatoren




  topicmapslab.de
Einführung in Topic Maps
Agenda
 1. Funktionen
    ●   Draft 2007 Funktionen
    ●   TMQL4J Erweiterungen
    ●   Draft 2010 Funktionen




  topicmapslab.de
Einführung in Topic Maps




                   Sprachbestandteile
                           Funktionen




 topicmapslab.de
Einführung in Topic Maps
Funktionen
 ●   erlaubt als sogenannte Value-Expression oder Content
      ●   Bestandteil einer Boolean-Expression
      ●   Bestandteil von Select-Expressions
 ●   jeder Operator existiert als Funktion
 ●   alle im Namespace fn
                 (http://psi.topicmaps.org/tmql/1.0/functions/)




     topicmapslab.de
                                                                  5
Einführung in Topic Maps
Funktion - has-datatype
 ●   Identifier:       has-datatype
 ●   Argumente:        eine Menge von Konstrukten
 ●   Beschreibung:
      ●   liefert für jede Occurrence den Datentyp als Locator
      ●   liefert für andere Konstrukte das Systemtopic undef




     topicmapslab.de
                                                                 6
Einführung in Topic Maps
Funktion - has-datatype
 ●   Beispiel
     %prefix o http://psi.ontopia.net/music/
     // o:composer >> characteristics tm:occurrence
                             [ fn:has-datatype(.) == xsd:string ]

     → alle Occurrence vom Typ XSD String




     topicmapslab.de
                                                                    7
Einführung in Topic Maps
Funktion - has-variant
 ●   Identifier:       has-variant
 ●   Argumente:        eine Menge von Konstrukten
 ●   Beschreibung:
      ●   liefert die Varianten von Namen
      ●   sonst Systemtopic undef




     topicmapslab.de
                                                    8
Einführung in Topic Maps
Funktion - has-variant
 ●   Beispiel
     %prefix o http://psi.ontopia.net/music/
     http://en.wikipedia.org/wiki/Puccini >> characteristics tm:name
                       ( fn:has-variant(.) )

     → die Namensvarianten aller Namen von Puccini




     topicmapslab.de
                                                                       9
Einführung in Topic Maps
Funktion - length
 ●   Identifier:       length
 ●   Argumente:        eine Menge von Literalen
 ●   Beschreibung:
      ●   liefert die Länge der String-Literale
      ●   andere Konstrukte werden zu Literal konvertiert




     Hinweis Draft 2010: umbenannt in 'string-length'

     topicmapslab.de
                                                            10
Einführung in Topic Maps
Funktion - length
 ●   Beispiel
     %prefix o http://psi.ontopia.net/music/
     http://en.wikipedia.org/wiki/Puccini >> characteristics tm:name
                       [ fn:length( . >> atomify ) == 10 ]

     → alle Namen von Puccini mit Länge 10




     topicmapslab.de
                                                                       11
Einführung in Topic Maps
Konstrukt-Literal-Transformation
 ●   Topic → Name, Subject-Identifier, Subject-Locator, Item-Identifier
 ●   Name → Stringliteral
 ●   Occurrence → Stringliteral
 ●   Variant → Stringliteral
 ●   Role → Item-Identifier
 ●   Association → Item-Identifier




     topicmapslab.de
                                                                      12
Einführung in Topic Maps
Funktion - slice
 ●   Identifier:       slice
 ●   Argumente:        eine Menge von Literalen und zwei numerische
                       Werte
 ●   Beschreibung:
      ●   liefert die Submenge definiert durch die numerischen
          Grenzen




     topicmapslab.de
                                                                      13
Einführung in Topic Maps
Funktion - count
 ●   Identifier:       count
 ●   Argumente:        eine Menge von Literalen
 ●   Beschreibung:
      ●   liefert die Anzahl der Elemente der Menge




     topicmapslab.de
                                                      14
Einführung in Topic Maps
Funktion - count
 ●   Beispiel
     %prefix o http://psi.ontopia.net/music/
     // o:composer [ fn:count( . / tm:name ) == 2 ]


     → alle Komponisten, welche genau zwei Namen haben




     topicmapslab.de
                                                         15
Einführung in Topic Maps
Funktion - uniq
 ●   Identifier:       uniq
 ●   Argumente:        eine Menge von Literalen
 ●   Beschreibung:
      ●   entfernt aller Duplikate




     topicmapslab.de
                                                  16
Einführung in Topic Maps
Funktion - zigzag
 ●   Identifier:       zigzag
 ●   Argumente:        eine Menge von Literalen
 ●   Beschreibung:
      ●   erzeugt neues Tupel bestehend aus allen Tupeln der
          gegebenen Menge
      ●   Beispiel:        zigzag( { [A, B] , [C, D] } )
                       = { [A, B, C, D] }




     topicmapslab.de
                                                               17
Einführung in Topic Maps
Funktion - zagzig
 ●   Identifier:       zagzig
 ●   Argumente:        eine Menge von Literalen
 ●   Beschreibung:
      ●   erzeugt neue Menge mit Singleton Tupeln
      ●   Beispiel:        zagzig( { [A, B] , [C, D] } )
                       = { [A], [B], [C], [D] }




     topicmapslab.de
                                                           18
Einführung in Topic Maps
Funktionen -TMQL4J
 ●   Identifier:       substring
 ●   Argumente:        eine Menge und zwei numerische Werte
 ●   Beschreibung:
      ●   Menge von Sub-Strings definiert durch numerische Werte
      ●   numerische Werte definieren maximalen Bereich
      ●   Beispiel:       substring( „abc“ , 0 , 9 )
                       = { „abc“ }

     Hinweis Draft 2010: 3. Argument definiert die Menge an Zeichen

     topicmapslab.de
                                                                   19
Einführung in Topic Maps
Funktionen – Draft 2010
 ●   Identifier:       starts-with
 ●   Argumente:        eine Menge von Literalen und Vergleichsliteral
 ●   Beschreibung:
      ●   Prüfung ob Literal mit Vergleichsliteral beginnt
      ●   Beispiel:        starts-with( { „ab“,“bc“ } , „a“ )
                       = { true, false }




     topicmapslab.de
                                                                        20
Einführung in Topic Maps
Funktionen – Draft 2010
 ●   Identifier:       ends-with
 ●   Argumente:        eine Menge von Literalen und Vergleichsliteral
 ●   Beschreibung:
      ●   Prüfung ob Literal mit Vergleichsliteral endet
      ●   Beispiel:        ends-with( { „ab“,“bc“ } , „b“ )
                       = { true, false }




     topicmapslab.de
                                                                        21
Einführung in Topic Maps
Funktionen – Draft 2010
 ●   Identifier:       contains
 ●   Argumente:        eine Menge von Literalen und Vergleichsliteral
 ●   Beschreibung:
      ●   Prüfung ob Literal das Vergleichsliteral enthält
      ●   Beispiel:        contains( { „ab“,“bc“ } , „a“ )
                       = { true, false }




     topicmapslab.de
                                                                        22
Einführung in Topic Maps
Funktionen – Draft 2010
 ●   Identifier:       substring-before
 ●   Argumente:        eine Menge von Literalen und Vergleichsliteral
 ●   Beschreibung:
      ●   liefert Zeichenkette vor dem gegebenen Literal, falls
          vorhanden, ansonsten leere Zeichenkette
      ●   Beispiel:        substring-before( { „ab“,“bc“ } , „b“ )
                       = { „a“, „“ }




     topicmapslab.de
                                                                        23
Einführung in Topic Maps
Funktionen – Draft 2010
 ●   Identifier:       substring-after
 ●   Argumente:        eine Menge von Literalen und Vergleichsliteral
 ●   Beschreibung:
      ●   liefert Zeichenkette nach dem gegebenen Literal, falls
          vorhanden, ansonsten leere Zeichenkette
      ●   Beispiel:        substring-after( { „ab“,“bc“ } , „b“ )
                       = { „“, „c“ }




     topicmapslab.de
                                                                        24
Einführung in Topic Maps
Funktionen – Draft 2010
 ●   Identifier:       normalize-space
 ●   Argumente:        eine Menge von Literalen
 ●   Beschreibung:
      ●   entfernt multiple Vorkommen von Leerzeichen
      ●   Beispiel:        normalize-space( { „a b“,“b c“ } )
                       = { „a b“, „b c“ }




     topicmapslab.de
                                                                25
Einführung in Topic Maps
Funktionen – Draft 2010
 ●   Identifier:       translate
 ●   Argumente:        eine Menge von Literalen und zwei weitere Literale
 ●   Beschreibung:
      ●   ersetzt jedes Zeichen des 2. Literals durch Zeichen des 3.
          Literals (index-basiert)
      ●   Beispiel:       translate( „Puccini“,“Pci“,“xyz“ )
                       = { „xuyyznz“ }




     topicmapslab.de
                                                                       26
Einführung in Topic Maps
Funktionen – Draft 2010
 ●   Identifier:       find
 ●   Argumente:        eine Menge von Literalen und weiteres Literal
 ●   Beschreibung:
      ●   lierfert Index des ersten Vorkommens des 2. Literals
      ●   Beispiel:       find( „Puccini“,“cc“ )
                       = {2}




     topicmapslab.de
                                                                       27
Einführung in Topic Maps
Funktionen – Draft 2010
 ●   Identifier:       extract-regexp
 ●   Argumente:        eine Menge von Literalen und weiteres Literal
 ●   Beschreibung:
      ●   liefert den 1. Substring welcher den regulären Ausdruck
          erfüllt
      ●   Beispiel:       extract-regexp( „Puccini“,“.*cc.*“ )
                       = { „Pucc“ }




     topicmapslab.de
                                                                       28
Einführung in Topic Maps
Funktionen – Draft 2010
 ●   Identifier:       ceiling
 ●   Argumente:        eine Menge von numerischen Literalen
 ●   Beschreibung:
      ●   liefert kleinste natürliche Zahl die nicht kleiner als die
          gegeben ist
      ●   Beispiel:        ceiling( { 1.5, - 1.5, 5 } )
                       = { 2, -1, 5 }




     topicmapslab.de
                                                                       29
Einführung in Topic Maps
Funktionen – Draft 2010
 ●   Identifier:       floor
 ●   Argumente:        eine Menge von numerischen Literalen
 ●   Beschreibung:
      ●   liefert größte natürliche Zahl die nicht größer als die gegeben
          ist
      ●   Beispiel:        floor( { 1.5, - 1.5, 5 } )
                       = { 1, -2, 5 }




     topicmapslab.de
                                                                        30
Einführung in Topic Maps
Funktionen – Draft 2010
 ●   Identifier:       round
 ●   Argumente:        eine Menge von numerischen Literalen
 ●   Beschreibung:
      ●   liefert gerundete Werte
      ●   Beispiel:        round( { 1.5, - 1.5, 5.1 } )
                       = { 2, -1, 5 }




     topicmapslab.de
                                                              31
Einführung in Topic Maps
Funktionen – Draft 2010
 ●   Identifier:       topicmap
 ●   Argumente:        keine
 ●   Beschreibung:
      ●   liefert die Instanz der Topic Map




     topicmapslab.de
                                              32
Einführung in Topic Maps
Funktionen – Draft 2010
 ●   Literalfunktionen
 ●   Transformation von Konstrukt zu Literalen des entsprechenden
     Typs
 ●   Funktionen
      ●   string
      ●   boolean
      ●   number




     topicmapslab.de
                                                                    33
Einführung in Topic Maps




                       ENDE




 topicmapslab.de

Más contenido relacionado

Destacado

Semantische Technologien für kleine und mittlere Unternehmen
Semantische Technologien für kleine und mittlere UnternehmenSemantische Technologien für kleine und mittlere Unternehmen
Semantische Technologien für kleine und mittlere UnternehmenLutz Maicher
 
Human Habitat 2013: Alfonso Vegara - Part 4 of 5
Human Habitat 2013: Alfonso Vegara - Part 4 of 5Human Habitat 2013: Alfonso Vegara - Part 4 of 5
Human Habitat 2013: Alfonso Vegara - Part 4 of 5Construção Sustentável
 
Atualização Automática de Aplicações em plataforma livre
Atualização Automática de Aplicações em plataforma livreAtualização Automática de Aplicações em plataforma livre
Atualização Automática de Aplicações em plataforma livreMauro Tapajós
 
3. nephrotic syndrome
3. nephrotic syndrome3. nephrotic syndrome
3. nephrotic syndromeWhiteraven68
 
TMQL tutorial - part 6
TMQL tutorial - part 6TMQL tutorial - part 6
TMQL tutorial - part 6Lutz Maicher
 
Julen Iturbe Open Business eFindex07
Julen Iturbe Open Business eFindex07Julen Iturbe Open Business eFindex07
Julen Iturbe Open Business eFindex07Julen Iturbe-Ormaetxe
 
TMQL tutorial - part 8
TMQL tutorial - part 8TMQL tutorial - part 8
TMQL tutorial - part 8Lutz Maicher
 
Kontextuelles Tagging in der koaktiven Wissensorganisation
Kontextuelles Tagging in der koaktiven WissensorganisationKontextuelles Tagging in der koaktiven Wissensorganisation
Kontextuelles Tagging in der koaktiven WissensorganisationBirger Kühnel
 
Wie kommt das E-Book zum Leser? AK Vertriebsleiter Börsenverein LV NDS/HB
Wie kommt das E-Book zum Leser? AK Vertriebsleiter Börsenverein LV NDS/HBWie kommt das E-Book zum Leser? AK Vertriebsleiter Börsenverein LV NDS/HB
Wie kommt das E-Book zum Leser? AK Vertriebsleiter Börsenverein LV NDS/HBIch
 
3.1, 3.2 3.3 clase 5 contexto social de la profesion
3.1, 3.2 3.3  clase 5 contexto social de la profesion3.1, 3.2 3.3  clase 5 contexto social de la profesion
3.1, 3.2 3.3 clase 5 contexto social de la profesionAnna Kareen Ferguson
 
ブロックチェーン技術の基本と応用の可能性
ブロックチェーン技術の基本と応用の可能性ブロックチェーン技術の基本と応用の可能性
ブロックチェーン技術の基本と応用の可能性Kenji Saito
 
5分でわかるブロックチェーンの基本的な仕組み
5分でわかるブロックチェーンの基本的な仕組み5分でわかるブロックチェーンの基本的な仕組み
5分でわかるブロックチェーンの基本的な仕組みRyo Shimamura
 

Destacado (16)

Semantische Technologien für kleine und mittlere Unternehmen
Semantische Technologien für kleine und mittlere UnternehmenSemantische Technologien für kleine und mittlere Unternehmen
Semantische Technologien für kleine und mittlere Unternehmen
 
Human Habitat 2013: Alfonso Vegara - Part 4 of 5
Human Habitat 2013: Alfonso Vegara - Part 4 of 5Human Habitat 2013: Alfonso Vegara - Part 4 of 5
Human Habitat 2013: Alfonso Vegara - Part 4 of 5
 
Atualização Automática de Aplicações em plataforma livre
Atualização Automática de Aplicações em plataforma livreAtualização Automática de Aplicações em plataforma livre
Atualização Automática de Aplicações em plataforma livre
 
3. nephrotic syndrome
3. nephrotic syndrome3. nephrotic syndrome
3. nephrotic syndrome
 
Maiana
MaianaMaiana
Maiana
 
TMQL tutorial - part 6
TMQL tutorial - part 6TMQL tutorial - part 6
TMQL tutorial - part 6
 
Julen Iturbe Open Business eFindex07
Julen Iturbe Open Business eFindex07Julen Iturbe Open Business eFindex07
Julen Iturbe Open Business eFindex07
 
Sistema circulatorio
Sistema circulatorioSistema circulatorio
Sistema circulatorio
 
TMQL tutorial - part 8
TMQL tutorial - part 8TMQL tutorial - part 8
TMQL tutorial - part 8
 
Kontextuelles Tagging in der koaktiven Wissensorganisation
Kontextuelles Tagging in der koaktiven WissensorganisationKontextuelles Tagging in der koaktiven Wissensorganisation
Kontextuelles Tagging in der koaktiven Wissensorganisation
 
Cid odonto
Cid odontoCid odonto
Cid odonto
 
Wie kommt das E-Book zum Leser? AK Vertriebsleiter Börsenverein LV NDS/HB
Wie kommt das E-Book zum Leser? AK Vertriebsleiter Börsenverein LV NDS/HBWie kommt das E-Book zum Leser? AK Vertriebsleiter Börsenverein LV NDS/HB
Wie kommt das E-Book zum Leser? AK Vertriebsleiter Börsenverein LV NDS/HB
 
3.1, 3.2 3.3 clase 5 contexto social de la profesion
3.1, 3.2 3.3  clase 5 contexto social de la profesion3.1, 3.2 3.3  clase 5 contexto social de la profesion
3.1, 3.2 3.3 clase 5 contexto social de la profesion
 
Sistema circulatorio
Sistema circulatorioSistema circulatorio
Sistema circulatorio
 
ブロックチェーン技術の基本と応用の可能性
ブロックチェーン技術の基本と応用の可能性ブロックチェーン技術の基本と応用の可能性
ブロックチェーン技術の基本と応用の可能性
 
5分でわかるブロックチェーンの基本的な仕組み
5分でわかるブロックチェーンの基本的な仕組み5分でわかるブロックチェーンの基本的な仕組み
5分でわかるブロックチェーンの基本的な仕組み
 

Más de Lutz 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
 

Más de Lutz Maicher (11)

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 4

  • 1. Einführung in Topic Maps Topic Maps Query Language Session 4 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 3 Postfix ● Filter – Boolean-Expression – Filtertypen ● Projektion Operatoren topicmapslab.de
  • 3. Einführung in Topic Maps Agenda 1. Funktionen ● Draft 2007 Funktionen ● TMQL4J Erweiterungen ● Draft 2010 Funktionen topicmapslab.de
  • 4. Einführung in Topic Maps Sprachbestandteile Funktionen topicmapslab.de
  • 5. Einführung in Topic Maps Funktionen ● erlaubt als sogenannte Value-Expression oder Content ● Bestandteil einer Boolean-Expression ● Bestandteil von Select-Expressions ● jeder Operator existiert als Funktion ● alle im Namespace fn (http://psi.topicmaps.org/tmql/1.0/functions/) topicmapslab.de 5
  • 6. Einführung in Topic Maps Funktion - has-datatype ● Identifier: has-datatype ● Argumente: eine Menge von Konstrukten ● Beschreibung: ● liefert für jede Occurrence den Datentyp als Locator ● liefert für andere Konstrukte das Systemtopic undef topicmapslab.de 6
  • 7. Einführung in Topic Maps Funktion - has-datatype ● Beispiel %prefix o http://psi.ontopia.net/music/ // o:composer >> characteristics tm:occurrence [ fn:has-datatype(.) == xsd:string ] → alle Occurrence vom Typ XSD String topicmapslab.de 7
  • 8. Einführung in Topic Maps Funktion - has-variant ● Identifier: has-variant ● Argumente: eine Menge von Konstrukten ● Beschreibung: ● liefert die Varianten von Namen ● sonst Systemtopic undef topicmapslab.de 8
  • 9. Einführung in Topic Maps Funktion - has-variant ● Beispiel %prefix o http://psi.ontopia.net/music/ http://en.wikipedia.org/wiki/Puccini >> characteristics tm:name ( fn:has-variant(.) ) → die Namensvarianten aller Namen von Puccini topicmapslab.de 9
  • 10. Einführung in Topic Maps Funktion - length ● Identifier: length ● Argumente: eine Menge von Literalen ● Beschreibung: ● liefert die Länge der String-Literale ● andere Konstrukte werden zu Literal konvertiert Hinweis Draft 2010: umbenannt in 'string-length' topicmapslab.de 10
  • 11. Einführung in Topic Maps Funktion - length ● Beispiel %prefix o http://psi.ontopia.net/music/ http://en.wikipedia.org/wiki/Puccini >> characteristics tm:name [ fn:length( . >> atomify ) == 10 ] → alle Namen von Puccini mit Länge 10 topicmapslab.de 11
  • 12. Einführung in Topic Maps Konstrukt-Literal-Transformation ● Topic → Name, Subject-Identifier, Subject-Locator, Item-Identifier ● Name → Stringliteral ● Occurrence → Stringliteral ● Variant → Stringliteral ● Role → Item-Identifier ● Association → Item-Identifier topicmapslab.de 12
  • 13. Einführung in Topic Maps Funktion - slice ● Identifier: slice ● Argumente: eine Menge von Literalen und zwei numerische Werte ● Beschreibung: ● liefert die Submenge definiert durch die numerischen Grenzen topicmapslab.de 13
  • 14. Einführung in Topic Maps Funktion - count ● Identifier: count ● Argumente: eine Menge von Literalen ● Beschreibung: ● liefert die Anzahl der Elemente der Menge topicmapslab.de 14
  • 15. Einführung in Topic Maps Funktion - count ● Beispiel %prefix o http://psi.ontopia.net/music/ // o:composer [ fn:count( . / tm:name ) == 2 ] → alle Komponisten, welche genau zwei Namen haben topicmapslab.de 15
  • 16. Einführung in Topic Maps Funktion - uniq ● Identifier: uniq ● Argumente: eine Menge von Literalen ● Beschreibung: ● entfernt aller Duplikate topicmapslab.de 16
  • 17. Einführung in Topic Maps Funktion - zigzag ● Identifier: zigzag ● Argumente: eine Menge von Literalen ● Beschreibung: ● erzeugt neues Tupel bestehend aus allen Tupeln der gegebenen Menge ● Beispiel: zigzag( { [A, B] , [C, D] } ) = { [A, B, C, D] } topicmapslab.de 17
  • 18. Einführung in Topic Maps Funktion - zagzig ● Identifier: zagzig ● Argumente: eine Menge von Literalen ● Beschreibung: ● erzeugt neue Menge mit Singleton Tupeln ● Beispiel: zagzig( { [A, B] , [C, D] } ) = { [A], [B], [C], [D] } topicmapslab.de 18
  • 19. Einführung in Topic Maps Funktionen -TMQL4J ● Identifier: substring ● Argumente: eine Menge und zwei numerische Werte ● Beschreibung: ● Menge von Sub-Strings definiert durch numerische Werte ● numerische Werte definieren maximalen Bereich ● Beispiel: substring( „abc“ , 0 , 9 ) = { „abc“ } Hinweis Draft 2010: 3. Argument definiert die Menge an Zeichen topicmapslab.de 19
  • 20. Einführung in Topic Maps Funktionen – Draft 2010 ● Identifier: starts-with ● Argumente: eine Menge von Literalen und Vergleichsliteral ● Beschreibung: ● Prüfung ob Literal mit Vergleichsliteral beginnt ● Beispiel: starts-with( { „ab“,“bc“ } , „a“ ) = { true, false } topicmapslab.de 20
  • 21. Einführung in Topic Maps Funktionen – Draft 2010 ● Identifier: ends-with ● Argumente: eine Menge von Literalen und Vergleichsliteral ● Beschreibung: ● Prüfung ob Literal mit Vergleichsliteral endet ● Beispiel: ends-with( { „ab“,“bc“ } , „b“ ) = { true, false } topicmapslab.de 21
  • 22. Einführung in Topic Maps Funktionen – Draft 2010 ● Identifier: contains ● Argumente: eine Menge von Literalen und Vergleichsliteral ● Beschreibung: ● Prüfung ob Literal das Vergleichsliteral enthält ● Beispiel: contains( { „ab“,“bc“ } , „a“ ) = { true, false } topicmapslab.de 22
  • 23. Einführung in Topic Maps Funktionen – Draft 2010 ● Identifier: substring-before ● Argumente: eine Menge von Literalen und Vergleichsliteral ● Beschreibung: ● liefert Zeichenkette vor dem gegebenen Literal, falls vorhanden, ansonsten leere Zeichenkette ● Beispiel: substring-before( { „ab“,“bc“ } , „b“ ) = { „a“, „“ } topicmapslab.de 23
  • 24. Einführung in Topic Maps Funktionen – Draft 2010 ● Identifier: substring-after ● Argumente: eine Menge von Literalen und Vergleichsliteral ● Beschreibung: ● liefert Zeichenkette nach dem gegebenen Literal, falls vorhanden, ansonsten leere Zeichenkette ● Beispiel: substring-after( { „ab“,“bc“ } , „b“ ) = { „“, „c“ } topicmapslab.de 24
  • 25. Einführung in Topic Maps Funktionen – Draft 2010 ● Identifier: normalize-space ● Argumente: eine Menge von Literalen ● Beschreibung: ● entfernt multiple Vorkommen von Leerzeichen ● Beispiel: normalize-space( { „a b“,“b c“ } ) = { „a b“, „b c“ } topicmapslab.de 25
  • 26. Einführung in Topic Maps Funktionen – Draft 2010 ● Identifier: translate ● Argumente: eine Menge von Literalen und zwei weitere Literale ● Beschreibung: ● ersetzt jedes Zeichen des 2. Literals durch Zeichen des 3. Literals (index-basiert) ● Beispiel: translate( „Puccini“,“Pci“,“xyz“ ) = { „xuyyznz“ } topicmapslab.de 26
  • 27. Einführung in Topic Maps Funktionen – Draft 2010 ● Identifier: find ● Argumente: eine Menge von Literalen und weiteres Literal ● Beschreibung: ● lierfert Index des ersten Vorkommens des 2. Literals ● Beispiel: find( „Puccini“,“cc“ ) = {2} topicmapslab.de 27
  • 28. Einführung in Topic Maps Funktionen – Draft 2010 ● Identifier: extract-regexp ● Argumente: eine Menge von Literalen und weiteres Literal ● Beschreibung: ● liefert den 1. Substring welcher den regulären Ausdruck erfüllt ● Beispiel: extract-regexp( „Puccini“,“.*cc.*“ ) = { „Pucc“ } topicmapslab.de 28
  • 29. Einführung in Topic Maps Funktionen – Draft 2010 ● Identifier: ceiling ● Argumente: eine Menge von numerischen Literalen ● Beschreibung: ● liefert kleinste natürliche Zahl die nicht kleiner als die gegeben ist ● Beispiel: ceiling( { 1.5, - 1.5, 5 } ) = { 2, -1, 5 } topicmapslab.de 29
  • 30. Einführung in Topic Maps Funktionen – Draft 2010 ● Identifier: floor ● Argumente: eine Menge von numerischen Literalen ● Beschreibung: ● liefert größte natürliche Zahl die nicht größer als die gegeben ist ● Beispiel: floor( { 1.5, - 1.5, 5 } ) = { 1, -2, 5 } topicmapslab.de 30
  • 31. Einführung in Topic Maps Funktionen – Draft 2010 ● Identifier: round ● Argumente: eine Menge von numerischen Literalen ● Beschreibung: ● liefert gerundete Werte ● Beispiel: round( { 1.5, - 1.5, 5.1 } ) = { 2, -1, 5 } topicmapslab.de 31
  • 32. Einführung in Topic Maps Funktionen – Draft 2010 ● Identifier: topicmap ● Argumente: keine ● Beschreibung: ● liefert die Instanz der Topic Map topicmapslab.de 32
  • 33. Einführung in Topic Maps Funktionen – Draft 2010 ● Literalfunktionen ● Transformation von Konstrukt zu Literalen des entsprechenden Typs ● Funktionen ● string ● boolean ● number topicmapslab.de 33
  • 34. Einführung in Topic Maps ENDE topicmapslab.de