- From: David Menendez <zednenem@psualum.com>
- Date: Thu, 8 May 2003 16:19:23 -0400
- To: www-rdf-interest@w3.org
Francesco Cannistra's message about typed RDF containers inspired me to type up some notes I had made a while ago about typing RDF collections (the rdf:List construct). My goal was to provide a way for schema authors to say things like "the value of this property must be a well-formed list containing members of class X". Other features include the ability to specify maximum and minimum sizes for these values and the ability to say whether these values should be treated as lists or sets. I've posted the notes at <http://www.eyrie.org/~zednenem/2003/rdfcollection/>. I'm sure there are some holes and mistakes, but I think it's a start towards something that could prove useful. As an example, if there were a FOAF property foaf:children, which indicated the set of foaf:Persons who are the children of another foaf:Person, we could indicate that foaf:children takes an unordered list of foaf:Persons like so: <rdf:Property rdf:resource="http://xmlns.com/foaf/0.1/children"> <rdfs:range> <c:SetClass> <c:allMembersFrom rdf:resource="http://xmlns.com/foaf/0.1/Person"/> </c:SetClass> </rdfs:range> </rdf:Propety> Or, in N3-Lite: foaf:children rdfs:range _:a . _:a rdf:type c:SetClass . _:a c:allMembersFrom foaf:Person . Here, the anonymous resource "a" is the class of collections which behave like sets and whose members have the type foaf:Person. Given some instance data, [1] _:x foaf:children ( _:y _:z ). [2] _:x foaf:children ( _:z _:y ). A processor which understood this vocabulary could use the above schema to determine that statements 1 and 2 are equivalent and that _:y and _:z have the type foaf:Person. -- Dave Menendez - zednenem@psualum.com - http://www.eyrie.org/~zednenem/
Received on Thursday, 8 May 2003 16:18:44 UTC