Smart-M3
The Open Source Release
Jukka Honkola, Hannu Laine,
Ron Brown, Olli Tyrkkö


Company Confidential
1   © 2008 Nokia   FRUCT_SmartM3.ppt / 2009-11-05 / JH
M3 Concepts
• Information level interoperability
      • Simple API to access information, “standard” ontologies
      • Independent agents operating on information
• Lightweight implementation
      • No heavy infrastructure
• Accommodates existing systems
      • Evolution is possible
      • “Bridging” walled gardens
      • Sharing embedded information


2   © 2008 Nokia   FRUCT_SmartM3.ppt / 2009-11-05 / JH
M3 Functional Architecture


    Triple governance transactions using                      Smart Space: a named
    Smart Space Access Protocol (SSAP):                       search extent of information
                                                                                               Physical distribution
    e.g. join, leave, insert, remove, update,                                                  of a Smart Space
    query, subscribe, unsubscribe

                                                            Smart Space

                                                                  SIB
                               KP                                                                KP

Knowledge Processor (KP): An entity                         SIB         SIB
contributing to (insert / remove) and/or
                                                                                Semantic Information Broker (SIB):
consuming (query / subscribe) content
                                                                                An entity performing triple
according to ontology relevant to its
                                                                                governance in possible co-operation
defined functionality. A KP needs one or
                                                                                with other SIBs for one Smart Space.
more partner KPs for useful sharing of
                                                                                A SIB may be a concrete or virtual
content, implying an agreed semantics for
                                                                                entity.
the used ontology

3      © 2008 Nokia   FRUCT_SmartM3.ppt / 2009-11-05 / JH
Notion of Application

    • Agents understand their own, non-exclusive part of the set
      of information available in a space
    • Applications emerge from actions over the information
    • Applications are not static                                                                   Ap
                                                                          o   n1                       p   lic
    • Smart space application vs.                                    at i                  KP 3               at
                                                              p   lic                                            io
                                                                                                                      n
                                                           Ap                                                             2
      traditional application                                                 KP 1

                                                                                                      KP 4
                                                                                   KP 2




                                                                                      Information


4     © 2008 Nokia   FRUCT_SmartM3.ppt / 2009-11-05 / JH
Notion of Application
• What is a smart space application?
• A scenario that may evolve depending on
      • Participating KPs (information layer)
      • Participating services (service layer)
                                                                                                             Smart Spaces


           Smart                                                    N                                                   N                                                             N
                                                                                                                                                   Smart
           World                                      N                              Smart
                                                                                     Space
                                                                                                                                                   Space
                                                                                                                                                                        N
                                                                                                                              N
                                                             N




                                Service Domain
           Service                                         Serv
                                                                  Serv
                                                                         Client
                                                                                   Serv
                                                                                          Client
                                                                                                      Serv

                                                                                                                      Srv
                                                                                                                              SOI
                                                                                                                                           Srv                 C
                                                                                                                                                                  Srv
                                                                                                                                                                lient
                                                                                                                                                                                      Srv
                                                                                                                                                       Srv                   Client

           World                                 SN
                                                      AN
                                                                            SN                       Srv
                                                                                                             Client
                                                                                                                            Client
                                                                                                                                     Srv
                                                                                                                                                                    C

                                                                                                                                                                  Srv
                                                                                                                                                                     lient

                                          SN                       SN                   SOI                                                      SOI
                                                                                                                                                                                                  service ontology
                                                                                                                                                                                            SOI   interpreter




                                Device Netw ork
                                                                                                             Dev                                       Dev

           Device                                         Dev                     Dev
                                                                                          GW                                         Dev
                                                                                                                                                   GW                             Dev

           World                               Dev
                                                                                               Dev                                                       Dev


                                                                                                                                                                                                  Gateway between
                                                                                                                                                                                            GW    netw orks



5   © 2008 Nokia   FRUCT_SmartM3.ppt / 2009-11-05 / JH
Smart-M3 Deployment Example
                                                         Smart Space
                            KP                                                          KP          KP
           KP
                                                                  Store                       KP
             Ontology                                           SIB                      Ontology
              library                                         operations                  library

          SSAP        endpoint                             SSAP    endpoint             SSAP   endpoint
                                              SSAP                              SSAP

               TCP/IP                                    TCP/IP       NoTA                   NoTA

                               Network                                        Network

• Concepts are independent of used communication mechanism
      • SIBs and KPs may have any number of different transports
• KPs are software processes
• The SSAP protocol is the interoperability interface

