A few comments on Primer (esp re Semantics)

I recently had a chance to read through the Primer, and mostly it's 
great but there were a few things that bugged me.    Hopefully they're 
not to hard to fix.

1.   The use of the word "informative" in the first paragraph is a 
problem.   I don't think most people have any idea that in 
standards-speak "informative" has a different meaning than in normal 
English.  So to most people, that bit will just sound kind of dumb.   (I 
think it's a bad idea to ever use that word when we have a perfectly 
good alternative in "non-normative", but it's particularly problematic 
in the beginning of a primer.

I was thinking something like, "This document is a companion to a set of 
W3C standard, which are listed at the end of this introduction.  This 
document itself is not a standard, though."

2.  With my naive reader hat on, I was still feeling pretty confused at 
the end of 3.5, badly wanting a diagram.   Maybe move the one from later 
up to this point?   Not a show-stopper.

3.  Typo in 5.1, "habe"

4.  In 5.2 I think it's important to introduce N-Triples with saying 
it's a subset of Turtle.   That's the most important thing about it.

5.  In 5.2 I think we have a chance to push back against the biggest 
problem in RDF deployment.    Under RDF/XML I suggest:

  delete:  RDF/XML was the only normative syntax for RDF when RDF 1.0 
was published in 2004.

  add: When RDF was original developed in the late 1990s, this was its 
only syntax, and some people still call this syntax "RDF". In 2001, a 
precursor to Turtle called "N3" was proposed, and gradually the other 
syntaxes listed here have been adopted and standardized.

The main point is that for many years, all the way back to 1997 (I 
think, 1999 at least), it wasn't so much the "only normative syntax", it 
was the ONLY syntax.    .rdf files are RDF/XML. Professionals in this 
field still call RDF/XML "RDF".    We need to help newcomers understand 
this happens and what it means when it does.

6.  This is the hard one.   I was eagerly reading the document up to 
section 6. Semantics, just thinking like a programmer, and nodding in 
agreement as everything up to this point made perfect sense. Then I got 
hit with this stuff about "formal model-theoretic semantics" and 
"truth-preserving conditions", and it suddenly just seemed like 
handwaving and obscure "semantics" stuff I'd never care about.

I think this is a great place to explain to the RDF community WHY there 
are formal semantics and who might want to read rdf11-mt.   As the text 
is now I'm afraid it just feeds the feeling that rdf-mt is gobbledegook 
no one needs to pay attention to, unless they're working on a PhD.

Here's a strawman to show the kind of text I think we need:

    An overarching goal in the use of RDF is to be able to automatically
    merge useful information from multiple sources to form a larger
    collection that is still coherent and useful.   As a starting point
    for this merging, all the information is conveyed in the same simple
    style, subject-predicate-object triples, as described above.    To
    keep the information coherent, however, we need more than just a
    standard syntax; we also need agreement about the semantics of these
    triples.

    By this point in the Primer, the reader is likely to have an
    intuitive grasp of the semantics of RDF.  (1) The IRIs used to name
    the subject, predicate, and object are "global" in scope, naming the
    same thing each time they are used.  (2) Each triple is "true"
    exactly when the predicate relation actually exists between the
    subject and the predicate.  (3)  An RDF graph is "true" exactly when
    all the triples in it are "true".    These notions, and others, are
    specified with mathematical precision in the RDF Semantics document
    [RDF11-MT
    <https://dvcs.w3.org/hg/rdf/raw-file/default/rdf-primer/index.html#bib-RDF11-MT>].

    One of the benefits of RDF having these declarative semantics is
    that systems can make logical inferences.  That is, given a certain
    set of input triples which they accept as true, systems can in some
    circumstances deduce that other triples must, logically, also be
    true. We say the first set of triples "entails" the additional
    triples. These systems, called Reasoners, can also sometimes deduce
    that the given input triples contradict each other.

    Given the flexibility of RDF, where new vocabularies can be created
    when people want to use new concepts, there are many different kinds
    of reasoning one might want to do.  When a specific kind of
    reasoning seems to be useful in many different applications, it can
    be documented as an "entailment regimes". Several entailment regimes
    are specified in RDF Semantics.     For technical description of
    some other entailment regimes and how to use them with SPARQL, see
    SPARQL 1.1 Entailment Regimes
    http://www.w3.org/TR/sparql11-entailment/ .   Note that some
    entailment regimes are fairly easy to implement and reasoning can be
    done quickly, while others require a very sophistical techniques to
    implement efficiently.  Some entailment regimes have been proven to
    be intractable, but they might still be useful for small data sets.

    ... then go into the rdfs:domain example ...

I'm not attached to any of that wording -- I hope someone else can do 
better -- but hopefully you see how I'm trying to convey things people 
really need to know to operate in the RDF space without making a lot of 
assumptions about what they already know.   I think we have to do 
something like that.

With these changes, the document will be perfect.    :-)     Keep up the 
good work.

       -- Sandro

Received on Friday, 31 January 2014 20:32:26 UTC