SlideShare a Scribd company logo
1 of 24
Download to read offline
Streaming
   Topic Maps API
An event-based API to create
                topic maps



  Lars Heuer <heuer@semagia.com>

    TMRA 2008, Leipzig · 17.10.2008
Table of Contents
     Introduction
     Overview
     Architecture
     Details
     Outlook




© 2008 Lars Heuer · http://www.semagia.com   TMRA 2008, Leipzig · 17.10.2008   2
Introduction
     TMAPI is the Document Object Model (DOM) for
     Topic Maps
     Even if TMAPI is Topic Maps engine independent, a
     deserializer would be TMAPI dependent
     TMAPI is programming language dependent (even if
     TMAPI has been ported to several languages)
     Relative heavy API (a lot of factory methods)
     Streaming Topic Maps API uses a push model
     (more aligned to the Simple API for XML (SAX))

© 2008 Lars Heuer · http://www.semagia.com   TMRA 2008, Leipzig · 17.10.2008   3
Overview
     A parser notifies a handler about events
     IMapHandler interface provides notification methods
     for all TMDM facets:
           startTopicMap
           endTopicMap
           startTopic
           endTopic
           startAssociation
           endAssociation
           startReifier
           endReifier
           ... (32 callback methods)
© 2008 Lars Heuer · http://www.semagia.com   TMRA 2008, Leipzig · 17.10.2008   4
Architecture
   CTM Parser                 XTM Parser             N3 Parser                 CSV Parser   … Parser

                                               sends events to


                                               IMapHandler




© 2008 Lars Heuer · http://www.semagia.com   TMRA 2008, Leipzig · 17.10.2008                       5
Architecture
   CTM Parser                 XTM Parser             N3 Parser                 CSV Parser   … Parser

                                               sends events to


                                               IMapHandler


                                               implemented by


                TMAPI                              RDF API                          … API




© 2008 Lars Heuer · http://www.semagia.com   TMRA 2008, Leipzig · 17.10.2008                       6
Details – IMapHandler




© 2008 Lars Heuer · http://www.semagia.com   TMRA 2008, Leipzig · 17.10.2008   7
Details
     IMapHandler provides 32 callback methods to cover
     all aspects of TMDM
     Each TMDM construct is introduced by a quot;startquot;
     event and terminated by an quot;endquot; event
     Subject identifiers, subject locators and item
     identifiers are reported as absolute IRIs (strings)
     IRefs are used for quot;startTopic(ref)quot; and
     quot;topicRef(ref)quot; notifications, they provide the
     absolute IRI (string) and the kind of identity
     IMapHandler provides nested events (i.e. startTopic
     followed by another startTopic event) iff the events
     cannot be misinterpreted
© 2008 Lars Heuer · http://www.semagia.com   TMRA 2008, Leipzig · 17.10.2008   8
Details
     IMapHandler is reponsible to detect merging
     situtations
     Parser simply fires events and forgets
     afterwards
     IMapHandler usually keeps a stack of objects
     / states to interpret the events correctly
     Events are sometimes context dependent,
     i.e. quot;start/endTypequot;, quot;start/endScopequot;,
     quot;start/endReifierquot;, …
© 2008 Lars Heuer · http://www.semagia.com   TMRA 2008, Leipzig · 17.10.2008   9
Details – Parsing Example
EricClapton – quot;Eric Claptonquot;.
created(creator: EricClapton,
        work: JustOneNight)




© 2008 Lars Heuer · http://www.semagia.com   TMRA 2008, Leipzig · 17.10.2008   10
Details – Parsing Example
EricClapton – quot;Eric Claptonquot;.
created(creator: EricClapton,
        work: JustOneNight)


