SlideShare a Scribd company logo
W E B V E V E R I E T




JavaScript Topic Maps in
  server environments


    Jan Schreiber <jans@ravn.no>

                              Ravn Webveveriet AS, 2010-10-01
                                                                1
Outline
                        • JavaScript
                        • The tmjs Topic Maps engine
                        • Use Case: A PSI Server
                        • Outlook


W E B V E V E R I E T


                                                       2
JavaScript
                        • JavaScript is LISP with a C-like syntax
                        • Virtually every personal computer in
                          the world has at least one JavaScript
                          interpreter installed on it and in active
                          use.




W E B V E V E R I E T


                                                                      3
tmjs
                        • A Topic Maps engine
                        • Written in pure JavaScript
                        • Full TMDM including Variants
                        • TMAPI 2.0-based
                        • In-memory backend, JTM import/
                          export, experimental XTM 2.0 import
                          (requires DOM)

W E B V E V E R I E T


                                                                4
tmjs
                        • Platform independent: All(iPhone &
                          browsers, mobile devices
                                                    modern

                          Android), server-side JavaScript
                        • Unit tests, CXTM tests (partly) & JSLint
                          validating
                        • Small changes to TMAPI due to the lack of
                          method overloading
                        • Syntactic sugar: Supports chaining of
                          TMAPI calls

W E B V E V E R I E T


                                                                      5
Chaining

                        1 tm.createTopic().addSubjectIdentifier(foo).
                        2   createName('bar').getParent().
                        3   createOccurrence(type,'baz').
                        4     addScopingTopic(quux);




W E B V E V E R I E T


                                                                        6
tmjs: Outlook
                        •   More import/export formats: XTM 2.0, CTM
                        •   Complete TMAPI, add more tests, full CXTM
                        •   Persistence:
                            •   Web SQL Database backend
                            •   Persistent backend for Node (couchdb?)
                        •   Later: Query language



W E B V E V E R I E T


                                                                         7
Use Case: A PSI Server


                        • Idea: Start the server with a Topic Map
                          and it will serve information about all
                          Subject Identifiers for a given domain




W E B V E V E R I E T


                                                                    8
• Screenshot node-psi-server


W E B V E V E R I E T


                                                       9
Server-side JavaScript


                        • 1996: Netscape releases LiveWire as
                          part of Netscape Enterprise Server 2.0
                        • 2009: Ryan Dahl writes Node

W E B V E V E R I E T


                                                                   10
Node
                        • A framework for low-level network
                          applications based on Google's V8
                          engine
                        • TCP, DNS and HTTP are first-class
                          protocols
                        • Event-based, asynchronous
                          programming
                        • All I/O is non-blocking
W E B V E V E R I E T


                                                              11
result = db_query(db, "SELECT * FROM topic");




W E B V E V E R I E T


                                                       12
db_query(db, "SELECT * FROM topic", callback);




W E B V E V E R I E T


                                                        13
db_query(db, "SELECT * FROM topic", callback);
       callback = function (err, result) {
                  // ...
       }


W E B V E V E R I E T


                                                        14
1              var tm, servername;
 2              // assumes that the TopicMap object tm has been initialized and
 3              // the topic map in question has been imported successfuly.
 4              // servername is set from a command line parameter
 5              http.createServer(function (req, res) {
 6                      var url = 'http://'+servername+req.url, loc, topic;
 7                      loc = tm.createLocator(url);
 8                      topic = tm.getTopicBySubjectIdentifier(loc);
 9                      if (topic) {
 10                         res.writeHead(200, {'Content-Type': 'text/html'});
 11                         // create a page with information about the PSI
 12                     } else {
 13                         // Not found: create a 404 response
 14                     }
 15                     res.close();
 16             }).listen(80);


W E B V E V E R I E T


                                                                                 15
Use Case: A PSI Server
               • More output formats: XHTML, JTM, XTM
               • Support for logging, caching, templates
               • Configurable list of information elements
                        that are included on generated pages (e.g.
                        dc:description, supertype-subtype)
               • PSI black-listing
               • subj3ct.com integration
W E B V E V E R I E T


                                                                     16
PSI Server: Observations

                        • Easy to implement
                        • It’s really fast: 200+200ms to read the
                          Opera topic map, 1ms to serve a PSI
                          page
                        • tmjs can be used on server and client
                          side    Reuse of application code


W E B V E V E R I E T


                                                                    17
