[OWLWG-COMMENT] Re: Cardinality Restrictions and Punning

>[public comment to OWL-1.1 WG discussion]
>
>Hi Jeremy!
>
>Jeremy Carroll wrote on Thu, 20 Dec 2007
>in <http://lists.w3.org/Archives/Public/public-owl-wg/2007Dec/0239.html>:
>
>>  Hmmm, this is tricky, harder than I thought.
>>
>>  Some examples. I'm struggling as to the discussion.
>>
>>
>>  Example 1:
>>  Consistent:
>>  [punning on eg:p]
>>
>>  eg:a rdf:type owl:Thing .
>>  eg:a eg:p   eg:a .
>>  eg:p rdf:type owl:ObjectProperty .
>>  eg:p rdf:type owl:DataProperty .
>>  _:r rdf:type owl:DataRestriction .
>>  _:r owl:maxCardinality "0"^^xsd:int .
>>  _:r owl:onProperty eg:p .
>>  eg:a rdf:type _:r .
>
>While you do not explain what your mail is about, I believe that you are
>searching for an example which shows problems or dangers resulting from the
>interplay between data/object property punning, cardinality restrictions,
>and OWL-DL vs. OWL-Full semantics. Is it this what you are looking for?
>
>If yes, then the following example RDF graph {(R1*)} might be of interest to
>you, because it is a consistent ontology in OWL-1.1-DL, but it is
>*inconsistent* in OWL-1.0-Full.
>
>Of course, the RDF compatible semantics for OWL-1.1 will have to be
>constructed in a way that the graph {(R1*)} becomes consistent.

I don't agree. One should expect that the Full semantics will support 
more entailments than the DL semantics does, since the Full version 
is obviously a more expressive language than the DL. A special case 
of this is exactly the situation you describe, where an ontology 
which is consistent in DL is inconsistent in Full. I would be more 
worried if you could find an example the other way round.

>Otherwise I
>would not be willing to say that OWL-1.1-Full is in any way "compatible"
>with OWL-1.1-DL.

I would expect that xx-Full is a more powerful (expressive, whatever) 
language than xx-DL, so any xx-DL entailments are also xx-Full 
entailments,but not necessarily the other way around. And this might 
apply even on sentences which are syntactically in the xx-DL subset. 
In other words, the relationship between OWL-Full and OWL-DL is 
somewhat like that between OWL-DL and RDFS, and between RDFS and RDF.

>Whether and how this can be achieved will be an interesting
>question.
>
>Here is the example graph, which is just a slightly modified version of your
>"Example 1" above:
>
>   (R11) eg:a rdf:type owl:Thing .
>   (R12) eg:b rdf:type owl:Thing .
>   (R13) eg:a eg:p eg:b .
>   (R14) eg:p rdf:type owl:ObjectProperty .
>   (R15) eg:p rdf:type owl:DataProperty .
>   (R16) _:r rdf:type owl:DataRestriction .
>   (R17) _:r owl:maxCardinality "0"^^xsd:int .
>   (R18) _:r owl:onProperty eg:p .
>   (R19) eg:a rdf:type _:r .
>
>The differences are that we now have an additional individual 'eg:b' defined
>in (R12), and (R13) is not a loop triple anymore.
>
>This graph can be translated into the following Functional Syntax ontology:
>
>   (F11) Declaration(Individual(eg:a))
>   (F12) Declaration(Individual(eg:b))
>   (F13) ObjectPropertyAssertion(eg:p eg:a eg:b)
>   (F14) Declaration(ObjectProperty(eg:p))
>   (F15) Declaration(DataProperty(eg:p))
>   (F16) ClassAssertion(eg:a DataMaxCardinality(0 eg:p))
>
>>From this one can see that the ontology is *consistent* w.r.t. OWL-1.1-DL
>semantics including property punning. This is the case, because (F13) refers
>to to eg:b as an /Individual/, so eg:p is an /Object/Property in (F13). But
>the cardinality restriction in (F16) refers to eg:p as a /Data/Property,
>which may be different from the ObjectProperty eg:p.

Dear god. Punning is supposed to be MORE intuitive than RDF-style 
semantics?? Seems to me that this obviously, on its face, should be 
inconsistent, and any semantics that fails to make it so is seriously 
broken. After all, the object/data distinction has no SEMANTIC 
justification at all. It was introduced solely to make the DL 
reasoners work faster. To take a premature optimization hack like 
this and warp the basic semantics to fit it, sacrificing even common 
sense along the way, seems to me like the worst of the worst in 
semantic engineering.

If the language must support the data/object distinction - and I 
suppose there is no way at this stage to go back on that particular 
bad decision - then it would be better all round, I suggest, to 
simply forbid property punning between the two categories. Punning is 
a hack, but punning between classes and individuals and even between 
properties and individuals is workable for the same reason that the 
hilog semantics is workable: the immediate syntactic context 
disambiguates the intended meaning for every occurrence of the name. 
However, the object/data distinction is quite different: it amounts 
to a sort distinction in FOL. To allow punning between different 
sorts, as opposed to different logical/lexical categories, is 
shooting oneself in the foot, as the whole point of sorts in a logic 
is that the immediate syntactic context does NOT disambiguate them 
(which if you think about it is why they are so useful, most of the 
time), so there is no clear way to keep track of the consequences of 
the punning. All these examples attest to this, in fact.

This is the first I have heard of 'property punning'. Is there a 
compelling use case for it? If not, I suggest dropping the idea.

Pat



Pat

-- 
---------------------------------------------------------------------
IHMC		(850)434 8903 or (650)494 3973   home
40 South Alcaniz St.	(850)202 4416   office
Pensacola			(850)202 4440   fax
FL 32502			(850)291 0667    cell
phayesAT-SIGNihmc.us       http://www.ihmc.us/users/phayes

Received on Friday, 21 December 2007 19:48:07 UTC