- From: Arjohn Kampman <arjohn.kampman@aidministrator.nl>
- Date: Wed, 23 Apr 2003 11:11:34 +0200
- To: "Seaborne, Andy" <Andy_Seaborne@hplb.hpl.hp.com>
- CC: "'www-rdf-rules@w3.org'" <www-rdf-rules@w3.org>
Seaborne, Andy wrote: > Arjohn, > > There wasn't a strong reason for doing this except that in RDF the absence > of something isn't the same as undefined. Having an undefined value means > that a result set can explicitly say that the the query did not bind the > variable x. As RDF allows merging of graphs, it is possible (although just > a little strange!) to put different parts of the result in different RDF > models, giving rows URIs and doing a graph merge. > > Having rs:undef does complicate things though because, like nulls in > programming langugaes or nil lists, the value is in the space of legal > values and has a meaning outside that space. Doing a query on a result set, > or on the vocabulary, could legitimately bind a variable to rs:undef. > > I preferred the explicit recording of the fact that the variable was > undefined (a more complex structure could differentiate the value-as-unbound > case but it didn't seem worth it). In conjunctive graph pattern query > languages, unbound only occurs if the query asks for a variable (e.g. in the > SELECT) and does not reference it in the graph pattern. Thanks for the explanation. I had the same line of thought so I was wondering about the reasons for choosing one over the other. Arjohn -- arjohn.kampman@aidministrator.nl aidministrator nederland b.v. - http://www.aidministrator.nl/ prinses julianaplein 14-b, 3817 cs amersfoort, the netherlands tel. +31-(0)33-4659987 fax. +31-(0)33-4659987
Received on Wednesday, 23 April 2003 06:43:01 UTC