- From: Sandro Hawke <sandro@w3.org>
- Date: Mon, 27 Aug 2007 16:39:34 -0400
- To: public-rif-wg@w3.org
I just had another idea for how to solve the twin issues of
- xsi:type vs rdf:datatype
and - literals in lists
The idea is to make the types an explicit part of the grammar of the
dialect. So we get something like this:
================================================================
class Term
subclass Var
property name: xs:string
subclass Constant
subclass Literal
subclass Literal_string
property stringValue: xs:string
subclass Literal_string_with_language_tag
property stringValue: xs:string
property language: xs:string
subclass Literal_int
property intValue: xs:int
subclass Literal_decimal
property decimalValue: xs:decimal
subclass Literal_datetime
property datetimeValue: xs:datetime
================================================================
I like how this makes the ASN a more complete description of the
dialect. It's very XML-happy, I think -- a schema processor will get
the right types for everything.
Not using rdf:datatype makes things a bit harder for RDF folks, but I'm
not sure the semantics of rdf:datatype were right anyway. Honestly, I
have no idea if, in RIF, "p(1)" is supposed to be conveyed they same as
"p(0x01)" -- that is, is the argument supposed to be the integer one, or
is it supposed to be some string with an associated datatype. There's a
kind of an abstractness-knob in the design of RIF about how much RIF
describes the pure-syntax (including things like whitespace and whether
decimal or hex was used).
Anyway, doing this approach solves the parsetype=Collection problem,
because it keeps the datatyping in the domain of RIF, and you end up
with things like this:
<arg rdf:parseType="Collection">
<Literal_int><intValue>1</intValue></Literal_int>
</arg>
I think it's my current favorite approach.
-- Sandro
Received on Monday, 27 August 2007 20:42:06 UTC