- From: Peter F. Patel-Schneider <pfps@research.bell-labs.com>
- Date: Tue, 07 Apr 2009 11:00:42 -0400 (EDT)
- To: schneid@fzi.de
- Cc: public-owl-wg@w3.org
From: "Michael Schneider" <schneid@fzi.de>
Subject: Issue with RDF encoding of inverse property axioms/expressions
Date: Tue, 7 Apr 2009 16:25:23 +0200
> All!
>
> While reviewing the RDF Mapping, I found the following issue, which I
> think is worth being presented in a separate mail.
>
> The basic observation is that "inverse property" expressions and
> axioms may have the same form in RDF. AFAICS, this may lead to a
> problem with the mapping. For example, consider (omitting
> declarations):
>
> _:x owl:inverseOf :p .
> _:x owl:inverseOf :q .
>
> I would normally expect that this is a legal OWL 2 DL ontology (in RDF
> graph form).
This is *not* an OWL 2 DL ontology in RDF graph form, because it is
missing typing for :p and :q. The typing is needed to make the mapping
rules work. I have an analysis of the fixed version below.
> The first problem is, however, what the corresponding FS
> ontology will be. Is it
>
> InverseObjectProperties( ObjectInverseOf(:p) :q )
>
> or
>
> InverseObjectProperties( ObjectInverseOf(:q) :p )
>
> ? Well, at least semantically, this would not be a problem, because
> both axioms have the same meaning.
>
> However, when looking at the mapping rules, it turns out that the RDF
> graph above does not even map.
>
> Table 11 about object property expressions defines:
>
> IF
> _:x owl:inverseOf *:y .
> { OPE(_:x) = ε and OPE(*:y) ≠ ε }
> THEN
> OPE(_:x) = ObjectInverseOf( OPE(*:y) )
>
> And Table 16 on axiom parsing defines:
>
> IF
> x owl:inverseOf y .
> { OPE(x) ≠ ε and OPE(y) ≠ ε }
> THEN the following axiom is added to O_G
> InverseObjectProperties( OPE(x) OPE(y) )
>
> First, the canonicial parsing process uses Table 11 to construct the
> "OPE(.)" function. WLOG (for symmetric reasons), the first of the two
> triples in the graph is chosen. This leads to
>
> OPE(_:x) = ObjectInverseOf( OPE(:p) )
This doesn't work because OPE(:p) is not acceptable to the side
conditions of the rule.
> Afterwards, the first triple is removed from the graph.
>
> The second triple won't be chosen anymore, since now OPE(_:x) !=
> epsilon. Fine!
>
> Now, the canonical parsing process tries to use Table 16 to build an
> axiom. However, the remaining (2nd) triple cannot be mapped, since
> OPE(_:x) != epsilon.
This is the wrong way around. OPE(_:x) *is* acceptable, but OPE(:q) is
not.
> So this graph cannot be mapped. :(
But not for the reasons you state.
> How do we cope with this? IMO, the easiest way is to just leave things
> as they are: An RDF graph as the one above is not a valid OWL 2 DL
> ontology. I think, that's fine, because, AFAIU, it hasn't been a valid
> OWL 1 ontology, either.
>
> What do you think?
>
> Michael
Here is an analysis of the situation with the correct typing triples:
:p rdf:type owl:ObjectProperty .
:q rdf:type owl:ObjectProperty .
_:x owl:inverseOf :p .
_:x owl:inverseOf :q .
The patterns in Table 6 match on the rdf:type triples
and then OPE is initialized (Table 9) so that
OPE(:p) = :p
OPE(:q) = :q
Then the pattern in Table 11 matches (in exactly one of two ways)
resulting in, w.l.o.g.,
OPE(_:x) = ObjectInverseOf(:p)
Then the pattern in Table 16 matches, generating the axiom
InverseObjectProperties(ObjectInverseOf(:p) :q)
peter
Received on Tuesday, 7 April 2009 14:58:50 UTC