SlideShare a Scribd company logo
TMAPI 2.0
         Topic Maps API 2.0


    Lars Heuer <heuer@semagia.com>
Johannes Schmidt <js@sixgroups.com>

     TMRA 2008, Leipzig · 17.10.2008
Table of Contents
     Introduction
     Design Objectives
     Core Interfaces
     Details – Core
     Details – Index
     Questions / Answers



Lars Heuer · http://www.semagia.com           TMRA 2008, Leipzig · 17.10.2008   2
Johannes Schmidt · http://www.sixgroups.com
Introduction
     TMAPI is a set of Java interfaces to interact with
     topic maps
     TMAPI makes applications Topic Maps engine
     independent
     TMAPI 1.0 has been implemented by several Open
     Source and commercial Topic Maps engines
     TMAPI 1.0 has been ported to other programming
     languages
     Not designed by a standards body but a de-facto
     standard
Lars Heuer · http://www.semagia.com           TMRA 2008, Leipzig · 17.10.2008   3
Johannes Schmidt · http://www.sixgroups.com
Design Objectives
     Topic Maps – Data Model (TMDM) compatible
     (TMAPI 1.0 is not)
     Respect TMDM constraints to some extend (i.e.
     disallow quot;nullquot; in serveral places)
     Java 1.5
     Userfriendly (depends on the perspective, though)
     More tests (TMAPI 1.0: 89 tests TMAPI 2.0: approx.
     250 tests)
     Apply lessons learned from TMAPI 1.0

Lars Heuer · http://www.semagia.com           TMRA 2008, Leipzig · 17.10.2008   4
Johannes Schmidt · http://www.sixgroups.com
Core Interfaces
     Construct
       Reifiable
       Typed
       Scoped
     DatatypeAware(Reifiable, Scoped)
     TopicMap(Reifiable)
     Topic(Construct)
     Association(Reifiable, Typed, Scoped)
     Role(Reifiable, Typed)
     Occurrence(Datatyped, Typed)
     Name(Typed, Scoped)
     Variant(Datatyped)

Lars Heuer · http://www.semagia.com           TMRA 2008, Leipzig · 17.10.2008   5
Johannes Schmidt · http://www.sixgroups.com
Details – Topic Map
     Object / Topic lookup methods moved from
     the TopicsIndex to the TopicMap interface:
           getConstructByItemIdentifier
           getTopicBySubjectIdentifier
           getTopicBySubjectLocator




Lars Heuer · http://www.semagia.com           TMRA 2008, Leipzig · 17.10.2008   6
Johannes Schmidt · http://www.sixgroups.com
Details – Topics
     TMAPI 1.0: One method to create topics
     (createTopic  Topic without any identity)
     TMAPI 2.0: Four methods to create topics:
           createTopicBySubjectIdentifier
           createTopicBySubjectLocator
           createTopicByItemIdentifier
           createTopic ( Topic with an automatically
           generated item identifier)

Lars Heuer · http://www.semagia.com           TMRA 2008, Leipzig · 17.10.2008   7
Johannes Schmidt · http://www.sixgroups.com
Details – Topics
Create or reuse existing topic with a sid in TMAPI 1.0:
     TopicsIndex tIdx =
          (TopicsIndex) tm.getHelperObject(TopicsIndex.class);
     if (!tIdx.isOpen()) { tIdx.open(); }
     if (!tIdx.getIndexFlags().isAutoUpdated()) {
           tIdx.reindex();
     }
     Topic topic = tIdx.getTopicBySubjectIdentifier(sid);
     if (topic == null) {
         TopicMapObject tmo = tm.getObjectBySourceLocator(sid);
         if (tmo instanceof Topic) { topic = (Topic) tmo; }
     }
    if (topic == null) {
        topic = tm.createTopic(); topic.addSubjectIdentifier(sid);
    }
Lars Heuer · http://www.semagia.com           TMRA 2008, Leipzig · 17.10.2008   8
Johannes Schmidt · http://www.sixgroups.com
Details – Topic Creation
Algorithm
                              createTopicBySubjectIdentifier




