- From: Sandro Hawke <sandro@w3.org>
- Date: Wed, 14 May 2008 09:27:23 -0400
- To: Gary Hallmark <gary.hallmark@oracle.com>
- Cc: public-rif-wg@w3.org
> I think using Rigid RDF makes a lot of sense. When someone asks, "how > in the world did the WG come up with that XML syntax?", I would like to > simply say "we started with the EBNF and mapped it to standard RDF/XML. > This makes the syntax machine-processable using a wide variety of > standard web and semantic web tools." > > This "positioning" sidesteps all the issues of striping, attributes vs. > child elements, etc. I think that is a good thing. Anyone else? Anything else I can do to help clarify this issue? It affects metadata and extensibility, at least, so I'd like to know how seriously we're pursuing this. -- Sandro > Sandro Hawke wrote: > > 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 Wednesday, 14 May 2008 13:27:57 UTC