W3C home > Mailing lists > Public > public-owl-dev@w3.org > April to June 2007

Re: Repeated use of same property in Restricitions for same Class

From: Bijan Parsia <bparsia@cs.man.ac.uk>
Date: Tue, 10 Apr 2007 14:24:28 +0100
Message-Id: <3EFAD285-FBE8-456F-9AE1-796BAE762C42@cs.man.ac.uk>
Cc: public-owl-dev@w3.org
To: Hans Teijgeler <hans.teijgeler@quicknet.nl>

On 10 Apr 2007, at 12:26, Hans Teijgeler wrote:

> Hi Bijan,
>
> Thanks for your quick response!
>
> It seems that I am caught between the devil and the deep blue sea.  
> It is
> hard to believe that OWL doesn't fully support something  
> fundamental as
> cardinalities :-(

Yes, I was late to the game, but strongly against not having them.  
See the issue:
	<http://www.w3.org/2001/sw/WebOnt/webont-issues.html#I3.2-Qualified- 
Restrictions>

There's a history there.

> The someValuesFrom doesn't work for me,

Yeah, it's only for that case.

> because I need all the QCRs that you
> can think of.

Then you pretty much *have* to use OWL 1.1. Fortunately, it's getting  
pretty well supported (I expect all the reasoners that had already  
supported QCRs will soon support OWL 1.1 syntax (i.e., Racer and  
Kaon2); FaCT++ already does; Pellet 1.4 added QCR support as well as  
the OWL 1.1 syntax support; new versions of Protege and Swoop support/ 
will support the syntax, etc. etc.).

The syntax may shift a little, but the OWL API already supports all  
the OWL 1.1 syntaxes and will (I believe) support forward migration.  
So any little changes (e.g., of namespaces) will be pretty  
transparently handled.

> Would you do me a favor and show how to represent in OWL 1.1 style:
> "Any member of the Pump class hasAsPart:
> 	- 2 to 6 members of the Bearing class
> 	- 1 member of the Casing class
> 	- 0 to 1 member of the VibrationMonitor class "

"""    <owl:Class rdf:about="#Pump">
         <rdfs:subClassOf>
             <owl:Restriction>
                 <owl:onProperty rdf:resource="#hasAsPart"/>
                 <owl11:onClass rdf:resource="#Bearing"/>
                 <owl:maxCardinality  
rdf:datatype="&xsd;nonNegativeInteger">6</owl:maxCardinality>
             </owl:Restriction>
         </rdfs:subClassOf>
         <rdfs:subClassOf>
             <owl:Restriction>
                 <owl:onProperty rdf:resource="#hasAsPart"/>
                 <owl11:onClass rdf:resource="#Bearing"/>
                 <owl:minCardinality  
rdf:datatype="&xsd;nonNegativeInteger">2</owl:minCardinality>
             </owl:Restriction>
         </rdfs:subClassOf> ..."

For the complete worked example, see:
	<http://owl1-1.googlecode.com/svn/trunk/ontologies/example-for- 
teijgeler-qcrs-apr2007.owl>

I added it to the example ontologies page:
	<http://code.google.com/p/owl1-1/wiki/ExampleOntologies>

If you end up making more examples that are sharable, please let me  
have a pointer!

I added a restriction (min 10 casings) to make the class  
unsatisfiable. This was detected by both FaCT++ and Pellet.

> (the list goes on and on, so a workaround with subproperties is not  
> viable,
> because we have thousands of classes as well)

And would be awful in any circumstances :) (Plus, it wouldn't be  
correct.)

> This will be very helpful!
>
> Regards,
> Hans
>
> PS1 I tried to find owl:onClass or onClass you used below in that  
> family
> stuff, but it wasn't anywhere in your documents.

It is in the RDF mapping:
	<http://www.webont.com/owl/1.1/rdf_mapping.html>
e.g.,

	ObjectMinCardinality(n op c)
	_:x rdf:type RESTRICTION[op]
	_:x owl:minCardinality "n"^^xsd:nonNegativeInteger
	_:x owl:onProperty T(op)
	_:x owl11:onClass T(c)

I'm working on an OWL tutorial that will allow you to see all the  
different syntaxes easily for examples. In the meantime, I'll try to  
put up some examples on the wiki.

> PS2 What is the target date for the Recommendation status of OWL 1.1?

As there is not yet a working group, any date I'd give is pure and  
utter speculation. Fortunately, I am trained in philosophy! The  
charter Ian and I have sketched out:
	<http://webont.org/owl/1.1/draft_proposed_charter.html>
proposes 1 year from starting. Some people have raised questions  
about the aggressiveness of that schedule. I think even so the *core*  
(including QCRs) could be ratified sooner than the whole thing.

However, we do not yet have a working group! If you belong to a W3C  
member organization, you might have your AC rep contact the semantic  
web activity chair indicating your organization's interest.  
Otherwise, the best thing is to use it and help shake it out.

I think we have pretty good interop thus far. When we started OWLED,  
a goal was to try to advance both de facto and de jure standards, and  
to *not* let things get in the way of improving the the effective,  
reliable state of the infrastructure. This is why we got consensus  
from the implementors at OWLED2005 on the feature set.

So, I feel pretty safe in recommending using QCRs even without a  
recommendation. When the rec rolls around, forward migration should  
be pretty easy. Until then, it's perfectly reasonable to demand that  
tools support the current syntax.

Hope this helps.

Cheers,
Bijan.
Received on Tuesday, 10 April 2007 13:23:55 GMT

This archive was generated by hypermail 2.3.1 : Wednesday, 27 March 2013 09:32:54 GMT