Lars Heuer · http://www.semagia.com           TMRA 2008, Leipzig · 17.10.2008   9
Johannes Schmidt · http://www.sixgroups.com
Details – Topic Creation
Algorithm
                              createTopicBySubjectIdentifier



               Exists a topic with the specified subject identifier?




Lars Heuer · http://www.semagia.com           TMRA 2008, Leipzig · 17.10.2008   10
Johannes Schmidt · http://www.sixgroups.com
Details – Topic Creation
  Algorithm
                                createTopicBySubjectIdentifier



                 Exists a topic with the specified subject identifier?


                              Yes
Return existing topic




  Lars Heuer · http://www.semagia.com           TMRA 2008, Leipzig · 17.10.2008   11
  Johannes Schmidt · http://www.sixgroups.com
Details – Topic Creation
  Algorithm
                                createTopicBySubjectIdentifier



                 Exists a topic with the specified subject identifier?


                              Yes                           No

Return existing topic                                        Exists a topic with an
                                                item identifier == specified subject identifier?




  Lars Heuer · http://www.semagia.com            TMRA 2008, Leipzig · 17.10.2008                   12
  Johannes Schmidt · http://www.sixgroups.com
Details – Topic Creation
  Algorithm
                                createTopicBySubjectIdentifier



                 Exists a topic with the specified subject identifier?


                              Yes                           No

Return existing topic                                        Exists a topic with an
                                                item identifier == specified subject identifier?

                                                  Yes

 Add the subject identifier to the
existing topic and return the topic

  Lars Heuer · http://www.semagia.com            TMRA 2008, Leipzig · 17.10.2008                   13
  Johannes Schmidt · http://www.sixgroups.com
Details – Topic Creation
  Algorithm
                                createTopicBySubjectIdentifier



                 Exists a topic with the specified subject identifier?


                              Yes                           No

Return existing topic                                        Exists a topic with an
                                                item identifier == specified subject identifier?

                                                                                   No
                                                  Yes

 Add the subject identifier to the                             Create a topic with the subject identifier
existing topic and return the topic                                      and return the topic

  Lars Heuer · http://www.semagia.com            TMRA 2008, Leipzig · 17.10.2008                     14
  Johannes Schmidt · http://www.sixgroups.com
Details – Topics – Best
Practise
     If possible use an explicit identity (subject
     identifier, subject locator or item identifier)
     createTopic() is implementation dependent
     and not reliable




Lars Heuer · http://www.semagia.com           TMRA 2008, Leipzig · 17.10.2008   15
Johannes Schmidt · http://www.sixgroups.com
Details - Occurrences
     TMAPI 1.0: Untyped occurrences possible,
     only strings and locators are supported
     TMAPI 2.0: Untyped occurrences are
     disallowed, any datatype possible (c.f.
     interface core.DatatypeAware)
     occ.setValue(1)     xsd:int
     occ.setValue(quot;valuequot;)     xsd:string
     occ.setValue(1.0F)     xsd:float
     occ.setValue(quot;valuequot;, locator)
        datatype = locator
Lars Heuer · http://www.semagia.com           TMRA 2008, Leipzig · 17.10.2008   16
Johannes Schmidt · http://www.sixgroups.com
Details - Associations
     TMAPI 1.0: Untyped associations and roles
     without a type or player are allowed
     TMAPI 2.0: Untyped associations are
     disallowed, every role has a type and a
     player
           Caution:
                TMAPI 1.0: createAssociationRole(player, type)
                TMAPI 2.0: createRole(type, player)


Lars Heuer · http://www.semagia.com           TMRA 2008, Leipzig · 17.10.2008   17
Johannes Schmidt · http://www.sixgroups.com
Details - Scope
     TMAPI 1.0: quot;nullquot; represents the
     unconstrained scope in factory methods:
           createName(quot;The Beatlesquot;, null)
     TMAPI 2.0: If the scope is not specified, the
     statement is in the unconstrained scope
     (variable argument):
           createName(quot;The Beatlesquot;)
           createName(quot;Pilzköpfequot;, nickname, german)
     Scope definition works also for associations,
     occurrences and variants
