- From: Seaborne, Andy <andy.seaborne@hp.com>
- Date: Tue, 20 Jul 2004 11:04:42 +0100
- To: Rob Shearer <Rob.Shearer@networkinference.com>, public-rdf-dawg@w3.org
Rob,
Could you compare this with the functional accessor style, for example,
Jonathan Robie's presentation at the last W3C technical plenary which
describes a function library approach?
http://www.w3.org/2004/Talks/tp-robie/Overview-1.html
and its conclusions:
"""
+ DAWG may still want a language rather than a function library
+ Anyone can write a function library as needed
"""
> Now that the group has at least given a line in the sand by starting
> with BRQL, I'm hoping to go through that spec and map each of the
> constructs in that language back to fragments of XQuery, since it seems
> likely that BRQL is subsumed by an XQuery extended with only a few
> external functions.
That would be useful - I look forward to reading that.
Andy
-------- Original Message --------
> From: Rob Shearer <>
> Date: 20 July 2004 01:46
>
> While I completely agree that a mature strawman spec would help out a
> lot, my contention from the start has been that XQuery is a valid
> strawman, and that a few simple extensions for RDF can be defined which
> meet all the requirements we need.
>
> The simplest addition is to just add an external function
> (http://www.w3.org/TR/xquery/#id-function-calls) which tests for the
> existence of an RDF triple. Within Network Inference this is called
> this 'related', but Simon suggested the name "asserted". A perfectly
> valid query asking whether Rob worked for Network Inference would be:
>
> asserted(http://foo/Rob, http://foo#worksFor,
> http://foo#NetworkInference)
>
> which would return an xs:boolean. The larger goal of using XQuery is
> that you could then embed this query within a larger XQuery
> application:
>
> for $member in doc(http://foo/people.xml)/Person
> where asserted($member/URI, http://foo#worksFor,
> http://foo#NetworkInference)
> return $member/name
>
> which is meant to iterate across all "Person" elements in some XML
> document and figure out whether they work for NI or not based on some
> RDF (which is assumed to be implicit in the query's context). You might
> even be able to encode the whole query within an XPath expression and
> avoid the 'for' construct; the point is that you can build very complex
> queries based on the features provided by the full XQuery language.
>
> The real value comes if you also provide a function, perhaps called
> "nodes", which returns every URI used as a subject or object anywhere
> in the RDF. Now you can use XQuery FLWOR expressions to get SQL-like
> functionality:
>
> <membersAndSpouses>{
> for $member in nodes()
> for $spouse in nodes()
> where asserted($member, http://foo#memberOf, http://foo#DAWG)
> and asserted($member, http://foo#marriedTo, $spouse)
> return <member>{$member}</member><spouse>{$spouse}</spouse>
> }</membersAndSpice>
>
> Which generates some spiffy XML based on RDF. Of course, since RDF has
> an XML serialization, you can also generate RDF as output. (Or you
> could extend XQuery further to return a sequence of native RDF triples
> instead of XML nodes.)
>
> Now that the group has at least given a line in the sand by starting
> with BRQL, I'm hoping to go through that spec and map each of the
> constructs in that language back to fragments of XQuery, since it seems
> likely that BRQL is subsumed by an XQuery extended with only a few
> external functions.
Received on Tuesday, 20 July 2004 06:05:32 UTC