Review of RDF 1.1 Semantics

This is a review of RDF 1.1 Semantics Editor's draft, but I'm not 
completely sure if everything applies to the current version. I tried to 
keep my review up to date with the ongoing changes, but I mostly worked 
on a printed version from last week.

As I said, all issues except bnode scope are relatively small and should 
not block publication as FPWD.

Among the *good* points I can list the following:
  - a lot of side comments that existed before in RDF Semantics have 
been pushed forward to appendix, which makes the text lighter and more 
straight to the point (it could still improve on this);
  - interpretations independent of a vocabulary is a net improvement;
  - having D-entailment as a direct extension of simple entailment, 
rather than of RDFS-entailment, is also a net improvement.

Apart from the bnode issue, the other prominent problem is the 
management of datatypes and literals. There are things that bother me 
with this regard, but it's in no way as important as the issues 
regarding bnodes.

I externalise the issues with bnode scope, since there is a separate 
discussion on it, and it's evolving with the discussion.

Issues with Literals and datatypes:
The definition of datatype does not match the definition in Concepts, 
but most importantly, it does not match the normative definition of XSD 
that we cannot change. More specifically, XSD defines the L2V mapping as 
a total function going from the lexical space to the value space.
Besides, I don't see what is the problem with a definition with 3 
components that are explicitly named (viz., the lexical space LS(d), the 
value space VS(d) and the lexical-to-value mapping L2V(d)).

This is not a big deal as the result is the same, but I really don't see 
any gain from having the definition different.

Could L2V(rdf:langString) simply be the empty mapping? It seems it makes 
it a proper datatype (XSD does not forbid empty mappings, as far as I 

The use of a set D rather than a datatype mapping is making the 
definitions less precise. Now, the condition is:

For every other IRI aaa in D, and every literal "sss"^^aaa, 
IL("sss"^^aaa) = L2V(I(aaa))(sss)

L2V is not defined, and even if it was defined as in XSD, it would not 
be defined on all resources I(aaa) which have no reason to be a 
datatype. This is not a big deal again, as one can quickly imagine that 
the intended meaning is that it only works for I(aaa) being a datatype, 
but again, I see no gain in forcing that little extra interpretation 
when we could have it straight with good old datatype map. What is the 
advantage of getting rid of the map?

Minor comments:
  - in "Notation and terminology", the reference for N-triples should be 
the separate document in preparation.
  - I would prefer if RDF-entailment be removed and the conditions put 
in RDFS-entailment. Treating rdf:Property and rdf:type apart from 
rdfs:Class and the other RDFS constructs seems arbitrary.
  - Section "RDFS interpretations" says that the RDFS vocabulary extends 
RDF to a larger vocabulary (and the list of rdfs: terms follows) but the 
list of rdf: terms has not been presented before;
  - Section "RDFS Interpretations" says:
"""(rdfs:comment, rdfs:seeAlso, rdfs:isDefinedBy and rdfs:label are 
included here because some constraints which apply to their use can be 
stated using rdfs:domain, rdfs:range and rdfs:subPropertyOf. Other than 
this, the formal semantics does not constrain their meanings.)"""
But there are also several rdf: terms that have little semantics 
(rdf:value, rdf:_1, ...). rdfs:label and rdfs:comment are constrained in 
their range (rdfs:Literal).

If RDF-semantics was merged with RDFS-semantics all terms could be 
listed together, and remarks on terms with little constraints be put 
together (rdf:value, rdfs:isDefinedBy and rdfs:seeAlso are the least 
  - I think the material on extension semantics should be kept in an 
informative section but with the addition of examples of entailments 
that do not hold in general and would hold with the extensional 
semantics. For instance, it may not be clear that:

{<s>  <p>  <o> .}

does not RDFS-entail:

{<p>  rdfs:range  rdfs:Resource .}

or that:

{<p>  rdfs:range  <C> .
  <C>  rdfs:subClassOf  <D> .}

does not entail:

{<p>  rdfs:range  <D> .}
  - The Glossary contains term that may not be necessary (Metaphical, 
Ontological). I think the glossary sould stick to the notions that are 
critical for the normative text. The rest can be looked up in a dictionary.
  - There should be a normative reference to RDF 1.1 Concepts.
Antoine Zimmermann
ISCOD / LSTI - Institut Henri Fayol
École Nationale Supérieure des Mines de Saint-Étienne
158 cours Fauriel
42023 Saint-Étienne Cedex 2
Tél:+33(0)4 77 42 66 03
Fax:+33(0)4 77 42 66 66

Antoine Zimmermann
ISCOD / LSTI - Institut Henri Fayol
École Nationale Supérieure des Mines de Saint-Étienne
158 cours Fauriel
42023 Saint-Étienne Cedex 2
Tél:+33(0)4 77 42 66 03
Fax:+33(0)4 77 42 66 66

Received on Thursday, 14 March 2013 15:55:23 UTC