Re: Prototype SPARQL engine based on Datalog and relation of SPARQL to the Rules Layer

Axel Polleres wrote:

> * I'd like to suggest to the working group some straightforward 
> extensions of SPARQL such as adding the set difference operator MINUS, 
> and allowing nesting of ASK queries in FILTER expressions which come 
> basically for free in the approach.
>
> * Finally, I discuss an extension towards recursion by allowing 
> bNode-free-CONSTRUCT queries as part of the query dataset, which may 
> be viewed as a light-weight, recursive rule language on top of of RDF.

I think the ASK and CONSTRUCT ideas are very natural. 
I proposed them when I first took a look at SPARQL,
though my starting point was experience within SQL.
SQL experience shows it is useful to be able to write subqueries.
In SPARQL, two natural places to put subqueries are ASK inside of FILTER
and CONSTRUCT inside of FROM. 

However, I don't follow you when you call CONSTRUCT inside of FROM
"recursive".  I don't see a way, for example, to construct triples with 
a verb
"is_ancestor_of" from a graph containing the verb "is_parent_of",
unless you have a priori information about the maximum number of
generations in the graph.

Rather, I would position CONSTRUCT inside of FROM as the ability
to create what SQL folks call an in-line view.  One benefit of in-line views
would be that one developer could design an in-line view that
other developers (or self, later in time) would simply cut-and-paste into
their work.  This spares the need to re-invent a wheel.

Anyway, at the time I proposed these ideas, they were acknowledged
as good but to be saved for an r2 version of SPARQL.

Fred

Received on Sunday, 3 December 2006 17:54:21 UTC