SlideShare una empresa de Scribd logo
1 de 20
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

FreeBSD and Drivers
FreeBSD and DriversFreeBSD and Drivers
FreeBSD and DriversKernel 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 DevroomValeriy 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 kiteChristian Opitz
 
LLJVM: LLVM bitcode to JVM bytecode
LLJVM: LLVM bitcode to JVM bytecodeLLJVM: LLVM bitcode to JVM bytecode
LLJVM: LLVM bitcode to JVM bytecodeTakeshi 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 ntopPyCon Italia
 
IPv4aaS tutorial and hands-on
IPv4aaS tutorial and hands-onIPv4aaS tutorial and hands-on
IPv4aaS tutorial and hands-onAPNIC
 
NativeBoost
NativeBoostNativeBoost
NativeBoostESUG
 
OpenMP Tutorial for Beginners
OpenMP Tutorial for BeginnersOpenMP Tutorial for Beginners
OpenMP Tutorial for BeginnersDhanashree 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_uringScyllaDB
 
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 TensorFlowKoan-Sin Tan
 
Concurrent Programming OpenMP @ Distributed System Discussion
Concurrent Programming OpenMP @ Distributed System DiscussionConcurrent Programming OpenMP @ Distributed System Discussion
Concurrent Programming OpenMP @ Distributed System DiscussionCherryBerry2
 
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 InterfaceNETWAYS
 

