- From: Ivan Herman <ivan@w3.org>
- Date: Fri, 27 Mar 2009 17:55:05 +0100
- To: Boris Motik <boris.motik@comlab.ox.ac.uk>
- CC: W3C OWL Working Group <public-owl-wg@w3.org>
- Message-ID: <49CD04E9.3040701@w3.org>
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