W3C home > Mailing lists > Public > public-rdf-dawg@w3.org > October to December 2004

RE: URIs in constraints, isBound, casting in eq

From: Seaborne, Andy <andy.seaborne@hp.com>
Date: Tue, 23 Nov 2004 09:44:49 -0000
Message-ID: <8D5B24B83C6A2E4B9E7EE5FA82627DC94D375C@sdcexcea01.emea.cpqcorp.net>
To: "Dan Connolly" <connolly@w3.org>
Cc: "RDF Data Access Working Group" <public-rdf-dawg@w3.org>




-------- Original Message --------
> From: Dan Connolly <>
> Date: 22 November 2004 21:13
> 
> On Mon, 2004-11-22 at 20:23 +0000, Seaborne, Andy wrote:
> > 
> > Dan Connolly wrote:
> > > On Mon, 2004-11-22 at 18:47 +0000, Seaborne, Andy wrote:
> > > 
> > > > Dan Connolly wrote:
> > > 
> > > [...]
> > > 
> > > > > We can introduce something ala log:uri if we want
> > > > > to do that sort of use/mention level-breaking:
> > > > > 
> > > > > 	WHERE dc:title log:uri ?TITLEURI
> > > > > 	AND ?TITLEURI =~ /^http:/
> > > > 
> > > > I'd prefer to reuse the function fn:string() from F&O that
> > > > stringify's anything it's give
> > > 
> > > 
> > > anything including RDF Properties? (not the name of a property,
but
> > > the property itself) 
> > > 
> > > I don't think this works.
> > 
> > Not sure where properties themselves come into it.  It's the URI  -
> > there aren't properties or resources in the query data model.
> 
> I think there are; in particular, matching is defined in terms
> of entailment.
> 
> >   There are
> > URIrefs, bNodes and RDF literals.
> > 
> > So fn:string() applied to a URIref is log:uri isn't it?
> 
> No, it isn't. log:uri relates something to a URI that
> identifies that something.

Could you give a test case where 

    WHERE dc:title log:uri ?TITLEURI
    AND ?TITLEURI =~ /^http:/

is not the same as 

    AND string(dc:title) =~ /^http:/ 

I would have thought it was just a different syntax.

----

I tried with cwm:

@prefix :       <http://example.org/ns#> .
@prefix log:    <http://www.w3.org/2000/10/swap/log#> .

:a :p :z .

{ :a ?pred ?z . ?pred log:uri ?p } => { :b :p ?p } .

and got (cwm --think --data)

    :a     :p :z .
    
    :b     :p "http://example.org/ns#p" .


so ?p looks like a string to me.

----

Looking at RDF concepts:

[[
http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#section-data-model

Each triple has three parts:

   1. a subject,
   2. an object, and
   3. a predicate (also called a property) that denotes a relationship.

...
http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#section-Graph-synta
x

    * the subject, which is an RDF URI reference or a blank node
    * the predicate, which is an RDF URI reference
    * the object, which is an RDF URI reference, a literal or a blank
node
]]

and it also says
[[
Note: RDF URI references are compatible with the anyURI datatype as
defined by XML schema datatypes
]]

fn:string() can be appliy to a anyURI.

The data model is comprised of RDF URI refs, literlas and bNodes.
SPARQL triple patterns are defined in similar terms with the addition of
variables.



So - I must be missing something here - I see query as pattern matching
over symbols that make up the graph.   Matching as entailment is still a
relationship between two graphs.

	Andy

> 
> >   Just with a
> > syntax that is more suited to the usage in expressions.
> > 
> > 	Andy
> > 
> > > 
> > > 
> > > > as we already have a syntax for expressions.  I just had that
> > > > implicit 
> > > > in the =~ operation.  On typed literals, it would be the lexical
> > > > form. 
> > > > 
> > > > 	string(dc:title) =~ /^http:/
> > > > 
> > > > 	Andy
> --
> Dan Connolly, W3C http://www.w3.org/People/Connolly/
> D3C2 887B 0F92 6005 C541  0875 0F91 96DE 6E52 C29E
Received on Tuesday, 23 November 2004 09:45:23 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 16:15:21 GMT