[foaf-dev] [foaf-protocols] revisiting FOAF project goals

Olaf Hartig hartig at informatik.hu-berlin.de
Thu Jun 25 07:14:43 CEST 2009

Hey Matthew,

On Wed Jun 24 14:37:39 CEST 2009 Matthew Rowe wrote:
> On 24 Jun 2009, at 12:40, Melvin Carvalho wrote:
> [...]
> > Perhaps named graphs can help, or maybe storing an extra field in a DB
> > for the weighting?
> Yeh this is something I have been puzzled by aswell. Olaf Hartig's
> paper on "Querying trust in RDF data with rSPARQL" [1] details that
> RDF graphs can be trust weighted, and expresses individual statements
> within the RDF graph as having trust values (ranging from 0-1).
> However, the paper does not explicitly say how trust values would be  
> stored (ie. what the semantics would be for expressing a trust value).  
> As you suggested it appears that the db contains an associated trust  
> value with a given triple. I assume that in terms of assigning trust  
> values to relationships, trust values would be assigned to the  
> relationship triple:
> (<#Alice> foaf:knows <#Bob>) 0.9

Just to make this clear, my trust values represent the trustworthiness of RDF 
statements. There is a difference to trust values that represent the 
trustworthiness of persons. You should not confuse both. If you want to 
represent the trust value associated with the relationship between persons 
you must not assign a trust value to the relationship triple (as you 
suggest). Associating 0.9 to the triple

 :Alice foaf:knows :Bob

means the statement that "Alice knows Bob" can be trusted to a high degree 
(considering a trust value of 1.0 is the upper bound). It does not mean that 
Alice highly trusts Bob.

BTW - Intentionally, I do not write about storing trust values (of 
statements!) in my paper because I assume in the majority of cases these 
values do not have to be materialized. Usually, the trustworthiness of 
processed statements is determined on demand; i.e. when it is needed in the 
application (or in the query engine in my case). At best these values are 
cached for a while. I don't see no value in explicitly describing them with 

However, for the unlikely requirement to materialize trust values determined 
for statements (i.e. to explicitly describe the trustworthiness of statements 
with RDF) I developed a vocabulary [1]. This approach is based on RDF 

In contrast to trust values for statements I think it is reasonable to 
explicitly represent the trust values for persons (i.e. describe these values 
with RDF). That's what you want to do, right? My vocabulary may be used for 
this, too. Notice, in this case you don't need no reification. For example, 
the statement Alice trusts Bob with trust value 0.9 can be described as 

:Bob tv:trustworthiness [ rdf:type tv:TrustValue ;
                                       rdfs:value 0.9 ;
                                       tv:truster :Alice ]


PS. Please CC me because I'm not on the list

[1] http://trdf.sourceforge.net/trustvocab.owl

More information about the foaf-dev mailing list