Building Context Aware P2P Systems with the Shark Framework

Preview:

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!

Citation preview

Prof. Dr. Thomas Schwotzer Computer Science / Mobile Applications

thomas.schwotzer@fhtw-berlin.de

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

Recommended