RE: Some advice on inferring negated properties

Bijan,

Thanks for the reply. I found it enlightening to say the least. I
haven't kept up to date on the developing features of OWL 1.1. We
probably won't use it in-house until it reaches the recommendation
stage. However, I do follow the discussions on this list, and feel that
the standard will be good. It already incorporates a lot of the problems
that we've encountered trying to data model using OWL.



> -----Original Message-----
> From: Bijan Parsia [mailto:bparsia@cs.man.ac.uk]
> Sent: Thursday, August 16, 2007 12:49 PM
> To: Swanson, Tim
> Cc: Owl Dev
> Subject: Re: Some advice on inferring negated properties
> 
> On Aug 16, 2007, at 7:16 PM, Swanson, Tim wrote:
> 
> > Am I missing something here?
> 
> I think so.
> 
> > It seems to me that, in order to say that the property assertion (a
> > P b) does not hold, you can say this:
> >
> > <owl:Thing rdf:about="#a">
> >   <rdf:type>
> >     <owl:Class>
> >       <owl:complementOf>
> >         <owl:Restriction>
> >           <owl:onProperty rdf:resource="#P"/>
> >           <owl:hasValue rdf:resource="#b"/>
> >         </owl:Restriction>
> >       </owl:complementOf>
> >     </owl:Class>
> >   </rdf:type>
> > </owl:Thing>
> 
> That's one way. (OWL 1.1 lets you do others.) I mentioned it in my
> email:
> 	"""ClassAssertion(a, ObjectComplementOf (ObjectHasValue(P,
> b)))""""
> 

This was an addition I wasn't aware of.

>From a modeling standpoint, ObjectComplementOf is great. While you can
imitate it, it requires brute force and/or preprocessing in all but the
most trivial cases (such as the one outlined above).

Is a complement property a full-fledged property (as an object class is
a full-fledged class)? Can you add subproperties to it, for instance?
This would result in a much richer property model and, as an ardent OWA
fan, would all by itself make OWL 1.1 worth the price of admission in my
opinion.

> > Although this seems verbose (especially in RDF/XML), it's really
> > just saying that 'a' is not a member of the set of things that have
> > the property 'P' with the filler 'b'.
> >
> > An approach like the one Bijan suggested:
> >
> >>> 	ClassAssertion(a, ObjectMaxCardinality(0, P, owl:Thing))
> >>> 	ClassAssertion(b, owl:Thing)
> >
> > Is making the more general assertion that a cannot have /any/
> > instances of property P.
> 
> Yep. But please recognize that I used that as an example of how to
> *entail* a negated property assertion. I wanted to have an example
> where you weren't just paraphrasing the assertion you were looking
for.
> 

I see, *entail* as opposed to *assert*.


> > The approach I've outlined above seems to make the assertion that a
> > specific property relationship is negated, and nothing else.
> 
> That works. In OWL 1.1 you can say it directly to, i.e.,:
> 	NegativeObjectPropertyAssertion(P, a, b)
>
 
That's great. Syntactic sugar for the above, and a direct
acknowledgement of OWL's OWA origins.

>
> (It's a a bit less pleasant in RDF/XML as you have to reify...here's
> hoping for better solutions. The abstract syntax and the XML syntax
> aren't so bad.
>

I've noticed a tendency in the hardcore OWL/RDF community to focus on
both OWL and RDF as abstract data models, and to view the output as a
low-level representation that's only of interest to machines. (The
debate on this list over using tools vs. text editors in relation to
"declaredAs" underscores this point.) While this is technically correct,
it is not the whole story.

We use RDF/OWL as a messaging format in distributed systems. As such, we
use the RDF/XML format exclusively. (This is why I gave my example above
in that format; it's only one I have a confident competence with.) While
the messages are certainly generated and consumed by machines,
developers need to be able to look at them during testing and debugging.
In a development environment, it is often helpful to be able to not only
read, but also write, small snippets of RDF/OWL. A readable syntax is a
must in this case. (Note that it does not need to be intuitive, merely
readable and learnable.)

Obviously, things like serialization are best tackled /after/ the
abstract syntax is finalized, but as you go forward, I implore to not to
ignore issues like readable serialization. (For the record, I like
RDF/XML just fine except for rdf:ID, and the OWL 1.0 RDF serialization
is pretty good too.)

>
> Also, the nominal form, well, requires nominals. Not all reasoners
> support them. A perhaps more flexible encoding in OWL 1.1 would be to
> use a dummy class and a qualified number restriction to 0 Ps to that
> class.)
> 
> > We've used this in our applications, so I'd like to know if we have
> > an incorrect understanding.
> 
> Only of my email, I think.
> 
> Hope this helps.
> 
> Cheers,
> Bijan.

I've seen a lot of teeth gnashing, hair pulling sort of discussions on
this list, and I thought it may help to know that there are those of us
out there who are fans of your collective work and are eagerly awaiting
the completed standard.


Keep up the good work,

Tim Swanson
Semantic Arts, Inc.
Fort Collins, Colorado

Received on Thursday, 16 August 2007 19:17:44 UTC