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

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
Paris Carbone
 

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

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
Csabaletter
 
индивидуална квалификационна дейност Uk 2011
индивидуална квалификационна дейност Uk 2011индивидуална квалификационна дейност Uk 2011
индивидуална квалификационна дейност Uk 2011
D. Andronova
 
速度——敏捷开发的丹田之气(2011敏捷中国大会)
速度——敏捷开发的丹田之气(2011敏捷中国大会)速度——敏捷开发的丹田之气(2011敏捷中国大会)
速度——敏捷开发的丹田之气(2011敏捷中国大会)
Yi Xu
 
5 ideas for baby shower gifts
5 ideas for baby shower gifts5 ideas for baby shower gifts
5 ideas for baby shower gifts
Anthony Adcox
 
Светлана Максимченко Media social responcibility
Светлана Максимченко Media social responcibilityСветлана Максимченко Media social responcibility
Светлана Максимченко Media social responcibility
Sergey Dolgov
 

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

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
Alpen-Adria-Universität
 

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
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 

More from tmra

Weber 2010 brn
Weber 2010 brnWeber 2010 brn
Weber 2010 brn
tmra
 
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
tmra
 
Tmra2010 matsuuraposter
Tmra2010 matsuuraposterTmra2010 matsuuraposter
Tmra2010 matsuuraposter
tmra
 
Putting topic maps to rest.tmra2010
Putting topic maps to rest.tmra2010Putting topic maps to rest.tmra2010
Putting topic maps to rest.tmra2010
tmra
 
Presentation final
Presentation finalPresentation final
Presentation final
tmra
 
Mappe1
Mappe1Mappe1
Mappe1
tmra
 

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

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Recently uploaded (20)

Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 

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