[foaf-dev] [foaf-protocols] Person <-> Group (+sub/related groups) relations...

Henry Story henry.story at bblfish.net
Sun Sep 25 11:06:41 CEST 2011

Btw this is more of a question for the foaf-dev at lists.foaf-project.org as they deal with questions on ontology, syntax and the declarative aspects of just writing things down. foaf-protocols is more about the interaction between sites using foaf. 

On 25 Sep 2011, at 10:23, elf Pavlik wrote:

> Hello,
> I work more and more with sites for online communities, recently I look how to take advantage of FOAF for representing structure of membership in groups and subgroups plus relation between groups/sub.
> Looking at it from perspective of seeing various profiles, in a group profile it seams easy to include list of participants with foaf:member property of a group. But other scenarios I see getting more complicated:
> On profile page of a person I would like to include list of groups this person participates in. In the mailing list archives I came across two mails talking on this topic (guessing could find more digging deeper...)
> http://markmail.org/message/5pz7wxhgdbgtzei7?q=foaf+group+person&page=2#query:foaf%20group%20person+page:2+mid:jmdmi7ql3ptcmggk+state:results
> where Dan Brickley proposes solution like:
> <foaf:Person rdf:about="#me">
>  <foaf:name>John Doe</foaf:name>
> </foaf:Person>
> <foaf:Group rdf:about="#group1">
>  <member rdf:resource="#me">
> </foaf:Person> (typo:  s/Person/Group)
> plus RDFa XHTML exmaples
> IMHO stating membership in lets say 100 groups may look quite awkward using this pattern, but machine shouldn't care much ;)
> in second mail: http://markmail.org/message/jjm5x4y4tbdc5eom?q=foaf+group+person&page=3#query:foaf%20group%20person+page:3+mid:jjm5x4y4tbdc5eom+state:results
> Henry Story suggests:
> "Why not just use foaf:member ? In N3 and rdfa writing the inverse relation is
> easy. In N3 it is
> person is foaf:member of group .
> in rdf you use the rev= attribute. Better use these syntactic tricks that keep
> inventing inverse relations for everything."

Let write in N3

$ cwm --n3 --ntriples
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
<#me> is foaf:member of <#g1>, <#g2>, <#g3> .

    <file:///Users/hjs/Library/Application Support/IdeaIC11/#g1>     <http://xmlns.com/foaf/0.1/member> <file:///Users/hjs/Library/Application Support/IdeaIC11/#me> .
    <file:///Users/hjs/Library/Application Support/IdeaIC11/#g2>     <http://xmlns.com/foaf/0.1/member> <file:///Users/hjs/Library/Application Support/IdeaIC11/#me> .
    <file:///Users/hjs/Library/Application Support/IdeaIC11/#g3>     <http://xmlns.com/foaf/0.1/member> <file:///Users/hjs/Library/Application Support/IdeaIC11/#me> .


> I couldn't find wiki page clarifying this issue, if it doesn't exist I would like to help with creating one...

See @rev on 

> Going further how could I state relations between groups? Very often in group profile it has related groups and subgroups as for example this one (sidebar): https://n-1.cc/pg/groups/7826/lorea/

that would certainly be the question to put to foaf-dev. 

> Once more I would like to later on help with updating wiki with clarifications I hope for posting this question.
> Thanks a bunch!
> =)
> ~ elf Pavlik ~
> https://wwelves.org/perpetual-tripper
> https://hackers4peace.net
> _______________________________________________
> foaf-protocols mailing list
> foaf-protocols at lists.foaf-project.org
> http://lists.foaf-project.org/mailman/listinfo/foaf-protocols

Social Web Architect

More information about the foaf-dev mailing list