W3C home > Mailing lists > Public > public-rdf-dawg@w3.org > April to June 2004

Re: Supplemental XQuery reading list

From: Eric Prud'hommeaux <eric@w3.org>
Date: Fri, 16 Apr 2004 14:40:16 -0400
To: Howard Katz <howardk@fatdog.com>
Cc: RDF Data Access Working Group <public-rdf-dawg@w3.org>
Message-ID: <20040416184016.GB26528@w3.org>

On Fri, Apr 16, 2004 at 07:54:06AM -0700, Howard Katz wrote:
> 
> 
> > I can't speak to Andy's agenda, but one point that's been kicking
> > around in the XQuery/RDF Query arena for a while is that XQuery can be
> > used to express SQL queries so it must be able to express RDF
> > queries.
> 
> It can, if you're able to work out a mapping from the RDF data model into
> the XQuery data model, which is basically the XML Infoset + XML Schema
> support + support for multiple documents.
> 
> I'm finding myself quite interested in the inverse problem: would it be
> possible and useful to be able to map from the XQuery surface language into
> an underlying RDF graph-based data model, so that XQuery syntax can be used
> to interrogate an RDF data store more or less directly? In other words, can
> we swap out XQuery's underlying XML-based data model and slide in an
> RDF-based one in its place so that we don't have to do the mapping to XML?
> I'll be talking about this after Amsterdam.
> 
> > I've seen a couple approaches that I believe workable [1]
> > [2], but would like to see how people solve the problem for SQL.
> 
> I've given a few pointers in my response to Andy's email re SQL-to-XML
> mappings for XQuery.
> 
> > I suspect that in standardizing an RDF query language we are going
> > beyond where existing SQL mappings to XQuery have gone in that we want
> > *one* mapping to XQuery that operates on XQuery+whatever
> > implementations from different vendors. Does such a "standard" mapping
> > to SQL exist?
> 
> I'm not sure what you mean by the last, Eric. Can you explain a bit more?

Sure. One objection to using XQuery for querying RDF is that the data
models are different. In my view, this doesn't preclude its utility
but may force an awkward interface. One can invent conventions/
libraries to access the parts of the SQL or RDF model with queries
that parse syntactically as XQuery (though this may be like mixing a
martini with a spatula).

To prove the point, I was looking for a published or coded "standard"
that would enable some idiom of XQuery to access to any relational
database. Suppose I need to use up some asparagus and I use this
mythical "standard" XQuery mapping for relational databases
    LET $r := document("odbc://localhost/db")
    FOR $recipe in $r[table="recipies"],
        $supplies in $r[table="supplies"]
    WHERE $supplies/primaryKey=$recipe/ingredients
      and $supplies/name="asparagus"
    RETURN $recipe/name
to access a data base of two (poorly normalized) tables:
  recipies:
     name          ingredient  optional
    cold cereal    3
    cold cereal    7           1
steamed asparagus  14
steamed asparagus  33

  supplies:
primaryKey     name
3           dry cereal
7                 milk
14           asparagus
33               steam

That was just to frame what I meant by a convention or standard for
accessing relational databases. If we want to use that for DAWGQL,
we could construct queries like
    LET $t := document("odbc://localhost/db")
    FOR $whoArc in $t[table="triples"],
        $emailArc in $t[table="triples"]
    WHERE $whoArc/predicate="<http://xmlns.com/foaf/0.1/name>"
      and $whoArc/object="'Bob Smith'"
      and $emailArc/subject=$whoArc/subject
      and $emailArc/predicate="<http://xmlns.com/foaf/0.1/mbox>"
    RETURN $emailArc/object
to execute a typical graph query (John Smith's email addr) on a
table of RDF triples called triples.

Then the DAWG could define a the XQuery mapping of the DAWGQL in
terms of
  1 Use the Foo SQL-XQuery mapping spec.
  2 All triples are in a table called "triples" which has
    the fields "predicate", "subject", "object".
We probably wouldn't want to, but it would be worth looking at.

BTW: I refer to DAWGQL *because* it's such an ugly name that it
would never be used for anything but a placeholder.

> > [1] http://www.w3.org/2001/11/13-RDF-Query-Rules/#XQueryFA
> > [2] http://www.w3.org/2001/11/13-RDF-Query-Rules/#TreeHugger
> > --
> > -eric
> >
> > office: +81.466.49.1170 W3C, Keio Research Institute at SFC,
> >                         Shonan Fujisawa Campus, Keio University,
> >                         5322 Endo, Fujisawa, Kanagawa 252-8520
> >                         JAPAN
> >         +1.617.258.5741 NE43-344, MIT, Cambridge, MA 02144 USA
> > cell:   +1.857.222.5741 (does not work in Asia)
> >
> > (eric@w3.org)
> > Feel free to forward this message to any list for any purpose other than
> > email address distribution.
> >

-- 
-eric

office: +81.466.49.1170 W3C, Keio Research Institute at SFC,
                        Shonan Fujisawa Campus, Keio University,
                        5322 Endo, Fujisawa, Kanagawa 252-8520
                        JAPAN
        +1.617.258.5741 NE43-344, MIT, Cambridge, MA 02144 USA
cell:   +1.857.222.5741 (does not work in Asia)

(eric@w3.org)
Feel free to forward this message to any list for any purpose other than
email address distribution.
Received on Friday, 16 April 2004 14:40:16 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 16:15:19 GMT