- From: Seaborne, Andy <andy.seaborne@hp.com>
- Date: Wed, 29 Apr 2009 12:29:52 +0000
- To: Axel Polleres <axel.polleres@deri.org>
- CC: 'RDF Data Access Working Group' <public-rdf-dawg@w3.org>
> -----Original Message-----
> From: Axel Polleres [mailto:axel.polleres@deri.org]
> Sent: 28 April 2009 16:58
> To: Seaborne, Andy
> Cc: Bijan Parsia; 'RDF Data Access Working Group'
> Subject: Re: rdf:text review
...
> Essentially, I think STR/LANG/DATATYPE shall behave exactly the same for
> simple entailment as they do at the moment, and we don't want to
> redefine them
> To your examples:
Reading through these, I tried to extract the principle being used to decide the value of a function. Am I right to see you treating DATATYPE/LANG/STR as stressing their role as accessing the syntactic? This seems like a good model we can work through with the entailment regime.
So we have for the reply:
1/ rdf:text MUST NOT appear is SPARQL XML results.
Generalises the RDF graph exchange to include SPARQL results.
2/ rdf:text is a D-entailment and is accessed by SPARQL a BGP entailment regime.
3/ Functions STR/DATATYPE/LANG act strictly on the lexical forms.
Do we need to says at (2) that matches coming out of the rdf:text entailment matching must be treated in their RDF forms? That would maximize compatibility.
----
Discussion below.
>
> > == DATATYPE of a literal with language tag
> >
> > SPARQL/2008: DATATYPE ("Padre de familia"@es) ==> error
>
> with simple entailment that should indeed remain:
>
> DATATYPE("Padre de familia"@es) ==> error
>
> with D-entailment entailment any triple with a literal
> "Padre de familia"@es
> would also entail a triple with
> "Padre de familia@es"^^rdf:text
> thus:
>
> DATATYPE("Padre de familia@es"^^rdf:text) ==> rdf:text
One point - it's assuming the that the entailment is exposing both forms, or the RDF form, to retain compatibility with simple-entailment. To put it another way, results under simple-entailment remain true and new possibilities now occur.
Modulo cardinality of results, this nearly works. Lang tags disappear if the rdf:text form is exposed. Maybe there will need to be a condition on the rdf:text-enatilments to expose the RDF form. Not sure of the long term effects of that (c.f. SPARQL/OWL, SPARQL/RIF).
One particular example which is in value-space, not in the lexical form:
FILTER("") is false
(Effective Boolean Value of the empty string is false in XSD - it's a special case SPARQL inherits from F&O).
But FILTER("@"^^rdf:text) is error (and hence false but further combining is messed up).
Seems liveable with but EricP is the expert here. The rdf:text-entailment can also say how it modified the operator table in sec 11.3 (it's got to anyway).
> > == DATATYPE of a literal without language tag
> >
> > SPARQL/2008 defines: DATATYPE ("Padre de familia") ==> xs:string
>
> This is actually intersting in the current speec, since it implies
> "some" datatype "reasoning" is done in SPARQL already for plain
> literals, but my personal suggestion would be (depends whether the
> others in the WG agree) we shouldn't mess around with that, i.e. keep it
> like that but not extend that towards rdf:text.
>
> > I don't know what rdf:text says here: two possibilities:
> >
> > DATATYPE ("Padre de familia") ==> rdf:text ?? xs:string ??
>
> Again, with D-entailment entailment any triple with a literal
> "Padre de familia"
> would also entail a triple with
> "Padre de familia@"^^rdf:text
> thus:
> DATATYPE("Padre de familia@"^^rdf:text) ==> rdf:text
This one will depend on whether rdf:text-entailment exposes the "...@"^^rdf:text or ".." forms when DATATYPE is treated as a syntactic accessor.
Same point for LANG and STR
Andy
>
> > because one value space is a subset of the other.
> >
> > The reason for rdf:text is the uniform treatment of literals so the
> > query to find all the untyped literals ("untyped" meaning as per the
> > current SPARQL REC - without type - simple literal or literal with
> > language tag) might be changed.
>
> since both RIF and OWL respect datatypes, this uniform treatment is be
> guaranteed, IMO.
>
> > == LANG
> >
> > In RDF, a literal has either a language tag or a datatype but not
> > both. So:
> >
> > SPARQL/2008: Lang("Padre de familia"@es) ==> "es" but Lang("Padre de
> > familia@es"^^rdf:text) ==> ""
> >
> > rdf:text: Lang("Padre de familia@es"^^rdf:text) ==> ??
> >
> > c.f. rtfn:lang-from-text(Padre de familia@es"^^rdf:text) ==> "es"
>
> Same as before (note that Lang() is not the same as rtfn:lang-from-
> text()!)
>
> So
>
> Lang("Padre de familia@es"^^rdf:text) ==> ""
>
> Lang("Padre de familia"@es) ==> "es"
>
> However, again, with D-entailment entailment any triple with a literal
>
> "Padre de familia"@es"
>
> would also entail a triple with
>
> "Padre de familia@es"^^rdf:text
>
> and vice versa.
>
>
> > == STR
> >
> > rdf:text is a datatype with lexical space including the language tag
> >
> >
> > SPARQL/2008 defines: STR("Padre de familia@es"^^rdf:text) ==> "Padre
> > de familia@es" STR("Padre de familia"@es) ==> "Padre de familia"
> >
> > rdf:text: STR("Padre de familia@es"^^rdf:text) ==> "Padre de familia"
> > ??
> >
> > because STR returns the lexical form.
> >
> > The lexical space of literals with language tags is changed by
> > rdf:text.
>
>
> STR should again behave like defined, i.e. it should extract the
> lexical form, i.e.
>
> STR("Padre de familia@es"^^rdf:text) ==> "Padre de familia@es"
>
> Note again that Str() is not the same as rtfn:string-from-text()!)
>
> Summary: I think that, as long as datatype reasoning is not considered,
> the situation is quite clear, as soon as we say that the semantic
> implications of rdf:text only affect D-entailment.
>
> best,
> Axel
>
>
> --
> Dr. Axel Polleres
> Digital Enterprise Research Institute, National University of Ireland,
> Galway
> email: axel.polleres@deri.org url: http://www.polleres.net/
Received on Wednesday, 29 April 2009 12:30:56 UTC