<?xml version='1.0'?>

<rdf:RDF
  xmlns:rdf ="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:daml="http://www.daml.org/2001/03/daml+oil#"
  xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
  xmlns:xsd ="http://www.w3.org/2000/10/XMLSchema#"
  xmlns     ="http://www.daml.org/validator/examples/ont2.daml#"
>

<!-- Example Ontology about Hobbies to demonstrate some restrictions -->

<daml:Class rdf:ID="Hobby"/>

<daml:Class rdf:ID="SportsHobby">
  <daml:subClassOf rdf:resource="#Hobby"/>
</daml:Class>

<SportsHobby rdf:ID="tennis"/>
<SportsHobby rdf:ID="football"/>
<SportsHobby rdf:ID="soccer"/>
<SportsHobby rdf:ID="baseball"/>
<SportsHobby rdf:ID="rockclimbing"/>

<daml:Class rdf:ID="MusicHobby">
   <daml:subClassOf rdf:resource="#Hobby"/>
</daml:Class>

<MusicHobby rdf:ID="singing"/>
<MusicHobby rdf:ID="piano"/>
<MusicHobby rdf:ID="guitar"/>
<MusicHobby rdf:ID="violin"/>

<daml:Property rdf:ID="hasHobby">
  <daml:range rdf:resource="#Hobby"/>
</daml:Property>

<daml:Class rdf:ID="Athlete">
  <daml:subClassOf rdf:resource="http://www.daml.org/validator/examples/ont1.daml#Person"/>
  <daml:subClassOf>
     <daml:Restriction>
        <daml:onProperty rdf:resource="#hasHobby"/>
        <daml:hasClass rdf:resource="#SportsHobby"/>
     </daml:Restriction>
  </daml:subClassOf>
</daml:Class>

<daml:Class rdf:ID="TennisPlayer">
  <daml:subClassOf rdf:resource="#Athlete"/>
  <daml:subClassOf>
    <daml:Restriction>
      <daml:onProperty rdf:resource="#hasHobby"/>
      <daml:hasValue rdf:resource="#tennis"/>
    </daml:Restriction>
  </daml:subClassOf>
</daml:Class>

<daml:Class rdf:ID="SuperAthlete">
  <daml:subClassOf rdf:resource="#Athlete"/>
  <daml:subClassOf>
    <daml:Restriction>
      <daml:onProperty rdf:resource="#hasHobby"/>
      <daml:hasClassQ rdf:resource="#SportsHobby"/>
      <daml:minCardinalityQ>3</daml:minCardinalityQ>
    </daml:Restriction>
  </daml:subClassOf>
</daml:Class>


<!-- This section of the ontology pertains to spoken languages -->

<daml:Class rdf:ID="Language"/>

<Language rdf:ID="english"/>
<Language rdf:ID="spanish"/>
<Language rdf:ID="french"/>
<Language rdf:ID="german"/>
<Language rdf:ID="japanese"/>
<Language rdf:ID="italian"/>
<Language rdf:ID="latin"/>

<daml:Property rdf:ID="knowsLanguage">
  <daml:range rdf:resource="#Language"/>
</daml:Property>

<daml:Class rdf:ID="Multilingual">
  <daml:subClassOf rdf:resource="http://www.daml.org/validator/examples/ont1.daml#Person"/>
  <daml:subClassOf>
    <daml:Restriction>
      <daml:onProperty rdf:resource="#knowsLanguage"/>
      <daml:minCardinality>2</daml:minCardinality>
    </daml:Restriction>
  </daml:subClassOf>
</daml:Class>

<!-- For testing of hasValue restriction using literals / typed literals -->

<daml:Class rdf:ID="SweetSixteen">
  <daml:subClassOf rdf:resource="http://www.daml.org/validator/examples/ont1.daml#Person"/>
  <daml:subClassOf>
    <daml:Restriction>
      <daml:onProperty rdf:resource="http://www.daml.org/validator/examples/ont1.daml#age"/>
      <daml:hasValue>16</daml:hasValue>
    </daml:Restriction>
  </daml:subClassOf>
</daml:Class>


<daml:Class rdf:ID="SweetSixteenTyped">
  <daml:subClassOf rdf:resource="http://www.daml.org/validator/examples/ont1.daml#Person"/>
  <daml:subClassOf>
    <daml:Restriction>
      <daml:onProperty rdf:resource="http://www.daml.org/validator/examples/ont1.daml#age"/>
      <daml:hasValue><xsd:nonNegativeInteger rdf:value="16"/></daml:hasValue>
    </daml:Restriction>
  </daml:subClassOf>
</daml:Class>



</rdf:RDF>