Summary & Outlook

                        • Server side Topic Maps with JavaScript:
                          possible!
                        • Asynchronous TMAPI?
                        • In its current state maybe best suited
                          for low-level applications


W E B V E V E R I E T


                                                                    18
What could it be good for?


                        • TMRAP, TM REST API
                        • SDshare
                        • P2P applications
                        • DNS servers

W E B V E V E R I E T


                                                     19
Questions?

                        Download tmjs now!
                        http://github.com/jansc/tmjs
                        Coming soon:
                        http://github.com/jansc/node-psi-server



W E B V E V E R I E T


                                                                  20

More Related Content

What's hot

FreeBSD and Drivers
FreeBSD and DriversFreeBSD and Drivers
FreeBSD and Drivers
Kernel TLV
 
More on bpftrace for MariaDB DBAs and Developers - FOSDEM 2022 MariaDB Devroom
More on bpftrace for MariaDB DBAs and Developers - FOSDEM 2022 MariaDB DevroomMore on bpftrace for MariaDB DBAs and Developers - FOSDEM 2022 MariaDB Devroom
More on bpftrace for MariaDB DBAs and Developers - FOSDEM 2022 MariaDB Devroom
Valeriy Kravchuk
 
Distributed app development with nodejs and zeromq
Distributed app development with nodejs and zeromqDistributed app development with nodejs and zeromq
Distributed app development with nodejs and zeromqRuben Tan
 
Development and deployment with composer and kite
Development and deployment with composer and kiteDevelopment and deployment with composer and kite
Development and deployment with composer and kite
Christian Opitz
 
Open mp intro_01
Open mp intro_01Open mp intro_01
Open mp intro_01
Oleg Nazarevych
 
LLJVM: LLVM bitcode to JVM bytecode
LLJVM: LLVM bitcode to JVM bytecodeLLJVM: LLVM bitcode to JVM bytecode
LLJVM: LLVM bitcode to JVM bytecode
Takeshi Yamamuro
 
Improving the ZFS Userland-Kernel API with Channel Programs - BSDCAN 2017 - M...
Improving the ZFS Userland-Kernel API with Channel Programs - BSDCAN 2017 - M...Improving the ZFS Userland-Kernel API with Channel Programs - BSDCAN 2017 - M...
Improving the ZFS Userland-Kernel API with Channel Programs - BSDCAN 2017 - M...
Matthew Ahrens
 
Monitoraggio del Traffico di Rete Usando Python ed ntop
Monitoraggio del Traffico di Rete Usando Python ed ntopMonitoraggio del Traffico di Rete Usando Python ed ntop
Monitoraggio del Traffico di Rete Usando Python ed ntop
PyCon Italia
 
IPv4aaS tutorial and hands-on
IPv4aaS tutorial and hands-onIPv4aaS tutorial and hands-on
IPv4aaS tutorial and hands-on
APNIC
 
NativeBoost
NativeBoostNativeBoost
NativeBoost
ESUG
 
OpenMP Tutorial for Beginners
OpenMP Tutorial for BeginnersOpenMP Tutorial for Beginners
OpenMP Tutorial for Beginners
Dhanashree Prasad
 
High-Performance Networking Using eBPF, XDP, and io_uring
High-Performance Networking Using eBPF, XDP, and io_uringHigh-Performance Networking Using eBPF, XDP, and io_uring
High-Performance Networking Using eBPF, XDP, and io_uring
ScyllaDB
 
A Sneak Peek of MLIR in TensorFlow
A Sneak Peek of MLIR in TensorFlowA Sneak Peek of MLIR in TensorFlow
A Sneak Peek of MLIR in TensorFlow
Koan-Sin Tan
 
Concurrent Programming OpenMP @ Distributed System Discussion
Concurrent Programming OpenMP @ Distributed System DiscussionConcurrent Programming OpenMP @ Distributed System Discussion
Concurrent Programming OpenMP @ Distributed System Discussion
CherryBerry2
 
OSDC 2017 - Casey Callendrello -The evolution of the Container Network Interface
OSDC 2017 - Casey Callendrello -The evolution of the Container Network InterfaceOSDC 2017 - Casey Callendrello -The evolution of the Container Network Interface
OSDC 2017 - Casey Callendrello -The evolution of the Container Network Interface
NETWAYS
 

What's hot (17)

FreeBSD and Drivers
FreeBSD and DriversFreeBSD and Drivers
FreeBSD and Drivers
 
