[OK?] Re: Error definition

Hello,

Thank you for your feedback. I've attempted to address your questions and 
comments inline below.

---
Please respond indicating whether you are or are not satisfied with
this response. If you are, you can help our issue tracking system by
prefixing the subject of your response with [CLOSED] (where this
subject has [OK?]).
---

Faisal Alkhateeb wrote on 06/14/2006 04:33:52 AM:

> 
> Hi,
> 
> While reading the last version of SPARQL, I am surprised with the 
following 
> definition. I don't know if the semantics of RDF (and consequently 
SPARQL) is 
> changed.
> 
> 
> Definition: Triple Pattern 
> 
> A triple pattern is member of the set:
>     (RDF-T union V) x (I union V) x (RDF-T union V)
> 
> >From the above definition, the literals are allowed in the subject 
position. 
> However, they are not allowed in RDF. So, I want to know if it is a 
> mistake or 
> not?

As per the text following this definition at 
http://www.w3.org/TR/rdf-sparql-query/#BasicGraphPattern:

"""
This definition of Triple Pattern includes literal subjects. This has been 
noted by RDF-core.

"[The RDF core Working Group] noted that it is aware of no reason why 
literals should not
  be subjects and a future WG with a less restrictive charter may
  extend the syntaxes to allow literals as the subjects of statements."

Any SPARQL triple pattern with a literal as subject will fail to match on 
any RDF graph.
"""

That is to say, the syntax for triple patterns within SPARQL does indeed 
allow literals as subjects, but because current RDF syntax does not allow 
literal subjects, such a triple pattern will not match against an RDF 
graph. 

> - For blanks in SPARQL, I want to know if they act as variables or not, 
that 
> is, if a blank can be mapped to any RDF term (or just to a resource)? I 
need 
> some explannation on that, because blanks = anonymous variables. What is 
a 
> resource? Is it a literal or an IRI or just an IRI?

Blank nodes in a triple pattern can match any type of RDF Term (URI 
reference, (plain or typed) literal, or blank node) in the target dataset. 
(This is a consequence of the simple-entailment based definition of 
pattern matching in http://www.w3.org/TR/rdf-sparql-query/#BGPgeneral and 
the definitions of simple entailment and graph instances as per
http://www.w3.org/TR/2004/REC-rdf-mt-20040210/#entail and 
http://www.w3.org/TR/2004/REC-rdf-mt-20040210/#graphdefs .)

For the most part, then, blank nodes function as non-distinguished 
variables, with the caveat be that blank node labels are scoped only to 
basic graph patterns. (Therefore, for instance { { _:a :p :o } { _:a :p2 
:o2 } } is the same graph pattern as { { _:a :p :o } { _:b :p :o } }.
 
> - Is the case that blanks are not allowed in the predicate position?

SPARQL does allow blank nodes in the predicate position of triple 
patterns. As per http://www.w3.org/TR/rdf-sparql-query/#BasicGraphPattern:

"""
This definition also allows blank nodes in the predicate position.
"""

thanks,
Lee


> 
> Best regards,
> Faisal Alkhateeb
> Ph.d. student, INRIA Rhône-Alpes
> 

Received on Wednesday, 14 June 2006 14:44:07 UTC