- From: Seaborne, Andy <andy.seaborne@hp.com>
- Date: Mon, 11 Oct 2004 11:44:46 +0100
- To: "Steve Harris" <S.W.Harris@ecs.soton.ac.uk>, "DAWG public list" <public-rdf-dawg@w3.org>
Steve, -------- Original Message -------- > From: Steve Harris <> > Date: 11 October 2004 10:03 > > On Mon, Oct 11, 2004 at 09:44:50AM +0100, Andy Seaborne wrote: > > Suppose this is a library with its own accession system and the query > > is doing the simple thing of accession number to title and author > > > > SELECT ?title ?author > > WHERE (?x lib:accession ?n) > > (?n lib:number "123.456.789") > > { (?x dc10:title ?title) OR (?x dc11:title ?title) } > > { (?x dc10:creator ?author) OR (?x dc11:creator ?author) } > > Surely you would expand this as: > > SELECT ?title ?author > WHERE (?x lib:accession ?n) > (?n lib:number "123.456.789") > (?x ?title ?title) > (?x ?creator ?author) > AND ?title == dc10:title || ?title == dc11:title > ?creator == dc10:creator || ?creator == dc11:creator > > The point I was making is that union queries offer an additional way The message was titled "Another alternative to OR" so I assumed you were proposing it be the only way, not an additional way. My bad. > of > expressing disjunctive expressions without going into territory that is > unexplored by SQL engines and optimisers. I don't see how we resolve this. The SQL engines have subqueries (nested queries)including UNION in subqueries, so I don't understand the assertion that this is unexplored. Kowari does such things for RDF. > > I dont buy the argument that its better to let application writers > express > the queries in whatever way takes thier fancy (ie. too much rope) and > then > optimise it later. I can see a future where I spend a lot of my time > explaining to users how to rewrite thier queries to make them perform > better. > > - Steve I can foresee having to explain the "AND ... == ... || ... == ..." form as much as any other form if it is not what the user was trying to get at. Our common use case for a restricted form of disjunction has been where the user wishes to write "dc10:title or dc11:title" Expressing as constraints is one way but not the only one. There are others and a clever optimiser may do different things based on knowledge of the data. ((The use of the Xpath/Xquery F&O equality operator is not necessrily the same as putting the term in the query unless RDF engines are *required* to implement datatyping rules.)) Andy
Received on Monday, 11 October 2004 10:45:20 UTC