[foaf-dev] relationship vocabulary suggestions for improovement

Story Henry henry.story at bblfish.net
Tue Feb 9 14:42:18 CET 2010


On 9 Feb 2010, at 12:17, Toby Inkster wrote:

> On Mon, 2010-02-08 at 12:40 +0100, Story Henry wrote:
>> Proposed FIXES
> 
> Also, IIRC the relationship vocab uses rdfs:subClassOf a few times when
> it means rdfs:subPropertyOf.
> 
> By the way, have you seen this? http://vocab.sindice.com/xfn#

yes, that looks very nice. Since I gave Ian Davis a hard time, I'll do the same for Richard on this one. 

Ok, so as previously foaf:knows is defined as 

[[
We take a broad view of 'knows', but do require some form of reciprocated interaction (ie. stalkers need not apply). Since social attitudes and conventions on this topic vary greatly between communities, counties and cultures, it is not appropriate for FOAF to be overly-specific here.

If someone knows a person, it would be usual for the relation to be reciprocated. However this doesn't mean that there is any obligation for either party to publish FOAF describing this relationship. A knows relationship does not imply friendship, endorsement, or that a face-to-face meeting has taken place: phone, fax, email, and smoke signals are all perfectly acceptable ways of communicating with people you know.
]]

Ie: there has to be a reciprocated interaction for foaf:knows to be true. foaf:knows is not the knows of relation.

    --------------------
    xfn:crush     a rdf:Property;
         :comment "Someone you have a crush on. No inverse."@en;
         :domain <http://xmlns.com/foaf/0.1/Person>;
         :label "crush"@en;
         :range <http://xmlns.com/foaf/0.1/Person>;
         :subPropertyOf xfn:human-relationship,
                owl:differentFrom .
    --------------------

   Very good. I started with this one, because it shows that the concept of symetricity of foaf:knows is understood here. Not only is the crush relationship very rarely symmetric, but it often happens when people don't yet foaf:know each other. Indeed disappointment often follows the establishing of foaf:knows. 
   But "No inverse" is not good english. It should be something like "does not imply it's inverse".

    --------------------
  xfn:child     a rdf:Property;
   :comment "A person's genetic offspring, or someone that a person has adopted and takes care of. Inverse is parent."@en;
   :subPropertyOf xfn:human-relationship,
                xfn:kin,
                owl:differentFrom,
                <http://xmlns.com/foaf/0.1/knows>;
   owl:inverseOf xfn:parent .
    --------------------

ok, but there are cases where men do not know of their genetic offspring. It happens quite frequently. But as I mentioned in the case of the relationship vocabulary, this is a question of debate. I can see the above definition being acceptable. It does not make it possible to say certain things though, so someone will have to invent a stricter genetic relationship only vocab. But ok. Just perhaps one should state the above a little differently:

 xfn:child :comment "A person's genetic offspring, or someone that a person has adopted. Implies that the person has taken care of them. Inverse is parent."@en;

    --------------------
 xfn:co-resident     a rdf:Property,
                owl:SymmetricProperty;
         :comment "Someone you share a street address with. Symmetric and transitive."@en;
         :domain <http://xmlns.com/foaf/0.1/Person>;
         :label "co-resident"@en;
         :range <http://xmlns.com/foaf/0.1/Person>;
         :subPropertyOf xfn:human-relationship,
                owl:differentFrom,
                <http://xmlns.com/foaf/0.1/knows> .
    --------------------

There are a lot of people who live in huge apartment blocks who don't know their neighbours. A Marxist would argue that this is a bourgeois ontology, that takes the point of view of a wealthy person... They'd be wrong, because nowadays businessmen can also live in such places. Perhaps in huge appartment blocks on is not co-residents then? Just xfn:neighbor? (If so perhaps one should add something along those lines to the text of the comment)

    --------------------
    xfn:neighbor     a rdf:Property,                owl:SymmetricProperty;
         :comment "Someone who lives nearby, perhaps only at an adjacent street 
address or doorway. Symmetric. Often transitive."@en;
         :domain <http://xmlns.com/foaf/0.1/Person>;
         :isDefinedBy <>;
         :label "neighbor"@en;
         :range <http://xmlns.com/foaf/0.1/Person>;
         :subPropertyOf xfn:human-relationship,
                owl:differentFrom .
    --------------------

That's ok.

    --------------------
  xfn:co-worker     a rdf:Property,
                owl:SymmetricProperty;
         :comment "Someone a person works with, or works at the same organization as. Symmetric. Usually transitive."@en;
         :domain <http://xmlns.com/foaf/0.1/Person>;
         :isDefinedBy <>;
         :label "co-worker"@en;
         :range <http://xmlns.com/foaf/0.1/Person>;
         :subPropertyOf xfn:human-relationship,
                owl:differentFrom,
                <http://xmlns.com/foaf/0.1/knows> .
    --------------------

At Sun I was the co-worker of many people I did not know the existence of, even though I travelled the world. At Oracle that would be even more the case. In some companies, it is nearly an impossibility to foaf:know all your co-workers. So I think here clearly one should remove the foaf:knows subPropertyOf relationship.  At least xfn is not transitive, as the equivalent is the relationship ontology is.

    --------------------
    xfn:colleague     a rdf:Property,
                owl:SymmetricProperty;
         :comment "Someone in the same field of study/activity. Symmetric. Often transitive."@en;
         :domain <http://xmlns.com/foaf/0.1/Person>;
         :isDefinedBy <>;
         :label "colleague"@en;
         :range <http://xmlns.com/foaf/0.1/Person>;
         :subPropertyOf xfn:human-relationship,
                owl:differentFrom,
                <http://xmlns.com/foaf/0.1/knows> .
    --------------------

Usually one does know one's colleague. I would just make this a bit more explicit in the definition, which seems to be a bit too broad. 

So all in all this holds water better than the relationship ontology I reviewed recently. But I think the following should be looked at more closely:

	xfn:co-worker

Understandeable, but perhaps with a bit more explanation in the text:

	xfn:co-resident, xfn:child

So this is much closer to being right. 1 big nit, and a few small ones. Great vocab. There are some extra nice relations in the rel vocab that are not here.


	Henry






> 
> -- 
> Toby A Inkster
> <mailto:mail at tobyinkster.co.uk>
> <http://tobyinkster.co.uk>
> 



More information about the foaf-dev mailing list