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).

> 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).

> 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 :)

> 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.

> In addition, should Protégé 4 and FaCT++ drop this feature?  
> Finally, is this perhaps an issue different than punning between  
> properties (i.e. has nothing to do)?


It's related.

Cheers,
Bijan.

Received on Friday, 7 November 2008 19:49:32 UTC