The document provides an overview of the itsme emulator, front-end, and back-end from a technical perspective. It discusses how the itsme emulator was built using an existing website and database to demonstrate the itsme concepts. For the front-end, it describes developing a new user interface with QT to embody the stories and venues metaphor while reusing existing system tools. The back-end discussion focuses on custom metadata and data storage. Open issues are raised around modularity, licensing, and accessibility.
2. About me
Computer Science PhD
- can be translated to “somehow
evoluted geek”
Aware of itsme from the
beginning
Now cross-working different
teams and tasks
- itsme OS software architecture
- itsme emulator
- website mastering
- itsme evangelism
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
3. Ajax Architecture Website
GWT Wordpress
Social Concept
Licenses
Computing Emulat
or
Gnome
u nd Naming
itsme
ck
itsme gro
e ba archite Virtual File
a rg
Window System
cture
yl
Managment
ic s
Open
er
Source
V top
Distributed
Front-end
of
KDE resources
lo t ue s
Guglielmo
Architectur
Linux
A is s
e
n)
Metadata
pe
Managem
o
Back-end ent
to f( Metadata
extraction
lo
OLPC RDF
Customizatio
n A Sabayon
Semantic
Interoperabili
ty
Web
Linux
eldy Ontologies
Tracker Semantic Nepomuk Concept
Desktop
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
4. The real aim of this lesson is to
discuss our
open issues
with you
No participation = extremely boring lesson :-(
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
5. Outline
After introduction, 3 main topics:
- itsme emulator
- itsme front-end
- itsme back-end
for each of them
- background research overview
- itsme approach Roughly one hour
- open discussion
[break]
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
6. Before starting, a quick recap
itsme: system embodying a new
metaphor, ‘stories and venues’
Motivation: information overload,
control over data
Target: people creating value with a
PC
New system = new possible ways to
do things with a PC
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
7. Main elements to describe the system
Venues
Channels
Resources
Limbo
Transit
...these concepts must be implement
after a definition given by design
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
8. How to proceed?
Concept demonstrators
- Scenarios
- Emulator
- (available at itsme.it)
Technical demonstrators
- Prototypes: UI + meta/data management
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
10. What is an emulator?
Software providing the functions of a
system using a different system
Do
yo u
k no
wa
ny
oth
e r?
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
11. Speaking of words...
A simulator is something that lets you
experience something as faithfully as
possible
- e.g., flight simulators re-create piloting a plane
Virtual machines provide a system
platform to run software on them
- an OS or just applications, like the Java VM
s e
to ur ca
se a re n o
Th e
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
12. Emulator aims
Announced early
Aim: present itsme concept in
advance to a wide audience
- No downloads
- No technical restrictions
Starting from a limited set of features
- Only (at least) two venues
- No Limbo / Transit
- No ‘full’ applications
But what contents?
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
13. Idea
Present well-known things according
to the new metaphor (stories and venues)
We added social computing i ts
me
.i t
features to our website…
- personal profiles
- fanship
- private messaging
- open publishing
- social bookmarking
Qui
...and then re-presented them ck
t h e de mo
we
bsi of
te
- after some months to establish a community
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
14. Website technology
Open source Content Management
System
Easy to use and maintain
Large community supporting the
development, and fixing bugs quickly
Many plugins to extend functionalities
(easy to write)
Easily to implement, customizable
themes
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
15. Website customization
A specific information architecture
(categories and tags)
A set of plugins for the various social
computing features
- some of them were not available when we started,
we had to code them
A tailored theme
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
16. Buddypress
...now you could use something like
this, and minimize the effort we
underwent
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
17. What we got from the website?
In the end, everything relies on a
single MySQL database
- posts, users, metadata, messages, …
Those data can be showed in a
completely different way, by a
different software
- potentially running anywhere
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
18. em
ula
tor
.i ts
me
.i t
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
19. Le t
’s s
e ea
de m
o!
Videos and tutorial available at http://itsme.it/emulator
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
20. Technology behind the emulator
We considered popular options like
Adobe Flash and Microsoft Silverlight,
but discarded them: guess why…
...and what do you think we used
instead?
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
21. AJAX in a nutshell
Until some time ago Web pages
needed to be reloaded to see any
update
AJAX technology allows dynamic,
asynchronous updates
- e.g., facebook notifications and “show new posts”
Data can flow back and forth between
client and server
The key elements are Javascript and
XML
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
22. GWT
Google released a Web Toolkit that
allows to develop user interfaces in
Java and then compile them to
optimized JavaScript
- Allows for better reuse and debug of code
Connection is made to a Web Server
through simple RPC
/
m o: d e mo /
c k de e x t.c om / o y/de v
Q u i t- l
g w c om /de p p.h t m l
w w. x t j s . o
:/ w w.e
/ e sk t
ht tp / w w t o p/d
p: / le s /de s k
h t t mp
e xa
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
23. Emulator and Website architecture
Client Product
Web browser
Javascript/HTML
itsme website theme
Custom itsme emulator
Wordpress
Wordpress
http://emulator.itsme.it
Plugins
Plugins
http://www.itsme.it
GWT
Platform
GXT
Wordpress Spring
RSS
JPA javamail Quartz
spider
JDBC driver
Apache Web Server Apache Tomcat
Data
MySql database
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
24. Emulator open issues
Envisioning relations
Incremental setup to
- involve user from minute 1
- explain features directly
what to ask in a dialogue?
Other possible fields or ways of
application?
- Let’s make a “translation” exercise: how would you
frame Facebook in the emulator concept?
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
27. What’s an OS?
“An Operating System (OS) is
an interface between hardware
and user which is responsible
for the management and
coordination of activities and
the sharing of the resources of
the computer that acts as a
host for computing applications
run on the machine.”
- (source: http://en.wikipedia.org/wiki/Operating_system)
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
28. What’s inside an OS?
You might be familiar with the so-
called “onion skin”
- We’re not redoing everything again!
User
Applications
User
Interface
File
System
Memory
Processes
HW
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
29. Sabayon Linux
Italian distribution (we hired its
creators)
Community driven
Style-oriented
Excellent rating
Forst to add cool features such as 3D
effects (Compiz)
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
31. The itsme architecture
QT graphical Applications ,
toolkit settings, data
Back End Front End Presentation
New
metaphor
Sabayon
Front-end Logic and Control Linux
Authentication and Security
Linux OS
System and Networking
Migration Support
Proxy
Ubiquitous
access
Data Access
Custom
metadata
Back-end Logic
Data Storage and Persistence
Heterogeneous
sources
As in Jan. ’09: some things have changed...
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
32. Open issues
System modularity, ubiquitous
computing, cloud computing
Licenses, open source
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
34. What’s a front-end?
Basically, the user interface to the
parts of the system responsible for
“hot” computation
Internally, we speak of the itsme front-
end as the frame for the new
metaphor, proving support to
interaction (operations) and access to
applications
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
35. Front-ends
There exist many different metaphor
adopted by graphical (visual) front-
ends
- Yep, there are also non-visual: e.g., audio with
speech or gesture recognition, tactile interfaces
(Braille)
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
36. What does it take?
We considered and started from
‘desktop’ user interfaces, due to basic
similarities
Same elements used in a different way
- Still within the WIMP paradigm (“window, icon,
menu, pointing device”), at the moment
...so we can reuse existing stuff!
- Window management (well, almost)
- Basic system configuration tools
- ...
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
37. Development
We have to redraw what’s on screen
- e.g., (file management) windows → venues, new
panels and widgets
and link elements according to
different policies
- e.g., drag and drop, elements behaviors (on click, ...)
Current prototype developed using:
- Sabayon Linux (4.*, now 5.*)
- Python
- QT
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
38. QT
Cross-platform toolkit to develop GUIs
Used by KDE, Google Earth, Skype
Owned by Nokia and distributed
according to LGPL
Uses C++ (but language bindings
available)
Alternatives we considered?
GTK+, and others
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
39. KDE http://www.kde.org/
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
40. GNOME http://www.gnome.org/
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
42. But actually they are all the same old
desktop…
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
43. OLPC
One Laptop Per Child: cheap, low
consumption computers for education
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
44. OLPC → Sugar
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
45. Eldy
Linux distribution for elderly, but also
for people looking for a very simple
user interface
Italian initiative
Free
Supported by volunteers
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
47. ...and now let’s talk about itsme :-)
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
48. itsme: prototype v. 0.3
o !
s ee a de m
L e t ’s
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
49. Video of a previous version
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
50. Front-end architecture
The front-end follows a model/view/
state architecture
- The model classes store the data for the other
classes
- The view classes provide UI and most of the logic
(since they have to show the data and also
manage user interaction)
- The state classes implement a state machine
controlling the behavior of UI elements
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
51. The main distinction inside the FE is
between extensions and extendables.
The extendables package contains all
the classes which can be inherited to
create specific classes. The extensions
package contains all the specific
subclasses.
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
52. Open issues
Accessibility
- Do you see any possible problem?
What to make a default, what
cusomizable, what …?
- Can you find examples?
Safety/security with respect to
applications
Blend with the Web
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
54. Why a back-end?
We need to store and manipulate
metadata for the things we see and
work with in the UI
Also data need to be stored and
accessed in a different way
...this problem is well known
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
55. Semantic Web
Huge amount of information on the
Web
HTML: syntax to describe structure
Meaning is not expressed
Computers can’t help users finding
and organizing stuff they don’t
“understand”
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
57. The Web is made of documents...
apart from file extensions, they are all
the same and links have no meaning
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
58. ...but we talk about different things
things are related one to another: how
can computers be aware of it?
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
59. Top-down solutions
Information analysis, web scraping,
natural language processing…
...unfeasible: human intervention, hard
to maintain, legal issues
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
60. Bottom-up solution
Embed semantical annotations into
the data
Beside describing the generical
structure of a document (HTML), add
some metadata describing what each
part of the structure is about
Example: not just links,
but links with a label
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
61. Let’s generalize
HTML “has evolved” to XML
Instead of only expressing hypertexts,
XML can be used to encode any form
of structured data
XML can be used to define more
specific languages (grammars, e.g.,
with DTDs)
XML can be used to define a way to
describe what is on the Web
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
62. RDF
Resource Description Framework
W3C standard for describing
resources in the Web
RDF identifies things using
URIs(Uniform Resource Identifiers)
RDF uses simple statements (Triples)
to describe things:
- Thing-Property-Value
- Subject-Predicate-Object
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
63. What’s RDF like?
OK… but what does it mean?
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
64. RDF = graphs
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
65. RDF = graphs
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
66. RDF = graphs
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
67. Ontologies
How can computers know what labels
represent?
Interoperability is reached when
different parts share definitions
(vocabularies)
- syntactic vs semantic interoperability
If definitions are structured, and
relations are well defined as
properties, also further inference is
possible
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
68. Let’s make an example
Alice is a blogger who publishes
articles at http://example.com/alice
She wants to declare the license of
her work
The rel attribute specifies the
relationship between the current
document and the linked document.
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
69. She wants to specify title and creator
of an article
But there are no such attributes in
XHTML
She can use Dublin Core vocabulary
Namespace → interoperability
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
70. She wants to give Bob proper credit
when she posts his photos
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
71. She wants to display her name, email
and phone
She can use Friend-of-a-Friend
vocabulary
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
72. She wants to list her friends
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
73. Then what?
This was an example showing how to
express some metadata about what’s
been published
How can information be retrieved in a
smart way then?
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
74. SQL
Structured Query Language
Standard way to interact with
databases
E.g., SELECT * FROM ‘table’ WHERE
‘name’ LIKE ‘Marco’;
...but we have no tables, only graphs,
so this does not suit
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
75. SPARQL
SPARQL Protocol And RDF Query
Language
Used to manipulate RDF data
E.g., can be used to search for
“friends of Alice who created items
whose title contains ‘Bob’”
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
76. Semantic desktop
The Semantic Web vision can be
applied also to personal computing
Approach to deal with the contents of
documents – exploiting metadata
semantics
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
77. EU project for a Social Semantic
Desktop
Exploit files metadata for a different
interaction with things
Remind for later: The NEPOMUK/
OSCAF standards are taken up by
these projects and Nokia's Maemo
Platform
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
82. itsme back-end architecture
Application
Local / Network / DBus
File System
Generate notifications
Abstraction
for the front-end Interface Event
Notifier
Plugin Engine Direct
Access
Application
Virtual FS
Manager Get (serialized)
Email ... items and search
Send/receive email
plugin plugin metadata
Aggregate metadata in
Communication proxy
complete items
and File System
access for plugins
Search (to get) lists of Item Manager
items Log operations on
Search Update Time
Engine monitor Manager items
Dispatch updated items
Read/Write on
Logic
to plugin engine and
event notifier File System Distributed File
Metadata Manager Manager System
Metadata access, Metadata Soprano
extraction, storage Extractor Inference Refine Metadata
JStreams Virtuoso Index/Search
Extract Metadata from
RDF Metadata
files
Process specific file
types Storage
As in April 30th, now a little different...
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
83. Meta Tracker
RDF central storage for data and
metadata
- shared between applications
Miners to search and insert meta/data
- also on the Web
Extractors working with any type of
file
Nepomuk/KDE ontologies
SPARQL
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
85. More on Nokia N900 (with Maemo)
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
86. Virtual file system
Keep data and metadata aligned
Implement access to apps not tightly
integrated with the front-end
Manage distributed repositories
- removable drives
- remote drives
- Web services (e.g., Google docs)
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09
87. Open issues
Metadata: itsme ontology
Time management
AVFS: File names, paths, visibility…
Marco Loregian: itsme from a technical perspective Lugano, 10/08/09