Re: [foaf-dev] Linking foaf and other rdf documents/resources
Kevin Pickens <[email protected]> Wed, 29 Jun 2011 07:44:19 -0400
| Newsgroups | gmane.comp.web.rdfweb |
|---|---|
| Message-ID | <[email protected]> |
TL;DR: If the current foaf:Person (a) foaf:knows another foaf:Person (b) and b has a URI pointing to a foaf:Person record, just use foaf:knows and the URI unless new information is being asserted, you probably don't need to reinvent the wheel. The rest of this assumes that our poor subject, Joe Bloggs, has foaf:Person URI of <http://joebloggs.domain.or.social.network/foaf.rdf#joe>. If the current document is not asserting any new information, a simple foaf:knows using the foaf:Person URI is sufficient and prevents the current document from containing out-of-date information. If the current document is asserting new information, something like this would make the most practical sense (in this example, we would be asserting that a person has an openid URI of <http://socialnet.example/user/joebloggsaccount> and is the same person that's described at < http://joebloggs.domain.or.social.network/foaf.rdf#joe>): <http://socialnet.example/user/lame#foo> foaf:knows _:bnode0 . _:bnode0 a foaf:Person . _:bnode0 foaf:openid <http://socialnet.example/user/joebloggsaccount> . _:bnode0 owl:sameAs <http://joebloggs.domain.or.social.network/foaf.rdf#joe> . If you just want to say that the foaf:Person that the current foaf:Person foaf:knows is described by a document, the way to do that would be: <http://socialnet.example/user/lame#foo> foaf:knows _:bnode0 . _:bnode0 a foaf:Person . _:bnode0 foaf:isPrimaryTopicOf < http://socialnet.example/user/joebloggsaccount> . _:bnode0 owl:sameAs <http://joebloggs.domain.or.social.network/foaf.rdf#joe> . If <http://joebloggs.domain.or.social.network/foaf.rdf#joe> or _:bnode0 is not the foaf:primaryTopic, then foaf:isPrimaryTopicOf would be replaced by foaf:page. I would also want to have the node for Joe in the current document be a proper node, not an empty so that < http://joebloggs.domain.or.social.network/foaf.rdf#joe> could include an owl:sameAs so that a crawler hitting < http://joebloggs.domain.or.social.network/foaf.rdf#joe> could learn about the current document. Cheers, Kevin --- Kevin Pickens A+ | Network + | Security+ | Project+ [email protected] | http://kbpickens.me | http://kbpickens.me/foaf.rdf#kevin +1(540)999-6257 (office) | +1(508)664-8314 (fax) On Wed, Jun 29, 2011 at 6:16 AM, Mischa Tuffield <[email protected] > wrote: > I still think the former approach of using bnodes for People, rdfs:seeAlso, > and Inverse Functional Properties is not as efficient as foaf:knows'ing a > foaf:Person URI, as below: > > If i (a crawler) come across triples such as below in the foaf:Person > http://socialnet.example/user/lame#foo's foaf:PersonalProfileDocument: > > <http://socialnet.example/user/lame#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-tvT2FxLsLtVKTLD/[email protected]<joe.bloggs-tvT2FxLsLtVKTLD/[email protected]>> > . > > I would have to fetch all the triples in "http://foozle.example/foaf.rdf", > and I would have to sparql for all the foaf:Person(s) in the document, and I > would have to get all of people's foaf:mbox's to find out which of the > foaf:Person(s) http://socialnet.example/user/lame#foo was claiming to > know. > > Aside from that I am not criticising the approach, what I find really > useful about the bnode manner of foaf:knows'ing someone is for when you > don't know the URI of the foaf:Person's foaf:PersonalProfileDocument of > their foaf:Person URI, as you can simply state, without the rdfs:seeAlso. > > <http://socialnet.example/user/lame#foo> foaf:knows _:bnode0 . > _:bnode0 a foaf:Person . > _:bnode0 foaf:name "Joe Bloggs" . > _:bnode0 foaf:mbox <mailto:joe.bloggs-tvT2FxLsLtVKTLD/[email protected]<joe.bloggs-tvT2FxLsLtVKTLD/[email protected]>> > . > > ^^ is pretty neat from my point of view, allowing one the ability to > foaf:know's someone, regardless of whether or not you know what social > network their foaf:PersonalProfileDocument resides. > > > _______________________________________________ foaf-dev mailing list foaf-dev-RyYwo1q5J+qsOXdr9/[email protected] http://lists.foaf-project.org/mailman/listinfo/foaf-dev