startTopic(ItemIdentifier http://example.org/map#EricClapton)




© 2008 Lars Heuer · http://www.semagia.com   TMRA 2008, Leipzig · 17.10.2008   11
Details – Parsing Example
EricClapton – quot;Eric Claptonquot;.
created(creator: EricClapton,
        work: JustOneNight)


startName()




© 2008 Lars Heuer · http://www.semagia.com   TMRA 2008, Leipzig · 17.10.2008   12
Details – Parsing Example
EricClapton – quot;Eric Claptonquot;.
created(creator: EricClapton,
        work: JustOneNight)


value(quot;Eric Claptonquot;)




© 2008 Lars Heuer · http://www.semagia.com   TMRA 2008, Leipzig · 17.10.2008   13
Details – Parsing Example
EricClapton – quot;Eric Claptonquot;.
created(creator: EricClapton,
        work: JustOneNight)


endName()
endTopic()




© 2008 Lars Heuer · http://www.semagia.com   TMRA 2008, Leipzig · 17.10.2008   14
Details – Parsing Example
EricClapton – quot;Eric Claptonquot;.
created(creator: EricClapton,
        work: JustOneNight)


startAssociation()
startType()
topicRef(ItemIdentifier http://example.org/map#created)
endType()


© 2008 Lars Heuer · http://www.semagia.com   TMRA 2008, Leipzig · 17.10.2008   15
Details – Parsing Example
EricClapton – quot;Eric Claptonquot;.
created(creator: EricClapton,
        work: JustOneNight)


startRole()
startType()
topicRef(ItemIdentifier http://example.org/map#creator)
endType()


© 2008 Lars Heuer · http://www.semagia.com   TMRA 2008, Leipzig · 17.10.2008   16
Details – Parsing Example
EricClapton – quot;Eric Claptonquot;.
created(creator: EricClapton,
        work: JustOneNight)


startPlayer()
topicRef(ItemIdentifier http://example.org/map#EricClapton)
endPlayer()
endRole()


© 2008 Lars Heuer · http://www.semagia.com   TMRA 2008, Leipzig · 17.10.2008   17
Details – Parsing Example
 EricClapton – quot;Eric Claptonquot;.
 created(creator: EricClapton,
         work: JustOneNight)


... other role

                                                        endAssociation()



 © 2008 Lars Heuer · http://www.semagia.com   TMRA 2008, Leipzig · 17.10.2008   18
Details – Stackability
                                                      Parser




                                               IMapHandler


                                                  delegates to


           IMapHandler                                                         IMapHandler




© 2008 Lars Heuer · http://www.semagia.com   TMRA 2008, Leipzig · 17.10.2008                 19
Details – SimpleMapHander
     Parser has to send a lot of start/end events
     Some syntaxes do not provide nested topics etc.
     SimpleMapHandler is a wrapper around any
     IMapHandler implemention
     SimpleMapHandler provides additional methods like
     quot;type(IRef ref)quot;, quot;player(IRef ref)quot;, quot;reifier(IRef ref)quot;…
     These events are translated to the common
     IMapHandler callback methods
     Example:
     player(IRef)     startPlayer(), topicRef(IRef),
     endPlayer()
     Simplifies parser development
© 2008 Lars Heuer · http://www.semagia.com   TMRA 2008, Leipzig · 17.10.2008   20
Details – MIO Framework
     MIO (Map Input / Output) is built around the
     IMapHandler and provides a Service Provider
     Interface for registering IDeserializers
     All IDeserializers use the IMapHandler for event
     notification
     Discovery of a suitable IDeserializer by file
     extension, media type
     Introduces some constraints: I.e. a subdeserializer
     (i.e. merging XTM encoded topic map into a CTM
     encoding topic map) must not send a
     start/endTopicMap event
© 2008 Lars Heuer · http://www.semagia.com   TMRA 2008, Leipzig · 17.10.2008   21
Conclusions / Outlook
     Simplifies parser development because the parser
     simply fires events and does not care about merging
     constraints etc.
     IMapHandler concept has been implemented in
     Java, Python (Mappa) and PHP (QuaaxTM)
     IMapHandler and MIO (Map Input/Output) will
     become Open Source soon
     Streaming Topic Maps API should be controlled /
     adapted by the community (i.e. by the TMAPI
     project)
© 2008 Lars Heuer · http://www.semagia.com   TMRA 2008, Leipzig · 17.10.2008   22
References
     TMAPI
     http://www.tmapi.org/
     TMAPI 2.0
     http://www.tmapi.org/2.0/
     tinyTiM
     TMAPI 1.0 / TMAPI 2.0 Topic Maps engine
     http://tinytim.sourceforge.net/
     Mappa
     Python Topic Maps engine (not finished)
     http://mappa.googlecode.com/
     MIO (Map I/O)
     http://mio.semagia.com/
     QuaaxTM
     http://quaaxtm.sourceforge.net/
© 2008 Lars Heuer · http://www.semagia.com   TMRA 2008, Leipzig · 17.10.2008   23
Discussion

                                             Questions?

                                             Answers! ☺




© 2008 Lars Heuer · http://www.semagia.com   TMRA 2008, Leipzig · 17.10.2008   24

More Related Content

What's hot

LAS16-501: Introduction to LLVM - Projects, Components, Integration, Internals
LAS16-501: Introduction to LLVM - Projects, Components, Integration, InternalsLAS16-501: Introduction to LLVM - Projects, Components, Integration, Internals
LAS16-501: Introduction to LLVM - Projects, Components, Integration, InternalsLinaro
 
Optimized declarative transformation First Eclipse QVTc results
Optimized declarative transformation First Eclipse QVTc resultsOptimized declarative transformation First Eclipse QVTc results
Optimized declarative transformation First Eclipse QVTc resultsEdward Willink
 
QVT Traceability: What does it really mean?
QVT Traceability: What does it really mean?QVT Traceability: What does it really mean?
QVT Traceability: What does it really mean?Edward Willink
 
Aggregate Sharing for User-Define Data Stream Windows
Aggregate Sharing for User-Define Data Stream WindowsAggregate Sharing for User-Define Data Stream Windows
Aggregate Sharing for User-Define Data Stream WindowsParis Carbone
 
A race of two compilers: GraalVM JIT versus HotSpot JIT C2. Which one offers ...
A race of two compilers: GraalVM JIT versus HotSpot JIT C2. Which one offers ...A race of two compilers: GraalVM JIT versus HotSpot JIT C2. Which one offers ...
A race of two compilers: GraalVM JIT versus HotSpot JIT C2. Which one offers ...J On The Beach
 
JCConf 2020 - New Java Features Released in 2020
JCConf 2020 - New Java Features Released in 2020JCConf 2020 - New Java Features Released in 2020
JCConf 2020 - New Java Features Released in 2020Joseph Kuo
 

What's hot (7)

LAS16-501: Introduction to LLVM - Projects, Components, Integration, Internals
LAS16-501: Introduction to LLVM - Projects, Components, Integration, InternalsLAS16-501: Introduction to LLVM - Projects, Components, Integration, Internals
LAS16-501: Introduction to LLVM - Projects, Components, Integration, Internals
 
Optimized declarative transformation First Eclipse QVTc results
Optimized declarative transformation First Eclipse QVTc resultsOptimized declarative transformation First Eclipse QVTc results
Optimized declarative transformation First Eclipse QVTc results
 
QVT Traceability: What does it really mean?
QVT Traceability: What does it really mean?QVT Traceability: What does it really mean?
QVT Traceability: What does it really mean?
 
Aggregate Sharing for User-Define Data Stream Windows
Aggregate Sharing for User-Define Data Stream WindowsAggregate Sharing for User-Define Data Stream Windows
Aggregate Sharing for User-Define Data Stream Windows
 
Java 8 streams
Java 8 streams Java 8 streams
Java 8 streams
 
A race of two compilers: GraalVM JIT versus HotSpot JIT C2. Which one offers ...
A race of two compilers: GraalVM JIT versus HotSpot JIT C2. Which one offers ...A race of two compilers: GraalVM JIT versus HotSpot JIT C2. Which one offers ...
A race of two compilers: GraalVM JIT versus HotSpot JIT C2. Which one offers ...
 
JCConf 2020 - New Java Features Released in 2020
JCConf 2020 - New Java Features Released in 2020JCConf 2020 - New Java Features Released in 2020
JCConf 2020 - New Java Features Released in 2020
 

Viewers also liked

Бианки. Отражение СМИ СКФО ВКонтакте 20.11.13
Бианки. Отражение СМИ СКФО ВКонтакте 20.11.13Бианки. Отражение СМИ СКФО ВКонтакте 20.11.13
Бианки. Отражение СМИ СКФО ВКонтакте 20.11.13Valentine Bianki
 
Magnet magyar közösségi bank civic banking
Magnet magyar közösségi bank civic bankingMagnet magyar közösségi bank civic banking
Magnet magyar közösségi bank civic bankingCsabaletter
 
индивидуална квалификационна дейност Uk 2011
индивидуална квалификационна дейност Uk 2011индивидуална квалификационна дейност Uk 2011
индивидуална квалификационна дейност Uk 2011D. Andronova
 
速度——敏捷开发的丹田之气(2011敏捷中国大会)
速度——敏捷开发的丹田之气(2011敏捷中国大会)速度——敏捷开发的丹田之气(2011敏捷中国大会)
速度——敏捷开发的丹田之气(2011敏捷中国大会)Yi Xu
 
ListMinut - Café Numérique LLN - 17 mars 2015
ListMinut - Café Numérique LLN - 17 mars 2015ListMinut - Café Numérique LLN - 17 mars 2015
ListMinut - Café Numérique LLN - 17 mars 2015ListMinut
 
Evangelist Journey 2015
Evangelist Journey 2015Evangelist Journey 2015
Evangelist Journey 2015智治 長沢
 
Ag - Chem 847 rogator liquid system
Ag - Chem 847 rogator liquid systemAg - Chem 847 rogator liquid system
Ag - Chem 847 rogator liquid systemPartCatalogs Net
 
Social Media Strategy & Measurement in the Bedsider Program
Social Media Strategy & Measurement in the Bedsider ProgramSocial Media Strategy & Measurement in the Bedsider Program
Social Media Strategy & Measurement in the Bedsider ProgramLawrence Swiader
 
ขั้นตอนการกู้ยืมกยศ
ขั้นตอนการกู้ยืมกยศ ขั้นตอนการกู้ยืมกยศ
ขั้นตอนการกู้ยืมกยศ Fats Naphat
 
5 ideas for baby shower gifts
5 ideas for baby shower gifts5 ideas for baby shower gifts
5 ideas for baby shower giftsAnthony Adcox
 
mitula pour les partenaires
mitula pour les partenairesmitula pour les partenaires
mitula pour les partenairesmitula
 
Светлана Максимченко Media social responcibility
Светлана Максимченко Media social responcibilityСветлана Максимченко Media social responcibility
Светлана Максимченко Media social responcibilitySergey Dolgov
 
HDME Brochure- Outside
HDME Brochure- OutsideHDME Brochure- Outside
HDME Brochure- OutsideDawn Wright
 

Viewers also liked (20)

Бианки. Отражение СМИ СКФО ВКонтакте 20.11.13
Бианки. Отражение СМИ СКФО ВКонтакте 20.11.13Бианки. Отражение СМИ СКФО ВКонтакте 20.11.13
Бианки. Отражение СМИ СКФО ВКонтакте 20.11.13
 
Magnet magyar közösségi bank civic banking
Magnet magyar közösségi bank civic bankingMagnet magyar közösségi bank civic banking
Magnet magyar közösségi bank civic banking
 
Bai giang so cap cuu 2
Bai giang so cap cuu 2Bai giang so cap cuu 2
Bai giang so cap cuu 2
 
индивидуална квалификационна дейност Uk 2011
индивидуална квалификационна дейност Uk 2011индивидуална квалификационна дейност Uk 2011
индивидуална квалификационна дейност Uk 2011
 
TEDxNanjing
TEDxNanjingTEDxNanjing
TEDxNanjing
 
速度——敏捷开发的丹田之气(2011敏捷中国大会)
速度——敏捷开发的丹田之气(2011敏捷中国大会)速度——敏捷开发的丹田之气(2011敏捷中国大会)
速度——敏捷开发的丹田之气(2011敏捷中国大会)
 
ListMinut - Café Numérique LLN - 17 mars 2015
ListMinut - Café Numérique LLN - 17 mars 2015ListMinut - Café Numérique LLN - 17 mars 2015
ListMinut - Café Numérique LLN - 17 mars 2015
 
Evangelist Journey 2015
Evangelist Journey 2015Evangelist Journey 2015
Evangelist Journey 2015
 
Ag - Chem 847 rogator liquid system
Ag - Chem 847 rogator liquid systemAg - Chem 847 rogator liquid system
Ag - Chem 847 rogator liquid system
 
Social Media Strategy & Measurement in the Bedsider Program
Social Media Strategy & Measurement in the Bedsider ProgramSocial Media Strategy & Measurement in the Bedsider Program
Social Media Strategy & Measurement in the Bedsider Program
 
Quotes and more quotes :) sigueme :)
Quotes and more quotes :) sigueme :)Quotes and more quotes :) sigueme :)
Quotes and more quotes :) sigueme :)
 
