[foaf-dev] Owl:sameAs was Re: Linking foaf and other rdf documents/resources

Bruce Whealton bruce at whealton.info
Sun Jul 3 23:05:12 CEST 2011


I found a great video on Linked Data that is very helpful, especially in describing many of these issues, though your explanation had made things clear too. 
The video presentation is here:
http://videolectures.net/iswc08_heath_hpldw/
and they mention the 303 redirects too.  They didn’t get into the specifics of that, though.  I’ll have to learn how to implement this – any tips are welcome.
I realized that the #me isn’t really the same as it’s html equivalent.  When you use http://brucewhealton.us/BruceWhealtonJr/foaf.rdf#me the #me just gets stripped off.  
I did want to see if I could get clarification using owl:sameAs.  I guess you had already mentioned that it doesn’t matter if I use foaf:Person as the container tag or foaf: Description to contain all my information.  I can still distinguish between how to refer to and identify myself as different from a document about myself.  So, would I use owl:sameAs inside my foaf file, about me, to link to other documents about me?  I guess it would be wrong to say http://brucewhealton.us/BruceWhealtonJr/foaf.rdf#me owl:sameAs http://path/to/anotherdocumentaboutme/ because the subject of that triple is referring to me, not the document about me.  But if I leave off the #me then I can say that one foaf document about me is the same as another document about me... both are about the same person.  Is that right?
Can I say that my foaf profile document is owl:sameAs my doac document about me – doac is Description of a Career, a vocabulary used for describing one’s resume of skills, work experience and education.  And for the purposes of Genealogy I might have a bio.rdf file as well, that uses the bio vocabulary and maybe relationships biography, both extended from FOAF.  I guess they are all documents I can relate using owl:sameAs
Thanks,
Bruce

++++++++++++++++++++++++++++++++++++++++++++++++++
Bruce Whealton, Owner Future Wave Designs
FOAF: http://whealton.info/BruceWhealtonJr/foaf.rdf
Vcard: http://whealton.info/BruceWhealtonJr/brucewhealtonvcard.html
Web Design and Development http://FutureWaveDesigns.com
http://futurewavedesigns.com/wordpress/
Web Technology wiki: http://futurewavedesigns.com/w/
++++++++++++++++++++++++++++++++++++++++++++++++++

Hi Bruce,  

<snip/>

On 29 Jun 2011, at 16:47, Bruce Whealton wrote:


  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.  

Both are fine. http://mmt.me.uk/foaf.rdf is my "FOAF file", my "FOAF profile document", or simply a document with some FOAF data in it ... again, you seem to be saying the right 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.


No not at all. the #me or #danbri this, is just a convention for using hash URIs for picking a foaf:Person URI. They are not all hash URIs, have a look at Tom Heath's FOAF profile, he uses 303-redirection and has a non-hash URI for the foaf:Person which represents him. 



  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?

It is just another URI within an RDF document. This is so the document describing me http://mmt.me.uk/foaf.rdf can have a different URI from the URI that describes me http://mmt.me.uk/foaf.rdf#mischa . That is http://mmt.me.uk/foaf.rdf is NOT the same as http://mmt.me.uk/foaf.rdf#mischa these are different unique identifiers. 


  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.  

You can use anything you like. The convention is to use the following triples: 

<http://mmt.me.uk/foaf.rdf> a foaf:PersonalProfileDocument . 
<http://mmt.me.uk/foaf.rdf> foaf:primaryTopic <http://mmt.me.uk/foaf.rdf#mischa> .
<http://mmt.me.uk/foaf.rdf#mischa> a foaf:Person . 

The above triples ^^ state. <http://mmt.me.uk/foaf.rdf> is a FOAF document. The FOAF document has a primaryTopic which is <http://mmt.me.uk/foaf.rdf#mischa>, and URI <http://mmt.me.uk/foaf.rdf#mischa> is of type foaf:Person. 



  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 

<http://mmt.me.uk/foaf.rdf#mischa> foaf:knows <http://danbri.org/foaf.rdf> . (is semantically incorrectly) 

and 

<http://mmt.me.uk/foaf.rdf#mischa> foaf:knows <http://danbri.org/foaf.rdf#danbri> . 

Like you said above, you are spot on. 


  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?

Either or. The former is what I do and Tom Heath does the later http://tomheath.com/home/rdf both are fine. I personally think the former is easier but that is a matter of personal preference. 


   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.  

It looks like an HTML document to me, but I haven't bothered looking that, but naively it looks like URI for a person. 

http://sig.ma/search?q=http://www.okkam.org/ens/id9efc2692-8bf0-4546-8eee-42877fa60ac6 



  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.  

Of course you can :)



  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

Have a look a tool for converting turtle to rdf/xml if that is what you want. See libraptor or similar. 


  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?

Yes, your example RDF/XML: 


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



has a blank node it in, worth playing with software which parses back and forward from RDF/XML -> Turtle. That might help you figure out what it going on ...


  Thanks,
  Bruce

Your welcome, 

Mischa




  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



___________________________________
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/20110703/05fbb04b/attachment-0001.htm 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/png
Size: 1041 bytes
Desc: not available
Url : http://lists.foaf-project.org/pipermail/foaf-dev/attachments/20110703/05fbb04b/attachment-0001.png 


More information about the foaf-dev mailing list