6   © 2008 Nokia   FRUCT_SmartM3.ppt / 2009-11-05 / JH
M3 Implementation Architecture
                                                                     Design time ontology code generator




                                                                 GLib/C API      Qt/C++ API        Python API
                                         SIB
                                       daemon

                                                                 D-Bus

                                  SIB IF
                                                                         KP IF
                                                                               KP                 Python KP
                                                                                                   Library
                   D-Bus                                                 SIB Daemon
                                                                     Access IF

                   GObject API                     GObject API
                                                                 D-Bus
                    TCP SIB                          NoTA SIB
                    Service                           Service
                                                                  GObject         GObject           Python
                                                                    API             API            TCP SIB
                                                                 SIBAccess       SIBAccess
                                                                                                    Access
                                                                   NoTA             TCP



7   © 2008 Nokia    FRUCT_SmartM3.ppt / 2009-11-05 / JH
Smart-M3 Open Source
• Available in sourceforge.net: http://sourceforge.net/projects/smart-m3/
• Currently available are:
      • C/GLib, Qt, Python KP APIs with TCP/IP and NoTA connectivity
      • SIB with TCP/IP and NoTA connectivity
      • Ontology library generators for C/GLib and Python APIs
      • Documentation for building the system
• Future development (already underway)
      • Java and C# KP APIs
      • “ANSI-C” KP API
      • Ontology generator for “ANSI-C” KP API
• Demos are released separately
      • No demos available yet, but VTT will release their Smart-M3 based demo as open
        source



8   © 2008 Nokia   FRUCT_SmartM3.ppt / 2009-11-05 / JH
The Smart-M3 Release – Knowledge Processor
• libwhiteboard: C/GLib based API for KPs
      • Integration with GLib main loop for GUI applications
• qt_kp_core_api: Qt based API for KPs
      • Integration with Qt main loop for GUI applications
      • Qt advanced API will be released in near future
      • Depends on GLib also via whiteboardd and DBus connections
• whiteboardd: Daemon for handling connections from KPs to SIBs
      • Handles most of the work in KP-SIB connections
• sib-access-*: Transport-specific components of KP
      • One for each implemented transport, corresponding components also on SIB side
• Python-KP: Python KP API
      • Self-contained, new version will be released in near future




9   © 2008 Nokia   FRUCT_SmartM3.ppt / 2009-11-05 / JH
The Smart-M3 Release – SIB
• sibd
       • The SIB, implements the SIB operations
       • Depends on GLib and DBus, contains optional Python parts (WQL)
• sib-nota, sib-tcp
       • Transport specific components of the SIB, correspond to sib-access-* on KP side
       • Depend on GLib and DBus
• piglet_m3
       • The RDF store used by the SIB




10   © 2008 Nokia   FRUCT_SmartM3.ppt / 2009-11-05 / JH
Automatic Ontology Library Generation
Specification                    Ontology descriptions                       Ontology library
of ontology                             in RDF

                                            Ontology                   typedef struct {
                                                                         person_list *persons;
     Ontology                                  X                         device_list *devices;
                                                                       } personal_ontology;
     spec
                                                           Ontology    typedef struct {
                                                                         char *name;
                                                            Library      char *address;
                                                                         device_list *owned_devices;

                                            Ontology       Generator     int age;
                                                                       } person;
     Ontology                                  Y                       person_ontology* init();
                                                                       int set_person ( person *p );
     spec                                                              int get_person ( person *p );
                                                                       ...




     • Description in RDF using OWL (or some other ontology description language)
     • Present the information in SS as a native programming language data
       structure and functions to sync it with Smart Space
     • Generation currently available for C/GLib and Python APIs, “ANSI-C” in
       spring 2010

11    © 2008 Nokia   FRUCT_SmartM3.ppt / 2009-11-05 / JH

