[foaf-dev] Linking foaf and other rdf documents/resources

Bruce Whealton bruce at whealton.info
Wed Jun 29 17:47:52 CEST 2011


Mischa, (and others)
               This is very helpful.  So, I was looking at your profile or should we call it FOAF file – I’m trying to get the wording right, if there is a right way to say these things.  

I’m not sure I have a good handle on the use of #me or #danbri.  I thought I understood it but my understanding would suggest that one would always have to use that when referring to the person you foaf:know.
So, in an html document, #danbri or #mischa is a named anchor and a link to a domain and path suffixed with #mischa would take one to that named anchor in the document.  So, what does this mean in RDF files?
When would you use #me versus #mischa?  I thought maybe it meant that in a document about oneself, you would use #me to refer to yourself as opposed to someone else in that document.  

Next question: you said: Usually it would be a foaf:Person URI and not a foaf:Document URI, as in, "Mischa knows Danbri" not "Mischa knows a Document on the web which talks about Danbri". 
So, does that mean you want to refer to the foaf:Person container tag inside the document and not the foaf: Description container?  Or would you have one document that serves as a foaf:Person URI and another that serves as a
foaf:Description URI?

and you were saying that it would be incorrect to say you foaf:knows the resource located by the following:
<rdf:Description rdf:about="http://www.okkam.org/ens/id9efc2692-8bf0-4546-8eee-42877fa60ac6">
This doesn’t actually represent a foaf:Person does it?  It is a document about the person.  

You then write that this is more useful with the email address because there can be more than one person in a foaf file.
<#foo> foaf:knows _:bnode0 . 
_:bnode0 a foaf:Person . 
_:bnode0 rdfs:seeAlso <http://foozle.example/foaf.rdf> .
_:bnode0 foaf:name "Joe Bloggs" . 
_:bnode0 foaf:mbox <mailto:joe.bloggs at lame.example> . 

Can you also use a nodeID to refer to Joe Bloggs in that document?  This is related to my above question about the meaning of using #me or #mischa.  

Next question: Since we cannot mix different RDF serialization formats in the same file, how would you represent using RDF/XML the above statements where you are using blank nodes?  Often times I am reading about using a vocabulary
and I run across examples like the above and I’m thinking, but my document is in an XML format and this is just showing it in Tuttle with blank nodes.  Can you use blank nodes in RDF/XML?
Thanks,
Bruce


From: Mischa Tuffield 
Sent: Wednesday, June 29, 2011 3:55 AM
To: Bruce Whealton 
Cc: foaf-dev at lists.foaf-project.org 
Subject: Re: [foaf-dev] Linking foaf and other rdf documents/resources

Hello

comments inline:

On 29 Jun 2011, at 01:11, Bruce Whealton wrote:


  Hello all,
                  So, there are a few ways that one can link various profiles, or RDF FOAF files/resources.  I’m wondering if there is a best practice.

Not sure if there is any best practice, I would say that foaf:knows'ing a foaf:Person URI is the "best way" as it slightly less costly to query, but will comment further below:

FWIW, I think I make use of all three of the methods you list below in my foaf file http://mmt.me.uk/foaf.rdf 


  I had been using 
  <foaf:knows>
          <foaf:Person>
  ...
           <rdfs:seeAlso rdf:resource=”http://url/pathto/foaf.rdf"/>
          </foaf:Person>
  </foaf:knows>

In the above method if your rdf looks like : 

<#foo> foaf:knows _:bnode0 . 
_:bnode0 a foaf:Person . 
_:bnode0 rdfs:seeAlso <http://foozle.example/foaf.rdf> .

You will need to give the foaf:Person ( _:bnode0) an inverse functional property, something like "foaf:homepage or foaf:weblog or foaf:mbox_sha1sum" as the above fragment does give the foaf:Person any unique identifiers. 

i.e. 

<#foo> foaf:knows _:bnode0 . 
_:bnode0 a foaf:Person . 
_:bnode0 rdfs:seeAlso <http://foozle.example/foaf.rdf> .
_:bnode0 foaf:name "Joe Bloggs" . 

In english I make that to be. "I know this person, if you look here [1] you can find information about this person, and his name (ambiguously - as in there could be two people called joe bloggs in the document I point to) is Joe Bloggs"

[1] <http://foozle.example/foaf.rdf>  


^^ is not as useful as : 

<#foo> foaf:knows _:bnode0 . 
_:bnode0 a foaf:Person . 
_:bnode0 rdfs:seeAlso <http://foozle.example/foaf.rdf> .
_:bnode0 foaf:name "Joe Bloggs" . 
_:bnode0 foaf:mbox <mailto:joe.bloggs at lame.example> . 

In english I make that to be. "I know this person, if you look here [1] you can find information about this person, and his name (ambiguously) is Joe Bloggs, but he is the person which is on the end of this [2] email address . 

[1] <http://foozle.example/foaf.rdf>  
[2] <mailto:joe.bloggs at lame.example> 

  But some FOAF profiles I’ve seen setup with method #2.
  <rdf: Description rdf: about=”http://pathToFileAboutPerson/longstringofcharacters” >
        ... information about the person
  </rdf: Description>

  then further down there would be a 
  <foaf: knows resource=”http://pathToFileAboutPerson/longstringofcharacters”/>

So, in this example "http://pathToFileAboutPerson/longstringofcharacters" is or should be a foaf:Person URI. I noticed that some people were doing this wrong, and were foaf:knows'ing a foaf:Document URI which is not correct in my books. 

  I assume that the about="http://pathToFileAboutPerson/longstringofcharacters” refers to a FOAF file but I guess it doesn’t have to link to a foaf file.

Usually it would be a foaf:Person URI and not a foaf:Document URI, as in, "Mischa knows Danbri" not "Mischa knows a Document on the web which talks about Danbri". 


  I wonder if there is a benefit to using method #2 or a best practice that favors this?  I can see that it might make it easier if one had to refer, more than once, to the resource that represents a person (through their FOAF profile) in a document.

As above, method 2 is easier to process. 


  As one uses more vocabularies and has more extensive rdf files, it becomes more likely that one is going to make numerous assertions about that person (resource).  
  Most importantly though, will there be any difference in the ability of crawlers or other apps to follow the links between various FOAF profile files?

Regarding crawling, both of the above methods should work, especially given that in your bnode example at the start, you rdfs:seeAlso the foaf Document. 

Mischa


  Thanks,
  Bruce
  ++++++++++++++++++++++++++++++++++++++++++++++++++
  Bruce Whealton, Owner Future Wave Designs
  FOAF: http://whealton.info/BruceWhealton1/foaf.rdf
  Vcard: http://whealton.info/BruceWhealton1/brucewhealtonvcard.html
  Web Design and Development http://FutureWaveDesigns.com
  http://futurewavedesigns.com/wordpress/
  Web Technology wiki: http://futurewavedesigns.com/w/
  ++++++++++++++++++++++++++++++++++++++++++++++++++
  _______________________________________________
  foaf-dev mailing list
  foaf-dev at lists.foaf-project.org
  http://lists.foaf-project.org/mailman/listinfo/foaf-dev

___________________________________
Mischa Tuffield PhD
Email: mischa.tuffield at garlik.com
Homepage - http://mmt.me.uk/
+44(0)208 439 8200  http://www.garlik.com/
Registered in England and Wales 535 7233 VAT # 849 0517 11
Registered office: Thames House, Portsmouth Road, Esher, Surrey, KT10 9AD

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.foaf-project.org/pipermail/foaf-dev/attachments/20110629/0864b9b5/attachment.htm 


More information about the foaf-dev mailing list