Re: How to connect one individual to multiple classes

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