W3C home > Mailing lists > Public > public-rdf-wg@w3.org > September 2013

Re: Possible tweak to datatype semantics

From: Peter Patel-Schneider <pfpschneider@gmail.com>
Date: Fri, 13 Sep 2013 13:15:43 -0700
Message-ID: <CAMpDgVyBeK2NDyN=yZx-gL6J_x8WZ=JEi+=VZz8k-NJ-3Duk5g@mail.gmail.com>
To: Antoine Zimmermann <antoine.zimmermann@emse.fr>
Cc: RDF WG <public-rdf-wg@w3.org>
The bar for making changes at this point is, in my opinion, very much above
"wouldn't cause big troubles".

peter



On Fri, Sep 13, 2013 at 8:32 AM, Antoine Zimmermann <
antoine.zimmermann@emse.fr> wrote:

> I actually take this back as after thinking about it, I think Pat has it
> right and I don't see where it would cause big troubles.
>
>
> AZ
>
>
>
> Le 13/09/2013 14:43, Antoine Zimmermann a écrit :
>
>  I'm with Peter on this.
>> I don't see a real benefit with this proposal.
>>
>>
>> AZ
>>
>>
>> Le 13/09/2013 08:03, Peter F. Patel-Schneider a écrit :
>>
>>> What good would this change from the 2004 situation do?
>>>
>>> Even if inertia was strongly indicating that this change should not be
>>> made, I would vote against it.
>>>
>>> If you make this change, you have the situation that if x:dt is not a
>>> recognized datatype, the empty graph does not RDFS entail
>>>    x:dt rdf:type rdfs:Class .
>>> but
>>>    :a :p "foo"^^x:dt .
>>> does.
>>>
>>> I believe that your argument falls apart when you look closer at it.
>>> You are saying, in effect, that if x:dt is a recognized datatype then
>>> any well-typed literal with it as the datatype belongs to it, and the
>>> appearance of an ill-typed literal causes a contradiction, and thus
>>> entails any graph, including the graph that states that the ill-typed
>>> literal belongs to the x:dt, so why not make this hold even if x:dt is
>>> not a recognized datatype. However, when x:dt is *not* a recognized
>>> datatype this reasoning doesn't hold water, so there is no reason to
>>> modify the semantics to make it valid.
>>>
>>> You might just as well argue that if x:dt is a recognized datatype then
>>> it is a subclass of rdfs:Literal therefore anything should be a subclass
>>> of rdfs:Literal.
>>>
>>> peter
>>>
>>> On 09/12/2013 10:25 PM, Pat Hayes wrote:
>>>
>>>> I know its very late to even be talking about this, but Antoine's test
>>>> cases made me notice an oddity which the current semantics for
>>>> datatyped literals produces, and which would be easy to fix. So I'm
>>>> outlining it here in case the WG feels it would be worth doing.
>>>>
>>>> We distinguish 'recognized' datatype IRIs from the others, and right
>>>> now, if you see a literal with an unrecognized datatype IRI in it, say
>>>> x:dt, then you know nothing at all about what that literal means.
>>>> Absolutely nothing. So this inference:
>>>>
>>>> :a :p "foo"^^x:dt .
>>>>
>>>> |=
>>>>
>>>> :a :p _:x .
>>>> _:x rdf:type x:dt .
>>>>
>>>> is not a valid entailment. But if x:dt were recognized, it would be:
>>>> and moreover, you know this without knowing anything about x:dt. This
>>>> entailment is valid for ANY recognized datatype, and ANY string "foo".
>>>> So why isn't it valid for any datatype, recognized or not?  This is
>>>> clearly slightly irrational. A rational way to reason would be: I know
>>>> now, even without recognizing that datatype, that this inference will
>>>> be valid when I do recognize it; and I won't need to know anything
>>>> more about the datatype in order to make that inference; so why not
>>>> just pretend that I recognize the datatype and make the inference now,
>>>> to save time?
>>>>
>>>> We could fix this with the following changes.
>>>>
>>>> In section 7.1, add the condition (to the table, it would be the third
>>>> line out of three):
>>>>
>>>> For any literal "sss"^^aaa, if IL("sss"^^aaa) is defined then
>>>> <IL("sss"^^aaa), I(aaa)> is in IEXT(I(rdf:type))
>>>>
>>>> and add the explanatory text immediately below:
>>>> "The third condition applies to all datatyped literals, whether the
>>>> datatype IRI is recognized or not."
>>>>
>>>> And in section 7.2.1, at the beginning of the text, add the entailment
>>>> pattern (moved from section 8.1.1, and with "for ddd in D" removed):
>>>>
>>>> rdfD1  <if S contains>  xxx aaa "sss"^^ddd  <then S D-entails> xxx aaa
>>>> _:nnn .      _:nnn rdf:type ddd .
>>>>
>>>> together with its explanatory text from 8.1.1.
>>>>
>>>>
>>>> The advantage to RDF engines is that this is one less case where they
>>>> have to check whether or not a datatype is "recognized", and it means
>>>> that the interpolation lemma is more useful when there are datatyped
>>>> literals around.
>>>>
>>>> Any comments? Is this worth doing? Is this legally possible to do at
>>>> this LC stage? I would be willing to declare the current version an
>>>> error if that is what it takes :-)
>>>>
>>>> Pat
>>>>
>>>> ------------------------------**------------------------------
>>>> IHMC                                     (850)434 8903 home
>>>> 40 South Alcaniz St.            (850)202 4416   office
>>>> Pensacola                            (850)202 4440   fax
>>>> FL 32502                              (850)291 0667   mobile
>>>> (preferred)
>>>> phayes@ihmc.us       http://www.ihmc.us/users/**phayes<http://www.ihmc.us/users/phayes>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>
>>
> --
> Antoine Zimmermann
> ISCOD / LSTI - Institut Henri Fayol
> École Nationale Supérieure des Mines de Saint-Étienne
> 158 cours Fauriel
> 42023 Saint-Étienne Cedex 2
> France
> Tél:+33(0)4 77 42 66 03
> Fax:+33(0)4 77 42 66 66
> http://zimmer.**aprilfoolsreview.com/<http://zimmer.aprilfoolsreview.com/>
>
>
Received on Friday, 13 September 2013 20:16:11 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 22:02:16 UTC