Lars Heuer · http://www.semagia.com           TMRA 2008, Leipzig · 17.10.2008   18
Johannes Schmidt · http://www.sixgroups.com
Details – Index
     TMAPI 1.0: 8 indexes which implement a construct-centric view:
        TopicMapObjectsIndex
        ScopedObjectsIndex
        TopicsIndex
        TopicNamesIndex
        VariantsIndex
        OccurrencesIndex
        AssociationsIndex
        AssociationRolesIndex
     TMAPI 2.0: 3 indexes which implement a generalized view on a
     topic map:
        LiteralIndex (Occurrences, Names, Variants)
        ScopedIndex (Associations, Occurrences, Names, Variants)
        TypeInstanceIndex (Topics, Associations, Roles, Occurrences,
        Names)
Lars Heuer · http://www.semagia.com           TMRA 2008, Leipzig · 17.10.2008   19
Johannes Schmidt · http://www.sixgroups.com
Details – Index
     TMAPI 1.0:
     TopicsIndex idx = (TopicsIndex)
                    tm.getHelperObject(TopicsIndex.class);
     (Exception handling omitted)

     TMAPI 2.0:
     TypeInstanceIndex idx =
                   tm.getIndex(TypeInstanceIndex.class);
     (No checked exceptions)


Lars Heuer · http://www.semagia.com           TMRA 2008, Leipzig · 17.10.2008   20
Johannes Schmidt · http://www.sixgroups.com
Outlook
     Notifications
     Transactions
     Advanced filter API (XPath aka TMPath
     expressions are implemented by TMAPIX)
     Participate! http://www.tmapi.org/




Lars Heuer · http://www.semagia.com           TMRA 2008, Leipzig · 17.10.2008   21
Johannes Schmidt · http://www.sixgroups.com
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/
     PHPTMAPI
     http://phptmapi.sourceforge.net/
     QuaaxTM
     PHPTMAPI 1.0 / PHPTMAPI 2.0 Topic Maps engine
     http://quaaxtm.sourceforge.net/
