building context aware p2p systems with the shark framework
DESCRIPTION
Shark Framework is framework supporting implementation of context aware P2P systems. Shark is an acronym and stand for Shared Knowledge. There is already a theory on context aware P2P systems which is implemented by the Shark framework.Target platforms are in the first step J2SE, J2ME and Android. In next steps iPhone and Microsoft based mobile devices will be supported.Shark FW supports the Knowledge Exchange Protocol (KEP) which is a stateless P2P protocol. Currently KEP has been ported to UDP and TCP. A Bluetooth L2CAP implementation will be available in October. This paper (briefly) explains core concepts of the framework. Sample code illustrates usage of Shark. It is illustrated that just two lines of code are sufficient to set up a peer that exchanges knowledge. This paper is also a call for participation. Shark is an open source project and is open to developers and users. Join us!TRANSCRIPT
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