Copyright © 2002 Bill Kearney
DO not expect it to remain stable. When it does stablize I will make note of it here. The big issue is the proper way for 'you' to list 'others'. Chris Nandor and I are working it out. Stay tuned.
the f4 module is designed to allow for extending the relationship and foaf schemas. This is accomplished by referencing foaf:knows in elements. The goal here is to extend who you know with a description of that relationship.
This schema is modeled on the work done by Chris Nandor in the Slashcode project.
An RDF Schema is located here.
This is how one could markup their Foaf document to use f4:
<foaf:Person> <foaf:name>Joe Smith</foaf:name> <f4:friend rdf:resource"http://example.com/foaf_of_a_friend.rdf" /> <f4:foe rdf:resource"http://example.com/foaf_of_a_foe.rdf" /> <!-- fan and freak are not for use in a person's own foaf --> <!-- they're reserved for use in a directory that asserts known relationships --> </foaf:Person>
This is how a directory service could markup Foaf documents using f4:
<!-- for example, a hosting service run on something like slashcode might create --> <!-- foaf files as directories. It would know who set whom as friends or foes --> <foaf:Person> <foaf:name>Joe Smith</foaf:name> <f4:friend rdf:resource"http://example.com/foaf_of_bob.rdf" /> <!-- Joe lists Bob as a friend. Bob has no listing for Joe. --> <!-- Thus Bob is listed as only a friend of Joe --> <f4:friend rdf:resource"http://example.com/foaf_of_ted.rdf" /> <f4:fan rdf:resource"http://example.com/foaf_of_ted.rdf" /> <!-- Joe lists Ted as a friend. Ted lists Joe as a friend as well --> <!-- Thus Ted is listed twice, once as a friend and then as a fan --> <f4:foe rdf:resource"http://example.com/foaf_of_carol.rdf" /> <!-- Joe is a foe of Carol. Carol has no listing for Joe --> <!-- Thus Carol is listed as only a foe of Joe. --> <f4:foe rdf:resource"http://example.com/foaf_of_carol.rdf" /> <f4:freak rdf:resource"http://example.com/foaf_of_carol.rdf" /> <!-- Joe is a foe of Alice. Alice likewise lists Joe --> <!-- Thus Alice has a freak listing in Joe's foaf --> <f4:freak rdf:resource"http://example.com/foaf_of_dean.rdf" /> <!-- Joe has no listing for Dean. Dean lists Joe as a foe --> <!-- Thus Dean is listed here as a freak --> <f4:fan rdf:resource"http://example.com/foaf_of_frank.rdf" /> <!-- Joe has no listing for Frank. Frank lists Joe as a friend --> <!-- Thus Frank is listed here as a fan --> <!-- A point to consider, we're in the context of what --> <!-- the *directory* sees as Joe's relationships to the --> <!-- other foaf'd users. In Joe's own foaf there would --> <!-- be only friend or foe records, no fan or freaks. --> <!-- Bidirectional trusts must be detected, they're not --> <!-- automagically discovered and shown as a compound element. -> </foaf:Person>