Re: deciding on rdf:PlainLiteral this week

On Jun 1, 2009, at 3:39 PM, Alan Ruttenberg wrote:

> Pat asks:
>> ?? I thought I had this understood, but now I am genuinely  
>> confused. Why
>> would the datatype of a plain literal NOT be rdf:PlainLiteral?  
>> Surely,
>> calling this a datatype, and saying that it applies to plain  
>> literal syntax,
>> means exactly that. If it does not mean that, what on earth does it  
>> mean?
>> (***)
>>
>> Maybe the idea is, plain literals in undecorated, undatatyped,  
>> vanilla RDF
>> have no datatype, but they do when this new datatype is  
>> 'recognized' (or
>> chose your favorite term here; when the appropriate form of D- 
>> entailment is
>> in use, for whatever reason). But if something like this is true,  
>> how can
>> SPARQL tell the difference between RDF which is plain RDF (where  
>> "abc" has
>> no datatype) and RDF which recognizes the new datatype (in which  
>> "abc" has
>> the new datatype)?
>
> My understanding is that the *SPARQL* DATATYPE function is a function
> on syntax (or abstract syntax (= graph, for RDF)). Here's what it's
> signature is documented to be:
>
> IRI   DATATYPE (typed literal typedLit)
> IRI   DATATYPE (simple literal simpleLit)
>
> Since the syntax of RDF does not contain typed rdf:PlainLiteral
> literals the DATATYPE function, under standard SPARQL semantics would
> never return rdf:PlainLiteral.

Ah yes. OK, that does make sense, though the terminology is going to  
cause a lot of confusion, I predict.

Pat


>
> Moreover, the extension of SPARQL to entailment regimes says that it
> "is defined for a subset of RDF graphs called well-formed for the
> regime". By RDF graphs, I understand it is meant the abstract *syntax*
> of RDF. Since the RDF abstract syntax (graph) has no typed
> rdf:PlainLiteral literals, my understanding is that the SPARQL
> DATATYPE function could therefore also not return rdf:PlainLiteral.
>
> As a check I looked to see whether there is any specified interaction
> between the DATATYPE function and extensions of SPARQL to entailment
> regimes and I see none. Of course entailments might introduce new RDF
> literal terms, but as we've seen, typed rdf:PlainLiteral literals
> can't be among those. I'd also point out that all BGP extension
> language refers to RDF graphs, so I don't see any chance that typed
> rdf:PlainLiteral literals will ever be introduced via that route.
>
> What about bindings/answer sets? SPARQL says: "Graph pattern matching
> produces a solution sequence, where each solution has a set of
> bindings of variables to RDF terms". Since RDF terms are things in RDF
> graphs, and we can't have typed rdf:PlainLiteral literals in RDF
> graphs, there can't be typed rdf:PlainLiteral literals in answers. The
> extension language does not modify this condition.
>
> Therefore, to Andy's points, I conclude that the spec already prevents
> what he is worried about, however it couldn't hurt to include
> informative text that makes this clear.
>
> There is only one case that I can see that might be surprising:
>
> If you do the query corresponding to an earlier question Pat had about
> entailment
>
> { :s :p "foo"^^xs:string.
>  :s :p _:b.
>  _:b :p ?type }
>
> One might get, in one entailment regime, only a binding for ?type that
> is xs:string, and in another only a binding for ?type that is
> rdf:PlainLiteral. Of course neither of these bindings will obtain in
> standard SPARQL with simple entailment.
>
> -Alan
>
>

------------------------------------------------------------
IHMC                                     (850)434 8903 or (650)494 3973
40 South Alcaniz St.           (850)202 4416   office
Pensacola                            (850)202 4440   fax
FL 32502                              (850)291 0667   mobile
phayesAT-SIGNihmc.us       http://www.ihmc.us/users/phayes

Received on Monday, 1 June 2009 21:18:15 UTC