- From: Uli Sattler <sattler@cs.man.ac.uk>
- Date: Wed, 15 Oct 2008 14:13:18 +0100
- To: Максим Караваев <maxoid@kg.ru>
- Cc: public-owl-dev@w3.org
On 15 Oct 2008, at 12:34, Максим Караваев wrote: > > Hello! > > For example: I have two classes: "Client" and "Address". And two > object > properties: "billingAddress" and "deliveryAddress". I need a subclass > for "Clients" who have the same billing and delivery addresses. Is it > possible to declare such class on OWL2 without rules? > > PropertyDomain( "billingAddress", "Client" ) > PropertyDomain( "deliveryAddress", "Client" ) > PropertyRange("billingAddress", "Address" ) > PropertyRange("deliveryAddress", "Address" ) > SubClassOf("ClientsWithTheSameAddr?", "Client") > Hello, you could introduce a super-property anyAddress of billingAddress and billingAddress and then describe EquivalentClass("ClientsWithTheSameAddr", IntersectionOf("Client", MaxCardinality(1 anyAddress))) this will work -- provided that you ensure that different instances of Address indeed reflect different addresses....in order to do so, you would need to go 'outside' OWL since this is would be a form of 'integrity constraints'. if you want to learn more about these, you could have a look into B. Motik, I. Horrocks, and U. Sattler. Bridging the Gap Between OWL and Relational Databases. In Proc. of the 16th International World Wide Web Conference (WWW 2007), 2007. Cheers, Uli > The same problem for data properties. But here the comparing can > have a facet > as an option. > Maybe needs some kind of class expression like a HasValue: > HasTheSameValueAs( DPE1 DPE2 ) > DataValueRestriction( DPE1 facet DPE2 )? > > Thanks for any help and answer, > Maxim Karavaev > E-mail: maxoid@kg.ru > www.knowledgegenesis.com > >
Received on Wednesday, 15 October 2008 13:11:55 UTC