More on bpftrace for MariaDB DBAs and Developers - FOSDEM 2022 MariaDB Devroom
More on bpftrace for MariaDB DBAs and Developers - FOSDEM 2022 MariaDB DevroomMore on bpftrace for MariaDB DBAs and Developers - FOSDEM 2022 MariaDB Devroom
More on bpftrace for MariaDB DBAs and Developers - FOSDEM 2022 MariaDB Devroom
 
Distributed app development with nodejs and zeromq
Distributed app development with nodejs and zeromqDistributed app development with nodejs and zeromq
Distributed app development with nodejs and zeromq
 
Development and deployment with composer and kite
Development and deployment with composer and kiteDevelopment and deployment with composer and kite
Development and deployment with composer and kite
 
Open mp intro_01
Open mp intro_01Open mp intro_01
Open mp intro_01
 
LLJVM: LLVM bitcode to JVM bytecode
LLJVM: LLVM bitcode to JVM bytecodeLLJVM: LLVM bitcode to JVM bytecode
LLJVM: LLVM bitcode to JVM bytecode
 
Improving the ZFS Userland-Kernel API with Channel Programs - BSDCAN 2017 - M...
Improving the ZFS Userland-Kernel API with Channel Programs - BSDCAN 2017 - M...Improving the ZFS Userland-Kernel API with Channel Programs - BSDCAN 2017 - M...
Improving the ZFS Userland-Kernel API with Channel Programs - BSDCAN 2017 - M...
 
Monitoraggio del Traffico di Rete Usando Python ed ntop
Monitoraggio del Traffico di Rete Usando Python ed ntopMonitoraggio del Traffico di Rete Usando Python ed ntop
Monitoraggio del Traffico di Rete Usando Python ed ntop
 
IPv4aaS tutorial and hands-on
IPv4aaS tutorial and hands-onIPv4aaS tutorial and hands-on
IPv4aaS tutorial and hands-on
 
MPI n OpenMP
MPI n OpenMPMPI n OpenMP
MPI n OpenMP
 
NativeBoost
NativeBoostNativeBoost
NativeBoost
 
OpenMP Tutorial for Beginners
OpenMP Tutorial for BeginnersOpenMP Tutorial for Beginners
OpenMP Tutorial for Beginners
 
High-Performance Networking Using eBPF, XDP, and io_uring
High-Performance Networking Using eBPF, XDP, and io_uringHigh-Performance Networking Using eBPF, XDP, and io_uring
High-Performance Networking Using eBPF, XDP, and io_uring
 
A Sneak Peek of MLIR in TensorFlow
A Sneak Peek of MLIR in TensorFlowA Sneak Peek of MLIR in TensorFlow
A Sneak Peek of MLIR in TensorFlow
 
Concurrent Programming OpenMP @ Distributed System Discussion
Concurrent Programming OpenMP @ Distributed System DiscussionConcurrent Programming OpenMP @ Distributed System Discussion
Concurrent Programming OpenMP @ Distributed System Discussion
 
S emb t13-freertos
S emb t13-freertosS emb t13-freertos
S emb t13-freertos
 
OSDC 2017 - Casey Callendrello -The evolution of the Container Network Interface
OSDC 2017 - Casey Callendrello -The evolution of the Container Network InterfaceOSDC 2017 - Casey Callendrello -The evolution of the Container Network Interface
OSDC 2017 - Casey Callendrello -The evolution of the Container Network Interface
 

Viewers also liked

External Schema for Topic Map Database
External Schema for Topic Map DatabaseExternal Schema for Topic Map Database
External Schema for Topic Map Database
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
 
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
 
Topic Merge Scenarios for Knowledge Federation
Topic Merge Scenarios for Knowledge FederationTopic Merge Scenarios for Knowledge Federation
Topic Merge Scenarios for Knowledge Federation
tmra
 
Weber 2010 brn
Weber 2010 brnWeber 2010 brn
Weber 2010 brntmra
 
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
 
clearchannel 30
clearchannel 30clearchannel 30
clearchannel 30finance31
 
idSpace: Distributed Collaborative Product Innovation
idSpace: Distributed Collaborative Product InnovationidSpace: Distributed Collaborative Product Innovation
idSpace: Distributed Collaborative Product Innovation
tmra
 
Topic Maps Exchange in the Absence of Shared Vocabularies
Topic Maps Exchange in the Absence of Shared VocabulariesTopic Maps Exchange in the Absence of Shared Vocabularies
Topic Maps Exchange in the Absence of Shared Vocabularies
tmra
 
