- From: <nfxu@yahoo.com>
- Date: Thu, 14 May 2009 13:12:40 -0700 (PDT)
- To: Uli Sattler <sattler@cs.man.ac.uk>
- Cc: public-owl-dev@w3.org
I haven't looked into OWL 2(Primer). So here I am with OWL 1. Regarding "ClassAssertion((Business and (hasSite some Resort) and (hasSite some Waterpark)) yourBusiness)", how can I declare an individual business(waterParkResort)? I am trying to do this: <owl:Class rdf:about="#Business"> <rdfs:subClassOf> <owl:Restriction> <owl:someValuesFrom rdf:resource="#Site"/> <owl:onProperty> <owl:ObjectProperty rdf:ID="hasSite"/> </owl:onProperty> </owl:Restriction> </rdfs:subClassOf> ... </owl:Class> <Business rdf:ID="waterParkResort"> ...hasSite Waterpark... ==> how to declare this? ...hasSite Resort... ==> how to declare this? </Business> I couldn't find appropriate OWL contructs to declare that waterParkResort has both Resort and Waterpark when declaring waterParkResort as an instance of class Business. I think this is my problem. Thanks for your help. Ningfeng --- On Thu, 5/14/09, Uli Sattler <sattler@cs.man.ac.uk> wrote: > From: Uli Sattler <sattler@cs.man.ac.uk> > Subject: Re: How to connect one individual to multiple classes > To: "Xu, Ningfeng" <nfxu@yahoo.com> > Date: Thursday, May 14, 2009, 3:00 AM > > On 13 May 2009, at 19:33, Xu, Ningfeng wrote: > > > > > Uli, thanks for your reply. > > > > Originally, carrying the Object Oriented Analysis > spirit, and being new to semantic world, I started with: > > > > 1 Let the business > > so, this is 'yourBusiness', I guess. > > > be instance of an owl:Class Business; > > 2 The categories > > like restaurant, waterpark? Do they have a common > superclass, say, "Attraction"? > > > are classes, so it is easy to make a hierarchy and all > siblings disjointed with each other; > > ok > > > > > 3 Class Business has one object property, hasSite, > which has the category as the value. > > hm, how does this look like in OWL? > > SubClassOf(Business (hasSite some Attraction)) > > or > > SubClassOf(Business (hasSite only Attraction)) > > > > In case of multiple categories, one business instance > has multiple hasSite properties. > > > > fine - as long as you don't declare hasSite to be > functional and as long as you don't use atmost cardinality > restriction on hasSite, this is possible. > > > While, obviously, this ontology is OWL Full, since > hasSite has owl:Class as its value. > > > > now you lost me...you can say that > > ClassAssertion((Business and (hasSite some Restaurant) and > (hasSite some Waterpark) yourBusiness) > > without leaving OWL DL... > > > > > I haven't tried to convert categories from owl:Class > to instance so hasSite is good for OWL DL. But how much can > reasoner get out from property value? For example: > > > > business1 hasSite Orchard > > business2 hasSite AgriculturalField > > > > If we want to list all businesses which is under > AgriculturalField, can business1 and business2 both be > returned? I don't know... > > > > yes, it would, if you would rephrase it in the above style > using 'some'... > > Did you have a look at the OWL primer (http://www.w3.org/2007/OWL/wiki/Primer)? Cheers, Uli > > > > Ningfeng > > > > > > --- On Wed, 5/13/09, Uli Sattler <sattler@cs.man.ac.uk> > wrote: > > > >> From: Uli Sattler <sattler@cs.man.ac.uk> > >> Subject: Re: How to connect one individual to > multiple classes > >> To: "Xu, Ningfeng" <nfxu@yahoo.com> > >> Date: Wednesday, May 13, 2009, 11:01 PM > >> Hi Xu, I can't see where the problem > >> is: you can say that an individual is a member of > more than > >> one class... > >> > >> Conceptually, you might want to *relate* them: > instead of > >> saying "this business *is a* restaurant and a > water park, > >> you might want to say that, among the > things/services it > >> *offers*, there is a restaurant and a water park. > >> > >> > >> Cheers, Uli > >> > >> On 13 May 2009, at 13:09, Xu, Ningfeng wrote: > >> > >>> Hi, > >>> > >>> Recently I am trying to build an OWL model > for > >> touring/entertainment related businesses. I have > categorized > >> these businesses into one category hierarchy like > the > >> following: > >>> > >>> Site(Root) > >>> +---WaterPark > >>> +---Resort > >>> ....... > >>> +---AgriculturalField > >>> +---Orchard > >>> +---CollectionExhibition > >>> +---ExhibitionHall > >>> +---Memorial > >>> +---Museum > >>> +---SportsField > >>> +---Playground > >>> +---Stadium > >>> ....... > >>> > >>> The goal is, given any category in the > hierarchy, we > >> can return all related businesses back. For > example, given > >> "Museum" as the category, we are supposed to > return all > >> museums; given "CollectionExhibition", all > museums, > >> memorials and exbitionHalls are returned. > >>> > >>> One thing is one business might have more than > one > >> services to offer. Here is an example: a resort > has hotels, > >> bars and some other regular facilities, it also > has one > >> indoor water park because of its hot spring water > resource.. > >> So this resort should be categorized into 2 > different > >> categories: "Resort" and "WaterPark". Given either > "Resort" > >> or "WaterPark" is chosen as the category, this > resort should > >> be returned as a match. > >>> > >>> The another one is that one business may fall > into > >> non-leaf categories, like "AgriculturalField" > instead of > >> "Orchard". > >>> > >>> Technically I would prefer: > >>> > >>> 1 Businesses are individuals of an owl:Class. > >> Categories could be antything, if it supports > reasoning. > >> This is different from the Protege Pizza sample, > while pizza > >> are classes. > >>> > >>> 2 When adding new businesses, we only need to > add new > >> business individual(maybe we need to add more > categories), > >> and connect the new individuals to the > categories. > >>> > >>> I have been trying different ways, but still > no > >> success. > >>> > >>> Any help would be highly appreciated. > >>> > >>> Ningfeng > >>> > >>> > > > > > > > > > >
Received on Thursday, 14 May 2009 20:13:21 UTC