Open Source Semantic Web Tools Platform by fjn47816


									        Open Source
Semantic Web Tools / Platform

          Allan Spale

                        Platform Architecture
            My Background

•   Data visualization
•   User interface design
•   Videoconferencing systems
•   Collaboration tools
•   Teleimmersion

                            Platform Architecture
            My Inspirations

• Databases are the core that can drive
  just about anything
• Scientific American article (1999)‫‏‬
  – The emergence of XML
  – Tim Berners-Lee's vision of the
    semantic web
• Dr. Dobb's Journal (2000)‫‏‬
  – Mismatch between relational databases
    and artificial intelligence systems
                                 Platform Architecture
            One “Moment”
• Friend had to collect data from people
  in the field
  – He knew nothing about databases and
    did not particularly care about them
  – Ended up importing data from a PDA into
    an Excel worksheet
• Solving the problem
  – How could I abstract the complexities of
    the database?
                                 Platform Architecture
          Another “Moment”

• Working in a university data mining
  research lab
• Friend recommended Jeff Hawkins'
  book On Intelligence
  – The brain stores a basic invariant form
    of information
  – Higher level structures of meaning are
    built above this basic structures
  – Connections among the structures
                                 Platform Architecture
         Current State of Web 2.0

•   Mashups (Google Maps)‫‏‬
•   Web services (Amazon Web Services)‫‏‬
•   User-generated content (Flickr, YouTube)‫‏‬
•   Social networking (MySpace, Facebook)‫‏‬
•   Rich internet applications (AIR, Silverlight)‫‏‬
• And more…

                                     Platform Architecture
     Shortcomings of Web 2.0

• The web is still mostly
• End-users cannot easily remix data
  from different sites
• Seamless integration among web
  services and devices of any size
• Remote, centralized data repositories

                             Platform Architecture

• Separate the content data
  from the original application
• Protect data and migrate data
  where it is needed
• Provide a way for users to acquire,
  manipulate, and share static and live data
• Allow any device and any content
  to interoperate within this platform

                                 Platform Architecture

• Database abstraction
  – Users store data without having to know
    about relational databases
• Collaboration system
  – Messaging facility for humans and machines
• Programmable
  – Symbolic language, supports Unicode names
• End-user environment
  – Embrace widgets, toolbars, and canvases

                                       Platform Architecture
        Database Abstraction

• Relational database back-end
  – Big as PostgreSQL or as small as SQLite
• Provide a few basic table structures
  – Set of items, relations between items
• Encode data at various levels of detail
  – Scale from individual words to documents
• React to changes in the data
  – User-defined and system-level triggers
                                  Platform Architecture
         Collaboration System

•   Social networks of people
•   Processing networks of machines
•   Gather data from people and machines
•   Process the data
•   Discuss the data
•   Stream data to people and machines
•   Repeat…
                              Platform Architecture
• Sequential or event-driven
• Uses symbolic operators and keywords
  to allow for internationalization
• Unicode names for everything
• Access local and remote data stores
• Creates distributed pipelines that
  enable peer-to-peer applications

                            Platform Architecture
        End-User Environment

• Lots of widgets that interoperate with each
  other (reusable parts)‫‏‬
  – Move away from large-scale applications with
    huge feature sets
  – Pick and choose the functions needed
• Blur the distinction between internet and
  desktop application
• Move toward a toolbox and canvas
                                     Platform Architecture
                System Parts

• Databases
  – PostgreSQL (disk), SQLite (memory)‫‏‬
• Python
  – Stackless, SQLAlchemy, PyXMPP
• Jabber / XMPP
  – ejabberd
  – Utilize server plug-in architecture to integrate
    other components

                                        Platform Architecture
    Integration of System Parts

• Run both database and Jabber server
  on the target device
  – Database will refuse remote connections
    • All database commands will originate from
      users connected to the local Jabber server
  – Running a Jabber server allows for
    integration of local devices
    • PDA / smart phone, home automation
    • Support assistive / accessibility technologies

                                        Platform Architecture
    Integration of System Parts

• Jabber provides contact management
  and security
  – Jabber contact list is imported as
    individual users that are also organized
    into user groups
  – Content can be encrypted and checked for
    tampering using checksums
• Use of Jabber will overcome
  dynamic IP addressing problems
                                Platform Architecture
         Managing Contacts

• Remote users will register on the
  Jabber server to gain access
  – Remember, this differs from one’s own
    personal contact list.
• Registration will trigger a Jabber server
  component that will update the
  user list on the databases

                               Platform Architecture
          Managing Devices

• Jabber provides the ability to add
  – This will allow for external programs and
    device drivers
• Through Jabber, one can manage the
  availability of these devices and restrict
  who can access them

                                  Platform Architecture
               Securing Data

• Table Access
  – Restricted access using user ownership and
    group ownership
  – Access can be further restricted by applying read,
    write, and execute permissions for each user
    and group owner
• Database Encryption
  – PostgreSQL natively supports encryption
  – SQLite will require an external encryption module

                                        Platform Architecture
     Importing / Exporting Data

• Text is the most important part of the system
  – Word and phrase tables used by all text
• External programs will encode and decode
  files and data streams of various formats and
  map them into user tables and system tables
  – Use multi-level encoders
     • Start with “mechanical encoders” (few heuristics)‫‏‬
     • Feed that encoding into the next higher-level encoder
     • Repeat…

                                             Platform Architecture
       Constructing Functions

• Bead programming language
  – Direct support for Stackless tasklets instead of
  – Acts like a database object relational mapper
  – Remote data access and function calls occur
    using XML-RPC
  – Function code will reside in user tables
• External programs can be connected as
  Jabber server components (better
  performance) or through XML-RPC

                                        Platform Architecture
           Building Widgets

• Use existing widget-building models
  – AJAX, Flash/AIR, Silverlight, etc.
• Make widgets Kaleidoscope-
  – Data resides Kaleidoscope containers
  – Mapping of user actions to Bead scripting

                                    Platform Architecture
           Using Environment

• Desktop is just a surface for widgets
• Canvas widgets for displaying data
  – Text editing, drawing, 3-D modeling
• Widget tools for interacting with elements on
  the canvas widgets
  – Font chooser, shape chooser, paintbrush, etc.
• Import widgets and related functions from
  other users or run them remotely

                                          Platform Architecture
   Empowered by Kaleidoscope

• Separates data from application
  – Data from a program does not become obsolete
• Data can be annotated with various layers
  of meaning
  – Text document has formatting, sentence structure,
    reviewer notes, etc.
• Functions can be remixed from various
  programs without relying on a
  single application
  – Pick and choose what is needed
                                       Platform Architecture
   Empowered by Kaleidoscope

• Widget environment allows the user
  to operate on data with a toolbox
  – Choose a set of tools to manipulate data
  – Data is not dependent upon the tools
  – User can choose one’s own interface to
    operate on the data

                                  Platform Architecture
Computational Semantic Platform

• Encode data with meaning
• Write programs that utilize both
  data and meaning
• Collaboration among
  communities of users
• Customizable and portable interfaces

                            Platform Architecture
• What open-source parts can be assembled
  to deploy your semantic web application?
• How do you encode your data?
• How do you import / export data?
• How does the user interact with the
  semantic web application?
• Think beyond the “web” and think about the
  separation of data from an application...

                                Platform Architecture
Process data your way.

                   Platform Architecture

To top