ขั้นตอนการกู้ยืมกยศ
ขั้นตอนการกู้ยืมกยศ ขั้นตอนการกู้ยืมกยศ
ขั้นตอนการกู้ยืมกยศ
 
Príslovia
PrísloviaPríslovia
Príslovia
 
Zilvia
ZilviaZilvia
Zilvia
 
Sigueme
SiguemeSigueme
Sigueme
 
5 ideas for baby shower gifts
5 ideas for baby shower gifts5 ideas for baby shower gifts
5 ideas for baby shower gifts
 
OSS and R&D
OSS and R&DOSS and R&D
OSS and R&D
 
mitula pour les partenaires
mitula pour les partenairesmitula pour les partenaires
mitula pour les partenaires
 
Светлана Максимченко Media social responcibility
Светлана Максимченко Media social responcibilityСветлана Максимченко Media social responcibility
Светлана Максимченко Media social responcibility
 
HDME Brochure- Outside
HDME Brochure- OutsideHDME Brochure- Outside
HDME Brochure- Outside
 

Similar to Streaming Topic Maps API

Ctm 1.0 Tutorial
Ctm 1.0 TutorialCtm 1.0 Tutorial
Ctm 1.0 Tutorialtmra
 
TMAPI 2.0 tutorial
TMAPI 2.0 tutorialTMAPI 2.0 tutorial
TMAPI 2.0 tutorialtmra
 
