RE: Punning between properties types

Bijan, thanks for your prompt reply. Please find my comments/understanding
below:

> -----Original Message-----
> From: public-owl-dev-request@w3.org [mailto:public-owl-dev-
> request@w3.org] On Behalf Of Bijan Parsia
> Sent: Friday, November 07, 2008 9:52 PM
> To: Dimitrios Koutsomitropoulos
> Cc: public-owl-dev@w3.org
> Subject: Re: Punning between properties types
> 
> 
> On 7 Nov 2008, at 17:53, Dimitrios Koutsomitropoulos wrote:
> 
> > Hello all,
> >
> > Regarding the punning issue in OWL 2, I notice than in the new OWL
> > 2 semantics document [1], in the changes summary,  punning has been
> > disallowed between object and data properties.
> >
> > The relevant issue [2] is resolved based on the fact that “there
> > are no use-cases” or “we don’t know how to do it”.
> 
> No no no! Some people might believe these things but I certainly and
> vocally don't ;) There are plenty of use cases and we do know how to
> do it. The problem is that in order to disambiguate certain punning
> cases in RDF triples we need to introduce new logical vocabulary
> (since there is no context for the occurrence of a URI node...there's
> only one in the whole graph). Some people (most prominently, HP)
> objected to this. So, the compromise was to through out all sorts of
> punning that in the RDF serialization required new vocabulary.
> 
> > From this I understand that an <owl:objectProperty> cannot be
> > treated as an <owl:datatypeProperty> and vice-versa.
> 
> This is true.
> 
> > However what is the deal with <rdf:property> ?
> 
> There's no such thing, really, in OWL 2 non-full. Every property is
> required to be one or the other (or an annotation propery).

So the only legal way for an <rdf:property> to be treated by an OWL 2 tool,
is to consider the ontology as OWL 2 full. Where I presume this property
would be considered *both* as object- and data- and not punned. But it would
still be syntactically correct, whereas in OWL 2 DL it is not allowed.

> 
> > When an rdf ontology is loaded by a reasoner or an application ,
> > how should it treat a generic <rdf:property>?
> 
> The spec does not say. In the extreme case it could reject the
> ontology as malformed (for DL reasoning). Or it could ask the user.
> Or it could attempt some repair using heuristics. Or it could pass it
> on to an OWL Full mode (if there is such).

This fullness should imply that no reasoning is to be attempted?
> 
> > I see three options:
> >
> > -          Such properties should be totally ignored (or should not
> > exist all along)
> > -          Should be considered only of a fixed type (either data -
> > or object-)
> > -          Should be punned based on their use
> 
> The latter is possible in some cases, but not in every case. A simple
> example, suppose you have P and C as terms in your ontology and the
> declarations:
> 
> ObjectProperty(P)
> DataProperty(P)
> Class(C)
> Datatype(C)
> 
> Now, what do you do with the expression P some C? Is it an
> objectproperty somevalues from or a dataproperty somevaluesfrom, or
> both? More to the point what if you want to say that something was P
> (object) some C and P (data) all not (datatype) C?
> 
> Those parens don't work in RDF.
> 
> Now, in many cases we can make good guesses. Tools will have to come
> up with them :)

Therefore, punning on the types of properties *can* work, at least in some
cases, without fullness. For example for those where there are no
restrictions on such properties. Shouldn't this part be considered by the
OWL 2 spec?


> 
> > Latest Protégé 4 (b. 103) seems to follow the last option, with
> > which I personally agree. This is also supported by the latest FaCT+
> > + (1.2.0)
> 
> There is another option: "Determined based on what we can glean of
> their use".
> 
> > However Pellet 2.0 throws exceptions. Is this a bug or a feature,
> > considering the above resolution?
> 
> It is conforming. The specs don't say what to do with non-conforming
> ontologies. I'd say that one would hope that the tools will do better
> than throw an exception.
Is there a way to guide Pellet to "overcome" such properties? It just seems
to consider such properties only as object ones and rejects the ontology
when it finds out that they (may) reference data values (I should have
posted this elsewhere but I couldn't help it, sorry)

> 
> > In addition, should Protégé 4 and FaCT++ drop this feature?

What about Protégé and FaCT++ then? Are they not conforming?

> > Finally, is this perhaps an issue different than punning between
> > properties (i.e. has nothing to do)?
> 
> 
> It's related.
 
 Same with me. Therefore, the WG should look into this. Or at least specify
what apps *may* do in such cases.

Dimitrios

Received on Friday, 7 November 2008 20:34:29 UTC