H-Maps: An Efficient Approach for Graphical Visualization and Navigation of T...
H-Maps: An Efficient Approach for Graphical Visualization and Navigation of T...H-Maps: An Efficient Approach for Graphical Visualization and Navigation of T...
H-Maps: An Efficient Approach for Graphical Visualization and Navigation of T...
tmra
 
Fernando Sancho Caparrini
Fernando Sancho CaparriniFernando Sancho Caparrini
Fernando Sancho Caparrini
tmra
 
Creating Topic Maps Ontologies for Space Experiments
Creating Topic Maps Ontologies for Space ExperimentsCreating Topic Maps Ontologies for Space Experiments
Creating Topic Maps Ontologies for Space Experiments
tmra
 
tolog - a topic maps query language
tolog - a topic maps query languagetolog - a topic maps query language
tolog - a topic maps query language
tmra
 
Towards an automatic semantic integration of information
Towards an automatic semantic integration of informationTowards an automatic semantic integration of information
Towards an automatic semantic integration of information
tmra
 
Topic Maps for Association Rule Mining
Topic Maps for Association Rule MiningTopic Maps for Association Rule Mining
Topic Maps for Association Rule Mining
tmra
 
TMRAP - Topic Maps Remote Access Protocol
TMRAP - Topic Maps Remote Access ProtocolTMRAP - Topic Maps Remote Access Protocol
TMRAP - Topic Maps Remote Access Protocol
tmra
 
A step towards TMDM 3.0
A step towards TMDM 3.0A step towards TMDM 3.0
A step towards TMDM 3.0
tmra
 
TMCL Edit
TMCL EditTMCL Edit
TMCL Edit
tmra
 

Viewers also liked (20)

External Schema for Topic Map Database
External Schema for Topic Map DatabaseExternal Schema for Topic Map Database
External Schema for Topic Map Database
 
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
 
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
 
Topic Merge Scenarios for Knowledge Federation
Topic Merge Scenarios for Knowledge FederationTopic Merge Scenarios for Knowledge Federation
Topic Merge Scenarios for Knowledge Federation
 
Weber 2010 brn
Weber 2010 brnWeber 2010 brn
Weber 2010 brn
 
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 ...
 
clearchannel 30
clearchannel 30clearchannel 30
clearchannel 30
 
idSpace: Distributed Collaborative Product Innovation
idSpace: Distributed Collaborative Product InnovationidSpace: Distributed Collaborative Product Innovation
idSpace: Distributed Collaborative Product Innovation
 
Topic Maps Exchange in the Absence of Shared Vocabularies
Topic Maps Exchange in the Absence of Shared VocabulariesTopic Maps Exchange in the Absence of Shared Vocabularies
Topic Maps Exchange in the Absence of Shared Vocabularies
 
bioequivalence
bioequivalencebioequivalence
bioequivalence
 
H-Maps: An Efficient Approach for Graphical Visualization and Navigation of T...
H-Maps: An Efficient Approach for Graphical Visualization and Navigation of T...H-Maps: An Efficient Approach for Graphical Visualization and Navigation of T...
H-Maps: An Efficient Approach for Graphical Visualization and Navigation of T...
 
Fernando Sancho Caparrini
Fernando Sancho CaparriniFernando Sancho Caparrini
Fernando Sancho Caparrini
 
Creating Topic Maps Ontologies for Space Experiments
Creating Topic Maps Ontologies for Space ExperimentsCreating Topic Maps Ontologies for Space Experiments
Creating Topic Maps Ontologies for Space Experiments
 
tolog - a topic maps query language
tolog - a topic maps query languagetolog - a topic maps query language
tolog - a topic maps query language
 
Towards an automatic semantic integration of information
Towards an automatic semantic integration of informationTowards an automatic semantic integration of information
Towards an automatic semantic integration of information
 
Topic Maps for Association Rule Mining
Topic Maps for Association Rule MiningTopic Maps for Association Rule Mining
Topic Maps for Association Rule Mining
 
TMRAP - Topic Maps Remote Access Protocol
TMRAP - Topic Maps Remote Access ProtocolTMRAP - Topic Maps Remote Access Protocol
TMRAP - Topic Maps Remote Access Protocol
 
A step towards TMDM 3.0
A step towards TMDM 3.0A step towards TMDM 3.0
A step towards TMDM 3.0
 