Fully Interoperable Streaming of Media Resources in Heterogeneous Environments
Fully Interoperable Streaming of Media Resources in Heterogeneous EnvironmentsFully Interoperable Streaming of Media Resources in Heterogeneous Environments
Fully Interoperable Streaming of Media Resources in Heterogeneous EnvironmentsAlpen-Adria-Universität
 
Measuring the Performance and Energy Cost of Cryptography in IoT Devices
Measuring the Performance and Energy Cost of Cryptography in IoT DevicesMeasuring the Performance and Energy Cost of Cryptography in IoT Devices
Measuring the Performance and Energy Cost of Cryptography in IoT DevicesHannes Tschofenig
 
Open Source XMPP for Cloud Services
Open Source XMPP for Cloud ServicesOpen Source XMPP for Cloud Services
Open Source XMPP for Cloud Servicesmattjive
 
Statsd introduction
Statsd introductionStatsd introduction
Statsd introductionRick Chang
 
How to Build a Telegraf Plugin by Noah Crowley
How to Build a Telegraf Plugin by Noah CrowleyHow to Build a Telegraf Plugin by Noah Crowley
How to Build a Telegraf Plugin by Noah CrowleyInfluxData
 
Building a Telegraf Plugin by Noah Crowly | Developer Advocate | InfluxData
Building a Telegraf Plugin by Noah Crowly | Developer Advocate | InfluxDataBuilding a Telegraf Plugin by Noah Crowly | Developer Advocate | InfluxData
Building a Telegraf Plugin by Noah Crowly | Developer Advocate | InfluxDataInfluxData
 
Real-time Fluid Simulation in Shadow of the Tomb Raider
Real-time Fluid Simulation in Shadow of the Tomb RaiderReal-time Fluid Simulation in Shadow of the Tomb Raider
Real-time Fluid Simulation in Shadow of the Tomb RaiderEidos-Montréal
 
Real-time Fluid Simulation in Shadow of the Tomb Raider
Real-time Fluid Simulation in Shadow of the Tomb RaiderReal-time Fluid Simulation in Shadow of the Tomb Raider
Real-time Fluid Simulation in Shadow of the Tomb RaiderEidos-Montréal
 
Exploring Graph Use Cases with JanusGraph
Exploring Graph Use Cases with JanusGraphExploring Graph Use Cases with JanusGraph
Exploring Graph Use Cases with JanusGraphJason Plurad
 
Production Time Profiling and Diagnostics on the JVM
Production Time Profiling and Diagnostics on the JVMProduction Time Profiling and Diagnostics on the JVM
Production Time Profiling and Diagnostics on the JVMMarcus Hirt
 
