[sc34wg3] Fwd: Re: CTM: Specifying datatypes

Lars Heuer heuer at semagia.com
Mon Mar 30 13:31:51 EDT 2009


First attempt to send the msg seems to have failed.


This is a forwarded message

From: Lars Heuer <heuer at semagia.com>
To: Discussion of ISO/IEC 13250 Topic Maps <sc34wg3 at isotopicmaps.org>
Date: Monday, March 30, 2009 6:54:02 PM
Subject: [sc34wg3] CTM: Specifying datatypes

===8<==============Original message text===============

Hi Lars,

>> Yes, I think we should allow something like
>>
>>     def mapping($t, $q)
>>         $t
>>         mapping: $q^^sql:query.
>>     end


> What happens if I then use the template as follows?

>    mapping(foo, "select ..."^^xsd:string).
>    mapping(foo, "select ..."^^bar:sql-query).
>    mapping(foo, 1).

:)

Well, after I've written the enthusiastic "Yes, we should", I wondered
if this is a good idea. The problem is, that the TMDM provides only
limited support for literal values != xsd:anyURI and xsd:string. If
someone uses

    mapping(foo, "1.0000"^^xsd:decimal)

or

    mapping(foo, 1.0000)

the result should be (according to TMDM which forbids normalization of
literals):

   foo
   mapping: "1.0000"^^sql:query.


but a more sophisticated Topic Maps engine may produce:

   foo
   mapping: "1.0"^^sql:query.

since the value of "1.0000" can be translated to "1.0" (canonical form
of the xsd:decimal value).

So, we need a policy how to translate a value from one datatype to
another. The canonical representation would be an option but since it
is not mentioned in the TMDM, I wonder if this policy is doable.

Requiring that the string which was provided by the user is kept,
would be wrong imo.

I tend to join Graham's fan club and leave CTM as it is (regarding
this issue) just to avoid the ugliness of translating literals from
one datatype to another.

Best regards,
Lars
-- 
Semagia 
<http://www.semagia.com>

===8<===========End of original message text===========



More information about the sc34wg3 mailing list