- From: Sandro Hawke <sandro@w3.org>
- Date: Mon, 12 May 2008 12:13:43 -0400
- To: public-rif-wg@w3.org
At F2F7 in September [1], we went through a list of XML Syntax issues [2] which resulted in the general shape of the current BLD XML syntax. In particular, we decided for that Working Draft to use a fully-striped XML exchange syntax, but it would NOT be RDF/XML. (Specifically, we were talking about using a constrained subset of RDF/XML which can be validated by XML schema processors. I've heard this called "rigid RDF" and have started using that term, myself.) So this language we now have is a sort of a compromise. It's more explicit/verbose than we might have (Jos and Hassan have been pushing for more brevity), but it's less explicit/verbose than rigid RDF. Personally, these days, I'm really okay with any of these three options. I see lots of trade-offs, and I don't have enough foresight to know what's going to be best. After my pitch for rigid RDF last year, when no one else seemed very interested, I let go of it. But now Christian tells me he's hearing some people pushing in that direction again, and asked me how close we were. So, here are the differences, I think, between the current BLD XML syntax and a reasonable rigid RDF syntax for BLD. 1. Add a "name" role inside "Var" (for full striping) Instead of: <Var>Buyer</Var> it would be: <Var><name>Buyer</name></Var> or perhaps: <Var name="Buyer"/> [ It seems silly, I know. If there were metadata about a variable occurance it would start to make more sense. ] 2. A new role inside "Const" (for full striping) Instead of: <Const type="&xsd;dateTime">2007-11-23</Const> it would be: <Const> <rdf:value rdf:datatype="&xsd:dateTime">2007-11-23</rdf:value> </Const> [ It doesn't have to be "rdf:value", we could use "rif:value". ] 3. The rif:iri and rif:text datatypes handled as special cases, since RDF has special constructs for these: Instead of: <Const type="&rif;iri">&cpt;purchase</Const> it would be: <Const><rdf:value rdf:resource="&cpt;purchase" /></Const> And, instead of: <Const type="&rif;text">chat@fr</Const> it would be: <Const><rdf:value xml:lang="fr">chat</rdf:value><Const> Again, this is just in the XML serialization; it doesn't change the presentation syntax or the semantics. 4. In Atom and Expr, where the <arg> role is repeated (with order being significant), we would instead have a single <arg> role and its value would be an rdf:List of the arguments. Instead of: <formula> <Atom> <op><Const ... /></op> <arg><Var> ... </Var></arg> <arg><Var> ... </Var></arg> <arg><Const .../></arg> </Atom> </formula> it would be: <formula> <Atom> <op><Const ... /></op> <args rdf:parseType="Collection"> <Var> ... </Var> <Var> ... </Var> <Const .../> </args> </Atom> </formula> I think that's it, but I haven't done a line by line examination of the syntax, so I may have missed something. I should say, also, I think we'd probably want to use a rigid RDF where the child elements are required to be in lexicographic order, so it would really be <Atom><args ...><op ...></Atom>, which is kind of annoying, but allows one to use a general-purpose serializer and still have schema validation. Some advantages of using this kind of rigid RDF for RIF: * it allows some synergy between RDF tools and RIF: even easier de-serializing of RIF; storing RIF in triplestores; examining RIF with RDF browsers, etc. * it may help settle the Metadata question * it makes the syntax straightforward and clear to people who know RDF * it specifies how RIF documents map to objects and/or RIF frames (for applications using syntax reflection) * it allows fallback processing rules to be writtin in RIF instead of XSLT (probably Core plus some "rewrite rules" extension) Some disadvantages: * it makes the XML syntax even more verbose * the elements from the RDF namespace can be confusing, even off-putting (especially to people who are allergic to RDF) * it prevents us from making arbitrary (non-striped) XML constructs that might be useful and elegant. * it's a course change, late in the day So, I think that's the picture, more or less. -- Sandro [1] http://www.w3.org/2005/rules/wg/wiki/F2F7 [2] http://www.w3.org/2005/rules/wg/wiki/Arch/XML_Syntax
Received on Monday, 12 May 2008 16:16:05 UTC