Re: names for resources

I took a while to get back to this as I was on vacation. Apologies.

On Sun, Oct 30, 2005 at 08:18:44AM -0600, Dan Connolly wrote:
> 
> 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".

AGG! We need 2 different terms here. There are things that the RDF
Model calls URIrefs, and there are resources:

         Resources
       /    |     \
URIrefs  literals  bNodes

We specifically need a name for URIrefs because it:
  1. is the return type of DATATYPE()
  2. defines the semantics of isIRI()
  3. defines the semantics of STR()

> >  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/"

I can imagine justifications for either <http://www.w3.org/> or
"http://www.w3.org/"^^xsd:anyURI , but "http://www.w3.org/" makes
no sense at all to me. Why does the thing with the lexical form "4"
and the type xs:integer turn into an integer, but the thing with
the lexical form "http://www.w3.org/" and the type xsd:anyURI not
turn into at least one of those?

> > 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:

"just like"?
I don't think you're arguing constructively here. We need to figure
out exactly what you think xsd:anyURI is. Either you are conflating
two nodes that are distinct in RDF semantics:
  the URIref <http://www.w3.org/>
  the typed literal "http://www.w3.org/"^^xsd:anyURI
or you are saying that
  the typed literal "http://www.w3.org/"^^xsd:anyURI
doesn't exist, or you are saying that SPARQL does not allow you to
distinguish the difference.
  DATATYPE(<http://www.w3.org/>) = DATATYPE("http://www.w3.org/")

> 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.

URIref

> > 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

-- 
-eric

office: +81.466.49.1170 W3C, Keio Research Institute at SFC,
                        Shonan Fujisawa Campus, Keio University,
                        5322 Endo, Fujisawa, Kanagawa 252-8520
                        JAPAN
        +1.617.258.5741 NE43-344, MIT, Cambridge, MA 02144 USA
cell:   +81.90.6533.3882

(eric@w3.org)
Feel free to forward this message to any list for any purpose other than
email address distribution.

Received on Friday, 11 November 2005 14:52:45 UTC