W3C home > Mailing lists > Public > public-owl-wg@w3.org > April 2009

Re: Review of the RDF Mapping (Action 315)

From: Peter F. Patel-Schneider <pfps@research.bell-labs.com>
Date: Mon, 06 Apr 2009 17:53:39 -0400 (EDT)
Message-Id: <20090406.175339.92664533.pfps@research.bell-labs.com>
To: schneid@fzi.de
Cc: public-owl-wg@w3.org
> Hi!
> This is my review of the RDF Mapping. Well, not quite, there is one
> issue that I consider significant enough to have a separate mail on
> it. This mail also contains medium problems (marked by "!") and even
> somewhat serious issues (marked by "!!!"), everything else is
> non-critical. Besides these points, the document is in LC-shape.
> Note: I did not look into Evren's review, so there may be overlap.
> * 2.1, 1st par: The explanation there ("recursive definition") is hard
> to understand. I admit that I did not get it even after reading it a
> second time. Perhaps explain by example, or reword the text.

I'm not sure how to reword and keep both brevity and correctness.  I've
made a slight change, which might help.

> * Table 1, property restrictions: The triple order in cardinality
> restrictions is first *cardinality, second onProperty. For value
> restrictions it's the other way around. Let's have a common order: That
> of cardinality restrictions, because there the "characteristic" triple
> comes before the "boring" onProperty. Same for 3. This will also ease
> the comparison with the RDF-Based Semantics, which also uses a coherent
> ordering (I hope :)).

I've put the onProperty first, as it is common to everything, and
doesn't bury the characteristic triple in the middle.

> * 2.2, second example:
>    AnnotationAssertion( a:Peter
>        Annotation( ... )
>        rdfs:label "Peter Griffin"
>    )
> I think the order of the arguments is wrong: Shouldn't it be:
>    AnnotationAssertion( 
>        Annotation( ... )
>        rdfs:label a:Peter "Peter Griffin"
>    )
> ?

Yes, fixed.

> * 2.2, both examples: Why is the string "Peter Griffin" mapped to
> /"Peter Griffin"^^xsd:string/? Why not to a plain literal?

Yes, and should be so written.  Fixed in several places.

> * 2.3.1, 2nd par: "This is the case for the following axioms:"
> Actually, some of these axioms can also be built with complex
> class/property expressions on their LHS and RHS, and will then be mapped
> to a multi-triple RDF encoding. Thus, I suggest to say something like:
> "This [may be] the case for the following axioms:"

No.  If there a complex sub-constructs, then these triples don't count.
I've upgraded the discussion to make this clear.

> * 2.3.1, par after 1st example: duplicate "such".


> * 3, 1st and 2nd par: Both paragraphs speak about "ontology documents
> that can be parsed into RDF graphs". There seems to be some redundancy,
> maybe rephrasing the two paragraphs is helpful. Further, I don't know
> whether "ontology documents" should be mentioned at all, since the RDF
> mapping entirely deals with (abstract) RDF graphs.

I believe that any redundancy here is benign, and maybe useful.  The
talk about documents is to allow later talk about importing.

> * (!) 3, 3rd par: "If a triple pattern contains a variable number of
> triples, the maximal possible subset of G MUST be matched." I consider
> this statement a very important rule. Currently, it is surrounded by
> rather informal statements, so people will easily overlook it. It should
> probably be separated from the rest of the text, similar to the
> restrictions to punning in 3.2.1.

I've half-separated it, by putting the notation stuff into a separate
paragraph.  I've also added a "Note that".

> * 3.1, 1st par: The sentences misses a "." at its end.


> * 3.1.1, item list:
> ** Shouldn't this be an ordered list (1,2,3)?

OK.  Changed.

> ** I would say that in the 2nd item, the phrase "using an appropriate
> RDF syntax" is redundant (at least it doesn't seem to provide any
> relevant information for the rest of the document).

Agreed.  Fixed.

> * Table 4, both entries, LHS: I think there should be another constraint
> "{ k >= 0 }" to make clear that there do not need to be any import
> directives.

OK.  Added.

> * (!) Table 5, entry on "owl:Ontology": I think these triples are
> already removed in Table 4, so the entry seems redundant to me.

These are for other "ontologies", e.g., the target of imports triples.

> * (!) Table 8, and preceding text: I don't think that talking about
> "anonymous individuals" is a good idea here. This term is defined in
> Section 5 of the Structural Spec and means something different. None of
> these blank nodes are anonymous individuals, but are rather "syntactic"
> "root nodes" for connecting multi-triple encodings of language
> constructs. I currently call them "root node" in the RDF-Based
> Semantics, but I'm open for a better name.

Changed to "Reification Nodes".

> * (!) Table 10, both entries, LHS: According to the texts, "z" may be an
> IRI or a blank node. But what is with literals?

Oops.  Added literal to this mix.

> * Table 16, owl:hasKey: Is it deliberate that the sets "y1,...",
> "z1,..." and "w1,..." are not enclosed in "{ }"? Looks like a typo.

You mean in T(SEQ y1 ... yn) etc.  Yes, this is very deliberate.  These
are not sets.

> * Table 16, deprecation vocabulary: I guess that it is deliberate that
> there are no constraints such as "CE(*:x) or DR(*:x) (for
> DeprecatedClass)? Just for the case that this has been overlooked.

Hmm.  This is semi-deliberate, I guess.  It could be added, I supposed,
but the given translation picks up some RDF graphs that would otherwise
not be captured.

> * Table 16, annotation axioms (subproperty, domain, range): as for
> deprecation: There are no constraints, but I again guess that this is
> deliberate?

Annotation subproperty has the constraints.  The other two don't, as
there is no requirement that domains and ranges of annotation properties
be classes - they could be datatypes, for example, or just about

> * Table 17: The LHS of the table entry refers to "Table 17". But this
> table *is* Table 17.

Table 16!

> * (!) Table 17: The table contains the triple "s *:p o .". According to
> the conventions in 1, "o" denotes either an IRI or a blank
> node. However, literals should also be possible. I suggest to explicitly
> state this in the table, instead of introducing yet another convention
> symbol.


> * Text preceding Table 18: "Finally, the patterns from Table 18 are
> matched in G, the resulting axioms are added to OG." Replace the second
> "," by an "and"?

Yes, fixed.

> * Table 18: For the singleton "unionOf" and "intersectionOf" axioms, the
> LHS contains "y1", while the RHS contains "y".


> * (!!!) Table 18: I think that the OWL 1 RDF Mapping allows for
> AllDifferent axioms with empty and singleton sets, just as for the
> booleans and enumerations. However, Table 16 only covers cases for n >=
> 2. So there probably should be two additional mappings for these
> scenarios in Table 18 as well.

Not so.  The syntax in OWL 1 is:

fact ::= 'SameIndividual(' individualID individualID {individualID} ')'
      | 'DifferentIndividuals(' individualID individualID {individualID} ')'

> Best,
> Michael

Diffs are:


Received on Monday, 6 April 2009 21:51:51 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 6 April 2009 21:51:53 GMT