W3C home > Mailing lists > Public > w3c-rdfcore-wg@w3.org > March 2002

Re: Trying to make sense of range and drange

From: Pat Hayes <phayes@ai.uwf.edu>
Date: Sat, 16 Mar 2002 19:59:44 -0800
Message-Id: <p0510141bb8b9ae691b56@[65.212.118.252]>
To: Graham Klyne <Graham.Klyne@MIMEsweeper.com>
Cc: w3c-rdfcore-wg@w3.org
>This is a long-ish message.  The main part explores this key 
>question:  according to [1], what can we say about the relational 
>extension of ex:age (IEXT(I(ex:age)) given:
>
>    ex:age rdfs:drange datatype:decimal .
>
>[1] http://www.coginst.uwf.edu/users/phayes/simpledatatype23-02-2002.html
>
>
>At 09:56 AM 3/14/02 +0200, Patrick Stickler wrote:
>>On 2002-03-13 18:56, "ext Graham Klyne" <Graham.Klyne@MIMEsweeper.com>
>>wrote:
>>>
>>>  Yes, I missed your point.
>>>
>>>  Let me see if I get it now.  Given:
>>>
>>>     Bob age "35" .
>>>     age rdfs:range datatype:decimal .
>>>
>>>  you say there is a range type inconsistency?
>>>
>>>  I agree that there is an inconsistency here.  I don't agree that it is a
>>>  problem.  Effectively, by saying that:
>>>
>>>     age rdfs:range datatype:decimal .
>>>
>>>  (and assuming that the value space of datatype:decimal does not include
>>>  literal values) then I think you are saying that literals should not be
>>>  used with this property.
>>
>>Fair enough, if that is what folks want to say.
>>
>>My concern was that, without any rdfs:range constraint at all,
>>one cannot utilize a generic RDFS validator to test explicitly
>>typed datatype values, but if rdfs:range is used for that
>>purpose, it excludes use of the inline idiom which always will
>>conflict with any rdfs:range statement with a datatype object.
>>
>>And thus, this means that in a practical setting, where either
>>idiom may and should be permitted to occur, rdfs:range is useless
>>for datatyped properties since it eliminates cohabitability between
>>the global and local idioms.
>>
>>Maybe that's just the way it goes. But it seems like we're losing
>>alot of useful functionality from generic RDFS validation.
>
>Ah... I was going to say that I would expect a generic RDFS 
>validator to also know enough about datatypes, but I think I see 
>your point now.  Condidering:
>
>    ex:age rdfs:drange datatype:decimal .
>    ex:Jenny ex:age "10" .
>
>    ex:Jenny ex:age _:x .
>    _:x datatype:decimal "10" .
>
>the second part is consistent with:
>
>    ex:age rdfs:range datatype:decimal .
>
>but the former is not.   Hmmm.

Right. The point is that rdfs:drange (or whatever we call it) really 
says nothing about the actual range: it ONLY invokes datatype 
checking. Now, one might reasonably expect that the actual range was 
'in line' with the datatype checking, but that could be

>...
>
>Reviewing the model theory for datatypes [1] I find that I cannot 
>tell what the relational extension for ex:age is intended to be.  I 
>think it only works if:

Right, that is not constrained by an rdfs:drange assertion. So if 
that is what you are starting from, then you shouldnt be able to tell 
what the relational extension is.

>    ex:age rdfs:drange datatype:decimal .
>means that:
>    <I(ex:Jenny),"10"> in IEXT(I(ex:age))

No, it means that IF that is in the IEXT(I(ex:age)), THEN "10" ought 
to be in the lexical space of datatype:decimal.  But that's not an 
RDFS entailment (since its conclusion isn't stateable in RDF :-), its 
only detectable by an external datatype engine.

>(where "10" is the sequence of two characters) and
>
>    ex:age rdfs:range datatype:decimal .
>means that:
>    <I(ex:Jenny),10> in IEXT(I(ex:age))
>
>(where 10 is the integer value)
>
>This seems to be saying that rdfs:drange allows datatype 
>lexical-space members in the relational extension of a property, and 
>rdfs:range allows the corresponding datatype value-space members in 
>the relational extension.  I wonder if that is what Pat intended?

Well, yes and no. What Pat intended was that the rdfs:drange allows 
both lexical and value space members in the range (and indeed 
anything else), but it insists that IF they are lexical then they 
have to be in the lexical space of the datatype and IF they are 
values then they have to be the appropriate value associated with the 
literal by the datatype.

>
>...
>
>[1] http://www.coginst.uwf.edu/users/phayes/simpledatatype23-02-2002.html
>
>I'm thinking there may be a problem with the datatype proposal [1].  Consider:
>
>    ex:age rdfs:drange datatype:decimal .
>
>According to section 5 of [1], taking account that literals denote 
>themselves, this means that
>
>    <x,y> in IEXT(I(ex:age)) => z=L2V(I(datatype:decimal))(y) for some z

No, it doesn't constrain the relational extension. What it does say is that

( <x,y> in IEXT(I(ex:age))  AND  y a literal)  => 
z=L2V(I(datatype:decimal))(y) for some z

ie IF its a literal then its in the lexical space of 
datatype:decimal. But if its not, then nothing particular follows.

>[i.e. y in the lexical space of datatype:decimal]
>
>But later in section 5 we see that
>
>[[[
>    ex:age rdfs:drange xsd:number
>    Jimmy ex:age _:x .
>    _:x rdfs:dlex "35" .
>]]]
>
>means that Jimmy's age is the number 35, which requires that
>
>    <I(Jimmy),35> in IEXT(I(ex:age))
>
>but the number 35 is not in the lexical space of datatype:decimal, 
>so we appear to have a contradiction.

No contradiction , just another constraint.

Pat

-- 
---------------------------------------------------------------------
IHMC					(850)434 8903   home
40 South Alcaniz St.			(850)202 4416   office
Pensacola,  FL 32501			(850)202 4440   fax
phayes@ai.uwf.edu 
http://www.coginst.uwf.edu/~phayes
Received on Monday, 18 March 2002 15:05:25 EST

This archive was generated by hypermail pre-2.1.9 : Wednesday, 3 September 2003 09:46:19 EDT