TMCL Edit
TMCL EditTMCL Edit
TMCL Edit
 
interchangeability
interchangeabilityinterchangeability
interchangeability
 

Similar to JavaScript Topic Maps in server environments

Using Smalltalk for controlling robotics systems
Using Smalltalk for controlling robotics systemsUsing Smalltalk for controlling robotics systems
Using Smalltalk for controlling robotics systemsSerge Stinckwich
 
introduction to node.js
introduction to node.jsintroduction to node.js
introduction to node.js
orkaplan
 
Deploying WO on Windows
Deploying WO on WindowsDeploying WO on Windows
Deploying WO on WindowsWO Community
 
Surge2012
Surge2012Surge2012
Surge2012
davidapacheco
 
Nodejs a-practical-introduction-oredev
Nodejs a-practical-introduction-oredevNodejs a-practical-introduction-oredev
Nodejs a-practical-introduction-oredev
Felix Geisendörfer
 
Nodejs - Should Ruby Developers Care?
Nodejs - Should Ruby Developers Care?Nodejs - Should Ruby Developers Care?
Nodejs - Should Ruby Developers Care?
Felix Geisendörfer
 
Kubernetes for java developers - Tutorial at Oracle Code One 2018
Kubernetes for java developers - Tutorial at Oracle Code One 2018Kubernetes for java developers - Tutorial at Oracle Code One 2018
Kubernetes for java developers - Tutorial at Oracle Code One 2018
Anthony Dahanne
 
OSCON 2011 - Node.js Tutorial
OSCON 2011 - Node.js TutorialOSCON 2011 - Node.js Tutorial
OSCON 2011 - Node.js TutorialTom Croucher
 
Node.js for beginner
Node.js for beginnerNode.js for beginner
Node.js for beginner
Sarunyhot Suwannachoti
 
Persistent Memory Programming with Pmemkv
Persistent Memory Programming with PmemkvPersistent Memory Programming with Pmemkv
Persistent Memory Programming with Pmemkv
Intel® Software
 
Nodejs - A quick tour (v6)
Nodejs - A quick tour (v6)Nodejs - A quick tour (v6)
Nodejs - A quick tour (v6)
Felix Geisendörfer
 
Live streaming of video and subtitles with MPEG-DASH
Live streaming of video and subtitles with MPEG-DASHLive streaming of video and subtitles with MPEG-DASH
Live streaming of video and subtitles with MPEG-DASH
Cyril Concolato
 
Network Stack in Userspace (NUSE)
Network Stack in Userspace (NUSE)Network Stack in Userspace (NUSE)
Network Stack in Userspace (NUSE)
Hajime Tazaki
 
Beginners Node.js
Beginners Node.jsBeginners Node.js
Beginners Node.js
Khaled Mosharraf
 
Modelling IMS QTI with Topic Maps
Modelling IMS QTI with Topic MapsModelling IMS QTI with Topic Maps
Modelling IMS QTI with Topic Maps
tmra
 
Run-time of Node.js : V8 JavaScript Engine
Run-time of Node.js: V8 JavaScript EngineRun-time of Node.js: V8 JavaScript Engine
Run-time of Node.js : V8 JavaScript Engine
Gary Yeh
 
Станислав Сидоренко «DeviceHive Java Server – миграция на Spring Boot»
Станислав Сидоренко «DeviceHive Java Server – миграция на Spring Boot»Станислав Сидоренко «DeviceHive Java Server – миграция на Spring Boot»
Станислав Сидоренко «DeviceHive Java Server – миграция на Spring Boot»DataArt
 
Developing realtime apps with Drupal and NodeJS
Developing realtime apps with Drupal and NodeJS Developing realtime apps with Drupal and NodeJS
Developing realtime apps with Drupal and NodeJS
drupalcampest
 
Новый InterSystems: open-source, митапы, хакатоны
Новый InterSystems: open-source, митапы, хакатоныНовый InterSystems: open-source, митапы, хакатоны
Новый InterSystems: open-source, митапы, хакатоны
Timur Safin
 
Nodejs
NodejsNodejs

Similar to JavaScript Topic Maps in server environments (20)

Using Smalltalk for controlling robotics systems
Using Smalltalk for controlling robotics systemsUsing Smalltalk for controlling robotics systems
Using Smalltalk for controlling robotics systems
 
introduction to node.js
introduction to node.jsintroduction to node.js
introduction to node.js
 
Deploying WO on Windows
Deploying WO on WindowsDeploying WO on Windows
Deploying WO on Windows
 
