Re: aboutEach and reification

Jeremy Carroll wrote:
> 
> I, foolishly, am looking at writing another RDF parser. (ARP?).
> 
> In my design stages I stumbled across this little teaser:
> 
> what statements does the following correspond:
> 
> <rdf:RDF xmlns:rdf="..." xmlns:a="...">
>   <rdf:Description aboutEach="#self" bagId="self">
>     <a:prop>value</a:prop>
>   </rdf:Description>
> </rdf:RDF>

this should generate the following triples:

(genid1, a:prop, 'value') /* the statement
(#self, rdf:type, rdf:Bag) /* the bag of reifications
(#self, rdf:_1, genid2) /* the element of the bag
(genid2, rdf:type, rdf:Statement) /* the reification
(genid2, subject ...
(genid2, object ...
(genid2, predicate ...
(genid2, a:prop, 'value') /* aboutEach result


i don't see a problem here, although my own parser
crashes. great example!
 
> or we can make it a little richer with:
> 
> <rdf:RDF xmlns:rdf="..." xmlns:a="...">
>   <rdf:Description aboutEach="#self" bagId="self">
>     <a:prop>value</a:prop>
>   </rdf:Description>
>   <rdf:Description about="#self">
>     <rdf:_1 rdf:resource="http://bertrand-russell-lives.org/">
>   </rdf:Description>
> </rdf:RDF>
> 

I don't think this is a valid RDF model. the first
element of the bag is determined by 

<rdf:Description aboutEach="#self" bagId="self">
     <a:prop>value</a:prop>
</rdf:Description>

the first element is the reification. therefore you can't use
a second rdf:_1. lets use rdf:_2 instead:

(genid1, a:prop, 'value') /* the statement
(#self, rdf:type, rdf:Bag) /* the bag of reifications
(#self, rdf:_1, genid2) /* the first element of the bag
(genid2, rdf:type, rdf:Statement) /* the reification
(genid2, subject ...
(genid2, object ...
(genid2, predicate ...
(#self, rdf:_2, http://bertrand-rus...) /* the second  element of the
bag
(genid2, a:prop, 'value') /* aboutEach result
(http://bertrand-rus.., a:prop, 'value') /* aboutEach result

am i missing something?

regards,
stefan

Received on Wednesday, 27 June 2001 05:15:17 UTC