SOFIA - Smart M3. NOKIA

  • 1.
    Smart-M3 The Open SourceRelease Jukka Honkola, Hannu Laine, Ron Brown, Olli Tyrkkö Company Confidential 1 © 2008 Nokia FRUCT_SmartM3.ppt / 2009-11-05 / JH
  • 2.
    M3 Concepts • Informationlevel interoperability • Simple API to access information, “standard” ontologies • Independent agents operating on information • Lightweight implementation • No heavy infrastructure • Accommodates existing systems • Evolution is possible • “Bridging” walled gardens • Sharing embedded information 2 © 2008 Nokia FRUCT_SmartM3.ppt / 2009-11-05 / JH
  • 3.
    M3 Functional Architecture Triple governance transactions using Smart Space: a named Smart Space Access Protocol (SSAP): search extent of information Physical distribution e.g. join, leave, insert, remove, update, of a Smart Space query, subscribe, unsubscribe Smart Space SIB KP KP Knowledge Processor (KP): An entity SIB SIB contributing to (insert / remove) and/or Semantic Information Broker (SIB): consuming (query / subscribe) content An entity performing triple according to ontology relevant to its governance in possible co-operation defined functionality. A KP needs one or with other SIBs for one Smart Space. more partner KPs for useful sharing of A SIB may be a concrete or virtual content, implying an agreed semantics for entity. the used ontology 3 © 2008 Nokia FRUCT_SmartM3.ppt / 2009-11-05 / JH
  • 4.
    Notion of Application • Agents understand their own, non-exclusive part of the set of information available in a space • Applications emerge from actions over the information • Applications are not static Ap o n1 p lic • Smart space application vs. at i KP 3 at p lic io n Ap 2 traditional application KP 1 KP 4 KP 2 Information 4 © 2008 Nokia FRUCT_SmartM3.ppt / 2009-11-05 / JH
  • 5.
    Notion of Application •What is a smart space application? • A scenario that may evolve depending on • Participating KPs (information layer) • Participating services (service layer) Smart Spaces Smart N N N Smart World N Smart Space Space N N N Service Domain Service Serv Serv Client Serv Client Serv Srv SOI Srv C Srv lient Srv Srv Client World SN AN SN Srv Client Client Srv C Srv lient SN SN SOI SOI service ontology SOI interpreter Device Netw ork Dev Dev Device Dev Dev GW Dev GW Dev World Dev Dev Dev Gateway between GW netw orks 5 © 2008 Nokia FRUCT_SmartM3.ppt / 2009-11-05 / JH
  • 6.
    Smart-M3 Deployment Example Smart Space KP KP KP KP Store KP Ontology SIB Ontology library operations library SSAP endpoint SSAP endpoint SSAP endpoint SSAP SSAP TCP/IP TCP/IP NoTA NoTA Network Network • Concepts are independent of used communication mechanism • SIBs and KPs may have any number of different transports • KPs are software processes • The SSAP protocol is the interoperability interface 6 © 2008 Nokia FRUCT_SmartM3.ppt / 2009-11-05 / JH
  • 7.
    M3 Implementation Architecture Design time ontology code generator GLib/C API Qt/C++ API Python API SIB daemon D-Bus SIB IF KP IF KP Python KP Library D-Bus SIB Daemon Access IF GObject API GObject API D-Bus TCP SIB NoTA SIB Service Service GObject GObject Python API API TCP SIB SIBAccess SIBAccess Access NoTA TCP 7 © 2008 Nokia FRUCT_SmartM3.ppt / 2009-11-05 / JH
  • 8.
    Smart-M3 Open Source •Available in sourceforge.net: http://sourceforge.net/projects/smart-m3/ • Currently available are: • C/GLib, Qt, Python KP APIs with TCP/IP and NoTA connectivity • SIB with TCP/IP and NoTA connectivity • Ontology library generators for C/GLib and Python APIs • Documentation for building the system • Future development (already underway) • Java and C# KP APIs • “ANSI-C” KP API • Ontology generator for “ANSI-C” KP API • Demos are released separately • No demos available yet, but VTT will release their Smart-M3 based demo as open source 8 © 2008 Nokia FRUCT_SmartM3.ppt / 2009-11-05 / JH
  • 9.
    The Smart-M3 Release– Knowledge Processor • libwhiteboard: C/GLib based API for KPs • Integration with GLib main loop for GUI applications • qt_kp_core_api: Qt based API for KPs • Integration with Qt main loop for GUI applications • Qt advanced API will be released in near future • Depends on GLib also via whiteboardd and DBus connections • whiteboardd: Daemon for handling connections from KPs to SIBs • Handles most of the work in KP-SIB connections • sib-access-*: Transport-specific components of KP • One for each implemented transport, corresponding components also on SIB side • Python-KP: Python KP API • Self-contained, new version will be released in near future 9 © 2008 Nokia FRUCT_SmartM3.ppt / 2009-11-05 / JH
  • 10.
    The Smart-M3 Release– SIB • sibd • The SIB, implements the SIB operations • Depends on GLib and DBus, contains optional Python parts (WQL) • sib-nota, sib-tcp • Transport specific components of the SIB, correspond to sib-access-* on KP side • Depend on GLib and DBus • piglet_m3 • The RDF store used by the SIB 10 © 2008 Nokia FRUCT_SmartM3.ppt / 2009-11-05 / JH
  • 11.
    Automatic Ontology LibraryGeneration Specification Ontology descriptions Ontology library of ontology in RDF Ontology typedef struct { person_list *persons; Ontology X device_list *devices; } personal_ontology; spec Ontology typedef struct { char *name; Library char *address; device_list *owned_devices; Ontology Generator int age; } person; Ontology Y person_ontology* init(); int set_person ( person *p ); spec int get_person ( person *p ); ... • Description in RDF using OWL (or some other ontology description language) • Present the information in SS as a native programming language data structure and functions to sync it with Smart Space • Generation currently available for C/GLib and Python APIs, “ANSI-C” in spring 2010 11 © 2008 Nokia FRUCT_SmartM3.ppt / 2009-11-05 / JH