Review of the Syntax document (action 312)

Hi Boris & al,

here is my review result for the document. Summary: one slightly (but
only slightly!) more substantial comment and a bunch of editorial
issues. Overall, the document looks good (not an easy read but, hey,
that is life:-)

Ivan

=========== (Slightly) more substantial issue =============

As far as I could see, the 'Declaration(' terminal symbol in the
language is not necessary. Ie, it would be perfectly o.k. to write simply

Class(<URI>)

instead of the more verbose

Declaration(Class(<URI>))

if I am right, I would propose to drop the 'Declaration(' part. It does
means some more editorial work in the syntax and the mapping document,
but it does not seem to be a huge one. Actually, it would also make it a
little bit closer to the RDF way of declaration, which is a plus.

(I realise this change request comes a bit late in the game, so I will
not stick to it if the overall feeling is that it is not worth the trouble)


=========== Editorial issues ==============

General remark referring to many different sections, related to the
texts on OWL 2 DL restrictions (eg, in section 5.1): I wonder whether it
is possible, through some typesetting trick, to very clearly identify
the DL restrictions in the text visually. Eg, putting (via some CSS
statement, for example) a colourful vertical bar on the left of the
text, or something similar. It is a bit easy to miss those statements
and they are fairly essential in the DL/Non DL switch...

-----
Abstract:
it says:

[[[
If certain global restrictions on OWL 2 ontologies are followed,
resulting in OWL 2 DL, then reasoning over ontologies can be performed
using techniques well known in the literature.
]]]

which still reflects a bias towards DL only world:-) I would either
remove this sentence altogether, or say something like:

[[[
Reasoning over ontologies can be made on the basis of either the RDF
Based Semantics[ref] or the Direct Semantics[ref]. If certain global
restrictions on OWL 2 ontologies are followed, resulting in OWL 2 DL,
using the Direct Semantics allows reasoning to be performed using
techniques well known in the literature.
]]]

------
Introduction, the javascript buttons

- the label 'Hide RDF syntax' is a bit misleading. It should be
something like 'Hide/show examples in RDF'

- I wonder why the buttons are placed in the middle of the text. I think
the button row should be moved either to the end of the introduction or
the beginning, but not be placed in the the text flow (I actually
believe it should be moved to the end of the intro, but I can go either way)

- It may make sense to give an option to hide the functional syntax in
the examples. If I look at the document without the grammar, ie, only
the diagrams, then I may want that. The combination of diagram+no
grammar+no FS examples+RDF examples would then provide a document
concentrating on the structure and RDF only...

------
Introduction, third paragraph:

"subset of OWL 2 with favorable computational properties and that can be
reliably recovered from an RDF graph." I must admit I do not fully
understand the meaning of the 'reliably recovered from and RDF graph' here.

------
Introduction, penultimate paragraph

I says " The examples in this document are informative and any part of
the document that is specifically identified as informative is not
normative." I wonder whether we should make it clear here that the RDF
versions of the examples correspond to the RDF Mapping of the structural
syntax.

------
2.1 Structural specification

(Caveat: I am _not_ familiar with the UML terminology!)

- I must admit I got a bit messed up because the term 'class' in the
section is, I believe, used in the UML sense and not in the OWL sense. I
wonder whether it would not be possible to use another term instead
(acknowledging the fact that the official UML terminology uses that
term:-). Unfortunately, that term is used elsewhere in the document,
too, like "In the structural specification, IRIs are represented by the
IRI class" (beginning of 2.3). At the minimum, at all occurrences of
this type we should say 'UML class'...

- Right before the last example, the text says "Duplicates should be
eliminated from such constructs during parsing.". I presume what was
meant is during mapping to the structure. I associate the term 'parsing'
to the process turning, say, the RDF/XML or Turtle file into RDF
triples. I propose to avoid the term in this context and use 'mapping'
instead.

-----
2.2. BNF notation, last sentence:

"Whitespace and comments cannot occur within terminal symbols (explicit
or defined) other than quotedString". Either write "quoted string" or
refer to the definition of what quotedString means. This is the first
occurence of this term in the text...

----
2.3. IRIs and namespaces

- the SPARQL reference is missing from the reference list

- "To this end, commonly used IRIs — called namespaces — are associated
with a prefix" -> "To this end, commonly used IRIs — called namespaces —
are associated with a prefixes" (I could read the original text by
saying that the same prefix can be used with several IRI-s

- definition of abbreviated-URI: "a string matching the as PNAME_LN" ->
"a string matching the PNAME_LN"

- Although in a different section, but belonging to the issue of our own
version of curies: the very end of section 3.7 still refers to CURIE-s.
I presume that whole portion should be reformulated referring to the
abbreviated syntax of IRI-s instead. The CURIE reference becomes than
unnecessary in the reference list.

- Also: Section 13.1 still refers to the curie rules for IRI-s. That
should also be updated to the abbrevited IRI-s.

----
2.4. Integers, Stings, etc

The nodeID production refers to SPARQL (which is fine with me), but
section 13 refers to N triples for nodeID in 13.1. I guess the latter
should be updated to SPARQL, toov


------
3.6. Canonical parsing

The typesetting used for the items is such that 'CP-3.2' has a line
break after '-' and '3.2'. This is at least the way it looks in my
browser (Chrome) but also on Safari. I find it a bit difficult to read,
shouldn't that be in one line?

