Re: Datatypes, syntax and equality

Sandy Nicholson wrote:

> In the first example, how can you possibly enumerate all valid equality
> `functions'? As the RDF property doesn't seem to come into it, it seems
> that all you're really doing is comparing strings. (Perhaps that's the
> point - this is your untyped case.) But consider the following variant
> example:
>     <John> <AgeInYears> "20"
>     <Mary> <AgeInMonths> "20"
> Comparing John's AgeInYears and Mary's AgeInMonths using equal(string)
> or equal(decimal) is fine. So you might conclude, as above, that the two
> values are equal. However, you forgot to consider the equality predicate
> equal(months). Using this predicate, the two are certainly not equal. Of
> course, I wasn't able to obtain all the information that I needed from
> the string "20" - but then again the elements of RDF triples don't occur
> in isolation.

That is the point. Unless there is a _syntactic distinction_ between a
string that is interpreted _only_ as years vs. _only_ as months, then "20"
might be either years or months.

> You go on to discuss typed literals and write that:
> > When using typed literals the equality function is predicated on the
> > of the arguments
> >
> > :John :age xsd:decimal"2" .
> Why extend the relatively simple idea of triples to quadruples, as you
> appear to be doing here (necessitating a more-complex RDF model theory)
> when instead you could write the following two triples?
>     <John> <Age> :_a
>     :_a <xsdr:decimal> "2"

Quads? I don't follow. xsd:decimal"2" is intended to be a token -- read:
'the value obtained by interpreting the lexical string "2" as xsd:decimal'

xsd:binary"10" = xsd:decimal"2"

The reason not to do the b-node thing is to avoid the problem Brian McBride
points out in:


Received on Monday, 22 July 2002 19:20:27 UTC