- From: Antoine Zimmermann <antoine.zimmermann@emse.fr>
- Date: Fri, 26 Sep 2014 13:43:12 +0200
- To: Aidan Hogan <aidhog@gmail.com>, "<public-rdf-comments@w3.org>" <public-rdf-comments@w3.org>
Aidan, Le 26/09/2014 00:30, Aidan Hogan a écrit : > Hi, > > In the RDF 1.1 Semantics document, in "A. Entailment Rules", the > following completeness result is given: > > « > If S is RDF (RDFS) consistent, then S RDF entails (RDFS entails) E just > when the generalized RDF (RDFS) closure of S towards E simply entails E. > » In fact, this is not quite true in RDF 1.1. For instance, the empty graph RDFS-entails: <http://www.example.com/> rdf:type rdfs:Resource . which would not appear as a result of applying the rules to the empty graph (note: this is new in RDF 1.1, wasn't true in RDF 1.0). Also, the empty graph RDF-entails: [] a xsd:string . [] a rdf:langString . Again, not the result of rule application. Note that the following sentence is therefore not correct: "Every RDF(S) closure, even starting with the empty graph, will contain all RDF(S) tautologies which can be expressed using the vocabulary of the original graph plus the RDF and RDFS vocabularies." Fortunately, section "A. Entailment Rules" is non-normative. (Funnily, I've read RDF 1.1 Semantics half a dozen times very carefully during its development and I did not spot this before) > But I'm not sure what part of the entailment procedure deals with the > case insensitivity of language tags or optionality of xsd:string. There is no optionality of xsd:string. In RDF 1.1, all literals are typed, no exception. Serialisation syntaxes allow shortcuts in writing literals to the effect that you don't see the datatype, e.g., "abc"@en in Turtle or NTriples has the type rdf:langString; 10 in Turtle is the literal "10"^^xsd:integer; "xyz" in Turtle is typed with xsd:string; etc. Language-tagged literals are interpreted as pairs where the second element is the lower-cased version of the language tag of the literal. Cf. the following in Section 7.1 of RDF 1.1 Semantics: "If rdf:langString is in D, then for every language-tagged string E with lexical form sss and language tag ttt, IL(E)= < sss, ttt' >, where ttt' is ttt converted to lower case using US-ASCII rules" --AZ. > > For example, let S be: > > ex:a ex:b "c"@en-US . > > and let E be: > > _:a ex:b "c"@en-us . > > If I'm correct, S RDF(S) entails E. But I cannot see how either the > generalized RDF(S) closure or simple entailment cover this. > > > Likewise what happens if S is: > > ex:a ex:b "c"^^xsd:string . > > and E is something like: > > _:a ex:b "c" . > > I likewise cannot see how this case is covered? > > > Is a canonicalisation step not needed somewhere to lower-case all > language tags and add xsd:string to all "plain literals" in S and E? > > > Best, > Aidan > > -- Antoine Zimmermann ISCOD / LSTI - Institut Henri Fayol École Nationale Supérieure des Mines de Saint-Étienne 158 cours Fauriel 42023 Saint-Étienne Cedex 2 France Tél:+33(0)4 77 42 66 03 Fax:+33(0)4 77 42 66 66 http://zimmer.aprilfoolsreview.com/
Received on Friday, 26 September 2014 11:43:37 UTC