RE: Datatypes: J

> 
> Graph
> .....
> 
>   _:a -------->--------  (10)
> 
> 
> Note: the node on the right is labelled with the integer 10, not the
> string "10".

But how do you get a "real" integer value in the graph if RDF
does not have native data types? What is the canonical representation
of an integer 'ten' in an RDF graph?

The RDF graph is tied to literals (lexical forms) because the
mapping from lexical to value space will be executed by each
individual application utilizing RDF encoded knowledge. 

> Hence using a different but compatible XML Schema type that maps the
> string "10" to the same value, e.g. xsd:positiveInteger, results in
> an identical graph.
> 
> N-Triples**
> ...........
> 
>  _:a <http://example.org/shoeSize> {xsd:decimal,"10.0"} .
> 
> In the modified N-Triples we need to give a type that 
> converts the lexical
> form in the file into the value in the graph. 

It is enough that we simply are able to define the pairing.
We don't have to execute the mapping into an actual value
in the graph.

> Since N-Triple 
> is canonical
> we use the primitive type from which the derived type inherits, and we
> use the canonical form of the lexicalization.
> 
> 
> 2: Implicit/Explicit use of XML Schema for whole document
> .........................................................
> 
> Haven't got this to work.
> 
> 
> 3: Explicit use of xsi:type for complex value
> .............................................
> e.g. complex numbers
> 
> ...
> 
> 
> This has corresponding graph
> 
> 
>       showSize     real
>   _:a --->---- [] --->----- (10)
>                 |
>                 | imaginary
>                 ----->----- (3)
> 
> where the labels on the right are real numbers not strings.

If we use rdf:type rather than xsi:type, and leave the
lexical forms in the graph, then your treatment of complex
types with simple type components works for me -- and the 
interpretation (mapping) of the lexical forms is clear from 
either the XML Schema or the same typing information provided 
in an RDF Schema via rdfs:range.

I.e.


       showSize     real
   _:a --->---- [] --->----- "10"
                 |
                 | imaginary
                 ----->----- "3"

where

   showSize rdfs:range cplx:complexNumber .
   real rdfs:range xsd:integer .
   imaginary rdfs:range xsd:integer .

which is basically the P idiom, and defines the
simple data type pairings

   ("10",xsd:integer)
   ("3",xsd:integer)

which unambigously denote the values 'ten' and 'three'
without requiring that RDF have native, internal, canonical
representations for all data types.


Cheers,

Patrick

Received on Friday, 7 December 2001 17:51:29 UTC