- From: Kendall Clark <kendall@monkeyfist.com>
- Date: Tue, 28 Sep 2004 09:51:50 -0400
- To: public-rdf-dawg@w3.org
Just before this WG started up, I spent a bit of time one afternoon sketching out an XML vocabulary for representing the variable binding results of RDF queries. I mentioned this vocabulary in Bristol and took an action item to make some of it public. I'm including in this message a DTD, a compact RELAX schema, and a bit of (probably full of errors) instance data. One thing I'd probably do different -- especially now that I'm working on a protocol document -- is, instead of allowing multiple binding-sets per instance, I'd put multiple sets of bindings into a multipart HTTP response message. (In that case, I'd drop the binding-set container element altogether.) (I make no claims about the consistence of these artifacts, since I haven't worked on them since sometime in January.) Anyway, I claim that this message discharges ACTION KendallC: put xml format up somewhere public, mail a pointer. Kendall Clark -- First, the DTD: <?xml version="1.0" encoding="UTF-8"?> <!-- ============================================================= --> <!-- rvb: Rdf Query Result Set Variable Bindings --> <!-- ============================================================= --> <!-- Rdf Query Variable Bindings --> <!ELEMENT rvb (binding-set*) > <!-- xmlns rvb's namespace --> <!ATTLIST rvb xmlns CDATA #REQUIRED > <!-- binding-set --> <!-- a container holding variable bindings --> <!ELEMENT binding-set (binding*) > <!-- binding --> <!-- a binding consists of one var and one value --> <!ELEMENT binding (var, value) > <!-- variable --> <!ELEMENT var (#PCDATA) > <!-- value --> <!-- the value part of a variable binding --> <!ELEMENT value (#PCDATA) > <!-- xml:lang --> <!ATTLIST value xml:lang CDATA #IMPLIED > <!-- datatype --> <!ATTLIST value datatype CDATA #IMPLIED > If you prefer RNC: # ============================================================= # rvb: Rdf Query Result Set Variable Bindings # ============================================================= # Rdf Query Variable Bindings rvb = element rvb { attlist.rvb, binding-set* } # xmlns rvb's namespace attlist.rvb &= empty # binding-set # a container holding variable bindings binding-set = element binding-set { attlist.binding-set, binding* } attlist.binding-set &= empty # binding # a binding consists of one var and # one value binding = element binding { attlist.binding, variable, value } attlist.binding &= empty # variable variable = element variable { attlist.variable, text } attlist.variable &= empty # value # the value part of a variable binding value = element value { attlist.value, text } # xml:lang attlist.value &= attribute xml:lang { text }? # datatype attlist.value &= attribute datatype { text }? Now, some instance data: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE rvb SYSTEM "file:/Users/k/Documents/rvb.dtd"> <!-- This query -- SELECT ?mbox WHERE (?x foaf:name "John Smith") (?x foaf:mbox ?mbox) USING foaf FOR <http://xmlns.com/foaf/0.1/> executed against this graph -- @prefix foaf: <http://xmlns.com/foaf/0.1/> . [] foaf:name "John Smith" ; foaf:mbox <mailto:jsmith@example.com> . foaf:mbox <mailto:J_smith@pobox.com> . would result in an RVB instance like the following... --> <rvb xmlns="http://www.w3.org/2001/sw/DataAccess/rvb/"> <binding-set> <binding> <var>?mbox</var> <value>mailto:jsmith@example.com</value> </binding> <binding> <var>?mbox</var> <value>mailto:j_smith@pobox.com</value> </binding> </binding-set> </rvb> <!-- This query -- SELECT ?mbox, ?friend WHERE (?x foaf:name "John Smith") (?x foaf:mbox ?mbox) (?x foaf:knows ?friend) USING foaf FOR <http://xmlns.com/foaf/0.1/> executed against this graph -- @prefix foaf: <http://xmlns.com/foaf/0.1/> . [] foaf:name "John Smith"^^xsd:string ; foaf:mbox <mailto:jsmith@example.com> ; foaf:mbox <mailto:J_smith@pobox.com> ; foaf:knows <mailto:danbri@w3.org> ; foaf:knows "Kendall Clark"^^xsd:string . would result in an RVB instance like the following... --> <rvb xmlns="http://www.w3.org/2001/sw/DataAccess/rvb/"> <binding-set> <binding> <var>?mbox</var> <value>mailto:jsmith@example.com</value> </binding> <binding> <var>?mbox</var> <value>mailto:j_smith@pobox.com</value> </binding> <binding> <var>?friend</var> <value>mailto:danbri@w3.org</value> </binding> <binding> <var>?friend</var> <value datatype="xsd:string">Kendall Clark</value> </binding> </binding-set> </rvb>
Received on Tuesday, 28 September 2004 13:54:19 UTC