- From: Eric Prud'hommeaux <eric@w3.org>
- Date: Fri, 11 Nov 2005 09:52:35 -0500
- To: Dan Connolly <connolly@w3.org>
- Cc: public-rdf-dawg@w3.org
- Message-ID: <20051111145235.GF17622@w3.org>
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