Airframe Meetup #3: 2019 Updates & AirSpec
Airframe Meetup #3: 2019 Updates & AirSpecAirframe Meetup #3: 2019 Updates & AirSpec
Airframe Meetup #3: 2019 Updates & AirSpecTaro L. Saito
 
Unifying Frontend and Backend Development with Scala - ScalaCon 2021
Unifying Frontend and Backend Development with Scala - ScalaCon 2021Unifying Frontend and Backend Development with Scala - ScalaCon 2021
Unifying Frontend and Backend Development with Scala - ScalaCon 2021Taro L. Saito
 
Deep Dive into Futures and the Parallel Programming Library
Deep Dive into Futures and the Parallel Programming LibraryDeep Dive into Futures and the Parallel Programming Library
Deep Dive into Futures and the Parallel Programming LibraryJim McKeeth
 
Airframe: Lightweight Building Blocks for Scala @ TD Tech Talk 2018-10-17
Airframe: Lightweight Building Blocks for Scala @ TD Tech Talk 2018-10-17Airframe: Lightweight Building Blocks for Scala @ TD Tech Talk 2018-10-17
Airframe: Lightweight Building Blocks for Scala @ TD Tech Talk 2018-10-17Taro L. Saito
 

Similar to Streaming Topic Maps API (20)

Ctm 1.0 Tutorial
Ctm 1.0 TutorialCtm 1.0 Tutorial
Ctm 1.0 Tutorial
 
TMAPI 2.0 tutorial
TMAPI 2.0 tutorialTMAPI 2.0 tutorial
TMAPI 2.0 tutorial
 
Acl Tcam
Acl TcamAcl Tcam
Acl Tcam
 
Fully Interoperable Streaming of Media Resources in Heterogeneous Environments
Fully Interoperable Streaming of Media Resources in Heterogeneous EnvironmentsFully Interoperable Streaming of Media Resources in Heterogeneous Environments
Fully Interoperable Streaming of Media Resources in Heterogeneous Environments
 
Measuring the Performance and Energy Cost of Cryptography in IoT Devices
Measuring the Performance and Energy Cost of Cryptography in IoT DevicesMeasuring the Performance and Energy Cost of Cryptography in IoT Devices
Measuring the Performance and Energy Cost of Cryptography in IoT Devices
 
Elk scilifelab
Elk scilifelabElk scilifelab
Elk scilifelab
 
project_docs
project_docsproject_docs
project_docs
 
Open Source XMPP for Cloud Services
Open Source XMPP for Cloud ServicesOpen Source XMPP for Cloud Services
Open Source XMPP for Cloud Services
 
Statsd introduction
Statsd introductionStatsd introduction
Statsd introduction
 
Rest, sockets em golang
Rest, sockets em golangRest, sockets em golang
Rest, sockets em golang
 
How to Build a Telegraf Plugin by Noah Crowley
How to Build a Telegraf Plugin by Noah CrowleyHow to Build a Telegraf Plugin by Noah Crowley
How to Build a Telegraf Plugin by Noah Crowley
 
Building a Telegraf Plugin by Noah Crowly | Developer Advocate | InfluxData
Building a Telegraf Plugin by Noah Crowly | Developer Advocate | InfluxDataBuilding a Telegraf Plugin by Noah Crowly | Developer Advocate | InfluxData
Building a Telegraf Plugin by Noah Crowly | Developer Advocate | InfluxData
 
Real-time Fluid Simulation in Shadow of the Tomb Raider
Real-time Fluid Simulation in Shadow of the Tomb RaiderReal-time Fluid Simulation in Shadow of the Tomb Raider
Real-time Fluid Simulation in Shadow of the Tomb Raider
 
Real-time Fluid Simulation in Shadow of the Tomb Raider
Real-time Fluid Simulation in Shadow of the Tomb RaiderReal-time Fluid Simulation in Shadow of the Tomb Raider
Real-time Fluid Simulation in Shadow of the Tomb Raider
 
Exploring Graph Use Cases with JanusGraph
Exploring Graph Use Cases with JanusGraphExploring Graph Use Cases with JanusGraph
Exploring Graph Use Cases with JanusGraph
 
Production Time Profiling and Diagnostics on the JVM
Production Time Profiling and Diagnostics on the JVMProduction Time Profiling and Diagnostics on the JVM
Production Time Profiling and Diagnostics on the JVM
 
Airframe Meetup #3: 2019 Updates & AirSpec
Airframe Meetup #3: 2019 Updates & AirSpecAirframe Meetup #3: 2019 Updates & AirSpec
Airframe Meetup #3: 2019 Updates & AirSpec
 
Unifying Frontend and Backend Development with Scala - ScalaCon 2021
Unifying Frontend and Backend Development with Scala - ScalaCon 2021Unifying Frontend and Backend Development with Scala - ScalaCon 2021
Unifying Frontend and Backend Development with Scala - ScalaCon 2021
 
Deep Dive into Futures and the Parallel Programming Library
Deep Dive into Futures and the Parallel Programming LibraryDeep Dive into Futures and the Parallel Programming Library
Deep Dive into Futures and the Parallel Programming Library
 
Airframe: Lightweight Building Blocks for Scala @ TD Tech Talk 2018-10-17
Airframe: Lightweight Building Blocks for Scala @ TD Tech Talk 2018-10-17Airframe: Lightweight Building Blocks for Scala @ TD Tech Talk 2018-10-17
Airframe: Lightweight Building Blocks for Scala @ TD Tech Talk 2018-10-17
 

