On 2011-04-17, at 08:06, Pat Hayes wrote:
>>
>> I believe what Steve meant, by 'export', simply the SPARQL query return results.
>>
>> <a> <b> _:x .
>>
>> query:
>>
>> SELECT ?z WHERE { <a> <b> ?z }
>>
>> if the store decides to skolemize on return the blank node _:x, it is good if the skolemization is such the the store can recognize its own, so it can make sense of a subsequent
>>
>> INSERT { <WHATEVERCAMEBACKFOR?z> <p> <q> . }
>>
>> I guess, at least, that is what he meant:-)
>
> Ah, OK. That makes sense, thanks. I think this would be covered by the 'who owns the URI' rule I suggested, BTW; In this case, the SPARQL engine owns the URIs, so it has the responsibility of making sense of them in the future.
>
> FWIW, I would suggest that it would be bad design to send back skolemised results without first skolemising the actual data the results were derived from. But that is only a suggestion :-)
What actually happens is a little complex, typically the bNode is skolemised, but to a value space that's disjoint from both URIs and Literals, so it can be unambiguously identified as a bNode, but has been given an identifier.
I don't really know how that fits into the terminology.
It also potentially has a bearing on the SPARQL isBlank() function http://www.w3.org/TR/rdf-sparql-query/#func-isBlank as it's defined now, if the bNode has already been skolemised to a URI it should return false.
- Steve
--
Steve Harris, CTO, Garlik Limited
1-3 Halford Road, Richmond, TW10 6AW, UK
+44 20 8439 8203 http://www.garlik.com/
Registered in England and Wales 535 7233 VAT # 849 0517 11
Registered office: Thames House, Portsmouth Road, Esher, Surrey, KT10 9AD