Upload
lynne-marsh
View
213
Download
0
Tags:
Embed Size (px)
Citation preview
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:[email protected]"/></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)); }}