[foaf-dev] The foaf:knows semantic, symetry and subclasses

Alexandre Passant alex at passant.org
Thu Jul 24 11:32:31 BST 2008


Hi all,

The latest thread about the relationship vocabulary + foaf:knows [1]  
and a blog post about using foaf:knows in exporters for social-network  
services [2] (in french) made me think about the semantic and symetry  
of foaf:knows.

As mentioned in [1] the foaf:knows property is currently "human-only"  
symetric, since its says it does "require some form of reciprocated  
interaction" but nothing states this in the ontology.
Yet, it seems it will be defined more formally in the spec (as an  
owl:SymetricProperty I guess) [3].
So let's assume this is *really* (i.e. machine-defined) a symetric  
property.

What [2] exposes is that using foaf:knows in exported social-networks  
is partially wrong since there is not always a reciprocity: I might  
know someone, but he does not necessary knows me.
This is where, IHMO, the semantic of the 'knows' relationship is  
important.
Currently this is voluntary vague, so I'd say it can start from "I've  
heard about / I know his existence".
If explicitly defined that way in the spec, using foaf:knows in  
exporters might be good: as soon as you add someone as a friend in a  
social networking website, he generally gets an alert, so knows you're  
exist (in theory, as he might not read his mails, etc ...) - so  
there's indeed a "know the existence" reciprocity (but no necessary  
stronger).
Also, defining the semantic of foaf knows as "know the existence" may  
solve the problem of some of the relationship properties that are  
foaf:knows subproperties (eg: wouldLikeToKnow).

Yet, I still see two problems with the reciprocity of the property:

As the [1] thread explained, the subproperties of a symetric  
relationship are not necessarily symetric, but as Henry pointed  
there's still a problem:

{ rel:wouldLikeToKnow rdfs:supPropertyOf foaf:knows .
:me rel:wouldLikeToKnow :samanthaFox } => { :me  
foaf:knows :samanthaFox . }

That's fine until you do symetric inferencing. Even with the proposed  
lightweight semantic, I guess that Samantha Fox doesn't know your  
existence (unless you're lucky ;)
But here, it might be a problem to deal with in the relationship  
vocabulary, which was the previous thread topic, not with FOAF itself.

The second one is relationship-spam.
Spammers could add lots of foaf:knows, so that they'll get foaf:knows  
backlinks thanks to symetry and inferencing.
So, my question is: when running inference on such symetric  
properties, is there a formal way to state that it was inferred from  
another one.
For instance, does the inferred relationship belong to the same graph  
than the original property, so that we can add trust metrics to  
foaf:knows properties, eg by trusting only foaf:knows rel in which the  
subject "owns" the graph (or someone from his first-level social  
network, etc).
Does it depends on implementation of the inference engine ? (I know  
that 3store had an "entailement graph" to store inferred property).

I'd be happy to get feedbacks on those different points

Thanks,

Alex.

[1] http://lists.foaf-project.org/pipermail/foaf-dev/2008-July/009245.html
[2] http://www.lespacedunmatin.info/blog/index.php?2008/07/11/904-identica-foaf-et-sioc
[3] http://chatlogs.planetrdf.com/swig/2008-06-27.html#T17-04-46


More information about the foaf-dev mailing list