Prof. Dr. Thomas Schwotzer Computer Science / Mobile Applications
Shark Framework(Building Context Aware P2P
Applications)
work in progress
TOC
• Knowledge• Knowledge Exchange• A model of Knowledge Exchange Process
(Shark)• A knowledge exchanging software engine
(Shark Engine / Shark Framework)• Examples• Status• Summary
Boring....
• Some of your might know Shark– 2001 – 2006 TU Berlin:
• How to apply Semantics to Mobile World• Mobile Shared Knowledge• 1st paper 2002, several technology studies, some
open source projects started• 2006 PhD• work stopped
• Other scientists know such situations :-(• Since April 2008 relaunch
– still an issue– ocean of time, enthusiastic people/students
Message
• Shark Framework will be finished• Will be maintained
– at least in the next 28 years• This isn't and won't be my project• Shark stands for Shared Knowledge• Let's share it• Open Source with LGPL (sourceforge)• www.sharksystem.net
Knowledge
• AI / Knowledge Representation: – An ontology is / contains / comprises
knowledge– A Topic Map is knowledge– Knowledge can be stored in a Topic Map– set of facts (e.g. represented by PROLOG)
• Definition by structure
Knowledge (2)
• Knowledge Management– Knowledge is something that helps people to
perform a task / to solve a problem– Process oriented view on knowledge– BTW: subject isn't anything!
• Somebody must be interested in it! No intelligent life -no subjects.
• Implications:– A document can be knowledge for person A
but just (electronic) paper for B , e.g.• due to lack of background knowledge• can't read the format no PDF reader available• can't understand the spoken, programming,
description or whatever language
Knowledge (3)
• Implications:– A document can be knowledge for person A
but just (electronic) paper for B , e.g.• due to lack of background knowledge• can't read the format no PDF reader available• can't understand the spoken, programming,
description or whatever language
Knowledge (4)
• Is a document D knowledge? – If it helps a person A in a given situation – yes
D is knowledge for A in this situation– If not: D is no knowledge
• It depends on the context– issuer, receiver, current situation (in its broadest
possible sense)
Knowledge in Topic Maps
• Information resources can be knowledge– Can contain descriptions that help
• An association of Topics can be knowledge– Can help to find relations or IR
• Topics– Can be knowledge
if representing subjects that help– Can be context
and help to find knowledge
Is knowledge true?
• With given definition – it's impossible to decide
• No objective independent instance which could decide
• Semantic networks (e.g. Topic Maps) represent meanings / statements of the authors
• Known concept: Reification
Knowledge – a picture
Information
ContextPerson
Statement Knowledge Particle= Statement + Issuer
Knowledge Exchange - Example
Mobile Person Mobile Person
„1… that's interesting“2 „That's what I mean“
3 „I have some documents about it. Want to have look?“4 „Please.“
5 „Sounds good. Thanks!“
Steps
• Negotiation– Who has information about what topics– Who is interested and allowed to send/receive
information– Implicitly: take context into account– Leads to an exchange context
• Knowledge Exchange
Different to Knowledge Retrieval
• Simple query doesn't produce knowledge• Full text search on e.g. “music”• semantic search (e.g. by TMQL) not
fundamentally better• Context is not described explicitly
– Background knowledge– Situation – ...
+
Knowledge Exchange Processpotential sender potential receiver
remote identity
remote interests
sending interests
environment(eavesdropping, ..)
+
+
=Knowledge
Particle
Extraction
KB KB
Assimilation
* I confess: The term assimilation is stolen from the Borg in Star Trek. Hope they'll never find out.
+
remote identity
remote interests
receiving interests
environment(eavesdropping, ..)
+
+
Extraction / Assimilation
• Extraction – Process creates a knowledge – wants receiver to integrate this knowledge– A sender can
• lie • isn't an expert
• Assimilation– Process that integrates (parts) of received
knowledge
Knowledge Exchange Protocol (KEP)
• Interest– exposes topics of which knowledge is welcome
• Offer– exposes topics of which knowledge can be sent
• Accept– sent from a receiver to a dedicated sender– sents a number of topics
• Insert– sent from a sender to a dedicated receiver – Knowledge particle
KEP Example 1
Peer S
Peer R
Musik / * Musik / *
Establish connection / Identifying
offer(musik)
interest(musik)
accept(musik)
insert(KnowledgeParticle kp)
extract(R, Musik);
assimilate(S, kp);
KEP Example 2 (mobile leaflet)
Peer S
Peer R
Musik / * Musik / *
Establish connection / Identifying
interest(musik)
insert(KnowledgeParticle kp)
extract(R, Musik);
assimilate(S, kp);
KEP Example 3 (hide interests)
Peer S
Peer R
Musik / * Musik / *
Establish connection / Identifying
accept(*)
insert(KnowledgeParticle kp)
extract(R, Musik);
assimilate(S, kp);
Shark Data Model (in UML, sketch)
Interest
Topic
Information
Peer
1..*
1..*
*
1
Shark Data Model (as TM)
Topic2
Topic1Peer
APeer
B
T represents a special interest
SendingReceivingInterest
Remote Peer
TopicPeer
Anonymous
Type
Type
Shark Peer
• Software• Implements extraction and assimilation• Implements KEP• Manages Knowledge Ports which store
interests• Process
– Observes environment– If remote peer is detected:– run KEP (in defined flavour)
Autonomy
• Exchanges knowledge only based on rules described in KPs
• Rules can be changed locally – no interaction with any server required
Flow of knowledge
new idea
Alice
Alice
Externalization
BruceI agree
Bruce
Alice
I think I think
author author
Collaboration
Topic Maps expert
company / institute working
(trusts its TM experts)
member / employees
M-TM-P M-TM-P
M-TM-P
M-TM-P
M-TM-P
Knowledge Flow Management
Topic Maps expert
company / institute working
(trusts its TM experts)
member / employees
M-TM-P M-TM-P
M-TM-P
M-TM-P
M-TM-P
TM TMTM
TM
TM
Implicit ontology expansion
MusicMusic/*/*
Music
Music/*/*
HipHop
MP3File
HipHop
MP3File
Individuals KB = patchwork
M-?-P
Architecture
Knowledge Ports / KEP
Knowledge Base ProtocolNetwork Environment
FS TMTMJ2ME
Service Mng Security TCP BT
L2CAPUDP
Sensors
Some classes
PeerKnowledgeBase
fs.KnowledgeBase
inMemo.KnowledgeBase
Environment
SimpleEnvironment// single thread
KnowledgePort
tinyTIM.KnowledgeBase
Code sample
KnowledgeBase = new tinyTIM.KnowledgeBase();Environment env = new SimpleEnvironment();Peer myPeer = new Peer(kb, env);Context any = new Context(Context.ANY);RemotePeer rPeer = new
RemotePeer(RemotePeer.ANONYMOUS)myPeer.createIKP(any, any, rPeer);
myPeer
Code sample - result
tinyTIM
*/*/*
single threadedTCP basedenvironment
Mobile Communities
Mobile Phone
Mobile
Find peers/people withsimilar interests and exchange knowledge/information
Location Based Services
Hotspot
Mobile
Send information to passer-by
Mobile
Mobile
Collaboration / Semantic Grid
Mobile
Exchange documents, rumours, links
PC
PC
Work in progress
• Implementation started April, 2008• Shark-FW-Core exists• KEP exists, used exchange format
– compressed proprietary format– Topic Maps
• Protocols– TCP, UDP work– BT Prototyp
• Knowledge Bases– Filesystem – Prototyp– tinyTIM – implementation has begun
Next steps / priority list
• Applications– Collaboration platform– Mobile Community Application
• Knowledge Base – J2ME
(revive the TM4J2ME project (sourceforge)– Jena-FW (RDF) (I'll be a traitor, sorry!!)
• Protocols– Stable Bluetooth implementation– HTTP
Distributed evolutionary Ontologies
• Knowledge can be – Information resources– Topics and Associations
• A P2P Knowledge Exchange can lead to changes in Topic Maps
• Kind of evolutionary process– Any receiver can accept or drop changes – “survival of the fittest concepts”– Might lead to a drift and groups of peers
sharing same / similar ontologies
Summary
• Shark model describes the process of knowledge exchange
• Shark Framework implements this model• basis for number of applications• Buzzwords for Shark Applications
– Semantic Grid Applicationsmore specific mobile Topic Grid Apps
– context aware P2P Apps