- From: Pat Hayes <phayes@ihmc.us>
- Date: Fri, 21 Dec 2007 11:47:48 -0800
- To: "Michael Schneider" <schneid@fzi.de>
- Cc: "Jeremy Carroll" <jjc@hpl.hp.com>, "Owl Dev" <public-owl-dev@w3.org>
>[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