use a QName as variable identifier

hi all,

while implementing the newer XML format to serialize query results  
proposed by Dave Beckett

	http://lists.w3.org/Archives/Public/public-rdf-dawg/2004JulSep/ 
0565.html

it came to my mind a simple use-case where the user wants to prefix  
each variable with a meaningful namespace

PREFIX dc:  <http://foo.com/foo/>
PREFIX foaf:  <http://xmlns.com/foaf/0.1/>
PREFIX my:  <http://foo.com/my/namespace/>
SELECT ?my:name ?my:title
FROM <file:foo6.rdf>
WHERE
    (?person rdf:type foaf:Person)
    (?person foaf:name ?my:name)
    (?person dc:title ?my:title)

where foo6.rdf is

<?xml version="1.0"?>
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:foaf="http://xmlns.com/foaf/0.1/" >

<foaf:Person foaf:name="Some Name" dc:title="Some Title" />

</rdf:RDF>

and use the PREFIX namespace into the XML serialization

<?xml version="1.0"?>
<results xmlns='http://www.w3.org/sw/2001/DataAccess/result1#'
  xmlns:my='http://foo.com/my/namespace/' >
    <result>
          <my:name>Some Name</my:name>
          <my:title>Some Title</my:title>
    </result>
</results>

which would allow a kind of "lightweight" construct to map a input  
namespace to an output one - CONSTRUCT clause would provide a more  
general solution to the mapping/rules problem.

The above query can be tested at  
http://demo2.asemantics.com/rdfstore/rdql/

In other words we could use QNAME in place of VAR terminal symbol...

Any bigger implication on SPARQL grammar I did not think of?

Alberto


-
Alberto Reggiori, Senior Partner, R&D @Semantics S.R.L.
alberto@asemantics.com  www.asemantics.com
Milan Office, milano@asemantics.com,   +39 0332 667092

Received on Monday, 1 November 2004 13:51:24 UTC