More from tmra

Topic Maps for improved access to and use of content in relational databases ...
Topic Maps for improved access to and use of content in relational databases ...Topic Maps for improved access to and use of content in relational databases ...
Topic Maps for improved access to and use of content in relational databases ...tmra
 
External Schema for Topic Map Database
External Schema for Topic Map DatabaseExternal Schema for Topic Map Database
External Schema for Topic Map Databasetmra
 
Weber 2010 brn
Weber 2010 brnWeber 2010 brn
Weber 2010 brntmra
 
Subject Headings make information to be topic maps
Subject Headings make information to be topic mapsSubject Headings make information to be topic maps
Subject Headings make information to be topic mapstmra
 
Inquiry Optimization Technique for a Topic Map Database
Inquiry Optimization Technique for a Topic Map DatabaseInquiry Optimization Technique for a Topic Map Database
Inquiry Optimization Technique for a Topic Map Databasetmra
 
Topic Merge Scenarios for Knowledge Federation
Topic Merge Scenarios for Knowledge FederationTopic Merge Scenarios for Knowledge Federation
Topic Merge Scenarios for Knowledge Federationtmra
 
JavaScript Topic Maps in server environments
JavaScript Topic Maps in server environmentsJavaScript Topic Maps in server environments
JavaScript Topic Maps in server environmentstmra
 
Modelling IMS QTI with Topic Maps
Modelling IMS QTI with Topic MapsModelling IMS QTI with Topic Maps
Modelling IMS QTI with Topic Mapstmra
 
Hatana - Virtual Topic Map Merging
Hatana - Virtual Topic Map MergingHatana - Virtual Topic Map Merging
Hatana - Virtual Topic Map Mergingtmra
 
Designing a gui_description_language_with_topic_maps
Designing a gui_description_language_with_topic_mapsDesigning a gui_description_language_with_topic_maps
Designing a gui_description_language_with_topic_mapstmra
 
Maiana - The social Topic Maps explorer
Maiana - The social Topic Maps explorerMaiana - The social Topic Maps explorer
Maiana - The social Topic Maps explorertmra
 
Tmra2010 matsuuraposter
Tmra2010 matsuuraposterTmra2010 matsuuraposter
Tmra2010 matsuurapostertmra
 
Automatic semantic interpretation of unstructured data for knowledge management
Automatic semantic interpretation of unstructured data for knowledge managementAutomatic semantic interpretation of unstructured data for knowledge management
Automatic semantic interpretation of unstructured data for knowledge managementtmra
 
Putting topic maps to rest.tmra2010
Putting topic maps to rest.tmra2010Putting topic maps to rest.tmra2010
Putting topic maps to rest.tmra2010tmra
 
Presentation final
Presentation finalPresentation final
Presentation finaltmra
 
Evaluation of Instances Asset in a Topic Maps-Based Ontology
Evaluation of Instances Asset in a Topic Maps-Based OntologyEvaluation of Instances Asset in a Topic Maps-Based Ontology
Evaluation of Instances Asset in a Topic Maps-Based Ontologytmra
 
Defining Domain-Specific Facets for Topic Maps With TMQL Path Expressions
Defining Domain-Specific Facets for Topic Maps With TMQL Path ExpressionsDefining Domain-Specific Facets for Topic Maps With TMQL Path Expressions
Defining Domain-Specific Facets for Topic Maps With TMQL Path Expressionstmra
 
Mappe1
Mappe1Mappe1
Mappe1tmra
 
Et Tu, Brute? Topic Maps and Discourse Semantics
Et Tu, Brute? Topic Maps and Discourse SemanticsEt Tu, Brute? Topic Maps and Discourse Semantics
Et Tu, Brute? Topic Maps and Discourse Semanticstmra
 
A PHP library for Ontopia-CMS Integration
A PHP library for Ontopia-CMS IntegrationA PHP library for Ontopia-CMS Integration
A PHP library for Ontopia-CMS Integrationtmra
 

More from tmra (20)

Topic Maps for improved access to and use of content in relational databases ...
Topic Maps for improved access to and use of content in relational databases ...Topic Maps for improved access to and use of content in relational databases ...
Topic Maps for improved access to and use of content in relational databases ...
 
External Schema for Topic Map Database
External Schema for Topic Map DatabaseExternal Schema for Topic Map Database
External Schema for Topic Map Database
 
Weber 2010 brn
Weber 2010 brnWeber 2010 brn
Weber 2010 brn
 
Subject Headings make information to be topic maps
Subject Headings make information to be topic mapsSubject Headings make information to be topic maps
Subject Headings make information to be topic maps
 
Inquiry Optimization Technique for a Topic Map Database
Inquiry Optimization Technique for a Topic Map DatabaseInquiry Optimization Technique for a Topic Map Database
Inquiry Optimization Technique for a Topic Map Database
 
Topic Merge Scenarios for Knowledge Federation
Topic Merge Scenarios for Knowledge FederationTopic Merge Scenarios for Knowledge Federation
Topic Merge Scenarios for Knowledge Federation
 
JavaScript Topic Maps in server environments
JavaScript Topic Maps in server environmentsJavaScript Topic Maps in server environments
JavaScript Topic Maps in server environments
 