Surge2012
Surge2012Surge2012
Surge2012
 
Nodejs a-practical-introduction-oredev
Nodejs a-practical-introduction-oredevNodejs a-practical-introduction-oredev
Nodejs a-practical-introduction-oredev
 
Nodejs - Should Ruby Developers Care?
Nodejs - Should Ruby Developers Care?Nodejs - Should Ruby Developers Care?
Nodejs - Should Ruby Developers Care?
 
Kubernetes for java developers - Tutorial at Oracle Code One 2018
Kubernetes for java developers - Tutorial at Oracle Code One 2018Kubernetes for java developers - Tutorial at Oracle Code One 2018
Kubernetes for java developers - Tutorial at Oracle Code One 2018
 
OSCON 2011 - Node.js Tutorial
OSCON 2011 - Node.js TutorialOSCON 2011 - Node.js Tutorial
OSCON 2011 - Node.js Tutorial
 
Node.js for beginner
Node.js for beginnerNode.js for beginner
Node.js for beginner
 
Persistent Memory Programming with Pmemkv
Persistent Memory Programming with PmemkvPersistent Memory Programming with Pmemkv
Persistent Memory Programming with Pmemkv
 
Nodejs - A quick tour (v6)
Nodejs - A quick tour (v6)Nodejs - A quick tour (v6)
Nodejs - A quick tour (v6)
 
Live streaming of video and subtitles with MPEG-DASH
Live streaming of video and subtitles with MPEG-DASHLive streaming of video and subtitles with MPEG-DASH
Live streaming of video and subtitles with MPEG-DASH
 
Network Stack in Userspace (NUSE)
Network Stack in Userspace (NUSE)Network Stack in Userspace (NUSE)
Network Stack in Userspace (NUSE)
 
Beginners Node.js
Beginners Node.jsBeginners Node.js
Beginners Node.js
 
Modelling IMS QTI with Topic Maps
Modelling IMS QTI with Topic MapsModelling IMS QTI with Topic Maps
Modelling IMS QTI with Topic Maps
 
Run-time of Node.js : V8 JavaScript Engine
Run-time of Node.js: V8 JavaScript EngineRun-time of Node.js: V8 JavaScript Engine
Run-time of Node.js : V8 JavaScript Engine
 
Станислав Сидоренко «DeviceHive Java Server – миграция на Spring Boot»
Станислав Сидоренко «DeviceHive Java Server – миграция на Spring Boot»Станислав Сидоренко «DeviceHive Java Server – миграция на Spring Boot»
Станислав Сидоренко «DeviceHive Java Server – миграция на Spring Boot»
 
Developing realtime apps with Drupal and NodeJS
Developing realtime apps with Drupal and NodeJS Developing realtime apps with Drupal and NodeJS
Developing realtime apps with Drupal and NodeJS
 
Новый InterSystems: open-source, митапы, хакатоны
Новый InterSystems: open-source, митапы, хакатоныНовый InterSystems: open-source, митапы, хакатоны
Новый InterSystems: open-source, митапы, хакатоны
 
Nodejs
NodejsNodejs
Nodejs
 

More from 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_mapstmra
 
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 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 management
tmra
 
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 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
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 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
 
Live Integration Framework
Live Integration FrameworkLive Integration Framework
Live Integration Framework
tmra
 
Hatana tmra 2010
Hatana tmra 2010Hatana tmra 2010
Hatana tmra 2010tmra
 
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
 
AToM2 – a ”web database” with Topic Maps roots
AToM2 – a ”web database” with Topic Maps rootsAToM2 – a ”web database” with Topic Maps roots
AToM2 – a ”web database” with Topic Maps roots
tmra
 
Motto of TMRA 2010
Motto of TMRA 2010Motto of TMRA 2010
Motto of TMRA 2010tmra
 
Visual Rendering of Topic Maps Fragments
Visual Rendering of Topic Maps FragmentsVisual Rendering of Topic Maps Fragments
Visual Rendering of Topic Maps Fragmentstmra
 
TMBrowse Protocol
TMBrowse ProtocolTMBrowse Protocol
TMBrowse Protocoltmra
 
Inferred Classification
Inferred ClassificationInferred Classification
Inferred Classificationtmra
 

More from tmra (20)

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
 
Live Integration Framework
Live Integration FrameworkLive Integration Framework
Live Integration Framework
 
