OWLRL (safeness)

I just read much of your OWL-RL document [1].  It's very nicely written
and thorough.

I did manage to find three typos:

> Note gain that the last universal fact is not executable by a
       ^?   "again" ?   if so, the referent is unclear to me

> The following table summarizes the which of the OWL 2 RL datatypes
                                 ^^^
> which only differ by virtual of the ABox assertions.
                            ^^ "virtue"

A general editorial note: I don't know how much automation you used in
generating this document, but if it's not too much trouble, it'd be nice
to keep the rule names in their translations (as links into OWL Profiles
like [2] when it's HTML).

Looking at the Haskey rule, I think we can make it safe by
moving/repeating the type-check on ?c down into _sameKey, like this:

  Forall ?x ?y ?c ?u ?c (
    ?x[owl:sameAs->?y] :- And (
      ?c[owl:hasKey->?u]  ?x[rdf:type->?c]  ?y[rdf:type->?c]
      _sameKey(?c ?u ?x ?y) ))

  Forall ?u ?x ?y (
    _sameKey(?c ?u ?x ?y) :- And (
      ?u[rdf:first->?key rdf:rest->?tl]
      ?x[?key->?v] ?y[?key->?v]
      _sameKey(?c ?tl ?x ?y) ))

  Forall ?x ?y (
    _sameKey(?c rdf:nil ?x ?y) :- And (
       ?x[rdf:type->?c]  ?y[rdf:type->?c]
    )

The document doesn't say that 4.3.2 and 4.3.4 also violate safeness
(maybe that's the "again" referent?), but it looks to me like they do.
I think we can make safe versions, though, using the same kind of trick,
where we bring some tests down into the universally-quantified recursion
base case.   If that works, does that obviate the need for the second
appendix/translation approach?

      -- Sandro

[1] http://www.w3.org/2005/rules/wiki/OWLRL
[2] http://www.w3.org/TR/owl2-profiles/#prp-key
[3] http://www.w3.org/2005/rules/wiki/OWLRL#Haskey_rule

Received on Wednesday, 10 December 2008 05:11:55 UTC