Modelling IMS QTI with Topic Maps
Modelling IMS QTI with Topic MapsModelling IMS QTI with Topic Maps
Modelling IMS QTI with Topic Maps
 
Hatana - Virtual Topic Map Merging
Hatana - Virtual Topic Map MergingHatana - Virtual Topic Map Merging
Hatana - Virtual Topic Map Merging
 
Designing a gui_description_language_with_topic_maps
Designing a gui_description_language_with_topic_mapsDesigning a gui_description_language_with_topic_maps
Designing a gui_description_language_with_topic_maps
 
Maiana - The social Topic Maps explorer
Maiana - The social Topic Maps explorerMaiana - The social Topic Maps explorer
Maiana - The social Topic Maps explorer
 
Tmra2010 matsuuraposter
Tmra2010 matsuuraposterTmra2010 matsuuraposter
Tmra2010 matsuuraposter
 
Automatic semantic interpretation of unstructured data for knowledge management
Automatic semantic interpretation of unstructured data for knowledge managementAutomatic semantic interpretation of unstructured data for knowledge management
Automatic semantic interpretation of unstructured data for knowledge management
 
Putting topic maps to rest.tmra2010
Putting topic maps to rest.tmra2010Putting topic maps to rest.tmra2010
Putting topic maps to rest.tmra2010
 
Presentation final
Presentation finalPresentation final
Presentation final
 
Evaluation of Instances Asset in a Topic Maps-Based Ontology
Evaluation of Instances Asset in a Topic Maps-Based OntologyEvaluation of Instances Asset in a Topic Maps-Based Ontology
Evaluation of Instances Asset in a Topic Maps-Based Ontology
 
Defining Domain-Specific Facets for Topic Maps With TMQL Path Expressions
Defining Domain-Specific Facets for Topic Maps With TMQL Path ExpressionsDefining Domain-Specific Facets for Topic Maps With TMQL Path Expressions
Defining Domain-Specific Facets for Topic Maps With TMQL Path Expressions
 
Mappe1
Mappe1Mappe1
Mappe1
 
Et Tu, Brute? Topic Maps and Discourse Semantics
Et Tu, Brute? Topic Maps and Discourse SemanticsEt Tu, Brute? Topic Maps and Discourse Semantics
Et Tu, Brute? Topic Maps and Discourse Semantics
 
A PHP library for Ontopia-CMS Integration
A PHP library for Ontopia-CMS IntegrationA PHP library for Ontopia-CMS Integration
A PHP library for Ontopia-CMS Integration
 

Recently uploaded

My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 

Recently uploaded (20)

My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 

