Open Source Semantic Web Tools Platform - PowerPoint PPT Presentation

1 / 28
About This Presentation
Title:

Open Source Semantic Web Tools Platform

Description:

Social networking (MySpace, Facebook)? Rich internet applications (AIR, Silverlight) ... Lots of widgets that interoperate with each other (reusable parts) ... – PowerPoint PPT presentation

Number of Views:126
Avg rating:3.0/5.0
Slides: 29
Provided by: allan3
Category:

less

Transcript and Presenter's Notes

Title: Open Source Semantic Web Tools Platform


1
Open SourceSemantic Web Tools / Platform
  • Allan Spale
  • Kaleidoscope

2
My Background
  • Data visualization
  • User interface design
  • Videoconferencing systems
  • Collaboration tools
  • Teleimmersion

3
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

4
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?

5
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

6
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)?
  • RSS
  • And more

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

8
Solution
  • 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

9
Kaleidoscope
  • 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

10
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

11
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

12
Programmable
  • 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

13
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 metaphor

14
System Parts
  • Databases
  • PostgreSQL (disk), SQLite (memory)?
  • Python
  • Stackless, SQLAlchemy, PyXMPP
  • Jabber / XMPP
  • ejabberd
  • Utilize server plug-in architecture to integrate
    other components
  • XML-RPC

15
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

16
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

17
Managing Contacts
  • Remote users will register on the Jabber server
    to gain access
  • Remember, this differs from ones own personal
    contact list.
  • Registration will trigger a Jabber server
    component that will update the user list
    on the databases

18
Managing Devices
  • Jabber provides the ability to add services
  • 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

19
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

20
Importing / Exporting Data
  • Text is the most important part of the system
  • Word and phrase tables used by all text
    encoders/decoders
  • 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

21
Constructing Functions
  • Bead programming language
  • Direct support for Stackless tasklets instead of
    threads
  • 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

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

23
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

24
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

25
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 ones own interface to operate on
    the data

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

27
Discussion
  • 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...

28
  • Process data your way.
Write a Comment
User Comments (0)
About PowerShow.com