From the primer, demonstrating the use of RDF Collections:
<rdf:Description rdf:about="
http://example.org/courses/6.001">
<s:students rdf:parseType="Collection">
<rdf:Description rdf:about="
http://example.org/students/Amy"/>
<rdf:Description rdf:about="
http://example.org/students/Mohamed"/>
<rdf:Description rdf:about="
http://example.org/students/Johann"/>
</s:students>
</rdf:Description>
Why would I want to use this over:
<rdf:Description rdf:about="
http://example.org/courses/6.001">
<s:student rdf:resource="
http://example.org/students/Amy"/>
<s:student rdf:resource="
http://example.org/students/Mohamed"/>
<s:student rdf:resource="
http://example.org/students/Johann"/>
</rdf:Description>
I do understand the different graph that gets created in the two different cases but this hasn't helped me.
In the second case, if I want the list of students in the class I can run a simple SPARQL query. If I want to restrict other graphs from making statements about the list of students, again I can use SPARQL constructs (GRAPH keyword).
Is there a clear semantic difference between the two representations? Under what circumstances would I want to use one and not the other. How about RDF Containers?
Thanks,
Chris