- From: Dave Reynolds <der@hplb.hpl.hp.com>
- Date: Tue, 28 Aug 2007 15:54:21 +0100
- To: Sandro Hawke <sandro@w3.org>
- CC: public-rif-wg@w3.org
Sandro Hawke wrote: > 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, This seems to mean to you have to extend the RIF abstract (and thus concrete) syntax to add in a new datatype. Whereas in RDF and OWL no language change was needed to support a greater range of XSD types than the minimum. This strikes me as a desirable and successful feature which it would preferable if RIF could emulate. > 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. The argument is a typed literal which comprises a lexical form (the string) and a datatype URI, which together denote a value determined by the lex->value mapping associated with the datatype. I assume that predicates normally operate on the values and thus "p('1'^^xsd:long)" and "p('0x01'^^xsd:integer)" denote the same value. However, we did propose builtins (based on the SPARQL) set which would allow you to write rules which can explicitly access the lexical form (str) and datatypes URI (datatype). I guess these builtins might need special treatment. Dave -- Hewlett-Packard Limited Registered Office: Cain Road, Bracknell, Berks RG12 1HN Registered No: 690597 England
Received on Tuesday, 28 August 2007 14:54:43 UTC