Details
-
Bug
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
1.1
-
None
-
Any
Description
Summary
The foaf:Organization node is misplaced inside the foaf:Person node. It is not compliant with the FoaF or Doap specs.
The Problem
This is an instance of the issue described here: http://lists.foaf-project.org/pipermail/foaf-dev/2009-January/009452.html
foaf:Organization like foaf:Group is a foaf:Agent (see http://xmlns.com/foaf/spec/#term_Agent), so the issue is the same.
The recommended syntax from the DoaP project examples is to use the foaf:member property between the foaf:Organization node and the foaf:Person node.
Unfortunately, per the FoaF spec, the relation only goes in that direction (Organization->member->Person) with no convenient inverse property.
The Fix
The best fix I can currently find is to use blank nodes and a separate Organization element that is not nested in the person element. Unfortunately, because the DoaP plugin isn't using native RDF tools internally, this will require a little more bookkeeping.
<rdf:RDF>
<doap:Project>
<maintainer rdf:nodeID="jdoe"/>
<founder rdf:nodeID="jdoe"/>
</doap:Project>
<Person nodeID="jdoe">
<name>John Doe</name>
<mbox rdf:resource="mailto:jdoe@example.org" />
</Person>
<doap:Organization>
<doap:homepage rdf:resource="http://www.example.org" />
<doap:member rdf:nodeID="jdoe" />
</doap:Organization>
</rdf:RDF>
Additional Info
Info about rdf:nodeID is available at: http://www.w3.org/TR/rdf-syntax-grammar/#section-Syntax-blank-nodes