Re: Explicit RDF property for "literal has datatype D"?

Jiri, greetings.

You have to ask yourself, are you wanting to talk about the literals  
themselves, or about what the literals denote or refer to, ie literal  
values. The elements of rdfs:Literal are literal values, not literals.  
By and large, RDF (and OWL for that matter) *uses* literals to *refer  
to* literal values. There is no direct provision in any of these  
languages for talking about literals themselves, any more than the use  
of URIs means that you are talking about URIs themselves.

On Jan 4, 2010, at 7:58 AM, Jiří Procházka wrote:

> Hmm I guess you are right
> (http://www.w3.org/TR/rdf-concepts/#section-Literal-Equality).

That citation refers to syntactic identity of actual literals, not to  
literal values. It is quite possible for two different literals to  
refer to the same literal value (and hence to be owl:sameAs one  
another.) For example, "abc" and "abc"^^xsd:string.

> I guess some property would have to be created:
>
> _:x rdf:type xsd:date .
> _:x todo:value "2008-01-01" .
>
> todo:value rdfs:domain rdfs:Literal . # well, typed literal, no such
>      class exists (yet)
> todo:value rdfs:range rdfs:Literal . # well, plain literal :)

These would be very odd classes, if (like rdfs:Literal) they are  
classes of literal values. Since "anystring"^^xsd:string is the same  
value as "anystring", the plain literal class would be a subclass of  
the typed literal class. (See why its important to not confuse use  
with mention?) In fact, it gets worse, since its also quite possible  
for a blank node (as you yourself show) or even a URI to denote a  
literal value. I can quite legitimately write

ex:foo owl:sameAs "abc"^^xsd:string .

for example. If you base classes on what syntactic form is used to  
denote something, what class will you put this in?

Pat Hayes

>
> that should be equivalent to saying:
>
> _:x owl:sameAs "2008-01-01"^^xsd:date .
>
> Best,
> Jiri
>
> On 01/04/2010 09:28 AM, Dave Reynolds wrote:
>> Jiří Procházka wrote:
>>> Sorry for resurrecting this old thread, but I just stumbled upon  
>>> this:
>>>
>>> "rdfs:Datatype is both an instance of and a subclass of  
>>> rdfs:Class. Each
>>> instance of rdfs:Datatype is a subclass of rdfs:Literal."
>>>
>>> "A typed literal is an instance of a datatype class."
>>>
>>> citing http://www.w3.org/TR/rdf-schema/#ch_datatype
>>>
>>> So I think this is valid:
>>>
>>> _:x rdf:type xsd:date .
>>> _:x owl:sameAs "2008-01-01" .
>>
>> Not as such, did you mean:
>>
>> _:x rdf:type xsd:date .
>> _:x owl:sameAs "2008-01-01"^^xsd:date .
>>
>> ? Which would, I believe, be valid.
>>
>> Dave
>>
>>>
>>> Quite confusing, but might be useful for RDF systems which treat
>>> literals as just one "type" (type from their point of view).
>>>
>>> Shame there is no such thing for language tags, or is there?
>>>
>>> Best,
>>> Jiri Prochazka
>>>
>>> On 07/06/2009 07:43 PM, Jeremy Carroll wrote:
>>>> Pat Hayes wrote:
>>>>>>> p a rdf:Property ;
>>>>>>> rdfs:domain rdfs:Literal ;
>>>>>>> rdfs:range rdfs:Datatype .
>>>>>
>>>>> _:x p xsd:date .
>>>>> _:x :seenAsLiteral  "2008-01-01" .
>>>> I tend to write these examples as
>>>>
>>>> _:x p xsd:date .
>>>> _:x owl:sameAs  "2008-01-01" .
>>>>
>>>> Semantically that has a literal as the subject, and it works  
>>>> around the
>>>> legacy syntactic restriction
>>>>
>>>> Unfortunately the reasoning required to make this work means that  
>>>> simple
>>>> RDF systems may well not get it.
>>>>
>>>> Jeremy
>>>>
>>>>
>>>>
>>>
>>
>

------------------------------------------------------------
IHMC                                     (850)434 8903 or (650)494 3973
40 South Alcaniz St.           (850)202 4416   office
Pensacola                            (850)202 4440   fax
FL 32502                              (850)291 0667   mobile
phayesAT-SIGNihmc.us       http://www.ihmc.us/users/phayes

Received on Monday, 4 January 2010 15:07:56 UTC