Hatana tmra 2010
Hatana tmra 2010Hatana tmra 2010
Hatana tmra 2010
 
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
 
AToM2 – a ”web database” with Topic Maps roots
AToM2 – a ”web database” with Topic Maps rootsAToM2 – a ”web database” with Topic Maps roots
AToM2 – a ”web database” with Topic Maps roots
 
Motto of TMRA 2010
Motto of TMRA 2010Motto of TMRA 2010
Motto of TMRA 2010
 
Visual Rendering of Topic Maps Fragments
Visual Rendering of Topic Maps FragmentsVisual Rendering of Topic Maps Fragments
Visual Rendering of Topic Maps Fragments
 
TMBrowse Protocol
TMBrowse ProtocolTMBrowse Protocol
TMBrowse Protocol
 
Inferred Classification
Inferred ClassificationInferred Classification
Inferred Classification
 

Recently uploaded

BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
Nguyen Thanh Tu Collection
 
Embracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic ImperativeEmbracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic Imperative
Peter Windle
 
Instructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptxInstructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptx
Jheel Barad
 
Unit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdfUnit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdf
Thiyagu K
 
CLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCE
CLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCECLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCE
CLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCE
BhavyaRajput3
 
Acetabularia Information For Class 9 .docx
Acetabularia Information For Class 9  .docxAcetabularia Information For Class 9  .docx
Acetabularia Information For Class 9 .docx
vaibhavrinwa19
 
Guidance_and_Counselling.pdf B.Ed. 4th Semester
Guidance_and_Counselling.pdf B.Ed. 4th SemesterGuidance_and_Counselling.pdf B.Ed. 4th Semester
Guidance_and_Counselling.pdf B.Ed. 4th Semester
Atul Kumar Singh
 
Honest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptxHonest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptx
timhan337
 
Palestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptxPalestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptx
RaedMohamed3
 
Operation Blue Star - Saka Neela Tara
Operation Blue Star   -  Saka Neela TaraOperation Blue Star   -  Saka Neela Tara
Operation Blue Star - Saka Neela Tara
Balvir Singh
 
Francesca Gottschalk - How can education support child empowerment.pptx
Francesca Gottschalk - How can education support child empowerment.pptxFrancesca Gottschalk - How can education support child empowerment.pptx
Francesca Gottschalk - How can education support child empowerment.pptx
EduSkills OECD
 
Digital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and ResearchDigital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and Research
Vikramjit Singh
 
A Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in EducationA Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in Education
Peter Windle
 
The French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free downloadThe French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free download
Vivekanand Anglo Vedic Academy
 
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdfUnit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Thiyagu K
 
How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...
Jisc
 
The Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official PublicationThe Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official Publication
Delapenabediema
 
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
Levi Shapiro
 
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup   New Member Orientation and Q&A (May 2024).pdfWelcome to TechSoup   New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
TechSoup
 
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
EugeneSaldivar
 

Recently uploaded (20)

BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
 
Embracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic ImperativeEmbracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic Imperative
 
Instructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptxInstructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptx
 
Unit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdfUnit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdf
 
CLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCE
CLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCECLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCE
CLASS 11 CBSE B.St Project AIDS TO TRADE - INSURANCE
 
Acetabularia Information For Class 9 .docx
Acetabularia Information For Class 9  .docxAcetabularia Information For Class 9  .docx
Acetabularia Information For Class 9 .docx
 
Guidance_and_Counselling.pdf B.Ed. 4th Semester
Guidance_and_Counselling.pdf B.Ed. 4th SemesterGuidance_and_Counselling.pdf B.Ed. 4th Semester
Guidance_and_Counselling.pdf B.Ed. 4th Semester
 
Honest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptxHonest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptx
 
Palestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptxPalestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptx
 
Operation Blue Star - Saka Neela Tara
Operation Blue Star   -  Saka Neela TaraOperation Blue Star   -  Saka Neela Tara
Operation Blue Star - Saka Neela Tara
 
Francesca Gottschalk - How can education support child empowerment.pptx
Francesca Gottschalk - How can education support child empowerment.pptxFrancesca Gottschalk - How can education support child empowerment.pptx
Francesca Gottschalk - How can education support child empowerment.pptx
 
Digital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and ResearchDigital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and Research
 
A Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in EducationA Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in Education
 
The French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free downloadThe French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free download
 
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdfUnit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdf
 
How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...
 
The Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official PublicationThe Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official Publication
 
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
 
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup   New Member Orientation and Q&A (May 2024).pdfWelcome to TechSoup   New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
 
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
 

JavaScript Topic Maps in server environments

  • 1. W E B V E V E R I E T JavaScript Topic Maps in server environments Jan Schreiber <jans@ravn.no> Ravn Webveveriet AS, 2010-10-01 1
  • 2. Outline • JavaScript • The tmjs Topic Maps engine • Use Case: A PSI Server • Outlook W E B V E V E R I E T 2
  • 3. JavaScript • JavaScript is LISP with a C-like syntax • Virtually every personal computer in the world has at least one JavaScript interpreter installed on it and in active use. W E B V E V E R I E T 3
  • 4. tmjs • A Topic Maps engine • Written in pure JavaScript • Full TMDM including Variants • TMAPI 2.0-based • In-memory backend, JTM import/ export, experimental XTM 2.0 import (requires DOM) W E B V E V E R I E T 4
  • 5. tmjs • Platform independent: All(iPhone & browsers, mobile devices modern Android), server-side JavaScript • Unit tests, CXTM tests (partly) & JSLint validating • Small changes to TMAPI due to the lack of method overloading • Syntactic sugar: Supports chaining of TMAPI calls W E B V E V E R I E T 5
  • 6. Chaining 1 tm.createTopic().addSubjectIdentifier(foo). 2 createName('bar').getParent(). 3 createOccurrence(type,'baz'). 4 addScopingTopic(quux); W E B V E V E R I E T 6
  • 7. tmjs: Outlook • More import/export formats: XTM 2.0, CTM • Complete TMAPI, add more tests, full CXTM • Persistence: • Web SQL Database backend • Persistent backend for Node (couchdb?) • Later: Query language W E B V E V E R I E T 7
  • 8. Use Case: A PSI Server • Idea: Start the server with a Topic Map and it will serve information about all Subject Identifiers for a given domain W E B V E V E R I E T 8
  • 9. • Screenshot node-psi-server W E B V E V E R I E T 9
  • 10. Server-side JavaScript • 1996: Netscape releases LiveWire as part of Netscape Enterprise Server 2.0 • 2009: Ryan Dahl writes Node W E B V E V E R I E T 10
  • 11. Node • A framework for low-level network applications based on Google's V8 engine • TCP, DNS and HTTP are first-class protocols • Event-based, asynchronous programming • All I/O is non-blocking W E B V E V E R I E T 11
  • 12. result = db_query(db, "SELECT * FROM topic"); W E B V E V E R I E T 12
  • 13. db_query(db, "SELECT * FROM topic", callback); W E B V E V E R I E T 13
  • 14. db_query(db, "SELECT * FROM topic", callback); callback = function (err, result) { // ... } W E B V E V E R I E T 14
  • 15. 1 var tm, servername; 2 // assumes that the TopicMap object tm has been initialized and 3 // the topic map in question has been imported successfuly. 4 // servername is set from a command line parameter 5 http.createServer(function (req, res) { 6 var url = 'http://'+servername+req.url, loc, topic; 7 loc = tm.createLocator(url); 8 topic = tm.getTopicBySubjectIdentifier(loc); 9 if (topic) { 10 res.writeHead(200, {'Content-Type': 'text/html'}); 11 // create a page with information about the PSI 12 } else { 13 // Not found: create a 404 response 14 } 15 res.close(); 16 }).listen(80); W E B V E V E R I E T 15
  • 16. Use Case: A PSI Server • More output formats: XHTML, JTM, XTM • Support for logging, caching, templates • Configurable list of information elements that are included on generated pages (e.g. dc:description, supertype-subtype) • PSI black-listing • subj3ct.com integration W E B V E V E R I E T 16
  • 17. PSI Server: Observations • Easy to implement • It’s really fast: 200+200ms to read the Opera topic map, 1ms to serve a PSI page • tmjs can be used on server and client side Reuse of application code W E B V E V E R I E T 17
  • 18. Summary & Outlook • Server side Topic Maps with JavaScript: possible! • Asynchronous TMAPI? • In its current state maybe best suited for low-level applications W E B V E V E R I E T 18
  • 19. What could it be good for? • TMRAP, TM REST API • SDshare • P2P applications • DNS servers W E B V E V E R I E T 19
  • 20. Questions? Download tmjs now! http://github.com/jansc/tmjs Coming soon: http://github.com/jansc/node-psi-server W E B V E V E R I E T 20