Re: relationship of rdfs:Literal to rdfs:Resource

> 1. Let me see if I understand this correctly: literals and URI 
> references are syntactically distinct. The things they represent are all 
> resources---the things literals represent (rdfs:Literal) are a subset of 
> the things URI references represent (rdfs:Resource). Right?

That's exactly right for plain Literals (no datatype).  Since typed
literals have a value space (set of possible values) defined by their
datatype, and there is no formal limit to how datatypes can be
defined, I don't see anything stopping any rdfs:Resource from actually
being an rdfs:Literal with *some* datatype *someone* makes up.
Intuitively, and using the datatypes predefined XML Schema, yes
rdfs:Literal is a proper subset of rdfs:Literal.

> > So, any value (e.g., the number 10) which might be denoted by a literal 
> > (e.g. "10"^^xsd:integer) could also be denoted by a URI (e.g. I might 
> > define the URI ref http://www.ninebynine.org/2003/09/number#_10 to have 
> > the number 10 as its intended denotation), and while they remain 
> > syntactically distinct entities, in the interpretation intended by my 
> > hypothetical definition, (and the presumed definition of xsd:integer) 
> > they would denote the same number 10.
> 
> 2. Does each instance of the plain literal "10" always refer to the same 
> identical resource?

Yes.

> 3. Does each instance of the typed literal "10"^^xsd:integer always 
> refer to the same identical resource?

Yes.  (But of course "10" does not refer to the same thing as
"10"^^xsd:integer.  Whether "10" refers to the same thing as
"10"^^xsd:string is ... an interesting question.  If I were being
really helpful here (and it were not Sunday afternoon), I'd find the
RDF Core test case on this, or propose one if there is none.)

> 4. How can I assert properties of the resources indicated by the plain 
> literal "10"? (If "10" really represents a resource, why can't that 
> thing have properties, too?)

It would be nice to say (in N-Triples)
 
   "10" math:divisor "5".

but since RDF doesn't allow literals in the subject position, we need
some more-powerful language.   OWL gives us an equals sign (called
owl:sameAs) so we can write

   _:ten owl:sameAs "10".
   _:ten math:divisor "5".

which comes out in RDF/XML (dropping the placeholder "_:ten") as:

<rdf:RDF xmlns:math="http://www.example.com/math#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">

    <rdf:Description>
        <math:divisor>5</math:divisor>
        <owl:sameAs>10</owl:sameAs>
    </rdf:Description>
</rdf:RDF>


> 5. If I wanted to http://www.ninebynine.org/2003/09/number#_10 to refer 
> to the resource represented by "10"^^xsd:integer, how would I do that in 
> a graph (via RDF+XML)? Why must I force the RDF processor to have some 
> sort of outside predefined knowledge to associate URIs with resources 
> designated by literals? If I can associate URIs with resources in a 
> graph, and literals stand for resources, why can't I associate a URI 
> with the resource designated by a literal?

Again, use owl:sameAs:

<rdf:Description about="http://www.ninebynine.org/2003/09/number#_10">
    <owl:sameAs rdf:datatype=" ... integer">10</owl:sameAs>
</rdf:Description>	       

So in a sense, yes, that's outside knowledge, but knowledge of OWL is
probably pretty important in most RDF processors.

   -- sandro

Received on Sunday, 14 September 2003 15:49:02 UTC