trust networks on the semantic web a knowledge management technologies presentation chung,...

Post on 02-Jan-2016

215 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Trust Networks on the Semantic Web

A Knowledge Management Technologies Presentation

Chung, Hyung-Hwan (HT052383L)Ching Meng Hui (HT042310U)

Trust

Top layer of semantic webUltimate goal: “Web of Trust”Human notion of trust

Complex and complicatedAbstractEmotional and illogicalBased on intuition.

Types of Trust

Cognition-basedCalculative and rationalCompetence, ability, responsibility, integrity,

credibility, reliability and dependability.Affect-based

Non-calculative and emotionalCare, concern, benevolence, altruism,

commitment, mutual respect, etc.

Trust in general

Based on expectations and interactions.Manifested in people’s behavioral

patterns.Makes a difference.

Trust in Social Networks

Long research historyMathematical model

Small Worlds “Six Degrees of Separation”Game: “Kevin Bacon Game”

Distorted Trust

MWW – Myanmar Wide WebExtreme censorshipLimited accessGovernment enforced

Trust on the Semantic Web

AuthenticationDigital SignaturesPublic Keys

But trust is a human notion that ignores the above …

Digital Signature

Verifies authenticity or identificationEnsures integrityPrevents repudiation

ProblemsExchange of certificatesEndorsements => CA

Digital Signature

Public key and private keyEncrypt the plain text with a public keyDecrypt the encrypted text with a private

keyVice Versa.

Digital Signature (cont’d)

Message Digest and HashContents provider

Get the digest of the plain textSign the digest with a private keyPublic the digest and the plain text together

Contents consumerCalculate the digest of the plain textDecrypt the signature with the public keyCompare the decrypted digest with the

calculated digest

Friend-Of-A-Friend (FOAF)

Project using RDF Social networks Small world problem www.foaf-project.org

FOAF File

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:admin="http://webns.net/mvcb/"><foaf:PersonalProfileDocument rdf:about=""> <foaf:maker rdf:resource="#me"/> <foaf:primaryTopic rdf:resource="#me"/> <admin:generatorAgent rdf:resource="http://www.ldodds.com/foaf/foaf-a-matic"/> <admin:errorReportsTo rdf:resource="mailto:leigh@ldodds.com"/></foaf:PersonalProfileDocument><foaf:Person rdf:ID="me"><foaf:name>Hyung-Hwan Chung</foaf:name><foaf:givenname>Hyung-Hwan</foaf:givenname><foaf:family_name>Chung</foaf:family_name><foaf:nick>Brian</foaf:nick><foaf:mbox_sha1sum>de4f7c74a2050ab2c481daef8354ddf22fb049e0</foaf:mbox_sha1sum><foaf:knows><foaf:Person><foaf:name>Joe</foaf:name><foaf:mbox_sha1sum>5c38d396c3faf7424e291ccd7a29ce903e966332</foaf:mbox_sha1sum><rdfs:seeAlso rdf:resource="www.korone.net/foaf.rdf"/></foaf:Person></foaf:knows></foaf:Person></rdf:RDF>

FOAF Level of Trust

1. Distrusts absolutely2. Distrusts highly3. Distrusts moderately4. Distrusts slightly5. Trusts neutrally6. Trusts slightly7. Trusts moderately8. Trusts highly9. Trusts absolutely.

Extending FOAF

Quantify the trust Extra vocabulary

<foaf:person rdf:id=‘me’>

<trust>

<trustPerson rdf:resource=‘#dan’/>

<trustLevel>9</trustLevel>

<trustContext rdf:resource=http://example.com/ont#Java>

</trust>

</foaf:person>

X trusts Y 80%

What does this mean?Are 8 statements out of 10 trustworthy?All of his statements might have 20%

discrepancy from the mathematically provable fact?

Depending on its definition, different metric should be devised to infer the trust value.

Example

A

B C

D F

1

0.8 0.8

0.1

Method 1

FCA: (0.1+0.8)/2=0.45DBA: (1+0.8)/2=0.9

Method 2

FCA: (0.1×0.8)=0.08DBA: (1×0.8)=0.8

Method 3

FCA: (0.8+0.8)/2=0.8DBA: (0.8+0.8)/2=0.8

Applications

TrustBotTrustMail

Conclusions

Trust has a role in KM.Trust values affect people’s willingness

to share and work.More empirical research on trust in the

context of knowledge-based world, to make this closer to reality.

Questions & Answers

Truweb.java

import java.util.*;

public class Truweb{ class Person { public String name; public Rating ratings = null; public Person next = null; public boolean visited = false; public Person (String name) { this.name = name; } }

class Rating { public int value; public Person target; public Rating next; public Rating (Person to, int value) { this.value = value; this.target = to; this.next = null; } }

private HashMap map;

public Truweb () { map = new HashMap (100); }

public Person addPerson (String name) { Person person; person = (Person) map.get (name); if (person == null) { person = new Person (name); map.put (name, person); }

return person; }

public Person findPerson (String name) { return (Person) map.get (name); }

Truweb.java (cont’d)

public void setRating (Person from, Person to, int value) { Rating rating = from.ratings; while (rating != null) { if (rating.target == to) break; rating = rating.next; }

if (rating != null) { rating.value = value; } else { rating = new Rating (to, value); rating.next = from.ratings; from.ratings = rating; } }

public int getRating (Person from, Person to) { return get_rating0 (from, to, 0, 1); }

private int get_rating0 (Person from, Person to, int acc, int depth) { int n; from.visited = true; n = get_rating (from, to, acc, depth); from.visited = false; return n; }

private int get_rating (Person from, Person to, int acc, int depth) { Rating rating = from.ratings; if (rating == null) return -1;

do { if (rating.target == to) { return (acc + rating.value) / depth; } rating = rating.next; } while (rating != null);

rating = from.ratings; while (rating != null) { if (rating.target.visited != true) { int n = get_rating0 ( rating.target, to, acc + rating.value, depth+1); if (n != -1) return n; }

rating = rating.next; }

return -1; }

Truweb.java (cont’d)

public static void main (String[] args) { Truweb truweb = new Truweb ();

Person jane = truweb.addPerson ("jane"); Person tom = truweb.addPerson ("tom"); Person jeff = truweb.addPerson ("jeff"); Person susie = truweb.addPerson ("susie"); Person kelly = truweb.addPerson ("kelly");

truweb.setRating (jane, tom, 1); truweb.setRating (jeff, tom, 10); truweb.setRating (susie, kelly, 7); //truweb.setRating (susie, jane, 7); truweb.setRating (tom, susie, 10);

System.out.print ("jane to kelly: "); System.out.println (truweb.getRating (jane, kelly)); System.out.print ("jeff to kelly: "); System.out.println (truweb.getRating (jeff, kelly)); System.out.print ("kelly to jeff: "); System.out.println (truweb.getRating (kelly, jeff)); System.out.print ("jane to tom: "); System.out.println (truweb.getRating (jane, tom)); }}

top related