4 is independent of the asserted and inferred class hierarchy. If you
you all asserted and inferred axioms. Asserted axioms are statements
statements the reasoner has concluded. Please note the difference in
WaterPark. Since it is also asserted to be a member of WaterPark, the
only class it can't be inferred to be a member of is Stadium. Note
> can get is the OWL document in Appendix 2. I have declared the
> for hasSite, classes Resort/WaterPark are not available at all. So I
>
>
> Anything wrong please correct me. Thanks for your help.
>
> =
> =
> =
> =
> =
> =
> ======================================================================
> Appendix 1 Start: OWL document using rdf:type
> =
> =
> =
> =
> =
> =
> ======================================================================
> <?xml version="1.0"?>
>
>
> <!DOCTYPE rdf:RDF [
> <!ENTITY owl "
http://www.w3.org/2002/07/owl#" >
> <!ENTITY xsd "
http://www.w3.org/2001/XMLSchema#" >
> <!ENTITY owl2xml "
http://www.w3.org/2006/12/owl2-xml#" >
> <!ENTITY rdfs "
http://www.w3.org/2000/01/rdf-schema#" >
> <!ENTITY p1 "
http://www.owl-ontologies.com/assert.owl#" >
> <!ENTITY rdf "
http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
> <!ENTITY Ontology1237653461 "
http://www.owl-ontologies.com/Ontology1237653461.owl#
> " >
> ]>
>
>
> <rdf:RDF xmlns="
http://www.owl-ontologies.com/Ontology1237653461.owl#"
> xml:base="
http://www.owl-ontologies.com/Ontology1237653461.owl"
> xmlns:rdfs="
http://www.w3.org/2000/01/rdf-schema#"
> xmlns:owl2xml="
http://www.w3.org/2006/12/owl2-xml#"
> xmlns:p1="
http://www.owl-ontologies.com/assert.owl#"
> xmlns:Ontology1237653461="
http://www.owl-ontologies.com/Ontology1237653461.owl#
> "
> xmlns:owl="
http://www.w3.org/2002/07/owl#"
> xmlns:xsd="
http://www.w3.org/2001/XMLSchema#"
> xmlns:rdf="
http://www.w3.org/1999/02/22-rdf-syntax-ns#">
> <owl:Ontology rdf:about=""/>
>
>
>
> <!--
> ///////////////////////////////////////////////////////////////////////////////////////
> //
> // Classes
> //
> ///////////////////////////////////////////////////////////////////////////////////////
> -->
>
>
>
>
> <!--
http://www.owl-ontologies.com/
> Ontology1237653461.owl#Business -->
>
> <owl:Class rdf:about="#Business"/>
>
>
>
> <!--
http://www.owl-ontologies.com/Ontology1237653461.owl#Playground
> -->
>
> <owl:Class rdf:about="#Playground">
> <rdfs:subClassOf rdf:resource="#SportsField"/>
> </owl:Class>
>
>
>
> <!--
http://www.owl-ontologies.com/Ontology1237653461.owl#Resort
> -->
>
> <owl:Class rdf:about="#Resort">
> <rdfs:subClassOf rdf:resource="#Site"/>
> </owl:Class>
>
>
>
> <!--
http://www.owl-ontologies.com/Ontology1237653461.owl#Site -->
>
> <owl:Class rdf:about="#Site"/>
>
>
>
> <!--
http://www.owl-ontologies.com/Ontology1237653461.owl#SportsField
> -->
>
> <owl:Class rdf:about="#SportsField">
> <rdfs:subClassOf rdf:resource="#Site"/>
> </owl:Class>
>
>
>
> <!--
http://www.owl-ontologies.com/Ontology1237653461.owl#Stadium
> -->
>
> <owl:Class rdf:about="#Stadium">
> <rdfs:subClassOf rdf:resource="#SportsField"/>
> </owl:Class>
>
>
>
> <!--
http://www.owl-ontologies.com/
> Ontology1237653461.owl#WaterPark -->
>
> <owl:Class rdf:about="#WaterPark">
> <rdfs:subClassOf rdf:resource="#Site"/>
> </owl:Class>
>
>
>
> <!--
> ///////////////////////////////////////////////////////////////////////////////////////
> //
> // Individuals
> //
> ///////////////////////////////////////////////////////////////////////////////////////
> -->
>
>
>
>
> <!--
http://www.owl-ontologies.com/Ontology1237653461.owl#FlowerBayResort
> -->
>
> <Resort rdf:about="#FlowerBayResort">
> <rdf:type rdf:resource="#Business"/>
> <rdf:type rdf:resource="#Playground"/>
> <rdf:type rdf:resource="#WaterPark"/>
> </Resort>
> </rdf:RDF>
>
>
>
> <!-- Generated by the OWL API (version 2.2.1.1101)
http://owlapi.sourceforge.net
> -->
>
>
> =
> =
> =
> =
> =
> =
> ======================================================================
> Appendix 1 End
> =
> =
> =
> =
> =
> =
> ======================================================================
>
>
>
> =
> =
> =
> =
> =
> =
> ======================================================================
> Appendix 2 Start: OWL document using existential quantification
> =
> =
> =
> =
> =
> =
> ======================================================================
> <?xml version="1.0"?>
>
>
> <!DOCTYPE rdf:RDF [
> <!ENTITY owl "
http://www.w3.org/2002/07/owl#" >
> <!ENTITY xsd "
http://www.w3.org/2001/XMLSchema#" >
> <!ENTITY owl2xml "
http://www.w3.org/2006/12/owl2-xml#" >
> <!ENTITY rdfs "
http://www.w3.org/2000/01/rdf-schema#" >
> <!ENTITY p1 "
http://www.owl-ontologies.com/assert.owl#" >
> <!ENTITY rdf "
http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
> <!ENTITY Ontology1237653461 "
http://www.owl-ontologies.com/Ontology1237653461.owl#
> " >
> ]>
>
>
> <rdf:RDF xmlns="
http://www.owl-ontologies.com/Ontology1237653461.owl#"
> xml:base="
http://www.owl-ontologies.com/Ontology1237653461.owl"
> xmlns:rdfs="
http://www.w3.org/2000/01/rdf-schema#"
> xmlns:owl2xml="
http://www.w3.org/2006/12/owl2-xml#"
> xmlns:p1="
http://www.owl-ontologies.com/assert.owl#"
> xmlns:Ontology1237653461="
http://www.owl-ontologies.com/Ontology1237653461.owl#
> "
> xmlns:owl="
http://www.w3.org/2002/07/owl#"
> xmlns:xsd="
http://www.w3.org/2001/XMLSchema#"
> xmlns:rdf="
http://www.w3.org/1999/02/22-rdf-syntax-ns#">
> <owl:Ontology rdf:about=""/>
>
>
>
> <!--
> ///////////////////////////////////////////////////////////////////////////////////////
> //
> // Object Properties
> //
> ///////////////////////////////////////////////////////////////////////////////////////
> -->
>
>
>
>
> <!--
http://www.owl-ontologies.com/Ontology1237653461.owl#hasSite
> -->
>
> <owl:ObjectProperty rdf:about="#hasSite"/>
>
>
>
> <!--
> ///////////////////////////////////////////////////////////////////////////////////////
> //
> // Classes
> //
> ///////////////////////////////////////////////////////////////////////////////////////
> -->
>
>
>
>
> <!--
http://www.owl-ontologies.com/
> Ontology1237653461.owl#Business -->
>
> <owl:Class rdf:about="#Business">
> <rdfs:subClassOf>
> <owl:Restriction>
> <owl:onProperty rdf:resource="#hasSite"/>
> <owl:someValuesFrom rdf:resource="#Site"/>
> </owl:Restriction>
> </rdfs:subClassOf>
> </owl:Class>
>
>
>
> <!--
http://www.owl-ontologies.com/Ontology1237653461.owl#Playground
> -->
>
> <owl:Class rdf:about="#Playground">
> <rdfs:subClassOf rdf:resource="#SportsField"/>
> </owl:Class>
>
>
>
> <!--
http://www.owl-ontologies.com/Ontology1237653461.owl#Resort
> -->
>
> <owl:Class rdf:about="#Resort">
> <rdfs:subClassOf rdf:resource="#Site"/>
> </owl:Class>
>
>
>
> <!--
http://www.owl-ontologies.com/Ontology1237653461.owl#Site -->
>
> <owl:Class rdf:about="#Site"/>
>
>
>
> <!--
http://www.owl-ontologies.com/Ontology1237653461.owl#SportsField
> -->
>
> <owl:Class rdf:about="#SportsField">
> <rdfs:subClassOf rdf:resource="#Site"/>
> </owl:Class>
>
>
>
> <!--
http://www.owl-ontologies.com/Ontology1237653461.owl#Stadium
> -->
>
> <owl:Class rdf:about="#Stadium">
> <rdfs:subClassOf rdf:resource="#SportsField"/>
> </owl:Class>
>
>
>
> <!--
http://www.owl-ontologies.com/
> Ontology1237653461.owl#WaterPark -->
>
> <owl:Class rdf:about="#WaterPark">
> <rdfs:subClassOf rdf:resource="#Site"/>
> </owl:Class>
>
>
>
> <!--
> ///////////////////////////////////////////////////////////////////////////////////////
> //
> // Individuals
> //
> ///////////////////////////////////////////////////////////////////////////////////////
> -->
>
>
>
>
> <!--
http://www.owl-ontologies.com/Ontology1237653461.owl#FlowerBayResort
> -->
>
> <Business rdf:about="#FlowerBayResort"/>
> </rdf:RDF>
>
>
>
> <!-- Generated by the OWL API (version 2.2.1.1101)
http://owlapi.sourceforge.net
> -->
>
>
> =
> =
> =
> =
> =
> =
> ======================================================================
> Appendix 2 End
> =
> =
> =
> =
> =
> =
> ======================================================================
>
>
>
> --- On Fri, 5/15/09, Xu, Ningfeng <
nfxu@...> wrote:
>
>> From: Xu, Ningfeng <
nfxu@...>
>> Subject: Re: How to connect one individual to multiple classes
>> To: "Uli Sattler" <
sattler@...>
>> Cc:
public-owl-dev@...
>> Date: Friday, May 15, 2009, 5:56 PM
>>
>> Ok, I will read the OWL 2 Primer, will see what I can get.
>>
>> Currently I am using Protege 3(thus OWL 1).
>>
>> Thanks a lot.
>>
>> Ningfeng
>>
>>
>> --- On Fri, 5/15/09, Uli Sattler <
sattler@...>
>> wrote:
>>
>>> From: Uli Sattler <
sattler@...>
>>> Subject: Re: How to connect one individual to multiple
>> classes
>>> To:
nfxu@...
>>> Date: Friday, May 15, 2009, 5:45 PM
>>>
>>> On 14 May 2009, at 21:12,
nfxu@...
>>> wrote:
>>>
>>>>
>>>> I haven't looked into OWL 2(Primer). So here I am
>> with
>>> OWL 1.
>>>>
>>>
>>> ...don't bother whether it's "2" or "1" just read
>> through
>>> the primer:
>>> it should clarify a lot of things. Also, what editor
>> do you
>>> use? I'd
>>> recommend Protege 4.
>>>
>>> Cheers, Uli
>>>
>>>> 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@...>
>>> wrote:
>>>>
>>>>> From: Uli Sattler <
sattler@...>
>>>>> Subject: Re: How to connect one individual
>> to
>>> multiple classes
>>>>> To: "Xu, Ningfeng" <
nfxu@...>
>>>>> 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@...>
>>>>> wrote:
>>>>>>
>>>>>>> From: Uli Sattler <
sattler@...>
>>>>>>> Subject: Re: How to connect one
>> individual
>>> to
>>>>> multiple classes
>>>>>>> To: "Xu, Ningfeng" <
nfxu@...>
>>>>>>> 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
>>>>>>>>
>>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>>
>>
>>
>
>
>
>
>