------
4. Datatype Maps

Last paragraph says: "The semantic consequences of OWL 2 ontologies
depend exclusively on the set of actually used datatypes [OWL 2 Direct
Semantics],...". Either remove the reference to the Direct Semantics or
refer to both semantics. I would be happy with the former.

------
4.1. Real numbers,

Remove the qualifier 'rich' from the first sentence. (What is rich or
not is not something we should define:-)

------
5.2 Datatypes

In the first paragraph: "All datatypes have arity one." This statement
comes a bit out of the blue: there is no preceding text explaining what
the term arity actually means with regard to datatypes. (I checked, this
is the first occurence of the word 'arity'...). I think some explanation
is necessary here, or a reference to data ranges where these are defined
further. Alternatively, the sentence can be removed from here and, in
the data range section, make it clear that all the basic data types have
an arity one.

------
5.6.2. Anonymous individuals

The text says "The latter is achieved by standardizing anonymous
individuals apart ". The word "standardizing" sounds a bit funny in a...
standard:-) Could we use some other term here? (The same term is used in
the example)

------
5.9 Metamodeling

The text in the example says "the class view of a:Species is interpreted
as a unary predicate, while the individual view of a:Species is
interpreted as a constant". Shouldn't that refer to a:Dog rather than
a:Species?

-------
7.1 Intersection of Data ranges

The current specification says

"An intersection data range DataIntersectionOf( DR1 ... DRn ) contains
all data values that are contained in the value space of every data
range DRi"

But a data range is defined to consist of (tuples of) literals; each
literal being a combination of a lexical form and a dataype per section
5.7. Ie, mathematically, the definition should something a bit
convoluted like

"An intersection data range DataIntersectionOf( DR1 ... DRn ) contains
all literals whose mapping to data values are contained in the value
space of every data range DRi"

As the same formulation is used for union, enumeration, etc, maybe the
best approach is to put something after the figure at the beginning of
section 7 to say that we will use a simplified formulation to reduce the
complexity of the proze. Actually, I am not sure the value space of a
data range is defined; the definition only says it is a set of literal
tuples...

(I may misunderstand something here)

-------
8.2.2. Universal Quantification

I wonder whether an example could be used that does not use cardinality
restriction. This features comes later in the text and for a user it is
a bit disturbing to find a non-trivial feature at that point...
(recognizing the necessity, in _this_ example, to use the cardinality
expression:-(

-------
8.3.1. Minimum cardinality

The RDF example should use owl:minQualifiedCardinality and not
owl:minCardinality

-------
8.3.3. Exact cardinality

The RDF example should use owl:qualifiedCardinality and not owl:cardinality

-------
9.5 Keys

- I just wonder whether one of the examples could be modified to use
more than one properties in Keys. This is one major aspects of keys that
is not emphasized here...

- In the last example in this section, the RDF encoding has a bug: the
last two occurences of _:x should be _:z.

------
9.6.2. Individual inequality

For a person coming from OWL 1 + RDF the example might suggest that the
old owl:differentFrom does not exist any more. Maybe an extra tiny
example that simply refers to two individuals instead of three might put
that person's mind at ease:-)

-------
9.6.4. Positive Object Property Assertions

I got mixed up for a moment reading the comment in the example 'Things
having a dog are dog owners' and looking at the code seeing
'owl:Thing'... and that did not look right (although it is!). I would
rather say 'Individuals having a dog are dog owners' or something like that.

I would also use the term 'individual' in 9.6.6. rather than 'Thing' in
the comment to the example

-----
9.6.5. Negative Object Property Assertions and
9.6.7. Negative Data Property Assertion

The RDF encoding seems to be wrong in both cases. The mapping uses
owl:sourceIndividual, owl:assertionProperty and owl:targetValue, and not
the rdf terms.

-----
11.1 Property hierarchy

Explanation text under the example: the preceding definitions defined
'composite' and 'simple'. I am not sure we have the formal definition of
'nonsimple' being composite. Ie, isn't it more precise to say:

"The object property a:hasUncle occurs in an object subproperty axiom
involving a property chain, so it is composite. Consequently, the object
property a:hasRelative is not simple, because a:hasUncle is a composite
subproperty of a:hasRelative."

------
11.2 Restrictions

- Example 'a particular kind of cyclic definitions' (right before
'restrictions on the usage of anonymous individuals") the explanation
text says 'As per the fourth and the fifth bullet'. But this is not 100%
clear, it is the "As per the fourth and the fifth bullet of the third
bullet" which is a bit ugly:-( Maybe by giving number 1, 2, 3, 3.1, 3.2,
3.3, etc, to those restrictions they can be back-referred unambiguously.
The same problem occurs in the previous example which refers to the
'third bullet', and this is not clear either (well, one can find out in
both cases thinking through the meaning of the examples, but it would be
better to make it cleaner).

- Example on the usage of an. individuals, explanation right after the
example and before the rolled up version: it should say _:a1 instead of _:x.









-- 

Ivan Herman, W3C Semantic Web Activity Lead
Home: http://www.w3.org/People/Ivan/
mobile: +31-641044153
PGP Key: http://www.ivan-herman.net/pgpkey.html
FOAF: http://www.ivan-herman.net/foaf.rdf

Received on Friday, 27 March 2009 16:55:36 UTC