- From: Steve Harris <steve.harris@garlik.com>
- Date: Sat, 26 Mar 2011 22:47:53 +0000
- To: nathan@webr3.org
- Cc: Sandro Hawke <sandro@w3.org>, semantic-web@w3.org
On 2011-03-26, at 16:06, Nathan wrote: > Sandro Hawke wrote: >> Skolemization. > > Sorry, but can somebody clarify why we, or RDF, needs Skolemization? Is this to cover a data management problem particular to a certain way of storing RDF data? To make it possible to deal with bNodes when you can't pull the entire graph into memory. Suppose you get a subgraph (via a Linked Data server / API / SPARQL DESCRIBE or similar) which looks like: <alice> foaf:name "Alice Smith" ; foaf:mbox <mailto:alice@smith.example> ; foaf:knows _:b12, _:b13, _:b14 . You like to know more about _:b12 etc., but there's no way to ask that question - you can't pass an unskolemised bNode into an API, because it's just an existential variable. If, OTOH, you requested http://foaf.example/id/alice, and got: <alice> foaf:name "Alice Smith" ; foaf:mbox <mailto:alice@smith.example> ; foaf:knows <b12>, <b13>, <b14> . You could then request http://foaf.example/id/b12, and legitimately expect something back. With a dedicated URI scheme, e.g. tag:something or bnode:, then you need some convention about how to request more data (except in SPARQL-based APIs, where it's implicit), but it has the advantage that the consumer can tell that it was a bNode before skolemisation. - 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
Received on Saturday, 26 March 2011 22:48:29 UTC