previous next top contents index

OWL Web Ontology Language
Test Cases
7.4.1. Examples from the OWL Guide


Contents


7.4.1. Examples from the OWL Guide

These tests are taken from the [OWL Guide].

DL FullConsistent document.001
Description: (informative) <miscellaneous/Manifest001#test>
Wine example taken from the guide.
Datatypes that may or may not be supported: xsd:positiveInteger,
N3 format is informative.
Namespaces:
@prefix food: <http://www.w3.org/2002/03owlt/miscellaneous/consistent002#> .
@prefix vin: <http://www.w3.org/2002/03owlt/miscellaneous/consistent001#> .
@prefix : <http://www.w3.org/2002/03owlt/miscellaneous/consistent001#> .
DLConsistent: <miscellaneous/consistent001>
<!DOCTYPE owl [
     <!ENTITY vin  "http://www.w3.org/2002/03owlt/miscellaneous/consistent001#" >
     <!ENTITY food "http://www.w3.org/2002/03owlt/miscellaneous/consistent002#" >
     <!ENTITY owl  "http://www.w3.org/2002/07/owl#" >
     <!ENTITY xsd  "http://www.w3.org/2001/XMLSchema#" >
   ]>

<rdf:RDF
  xmlns     = "&vin;"
  xmlns:vin = "&vin;"
  xml:base  = "&vin;"
  xmlns:food= "&food;"
  xmlns:owl = "&owl;"
  xmlns:rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:rdfs= "http://www.w3.org/2000/01/rdf-schema#"
  >

  <owl:Ontology rdf:about="">
    <rdfs:comment>An example OWL ontology</rdfs:comment>
    <owl:priorVersion>
      <owl:Ontology rdf:about="http://www.example.org/wine-020303"/>
    </owl:priorVersion>
    <owl:imports rdf:resource="http://www.w3.org/2002/03owlt/miscellaneous/consistent002"/>
    <rdfs:comment>Derived from the DAML Wine ontology at 
      http://ontolingua.stanford.edu/doc/chimaera/ontologies/wines.daml
      Substantially changed, in particular the Region based relations.
    </rdfs:comment>
    <rdfs:label>Wine Ontology</rdfs:label>
  </owl:Ontology>
  
  <owl:Class rdf:ID="Wine">
    <rdfs:subClassOf rdf:resource="&food;PotableLiquid" />
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasMaker" />
 <owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasMaker" />
 <owl:allValuesFrom rdf:resource="#Winery" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
  <owl:minCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:minCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasSugar" />
        <owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasFlavor" />
        <owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasBody" />
        <owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasColor" />
        <owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#locatedIn"/> 
        <owl:someValuesFrom rdf:resource="&vin;Region"/>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:label xml:lang="en">wine</rdfs:label>
    <rdfs:label xml:lang="fr">vin</rdfs:label>
  </owl:Class>
  
  <owl:Class rdf:ID="Vintage">
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasVintageYear"/>  
        <owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>

  <owl:Class rdf:ID="WineGrape">
    <rdfs:subClassOf rdf:resource="&food;Grape" />
  </owl:Class>
  
  <owl:Class rdf:ID="WhiteWine">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#Wine" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasColor" />
        <owl:hasValue rdf:resource="#White" />
      </owl:Restriction>
    </owl:intersectionOf>
  </owl:Class>
  
  <owl:Class rdf:ID="WhiteTableWine">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#TableWine" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasColor" />
        <owl:hasValue rdf:resource="#White" />
      </owl:Restriction>
    </owl:intersectionOf>
  </owl:Class>
  
  <owl:Class rdf:ID="WhiteNonSweetWine">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#WhiteWine" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasSugar" />
        <owl:allValuesFrom>
          <owl:Class>
            <owl:oneOf rdf:parseType="Collection">
              <owl:Thing rdf:about="#Dry" />
              <owl:Thing rdf:about="#OffDry" />
            </owl:oneOf>
          </owl:Class>
        </owl:allValuesFrom>
      </owl:Restriction>
    </owl:intersectionOf>
  </owl:Class>
  
  <owl:Class rdf:ID="WhiteLoire">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#Loire" />
      <owl:Class rdf:about="#WhiteWine" />
    </owl:intersectionOf>
  </owl:Class>

  <owl:Class rdf:about="#WhiteLoire">
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:allValuesFrom>
          <owl:Class>
            <owl:oneOf rdf:parseType="Collection">
              <owl:Thing rdf:about="#CheninBlancGrape" />
              <owl:Thing rdf:about="#PinotBlancGrape" />
              <owl:Thing rdf:about="#SauvignonBlancGrape" />
            </owl:oneOf>
          </owl:Class>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  
  <owl:Class rdf:ID="WhiteBurgundy">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#Burgundy" />
      <owl:Class rdf:about="#WhiteWine" />
    </owl:intersectionOf>
  </owl:Class>

  <owl:Class rdf:about="#WhiteBurgundy">
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:hasValue rdf:resource="#ChardonnayGrape" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  
  <owl:Class rdf:ID="WhiteBordeaux">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#Bordeaux" />
      <owl:Class rdf:about="#WhiteWine" />
    </owl:intersectionOf>
  </owl:Class>

  <owl:Class rdf:about="#WhiteBordeaux">
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:allValuesFrom>
          <owl:Class>
            <owl:oneOf rdf:parseType="Collection">
              <owl:Thing rdf:about="#SemillonGrape" />
              <owl:Thing rdf:about="#SauvignonBlancGrape" />
            </owl:oneOf>
          </owl:Class>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  
  <owl:Class rdf:ID="Region" />

  <owl:ObjectProperty rdf:ID="locatedIn">
    <rdf:type rdf:resource="&owl;TransitiveProperty" />
    <rdfs:domain rdf:resource="http://www.w3.org/2002/07/owl#Thing" />
    <rdfs:range rdf:resource="#Region" />
  </owl:ObjectProperty>

  <owl:ObjectProperty rdf:ID="adjacentRegion">
    <rdf:type rdf:resource="&owl;SymmetricProperty" />
    <rdfs:domain rdf:resource="#Region" />
    <rdfs:range rdf:resource="#Region" />
  </owl:ObjectProperty>
  
  <owl:Class rdf:ID="VintageYear" />

  <owl:DatatypeProperty rdf:ID="yearValue">
    <rdfs:domain rdf:resource="#VintageYear" />    
    <rdfs:range  rdf:resource="&xsd;positiveInteger" />
  </owl:DatatypeProperty>
  
  <VintageYear rdf:ID="Year1998">
    <yearValue rdf:datatype="&xsd;positiveInteger">1998</yearValue>
  </VintageYear>

  <owl:ObjectProperty rdf:ID="hasVintageYear">
    <rdf:type rdf:resource="&owl;FunctionalProperty" />
    <rdfs:domain rdf:resource="#Vintage" />
    <rdfs:range  rdf:resource="#VintageYear" />
  </owl:ObjectProperty>
  
  <owl:ObjectProperty rdf:ID="madeFromGrape">
    <rdfs:subPropertyOf rdf:resource="&food;madeFromFruit" />
    <rdfs:domain rdf:resource="#Wine" />
    <rdfs:range rdf:resource="#WineGrape" />
  </owl:ObjectProperty>

  <owl:ObjectProperty rdf:ID="madeIntoWine">
    <owl:inverseOf rdf:resource="#madeFromGrape" />
  </owl:ObjectProperty>

  <owl:ObjectProperty rdf:ID="hasWineDescriptor">
    <rdfs:domain rdf:resource="#Wine" />
    <rdfs:range  rdf:resource="#WineDescriptor" />
  </owl:ObjectProperty>

  <owl:ObjectProperty rdf:ID="hasSugar">
    <rdf:type rdf:resource="&owl;FunctionalProperty" />
    <rdfs:subPropertyOf rdf:resource="#hasWineDescriptor" />
    <rdfs:range rdf:resource="#WineSugar" />
  </owl:ObjectProperty>
  
  <owl:ObjectProperty rdf:ID="hasBody">
    <rdf:type rdf:resource="&owl;FunctionalProperty" />
    <rdfs:subPropertyOf rdf:resource="#hasWineDescriptor" />
    <rdfs:range rdf:resource="#WineBody" />
  </owl:ObjectProperty>
  
  <owl:ObjectProperty rdf:ID="hasFlavor">
    <rdf:type rdf:resource="&owl;FunctionalProperty" />
    <rdfs:subPropertyOf rdf:resource="#hasWineDescriptor" />
    <rdfs:range rdf:resource="#WineFlavor" />
  </owl:ObjectProperty>
  
  <owl:ObjectProperty rdf:ID="hasColor">
    <rdf:type rdf:resource="&owl;FunctionalProperty" />
    <rdfs:subPropertyOf rdf:resource="#hasWineDescriptor" />
    <rdfs:domain rdf:resource="#Wine" />
    <rdfs:range rdf:resource="#WineColor" />
  </owl:ObjectProperty>

  <owl:ObjectProperty rdf:ID="hasMaker">
    <rdf:type rdf:resource="&owl;FunctionalProperty" />
  </owl:ObjectProperty>
  
  <owl:ObjectProperty rdf:ID="producesWine">
    <owl:inverseOf rdf:resource="#hasMaker" />
  </owl:ObjectProperty>

  <owl:Class rdf:ID="Zinfandel">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#Wine" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:hasValue rdf:resource="#ZinfandelGrape" />
      </owl:Restriction>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </owl:intersectionOf>
  </owl:Class>
  
  <owl:Class rdf:about="#Zinfandel">
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasColor" />
        <owl:hasValue rdf:resource="#Red" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasSugar" />
        <owl:hasValue rdf:resource="#Dry" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasBody" />
        <owl:allValuesFrom>
          <owl:Class>
            <owl:oneOf rdf:parseType="Collection">
              <owl:Thing rdf:about="#Full" />
              <owl:Thing rdf:about="#Medium" />
            </owl:oneOf>
          </owl:Class>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasFlavor" />
        <owl:allValuesFrom>
          <owl:Class>
            <owl:oneOf rdf:parseType="Collection">
              <owl:Thing rdf:about="#Moderate" />
              <owl:Thing rdf:about="#Strong" />
            </owl:oneOf>
          </owl:Class>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  
  <owl:Class rdf:ID="Winery" />
  
  <owl:Class rdf:ID="WineDescriptor">
    <rdfs:comment>Made WineDescriptor unionType of tastes and color</rdfs:comment>
    <owl:unionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#WineTaste" />
      <owl:Class rdf:about="#WineColor" />
    </owl:unionOf>
  </owl:Class>

  <owl:Class rdf:ID="WineTaste">
    <rdfs:subClassOf rdf:resource="#WineDescriptor" />
  </owl:Class>

  <owl:Class rdf:ID="WineColor">
    <rdfs:subClassOf rdf:resource="#WineDescriptor" />
    <owl:oneOf rdf:parseType="Collection">
      <owl:Thing rdf:about="#White" />
      <owl:Thing rdf:about="#Rose" />
      <owl:Thing rdf:about="#Red" />
    </owl:oneOf>
  </owl:Class>
  
  <owl:Class rdf:ID="WineSugar">
    <rdfs:subClassOf rdf:resource="#WineTaste" />
    <owl:oneOf rdf:parseType="Collection">
      <owl:Thing rdf:about="#Sweet" />
      <owl:Thing rdf:about="#OffDry" />
      <owl:Thing rdf:about="#Dry" />
    </owl:oneOf>
  </owl:Class>
  
  <owl:Class rdf:ID="WineFlavor">
    <rdfs:subClassOf rdf:resource="#WineTaste" />
    <owl:oneOf rdf:parseType="Collection">
      <owl:Thing rdf:about="#Delicate" />
      <owl:Thing rdf:about="#Moderate" />
      <owl:Thing rdf:about="#Strong" />
    </owl:oneOf>
  </owl:Class>
  
  <owl:Class rdf:ID="WineBody">
    <rdfs:subClassOf rdf:resource="#WineTaste" />
    <owl:oneOf rdf:parseType="Collection">
      <owl:Thing rdf:about="#Light" />
      <owl:Thing rdf:about="#Medium" />
      <owl:Thing rdf:about="#Full" />
    </owl:oneOf>
  </owl:Class>
  
  <Region rdf:ID="USRegion" />
  
  <owl:Class rdf:ID="Tours">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#Loire" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#locatedIn" />
        <owl:hasValue rdf:resource="#ToursRegion" />
      </owl:Restriction>
    </owl:intersectionOf>
  </owl:Class>

  <owl:Class rdf:about="#Tours">
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:hasValue rdf:resource="#CheninBlancGrape" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  
  <owl:Class rdf:ID="TableWine">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#Wine" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasSugar" />
        <owl:hasValue rdf:resource="#Dry" />
      </owl:Restriction>
    </owl:intersectionOf>
  </owl:Class>
  
  <owl:Class rdf:ID="SweetWine">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#Wine" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasSugar" />
        <owl:hasValue rdf:resource="#Sweet" />
      </owl:Restriction>
    </owl:intersectionOf>
  </owl:Class>
  
  <owl:Class rdf:ID="SweetRiesling">
    <rdfs:subClassOf rdf:resource="#DessertWine" />
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasBody" />
        <owl:hasValue rdf:resource="#Full" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasFlavor" />
        <owl:allValuesFrom>
          <owl:Class>
            <owl:oneOf rdf:parseType="Collection">
              <owl:Thing rdf:about="#Moderate" />
              <owl:Thing rdf:about="#Strong" />
            </owl:oneOf>
          </owl:Class>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#Riesling" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasSugar" />
        <owl:hasValue rdf:resource="#Sweet" />
      </owl:Restriction>
    </owl:intersectionOf>
  </owl:Class>
  
  <owl:Class rdf:ID="StEmilion">
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasColor" />
        <owl:hasValue rdf:resource="#Red" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasFlavor" />
        <owl:hasValue rdf:resource="#Strong" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:hasValue rdf:resource="#CabernetSauvignonGrape" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#Bordeaux" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#locatedIn" />
        <owl:hasValue rdf:resource="#StEmilionRegion" />
      </owl:Restriction>
    </owl:intersectionOf>
  </owl:Class>
  
  <owl:Class rdf:ID="SemillonOrSauvignonBlanc">
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasColor" />
        <owl:hasValue rdf:resource="#White" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasBody" />
        <owl:allValuesFrom>
          <owl:Class>
            <owl:oneOf rdf:parseType="Collection">
              <owl:Thing rdf:about="#Medium" />
              <owl:Thing rdf:about="#Full" />
            </owl:oneOf>
          </owl:Class>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#Wine" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:allValuesFrom>
          <owl:Class>
            <owl:oneOf rdf:parseType="Collection">
              <owl:Thing rdf:about="#SemillonGrape" />
              <owl:Thing rdf:about="#SauvignonBlancGrape" />
            </owl:oneOf>
          </owl:Class>
        </owl:allValuesFrom>
      </owl:Restriction>
    </owl:intersectionOf>
  </owl:Class>
  
  <owl:Class rdf:ID="Semillon">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#SemillonOrSauvignonBlanc" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:hasValue rdf:resource="#SemillonGrape" />
      </owl:Restriction>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </owl:intersectionOf>
  </owl:Class>
  
  <owl:Class rdf:ID="SauvignonBlanc">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#SemillonOrSauvignonBlanc" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:hasValue rdf:resource="#SauvignonBlancGrape" />
      </owl:Restriction>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </owl:intersectionOf>
  </owl:Class>
  
  <owl:Class rdf:ID="Sauterne">
    <rdfs:subClassOf rdf:resource="#LateHarvest" />
    <rdfs:subClassOf rdf:resource="#Bordeaux" />
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#locatedIn" />
        <owl:hasValue rdf:resource="#SauterneRegion" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasBody" />
        <owl:hasValue rdf:resource="#Medium" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasColor" />
        <owl:hasValue rdf:resource="#White" />
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  
  <owl:Class rdf:ID="Sancerre">
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasBody" />
        <owl:hasValue rdf:resource="#Medium" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasSugar" />
        <owl:hasValue rdf:resource="#OffDry" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasFlavor" />
        <owl:hasValue rdf:resource="#Delicate" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:hasValue rdf:resource="#SauvignonBlancGrape" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#Loire" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#locatedIn" />
        <owl:hasValue rdf:resource="#SancerreRegion" />
      </owl:Restriction>
    </owl:intersectionOf>
  </owl:Class>
  
  <owl:Class rdf:ID="RoseWine">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#Wine" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasColor" />
        <owl:hasValue rdf:resource="#Rose" />
      </owl:Restriction>
    </owl:intersectionOf>
  </owl:Class>
  
  <owl:Class rdf:ID="Riesling">
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasColor" />
        <owl:hasValue rdf:resource="#White" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#Wine" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:hasValue rdf:resource="#RieslingGrape" />
      </owl:Restriction>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </owl:intersectionOf>
  </owl:Class>
  
  <owl:Class rdf:ID="RedWine">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#Wine" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasColor" />
        <owl:hasValue rdf:resource="#Red" />
      </owl:Restriction>
    </owl:intersectionOf>
  </owl:Class>
  
  <owl:Class rdf:ID="RedTableWine">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#TableWine" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasColor" />
        <owl:hasValue rdf:resource="#Red" />
      </owl:Restriction>
    </owl:intersectionOf>
  </owl:Class>
  
  <owl:Class rdf:ID="RedBurgundy">
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:hasValue rdf:resource="#PinotNoirGrape" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#Burgundy" />
      <owl:Class rdf:about="#RedWine" />
    </owl:intersectionOf>
  </owl:Class>
  
  <owl:Class rdf:ID="RedBordeaux">
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:allValuesFrom>
          <owl:Class>
            <owl:oneOf rdf:parseType="Collection">
              <owl:Thing rdf:about="#CabernetSauvignonGrape" />
              <owl:Thing rdf:about="#MerlotGrape" />
            </owl:oneOf>
          </owl:Class>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#Bordeaux" />
      <owl:Class rdf:about="#RedWine" />
    </owl:intersectionOf>
  </owl:Class>
  
  <owl:Class rdf:ID="Port">
    <rdfs:subClassOf rdf:resource="#RedWine" />
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#locatedIn" />
        <owl:hasValue rdf:resource="#PortugalRegion" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasBody" />
        <owl:hasValue rdf:resource="#Full" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasFlavor" />
        <owl:hasValue rdf:resource="#Strong" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasSugar" />
        <owl:hasValue rdf:resource="#Sweet" />
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  
  <owl:Class rdf:ID="PinotNoir">
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasColor" />
        <owl:hasValue rdf:resource="#Red" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#Wine" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:hasValue rdf:resource="#PinotNoirGrape" />
      </owl:Restriction>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </owl:intersectionOf>
  </owl:Class>
  
  <owl:Class rdf:ID="PinotBlanc">
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasColor" />
        <owl:hasValue rdf:resource="#White" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#Wine" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:hasValue rdf:resource="#PinotBlancGrape" />
      </owl:Restriction>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </owl:intersectionOf>
  </owl:Class>
  
  <owl:Class rdf:ID="PetiteSyrah">
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasColor" />
        <owl:hasValue rdf:resource="#Red" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasSugar" />
        <owl:hasValue rdf:resource="#Dry" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasFlavor" />
        <owl:allValuesFrom>
          <owl:Class>
            <owl:oneOf rdf:parseType="Collection">
              <owl:Thing rdf:about="#Moderate" />
              <owl:Thing rdf:about="#Strong" />
            </owl:oneOf>
          </owl:Class>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasBody" />
        <owl:allValuesFrom>
          <owl:Class>
            <owl:oneOf rdf:parseType="Collection">
              <owl:Thing rdf:about="#Medium" />
              <owl:Thing rdf:about="#Full" />
            </owl:oneOf>
          </owl:Class>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#Wine" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:hasValue rdf:resource="#PetiteSyrahGrape" />
      </owl:Restriction>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </owl:intersectionOf>
  </owl:Class>
  
  <owl:Class rdf:ID="Pauillac">
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasBody" />
        <owl:hasValue rdf:resource="#Full" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasFlavor" />
        <owl:hasValue rdf:resource="#Strong" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:hasValue rdf:resource="#CabernetSauvignonGrape" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#Medoc" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#locatedIn" />
        <owl:hasValue rdf:resource="#PauillacRegion" />
      </owl:Restriction>
    </owl:intersectionOf>
  </owl:Class>
  
  <owl:Class rdf:ID="Muscadet">
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasBody" />
        <owl:hasValue rdf:resource="#Light" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasFlavor" />
        <owl:hasValue rdf:resource="#Delicate" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasSugar" />
        <owl:hasValue rdf:resource="#Dry" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:hasValue rdf:resource="#PinotBlancGrape" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#Loire" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#locatedIn" />
        <owl:hasValue rdf:resource="#MuscadetRegion" />
      </owl:Restriction>
    </owl:intersectionOf>
  </owl:Class>
  
  <owl:Class rdf:ID="Meursault">
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasBody" />
        <owl:hasValue rdf:resource="#Full" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#WhiteBurgundy" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#locatedIn" />
        <owl:hasValue rdf:resource="#MeursaultRegion" />
      </owl:Restriction>
    </owl:intersectionOf>
  </owl:Class>
  
  <owl:Class rdf:ID="Merlot">
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasColor" />
        <owl:hasValue rdf:resource="#Red" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasSugar" />
        <owl:hasValue rdf:resource="#Dry" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasFlavor" />
        <owl:allValuesFrom>
          <owl:Class>
            <owl:oneOf rdf:parseType="Collection">
              <owl:Thing rdf:about="#Moderate" />
              <owl:Thing rdf:about="#Delicate" />
            </owl:oneOf>
          </owl:Class>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasBody" />
        <owl:allValuesFrom>
          <owl:Class>
            <owl:oneOf rdf:parseType="Collection">
              <owl:Thing rdf:about="#Light" />
              <owl:Thing rdf:about="#Medium" />
            </owl:oneOf>
          </owl:Class>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#Wine" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:hasValue rdf:resource="#MerlotGrape" />
      </owl:Restriction>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </owl:intersectionOf>
  </owl:Class>
  
  <owl:Class rdf:ID="Meritage">
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasColor" />
        <owl:hasValue rdf:resource="#Red" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#Wine" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:allValuesFrom>
          <owl:Class>
            <owl:oneOf rdf:parseType="Collection">
              <owl:Thing rdf:about="#CabernetSauvignonGrape" />
              <owl:Thing rdf:about="#CabernetFrancGrape" />
              <owl:Thing rdf:about="#MalbecGrape" />
              <owl:Thing rdf:about="#PetiteVerdotGrape" />
              <owl:Thing rdf:about="#MerlotGrape" />
            </owl:oneOf>
          </owl:Class>
        </owl:allValuesFrom>
      </owl:Restriction>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:minCardinality rdf:datatype="&xsd;nonNegativeInteger">2</owl:minCardinality>
      </owl:Restriction>
    </owl:intersectionOf>
  </owl:Class>
  
  <Region rdf:ID="MedocRegion">
    <locatedIn rdf:resource="#BordeauxRegion" />
  </Region>
  
  <owl:Class rdf:ID="Medoc">
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasColor" />
        <owl:hasValue rdf:resource="#Red" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasSugar" />
        <owl:hasValue rdf:resource="#Dry" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#Bordeaux" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#locatedIn" />
        <owl:hasValue rdf:resource="#MedocRegion" />
      </owl:Restriction>
    </owl:intersectionOf>
  </owl:Class>
  
  <owl:Class rdf:ID="Margaux">
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasFlavor" />
        <owl:hasValue rdf:resource="#Delicate" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:hasValue rdf:resource="#MerlotGrape" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#Medoc" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#locatedIn" />
        <owl:hasValue rdf:resource="#MargauxRegion" />
      </owl:Restriction>
    </owl:intersectionOf>
  </owl:Class>
  
  <Region rdf:ID="LoireRegion">
    <locatedIn rdf:resource="#FrenchRegion" />
  </Region>
  
  <owl:Class rdf:ID="Loire">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#Wine" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#locatedIn" />
        <owl:hasValue rdf:resource="#LoireRegion" />
      </owl:Restriction>
    </owl:intersectionOf>
  </owl:Class>
  
  <owl:Class rdf:ID="LateHarvest">
    <rdfs:subClassOf rdf:resource="#Wine" />
    <owl:disjointWith rdf:resource="#EarlyHarvest" />
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasSugar" />
        <owl:hasValue rdf:resource="#Sweet" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasFlavor" />
        <owl:allValuesFrom>
          <owl:Class>
            <owl:oneOf rdf:parseType="Collection">
              <owl:Thing rdf:about="#Moderate" />
              <owl:Thing rdf:about="#Strong" />
            </owl:oneOf>
          </owl:Class>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  
  <owl:Class rdf:ID="ItalianWine">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#Wine" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#locatedIn" />
        <owl:hasValue rdf:resource="#ItalianRegion" />
      </owl:Restriction>
    </owl:intersectionOf>
  </owl:Class>
  
  <Region rdf:ID="ItalianRegion" />
  
  <owl:Class rdf:ID="IceWine">
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasBody" />
        <owl:allValuesFrom>
          <owl:Class>
            <owl:oneOf rdf:parseType="Collection">
              <owl:Thing rdf:about="#Medium" />
              <owl:Thing rdf:about="#Full" />
            </owl:oneOf>
          </owl:Class>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasFlavor" />
        <owl:allValuesFrom>
          <owl:Class>
            <owl:oneOf rdf:parseType="Collection">
              <owl:Thing rdf:about="#Moderate" />
              <owl:Thing rdf:about="#Strong" />
            </owl:oneOf>
          </owl:Class>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#LateHarvest" />
      <owl:Class rdf:about="#DessertWine" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasColor" />
        <owl:hasValue rdf:resource="#White" />
      </owl:Restriction>
    </owl:intersectionOf>
  </owl:Class>
  
  <owl:Class rdf:ID="GermanWine">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#Wine" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#locatedIn" />
        <owl:hasValue rdf:resource="#GermanyRegion" />
      </owl:Restriction>
    </owl:intersectionOf>
  </owl:Class>
  
  <owl:Class rdf:ID="Gamay">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#Wine" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:hasValue rdf:resource="#GamayGrape" />
      </owl:Restriction>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </owl:intersectionOf>
  </owl:Class>
  
  <owl:Class rdf:ID="FullBodiedWine">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#Wine" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasBody" />
        <owl:hasValue rdf:resource="#Full" />
      </owl:Restriction>
    </owl:intersectionOf>
  </owl:Class>
  
  <Region rdf:ID="FrenchRegion" />
  
  <owl:Class rdf:ID="FrenchWine">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#Wine" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#locatedIn" />
        <owl:hasValue rdf:resource="#FrenchRegion" />
      </owl:Restriction>
    </owl:intersectionOf>
  </owl:Class>

  <owl:Class rdf:ID="EarlyHarvest">
    <rdfs:subClassOf rdf:resource="#Wine" />
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasSugar" />
        <owl:allValuesFrom>
          <owl:Class>
            <owl:oneOf rdf:parseType="Collection">
              <owl:Thing rdf:about="#Dry" />
              <owl:Thing rdf:about="#OffDry" />
            </owl:oneOf>
          </owl:Class>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  
  <owl:Class rdf:ID="DryWine">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#Wine" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasSugar" />
        <owl:hasValue rdf:resource="#Dry" />
      </owl:Restriction>
    </owl:intersectionOf>
  </owl:Class>
  
  <owl:Class rdf:ID="DryWhiteWine">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#DryWine" />
      <owl:Class rdf:about="#WhiteWine" />
    </owl:intersectionOf>
  </owl:Class>
  
  <owl:Class rdf:ID="DryRiesling">
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasColor" />
        <owl:hasValue rdf:resource="#White" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasFlavor" />
        <owl:hasValue rdf:resource="#Delicate" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasBody" />
        <owl:allValuesFrom>
          <owl:Class>
            <owl:oneOf rdf:parseType="Collection">
              <owl:Thing rdf:about="#Light" />
              <owl:Thing rdf:about="#Medium" />
            </owl:oneOf>
          </owl:Class>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#Riesling" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasSugar" />
        <owl:hasValue rdf:resource="#Dry" />
      </owl:Restriction>
    </owl:intersectionOf>
  </owl:Class>
  
  <owl:Class rdf:ID="DryRedWine">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#DryWine" />
      <owl:Class rdf:about="#RedWine" />
    </owl:intersectionOf>
  </owl:Class>
  
  <owl:Class rdf:ID="DessertWine">
    <rdfs:subClassOf rdf:resource="#Wine" />
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasSugar" />
        <owl:allValuesFrom>
          <owl:Class>
            <owl:oneOf rdf:parseType="Collection">
              <owl:Thing rdf:about="#OffDry" />
              <owl:Thing rdf:about="#Sweet" />
            </owl:oneOf>
          </owl:Class>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  
  <owl:Class rdf:ID="CotesDOr">
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasFlavor" />
        <owl:hasValue rdf:resource="#Moderate" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#RedBurgundy" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#locatedIn" />
        <owl:hasValue rdf:resource="#CotesDOrRegion" />
      </owl:Restriction>
    </owl:intersectionOf>
  </owl:Class>
  
  <owl:Class rdf:ID="Chianti">
    <rdfs:subClassOf rdf:resource="#ItalianWine" />
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#locatedIn" />
        <owl:hasValue rdf:resource="#ChiantiRegion" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasColor" />
        <owl:hasValue rdf:resource="#Red" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:hasValue rdf:resource="#SangioveseGrape" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasFlavor" />
        <owl:hasValue rdf:resource="#Moderate" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasSugar" />
        <owl:hasValue rdf:resource="#Dry" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasBody" />
        <owl:allValuesFrom>
          <owl:Class>
            <owl:oneOf rdf:parseType="Collection">
              <owl:Thing rdf:about="#Light" />
              <owl:Thing rdf:about="#Medium" />
            </owl:oneOf>
          </owl:Class>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  
  <owl:Class rdf:ID="CheninBlanc">
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasColor" />
        <owl:hasValue rdf:resource="#White" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasFlavor" />
        <owl:hasValue rdf:resource="#Moderate" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasBody" />
        <owl:allValuesFrom>
          <owl:Class>
            <owl:oneOf rdf:parseType="Collection">
              <owl:Thing rdf:about="#Full" />
              <owl:Thing rdf:about="#Medium" />
            </owl:oneOf>
          </owl:Class>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasSugar" />
        <owl:allValuesFrom>
          <owl:Class>
            <owl:oneOf rdf:parseType="Collection">
              <owl:Thing rdf:about="#Dry" />
              <owl:Thing rdf:about="#OffDry" />
            </owl:oneOf>
          </owl:Class>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#Wine" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:hasValue rdf:resource="#CheninBlancGrape" />
      </owl:Restriction>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </owl:intersectionOf>
  </owl:Class>
  
  <owl:Class rdf:ID="Chardonnay">
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasColor" />
        <owl:hasValue rdf:resource="#White" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasBody" />
        <owl:allValuesFrom>
          <owl:Class>
            <owl:oneOf rdf:parseType="Collection">
              <owl:Thing rdf:about="#Full" />
              <owl:Thing rdf:about="#Medium" />
            </owl:oneOf>
          </owl:Class>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasFlavor" />
        <owl:allValuesFrom>
          <owl:Class>
            <owl:oneOf rdf:parseType="Collection">
              <owl:Thing rdf:about="#Strong" />
              <owl:Thing rdf:about="#Moderate" />
            </owl:oneOf>
          </owl:Class>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#Wine" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:hasValue rdf:resource="#ChardonnayGrape" />
      </owl:Restriction>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </owl:intersectionOf>
  </owl:Class>
  
  <Region rdf:ID="CaliforniaRegion">
    <locatedIn rdf:resource="#USRegion" />
  </Region>
  
  <Region rdf:ID="TexasRegion">
    <locatedIn rdf:resource="#USRegion" />
  </Region>
  
  <owl:Class rdf:ID="CaliforniaWine">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#Wine" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#locatedIn" />
        <owl:hasValue rdf:resource="#CaliforniaRegion" />
      </owl:Restriction>
    </owl:intersectionOf>
  </owl:Class>
  
  <owl:Class rdf:ID="TexasWine">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#Wine" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#locatedIn" />
        <owl:hasValue rdf:resource="#TexasRegion" />
      </owl:Restriction>
    </owl:intersectionOf>
  </owl:Class>
  
  <owl:Class rdf:ID="CabernetSauvignon">
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasColor" />
        <owl:hasValue rdf:resource="#Red" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasSugar" />
        <owl:hasValue rdf:resource="#Dry" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasFlavor" />
        <owl:allValuesFrom>
          <owl:Class>
            <owl:oneOf rdf:parseType="Collection">
              <owl:Thing rdf:about="#Moderate" />
              <owl:Thing rdf:about="#Strong" />
            </owl:oneOf>
          </owl:Class>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasBody" />
        <owl:allValuesFrom>
          <owl:Class>
            <owl:oneOf rdf:parseType="Collection">
              <owl:Thing rdf:about="#Medium" />
              <owl:Thing rdf:about="#Full" />
            </owl:oneOf>
          </owl:Class>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#Wine" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:hasValue rdf:resource="#CabernetSauvignonGrape" />
      </owl:Restriction>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </owl:intersectionOf>
  </owl:Class>
  
  <owl:Class rdf:ID="CabernetFranc">
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasColor" />
        <owl:hasValue rdf:resource="#Red" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasFlavor" />
        <owl:hasValue rdf:resource="#Moderate" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasBody" />
        <owl:hasValue rdf:resource="#Medium" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasSugar" />
        <owl:hasValue rdf:resource="#Dry" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#Wine" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:hasValue rdf:resource="#CabernetFrancGrape" />
      </owl:Restriction>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </owl:intersectionOf>
  </owl:Class>
  
  <owl:Class rdf:ID="Burgundy">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#Wine" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#locatedIn" />
        <owl:hasValue rdf:resource="#BourgogneRegion" />
      </owl:Restriction>
    </owl:intersectionOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasSugar" />
        <owl:hasValue rdf:resource="#Dry" />
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  
  <Region rdf:ID="BourgogneRegion">
    <locatedIn rdf:resource="#FrenchRegion" />
  </Region>
  
  <Region rdf:ID="BordeauxRegion">
    <locatedIn rdf:resource="#FrenchRegion" />
  </Region>
  
  <owl:Class rdf:ID="Bordeaux">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#Wine" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#locatedIn" />
        <owl:hasValue rdf:resource="#BordeauxRegion" />
      </owl:Restriction>
    </owl:intersectionOf>
  </owl:Class>
  
  <owl:Class rdf:ID="Beaujolais">
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasColor" />
        <owl:hasValue rdf:resource="#Red" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasBody" />
        <owl:hasValue rdf:resource="#Light" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasSugar" />
        <owl:hasValue rdf:resource="#Dry" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasFlavor" />
        <owl:hasValue rdf:resource="#Delicate" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:hasValue rdf:resource="#GamayGrape" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromGrape" />
        <owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#Wine" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#locatedIn" />
        <owl:hasValue rdf:resource="#BeaujolaisRegion" />
      </owl:Restriction>
    </owl:intersectionOf>
  </owl:Class>
  
  <Region rdf:ID="AustralianRegion" />
  
  <owl:Class rdf:ID="Anjou">
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasColor" />
        <owl:hasValue rdf:resource="#Rose" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasBody" />
        <owl:hasValue rdf:resource="#Light" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasFlavor" />
        <owl:hasValue rdf:resource="#Delicate" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasSugar" />
        <owl:hasValue rdf:resource="#OffDry" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#Loire" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#locatedIn" />
        <owl:hasValue rdf:resource="#AnjouRegion" />
      </owl:Restriction>
    </owl:intersectionOf>
  </owl:Class>
  
  <owl:Class rdf:ID="AmericanWine">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#Wine" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#locatedIn" />
        <owl:hasValue rdf:resource="#USRegion" />
      </owl:Restriction>
    </owl:intersectionOf>
  </owl:Class>
  
  <owl:Class rdf:ID="AlsatianWine">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#Wine" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#locatedIn" />
        <owl:hasValue rdf:resource="#AlsaceRegion" />
      </owl:Restriction>
    </owl:intersectionOf>
  </owl:Class>
  
  <WineBody rdf:ID="Full" />
  
  <WineBody rdf:ID="Medium" />
  
  <WineBody rdf:ID="Light" />
  
  <WineColor rdf:ID="Red" />
  
  <WineColor rdf:ID="Rose" />
  
  <WineColor rdf:ID="White" />
  
  <WineFlavor rdf:ID="Strong" />
  
  <WineFlavor rdf:ID="Moderate" />
  
  <WineFlavor rdf:ID="Delicate" />
  
  <WineSugar rdf:ID="Dry" />
  
  <WineSugar rdf:ID="OffDry">
    <owl:differentFrom rdf:resource="#Dry"/>
    <owl:differentFrom rdf:resource="#Sweet"/>
  </WineSugar>
  
  <WineSugar rdf:ID="Sweet">
    <owl:differentFrom rdf:resource="#Dry"/>
  </WineSugar>
  
  <owl:AllDifferent>
    <owl:distinctMembers rdf:parseType="Collection">
      <vin:WineColor rdf:about="#Red" />
      <vin:WineColor rdf:about="#White" />
      <vin:WineColor rdf:about="#Rose" />
    </owl:distinctMembers>
  </owl:AllDifferent>

  <owl:AllDifferent>
    <owl:distinctMembers rdf:parseType="Collection">
      <vin:WineBody rdf:about="#Light" />
      <vin:WineBody rdf:about="#Medium" />
      <vin:WineBody rdf:about="#Full" />
    </owl:distinctMembers>
  </owl:AllDifferent>

  <owl:AllDifferent>
    <owl:distinctMembers rdf:parseType="Collection">
      <vin:WineFlavor rdf:about="#Delicate" />
      <vin:WineFlavor rdf:about="#Moderate" />
      <vin:WineFlavor rdf:about="#Strong" />
    </owl:distinctMembers>
  </owl:AllDifferent>
 
  <owl:AllDifferent>
    <owl:distinctMembers rdf:parseType="Collection">
      <vin:WineSugar rdf:about="#Sweet" />
      <vin:WineSugar rdf:about="#OffDry" />
      <vin:WineSugar rdf:about="#Dry" />
    </owl:distinctMembers>
  </owl:AllDifferent>

  <Region rdf:ID="AlsaceRegion">   
    <locatedIn rdf:resource="#FrenchRegion" />
  </Region>

  <Region rdf:ID="AnjouRegion">
    <locatedIn rdf:resource="#LoireRegion" />
  </Region>
  
  <Region rdf:ID="ArroyoGrandeRegion">
    <locatedIn rdf:resource="#CaliforniaRegion" />
  </Region>
  
  <Winery rdf:ID="Beringer" />

  <Winery rdf:ID="Bancroft" />
  
  <Chardonnay rdf:ID="BancroftChardonnay">
    <locatedIn rdf:resource="#NapaRegion" />
    <hasMaker  rdf:resource="#Bancroft" />
    <hasSugar  rdf:resource="#Dry" />
    <hasFlavor rdf:resource="#Moderate" />
    <hasBody   rdf:resource="#Medium" />
  </Chardonnay>
  
  <Region rdf:ID="BeaujolaisRegion">
    <locatedIn rdf:resource="#FrenchRegion" />
  </Region>
  
  <WineGrape rdf:ID="CabernetFrancGrape" />
  
  <WineGrape rdf:ID="CabernetSauvignonGrape" />
  
  <Region rdf:ID="CentralCoastRegion">
    <locatedIn rdf:resource="#CaliforniaRegion" />
  </Region>
  
  <WineGrape rdf:ID="ChardonnayGrape" />
  
  <Winery rdf:ID="ChateauChevalBlanc" />
  
  <StEmilion rdf:ID="ChateauChevalBlancStEmilion">
    <hasMaker  rdf:resource="#ChateauChevalBlanc" />
  </StEmilion>
  
  <Winery rdf:ID="ChateauDYchem" />
  
  <Sauterne rdf:ID="ChateauDYchemSauterne">
    <madeFromGrape rdf:resource="#SauvignonBlancGrape" />
    <madeFromGrape rdf:resource="#SemillonGrape" />
    <hasFlavor rdf:resource="#Strong" />
    <hasMaker  rdf:resource="#ChateauDYchem" />
  </Sauterne> 
  
  <Winery rdf:ID="ChateauDeMeursault" />
  
  <Meursault rdf:ID="ChateauDeMeursaultMeursault">
    <hasFlavor rdf:resource="#Moderate" />
    <hasMaker  rdf:resource="#ChateauDeMeursault" />
  </Meursault>
  
  <Winery rdf:ID="ChateauLafiteRothschild" />
  
  <Pauillac rdf:ID="ChateauLafiteRothschildPauillac">
    <hasMaker  rdf:resource="#ChateauLafiteRothschild" />
  </Pauillac>
  
  <Margaux rdf:ID="ChateauMargaux">
    <hasMaker  rdf:resource="#ChateauMargauxWinery" />
  </Margaux>
  
  <Winery rdf:ID="ChateauMargauxWinery" />
  
  <Winery rdf:ID="ChateauMorgon" />
  
  <Beaujolais rdf:ID="ChateauMorgonBeaujolais">
    <hasMaker  rdf:resource="#ChateauMorgon" />
  </Beaujolais>
  
  <WineGrape rdf:ID="CheninBlancGrape" />

  <WineGrape rdf:ID="ZinfandelGrape" />

  <Chianti rdf:ID="ChiantiClassico">
    <hasBody   rdf:resource="#Medium" />
    <hasMaker  rdf:resource="#McGuinnesso" />
  </Chianti>
  
  <Region rdf:ID="ChiantiRegion">
    <locatedIn rdf:resource="#ItalianRegion" />
  </Region>
  
  <Winery rdf:ID="ClosDeLaPoussie" />
  
  <Sancerre rdf:ID="ClosDeLaPoussieSancerre">
    <hasMaker  rdf:resource="#ClosDeLaPoussie" />
  </Sancerre>
  
  <Winery rdf:ID="ClosDeVougeot" />
  
  <CotesDOr rdf:ID="ClosDeVougeotCotesDOr">
    <hasMaker  rdf:resource="#ClosDeVougeot" />
  </CotesDOr>
  
  <Winery rdf:ID="CongressSprings" />
  
  <Semillon rdf:ID="CongressSpringsSemillon">
    <hasMaker  rdf:resource="#CongressSprings" />
    <hasSugar  rdf:resource="#Dry" />
    <hasFlavor rdf:resource="#Moderate" />
    <hasBody   rdf:resource="#Medium" />
  </Semillon>

  <Winery rdf:ID="Corbans" />
  
  <Riesling rdf:ID="CorbansDryWhiteRiesling">
    <locatedIn rdf:resource="#NewZealandRegion" />
    <hasMaker  rdf:resource="#Corbans" />
    <hasSugar  rdf:resource="#OffDry" />
    <hasFlavor rdf:resource="#Moderate" />
    <hasBody   rdf:resource="#Medium" />
  </Riesling>
  
  <SauvignonBlanc rdf:ID="CorbansPrivateBinSauvignonBlanc">
    <locatedIn rdf:resource="#NewZealandRegion" />
    <hasMaker  rdf:resource="#Corbans" />
    <hasSugar  rdf:resource="#Dry" />
    <hasFlavor rdf:resource="#Strong" />
    <hasBody   rdf:resource="#Full" />
  </SauvignonBlanc>
  
  <SauvignonBlanc rdf:ID="CorbansSauvignonBlanc">
    <locatedIn rdf:resource="#NewZealandRegion" />
    <hasMaker  rdf:resource="#Corbans" />
    <hasSugar  rdf:resource="#Dry" />
    <hasFlavor rdf:resource="#Strong" />
    <hasBody   rdf:resource="#Medium" />
  </SauvignonBlanc>
  
  <Winery rdf:ID="CortonMontrachet" />
  
  <WhiteBurgundy rdf:ID="CortonMontrachetWhiteBurgundy">
    <hasMaker  rdf:resource="#CortonMontrachet" />
    <hasSugar  rdf:resource="#Dry" />
    <hasFlavor rdf:resource="#Strong" />
    <hasBody   rdf:resource="#Full" />
  </WhiteBurgundy>
  
  <Region rdf:ID="CotesDOrRegion">
    <locatedIn rdf:resource="#BourgogneRegion" />
  </Region>
  
  <Winery rdf:ID="Cotturi" />
  
  <Zinfandel rdf:ID="CotturiZinfandel">
    <locatedIn rdf:resource="#SonomaRegion" />
    <hasMaker  rdf:resource="#Cotturi" />
    <hasSugar  rdf:resource="#Dry" />
    <hasFlavor rdf:resource="#Strong" />
    <hasBody   rdf:resource="#Full" />
  </Zinfandel>
  
  <Winery rdf:ID="DAnjou" />
  
  <Region rdf:ID="EdnaValleyRegion">
    <locatedIn rdf:resource="#CaliforniaRegion" />
  </Region>
  
  <Winery rdf:ID="Elyse" />
  
  <Zinfandel rdf:ID="ElyseZinfandel">
    <locatedIn rdf:resource="#NapaRegion" />
    <hasMaker  rdf:resource="#Elyse" />
    <hasSugar  rdf:resource="#Dry" />
    <hasFlavor rdf:resource="#Moderate" />
    <hasBody   rdf:resource="#Full" />
  </Zinfandel>
  
  <Winery rdf:ID="Forman" />
  
  <CabernetSauvignon rdf:ID="FormanCabernetSauvignon">
    <locatedIn rdf:resource="#NapaRegion" />
    <hasMaker  rdf:resource="#Forman" />
    <hasSugar  rdf:resource="#Dry" />
    <hasFlavor rdf:resource="#Strong" />
    <hasBody   rdf:resource="#Medium" />
  </CabernetSauvignon>
  
  <Chardonnay rdf:ID="FormanChardonnay">
    <locatedIn rdf:resource="#NapaRegion" />
    <hasMaker  rdf:resource="#Forman" />
    <hasSugar  rdf:resource="#Dry" />
    <hasFlavor rdf:resource="#Moderate" />
    <hasBody   rdf:resource="#Full" />
  </Chardonnay>
  
  <Winery rdf:ID="Foxen" />
  
  <CheninBlanc rdf:ID="FoxenCheninBlanc">
    <locatedIn rdf:resource="#SantaBarbaraRegion" />
    <hasMaker  rdf:resource="#Foxen" />
    <hasSugar  rdf:resource="#Dry" />
    <hasFlavor rdf:resource="#Moderate" />
    <hasBody   rdf:resource="#Full" />
  </CheninBlanc>
  
  <WineGrape rdf:ID="GamayGrape" />
  
  <Winery rdf:ID="GaryFarrell" />
  
  <Merlot rdf:ID="GaryFarrellMerlot">
    <locatedIn rdf:resource="#SonomaRegion" />
    <hasMaker  rdf:resource="#GaryFarrell" />
    <hasSugar  rdf:resource="#Dry" />
    <hasFlavor rdf:resource="#Moderate" />
    <hasBody   rdf:resource="#Medium" />
  </Merlot>
  
  <Region rdf:ID="GermanyRegion" />
  
  <Winery rdf:ID="Handley" />
  
  <Winery rdf:ID="KalinCellars" />
  
  <Semillon rdf:ID="KalinCellarsSemillon">
    <hasMaker  rdf:resource="#KalinCellars" />
    <hasSugar  rdf:resource="#Dry" />
    <hasFlavor rdf:resource="#Strong" />
    <hasBody   rdf:resource="#Full" />
  </Semillon>
  
  <Winery rdf:ID="KathrynKennedy" />
  
  <Meritage rdf:ID="KathrynKennedyLateral">
    <hasMaker  rdf:resource="#KathrynKennedy" />
    <hasSugar  rdf:resource="#Dry" />
    <hasFlavor rdf:resource="#Delicate" />
    <hasBody   rdf:resource="#Medium" />
  </Meritage>
  
  <Winery rdf:ID="LaneTanner" />
  
  <PinotNoir rdf:ID="LaneTannerPinotNoir">
    <locatedIn rdf:resource="#SantaBarbaraRegion" />
    <hasMaker  rdf:resource="#LaneTanner" />
    <hasSugar  rdf:resource="#Dry" />
    <hasFlavor rdf:resource="#Delicate" />
    <hasBody   rdf:resource="#Light" />
  </PinotNoir>
  
  <Winery rdf:ID="Longridge" />
  
  <Merlot rdf:ID="LongridgeMerlot">
    <locatedIn rdf:resource="#NewZealandRegion" />
    <hasMaker  rdf:resource="#Longridge" />
    <hasSugar  rdf:resource="#Dry" />
    <hasFlavor rdf:resource="#Moderate" />
    <hasBody   rdf:resource="#Light" />
  </Merlot>
  
  <WineGrape rdf:ID="MalbecGrape" />
  
  <Region rdf:ID="MargauxRegion">
    <locatedIn rdf:resource="#MedocRegion" />
  </Region>
  
  <Winery rdf:ID="Marietta" />
  
  <CabernetSauvignon rdf:ID="MariettaCabernetSauvignon">
    <locatedIn rdf:resource="#SonomaRegion" />
    <hasMaker  rdf:resource="#Marietta" />
    <hasSugar  rdf:resource="#Dry" />
    <hasFlavor rdf:resource="#Moderate" />
    <hasBody   rdf:resource="#Medium" />
  </CabernetSauvignon>
  
  <RedTableWine rdf:ID="MariettaOldVinesRed">
    <locatedIn rdf:resource="#SonomaRegion" />
    <hasMaker  rdf:resource="#Marietta" />
    <hasSugar  rdf:resource="#Dry" />
    <hasFlavor rdf:resource="#Moderate" />
    <hasBody   rdf:resource="#Medium" />
  </RedTableWine>
  
  <PetiteSyrah rdf:ID="MariettaPetiteSyrah">
    <locatedIn rdf:resource="#SonomaRegion" />
    <hasMaker  rdf:resource="#Marietta" />
    <hasSugar  rdf:resource="#Dry" />
    <hasFlavor rdf:resource="#Moderate" />
    <hasBody   rdf:resource="#Medium" />
  </PetiteSyrah>
  
  <Zinfandel rdf:ID="MariettaZinfandel">
    <locatedIn rdf:resource="#SonomaRegion" />
    <hasMaker  rdf:resource="#Marietta" />
    <hasSugar  rdf:resource="#Dry" />
    <hasFlavor rdf:resource="#Moderate" />
    <hasBody   rdf:resource="#Medium" />
  </Zinfandel>
  
  <Winery rdf:ID="McGuinnesso" />
  
  <Region rdf:ID="MendocinoRegion">
    <locatedIn rdf:resource="#CaliforniaRegion" />
    <adjacentRegion rdf:resource="#SonomaRegion" />
  </Region>
  
  <WineGrape rdf:ID="MerlotGrape" />
  
  <Region rdf:ID="MeursaultRegion">
    <locatedIn rdf:resource="#BourgogneRegion" />
  </Region>
  
  <Winery rdf:ID="MountEdenVineyard" />
  
  <Chardonnay rdf:ID="MountEdenVineyardEdnaValleyChardonnay">
    <locatedIn rdf:resource="#EdnaValleyRegion" />
    <hasMaker  rdf:resource="#MountEdenVineyard" />
    <hasSugar  rdf:resource="#Dry" />
    <hasFlavor rdf:resource="#Moderate" />
    <hasBody   rdf:resource="#Medium" />
  </Chardonnay>
  
  <PinotNoir rdf:ID="MountEdenVineyardEstatePinotNoir">
    <locatedIn rdf:resource="#EdnaValleyRegion" />
    <hasMaker  rdf:resource="#MountEdenVineyard" />
    <hasSugar  rdf:resource="#Dry" />
    <hasFlavor rdf:resource="#Strong" />
    <hasBody   rdf:resource="#Full" />
  </PinotNoir>
  
  <Winery rdf:ID="Mountadam" />
  
  <Chardonnay rdf:ID="MountadamChardonnay">
    <locatedIn rdf:resource="#SouthAustraliaRegion" />
    <hasMaker  rdf:resource="#Mountadam" />
    <hasSugar  rdf:resource="#Dry" />
    <hasFlavor rdf:resource="#Strong" />
    <hasBody   rdf:resource="#Full" />
  </Chardonnay>
  
  <PinotNoir rdf:ID="MountadamPinotNoir">
    <locatedIn rdf:resource="#SouthAustraliaRegion" />
    <hasMaker  rdf:resource="#Mountadam" />
    <hasSugar  rdf:resource="#Dry" />
    <hasFlavor rdf:resource="#Moderate" />
    <hasBody   rdf:resource="#Medium" />
  </PinotNoir>
  
  <DryRiesling rdf:ID="MountadamRiesling">
    <locatedIn rdf:resource="#SouthAustraliaRegion" />
    <hasMaker  rdf:resource="#Mountadam" />
    <hasSugar  rdf:resource="#Dry" />
    <hasFlavor rdf:resource="#Delicate" />
    <hasBody   rdf:resource="#Medium" />
  </DryRiesling>
  
  <Region rdf:ID="MuscadetRegion">
    <locatedIn rdf:resource="#LoireRegion" />
  </Region>
  
  <Region rdf:ID="NapaRegion">
    <locatedIn rdf:resource="#CaliforniaRegion" />
  </Region>
  
  <Region rdf:ID="NewZealandRegion" />
  
  <Winery rdf:ID="PageMillWinery" />  

  <CabernetSauvignon rdf:ID="PageMillWineryCabernetSauvignon">
    <locatedIn rdf:resource="#NapaRegion" />
    <hasMaker  rdf:resource="#PageMillWinery" />
    <hasSugar  rdf:resource="#Dry" />
    <hasFlavor rdf:resource="#Moderate" />
    <hasBody   rdf:resource="#Medium" />
  </CabernetSauvignon>
  
  <Region rdf:ID="PauillacRegion">
    <locatedIn rdf:resource="#MedocRegion" />
  </Region>
  
  <Winery rdf:ID="PeterMccoy" />
  
  <Chardonnay rdf:ID="PeterMccoyChardonnay">
    <locatedIn rdf:resource="#SonomaRegion" />
    <hasMaker  rdf:resource="#PeterMccoy" />
    <hasSugar  rdf:resource="#Dry" />
    <hasFlavor rdf:resource="#Moderate" />
    <hasBody   rdf:resource="#Medium" />
  </Chardonnay>
  
  <WineGrape rdf:ID="PetiteSyrahGrape" />
  
  <WineGrape rdf:ID="PetiteVerdotGrape" />
  
  <WineGrape rdf:ID="PinotBlancGrape" />
  
  <WineGrape rdf:ID="PinotNoirGrape" />
  
  <Region rdf:ID="PortugalRegion" />
  
  <Winery rdf:ID="PulignyMontrachet" />
  
  <WhiteBurgundy rdf:ID="PulignyMontrachetWhiteBurgundy">
    <hasMaker  rdf:resource="#PulignyMontrachet" />
    <hasSugar  rdf:resource="#Dry" />
    <hasFlavor rdf:resource="#Moderate" />
    <hasBody   rdf:resource="#Medium" />
  </WhiteBurgundy>
  
  <WineGrape rdf:ID="RieslingGrape" />
  
  <Anjou rdf:ID="RoseDAnjou">
    <hasMaker  rdf:resource="#DAnjou" />
  </Anjou>
  
  <Region rdf:ID="SancerreRegion">
    <locatedIn rdf:resource="#LoireRegion" />
  </Region>
  
  <WineGrape rdf:ID="SangioveseGrape" />
  
  <Region rdf:ID="SantaBarbaraRegion">
    <locatedIn rdf:resource="#CaliforniaRegion" />
  </Region>
  
  <Winery rdf:ID="SantaCruzMountainVineyard" />
  
  <CabernetSauvignon rdf:ID="SantaCruzMountainVineyardCabernetSauvignon">
    <locatedIn rdf:resource="#SantaCruzMountainsRegion" />
    <hasMaker  rdf:resource="#SantaCruzMountainVineyard" />
    <hasSugar  rdf:resource="#Dry" />
    <hasFlavor rdf:resource="#Strong" />
    <hasBody   rdf:resource="#Full" />
  </CabernetSauvignon>
  
  <Region rdf:ID="CentralTexasRegion">
    <locatedIn rdf:resource="#TexasRegion" />
  </Region>

  <Winery rdf:ID="StGenevieve" />

  <WhiteWine rdf:ID="StGenevieveTexasWhite">
    <locatedIn rdf:resource="#CentralTexasRegion" />
    <hasMaker  rdf:resource="#StGenevieve" />
    <hasSugar  rdf:resource="#Dry" />
    <hasFlavor rdf:resource="#Moderate" />
  </WhiteWine>

  <Region rdf:ID="SantaCruzMountainsRegion">
    <locatedIn rdf:resource="#CaliforniaRegion" />
  </Region>
  
  <Winery rdf:ID="SaucelitoCanyon" />
  
  <Zinfandel rdf:ID="SaucelitoCanyonZinfandel">
    <locatedIn rdf:resource="#ArroyoGrandeRegion" />
    <hasMaker  rdf:resource="#SaucelitoCanyon" />
    <hasSugar  rdf:resource="#Dry" />
    <hasFlavor rdf:resource="#Moderate" />
    <hasBody   rdf:resource="#Medium" />
  </Zinfandel>
  
  <Zinfandel rdf:ID="SaucelitoCanyonZinfandel1998">
    <locatedIn rdf:resource="#ArroyoGrandeRegion" />
    <hasVintageYear rdf:resource="#Year1998" />
    <hasMaker  rdf:resource="#SaucelitoCanyon" />
    <hasSugar  rdf:resource="#Dry" />
    <hasFlavor rdf:resource="#Moderate" />
    <hasBody   rdf:resource="#Medium" />
  </Zinfandel>

  <Region rdf:ID="SauterneRegion">
    <locatedIn rdf:resource="#BordeauxRegion" />
  </Region>
  
  <WineGrape rdf:ID="SauvignonBlancGrape" />
  
  <Winery rdf:ID="SchlossRothermel" />
  
  <SweetRiesling rdf:ID="SchlossRothermelTrochenbierenausleseRiesling">
    <locatedIn rdf:resource="#GermanyRegion" />
    <hasMaker  rdf:resource="#SchlossRothermel" />
    <hasSugar  rdf:resource="#Sweet" />
    <hasFlavor rdf:resource="#Strong" />
    <hasBody   rdf:resource="#Full" />
  </SweetRiesling>
  
  <Winery rdf:ID="SchlossVolrad" />
  
  <SweetRiesling rdf:ID="SchlossVolradTrochenbierenausleseRiesling">
    <locatedIn rdf:resource ="#GermanyRegion" />
    <hasMaker  rdf:resource="#SchlossVolrad" />
    <hasSugar  rdf:resource="#Sweet" />
    <hasFlavor rdf:resource="#Moderate" />
    <hasBody   rdf:resource="#Full" />
  </SweetRiesling>
  
  <Winery rdf:ID="SeanThackrey" />
  
  <PetiteSyrah rdf:ID="SeanThackreySiriusPetiteSyrah">
    <locatedIn rdf:resource="#NapaRegion" />
    <hasMaker  rdf:resource="#SeanThackrey" />
    <hasSugar  rdf:resource="#Dry" />
    <hasFlavor rdf:resource="#Strong" />
    <hasBody   rdf:resource="#Full" />
  </PetiteSyrah>
  
  <Winery rdf:ID="Selaks" />
  
  <IceWine rdf:ID="SelaksIceWine">
    <locatedIn rdf:resource="#NewZealandRegion" />
    <hasMaker  rdf:resource="#Selaks" />
    <hasFlavor rdf:resource="#Moderate" />
    <hasBody   rdf:resource="#Medium" />
    <hasColor rdf:resource="#White" />
  </IceWine>
  
  <SauvignonBlanc rdf:ID="SelaksSauvignonBlanc">
    <locatedIn rdf:resource="#NewZealandRegion" />
    <hasMaker  rdf:resource="#Selaks" />
    <hasSugar  rdf:resource="#Dry" />
    <hasFlavor rdf:resource="#Moderate" />
    <hasBody   rdf:resource="#Medium" />
  </SauvignonBlanc>
  
  <WineGrape rdf:ID="SemillonGrape" />
  
  <Winery rdf:ID="SevreEtMaine" />
  
  <Muscadet rdf:ID="SevreEtMaineMuscadet">
    <hasMaker  rdf:resource="#SevreEtMaine" />
  </Muscadet>
  
  <Region rdf:ID="SonomaRegion">
    <locatedIn rdf:resource="#CaliforniaRegion" />
  </Region>
  
  <Region rdf:ID="SouthAustraliaRegion">
    <locatedIn rdf:resource="#AustralianRegion" />
  </Region>
  
  <Region rdf:ID="StEmilionRegion">
    <locatedIn rdf:resource="#BordeauxRegion" />
  </Region>
  
  <Winery rdf:ID="Stonleigh" />
  
  <SauvignonBlanc rdf:ID="StonleighSauvignonBlanc">
    <locatedIn rdf:resource="#NewZealandRegion" />
    <hasMaker  rdf:resource="#Stonleigh" />
    <hasSugar  rdf:resource="#Dry" />
    <hasFlavor rdf:resource="#Delicate" />
    <hasBody   rdf:resource="#Medium" />
  </SauvignonBlanc>
  
  <Winery rdf:ID="Taylor" />
  
  <Port rdf:ID="TaylorPort">
    <hasMaker  rdf:resource="#Taylor" />
  </Port>
  
  <Region rdf:ID="ToursRegion">
    <locatedIn rdf:resource="#LoireRegion" />
  </Region>
  
  <Winery rdf:ID="Ventana" />
  
  <CheninBlanc rdf:ID="VentanaCheninBlanc">
    <locatedIn rdf:resource="#CentralCoastRegion" />
    <hasMaker  rdf:resource="#Ventana" />
    <hasSugar  rdf:resource="#OffDry" />
    <hasFlavor rdf:resource="#Moderate" />
    <hasBody   rdf:resource="#Medium" />
  </CheninBlanc>
  
  <Winery rdf:ID="WhitehallLane" />
  
  <CabernetFranc rdf:ID="WhitehallLaneCabernetFranc">
    <locatedIn rdf:resource="#NapaRegion" />
    <hasMaker  rdf:resource="#WhitehallLane" />
    <hasSugar  rdf:resource="#Dry" />
    <hasFlavor rdf:resource="#Moderate" />
    <hasBody   rdf:resource="#Medium" />
  </CabernetFranc>
  
  <DessertWine rdf:ID="WhitehallLanePrimavera">
    <locatedIn rdf:resource="#NapaRegion" />
    <hasSugar  rdf:resource="#Sweet" />
    <hasFlavor rdf:resource="#Delicate" />
    <hasBody   rdf:resource="#Light" />
  </DessertWine>
  
  <owl:AllDifferent>
    <owl:distinctMembers rdf:parseType="Collection">
      <vin:Winery rdf:about="#Bancroft" />
      <vin:Winery rdf:about="#ChateauChevalBlanc" />
      <vin:Winery rdf:about="#ChateauDYchem" />
      <vin:Winery rdf:about="#ChateauDeMeursault" />
      <vin:Winery rdf:about="#ChateauLafiteRothschild" />
      <vin:Winery rdf:about="#ChateauMargauxWinery" />
      <vin:Winery rdf:about="#ChateauMorgon" />
      <vin:Winery rdf:about="#ClosDeLaPoussie" />
      <vin:Winery rdf:about="#ClosDeVougeot" />
      <vin:Winery rdf:about="#CongressSprings" />
      <vin:Winery rdf:about="#Corbans" />
      <vin:Winery rdf:about="#CortonMontrachet" />
      <vin:Winery rdf:about="#Cotturi" />
      <vin:Winery rdf:about="#DAnjou" />
      <vin:Winery rdf:about="#Elyse" />
      <vin:Winery rdf:about="#Forman" />
      <vin:Winery rdf:about="#Foxen" />
      <vin:Winery rdf:about="#GaryFarrell" />
      <vin:Winery rdf:about="#KalinCellars" />
      <vin:Winery rdf:about="#KathrynKennedy" />
      <vin:Winery rdf:about="#LaneTanner" />
      <vin:Winery rdf:about="#Longridge" />
      <vin:Winery rdf:about="#Marietta" />
      <vin:Winery rdf:about="#McGuinnesso" />
      <vin:Winery rdf:about="#MountEdenVineyard" />
      <vin:Winery rdf:about="#Mountadam" />
      <vin:Winery rdf:about="#PageMillWinery" />
      <vin:Winery rdf:about="#PeterMccoy" />
      <vin:Winery rdf:about="#PulignyMontrachet" />
      <vin:Winery rdf:about="#SantaCruzMountainVineyard" />
      <vin:Winery rdf:about="#SaucelitoCanyon" />
      <vin:Winery rdf:about="#SchlossRothermel" />
      <vin:Winery rdf:about="#SchlossVolrad" />
      <vin:Winery rdf:about="#SeanThackrey" />
      <vin:Winery rdf:about="#Selaks" />
      <vin:Winery rdf:about="#SevreEtMaine" />
      <vin:Winery rdf:about="#StGenevieve" />
      <vin:Winery rdf:about="#Stonleigh" />
      <vin:Winery rdf:about="#Taylor" />
      <vin:Winery rdf:about="#Ventana" />
      <vin:Winery rdf:about="#WhitehallLane" />
    </owl:distinctMembers>
  </owl:AllDifferent>