Lars Heuer · http://www.semagia.com           TMRA 2008, Leipzig · 17.10.2008   22
Johannes Schmidt · http://www.sixgroups.com
References
     TMAPI.NET (C#)
     http://sourceforge.net/project/tmapinet
     TMAPIX
     Utilities for TMAPI (Java)
     http://tmapix.googlecode.com/




Lars Heuer · http://www.semagia.com           TMRA 2008, Leipzig · 17.10.2008   23
Johannes Schmidt · http://www.sixgroups.com
Discussion

                                              Questions?

                                              Answers! ☺




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

More Related Content

Similar to TMAPI 2.0

TMAPI 2.0 tutorial
TMAPI 2.0 tutorialTMAPI 2.0 tutorial
TMAPI 2.0 tutorial
tmra
 
Ctm 1.0 Tutorial
Ctm 1.0 TutorialCtm 1.0 Tutorial
Ctm 1.0 Tutorial
tmra
 
Ontopia tutorial
Ontopia tutorialOntopia tutorial
Ontopia tutorial
Lars Marius Garshol
 
Streaming Topic Maps API
Streaming Topic Maps APIStreaming Topic Maps API
Streaming Topic Maps API
tmra
 
Ruby On Rails Intro
Ruby On Rails IntroRuby On Rails Intro
Ruby On Rails Intro
Sarah Allen
 
Jwt == insecurity?
Jwt == insecurity?Jwt == insecurity?
Jwt == insecurity?
snyff
 
How We Learned To Stop Worrying And Love (or at least live with) GitHub
How We Learned To Stop Worrying And Love (or at least live with) GitHubHow We Learned To Stop Worrying And Love (or at least live with) GitHub
How We Learned To Stop Worrying And Love (or at least live with) GitHub
dreamwidth
 
Reversing JavaScript
Reversing JavaScriptReversing JavaScript
Reversing JavaScript
Roberto Suggi Liverani
 
Getty Vocabulary Program LOD: Ontologies and Semantic Representation
Getty Vocabulary Program LOD: Ontologies and Semantic RepresentationGetty Vocabulary Program LOD: Ontologies and Semantic Representation
Getty Vocabulary Program LOD: Ontologies and Semantic Representation
Vladimir Alexiev, PhD, PMP
 
NLBSE’22: Tool Competition
NLBSE’22: Tool CompetitionNLBSE’22: Tool Competition
NLBSE’22: Tool Competition
Sebastiano Panichella
 
Cache Me If You Can - Tuist Quick Start .pptx
Cache Me If You Can - Tuist Quick Start .pptxCache Me If You Can - Tuist Quick Start .pptx
Cache Me If You Can - Tuist Quick Start .pptx
RonanOCiosoig1
 
doT.py - a python template engine.
doT.py - a python template engine.doT.py - a python template engine.
doT.py - a python template engine.
David Chen
 
Customizing the Presentation Model and Physical Renderer in Siebel Open UI
Customizing the Presentation Model and Physical Renderer in Siebel Open UICustomizing the Presentation Model and Physical Renderer in Siebel Open UI
Customizing the Presentation Model and Physical Renderer in Siebel Open UI
Tech OneStop
 
KubeSecOps
KubeSecOpsKubeSecOps
KubeSecOps
Karthik Gaekwad
 
2014 10-14: GitHub plus FOSS == 1 million SPDX
2014 10-14: GitHub plus FOSS == 1 million SPDX2014 10-14: GitHub plus FOSS == 1 million SPDX
2014 10-14: GitHub plus FOSS == 1 million SPDX
Nuno Brito
 
Creating Enterprise Web Applications with Node.js
Creating Enterprise Web Applications with Node.jsCreating Enterprise Web Applications with Node.js
Creating Enterprise Web Applications with Node.js
Sebastian Springer
 

Similar to TMAPI 2.0 (16)

TMAPI 2.0 tutorial
TMAPI 2.0 tutorialTMAPI 2.0 tutorial
TMAPI 2.0 tutorial
 
Ctm 1.0 Tutorial
Ctm 1.0 TutorialCtm 1.0 Tutorial
Ctm 1.0 Tutorial
 
Ontopia tutorial
Ontopia tutorialOntopia tutorial
Ontopia tutorial
 
Streaming Topic Maps API
Streaming Topic Maps APIStreaming Topic Maps API
Streaming Topic Maps API
 
Ruby On Rails Intro
Ruby On Rails IntroRuby On Rails Intro
Ruby On Rails Intro
 
Jwt == insecurity?
Jwt == insecurity?Jwt == insecurity?
Jwt == insecurity?
 
How We Learned To Stop Worrying And Love (or at least live with) GitHub
How We Learned To Stop Worrying And Love (or at least live with) GitHubHow We Learned To Stop Worrying And Love (or at least live with) GitHub
How We Learned To Stop Worrying And Love (or at least live with) GitHub
 
Reversing JavaScript
Reversing JavaScriptReversing JavaScript
Reversing JavaScript
 
Getty Vocabulary Program LOD: Ontologies and Semantic Representation
Getty Vocabulary Program LOD: Ontologies and Semantic RepresentationGetty Vocabulary Program LOD: Ontologies and Semantic Representation
Getty Vocabulary Program LOD: Ontologies and Semantic Representation
 
NLBSE’22: Tool Competition
NLBSE’22: Tool CompetitionNLBSE’22: Tool Competition
NLBSE’22: Tool Competition
 
Cache Me If You Can - Tuist Quick Start .pptx
Cache Me If You Can - Tuist Quick Start .pptxCache Me If You Can - Tuist Quick Start .pptx
Cache Me If You Can - Tuist Quick Start .pptx
 
doT.py - a python template engine.
doT.py - a python template engine.doT.py - a python template engine.
doT.py - a python template engine.
 
Customizing the Presentation Model and Physical Renderer in Siebel Open UI
Customizing the Presentation Model and Physical Renderer in Siebel Open UICustomizing the Presentation Model and Physical Renderer in Siebel Open UI
Customizing the Presentation Model and Physical Renderer in Siebel Open UI
 
KubeSecOps
KubeSecOpsKubeSecOps
KubeSecOps
 
2014 10-14: GitHub plus FOSS == 1 million SPDX
2014 10-14: GitHub plus FOSS == 1 million SPDX2014 10-14: GitHub plus FOSS == 1 million SPDX
2014 10-14: GitHub plus FOSS == 1 million SPDX
 
Creating Enterprise Web Applications with Node.js
Creating Enterprise Web Applications with Node.jsCreating Enterprise Web Applications with Node.js
Creating Enterprise Web Applications with Node.js
 

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 Database
tmra
 
Weber 2010 brn
Weber 2010 brnWeber 2010 brn
Weber 2010 brn
tmra
 
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
tmra
 
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
tmra
 
Topic Merge Scenarios for Knowledge Federation
Topic Merge Scenarios for Knowledge FederationTopic Merge Scenarios for Knowledge Federation
Topic Merge Scenarios for Knowledge Federation
tmra
 
JavaScript Topic Maps in server environments
JavaScript Topic Maps in server environmentsJavaScript Topic Maps in server environments
JavaScript Topic Maps in server environments
tmra
 
Modelling IMS QTI with Topic Maps
Modelling IMS QTI with Topic MapsModelling IMS QTI with Topic Maps
Modelling IMS QTI with Topic Maps
tmra
 
Hatana - Virtual Topic Map Merging
Hatana - Virtual Topic Map MergingHatana - Virtual Topic Map Merging
Hatana - Virtual Topic Map Merging
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
 
Maiana - The social Topic Maps explorer
Maiana - The social Topic Maps explorerMaiana - The social Topic Maps explorer
Maiana - The social Topic Maps explorer
tmra
 
Tmra2010 matsuuraposter
Tmra2010 matsuuraposterTmra2010 matsuuraposter
Tmra2010 matsuuraposter
tmra
 
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
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
 
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
tmra
 
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
tmra
 
Mappe1
Mappe1Mappe1
Mappe1
tmra
 
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
tmra
 
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
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

The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
operationspcvita
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptxPRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
christinelarrosa
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
Edge AI and Vision Alliance
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Neo4j
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
Neo4j
 
Must Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during MigrationMust Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during Migration
Mydbops
 
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
"Scaling RAG Applications to serve millions of users",  Kevin Goedecke"Scaling RAG Applications to serve millions of users",  Kevin Goedecke
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
Fwdays
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
Pablo Gómez Abajo
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
Miro Wengner
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
DianaGray10
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
Alex Pruden
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
Ivo Velitchkov
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
Safe Software
 

Recently uploaded (20)

The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptxPRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
 
Must Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during MigrationMust Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during Migration
 
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
"Scaling RAG Applications to serve millions of users",  Kevin Goedecke"Scaling RAG Applications to serve millions of users",  Kevin Goedecke
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
 

TMAPI 2.0

  • 1. TMAPI 2.0 Topic Maps API 2.0 Lars Heuer <heuer@semagia.com> Johannes Schmidt <js@sixgroups.com> TMRA 2008, Leipzig · 17.10.2008
  • 2. Table of Contents Introduction Design Objectives Core Interfaces Details – Core Details – Index Questions / Answers Lars Heuer · http://www.semagia.com TMRA 2008, Leipzig · 17.10.2008 2 Johannes Schmidt · http://www.sixgroups.com
  • 3. Introduction TMAPI is a set of Java interfaces to interact with topic maps TMAPI makes applications Topic Maps engine independent TMAPI 1.0 has been implemented by several Open Source and commercial Topic Maps engines TMAPI 1.0 has been ported to other programming languages Not designed by a standards body but a de-facto standard Lars Heuer · http://www.semagia.com TMRA 2008, Leipzig · 17.10.2008 3 Johannes Schmidt · http://www.sixgroups.com
  • 4. Design Objectives Topic Maps – Data Model (TMDM) compatible (TMAPI 1.0 is not) Respect TMDM constraints to some extend (i.e. disallow quot;nullquot; in serveral places) Java 1.5 Userfriendly (depends on the perspective, though) More tests (TMAPI 1.0: 89 tests TMAPI 2.0: approx. 250 tests) Apply lessons learned from TMAPI 1.0 Lars Heuer · http://www.semagia.com TMRA 2008, Leipzig · 17.10.2008 4 Johannes Schmidt · http://www.sixgroups.com
  • 5. Core Interfaces Construct Reifiable Typed Scoped DatatypeAware(Reifiable, Scoped) TopicMap(Reifiable) Topic(Construct) Association(Reifiable, Typed, Scoped) Role(Reifiable, Typed) Occurrence(Datatyped, Typed) Name(Typed, Scoped) Variant(Datatyped) Lars Heuer · http://www.semagia.com TMRA 2008, Leipzig · 17.10.2008 5 Johannes Schmidt · http://www.sixgroups.com
  • 6. Details – Topic Map Object / Topic lookup methods moved from the TopicsIndex to the TopicMap interface: getConstructByItemIdentifier getTopicBySubjectIdentifier getTopicBySubjectLocator Lars Heuer · http://www.semagia.com TMRA 2008, Leipzig · 17.10.2008 6 Johannes Schmidt · http://www.sixgroups.com
  • 7. Details – Topics TMAPI 1.0: One method to create topics (createTopic Topic without any identity) TMAPI 2.0: Four methods to create topics: createTopicBySubjectIdentifier createTopicBySubjectLocator createTopicByItemIdentifier createTopic ( Topic with an automatically generated item identifier) Lars Heuer · http://www.semagia.com TMRA 2008, Leipzig · 17.10.2008 7 Johannes Schmidt · http://www.sixgroups.com
  • 8. Details – Topics Create or reuse existing topic with a sid in TMAPI 1.0: TopicsIndex tIdx = (TopicsIndex) tm.getHelperObject(TopicsIndex.class); if (!tIdx.isOpen()) { tIdx.open(); } if (!tIdx.getIndexFlags().isAutoUpdated()) { tIdx.reindex(); } Topic topic = tIdx.getTopicBySubjectIdentifier(sid); if (topic == null) { TopicMapObject tmo = tm.getObjectBySourceLocator(sid); if (tmo instanceof Topic) { topic = (Topic) tmo; } } if (topic == null) { topic = tm.createTopic(); topic.addSubjectIdentifier(sid); } Lars Heuer · http://www.semagia.com TMRA 2008, Leipzig · 17.10.2008 8 Johannes Schmidt · http://www.sixgroups.com
  • 9. Details – Topic Creation Algorithm createTopicBySubjectIdentifier Lars Heuer · http://www.semagia.com TMRA 2008, Leipzig · 17.10.2008 9 Johannes Schmidt · http://www.sixgroups.com
  • 10. Details – Topic Creation Algorithm createTopicBySubjectIdentifier Exists a topic with the specified subject identifier? Lars Heuer · http://www.semagia.com TMRA 2008, Leipzig · 17.10.2008 10 Johannes Schmidt · http://www.sixgroups.com
  • 11. Details – Topic Creation Algorithm createTopicBySubjectIdentifier Exists a topic with the specified subject identifier? Yes Return existing topic Lars Heuer · http://www.semagia.com TMRA 2008, Leipzig · 17.10.2008 11 Johannes Schmidt · http://www.sixgroups.com
  • 12. Details – Topic Creation Algorithm createTopicBySubjectIdentifier Exists a topic with the specified subject identifier? Yes No Return existing topic Exists a topic with an item identifier == specified subject identifier? Lars Heuer · http://www.semagia.com TMRA 2008, Leipzig · 17.10.2008 12 Johannes Schmidt · http://www.sixgroups.com
  • 13. Details – Topic Creation Algorithm createTopicBySubjectIdentifier Exists a topic with the specified subject identifier? Yes No Return existing topic Exists a topic with an item identifier == specified subject identifier? Yes Add the subject identifier to the existing topic and return the topic Lars Heuer · http://www.semagia.com TMRA 2008, Leipzig · 17.10.2008 13 Johannes Schmidt · http://www.sixgroups.com
  • 14. Details – Topic Creation Algorithm createTopicBySubjectIdentifier Exists a topic with the specified subject identifier? Yes No Return existing topic Exists a topic with an item identifier == specified subject identifier? No Yes Add the subject identifier to the Create a topic with the subject identifier existing topic and return the topic and return the topic Lars Heuer · http://www.semagia.com TMRA 2008, Leipzig · 17.10.2008 14 Johannes Schmidt · http://www.sixgroups.com
  • 15. Details – Topics – Best Practise If possible use an explicit identity (subject identifier, subject locator or item identifier) createTopic() is implementation dependent and not reliable Lars Heuer · http://www.semagia.com TMRA 2008, Leipzig · 17.10.2008 15 Johannes Schmidt · http://www.sixgroups.com
  • 16. Details - Occurrences TMAPI 1.0: Untyped occurrences possible, only strings and locators are supported TMAPI 2.0: Untyped occurrences are disallowed, any datatype possible (c.f. interface core.DatatypeAware) occ.setValue(1) xsd:int occ.setValue(quot;valuequot;) xsd:string occ.setValue(1.0F) xsd:float occ.setValue(quot;valuequot;, locator) datatype = locator Lars Heuer · http://www.semagia.com TMRA 2008, Leipzig · 17.10.2008 16 Johannes Schmidt · http://www.sixgroups.com
  • 17. Details - Associations TMAPI 1.0: Untyped associations and roles without a type or player are allowed TMAPI 2.0: Untyped associations are disallowed, every role has a type and a player Caution: TMAPI 1.0: createAssociationRole(player, type) TMAPI 2.0: createRole(type, player) Lars Heuer · http://www.semagia.com TMRA 2008, Leipzig · 17.10.2008 17 Johannes Schmidt · http://www.sixgroups.com
  • 18. Details - Scope TMAPI 1.0: quot;nullquot; represents the unconstrained scope in factory methods: createName(quot;The Beatlesquot;, null) TMAPI 2.0: If the scope is not specified, the statement is in the unconstrained scope (variable argument): createName(quot;The Beatlesquot;) createName(quot;Pilzköpfequot;, nickname, german) Scope definition works also for associations, occurrences and variants Lars Heuer · http://www.semagia.com TMRA 2008, Leipzig · 17.10.2008 18 Johannes Schmidt · http://www.sixgroups.com
  • 19. Details – Index TMAPI 1.0: 8 indexes which implement a construct-centric view: TopicMapObjectsIndex ScopedObjectsIndex TopicsIndex TopicNamesIndex VariantsIndex OccurrencesIndex AssociationsIndex AssociationRolesIndex TMAPI 2.0: 3 indexes which implement a generalized view on a topic map: LiteralIndex (Occurrences, Names, Variants) ScopedIndex (Associations, Occurrences, Names, Variants) TypeInstanceIndex (Topics, Associations, Roles, Occurrences, Names) Lars Heuer · http://www.semagia.com TMRA 2008, Leipzig · 17.10.2008 19 Johannes Schmidt · http://www.sixgroups.com
  • 20. Details – Index TMAPI 1.0: TopicsIndex idx = (TopicsIndex) tm.getHelperObject(TopicsIndex.class); (Exception handling omitted) TMAPI 2.0: TypeInstanceIndex idx = tm.getIndex(TypeInstanceIndex.class); (No checked exceptions) Lars Heuer · http://www.semagia.com TMRA 2008, Leipzig · 17.10.2008 20 Johannes Schmidt · http://www.sixgroups.com
  • 21. Outlook Notifications Transactions Advanced filter API (XPath aka TMPath expressions are implemented by TMAPIX) Participate! http://www.tmapi.org/ Lars Heuer · http://www.semagia.com TMRA 2008, Leipzig · 17.10.2008 21 Johannes Schmidt · http://www.sixgroups.com
  • 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/ PHPTMAPI http://phptmapi.sourceforge.net/ QuaaxTM PHPTMAPI 1.0 / PHPTMAPI 2.0 Topic Maps engine http://quaaxtm.sourceforge.net/ Lars Heuer · http://www.semagia.com TMRA 2008, Leipzig · 17.10.2008 22 Johannes Schmidt · http://www.sixgroups.com
  • 23. References TMAPI.NET (C#) http://sourceforge.net/project/tmapinet TMAPIX Utilities for TMAPI (Java) http://tmapix.googlecode.com/ Lars Heuer · http://www.semagia.com TMRA 2008, Leipzig · 17.10.2008 23 Johannes Schmidt · http://www.sixgroups.com
  • 24. Discussion Questions? Answers! ☺ Lars Heuer · http://www.semagia.com TMRA 2008, Leipzig · 17.10.2008 24 Johannes Schmidt · http://www.sixgroups.com