W3C home > Mailing lists > Public > www-rdf-logic@w3.org > February 2006

Re: using owl:restrictions

From: PL. Miraglia <pierlu.m@gmail.com>
Date: Mon, 20 Feb 2006 00:53:10 -0600
Message-Id: <EED10CE9-8977-42F7-ADD4-E047276C146E@gmail.com>
Cc: public-owl-dev@w3.org, www-rdf-logic@w3.org
To: Bijan Parsia <bparsia@isr.umd.edu>


On Feb 19, 2006, at 11:36 AM, Bijan Parsia wrote:
....
>>
>> This is not what I meant. Logically, it defines a class A that is (a
>> subset of) the intersection of the set {x: Ey(Rxy & Py)} and Q.  What
>> I was trying to express is instead:
>>
>> {x: Ey(Rxy & Py)} is a subset of Q
>
>
> Ah, but you seem to think that prefix is the way to do it. It's  
> not. subClassOf is always infix:
>
>  <owl:Restriction>
> 	<owl:onProperty rdf:resource="#R"/>
>          <owl:someValuesFrom rdf:resource="#P"/>
> 	<rdfs:subClassOf rdf:resource="#Q"/>
> </owl:Restriction>

Thanks, I had miss this about subClassOf.

>
>> I was trying to figure how to express in owl these 2 logical
>> constraints on an arbitrary property (binary predicate) R:
>>
>> 1. (Ex)(Rxy & Qx) => Py
>>
>> 2. (Ey)(Rxy & Py) => Qx
>
> 	<http://www.mindswap.org/dav/ontologies/bijan/2006/examples/owl- 
> dev-2006-feb>
>
> does both.
>
>> (1) is straightforward in owl (or so I thought, perhaps I am wrong  
>> there too):
>>
>> <owl:Class rdf:about="#Q>
>>    <rdfs:subClassOf>
>>       <owl:Restriction>
>>          <owl:onProperty rdf:resource="#R"/>
>>          <owl:allValuesFrom rdf:resource="#P"/>
>>       </owl:Restriction>
>>    </rdfs:subClassOf>
>> </owl:Class>
>
> That gives you Qx => (Ey)(Rxy & Py). See my file for the correct  
> encoding.

> And didn't you mean "someValuesFrom"?

No i meant allValuesFrom. The meaning is

Qx => (Rxy => Py) , which in turn is equivalent to

(Qx & Rxy) => Py  (all variables are universally quantified).

>
>> (2) is the one I have a question about.  It seems that it can be
>> expressed in the "straightforward" form of (1), provided that IR (the
>> inverse of R) is used.
>
> Hmm. I missed the swap of the variables.. Yes, you need an inverse  
> in order to bind the first argument of a property with a nested  
> quantifier.
>
>> But is the inverse necessary?
>
> Yes. And, unfortunately, in owl you don't have an inverse operator  
> (as is standard in DLs), so you have to coin a name for the  
> inverse. Curse RDF! :)
>
> Cheers,
> Bijan.
>

This was quite helpful. Thanks,

--
Pierluigi Miraglia
@home Austin, Tex.
Received on Monday, 20 February 2006 06:53:18 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:52:51 GMT