</rdf:RDF>
<miscellaneous/consistent001> rdf:type owl:Ontology .
<miscellaneous/consistent001> rdfs:comment "An example OWL ontology" .
<http://www.example.org/wine-020303> rdf:type owl:Ontology .
<miscellaneous/consistent001> owl:priorVersion <http://www.example.org/wine-020303> .
<miscellaneous/consistent001> owl:imports <miscellaneous/consistent002> .
<miscellaneous/consistent001> rdfs:comment """Derived from the DAML Wine ontology at 
      http://ontolingua.stanford.edu/doc/chimaera/ontologies/wines.daml
      Substantially changed, in particular the Region based relations.
    """ .
<miscellaneous/consistent001> rdfs:label "Wine Ontology" .
vin:Wine rdf:type owl:Class .
vin:Wine rdfs:subClassOf food:PotableLiquid .
_:a rdf:type owl:Restriction .
_:a owl:onProperty vin:hasMaker .
_:a owl:cardinality "1"^^xsd:nonNegativeInteger  .
vin:Wine rdfs:subClassOf _:a .
_:c rdf:type owl:Restriction .
_:c owl:onProperty vin:hasMaker .
_:c owl:allValuesFrom vin:Winery .
vin:Wine rdfs:subClassOf _:c .
_:e rdf:type owl:Restriction .
_:e owl:onProperty vin:madeFromGrape .
_:e owl:minCardinality "1"^^xsd:nonNegativeInteger  .
vin:Wine rdfs:subClassOf _:e .
_:g rdf:type owl:Restriction .
_:g owl:onProperty vin:hasSugar .
_:g owl:cardinality "1"^^xsd:nonNegativeInteger  .
vin:Wine rdfs:subClassOf _:g .
_:i rdf:type owl:Restriction .
_:i owl:onProperty vin:hasFlavor .
_:i owl:cardinality "1"^^xsd:nonNegativeInteger  .
vin:Wine rdfs:subClassOf _:i .
_:k rdf:type owl:Restriction .
_:k owl:onProperty vin:hasBody .
_:k owl:cardinality "1"^^xsd:nonNegativeInteger  .
vin:Wine rdfs:subClassOf _:k .
_:m rdf:type owl:Restriction .
_:m owl:onProperty vin:hasColor .
_:m owl:cardinality "1"^^xsd:nonNegativeInteger  .
vin:Wine rdfs:subClassOf _:m .
_:o rdf:type owl:Restriction .
_:o owl:onProperty vin:locatedIn .
_:o owl:someValuesFrom vin:Region .
vin:Wine rdfs:subClassOf _:o .
vin:Wine rdfs:label "wine"@en .
vin:Wine rdfs:label "vin"@fr .
vin:Vintage rdf:type owl:Class .
_:q rdf:type owl:Restriction .
_:q owl:onProperty vin:hasVintageYear .
_:q owl:cardinality "1"^^xsd:nonNegativeInteger  .
vin:Vintage rdfs:subClassOf _:q .
vin:WineGrape rdf:type owl:Class .
vin:WineGrape rdfs:subClassOf food:Grape .
vin:WhiteWine rdf:type owl:Class .
vin:Wine rdf:type owl:Class .
_:s rdf:type owl:Restriction .
_:s owl:onProperty vin:hasColor .
_:s owl:hasValue vin:White .
_:u rdf:first _:s .
_:u rdf:rest rdf:nil .
_:w rdf:first vin:Wine .
_:w rdf:rest _:u .
vin:WhiteWine owl:intersectionOf _:w .
vin:WhiteTableWine rdf:type owl:Class .
vin:TableWine rdf:type owl:Class .
_:y rdf:type owl:Restriction .
_:y owl:onProperty vin:hasColor .
_:y owl:hasValue vin:White .
_:a1 rdf:first _:y .
_:a1 rdf:rest rdf:nil .
_:c1 rdf:first vin:TableWine .
_:c1 rdf:rest _:a1 .
vin:WhiteTableWine owl:intersectionOf _:c1 .
vin:WhiteNonSweetWine rdf:type owl:Class .
vin:WhiteWine rdf:type owl:Class .
_:e1 rdf:type owl:Restriction .
_:e1 owl:onProperty vin:hasSugar .
_:g1 rdf:type owl:Class .
vin:Dry rdf:type owl:Thing .
vin:OffDry rdf:type owl:Thing .
_:i1 rdf:first vin:OffDry .
_:i1 rdf:rest rdf:nil .
_:k1 rdf:first vin:Dry .
_:k1 rdf:rest _:i1 .
_:g1 owl:oneOf _:k1 .
_:e1 owl:allValuesFrom _:g1 .
_:m1 rdf:first _:e1 .
_:m1 rdf:rest rdf:nil .
_:o1 rdf:first vin:WhiteWine .
_:o1 rdf:rest _:m1 .
vin:WhiteNonSweetWine owl:intersectionOf _:o1 .
vin:WhiteLoire rdf:type owl:Class .
vin:Loire rdf:type owl:Class .
vin:WhiteWine rdf:type owl:Class .
_:q1 rdf:first vin:WhiteWine .
_:q1 rdf:rest rdf:nil .
_:s1 rdf:first vin:Loire .
_:s1 rdf:rest _:q1 .
vin:WhiteLoire owl:intersectionOf _:s1 .
vin:WhiteLoire rdf:type owl:Class .
_:u1 rdf:type owl:Restriction .
_:u1 owl:onProperty vin:madeFromGrape .
_:w1 rdf:type owl:Class .
vin:CheninBlancGrape rdf:type owl:Thing .
vin:PinotBlancGrape rdf:type owl:Thing .
vin:SauvignonBlancGrape rdf:type owl:Thing .
_:y1 rdf:first vin:SauvignonBlancGrape .
_:y1 rdf:rest rdf:nil .
_:a2 rdf:first vin:PinotBlancGrape .
_:a2 rdf:rest _:y1 .
_:c2 rdf:first vin:CheninBlancGrape .
_:c2 rdf:rest _:a2 .
_:w1 owl:oneOf _:c2 .
_:u1 owl:allValuesFrom _:w1 .
vin:WhiteLoire rdfs:subClassOf _:u1 .
vin:WhiteBurgundy rdf:type owl:Class .
vin:Burgundy rdf:type owl:Class .
vin:WhiteWine rdf:type owl:Class .
_:e2 rdf:first vin:WhiteWine .
_:e2 rdf:rest rdf:nil .
_:g2 rdf:first vin:Burgundy .
_:g2 rdf:rest _:e2 .
vin:WhiteBurgundy owl:intersectionOf _:g2 .
vin:WhiteBurgundy rdf:type owl:Class .
_:i2 rdf:type owl:Restriction .
_:i2 owl:onProperty vin:madeFromGrape .
_:i2 owl:hasValue vin:ChardonnayGrape .
vin:WhiteBurgundy rdfs:subClassOf _:i2 .
_:k2 rdf:type owl:Restriction .
_:k2 owl:onProperty vin:madeFromGrape .
_:k2 owl:maxCardinality "1"^^xsd:nonNegativeInteger  .
vin:WhiteBurgundy rdfs:subClassOf _:k2 .
vin:WhiteBordeaux rdf:type owl:Class .
vin:Bordeaux rdf:type owl:Class .
vin:WhiteWine rdf:type owl:Class .
_:m2 rdf:first vin:WhiteWine .
_:m2 rdf:rest rdf:nil .
_:o2 rdf:first vin:Bordeaux .
_:o2 rdf:rest _:m2 .
vin:WhiteBordeaux owl:intersectionOf _:o2 .
vin:WhiteBordeaux rdf:type owl:Class .
_:q2 rdf:type owl:Restriction .
_:q2 owl:onProperty vin:madeFromGrape .
_:s2 rdf:type owl:Class .
vin:SemillonGrape rdf:type owl:Thing .
vin:SauvignonBlancGrape rdf:type owl:Thing .
_:u2 rdf:first vin:SauvignonBlancGrape .
_:u2 rdf:rest rdf:nil .
_:w2 rdf:first vin:SemillonGrape .
_:w2 rdf:rest _:u2 .
_:s2 owl:oneOf _:w2 .
_:q2 owl:allValuesFrom _:s2 .
vin:WhiteBordeaux rdfs:subClassOf _:q2 .
vin:Region rdf:type owl:Class .
vin:locatedIn rdf:type owl:ObjectProperty .
vin:locatedIn rdf:type owl:TransitiveProperty .
vin:locatedIn rdfs:domain owl:Thing .
vin:locatedIn rdfs:range vin:Region .
vin:adjacentRegion rdf:type owl:ObjectProperty .
vin:adjacentRegion rdf:type owl:SymmetricProperty .
vin:adjacentRegion rdfs:domain vin:Region .
vin:adjacentRegion rdfs:range vin:Region .
vin:VintageYear rdf:type owl:Class .
vin:yearValue rdf:type owl:DatatypeProperty .
vin:yearValue rdfs:domain vin:VintageYear .
vin:yearValue rdfs:range xsd:positiveInteger .
vin:Year1998 rdf:type vin:VintageYear .
vin:Year1998 vin:yearValue "1998"^^xsd:positiveInteger  .
vin:hasVintageYear rdf:type owl:ObjectProperty .
vin:hasVintageYear rdf:type owl:FunctionalProperty .
vin:hasVintageYear rdfs:domain vin:Vintage .
vin:hasVintageYear rdfs:range vin:VintageYear .
vin:madeFromGrape rdf:type owl:ObjectProperty .
vin:madeFromGrape rdfs:subPropertyOf food:madeFromFruit .
vin:madeFromGrape rdfs:domain vin:Wine .
vin:madeFromGrape rdfs:range vin:WineGrape .
vin:madeIntoWine rdf:type owl:ObjectProperty .
vin:madeIntoWine owl:inverseOf vin:madeFromGrape .
vin:hasWineDescriptor rdf:type owl:ObjectProperty .
vin:hasWineDescriptor rdfs:domain vin:Wine .
vin:hasWineDescriptor rdfs:range vin:WineDescriptor .
vin:hasSugar rdf:type owl:ObjectProperty .
vin:hasSugar rdf:type owl:FunctionalProperty .
vin:hasSugar rdfs:subPropertyOf vin:hasWineDescriptor .
vin:hasSugar rdfs:range vin:WineSugar .
vin:hasBody rdf:type owl:ObjectProperty .
vin:hasBody rdf:type owl:FunctionalProperty .
vin:hasBody rdfs:subPropertyOf vin:hasWineDescriptor .
vin:hasBody rdfs:range vin:WineBody .
vin:hasFlavor rdf:type owl:ObjectProperty .
vin:hasFlavor rdf:type owl:FunctionalProperty .
vin:hasFlavor rdfs:subPropertyOf vin:hasWineDescriptor .
vin:hasFlavor rdfs:range vin:WineFlavor .
vin:hasColor rdf:type owl:ObjectProperty .
vin:hasColor rdf:type owl:FunctionalProperty .
vin:hasColor rdfs:subPropertyOf vin:hasWineDescriptor .
vin:hasColor rdfs:domain vin:Wine .
vin:hasColor rdfs:range vin:WineColor .
vin:hasMaker rdf:type owl:ObjectProperty .
vin:hasMaker rdf:type owl:FunctionalProperty .
vin:producesWine rdf:type owl:ObjectProperty .
vin:producesWine owl:inverseOf vin:hasMaker .
vin:Zinfandel rdf:type owl:Class .
vin:Wine rdf:type owl:Class .
_:y2 rdf:type owl:Restriction .
_:y2 owl:onProperty vin:madeFromGrape .
_:y2 owl:hasValue vin:ZinfandelGrape .
_:a3 rdf:type owl:Restriction .
_:a3 owl:onProperty vin:madeFromGrape .
_:a3 owl:maxCardinality "1"^^xsd:nonNegativeInteger  .
_:c3 rdf:first _:a3 .
_:c3 rdf:rest rdf:nil .
_:e3 rdf:first _:y2 .
_:e3 rdf:rest _:c3 .
_:g3 rdf:first vin:Wine .
_:g3 rdf:rest _:e3 .
vin:Zinfandel owl:intersectionOf _:g3 .
vin:Zinfandel rdf:type owl:Class .
_:i3 rdf:type owl:Restriction .
_:i3 owl:onProperty vin:hasColor .
_:i3 owl:hasValue vin:Red .
vin:Zinfandel rdfs:subClassOf _:i3 .
_:k3 rdf:type owl:Restriction .
_:k3 owl:onProperty vin:hasSugar .
_:k3 owl:hasValue vin:Dry .
vin:Zinfandel rdfs:subClassOf _:k3 .
_:m3 rdf:type owl:Restriction .
_:m3 owl:onProperty vin:hasBody .
_:o3 rdf:type owl:Class .
vin:Full rdf:type owl:Thing .
vin:Medium rdf:type owl:Thing .
_:q3 rdf:first vin:Medium .
_:q3 rdf:rest rdf:nil .
_:s3 rdf:first vin:Full .
_:s3 rdf:rest _:q3 .
_:o3 owl:oneOf _:s3 .
_:m3 owl:allValuesFrom _:o3 .
vin:Zinfandel rdfs:subClassOf _:m3 .
_:u3 rdf:type owl:Restriction .
_:u3 owl:onProperty vin:hasFlavor .
_:w3 rdf:type owl:Class .
vin:Moderate rdf:type owl:Thing .
vin:Strong rdf:type owl:Thing .
_:y3 rdf:first vin:Strong .
_:y3 rdf:rest rdf:nil .
_:a4 rdf:first vin:Moderate .
_:a4 rdf:rest _:y3 .
_:w3 owl:oneOf _:a4 .
_:u3 owl:allValuesFrom _:w3 .
vin:Zinfandel rdfs:subClassOf _:u3 .
vin:Winery rdf:type owl:Class .
vin:WineDescriptor rdf:type owl:Class .
vin:WineDescriptor rdfs:comment "Made WineDescriptor unionType of tastes and color" .
vin:WineTaste rdf:type owl:Class .
vin:WineColor rdf:type owl:Class .
_:c4 rdf:first vin:WineColor .
_:c4 rdf:rest rdf:nil .
_:e4 rdf:first vin:WineTaste .
_:e4 rdf:rest _:c4 .
vin:WineDescriptor owl:unionOf _:e4 .
vin:WineTaste rdf:type owl:Class .
vin:WineTaste rdfs:subClassOf vin:WineDescriptor .
vin:WineColor rdf:type owl:Class .
vin:WineColor rdfs:subClassOf vin:WineDescriptor .
vin:White rdf:type owl:Thing .
vin:Rose rdf:type owl:Thing .
vin:Red rdf:type owl:Thing .
_:g4 rdf:first vin:Red .
_:g4 rdf:rest rdf:nil .
_:i4 rdf:first vin:Rose .
_:i4 rdf:rest _:g4 .
_:k4 rdf:first vin:White .
_:k4 rdf:rest _:i4 .
vin:WineColor owl:oneOf _:k4 .
vin:WineSugar rdf:type owl:Class .
vin:WineSugar rdfs:subClassOf vin:WineTaste .
vin:Sweet rdf:type owl:Thing .
vin:OffDry rdf:type owl:Thing .
vin:Dry rdf:type owl:Thing .
_:m4 rdf:first vin:Dry .
_:m4 rdf:rest rdf:nil .
_:o4 rdf:first vin:OffDry .
_:o4 rdf:rest _:m4 .
_:q4 rdf:first vin:Sweet .
_:q4 rdf:rest _:o4 .
vin:WineSugar owl:oneOf _:q4 .
vin:WineFlavor rdf:type owl:Class .
vin:WineFlavor rdfs:subClassOf vin:WineTaste .
vin:Delicate rdf:type owl:Thing .
vin:Moderate rdf:type owl:Thing .
vin:Strong rdf:type owl:Thing .
_:s4 rdf:first vin:Strong .
_:s4 rdf:rest rdf:nil .
_:u4 rdf:first vin:Moderate .
_:u4 rdf:rest _:s4 .
_:w4 rdf:first vin:Delicate .
_:w4 rdf:rest _:u4 .
vin:WineFlavor owl:oneOf _:w4 .
vin:WineBody rdf:type owl:Class .
vin:WineBody rdfs:subClassOf vin:WineTaste .
vin:Light rdf:type owl:Thing .
vin:Medium rdf:type owl:Thing .
vin:Full rdf:type owl:Thing .
_:y4 rdf:first vin:Full .
_:y4 rdf:rest rdf:nil .
_:a5 rdf:first vin:Medium .
_:a5 rdf:rest _:y4 .
_:c5 rdf:first vin:Light .
_:c5 rdf:rest _:a5 .
vin:WineBody owl:oneOf _:c5 .
vin:USRegion rdf:type vin:Region .
vin:Tours rdf:type owl:Class .
vin:Loire rdf:type owl:Class .
_:e5 rdf:type owl:Restriction .
_:e5 owl:onProperty vin:locatedIn .
_:e5 owl:hasValue vin:ToursRegion .
_:g5 rdf:first _:e5 .
_:g5 rdf:rest rdf:nil .
_:i5 rdf:first vin:Loire .
_:i5 rdf:rest _:g5 .
vin:Tours owl:intersectionOf _:i5 .
vin:Tours rdf:type owl:Class .
_:k5 rdf:type owl:Restriction .
_:k5 owl:onProperty vin:madeFromGrape .
_:k5 owl:hasValue vin:CheninBlancGrape .
vin:Tours rdfs:subClassOf _:k5 .
_:m5 rdf:type owl:Restriction .
_:m5 owl:onProperty vin:madeFromGrape .
_:m5 owl:maxCardinality "1"^^xsd:nonNegativeInteger  .
vin:Tours rdfs:subClassOf _:m5 .
vin:TableWine rdf:type owl:Class .
vin:Wine rdf:type owl:Class .
_:o5 rdf:type owl:Restriction .
_:o5 owl:onProperty vin:hasSugar .
_:o5 owl:hasValue vin:Dry .
_:q5 rdf:first _:o5 .
_:q5 rdf:rest rdf:nil .
_:s5 rdf:first vin:Wine .
_:s5 rdf:rest _:q5 .
vin:TableWine owl:intersectionOf _:s5 .
vin:SweetWine rdf:type owl:Class .
vin:Wine rdf:type owl:Class .
_:u5 rdf:type owl:Restriction .
_:u5 owl:onProperty vin:hasSugar .
_:u5 owl:hasValue vin:Sweet .
_:w5 rdf:first _:u5 .
_:w5 rdf:rest rdf:nil .
_:y5 rdf:first vin:Wine .
_:y5 rdf:rest _:w5 .
vin:SweetWine owl:intersectionOf _:y5 .
vin:SweetRiesling rdf:type owl:Class .
vin:SweetRiesling rdfs:subClassOf vin:DessertWine .
_:a6 rdf:type owl:Restriction .
_:a6 owl:onProperty vin:hasBody .
_:a6 owl:hasValue vin:Full .
vin:SweetRiesling rdfs:subClassOf _:a6 .
_:c6 rdf:type owl:Restriction .
_:c6 owl:onProperty vin:hasFlavor .
_:e6 rdf:type owl:Class .
vin:Moderate rdf:type owl:Thing .
vin:Strong rdf:type owl:Thing .
_:g6 rdf:first vin:Strong .
_:g6 rdf:rest rdf:nil .
_:i6 rdf:first vin:Moderate .
_:i6 rdf:rest _:g6 .
_:e6 owl:oneOf _:i6 .
_:c6 owl:allValuesFrom _:e6 .
vin:SweetRiesling rdfs:subClassOf _:c6 .
vin:Riesling rdf:type owl:Class .
_:k6 rdf:type owl:Restriction .
_:k6 owl:onProperty vin:hasSugar .
_:k6 owl:hasValue vin:Sweet .
_:m6 rdf:first _:k6 .
_:m6 rdf:rest rdf:nil .
_:o6 rdf:first vin:Riesling .
_:o6 rdf:rest _:m6 .
vin:SweetRiesling owl:intersectionOf _:o6 .
vin:StEmilion rdf:type owl:Class .
_:q6 rdf:type owl:Restriction .
_:q6 owl:onProperty vin:hasColor .
_:q6 owl:hasValue vin:Red .
vin:StEmilion rdfs:subClassOf _:q6 .
_:s6 rdf:type owl:Restriction .
_:s6 owl:onProperty vin:hasFlavor .
_:s6 owl:hasValue vin:Strong .
vin:StEmilion rdfs:subClassOf _:s6 .
_:u6 rdf:type owl:Restriction .
_:u6 owl:onProperty vin:madeFromGrape .
_:u6 owl:hasValue vin:CabernetSauvignonGrape .
vin:StEmilion rdfs:subClassOf _:u6 .
_:w6 rdf:type owl:Restriction .
_:w6 owl:onProperty vin:madeFromGrape .
_:w6 owl:maxCardinality "1"^^xsd:nonNegativeInteger  .
vin:StEmilion rdfs:subClassOf _:w6 .
vin:Bordeaux rdf:type owl:Class .
_:y6 rdf:type owl:Restriction .
_:y6 owl:onProperty vin:locatedIn .
_:y6 owl:hasValue vin:StEmilionRegion .
_:a7 rdf:first _:y6 .
_:a7 rdf:rest rdf:nil .
_:c7 rdf:first vin:Bordeaux .
_:c7 rdf:rest _:a7 .
vin:StEmilion owl:intersectionOf _:c7 .
vin:SemillonOrSauvignonBlanc rdf:type owl:Class .
_:e7 rdf:type owl:Restriction .
_:e7 owl:onProperty vin:hasColor .
_:e7 owl:hasValue vin:White .
vin:SemillonOrSauvignonBlanc rdfs:subClassOf _:e7 .
_:g7 rdf:type owl:Restriction .
_:g7 owl:onProperty vin:hasBody .
_:i7 rdf:type owl:Class .
vin:Medium rdf:type owl:Thing .
vin:Full rdf:type owl:Thing .
_:k7 rdf:first vin:Full .
_:k7 rdf:rest rdf:nil .
_:m7 rdf:first vin:Medium .
_:m7 rdf:rest _:k7 .
_:i7 owl:oneOf _:m7 .
_:g7 owl:allValuesFrom _:i7 .
vin:SemillonOrSauvignonBlanc rdfs:subClassOf _:g7 .
vin:Wine rdf:type owl:Class .
_:o7 rdf:type owl:Restriction .
_:o7 owl:onProperty vin:madeFromGrape .
_:q7 rdf:type owl:Class .
vin:SemillonGrape rdf:type owl:Thing .
vin:SauvignonBlancGrape rdf:type owl:Thing .
_:s7 rdf:first vin:SauvignonBlancGrape .
_:s7 rdf:rest rdf:nil .
_:u7 rdf:first vin:SemillonGrape .
_:u7 rdf:rest _:s7 .
_:q7 owl:oneOf _:u7 .
_:o7 owl:allValuesFrom _:q7 .
_:w7 rdf:first _:o7 .
_:w7 rdf:rest rdf:nil .
_:y7 rdf:first vin:Wine .
_:y7 rdf:rest _:w7 .
vin:SemillonOrSauvignonBlanc owl:intersectionOf _:y7 .
vin:Semillon rdf:type owl:Class .
vin:SemillonOrSauvignonBlanc rdf:type owl:Class .
_:a8 rdf:type owl:Restriction .
_:a8 owl:onProperty vin:madeFromGrape .
_:a8 owl:hasValue vin:SemillonGrape .
_:c8 rdf:type owl:Restriction .
_:c8 owl:onProperty vin:madeFromGrape .
_:c8 owl:maxCardinality "1"^^xsd:nonNegativeInteger  .
_:e8 rdf:first _:c8 .
_:e8 rdf:rest rdf:nil .
_:g8 rdf:first _:a8 .
_:g8 rdf:rest _:e8 .
_:i8 rdf:first vin:SemillonOrSauvignonBlanc .
_:i8 rdf:rest _:g8 .
vin:Semillon owl:intersectionOf _:i8 .
vin:SauvignonBlanc rdf:type owl:Class .
vin:SemillonOrSauvignonBlanc rdf:type owl:Class .
_:k8 rdf:type owl:Restriction .
_:k8 owl:onProperty vin:madeFromGrape .
_:k8 owl:hasValue vin:SauvignonBlancGrape .
_:m8 rdf:type owl:Restriction .
_:m8 owl:onProperty vin:madeFromGrape .
_:m8 owl:maxCardinality "1"^^xsd:nonNegativeInteger  .
_:o8 rdf:first _:m8 .
_:o8 rdf:rest rdf:nil .
_:q8 rdf:first _:k8 .
_:q8 rdf:rest _:o8 .
_:s8 rdf:first vin:SemillonOrSauvignonBlanc .
_:s8 rdf:rest _:q8 .
vin:SauvignonBlanc owl:intersectionOf _:s8 .
vin:Sauterne rdf:type owl:Class .
vin:Sauterne rdfs:subClassOf vin:LateHarvest .
vin:Sauterne rdfs:subClassOf vin:Bordeaux .
_:u8 rdf:type owl:Restriction .
_:u8 owl:onProperty vin:locatedIn .
_:u8 owl:hasValue vin:SauterneRegion .
vin:Sauterne rdfs:subClassOf _:u8 .
_:w8 rdf:type owl:Restriction .
_:w8 owl:onProperty vin:hasBody .
_:w8 owl:hasValue vin:Medium .
vin:Sauterne rdfs:subClassOf _:w8 .
_:y8 rdf:type owl:Restriction .
_:y8 owl:onProperty vin:hasColor .
_:y8 owl:hasValue vin:White .
vin:Sauterne rdfs:subClassOf _:y8 .
vin:Sancerre rdf:type owl:Class .
_:a9 rdf:type owl:Restriction .
_:a9 owl:onProperty vin:hasBody .
_:a9 owl:hasValue vin:Medium .
vin:Sancerre rdfs:subClassOf _:a9 .
_:c9 rdf:type owl:Restriction .
_:c9 owl:onProperty vin:hasSugar .
_:c9 owl:hasValue vin:OffDry .
vin:Sancerre rdfs:subClassOf _:c9 .
_:e9 rdf:type owl:Restriction .
_:e9 owl:onProperty vin:hasFlavor .
_:e9 owl:hasValue vin:Delicate .
vin:Sancerre rdfs:subClassOf _:e9 .
_:g9 rdf:type owl:Restriction .
_:g9 owl:onProperty vin:madeFromGrape .
_:g9 owl:hasValue vin:SauvignonBlancGrape .
vin:Sancerre rdfs:subClassOf _:g9 .
_:i9 rdf:type owl:Restriction .
_:i9 owl:onProperty vin:madeFromGrape .
_:i9 owl:maxCardinality "1"^^xsd:nonNegativeInteger  .
vin:Sancerre rdfs:subClassOf _:i9 .
vin:Loire rdf:type owl:Class .
_:k9 rdf:type owl:Restriction .
_:k9 owl:onProperty vin:locatedIn .
_:k9 owl:hasValue vin:SancerreRegion .
_:m9 rdf:first _:k9 .
_:m9 rdf:rest rdf:nil .
_:o9 rdf:first vin:Loire .
_:o9 rdf:rest _:m9 .
vin:Sancerre owl:intersectionOf _:o9 .
vin:RoseWine rdf:type owl:Class .
vin:Wine rdf:type owl:Class .
_:q9 rdf:type owl:Restriction .
_:q9 owl:onProperty vin:hasColor .
_:q9 owl:hasValue vin:Rose .
_:s9 rdf:first _:q9 .
_:s9 rdf:rest rdf:nil .
_:u9 rdf:first vin:Wine .
_:u9 rdf:rest _:s9 .
vin:RoseWine owl:intersectionOf _:u9 .
vin:Riesling rdf:type owl:Class .
_:w9 rdf:type owl:Restriction .
_:w9 owl:onProperty vin:hasColor .
_:w9 owl:hasValue vin:White .
vin:Riesling rdfs:subClassOf _:w9 .
vin:Wine rdf:type owl:Class .
_:y9 rdf:type owl:Restriction .
_:y9 owl:onProperty vin:madeFromGrape .
_:y9 owl:hasValue vin:RieslingGrape .
_:a10 rdf:type owl:Restriction .
_:a10 owl:onProperty vin:madeFromGrape .
_:a10 owl:maxCardinality "1"^^xsd:nonNegativeInteger  .
_:c10 rdf:first _:a10 .
_:c10 rdf:rest rdf:nil .
_:e10 rdf:first _:y9 .
_:e10 rdf:rest _:c10 .
_:g10 rdf:first vin:Wine .
_:g10 rdf:rest _:e10 .
vin:Riesling owl:intersectionOf _:g10 .
vin:RedWine rdf:type owl:Class .
vin:Wine rdf:type owl:Class .
_:i10 rdf:type owl:Restriction .
_:i10 owl:onProperty vin:hasColor .
_:i10 owl:hasValue vin:Red .
_:k10 rdf:first _:i10 .
_:k10 rdf:rest rdf:nil .
_:m10 rdf:first vin:Wine .
_:m10 rdf:rest _:k10 .
vin:RedWine owl:intersectionOf _:m10 .
vin:RedTableWine rdf:type owl:Class .
vin:TableWine rdf:type owl:Class .
_:o10 rdf:type owl:Restriction .
_:o10 owl:onProperty vin:hasColor .
_:o10 owl:hasValue vin:Red .
_:q10 rdf:first _:o10 .
_:q10 rdf:rest rdf:nil .
_:s10 rdf:first vin:TableWine .
_:s10 rdf:rest _:q10 .
vin:RedTableWine owl:intersectionOf _:s10 .
vin:RedBurgundy rdf:type owl:Class .
_:u10 rdf:type owl:Restriction .
_:u10 owl:onProperty vin:madeFromGrape .
_:u10 owl:hasValue vin:PinotNoirGrape .
vin:RedBurgundy rdfs:subClassOf _:u10 .
_:w10 rdf:type owl:Restriction .
_:w10 owl:onProperty vin:madeFromGrape .
_:w10 owl:maxCardinality "1"^^xsd:nonNegativeInteger  .
vin:RedBurgundy rdfs:subClassOf _:w10 .
vin:Burgundy rdf:type owl:Class .
vin:RedWine rdf:type owl:Class .
_:y10 rdf:first vin:RedWine .
_:y10 rdf:rest rdf:nil .
_:a11 rdf:first vin:Burgundy .
_:a11 rdf:rest _:y10 .
vin:RedBurgundy owl:intersectionOf _:a11 .
vin:RedBordeaux rdf:type owl:Class .
_:c11 rdf:type owl:Restriction .
_:c11 owl:onProperty vin:madeFromGrape .
_:e11 rdf:type owl:Class .
vin:CabernetSauvignonGrape rdf:type owl:Thing .
vin:MerlotGrape rdf:type owl:Thing .
_:g11 rdf:first vin:MerlotGrape .
_:g11 rdf:rest rdf:nil .
_:i11 rdf:first vin:CabernetSauvignonGrape .
_:i11 rdf:rest _:g11 .
_:e11 owl:oneOf _:i11 .
_:c11 owl:allValuesFrom _:e11 .
vin:RedBordeaux rdfs:subClassOf _:c11 .
vin:Bordeaux rdf:type owl:Class .
vin:RedWine rdf:type owl:Class .
_:k11 rdf:first vin:RedWine .
_:k11 rdf:rest rdf:nil .
_:m11 rdf:first vin:Bordeaux .
_:m11 rdf:rest _:k11 .
vin:RedBordeaux owl:intersectionOf _:m11 .
vin:Port rdf:type owl:Class .
vin:Port rdfs:subClassOf vin:RedWine .
_:o11 rdf:type owl:Restriction .
_:o11 owl:onProperty vin:locatedIn .
_:o11 owl:hasValue vin:PortugalRegion .
vin:Port rdfs:subClassOf _:o11 .
_:q11 rdf:type owl:Restriction .
_:q11 owl:onProperty vin:hasBody .
_:q11 owl:hasValue vin:Full .
vin:Port rdfs:subClassOf _:q11 .
_:s11 rdf:type owl:Restriction .
_:s11 owl:onProperty vin:hasFlavor .
_:s11 owl:hasValue vin:Strong .
vin:Port rdfs:subClassOf _:s11 .
_:u11 rdf:type owl:Restriction .
_:u11 owl:onProperty vin:hasSugar .
_:u11 owl:hasValue vin:Sweet .
vin:Port rdfs:subClassOf _:u11 .
vin:PinotNoir rdf:type owl:Class .
_:w11 rdf:type owl:Restriction .
_:w11 owl:onProperty vin:hasColor .
_:w11 owl:hasValue vin:Red .
vin:PinotNoir rdfs:subClassOf _:w11 .
vin:Wine rdf:type owl:Class .
_:y11 rdf:type owl:Restriction .
_:y11 owl:onProperty vin:madeFromGrape .
_:y11 owl:hasValue vin:PinotNoirGrape .
_:a12 rdf:type owl:Restriction .
_:a12 owl:onProperty vin:madeFromGrape .
_:a12 owl:maxCardinality "1"^^xsd:nonNegativeInteger  .
_:c12 rdf:first _:a12 .
_:c12 rdf:rest rdf:nil .
_:e12 rdf:first _:y11 .
_:e12 rdf:rest _:c12 .
_:g12 rdf:first vin:Wine .
_:g12 rdf:rest _:e12 .
vin:PinotNoir owl:intersectionOf _:g12 .
vin:PinotBlanc rdf:type owl:Class .
_:i12 rdf:type owl:Restriction .
_:i12 owl:onProperty vin:hasColor .
_:i12 owl:hasValue vin:White .
vin:PinotBlanc rdfs:subClassOf _:i12 .
vin:Wine rdf:type owl:Class .
_:k12 rdf:type owl:Restriction .
_:k12 owl:onProperty vin:madeFromGrape .
_:k12 owl:hasValue vin:PinotBlancGrape .
_:m12 rdf:type owl:Restriction .
_:m12 owl:onProperty vin:madeFromGrape .
_:m12 owl:maxCardinality "1"^^xsd:nonNegativeInteger  .
_:o12 rdf:first _:m12 .
_:o12 rdf:rest rdf:nil .
_:q12 rdf:first _:k12 .
_:q12 rdf:rest _:o12 .
_:s12 rdf:first vin:Wine .
_:s12 rdf:rest _:q12 .
vin:PinotBlanc owl:intersectionOf _:s12 .
vin:PetiteSyrah rdf:type owl:Class .
_:u12 rdf:type owl:Restriction .
_:u12 owl:onProperty vin:hasColor .
_:u12 owl:hasValue vin:Red .
vin:PetiteSyrah rdfs:subClassOf _:u12 .
_:w12 rdf:type owl:Restriction .
_:w12 owl:onProperty vin:hasSugar .
_:w12 owl:hasValue vin:Dry .
vin:PetiteSyrah rdfs:subClassOf _:w12 .
_:y12 rdf:type owl:Restriction .
_:y12 owl:onProperty vin:hasFlavor .
_:a13 rdf:type owl:Class .
vin:Moderate rdf:type owl:Thing .
vin:Strong rdf:type owl:Thing .
_:c13 rdf:first vin:Strong .
_:c13 rdf:rest rdf:nil .
_:e13 rdf:first vin:Moderate .
_:e13 rdf:rest _:c13 .
_:a13 owl:oneOf _:e13 .
_:y12 owl:allValuesFrom _:a13 .
vin:PetiteSyrah rdfs:subClassOf _:y12 .
_:g13 rdf:type owl:Restriction .
_:g13 owl:onProperty vin:hasBody .
_:i13 rdf:type owl:Class .
vin:Medium rdf:type owl:Thing .
vin:Full rdf:type owl:Thing .
_:k13 rdf:first vin:Full .
_:k13 rdf:rest rdf:nil .
_:m13 rdf:first vin:Medium .
_:m13 rdf:rest _:k13 .
_:i13 owl:oneOf _:m13 .
_:g13 owl:allValuesFrom _:i13 .
vin:PetiteSyrah rdfs:subClassOf _:g13 .
vin:Wine rdf:type owl:Class .
_:o13 rdf:type owl:Restriction .
_:o13 owl:onProperty vin:madeFromGrape .
_:o13 owl:hasValue vin:PetiteSyrahGrape .
_:q13 rdf:type owl:Restriction .
_:q13 owl:onProperty vin:madeFromGrape .
_:q13 owl:maxCardinality "1"^^xsd:nonNegativeInteger  .
_:s13 rdf:first _:q13 .
_:s13 rdf:rest rdf:nil .
_:u13 rdf:first _:o13 .
_:u13 rdf:rest _:s13 .
_:w13 rdf:first vin:Wine .
_:w13 rdf:rest _:u13 .
vin:PetiteSyrah owl:intersectionOf _:w13 .
vin:Pauillac rdf:type owl:Class .
_:y13 rdf:type owl:Restriction .
_:y13 owl:onProperty vin:hasBody .
_:y13 owl:hasValue vin:Full .
vin:Pauillac rdfs:subClassOf _:y13 .
_:a14 rdf:type owl:Restriction .
_:a14 owl:onProperty vin:hasFlavor .
_:a14 owl:hasValue vin:Strong .
vin:Pauillac rdfs:subClassOf _:a14 .
_:c14 rdf:type owl:Restriction .
_:c14 owl:onProperty vin:madeFromGrape .
_:c14 owl:hasValue vin:CabernetSauvignonGrape .
vin:Pauillac rdfs:subClassOf _:c14 .
_:e14 rdf:type owl:Restriction .
_:e14 owl:onProperty vin:madeFromGrape .
_:e14 owl:maxCardinality "1"^^xsd:nonNegativeInteger  .
vin:Pauillac rdfs:subClassOf _:e14 .
vin:Medoc rdf:type owl:Class .
_:g14 rdf:type owl:Restriction .
_:g14 owl:onProperty vin:locatedIn .
_:g14 owl:hasValue vin:PauillacRegion .
_:i14 rdf:first _:g14 .
_:i14 rdf:rest rdf:nil .
_:k14 rdf:first vin:Medoc .
_:k14 rdf:rest _:i14 .
vin:Pauillac owl:intersectionOf _:k14 .
vin:Muscadet rdf:type owl:Class .
_:m14 rdf:type owl:Restriction .
_:m14 owl:onProperty vin:hasBody .
_:m14 owl:hasValue vin:Light .
vin:Muscadet rdfs:subClassOf _:m14 .
_:o14 rdf:type owl:Restriction .
_:o14 owl:onProperty vin:hasFlavor .
_:o14 owl:hasValue vin:Delicate .
vin:Muscadet rdfs:subClassOf _:o14 .
_:q14 rdf:type owl:Restriction .
_:q14 owl:onProperty vin:hasSugar .
_:q14 owl:hasValue vin:Dry .
vin:Muscadet rdfs:subClassOf _:q14 .
_:s14 rdf:type owl:Restriction .
_:s14 owl:onProperty vin:madeFromGrape .
_:s14 owl:hasValue vin:PinotBlancGrape .
vin:Muscadet rdfs:subClassOf _:s14 .
_:u14 rdf:type owl:Restriction .
_:u14 owl:onProperty vin:madeFromGrape .
_:u14 owl:maxCardinality "1"^^xsd:nonNegativeInteger  .
vin:Muscadet rdfs:subClassOf _:u14 .
vin:Loire rdf:type owl:Class .
_:w14 rdf:type owl:Restriction .
_:w14 owl:onProperty vin:locatedIn .
_:w14 owl:hasValue vin:MuscadetRegion .
_:y14 rdf:first _:w14 .
_:y14 rdf:rest rdf:nil .
_:a15 rdf:first vin:Loire .
_:a15 rdf:rest _:y14 .
vin:Muscadet owl:intersectionOf _:a15 .
vin:Meursault rdf:type owl:Class .
_:c15 rdf:type owl:Restriction .
_:c15 owl:onProperty vin:hasBody .
_:c15 owl:hasValue vin:Full .
vin:Meursault rdfs:subClassOf _:c15 .
vin:WhiteBurgundy rdf:type owl:Class .
_:e15 rdf:type owl:Restriction .
_:e15 owl:onProperty vin:locatedIn .
_:e15 owl:hasValue vin:MeursaultRegion .
_:g15 rdf:first _:e15 .
_:g15 rdf:rest rdf:nil .
_:i15 rdf:first vin:WhiteBurgundy .
_:i15 rdf:rest _:g15 .
vin:Meursault owl:intersectionOf _:i15 .
vin:Merlot rdf:type owl:Class .
_:k15 rdf:type owl:Restriction .
_:k15 owl:onProperty vin:hasColor .
_:k15 owl:hasValue vin:Red .
vin:Merlot rdfs:subClassOf _:k15 .
_:m15 rdf:type owl:Restriction .
_:m15 owl:onProperty vin:hasSugar .
_:m15 owl:hasValue vin:Dry .
vin:Merlot rdfs:subClassOf _:m15 .
_:o15 rdf:type owl:Restriction .
_:o15 owl:onProperty vin:hasFlavor .
_:q15 rdf:type owl:Class .
vin:Moderate rdf:type owl:Thing .
vin:Delicate rdf:type owl:Thing .
_:s15 rdf:first vin:Delicate .
_:s15 rdf:rest rdf:nil .
_:u15 rdf:first vin:Moderate .
_:u15 rdf:rest _:s15 .
_:q15 owl:oneOf _:u15 .
_:o15 owl:allValuesFrom _:q15 .
vin:Merlot rdfs:subClassOf _:o15 .
_:w15 rdf:type owl:Restriction .
_:w15 owl:onProperty vin:hasBody .
_:y15 rdf:type owl:Class .
vin:Light rdf:type owl:Thing .
vin:Medium rdf:type owl:Thing .
_:a16 rdf:first vin:Medium .
_:a16 rdf:rest rdf:nil .
_:c16 rdf:first vin:Light .
_:c16 rdf:rest _:a16 .
_:y15 owl:oneOf _:c16 .
_:w15 owl:allValuesFrom _:y15 .
vin:Merlot rdfs:subClassOf _:w15 .
vin:Wine rdf:type owl:Class .
_:e16 rdf:type owl:Restriction .
_:e16 owl:onProperty vin:madeFromGrape .
_:e16 owl:hasValue vin:MerlotGrape .
_:g16 rdf:type owl:Restriction .
_:g16 owl:onProperty vin:madeFromGrape .
_:g16 owl:maxCardinality "1"^^xsd:nonNegativeInteger  .
_:i16 rdf:first _:g16 .
_:i16 rdf:rest rdf:nil .
_:k16 rdf:first _:e16 .
_:k16 rdf:rest _:i16 .
_:m16 rdf:first vin:Wine .
_:m16 rdf:rest _:k16 .
vin:Merlot owl:intersectionOf _:m16 .
vin:Meritage rdf:type owl:Class .
_:o16 rdf:type owl:Restriction .
_:o16 owl:onProperty vin:hasColor .
_:o16 owl:hasValue vin:Red .
vin:Meritage rdfs:subClassOf _:o16 .
vin:Wine rdf:type owl:Class .
_:q16 rdf:type owl:Restriction .
_:q16 owl:onProperty vin:madeFromGrape .
_:s16 rdf:type owl:Class .
vin:CabernetSauvignonGrape rdf:type owl:Thing .
vin:CabernetFrancGrape rdf:type owl:Thing .
vin:MalbecGrape rdf:type owl:Thing .
vin:PetiteVerdotGrape rdf:type owl:Thing .
vin:MerlotGrape rdf:type owl:Thing .
_:u16 rdf:first vin:MerlotGrape .
_:u16 rdf:rest rdf:nil .
_:w16 rdf:first vin:PetiteVerdotGrape .
_:w16 rdf:rest _:u16 .
_:y16 rdf:first vin:MalbecGrape .
_:y16 rdf:rest _:w16 .
_:a17 rdf:first vin:CabernetFrancGrape .
_:a17 rdf:rest _:y16 .
_:c17 rdf:first vin:CabernetSauvignonGrape .
_:c17 rdf:rest _:a17 .
_:s16 owl:oneOf _:c17 .
_:q16 owl:allValuesFrom _:s16 .
_:e17 rdf:type owl:Restriction .
_:e17 owl:onProperty vin:madeFromGrape .
_:e17 owl:minCardinality "2"^^xsd:nonNegativeInteger  .
_:g17 rdf:first _:e17 .
_:g17 rdf:rest rdf:nil .
_:i17 rdf:first _:q16 .
_:i17 rdf:rest _:g17 .
_:k17 rdf:first vin:Wine .
_:k17 rdf:rest _:i17 .
vin:Meritage owl:intersectionOf _:k17 .
vin:MedocRegion rdf:type vin:Region .
vin:MedocRegion vin:locatedIn vin:BordeauxRegion .
vin:Medoc rdf:type owl:Class .
_:m17 rdf:type owl:Restriction .
_:m17 owl:onProperty vin:hasColor .
_:m17 owl:hasValue vin:Red .
vin:Medoc rdfs:subClassOf _:m17 .
_:o17 rdf:type owl:Restriction .
_:o17 owl:onProperty vin:hasSugar .
_:o17 owl:hasValue vin:Dry .
vin:Medoc rdfs:subClassOf _:o17 .
vin:Bordeaux rdf:type owl:Class .
_:q17 rdf:type owl:Restriction .
_:q17 owl:onProperty vin:locatedIn .
_:q17 owl:hasValue vin:MedocRegion .
_:s17 rdf:first _:q17 .
_:s17 rdf:rest rdf:nil .
_:u17 rdf:first vin:Bordeaux .
_:u17 rdf:rest _:s17 .
vin:Medoc owl:intersectionOf _:u17 .
vin:Margaux rdf:type owl:Class .
_:w17 rdf:type owl:Restriction .
_:w17 owl:onProperty vin:hasFlavor .
_:w17 owl:hasValue vin:Delicate .
vin:Margaux rdfs:subClassOf _:w17 .
_:y17 rdf:type owl:Restriction .
_:y17 owl:onProperty vin:madeFromGrape .
_:y17 owl:hasValue vin:MerlotGrape .
vin:Margaux rdfs:subClassOf _:y17 .
_:a18 rdf:type owl:Restriction .
_:a18 owl:onProperty vin:madeFromGrape .
_:a18 owl:maxCardinality "1"^^xsd:nonNegativeInteger  .
vin:Margaux rdfs:subClassOf _:a18 .
vin:Medoc rdf:type owl:Class .
_:c18 rdf:type owl:Restriction .
_:c18 owl:onProperty vin:locatedIn .
_:c18 owl:hasValue vin:MargauxRegion .
_:e18 rdf:first _:c18 .
_:e18 rdf:rest rdf:nil .
_:g18 rdf:first vin:Medoc .
_:g18 rdf:rest _:e18 .
vin:Margaux owl:intersectionOf _:g18 .
vin:LoireRegion rdf:type vin:Region .
vin:LoireRegion vin:locatedIn vin:FrenchRegion .
vin:Loire rdf:type owl:Class .
vin:Wine rdf:type owl:Class .
_:i18 rdf:type owl:Restriction .
_:i18 owl:onProperty vin:locatedIn .
_:i18 owl:hasValue vin:LoireRegion .
_:k18 rdf:first _:i18 .
_:k18 rdf:rest rdf:nil .
_:m18 rdf:first vin:Wine .
_:m18 rdf:rest _:k18 .
vin:Loire owl:intersectionOf _:m18 .
vin:LateHarvest rdf:type owl:Class .
vin:LateHarvest rdfs:subClassOf vin:Wine .
vin:LateHarvest owl:disjointWith vin:EarlyHarvest .
_:o18 rdf:type owl:Restriction .
_:o18 owl:onProperty vin:hasSugar .
_:o18 owl:hasValue vin:Sweet .
vin:LateHarvest rdfs:subClassOf _:o18 .
_:q18 rdf:type owl:Restriction .
_:q18 owl:onProperty vin:hasFlavor .
_:s18 rdf:type owl:Class .
vin:Moderate rdf:type owl:Thing .
vin:Strong rdf:type owl:Thing .
_:u18 rdf:first vin:Strong .
_:u18 rdf:rest rdf:nil .
_:w18 rdf:first vin:Moderate .
_:w18 rdf:rest _:u18 .
_:s18 owl:oneOf _:w18 .
_:q18 owl:allValuesFrom _:s18 .
vin:LateHarvest rdfs:subClassOf _:q18 .
vin:ItalianWine rdf:type owl:Class .
vin:Wine rdf:type owl:Class .
_:y18 rdf:type owl:Restriction .
_:y18 owl:onProperty vin:locatedIn .
_:y18 owl:hasValue vin:ItalianRegion .
_:a19 rdf:first _:y18 .
_:a19 rdf:rest rdf:nil .
_:c19 rdf:first vin:Wine .
_:c19 rdf:rest _:a19 .
vin:ItalianWine owl:intersectionOf _:c19 .
vin:ItalianRegion rdf:type vin:Region .
vin:IceWine rdf:type owl:Class .
_:e19 rdf:type owl:Restriction .
_:e19 owl:onProperty vin:hasBody .
_:g19 rdf:type owl:Class .
vin:Medium rdf:type owl:Thing .
vin:Full rdf:type owl:Thing .
_:i19 rdf:first vin:Full .
_:i19 rdf:rest rdf:nil .
_:k19 rdf:first vin:Medium .
_:k19 rdf:rest _:i19 .
_:g19 owl:oneOf _:k19 .
_:e19 owl:allValuesFrom _:g19 .
vin:IceWine rdfs:subClassOf _:e19 .
_:m19 rdf:type owl:Restriction .
_:m19 owl:onProperty vin:hasFlavor .
_:o19 rdf:type owl:Class .
vin:Moderate rdf:type owl:Thing .
vin:Strong rdf:type owl:Thing .
_:q19 rdf:first vin:Strong .
_:q19 rdf:rest rdf:nil .
_:s19 rdf:first vin:Moderate .
_:s19 rdf:rest _:q19 .
_:o19 owl:oneOf _:s19 .
_:m19 owl:allValuesFrom _:o19 .
vin:IceWine rdfs:subClassOf _:m19 .
vin:LateHarvest rdf:type owl:Class .
vin:DessertWine rdf:type owl:Class .
_:u19 rdf:type owl:Restriction .
_:u19 owl:onProperty vin:hasColor .
_:u19 owl:hasValue vin:White .
_:w19 rdf:first _:u19 .
_:w19 rdf:rest rdf:nil .
_:y19 rdf:first vin:DessertWine .
_:y19 rdf:rest _:w19 .
_:a20 rdf:first vin:LateHarvest .
_:a20 rdf:rest _:y19 .
vin:IceWine owl:intersectionOf _:a20 .
vin:GermanWine rdf:type owl:Class .
vin:Wine rdf:type owl:Class .
_:c20 rdf:type owl:Restriction .
_:c20 owl:onProperty vin:locatedIn .
_:c20 owl:hasValue vin:GermanyRegion .
_:e20 rdf:first _:c20 .
_:e20 rdf:rest rdf:nil .
_:g20 rdf:first vin:Wine .
_:g20 rdf:rest _:e20 .
vin:GermanWine owl:intersectionOf _:g20 .
vin:Gamay rdf:type owl:Class .
vin:Wine rdf:type owl:Class .
_:i20 rdf:type owl:Restriction .
_:i20 owl:onProperty vin:m