Streaming Topic Maps API

  • 1. Streaming Topic Maps API An event-based API to create topic maps Lars Heuer <heuer@semagia.com> TMRA 2008, Leipzig · 17.10.2008
  • 2. Table of Contents Introduction Overview Architecture Details Outlook © 2008 Lars Heuer · http://www.semagia.com TMRA 2008, Leipzig · 17.10.2008 2
  • 3. Introduction TMAPI is the Document Object Model (DOM) for Topic Maps Even if TMAPI is Topic Maps engine independent, a deserializer would be TMAPI dependent TMAPI is programming language dependent (even if TMAPI has been ported to several languages) Relative heavy API (a lot of factory methods) Streaming Topic Maps API uses a push model (more aligned to the Simple API for XML (SAX)) © 2008 Lars Heuer · http://www.semagia.com TMRA 2008, Leipzig · 17.10.2008 3
  • 4. Overview A parser notifies a handler about events IMapHandler interface provides notification methods for all TMDM facets: startTopicMap endTopicMap startTopic endTopic startAssociation endAssociation startReifier endReifier ... (32 callback methods) © 2008 Lars Heuer · http://www.semagia.com TMRA 2008, Leipzig · 17.10.2008 4
  • 5. Architecture CTM Parser XTM Parser N3 Parser CSV Parser … Parser sends events to IMapHandler © 2008 Lars Heuer · http://www.semagia.com TMRA 2008, Leipzig · 17.10.2008 5
  • 6. Architecture CTM Parser XTM Parser N3 Parser CSV Parser … Parser sends events to IMapHandler implemented by TMAPI RDF API … API © 2008 Lars Heuer · http://www.semagia.com TMRA 2008, Leipzig · 17.10.2008 6
  • 7. Details – IMapHandler © 2008 Lars Heuer · http://www.semagia.com TMRA 2008, Leipzig · 17.10.2008 7
  • 8. Details IMapHandler provides 32 callback methods to cover all aspects of TMDM Each TMDM construct is introduced by a quot;startquot; event and terminated by an quot;endquot; event Subject identifiers, subject locators and item identifiers are reported as absolute IRIs (strings) IRefs are used for quot;startTopic(ref)quot; and quot;topicRef(ref)quot; notifications, they provide the absolute IRI (string) and the kind of identity IMapHandler provides nested events (i.e. startTopic followed by another startTopic event) iff the events cannot be misinterpreted © 2008 Lars Heuer · http://www.semagia.com TMRA 2008, Leipzig · 17.10.2008 8
  • 9. Details IMapHandler is reponsible to detect merging situtations Parser simply fires events and forgets afterwards IMapHandler usually keeps a stack of objects / states to interpret the events correctly Events are sometimes context dependent, i.e. quot;start/endTypequot;, quot;start/endScopequot;, quot;start/endReifierquot;, … © 2008 Lars Heuer · http://www.semagia.com TMRA 2008, Leipzig · 17.10.2008 9
  • 10. Details – Parsing Example EricClapton – quot;Eric Claptonquot;. created(creator: EricClapton, work: JustOneNight) © 2008 Lars Heuer · http://www.semagia.com TMRA 2008, Leipzig · 17.10.2008 10
  • 11. Details – Parsing Example EricClapton – quot;Eric Claptonquot;. created(creator: EricClapton, work: JustOneNight) startTopic(ItemIdentifier http://example.org/map#EricClapton) © 2008 Lars Heuer · http://www.semagia.com TMRA 2008, Leipzig · 17.10.2008 11
  • 12. Details – Parsing Example EricClapton – quot;Eric Claptonquot;. created(creator: EricClapton, work: JustOneNight) startName() © 2008 Lars Heuer · http://www.semagia.com TMRA 2008, Leipzig · 17.10.2008 12
  • 13. Details – Parsing Example EricClapton – quot;Eric Claptonquot;. created(creator: EricClapton, work: JustOneNight) value(quot;Eric Claptonquot;) © 2008 Lars Heuer · http://www.semagia.com TMRA 2008, Leipzig · 17.10.2008 13
  • 14. Details – Parsing Example EricClapton – quot;Eric Claptonquot;. created(creator: EricClapton, work: JustOneNight) endName() endTopic() © 2008 Lars Heuer · http://www.semagia.com TMRA 2008, Leipzig · 17.10.2008 14
  • 15. Details – Parsing Example EricClapton – quot;Eric Claptonquot;. created(creator: EricClapton, work: JustOneNight) startAssociation() startType() topicRef(ItemIdentifier http://example.org/map#created) endType() © 2008 Lars Heuer · http://www.semagia.com TMRA 2008, Leipzig · 17.10.2008 15
  • 16. Details – Parsing Example EricClapton – quot;Eric Claptonquot;. created(creator: EricClapton, work: JustOneNight) startRole() startType() topicRef(ItemIdentifier http://example.org/map#creator) endType() © 2008 Lars Heuer · http://www.semagia.com TMRA 2008, Leipzig · 17.10.2008 16
  • 17. Details – Parsing Example EricClapton – quot;Eric Claptonquot;. created(creator: EricClapton, work: JustOneNight) startPlayer() topicRef(ItemIdentifier http://example.org/map#EricClapton) endPlayer() endRole() © 2008 Lars Heuer · http://www.semagia.com TMRA 2008, Leipzig · 17.10.2008 17
  • 18. Details – Parsing Example EricClapton – quot;Eric Claptonquot;. created(creator: EricClapton, work: JustOneNight) ... other role endAssociation() © 2008 Lars Heuer · http://www.semagia.com TMRA 2008, Leipzig · 17.10.2008 18
  • 19. Details – Stackability Parser IMapHandler delegates to IMapHandler IMapHandler © 2008 Lars Heuer · http://www.semagia.com TMRA 2008, Leipzig · 17.10.2008 19
  • 20. Details – SimpleMapHander Parser has to send a lot of start/end events Some syntaxes do not provide nested topics etc. SimpleMapHandler is a wrapper around any IMapHandler implemention SimpleMapHandler provides additional methods like quot;type(IRef ref)quot;, quot;player(IRef ref)quot;, quot;reifier(IRef ref)quot;… These events are translated to the common IMapHandler callback methods Example: player(IRef) startPlayer(), topicRef(IRef), endPlayer() Simplifies parser development © 2008 Lars Heuer · http://www.semagia.com TMRA 2008, Leipzig · 17.10.2008 20
  • 21. Details – MIO Framework MIO (Map Input / Output) is built around the IMapHandler and provides a Service Provider Interface for registering IDeserializers All IDeserializers use the IMapHandler for event notification Discovery of a suitable IDeserializer by file extension, media type Introduces some constraints: I.e. a subdeserializer (i.e. merging XTM encoded topic map into a CTM encoding topic map) must not send a start/endTopicMap event © 2008 Lars Heuer · http://www.semagia.com TMRA 2008, Leipzig · 17.10.2008 21
  • 22. Conclusions / Outlook Simplifies parser development because the parser simply fires events and does not care about merging constraints etc. IMapHandler concept has been implemented in Java, Python (Mappa) and PHP (QuaaxTM) IMapHandler and MIO (Map Input/Output) will become Open Source soon Streaming Topic Maps API should be controlled / adapted by the community (i.e. by the TMAPI project) © 2008 Lars Heuer · http://www.semagia.com TMRA 2008, Leipzig · 17.10.2008 22
  • 23. References TMAPI http://www.tmapi.org/ TMAPI 2.0 http://www.tmapi.org/2.0/ tinyTiM TMAPI 1.0 / TMAPI 2.0 Topic Maps engine http://tinytim.sourceforge.net/ Mappa Python Topic Maps engine (not finished) http://mappa.googlecode.com/ MIO (Map I/O) http://mio.semagia.com/ QuaaxTM http://quaaxtm.sourceforge.net/ © 2008 Lars Heuer · http://www.semagia.com TMRA 2008, Leipzig · 17.10.2008 23
  • 24. Discussion Questions? Answers! ☺ © 2008 Lars Heuer · http://www.semagia.com TMRA 2008, Leipzig · 17.10.2008 24