La actualidad más candente (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
 

Destacado

External Schema for Topic Map Database
External Schema for Topic Map DatabaseExternal Schema for Topic Map Database
External Schema for Topic Map Databasetmra
 
Inquiry Optimization Technique for a Topic Map Database
Inquiry Optimization Technique for a Topic Map DatabaseInquiry Optimization Technique for a Topic Map Database
Inquiry Optimization Technique for a Topic Map Databasetmra
 
Subject Headings make information to be topic maps
Subject Headings make information to be topic mapsSubject Headings make information to be topic maps
Subject Headings make information to be topic mapstmra
 
Topic Merge Scenarios for Knowledge Federation
Topic Merge Scenarios for Knowledge FederationTopic Merge Scenarios for Knowledge Federation
Topic Merge Scenarios for Knowledge Federationtmra
 
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 Innovationtmra
 
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 Vocabulariestmra
 
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 Caparrinitmra
 
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 Experimentstmra
 
tolog - a topic maps query language
tolog - a topic maps query languagetolog - a topic maps query language
tolog - a topic maps query languagetmra
 
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 informationtmra
 
Topic Maps for Association Rule Mining
Topic Maps for Association Rule MiningTopic Maps for Association Rule Mining
Topic Maps for Association Rule Miningtmra
 
TMRAP - Topic Maps Remote Access Protocol
TMRAP - Topic Maps Remote Access ProtocolTMRAP - Topic Maps Remote Access Protocol
TMRAP - Topic Maps Remote Access Protocoltmra
 
A step towards TMDM 3.0
A step towards TMDM 3.0A step towards TMDM 3.0
A step towards TMDM 3.0tmra
 
TMCL Edit
TMCL EditTMCL Edit
TMCL Edittmra
 

Destacado (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 a 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.jsorkaplan
 
Deploying WO on Windows
Deploying WO on WindowsDeploying WO on Windows
Deploying WO on WindowsWO Community
 
Nodejs a-practical-introduction-oredev
Nodejs a-practical-introduction-oredevNodejs a-practical-introduction-oredev
Nodejs a-practical-introduction-oredevFelix 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 2018Anthony Dahanne
 
OSCON 2011 - Node.js Tutorial
OSCON 2011 - Node.js TutorialOSCON 2011 - Node.js Tutorial
OSCON 2011 - Node.js TutorialTom Croucher
 
Persistent Memory Programming with Pmemkv
Persistent Memory Programming with PmemkvPersistent Memory Programming with Pmemkv
Persistent Memory Programming with PmemkvIntel® Software
 
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-DASHCyril Concolato
 
Network Stack in Userspace (NUSE)
Network Stack in Userspace (NUSE)Network Stack in Userspace (NUSE)
Network Stack in Userspace (NUSE)Hajime Tazaki
 
Modelling IMS QTI with Topic Maps
Modelling IMS QTI with Topic MapsModelling IMS QTI with Topic Maps
Modelling IMS QTI with Topic Mapstmra
 
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 EngineGary 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
 

Similar a 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
 

Más de tmra

Hatana - Virtual Topic Map Merging
Hatana - Virtual Topic Map MergingHatana - Virtual Topic Map Merging
Hatana - Virtual Topic Map Mergingtmra
 
Designing a gui_description_language_with_topic_maps
Designing a gui_description_language_with_topic_mapsDesigning a gui_description_language_with_topic_maps
Designing a gui_description_language_with_topic_mapstmra
 
Maiana - The social Topic Maps explorer
Maiana - The social Topic Maps explorerMaiana - The social Topic Maps explorer
Maiana - The social Topic Maps explorertmra
 
Tmra2010 matsuuraposter
Tmra2010 matsuuraposterTmra2010 matsuuraposter
Tmra2010 matsuurapostertmra
 
Automatic semantic interpretation of unstructured data for knowledge management
Automatic semantic interpretation of unstructured data for knowledge managementAutomatic semantic interpretation of unstructured data for knowledge management
Automatic semantic interpretation of unstructured data for knowledge managementtmra
 
Putting topic maps to rest.tmra2010
Putting topic maps to rest.tmra2010Putting topic maps to rest.tmra2010
Putting topic maps to rest.tmra2010tmra
 
Presentation final
Presentation finalPresentation final
Presentation finaltmra
 
Evaluation of Instances Asset in a Topic Maps-Based Ontology
Evaluation of Instances Asset in a Topic Maps-Based OntologyEvaluation of Instances Asset in a Topic Maps-Based Ontology
Evaluation of Instances Asset in a Topic Maps-Based Ontologytmra
 
Defining Domain-Specific Facets for Topic Maps With TMQL Path Expressions
Defining Domain-Specific Facets for Topic Maps With TMQL Path ExpressionsDefining Domain-Specific Facets for Topic Maps With TMQL Path Expressions
Defining Domain-Specific Facets for Topic Maps With TMQL Path Expressionstmra
 
Mappe1
Mappe1Mappe1
Mappe1tmra
 
Et Tu, Brute? Topic Maps and Discourse Semantics
Et Tu, Brute? Topic Maps and Discourse SemanticsEt Tu, Brute? Topic Maps and Discourse Semantics
Et Tu, Brute? Topic Maps and Discourse Semanticstmra
 
A PHP library for Ontopia-CMS Integration
A PHP library for Ontopia-CMS IntegrationA PHP library for Ontopia-CMS Integration
A PHP library for Ontopia-CMS Integrationtmra
 
Live Integration Framework
Live Integration FrameworkLive Integration Framework
Live Integration Frameworktmra
 
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 Mapstmra
 
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 rootstmra
 
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
 

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

Último

ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4MiaBumagat1
 
4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptxmary850239
 
ICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfVanessa Camilleri
 
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Celine George
 
Music 9 - 4th quarter - Vocal Music of the Romantic Period.pptx
Music 9 - 4th quarter - Vocal Music of the Romantic Period.pptxMusic 9 - 4th quarter - Vocal Music of the Romantic Period.pptx
Music 9 - 4th quarter - Vocal Music of the Romantic Period.pptxleah joy valeriano
 
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptxAUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptxiammrhaywood
 
Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)cama23
 
Integumentary System SMP B. Pharm Sem I.ppt
Integumentary System SMP B. Pharm Sem I.pptIntegumentary System SMP B. Pharm Sem I.ppt
Integumentary System SMP B. Pharm Sem I.pptshraddhaparab530
 
Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Seán Kennedy
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfTechSoup
 
Active Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdfActive Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdfPatidar M
 
Choosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for ParentsChoosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for Parentsnavabharathschool99
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatYousafMalik24
 
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdfVirtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdfErwinPantujan2
 
Food processing presentation for bsc agriculture hons
Food processing presentation for bsc agriculture honsFood processing presentation for bsc agriculture hons
Food processing presentation for bsc agriculture honsManeerUddin
 
Transaction Management in Database Management System
Transaction Management in Database Management SystemTransaction Management in Database Management System
Transaction Management in Database Management SystemChristalin Nelson
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxCarlos105
 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSJoshuaGantuangco2
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for BeginnersSabitha Banu
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)lakshayb543
 

Último (20)

ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4
 
4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx
 
ICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdf
 
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
 
Music 9 - 4th quarter - Vocal Music of the Romantic Period.pptx
Music 9 - 4th quarter - Vocal Music of the Romantic Period.pptxMusic 9 - 4th quarter - Vocal Music of the Romantic Period.pptx
Music 9 - 4th quarter - Vocal Music of the Romantic Period.pptx
 
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptxAUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
 
Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)
 
Integumentary System SMP B. Pharm Sem I.ppt
Integumentary System SMP B. Pharm Sem I.pptIntegumentary System SMP B. Pharm Sem I.ppt
Integumentary System SMP B. Pharm Sem I.ppt
 
Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
 
Active Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdfActive Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdf
 
Choosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for ParentsChoosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for Parents
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice great
 
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdfVirtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
 
Food processing presentation for bsc agriculture hons
Food processing presentation for bsc agriculture honsFood processing presentation for bsc agriculture hons
Food processing presentation for bsc agriculture hons
 
Transaction Management in Database Management System
Transaction Management in Database Management SystemTransaction Management in Database Management System
Transaction Management in Database Management System
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for Beginners
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
 

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