Re: names for resources

On Sun, 2005-10-30 at 04:59 -0500, Eric Prud'hommeaux wrote:
> SPARQL differentiates between IRIs, Literals and Blank Nodes. A term
> for IRI shows up in the definition of the isIRI test. STR, as well the
> return type of DATATYPE. Originally, I used terms like "RDF URI" and
> "RDF literal" to define the semantics and return types of functions.
> At some point, I thought it would be a good idea to switch to
> rdfs:Resource and rdfs:Literal. But rdf:Resource is EVERYTHING, so I
> needed another term.
> 
> DanC suggested xsd:anyURI. This promotes all strings of type
> xsd:anyURI to RDF resource.

Everything is an RDF resource. So there's no "promotion".

>  For instance, if I write some XML:
>   <foo bar="4" baz="http://www.w3.org/"/>
> , validate it by some W3C XML Schema:
>   <xs:element name="foo">
>     <xs:complexType>
>       <xs:attribute name="bar" type="xs:integer"/>
>       <xs:attribute name="baz" type="xs:anyURI"/>
> and write out the PSVI as RDF, I am making an assertion about the
> resource <http://www.w3.org/> (didn't look up the *real* PSVI
> projection in to RDF here):
>   [ a Element; 
>     hasAttribute [ 
>       name "bar", 
>       value 4 ] ,
>     hasAttribute [ 
>       name "baz", 
>       value <http://www.w3.org/> ] ]

no, it would be: value "http://www.w3.org/"

    
> However, this approach require a couple exceptions that I'm not
> comfortable with:
> 
> In general, datatypes can be transformed with
> STR:
>   STR("asdf"^^foo:bar) = "asdf"
> DATATYPE:
>   DATATYPE("asdf"^^foo:bar) = foo:bar
> and ^^ casting:
>   "asdf"^^xsd:integer = "asdf"^^xsd:integer
> 
> This (I believe, though this merits a test case) holds for SPARLE terms:
>   STR(4) = "4"
>   DATATYPE(4) = xsd:integer
>   "4"^^xsd:integer = 4
> 
> Some of these functions still work for URIs:
>   STR(<http://www.w3.org/>) = "http://www.w3.org/"
> and maybe DATA
>   DATATYPE(<http://www.w3.org/>) = xsd:anyURI

no; the datatype of W3C's homepage isn't xsd:anyURI. Use/mention bug.

The xsd:anyURI datatype works just like all the others:

DATATYPE("http://www.w3.org/"^^xsd:anyURI) = xsd:anyURI
and
str("http://www.w3.org/"^^xsd:anyURI) = "http://www.w3.org/"


> but we don't really "know" the lexical form for URIs

We know the lexical form for URI literals. URI literals
are self-denoting;t hey work differently from <xyz> symbols.

>  so
>   "http://www.w3.org/"^^xsd:anyURI != <http://www.w3.org/>
> 
> 
> I don't think it's a good idea to invent a term or syntax for this, so
> I'm in favor of going back to a term that's not a URI (RDF Resource).

Which do you mean? URI or Resource? Remember, _everything_ is a
resource.

> There is a precedent for this in SPARQL ("RDF term", "blank node") and
> in XPath Functions and Operators ("numeric").
> 
> 
> I'm on vacation this week in Italy. I'd like to resolve this when I
> get back.

What is it that you'd like to resolve?

> 
> 
> Earlier thread:
>   http://www.w3.org/mid/20050911103218.GF17622@w3.org
-- 
Dan Connolly, W3C http://www.w3.org/People/Connolly/
D3C2 887B 0F92 6005 C541  0875 0F91 96DE 6E52 C29E

Received on Sunday, 30 October 2005 14:18:56 UTC