Lisez-moi S.V.P. 
précédent  suivant  introduction  table des matières  index

Les jeux d'essais du langage d'ontologie Web OWL

7.4.1. Les exemples du guide OWL


Sommaire


7.4.1. Les exemples du guide OWL

Ces tests sont tirés du guide OWL [OWL Guide].

DL Full Document cohérent. 001
Description : (informatif) <miscellaneous/Manifest001#test>
Exemple des vins tiré du guide.
Les types de données à gérer ou non : xsd:positiveInteger
Le format N3 est informatif.
Espaces de nommage :
@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#> .
DL Cohérent : <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:madeFromGrape .
_:i20 owl:hasValue vin:GamayGrape .
_:k20 rdf:type owl:Restriction .
_:k20 owl:onProperty vin:madeFromGrape .
_:k20 owl:maxCardinality "1"^^xsd:nonNegativeInteger  .
_:m20 rdf:first _:k20 .
_:m20 rdf:rest rdf:nil .
_:o20 rdf:first _:i20 .
_:o20 rdf:rest _:m20 .
_:q20 rdf:first vin:Wine .
_:q20 rdf:rest _:o20 .
vin:Gamay owl:intersectionOf _:q20 .
vin:FullBodiedWine rdf:type owl:Class .
vin:Wine rdf:type owl:Class .
_:s20 rdf:type owl:Restriction .
_:s20 owl:onProperty vin:hasBody .
_:s20 owl:hasValue vin:Full .
_:u20 rdf:first _:s20 .
_:u20 rdf:rest rdf:nil .
_:w20 rdf:first vin:Wine .
_:w20 rdf:rest _:u20 .
vin:FullBodiedWine owl:intersectionOf _:w20 .
vin:FrenchRegion rdf:type vin:Region .
vin:FrenchWine rdf:type owl:Class .
vin:Wine rdf:type owl:Class .
_:y20 rdf:type owl:Restriction .
_:y20 owl:onProperty vin:locatedIn .
_:y20 owl:hasValue vin:FrenchRegion .
_:a21 rdf:first _:y20 .
_:a21 rdf:rest rdf:nil .
_:c21 rdf:first vin:Wine .
_:c21 rdf:rest _:a21 .
vin:FrenchWine owl:intersectionOf _:c21 .
vin:EarlyHarvest rdf:type owl:Class .
vin:EarlyHarvest rdfs:subClassOf vin:Wine .
_:e21 rdf:type owl:Restriction .
_:e21 owl:onProperty vin:hasSugar .
_:g21 rdf:type owl:Class .
vin:Dry rdf:type owl:Thing .
vin:OffDry rdf:type owl:Thing .
_:i21 rdf:first vin:OffDry .
_:i21 rdf:rest rdf:nil .
_:k21 rdf:first vin:Dry .
_:k21 rdf:rest _:i21 .
_:g21 owl:oneOf _:k21 .
_:e21 owl:allValuesFrom _:g21 .
vin:EarlyHarvest rdfs:subClassOf _:e21 .
vin:DryWine rdf:type owl:Class .
vin:Wine rdf:type owl:Class .
_:m21 rdf:type owl:Restriction .
_:m21 owl:onProperty vin:hasSugar .
_:m21 owl:hasValue vin:Dry .
_:o21 rdf:first _:m21 .
_:o21 rdf:rest rdf:nil .
_:q21 rdf:first vin:Wine .
_:q21 rdf:rest _:o21 .
vin:DryWine owl:intersectionOf _:q21 .
vin:DryWhiteWine rdf:type owl:Class .
vin:DryWine rdf:type owl:Class .
vin:WhiteWine rdf:type owl:Class .
_:s21 rdf:first vin:WhiteWine .
_:s21 rdf:rest rdf:nil .
_:u21 rdf:first vin:DryWine .
_:u21 rdf:rest _:s21 .
vin:DryWhiteWine owl:intersectionOf _:u21 .
vin:DryRiesling rdf:type owl:Class .
_:w21 rdf:type owl:Restriction .
_:w21 owl:onProperty vin:hasColor .
_:w21 owl:hasValue vin:White .
vin:DryRiesling rdfs:subClassOf _:w21 .
_:y21 rdf:type owl:Restriction .
_:y21 owl:onProperty vin:hasFlavor .
_:y21 owl:hasValue vin:Delicate .
vin:DryRiesling rdfs:subClassOf _:y21 .
_:a22 rdf:type owl:Restriction .
_:a22 owl:onProperty vin:hasBody .
_:c22 rdf:type owl:Class .
vin:Light rdf:type owl:Thing .
vin:Medium rdf:type owl:Thing .
_:e22 rdf:first vin:Medium .
_:e22 rdf:rest rdf:nil .
_:g22 rdf:first vin:Light .
_:g22 rdf:rest _:e22 .
_:c22 owl:oneOf _:g22 .
_:a22 owl:allValuesFrom _:c22 .
vin:DryRiesling rdfs:subClassOf _:a22 .
vin:Riesling rdf:type owl:Class .
_:i22 rdf:type owl:Restriction .
_:i22 owl:onProperty vin:hasSugar .
_:i22 owl:hasValue vin:Dry .
_:k22 rdf:first _:i22 .
_:k22 rdf:rest rdf:nil .
_:m22 rdf:first vin:Riesling .
_:m22 rdf:rest _:k22 .
vin:DryRiesling owl:intersectionOf _:m22 .
vin:DryRedWine rdf:type owl:Class .
vin:DryWine rdf:type owl:Class .
vin:RedWine rdf:type owl:Class .
_:o22 rdf:first vin:RedWine .
_:o22 rdf:rest rdf:nil .
_:q22 rdf:first vin:DryWine .
_:q22 rdf:rest _:o22 .
vin:DryRedWine owl:intersectionOf _:q22 .
vin:DessertWine rdf:type owl:Class .
vin:DessertWine rdfs:subClassOf vin:Wine .
_:s22 rdf:type owl:Restriction .
_:s22 owl:onProperty vin:hasSugar .
_:u22 rdf:type owl:Class .
vin:OffDry rdf:type owl:Thing .
vin:Sweet rdf:type owl:Thing .
_:w22 rdf:first vin:Sweet .
_:w22 rdf:rest rdf:nil .
_:y22 rdf:first vin:OffDry .
_:y22 rdf:rest _:w22 .
_:u22 owl:oneOf _:y22 .
_:s22 owl:allValuesFrom _:u22 .
vin:DessertWine rdfs:subClassOf _:s22 .
vin:CotesDOr rdf:type owl:Class .
_:a23 rdf:type owl:Restriction .
_:a23 owl:onProperty vin:hasFlavor .
_:a23 owl:hasValue vin:Moderate .
vin:CotesDOr rdfs:subClassOf _:a23 .
vin:RedBurgundy rdf:type owl:Class .
_:c23 rdf:type owl:Restriction .
_:c23 owl:onProperty vin:locatedIn .
_:c23 owl:hasValue vin:CotesDOrRegion .
_:e23 rdf:first _:c23 .
_:e23 rdf:rest rdf:nil .
_:g23 rdf:first vin:RedBurgundy .
_:g23 rdf:rest _:e23 .
vin:CotesDOr owl:intersectionOf _:g23 .
vin:Chianti rdf:type owl:Class .
vin:Chianti rdfs:subClassOf vin:ItalianWine .
_:i23 rdf:type owl:Restriction .
_:i23 owl:onProperty vin:locatedIn .
_:i23 owl:hasValue vin:ChiantiRegion .
vin:Chianti rdfs:subClassOf _:i23 .
_:k23 rdf:type owl:Restriction .
_:k23 owl:onProperty vin:hasColor .
_:k23 owl:hasValue vin:Red .
vin:Chianti rdfs:subClassOf _:k23 .
_:m23 rdf:type owl:Restriction .
_:m23 owl:onProperty vin:madeFromGrape .
_:m23 owl:hasValue vin:SangioveseGrape .
vin:Chianti rdfs:subClassOf _:m23 .
_:o23 rdf:type owl:Restriction .
_:o23 owl:onProperty vin:hasFlavor .
_:o23 owl:hasValue vin:Moderate .
vin:Chianti rdfs:subClassOf _:o23 .
_:q23 rdf:type owl:Restriction .
_:q23 owl:onProperty vin:hasSugar .
_:q23 owl:hasValue vin:Dry .
vin:Chianti rdfs:subClassOf _:q23 .
_:s23 rdf:type owl:Restriction .
_:s23 owl:onProperty vin:hasBody .
_:u23 rdf:type owl:Class .
vin:Light rdf:type owl:Thing .
vin:Medium rdf:type owl:Thing .
_:w23 rdf:first vin:Medium .
_:w23 rdf:rest rdf:nil .
_:y23 rdf:first vin:Light .
_:y23 rdf:rest _:w23 .
_:u23 owl:oneOf _:y23 .
_:s23 owl:allValuesFrom _:u23 .
vin:Chianti rdfs:subClassOf _:s23 .
vin:CheninBlanc rdf:type owl:Class .
_:a24 rdf:type owl:Restriction .
_:a24 owl:onProperty vin:hasColor .
_:a24 owl:hasValue vin:White .
vin:CheninBlanc rdfs:subClassOf _:a24 .
_:c24 rdf:type owl:Restriction .
_:c24 owl:onProperty vin:hasFlavor .
_:c24 owl:hasValue vin:Moderate .
vin:CheninBlanc rdfs:subClassOf _:c24 .
_:e24 rdf:type owl:Restriction .
_:e24 owl:onProperty vin:hasBody .
_:g24 rdf:type owl:Class .
vin:Full rdf:type owl:Thing .
vin:Medium rdf:type owl:Thing .
_:i24 rdf:first vin:Medium .
_:i24 rdf:rest rdf:nil .
_:k24 rdf:first vin:Full .
_:k24 rdf:rest _:i24 .
_:g24 owl:oneOf _:k24 .
_:e24 owl:allValuesFrom _:g24 .
vin:CheninBlanc rdfs:subClassOf _:e24 .
_:m24 rdf:type owl:Restriction .
_:m24 owl:onProperty vin:hasSugar .
_:o24 rdf:type owl:Class .
vin:Dry rdf:type owl:Thing .
vin:OffDry rdf:type owl:Thing .
_:q24 rdf:first vin:OffDry .
_:q24 rdf:rest rdf:nil .
_:s24 rdf:first vin:Dry .
_:s24 rdf:rest _:q24 .
_:o24 owl:oneOf _:s24 .
_:m24 owl:allValuesFrom _:o24 .
vin:CheninBlanc rdfs:subClassOf _:m24 .
vin:Wine rdf:type owl:Class .
_:u24 rdf:type owl:Restriction .
_:u24 owl:onProperty vin:madeFromGrape .
_:u24 owl:hasValue vin:CheninBlancGrape .
_:w24 rdf:type owl:Restriction .
_:w24 owl:onProperty vin:madeFromGrape .
_:w24 owl:maxCardinality "1"^^xsd:nonNegativeInteger  .
_:y24 rdf:first _:w24 .
_:y24 rdf:rest rdf:nil .
_:a25 rdf:first _:u24 .
_:a25 rdf:rest _:y24 .
_:c25 rdf:first vin:Wine .
_:c25 rdf:rest _:a25 .
vin:CheninBlanc owl:intersectionOf _:c25 .
vin:Chardonnay rdf:type owl:Class .
_:e25 rdf:type owl:Restriction .
_:e25 owl:onProperty vin:hasColor .
_:e25 owl:hasValue vin:White .
vin:Chardonnay rdfs:subClassOf _:e25 .
_:g25 rdf:type owl:Restriction .
_:g25 owl:onProperty vin:hasBody .
_:i25 rdf:type owl:Class .
vin:Full rdf:type owl:Thing .
vin:Medium rdf:type owl:Thing .
_:k25 rdf:first vin:Medium .
_:k25 rdf:rest rdf:nil .
_:m25 rdf:first vin:Full .
_:m25 rdf:rest _:k25 .
_:i25 owl:oneOf _:m25 .
_:g25 owl:allValuesFrom _:i25 .
vin:Chardonnay rdfs:subClassOf _:g25 .
_:o25 rdf:type owl:Restriction .
_:o25 owl:onProperty vin:hasFlavor .
_:q25 rdf:type owl:Class .
vin:Strong rdf:type owl:Thing .
vin:Moderate rdf:type owl:Thing .
_:s25 rdf:first vin:Moderate .
_:s25 rdf:rest rdf:nil .
_:u25 rdf:first vin:Strong .
_:u25 rdf:rest _:s25 .
_:q25 owl:oneOf _:u25 .
_:o25 owl:allValuesFrom _:q25 .
vin:Chardonnay rdfs:subClassOf _:o25 .
vin:Wine rdf:type owl:Class .
_:w25 rdf:type owl:Restriction .
_:w25 owl:onProperty vin:madeFromGrape .
_:w25 owl:hasValue vin:ChardonnayGrape .
_:y25 rdf:type owl:Restriction .
_:y25 owl:onProperty vin:madeFromGrape .
_:y25 owl:maxCardinality "1"^^xsd:nonNegativeInteger  .
_:a26 rdf:first _:y25 .
_:a26 rdf:rest rdf:nil .
_:c26 rdf:first _:w25 .
_:c26 rdf:rest _:a26 .
_:e26 rdf:first vin:Wine .
_:e26 rdf:rest _:c26 .
vin:Chardonnay owl:intersectionOf _:e26 .
vin:CaliforniaRegion rdf:type vin:Region .
vin:CaliforniaRegion vin:locatedIn vin:USRegion .
vin:TexasRegion rdf:type vin:Region .
vin:TexasRegion vin:locatedIn vin:USRegion .
vin:CaliforniaWine rdf:type owl:Class .
vin:Wine rdf:type owl:Class .
_:g26 rdf:type owl:Restriction .
_:g26 owl:onProperty vin:locatedIn .
_:g26 owl:hasValue vin:CaliforniaRegion .
_:i26 rdf:first _:g26 .
_:i26 rdf:rest rdf:nil .
_:k26 rdf:first vin:Wine .
_:k26 rdf:rest _:i26 .
vin:CaliforniaWine owl:intersectionOf _:k26 .
vin:TexasWine rdf:type owl:Class .
vin:Wine rdf:type owl:Class .
_:m26 rdf:type owl:Restriction .
_:m26 owl:onProperty vin:locatedIn .
_:m26 owl:hasValue vin:TexasRegion .
_:o26 rdf:first _:m26 .
_:o26 rdf:rest rdf:nil .
_:q26 rdf:first vin:Wine .
_:q26 rdf:rest _:o26 .
vin:TexasWine owl:intersectionOf _:q26 .
vin:CabernetSauvignon rdf:type owl:Class .
_:s26 rdf:type owl:Restriction .
_:s26 owl:onProperty vin:hasColor .
_:s26 owl:hasValue vin:Red .
vin:CabernetSauvignon rdfs:subClassOf _:s26 .
_:u26 rdf:type owl:Restriction .
_:u26 owl:onProperty vin:hasSugar .
_:u26 owl:hasValue vin:Dry .
vin:CabernetSauvignon rdfs:subClassOf _:u26 .
_:w26 rdf:type owl:Restriction .
_:w26 owl:onProperty vin:hasFlavor .
_:y26 rdf:type owl:Class .
vin:Moderate rdf:type owl:Thing .
vin:Strong rdf:type owl:Thing .
_:a27 rdf:first vin:Strong .
_:a27 rdf:rest rdf:nil .
_:c27 rdf:first vin:Moderate .
_:c27 rdf:rest _:a27 .
_:y26 owl:oneOf _:c27 .
_:w26 owl:allValuesFrom _:y26 .
vin:CabernetSauvignon rdfs:subClassOf _:w26 .
_:e27 rdf:type owl:Restriction .
_:e27 owl:onProperty vin:hasBody .
_:g27 rdf:type owl:Class .
vin:Medium rdf:type owl:Thing .
vin:Full rdf:type owl:Thing .
_:i27 rdf:first vin:Full .
_:i27 rdf:rest rdf:nil .
_:k27 rdf:first vin:Medium .
_:k27 rdf:rest _:i27 .
_:g27 owl:oneOf _:k27 .
_:e27 owl:allValuesFrom _:g27 .
vin:CabernetSauvignon rdfs:subClassOf _:e27 .
vin:Wine rdf:type owl:Class .
_:m27 rdf:type owl:Restriction .
_:m27 owl:onProperty vin:madeFromGrape .
_:m27 owl:hasValue vin:CabernetSauvignonGrape .
_:o27 rdf:type owl:Restriction .
_:o27 owl:onProperty vin:madeFromGrape .
_:o27 owl:maxCardinality "1"^^xsd:nonNegativeInteger  .
_:q27 rdf:first _:o27 .
_:q27 rdf:rest rdf:nil .
_:s27 rdf:first _:m27 .
_:s27 rdf:rest _:q27 .
_:u27 rdf:first vin:Wine .
_:u27 rdf:rest _:s27 .
vin:CabernetSauvignon owl:intersectionOf _:u27 .
vin:CabernetFranc rdf:type owl:Class .
_:w27 rdf:type owl:Restriction .
_:w27 owl:onProperty vin:hasColor .
_:w27 owl:hasValue vin:Red .
vin:CabernetFranc rdfs:subClassOf _:w27 .
_:y27 rdf:type owl:Restriction .
_:y27 owl:onProperty vin:hasFlavor .
_:y27 owl:hasValue vin:Moderate .
vin:CabernetFranc rdfs:subClassOf _:y27 .
_:a28 rdf:type owl:Restriction .
_:a28 owl:onProperty vin:hasBody .
_:a28 owl:hasValue vin:Medium .
vin:CabernetFranc rdfs:subClassOf _:a28 .
_:c28 rdf:type owl:Restriction .
_:c28 owl:onProperty vin:hasSugar .
_:c28 owl:hasValue vin:Dry .
vin:CabernetFranc rdfs:subClassOf _:c28 .
vin:Wine rdf:type owl:Class .
_:e28 rdf:type owl:Restriction .
_:e28 owl:onProperty vin:madeFromGrape .
_:e28 owl:hasValue vin:CabernetFrancGrape .
_:g28 rdf:type owl:Restriction .
_:g28 owl:onProperty vin:madeFromGrape .
_:g28 owl:maxCardinality "1"^^xsd:nonNegativeInteger  .
_:i28 rdf:first _:g28 .
_:i28 rdf:rest rdf:nil .
_:k28 rdf:first _:e28 .
_:k28 rdf:rest _:i28 .
_:m28 rdf:first vin:Wine .
_:m28 rdf:rest _:k28 .
vin:CabernetFranc owl:intersectionOf _:m28 .
vin:Burgundy rdf:type owl:Class .
vin:Wine rdf:type owl:Class .
_:o28 rdf:type owl:Restriction .
_:o28 owl:onProperty vin:locatedIn .
_:o28 owl:hasValue vin:BourgogneRegion .
_:q28 rdf:first _:o28 .
_:q28 rdf:rest rdf:nil .
_:s28 rdf:first vin:Wine .
_:s28 rdf:rest _:q28 .
vin:Burgundy owl:intersectionOf _:s28 .
_:u28 rdf:type owl:Restriction .
_:u28 owl:onProperty vin:hasSugar .
_:u28 owl:hasValue vin:Dry .
vin:Burgundy rdfs:subClassOf _:u28 .
vin:BourgogneRegion rdf:type vin:Region .
vin:BourgogneRegion vin:locatedIn vin:FrenchRegion .
vin:BordeauxRegion rdf:type vin:Region .
vin:BordeauxRegion vin:locatedIn vin:FrenchRegion .
vin:Bordeaux rdf:type owl:Class .
vin:Wine rdf:type owl:Class .
_:w28 rdf:type owl:Restriction .
_:w28 owl:onProperty vin:locatedIn .
_:w28 owl:hasValue vin:BordeauxRegion .
_:y28 rdf:first _:w28 .
_:y28 rdf:rest rdf:nil .
_:a29 rdf:first vin:Wine .
_:a29 rdf:rest _:y28 .
vin:Bordeaux owl:intersectionOf _:a29 .
vin:Beaujolais rdf:type owl:Class .
_:c29 rdf:type owl:Restriction .
_:c29 owl:onProperty vin:hasColor .
_:c29 owl:hasValue vin:Red .
vin:Beaujolais rdfs:subClassOf _:c29 .
_:e29 rdf:type owl:Restriction .
_:e29 owl:onProperty vin:hasBody .
_:e29 owl:hasValue vin:Light .
vin:Beaujolais rdfs:subClassOf _:e29 .
_:g29 rdf:type owl:Restriction .
_:g29 owl:onProperty vin:hasSugar .
_:g29 owl:hasValue vin:Dry .
vin:Beaujolais rdfs:subClassOf _:g29 .
_:i29 rdf:type owl:Restriction .
_:i29 owl:onProperty vin:hasFlavor .
_:i29 owl:hasValue vin:Delicate .
vin:Beaujolais rdfs:subClassOf _:i29 .
_:k29 rdf:type owl:Restriction .
_:k29 owl:onProperty vin:madeFromGrape .
_:k29 owl:hasValue vin:GamayGrape .
vin:Beaujolais rdfs:subClassOf _:k29 .
_:m29 rdf:type owl:Restriction .
_:m29 owl:onProperty vin:madeFromGrape .
_:m29 owl:maxCardinality "1"^^xsd:nonNegativeInteger  .
vin:Beaujolais rdfs:subClassOf _:m29 .
vin:Wine rdf:type owl:Class .
_:o29 rdf:type owl:Restriction .
_:o29 owl:onProperty vin:locatedIn .
_:o29 owl:hasValue vin:BeaujolaisRegion .
_:q29 rdf:first _:o29 .
_:q29 rdf:rest rdf:nil .
_:s29 rdf:first vin:Wine .
_:s29 rdf:rest _:q29 .
vin:Beaujolais owl:intersectionOf _:s29 .
vin:AustralianRegion rdf:type vin:Region .
vin:Anjou rdf:type owl:Class .
_:u29 rdf:type owl:Restriction .
_:u29 owl:onProperty vin:hasColor .
_:u29 owl:hasValue vin:Rose .
vin:Anjou rdfs:subClassOf _:u29 .
_:w29 rdf:type owl:Restriction .
_:w29 owl:onProperty vin:hasBody .
_:w29 owl:hasValue vin:Light .
vin:Anjou rdfs:subClassOf _:w29 .
_:y29 rdf:type owl:Restriction .
_:y29 owl:onProperty vin:hasFlavor .
_:y29 owl:hasValue vin:Delicate .
vin:Anjou rdfs:subClassOf _:y29 .
_:a30 rdf:type owl:Restriction .
_:a30 owl:onProperty vin:hasSugar .
_:a30 owl:hasValue vin:OffDry .
vin:Anjou rdfs:subClassOf _:a30 .
vin:Loire rdf:type owl:Class .
_:c30 rdf:type owl:Restriction .
_:c30 owl:onProperty vin:locatedIn .
_:c30 owl:hasValue vin:AnjouRegion .
_:e30 rdf:first _:c30 .
_:e30 rdf:rest rdf:nil .
_:g30 rdf:first vin:Loire .
_:g30 rdf:rest _:e30 .
vin:Anjou owl:intersectionOf _:g30 .
vin:AmericanWine rdf:type owl:Class .
vin:Wine rdf:type owl:Class .
_:i30 rdf:type owl:Restriction .
_:i30 owl:onProperty vin:locatedIn .
_:i30 owl:hasValue vin:USRegion .
_:k30 rdf:first _:i30 .
_:k30 rdf:rest rdf:nil .
_:m30 rdf:first vin:Wine .
_:m30 rdf:rest _:k30 .
vin:AmericanWine owl:intersectionOf _:m30 .
vin:AlsatianWine rdf:type owl:Class .
vin:Wine rdf:type owl:Class .
_:o30 rdf:type owl:Restriction .
_:o30 owl:onProperty vin:locatedIn .
_:o30 owl:hasValue vin:AlsaceRegion .
_:q30 rdf:first _:o30 .
_:q30 rdf:rest rdf:nil .
_:s30 rdf:first vin:Wine .
_:s30 rdf:rest _:q30 .
vin:AlsatianWine owl:intersectionOf _:s30 .
vin:Full rdf:type vin:WineBody .
vin:Medium rdf:type vin:WineBody .
vin:Light rdf:type vin:WineBody .
vin:Red rdf:type vin:WineColor .
vin:Rose rdf:type vin:WineColor .
vin:White rdf:type vin:WineColor .
vin:Strong rdf:type vin:WineFlavor .
vin:Moderate rdf:type vin:WineFlavor .
vin:Delicate rdf:type vin:WineFlavor .
vin:Dry rdf:type vin:WineSugar .
vin:OffDry rdf:type vin:WineSugar .
vin:OffDry owl:differentFrom vin:Dry .
vin:OffDry owl:differentFrom vin:Sweet .
vin:Sweet rdf:type vin:WineSugar .
vin:Sweet owl:differentFrom vin:Dry .
_:u30 rdf:type owl:AllDifferent .
vin:Red rdf:type vin:WineColor .
vin:White rdf:type vin:WineColor .
vin:Rose rdf:type vin:WineColor .
_:w30 rdf:first vin:Rose .
_:w30 rdf:rest rdf:nil .
_:y30 rdf:first vin:White .
_:y30 rdf:rest _:w30 .
_:a31 rdf:first vin:Red .
_:a31 rdf:rest _:y30 .
_:u30 owl:distinctMembers _:a31 .
_:c31 rdf:type owl:AllDifferent .
vin:Light rdf:type vin:WineBody .
vin:Medium rdf:type vin:WineBody .
vin:Full rdf:type vin:WineBody .
_:e31 rdf:first vin:Full .
_:e31 rdf:rest rdf:nil .
_:g31 rdf:first vin:Medium .
_:g31 rdf:rest _:e31 .
_:i31 rdf:first vin:Light .
_:i31 rdf:rest _:g31 .
_:c31 owl:distinctMembers _:i31 .
_:k31 rdf:type owl:AllDifferent .
vin:Delicate rdf:type vin:WineFlavor .
vin:Moderate rdf:type vin:WineFlavor .
vin:Strong rdf:type vin:WineFlavor .
_:m31 rdf:first vin:Strong .
_:m31 rdf:rest rdf:nil .
_:o31 rdf:first vin:Moderate .
_:o31 rdf:rest _:m31 .
_:q31 rdf:first vin:Delicate .
_:q31 rdf:rest _:o31 .
_:k31 owl:distinctMembers _:q31 .
_:s31 rdf:type owl:AllDifferent .
vin:Sweet rdf:type vin:WineSugar .
vin:OffDry rdf:type vin:WineSugar .
vin:Dry rdf:type vin:WineSugar .
_:u31 rdf:first vin:Dry .
_:u31 rdf:rest rdf:nil .
_:w31 rdf:first vin:OffDry .
_:w31 rdf:rest _:u31 .
_:y31 rdf:first vin:Sweet .
_:y31 rdf:rest _:w31 .
_:s31 owl:distinctMembers _:y31 .
vin:AlsaceRegion rdf:type vin:Region .
vin:AlsaceRegion vin:locatedIn vin:FrenchRegion .
vin:AnjouRegion rdf:type vin:Region .
vin:AnjouRegion vin:locatedIn vin:LoireRegion .
vin:ArroyoGrandeRegion rdf:type vin:Region .
vin:ArroyoGrandeRegion vin:locatedIn vin:CaliforniaRegion .
vin:Beringer rdf:type vin:Winery .
vin:Bancroft rdf:type vin:Winery .
vin:BancroftChardonnay rdf:type vin:Chardonnay .
vin:BancroftChardonnay vin:locatedIn vin:NapaRegion .
vin:BancroftChardonnay vin:hasMaker vin:Bancroft .
vin:BancroftChardonnay vin:hasSugar vin:Dry .
vin:BancroftChardonnay vin:hasFlavor vin:Moderate .
vin:BancroftChardonnay vin:hasBody vin:Medium .
vin:BeaujolaisRegion rdf:type vin:Region .
vin:BeaujolaisRegion vin:locatedIn vin:FrenchRegion .
vin:CabernetFrancGrape rdf:type vin:WineGrape .
vin:CabernetSauvignonGrape rdf:type vin:WineGrape .
vin:CentralCoastRegion rdf:type vin:Region .
vin:CentralCoastRegion vin:locatedIn vin:CaliforniaRegion .
vin:ChardonnayGrape rdf:type vin:WineGrape .
vin:ChateauChevalBlanc rdf:type vin:Winery .
vin:ChateauChevalBlancStEmilion rdf:type vin:StEmilion .
vin:ChateauChevalBlancStEmilion vin:hasMaker vin:ChateauChevalBlanc .
vin:ChateauDYchem rdf:type vin:Winery .
vin:ChateauDYchemSauterne rdf:type vin:Sauterne .
vin:ChateauDYchemSauterne vin:madeFromGrape vin:SauvignonBlancGrape .
vin:ChateauDYchemSauterne vin:madeFromGrape vin:SemillonGrape .
vin:ChateauDYchemSauterne vin:hasFlavor vin:Strong .
vin:ChateauDYchemSauterne vin:hasMaker vin:ChateauDYchem .
vin:ChateauDeMeursault rdf:type vin:Winery .
vin:ChateauDeMeursaultMeursault rdf:type vin:Meursault .
vin:ChateauDeMeursaultMeursault vin:hasFlavor vin:Moderate .
vin:ChateauDeMeursaultMeursault vin:hasMaker vin:ChateauDeMeursault .
vin:ChateauLafiteRothschild rdf:type vin:Winery .
vin:ChateauLafiteRothschildPauillac rdf:type vin:Pauillac .
vin:ChateauLafiteRothschildPauillac vin:hasMaker vin:ChateauLafiteRothschild .
vin:ChateauMargaux rdf:type vin:Margaux .
vin:ChateauMargaux vin:hasMaker vin:ChateauMargauxWinery .
vin:ChateauMargauxWinery rdf:type vin:Winery .
vin:ChateauMorgon rdf:type vin:Winery .
vin:ChateauMorgonBeaujolais rdf:type vin:Beaujolais .
vin:ChateauMorgonBeaujolais vin:hasMaker vin:ChateauMorgon .
vin:CheninBlancGrape rdf:type vin:WineGrape .
vin:ZinfandelGrape rdf:type vin:WineGrape .
vin:ChiantiClassico rdf:type vin:Chianti .
vin:ChiantiClassico vin:hasBody vin:Medium .
vin:ChiantiClassico vin:hasMaker vin:McGuinnesso .
vin:ChiantiRegion rdf:type vin:Region .
vin:ChiantiRegion vin:locatedIn vin:ItalianRegion .
vin:ClosDeLaPoussie rdf:type vin:Winery .
vin:ClosDeLaPoussieSancerre rdf:type vin:Sancerre .
vin:ClosDeLaPoussieSancerre vin:hasMaker vin:ClosDeLaPoussie .
vin:ClosDeVougeot rdf:type vin:Winery .
vin:ClosDeVougeotCotesDOr rdf:type vin:CotesDOr .
vin:ClosDeVougeotCotesDOr vin:hasMaker vin:ClosDeVougeot .
vin:CongressSprings rdf:type vin:Winery .
vin:CongressSpringsSemillon rdf:type vin:Semillon .
vin:CongressSpringsSemillon vin:hasMaker vin:CongressSprings .
vin:CongressSpringsSemillon vin:hasSugar vin:Dry .
vin:CongressSpringsSemillon vin:hasFlavor vin:Moderate .
vin:CongressSpringsSemillon vin:hasBody vin:Medium .
vin:Corbans rdf:type vin:Winery .
vin:CorbansDryWhiteRiesling rdf:type vin:Riesling .
vin:CorbansDryWhiteRiesling vin:locatedIn vin:NewZealandRegion .
vin:CorbansDryWhiteRiesling vin:hasMaker vin:Corbans .
vin:CorbansDryWhiteRiesling vin:hasSugar vin:OffDry .
vin:CorbansDryWhiteRiesling vin:hasFlavor vin:Moderate .
vin:CorbansDryWhiteRiesling vin:hasBody vin:Medium .
vin:CorbansPrivateBinSauvignonBlanc rdf:type vin:SauvignonBlanc .
vin:CorbansPrivateBinSauvignonBlanc vin:locatedIn vin:NewZealandRegion .
vin:CorbansPrivateBinSauvignonBlanc vin:hasMaker vin:Corbans .
vin:CorbansPrivateBinSauvignonBlanc vin:hasSugar vin:Dry .
vin:CorbansPrivateBinSauvignonBlanc vin:hasFlavor vin:Strong .
vin:CorbansPrivateBinSauvignonBlanc vin:hasBody vin:Full .
vin:CorbansSauvignonBlanc rdf:type vin:SauvignonBlanc .
vin:CorbansSauvignonBlanc vin:locatedIn vin:NewZealandRegion .
vin:CorbansSauvignonBlanc vin:hasMaker vin:Corbans .
vin:CorbansSauvignonBlanc vin:hasSugar vin:Dry .
vin:CorbansSauvignonBlanc vin:hasFlavor vin:Strong .
vin:CorbansSauvignonBlanc vin:hasBody vin:Medium .
vin:CortonMontrachet rdf:type vin:Winery .
vin:CortonMontrachetWhiteBurgundy rdf:type vin:WhiteBurgundy .
vin:CortonMontrachetWhiteBurgundy vin:hasMaker vin:CortonMontrachet .
vin:CortonMontrachetWhiteBurgundy vin:hasSugar vin:Dry .
vin:CortonMontrachetWhiteBurgundy vin:hasFlavor vin:Strong .
vin:CortonMontrachetWhiteBurgundy vin:hasBody vin:Full .
vin:CotesDOrRegion rdf:type vin:Region .
vin:CotesDOrRegion vin:locatedIn vin:BourgogneRegion .
vin:Cotturi rdf:type vin:Winery .
vin:CotturiZinfandel rdf:type vin:Zinfandel .
vin:CotturiZinfandel vin:locatedIn vin:SonomaRegion .
vin:CotturiZinfandel vin:hasMaker vin:Cotturi .
vin:CotturiZinfandel vin:hasSugar vin:Dry .
vin:CotturiZinfandel vin:hasFlavor vin:Strong .
vin:CotturiZinfandel vin:hasBody vin:Full .
vin:DAnjou rdf:type vin:Winery .
vin:EdnaValleyRegion rdf:type vin:Region .
vin:EdnaValleyRegion vin:locatedIn vin:CaliforniaRegion .
vin:Elyse rdf:type vin:Winery .
vin:ElyseZinfandel rdf:type vin:Zinfandel .
vin:ElyseZinfandel vin:locatedIn vin:NapaRegion .
vin:ElyseZinfandel vin:hasMaker vin:Elyse .
vin:ElyseZinfandel vin:hasSugar vin:Dry .
vin:ElyseZinfandel vin:hasFlavor vin:Moderate .
vin:ElyseZinfandel vin:hasBody vin:Full .
vin:Forman rdf:type vin:Winery .
vin:FormanCabernetSauvignon rdf:type vin:CabernetSauvignon .
vin:FormanCabernetSauvignon vin:locatedIn vin:NapaRegion .
vin:FormanCabernetSauvignon vin:hasMaker vin:Forman .
vin:FormanCabernetSauvignon vin:hasSugar vin:Dry .
vin:FormanCabernetSauvignon vin:hasFlavor vin:Strong .
vin:FormanCabernetSauvignon vin:hasBody vin:Medium .
vin:FormanChardonnay rdf:type vin:Chardonnay .
vin:FormanChardonnay vin:locatedIn vin:NapaRegion .
vin:FormanChardonnay vin:hasMaker vin:Forman .
vin:FormanChardonnay vin:hasSugar vin:Dry .
vin:FormanChardonnay vin:hasFlavor vin:Moderate .
vin:FormanChardonnay vin:hasBody vin:Full .
vin:Foxen rdf:type vin:Winery .
vin:FoxenCheninBlanc rdf:type vin:CheninBlanc .
vin:FoxenCheninBlanc vin:locatedIn vin:SantaBarbaraRegion .
vin:FoxenCheninBlanc vin:hasMaker vin:Foxen .
vin:FoxenCheninBlanc vin:hasSugar vin:Dry .
vin:FoxenCheninBlanc vin:hasFlavor vin:Moderate .
vin:FoxenCheninBlanc vin:hasBody vin:Full .
vin:GamayGrape rdf:type vin:WineGrape .
vin:GaryFarrell rdf:type vin:Winery .
vin:GaryFarrellMerlot rdf:type vin:Merlot .
vin:GaryFarrellMerlot vin:locatedIn vin:SonomaRegion .
vin:GaryFarrellMerlot vin:hasMaker vin:GaryFarrell .
vin:GaryFarrellMerlot vin:hasSugar vin:Dry .
vin:GaryFarrellMerlot vin:hasFlavor vin:Moderate .
vin:GaryFarrellMerlot vin:hasBody vin:Medium .
vin:GermanyRegion rdf:type vin:Region .
vin:Handley rdf:type vin:Winery .
vin:KalinCellars rdf:type vin:Winery .
vin:KalinCellarsSemillon rdf:type vin:Semillon .
vin:KalinCellarsSemillon vin:hasMaker vin:KalinCellars .
vin:KalinCellarsSemillon vin:hasSugar vin:Dry .
vin:KalinCellarsSemillon vin:hasFlavor vin:Strong .
vin:KalinCellarsSemillon vin:hasBody vin:Full .
vin:KathrynKennedy rdf:type vin:Winery .
vin:KathrynKennedyLateral rdf:type vin:Meritage .
vin:KathrynKennedyLateral vin:hasMaker vin:KathrynKennedy .
vin:KathrynKennedyLateral vin:hasSugar vin:Dry .
vin:KathrynKennedyLateral vin:hasFlavor vin:Delicate .
vin:KathrynKennedyLateral vin:hasBody vin:Medium .
vin:LaneTanner rdf:type vin:Winery .
vin:LaneTannerPinotNoir rdf:type vin:PinotNoir .
vin:LaneTannerPinotNoir vin:locatedIn vin:SantaBarbaraRegion .
vin:LaneTannerPinotNoir vin:hasMaker vin:LaneTanner .
vin:LaneTannerPinotNoir vin:hasSugar vin:Dry .
vin:LaneTannerPinotNoir vin:hasFlavor vin:Delicate .
vin:LaneTannerPinotNoir vin:hasBody vin:Light .
vin:Longridge rdf:type vin:Winery .
vin:LongridgeMerlot rdf:type vin:Merlot .
vin:LongridgeMerlot vin:locatedIn vin:NewZealandRegion .
vin:LongridgeMerlot vin:hasMaker vin:Longridge .
vin:LongridgeMerlot vin:hasSugar vin:Dry .
vin:LongridgeMerlot vin:hasFlavor vin:Moderate .
vin:LongridgeMerlot vin:hasBody vin:Light .
vin:MalbecGrape rdf:type vin:WineGrape .
vin:MargauxRegion rdf:type vin:Region .
vin:MargauxRegion vin:locatedIn vin:MedocRegion .
vin:Marietta rdf:type vin:Winery .
vin:MariettaCabernetSauvignon rdf:type vin:CabernetSauvignon .
vin:MariettaCabernetSauvignon vin:locatedIn vin:SonomaRegion .
vin:MariettaCabernetSauvignon vin:hasMaker vin:Marietta .
vin:MariettaCabernetSauvignon vin:hasSugar vin:Dry .
vin:MariettaCabernetSauvignon vin:hasFlavor vin:Moderate .
vin:MariettaCabernetSauvignon vin:hasBody vin:Medium .
vin:MariettaOldVinesRed rdf:type vin:RedTableWine .
vin:MariettaOldVinesRed vin:locatedIn vin:SonomaRegion .
vin:MariettaOldVinesRed vin:hasMaker vin:Marietta .
vin:MariettaOldVinesRed vin:hasSugar vin:Dry .
vin:MariettaOldVinesRed vin:hasFlavor vin:Moderate .
vin:MariettaOldVinesRed vin:hasBody vin:Medium .
vin:MariettaPetiteSyrah rdf:type vin:PetiteSyrah .
vin:MariettaPetiteSyrah vin:locatedIn vin:SonomaRegion .
vin:MariettaPetiteSyrah vin:hasMaker vin:Marietta .
vin:MariettaPetiteSyrah vin:hasSugar vin:Dry .
vin:MariettaPetiteSyrah vin:hasFlavor vin:Moderate .
vin:MariettaPetiteSyrah vin:hasBody vin:Medium .
vin:MariettaZinfandel rdf:type vin:Zinfandel .
vin:MariettaZinfandel vin:locatedIn vin:SonomaRegion .
vin:MariettaZinfandel vin:hasMaker vin:Marietta .
vin:MariettaZinfandel vin:hasSugar vin:Dry .
vin:MariettaZinfandel vin:hasFlavor vin:Moderate .
vin:MariettaZinfandel vin:hasBody vin:Medium .
vin:McGuinnesso rdf:type vin:Winery .
vin:MendocinoRegion rdf:type vin:Region .
vin:MendocinoRegion vin:locatedIn vin:CaliforniaRegion .
vin:MendocinoRegion vin:adjacentRegion vin:SonomaRegion .
vin:MerlotGrape rdf:type vin:WineGrape .
vin:MeursaultRegion rdf:type vin:Region .
vin:MeursaultRegion vin:locatedIn vin:BourgogneRegion .
vin:MountEdenVineyard rdf:type vin:Winery .
vin:MountEdenVineyardEdnaValleyChardonnay rdf:type vin:Chardonnay .
vin:MountEdenVineyardEdnaValleyChardonnay vin:locatedIn vin:EdnaValleyRegion .
vin:MountEdenVineyardEdnaValleyChardonnay vin:hasMaker vin:MountEdenVineyard .
vin:MountEdenVineyardEdnaValleyChardonnay vin:hasSugar vin:Dry .
vin:MountEdenVineyardEdnaValleyChardonnay vin:hasFlavor vin:Moderate .
vin:MountEdenVineyardEdnaValleyChardonnay vin:hasBody vin:Medium .
vin:MountEdenVineyardEstatePinotNoir rdf:type vin:PinotNoir .
vin:MountEdenVineyardEstatePinotNoir vin:locatedIn vin:EdnaValleyRegion .
vin:MountEdenVineyardEstatePinotNoir vin:hasMaker vin:MountEdenVineyard .
vin:MountEdenVineyardEstatePinotNoir vin:hasSugar vin:Dry .
vin:MountEdenVineyardEstatePinotNoir vin:hasFlavor vin:Strong .
vin:MountEdenVineyardEstatePinotNoir vin:hasBody vin:Full .
vin:Mountadam rdf:type vin:Winery .
vin:MountadamChardonnay rdf:type vin:Chardonnay .
vin:MountadamChardonnay vin:locatedIn vin:SouthAustraliaRegion .
vin:MountadamChardonnay vin:hasMaker vin:Mountadam .
vin:MountadamChardonnay vin:hasSugar vin:Dry .
vin:MountadamChardonnay vin:hasFlavor vin:Strong .
vin:MountadamChardonnay vin:hasBody vin:Full .
vin:MountadamPinotNoir rdf:type vin:PinotNoir .
vin:MountadamPinotNoir vin:locatedIn vin:SouthAustraliaRegion .
vin:MountadamPinotNoir vin:hasMaker vin:Mountadam .
vin:MountadamPinotNoir vin:hasSugar vin:Dry .
vin:MountadamPinotNoir vin:hasFlavor vin:Moderate .
vin:MountadamPinotNoir vin:hasBody vin:Medium .
vin:MountadamRiesling rdf:type vin:DryRiesling .
vin:MountadamRiesling vin:locatedIn vin:SouthAustraliaRegion .
vin:MountadamRiesling vin:hasMaker vin:Mountadam .
vin:MountadamRiesling vin:hasSugar vin:Dry .
vin:MountadamRiesling vin:hasFlavor vin:Delicate .
vin:MountadamRiesling vin:hasBody vin:Medium .
vin:MuscadetRegion rdf:type vin:Region .
vin:MuscadetRegion vin:locatedIn vin:LoireRegion .
vin:NapaRegion rdf:type vin:Region .
vin:NapaRegion vin:locatedIn vin:CaliforniaRegion .
vin:NewZealandRegion rdf:type vin:Region .
vin:PageMillWinery rdf:type vin:Winery .
vin:PageMillWineryCabernetSauvignon rdf:type vin:CabernetSauvignon .
vin:PageMillWineryCabernetSauvignon vin:locatedIn vin:NapaRegion .
vin:PageMillWineryCabernetSauvignon vin:hasMaker vin:PageMillWinery .
vin:PageMillWineryCabernetSauvignon vin:hasSugar vin:Dry .
vin:PageMillWineryCabernetSauvignon vin:hasFlavor vin:Moderate .
vin:PageMillWineryCabernetSauvignon vin:hasBody vin:Medium .
vin:PauillacRegion rdf:type vin:Region .
vin:PauillacRegion vin:locatedIn vin:MedocRegion .
vin:PeterMccoy rdf:type vin:Winery .
vin:PeterMccoyChardonnay rdf:type vin:Chardonnay .
vin:PeterMccoyChardonnay vin:locatedIn vin:SonomaRegion .
vin:PeterMccoyChardonnay vin:hasMaker vin:PeterMccoy .
vin:PeterMccoyChardonnay vin:hasSugar vin:Dry .
vin:PeterMccoyChardonnay vin:hasFlavor vin:Moderate .
vin:PeterMccoyChardonnay vin:hasBody vin:Medium .
vin:PetiteSyrahGrape rdf:type vin:WineGrape .
vin:PetiteVerdotGrape rdf:type vin:WineGrape .
vin:PinotBlancGrape rdf:type vin:WineGrape .
vin:PinotNoirGrape rdf:type vin:WineGrape .
vin:PortugalRegion rdf:type vin:Region .
vin:PulignyMontrachet rdf:type vin:Winery .
vin:PulignyMontrachetWhiteBurgundy rdf:type vin:WhiteBurgundy .
vin:PulignyMontrachetWhiteBurgundy vin:hasMaker vin:PulignyMontrachet .
vin:PulignyMontrachetWhiteBurgundy vin:hasSugar vin:Dry .
vin:PulignyMontrachetWhiteBurgundy vin:hasFlavor vin:Moderate .
vin:PulignyMontrachetWhiteBurgundy vin:hasBody vin:Medium .
vin:RieslingGrape rdf:type vin:WineGrape .
vin:RoseDAnjou rdf:type vin:Anjou .
vin:RoseDAnjou vin:hasMaker vin:DAnjou .
vin:SancerreRegion rdf:type vin:Region .
vin:SancerreRegion vin:locatedIn vin:LoireRegion .
vin:SangioveseGrape rdf:type vin:WineGrape .
vin:SantaBarbaraRegion rdf:type vin:Region .
vin:SantaBarbaraRegion vin:locatedIn vin:CaliforniaRegion .
vin:SantaCruzMountainVineyard rdf:type vin:Winery .
vin:SantaCruzMountainVineyardCabernetSauvignon rdf:type vin:CabernetSauvignon .
vin:SantaCruzMountainVineyardCabernetSauvignon vin:locatedIn vin:SantaCruzMountainsRegion .
vin:SantaCruzMountainVineyardCabernetSauvignon vin:hasMaker vin:SantaCruzMountainVineyard .
vin:SantaCruzMountainVineyardCabernetSauvignon vin:hasSugar vin:Dry .
vin:SantaCruzMountainVineyardCabernetSauvignon vin:hasFlavor vin:Strong .
vin:SantaCruzMountainVineyardCabernetSauvignon vin:hasBody vin:Full .
vin:CentralTexasRegion rdf:type vin:Region .
vin:CentralTexasRegion vin:locatedIn vin:TexasRegion .
vin:StGenevieve rdf:type vin:Winery .
vin:StGenevieveTexasWhite rdf:type vin:WhiteWine .
vin:StGenevieveTexasWhite vin:locatedIn vin:CentralTexasRegion .
vin:StGenevieveTexasWhite vin:hasMaker vin:StGenevieve .
vin:StGenevieveTexasWhite vin:hasSugar vin:Dry .
vin:StGenevieveTexasWhite vin:hasFlavor vin:Moderate .
vin:SantaCruzMountainsRegion rdf:type vin:Region .
vin:SantaCruzMountainsRegion vin:locatedIn vin:CaliforniaRegion .
vin:SaucelitoCanyon rdf:type vin:Winery .
vin:SaucelitoCanyonZinfandel rdf:type vin:Zinfandel .
vin:SaucelitoCanyonZinfandel vin:locatedIn vin:ArroyoGrandeRegion .
vin:SaucelitoCanyonZinfandel vin:hasMaker vin:SaucelitoCanyon .
vin:SaucelitoCanyonZinfandel vin:hasSugar vin:Dry .
vin:SaucelitoCanyonZinfandel vin:hasFlavor vin:Moderate .
vin:SaucelitoCanyonZinfandel vin:hasBody vin:Medium .
vin:SaucelitoCanyonZinfandel1998 rdf:type vin:Zinfandel .
vin:SaucelitoCanyonZinfandel1998 vin:locatedIn vin:ArroyoGrandeRegion .
vin:SaucelitoCanyonZinfandel1998 vin:hasVintageYear vin:Year1998 .
vin:SaucelitoCanyonZinfandel1998 vin:hasMaker vin:SaucelitoCanyon .
vin:SaucelitoCanyonZinfandel1998 vin:hasSugar vin:Dry .
vin:SaucelitoCanyonZinfandel1998 vin:hasFlavor vin:Moderate .
vin:SaucelitoCanyonZinfandel1998 vin:hasBody vin:Medium .
vin:SauterneRegion rdf:type vin:Region .
vin:SauterneRegion vin:locatedIn vin:BordeauxRegion .
vin:SauvignonBlancGrape rdf:type vin:WineGrape .
vin:SchlossRothermel rdf:type vin:Winery .
vin:SchlossRothermelTrochenbierenausleseRiesling rdf:type vin:SweetRiesling .
vin:SchlossRothermelTrochenbierenausleseRiesling vin:locatedIn vin:GermanyRegion .
vin:SchlossRothermelTrochenbierenausleseRiesling vin:hasMaker vin:SchlossRothermel .
vin:SchlossRothermelTrochenbierenausleseRiesling vin:hasSugar vin:Sweet .
vin:SchlossRothermelTrochenbierenausleseRiesling vin:hasFlavor vin:Strong .
vin:SchlossRothermelTrochenbierenausleseRiesling vin:hasBody vin:Full .
vin:SchlossVolrad rdf:type vin:Winery .
vin:SchlossVolradTrochenbierenausleseRiesling rdf:type vin:SweetRiesling .
vin:SchlossVolradTrochenbierenausleseRiesling vin:locatedIn vin:GermanyRegion .
vin:SchlossVolradTrochenbierenausleseRiesling vin:hasMaker vin:SchlossVolrad .
vin:SchlossVolradTrochenbierenausleseRiesling vin:hasSugar vin:Sweet .
vin:SchlossVolradTrochenbierenausleseRiesling vin:hasFlavor vin:Moderate .
vin:SchlossVolradTrochenbierenausleseRiesling vin:hasBody vin:Full .
vin:SeanThackrey rdf:type vin:Winery .
vin:SeanThackreySiriusPetiteSyrah rdf:type vin:PetiteSyrah .
vin:SeanThackreySiriusPetiteSyrah vin:locatedIn vin:NapaRegion .
vin:SeanThackreySiriusPetiteSyrah vin:hasMaker vin:SeanThackrey .
vin:SeanThackreySiriusPetiteSyrah vin:hasSugar vin:Dry .
vin:SeanThackreySiriusPetiteSyrah vin:hasFlavor vin:Strong .
vin:SeanThackreySiriusPetiteSyrah vin:hasBody vin:Full .
vin:Selaks rdf:type vin:Winery .
vin:SelaksIceWine rdf:type vin:IceWine .
vin:SelaksIceWine vin:locatedIn vin:NewZealandRegion .
vin:SelaksIceWine vin:hasMaker vin:Selaks .
vin:SelaksIceWine vin:hasFlavor vin:Moderate .
vin:SelaksIceWine vin:hasBody vin:Medium .
vin:SelaksIceWine vin:hasColor vin:White .
vin:SelaksSauvignonBlanc rdf:type vin:SauvignonBlanc .
vin:SelaksSauvignonBlanc vin:locatedIn vin:NewZealandRegion .
vin:SelaksSauvignonBlanc vin:hasMaker vin:Selaks .
vin:SelaksSauvignonBlanc vin:hasSugar vin:Dry .
vin:SelaksSauvignonBlanc vin:hasFlavor vin:Moderate .
vin:SelaksSauvignonBlanc vin:hasBody vin:Medium .
vin:SemillonGrape rdf:type vin:WineGrape .
vin:SevreEtMaine rdf:type vin:Winery .
vin:SevreEtMaineMuscadet rdf:type vin:Muscadet .
vin:SevreEtMaineMuscadet vin:hasMaker vin:SevreEtMaine .
vin:SonomaRegion rdf:type vin:Region .
vin:SonomaRegion vin:locatedIn vin:CaliforniaRegion .
vin:SouthAustraliaRegion rdf:type vin:Region .
vin:SouthAustraliaRegion vin:locatedIn vin:AustralianRegion .
vin:StEmilionRegion rdf:type vin:Region .
vin:StEmilionRegion vin:locatedIn vin:BordeauxRegion .
vin:Stonleigh rdf:type vin:Winery .
vin:StonleighSauvignonBlanc rdf:type vin:SauvignonBlanc .
vin:StonleighSauvignonBlanc vin:locatedIn vin:NewZealandRegion .
vin:StonleighSauvignonBlanc vin:hasMaker vin:Stonleigh .
vin:StonleighSauvignonBlanc vin:hasSugar vin:Dry .
vin:StonleighSauvignonBlanc vin:hasFlavor vin:Delicate .
vin:StonleighSauvignonBlanc vin:hasBody vin:Medium .
vin:Taylor rdf:type vin:Winery .
vin:TaylorPort rdf:type vin:Port .
vin:TaylorPort vin:hasMaker vin:Taylor .
vin:ToursRegion rdf:type vin:Region .
vin:ToursRegion vin:locatedIn vin:LoireRegion .
vin:Ventana rdf:type vin:Winery .
vin:VentanaCheninBlanc rdf:type vin:CheninBlanc .
vin:VentanaCheninBlanc vin:locatedIn vin:CentralCoastRegion .
vin:VentanaCheninBlanc vin:hasMaker vin:Ventana .
vin:VentanaCheninBlanc vin:hasSugar vin:OffDry .
vin:VentanaCheninBlanc vin:hasFlavor vin:Moderate .
vin:VentanaCheninBlanc vin:hasBody vin:Medium .
vin:WhitehallLane rdf:type vin:Winery .
vin:WhitehallLaneCabernetFranc rdf:type vin:CabernetFranc .
vin:WhitehallLaneCabernetFranc vin:locatedIn vin:NapaRegion .
vin:WhitehallLaneCabernetFranc vin:hasMaker vin:WhitehallLane .
vin:WhitehallLaneCabernetFranc vin:hasSugar vin:Dry .
vin:WhitehallLaneCabernetFranc vin:hasFlavor vin:Moderate .
vin:WhitehallLaneCabernetFranc vin:hasBody vin:Medium .
vin:WhitehallLanePrimavera rdf:type vin:DessertWine .
vin:WhitehallLanePrimavera vin:locatedIn vin:NapaRegion .
vin:WhitehallLanePrimavera vin:hasSugar vin:Sweet .
vin:WhitehallLanePrimavera vin:hasFlavor vin:Delicate .
vin:WhitehallLanePrimavera vin:hasBody vin:Light .
_:a32 rdf:type owl:AllDifferent .
vin:Bancroft rdf:type vin:Winery .
vin:ChateauChevalBlanc rdf:type vin:Winery .
vin:ChateauDYchem rdf:type vin:Winery .
vin:ChateauDeMeursault rdf:type vin:Winery .
vin:ChateauLafiteRothschild rdf:type vin:Winery .
vin:ChateauMargauxWinery rdf:type vin:Winery .
vin:ChateauMorgon rdf:type vin:Winery .
vin:ClosDeLaPoussie rdf:type vin:Winery .
vin:ClosDeVougeot rdf:type vin:Winery .
vin:CongressSprings rdf:type vin:Winery .
vin:Corbans rdf:type vin:Winery .
vin:CortonMontrachet rdf:type vin:Winery .
vin:Cotturi rdf:type vin:Winery .
vin:DAnjou rdf:type vin:Winery .
vin:Elyse rdf:type vin:Winery .
vin:Forman rdf:type vin:Winery .
vin:Foxen rdf:type vin:Winery .
vin:GaryFarrell rdf:type vin:Winery .
vin:KalinCellars rdf:type vin:Winery .
vin:KathrynKennedy rdf:type vin:Winery .
vin:LaneTanner rdf:type vin:Winery .
vin:Longridge rdf:type vin:Winery .
vin:Marietta rdf:type vin:Winery .
vin:McGuinnesso rdf:type vin:Winery .
vin:MountEdenVineyard rdf:type vin:Winery .
vin:Mountadam rdf:type vin:Winery .
vin:PageMillWinery rdf:type vin:Winery .
vin:PeterMccoy rdf:type vin:Winery .
vin:PulignyMontrachet rdf:type vin:Winery .
vin:SantaCruzMountainVineyard rdf:type vin:Winery .
vin:SaucelitoCanyon rdf:type vin:Winery .
vin:SchlossRothermel rdf:type vin:Winery .
vin:SchlossVolrad rdf:type vin:Winery .
vin:SeanThackrey rdf:type vin:Winery .
vin:Selaks rdf:type vin:Winery .
vin:SevreEtMaine rdf:type vin:Winery .
vin:StGenevieve rdf:type vin:Winery .
vin:Stonleigh rdf:type vin:Winery .
vin:Taylor rdf:type vin:Winery .
vin:Ventana rdf:type vin:Winery .
vin:WhitehallLane rdf:type vin:Winery .
_:c32 rdf:first vin:WhitehallLane .
_:c32 rdf:rest rdf:nil .
_:e32 rdf:first vin:Ventana .
_:e32 rdf:rest _:c32 .
_:g32 rdf:first vin:Taylor .
_:g32 rdf:rest _:e32 .
_:i32 rdf:first vin:Stonleigh .
_:i32 rdf:rest _:g32 .
_:k32 rdf:first vin:StGenevieve .
_:k32 rdf:rest _:i32 .
_:m32 rdf:first vin:SevreEtMaine .
_:m32 rdf:rest _:k32 .
_:o32 rdf:first vin:Selaks .
_:o32 rdf:rest _:m32 .
_:q32 rdf:first vin:SeanThackrey .
_:q32 rdf:rest _:o32 .
_:s32 rdf:first vin:SchlossVolrad .
_:s32 rdf:rest _:q32 .
_:u32 rdf:first vin:SchlossRothermel .
_:u32 rdf:rest _:s32 .
_:w32 rdf:first vin:SaucelitoCanyon .
_:w32 rdf:rest _:u32 .
_:y32 rdf:first vin:SantaCruzMountainVineyard .
_:y32 rdf:rest _:w32 .
_:a33 rdf:first vin:PulignyMontrachet .
_:a33 rdf:rest _:y32 .
_:c33 rdf:first vin:PeterMccoy .
_:c33 rdf:rest _:a33 .
_:e33 rdf:first vin:PageMillWinery .
_:e33 rdf:rest _:c33 .
_:g33 rdf:first vin:Mountadam .
_:g33 rdf:rest _:e33 .
_:i33 rdf:first vin:MountEdenVineyard .
_:i33 rdf:rest _:g33 .
_:k33 rdf:first vin:McGuinnesso .
_:k33 rdf:rest _:i33 .
_:m33 rdf:first vin:Marietta .
_:m33 rdf:rest _:k33 .
_:o33 rdf:first vin:Longridge .
_:o33 rdf:rest _:m33 .
_:q33 rdf:first vin:LaneTanner .
_:q33 rdf:rest _:o33 .
_:s33 rdf:first vin:KathrynKennedy .
_:s33 rdf:rest _:q33 .
_:u33 rdf:first vin:KalinCellars .
_:u33 rdf:rest _:s33 .
_:w33 rdf:first vin:GaryFarrell .
_:w33 rdf:rest _:u33 .
_:y33 rdf:first vin:Foxen .
_:y33 rdf:rest _:w33 .
_:a34 rdf:first vin:Forman .
_:a34 rdf:rest _:y33 .
_:c34 rdf:first vin:Elyse .
_:c34 rdf:rest _:a34 .
_:e34 rdf:first vin:DAnjou .
_:e34 rdf:rest _:c34 .
_:g34 rdf:first vin:Cotturi .
_:g34 rdf:rest _:e34 .
_:i34 rdf:first vin:CortonMontrachet .
_:i34 rdf:rest _:g34 .
_:k34 rdf:first vin:Corbans .
_:k34 rdf:rest _:i34 .
_:m34 rdf:first vin:CongressSprings .
_:m34 rdf:rest _:k34 .
_:o34 rdf:first vin:ClosDeVougeot .
_:o34 rdf:rest _:m34 .
_:q34 rdf:first vin:ClosDeLaPoussie .
_:q34 rdf:rest _:o34 .
_:s34 rdf:first vin:ChateauMorgon .
_:s34 rdf:rest _:q34 .
_:u34 rdf:first vin:ChateauMargauxWinery .
_:u34 rdf:rest _:s34 .
_:w34 rdf:first vin:ChateauLafiteRothschild .
_:w34 rdf:rest _:u34 .
_:y34 rdf:first vin:ChateauDeMeursault .
_:y34 rdf:rest _:w34 .
_:a35 rdf:first vin:ChateauDYchem .
_:a35 rdf:rest _:y34 .
_:c35 rdf:first vin:ChateauChevalBlanc .
_:c35 rdf:rest _:a35 .
_:e35 rdf:first vin:Bancroft .
_:e35 rdf:rest _:c35 .
_:a32 owl:distinctMembers _:e35 .

DL Full Document cohérent. 002
Description : (informatif) <miscellaneous/Manifest002#test>
Exemple des aliments tiré du guide.
Le format N3 est informatif.
Espaces de nommage :
@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/consistent002#> .
DL Cohérent : <miscellaneous/consistent002>
<!DOCTYPE owl [
     <!ENTITY vin  "http://www.w3.org/2002/03owlt/miscellaneous/consistent001#" >
     <!ENTITY food "http://www.w3.org/2002/03owlt/miscellaneous/consistent002#" >
     <!ENTITY xsd  "http://www.w3.org/2001/XMLSchema#" >
   ]>

<rdf:RDF
  xmlns     = "&food;"
  xmlns:food= "&food;"
  xml:base  = "&food;"
  xmlns:vin = "&vin;"
  xmlns:owl = "http://www.w3.org/2002/07/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>
      Derived from the DAML Wine ontology at 
      http://ontolingua.stanford.edu/doc/chimaera/ontologies/wines.daml
      Substantially modified.
    </rdfs:comment> 
    <owl:imports rdf:resource="http://www.w3.org/2002/03owlt/miscellaneous/consistent001"/>
  </owl:Ontology>

  <owl:Class rdf:ID="ConsumableThing" />

  <owl:Class rdf:ID="NonConsumableThing">
    <owl:complementOf rdf:resource="#ConsumableThing" />
  </owl:Class>

  <owl:Class rdf:ID="EdibleThing">
    <rdfs:subClassOf rdf:resource="#ConsumableThing" />
  </owl:Class>
  
  <owl:Class rdf:ID="PotableLiquid">
    <rdfs:subClassOf rdf:resource="#ConsumableThing" />
    <owl:disjointWith rdf:resource="#EdibleThing" />
  </owl:Class>
  
  <owl:Class rdf:ID="Wine">
    <owl:equivalentClass rdf:resource="&vin;Wine"/>
  </owl:Class>

  <owl:ObjectProperty rdf:ID="madeFromFruit">
    <rdfs:domain rdf:resource="#ConsumableThing" />
    <rdfs:range rdf:resource="#Fruit" />
  </owl:ObjectProperty>

  <owl:Class rdf:ID="Juice">
    <rdfs:subClassOf rdf:resource="#PotableLiquid" />
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#madeFromFruit" />
  <owl:minCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:minCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>

  <owl:ObjectProperty rdf:ID="hasDrink">
    <rdfs:domain rdf:resource="#MealCourse" />
    <rdfs:range rdf:resource="#PotableLiquid" />
  </owl:ObjectProperty>
  
  <owl:Thing rdf:ID="White">
    <owl:sameAs rdf:resource="&vin;White"/>
  </owl:Thing>

  <owl:Thing rdf:ID="Rose">
    <owl:sameAs rdf:resource="&vin;Rose" />
  </owl:Thing>

  <owl:Thing rdf:ID="Red">
    <owl:sameAs rdf:resource="&vin;Red" />
  </owl:Thing>

  <owl:Thing rdf:ID="Sweet">
    <owl:sameAs rdf:resource="&vin;Sweet" />
  </owl:Thing>

  <owl:Thing rdf:ID="OffDry">
    <owl:sameAs rdf:resource="&vin;OffDry" />
  </owl:Thing>

  <owl:Thing rdf:ID="Dry">
    <owl:sameAs rdf:resource="&vin;Dry" />
  </owl:Thing>

  <owl:Thing rdf:ID="Delicate">
    <owl:sameAs rdf:resource="&vin;Delicate" />
  </owl:Thing>

  <owl:Thing rdf:ID="Moderate">
    <owl:sameAs rdf:resource="&vin;Moderate" />
  </owl:Thing>

  <owl:Thing rdf:ID="Strong">
    <owl:sameAs rdf:resource="&vin;Strong" />
  </owl:Thing>

  <owl:Thing rdf:ID="Light">
    <owl:sameAs rdf:resource="&vin;Light" />
  </owl:Thing>

  <owl:Thing rdf:ID="Medium">
    <owl:sameAs rdf:resource="&vin;Medium" />
  </owl:Thing>

  <owl:Thing rdf:ID="Full">
    <owl:sameAs rdf:resource="&vin;Full" />
  </owl:Thing>

  <owl:ObjectProperty rdf:ID="course">
    <rdfs:domain rdf:resource="#Meal" />
    <rdfs:range rdf:resource="#MealCourse" />
  </owl:ObjectProperty>
  
  <owl:Class rdf:ID="Grape">
    <rdfs:subClassOf rdf:resource="#SweetFruit" />
  </owl:Class>
  
  <owl:Class rdf:ID="Pasta">
    <rdfs:subClassOf rdf:resource="#EdibleThing" />
    <owl:disjointWith rdf:resource="#Meat" />
    <owl:disjointWith rdf:resource="#Fowl" />
    <owl:disjointWith rdf:resource="#Seafood" />
    <owl:disjointWith rdf:resource="#Dessert" />
    <owl:disjointWith rdf:resource="#Fruit" />
  </owl:Class>
  
  <owl:Class rdf:ID="PastaWithWhiteSauce">
    <rdfs:subClassOf rdf:resource="#Pasta" />
    <owl:disjointWith rdf:resource="#PastaWithRedSauce" />
  </owl:Class>
  
  <owl:Class rdf:ID="PastaWithSpicyRedSauceCourse">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#MealCourse" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasFood" />
        <owl:allValuesFrom rdf:resource="#PastaWithSpicyRedSauce" />
      </owl:Restriction>
    </owl:intersectionOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasColor" />
            <owl:hasValue rdf:resource="#Red" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasBody" />
            <owl:hasValue rdf:resource="#Full" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasFlavor" />
            <owl:hasValue rdf:resource="#Strong" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasSugar" />
            <owl:hasValue rdf:resource="#Dry" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  
  <owl:Class rdf:ID="PastaWithSpicyRedSauce">
    <rdfs:subClassOf rdf:resource="#PastaWithRedSauce" />
  </owl:Class>
  
  <owl:Class rdf:ID="PastaWithRedSauce">
    <rdfs:subClassOf rdf:resource="#Pasta" />
  </owl:Class>
  
  <owl:Class rdf:ID="PastaWithNonSpicyRedSauceCourse">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#MealCourse" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasFood" />
        <owl:allValuesFrom rdf:resource="#PastaWithNonSpicyRedSauce" />
      </owl:Restriction>
    </owl:intersectionOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasColor" />
            <owl:hasValue rdf:resource="#Red" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasBody" />
            <owl:hasValue rdf:resource="#Medium" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasFlavor" />
            <owl:hasValue rdf:resource="#Moderate" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasSugar" />
            <owl:hasValue rdf:resource="#Dry" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  
  <owl:Class rdf:ID="PastaWithNonSpicyRedSauce">
    <rdfs:subClassOf rdf:resource="#PastaWithRedSauce" />
    <owl:disjointWith rdf:resource="#PastaWithSpicyRedSauce" />
  </owl:Class>
  
  <owl:Class rdf:ID="PastaWithLightCreamSauce">
    <rdfs:subClassOf rdf:resource="#PastaWithWhiteSauce" />
    <owl:disjointWith rdf:resource="#PastaWithHeavyCreamSauce" />
  </owl:Class>
  
  <owl:Class rdf:ID="PastaWithLightCreamCourse">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#MealCourse" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasFood" />
        <owl:allValuesFrom rdf:resource="#PastaWithLightCreamSauce" />
      </owl:Restriction>
    </owl:intersectionOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasColor" />
            <owl:hasValue rdf:resource="#White" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasBody" />
            <owl:hasValue rdf:resource="#Light" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasFlavor" />
            <owl:hasValue rdf:resource="#Delicate" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasSugar" />
            <owl:hasValue rdf:resource="#Dry" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  
  <owl:Class rdf:ID="PastaWithHeavyCreamSauce">
    <rdfs:subClassOf rdf:resource="#PastaWithWhiteSauce" />
  </owl:Class>
  
  <owl:Class rdf:ID="PastaWithHeavyCreamCourse">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#MealCourse" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasFood" />
        <owl:allValuesFrom rdf:resource="#PastaWithHeavyCreamSauce" />
      </owl:Restriction>
    </owl:intersectionOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasColor" />
            <owl:hasValue rdf:resource="#White" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasBody" />
            <owl:hasValue rdf:resource="#Medium" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasFlavor" />
            <owl:hasValue rdf:resource="#Moderate" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasSugar" />
            <owl:hasValue rdf:resource="#Dry" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  
  <owl:Class rdf:ID="OysterShellfishCourse">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#MealCourse" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasFood" />
        <owl:allValuesFrom rdf:resource="#OysterShellfish" />
      </owl:Restriction>
    </owl:intersectionOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasSugar" />
            <owl:hasValue rdf:resource="#Sweet" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  
  <owl:Class rdf:ID="OysterShellfish">
    <rdfs:subClassOf rdf:resource="#Shellfish" />
  </owl:Class>
  
  <owl:Class rdf:ID="OtherTomatoBasedFoodCourse">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#MealCourse" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasFood" />
        <owl:allValuesFrom rdf:resource="#OtherTomatoBasedFood" />
      </owl:Restriction>
    </owl:intersectionOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasColor" />
            <owl:hasValue rdf:resource="#Red" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasBody" />
            <owl:hasValue rdf:resource="#Medium" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasFlavor" />
            <owl:hasValue rdf:resource="#Moderate" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasSugar" />
            <owl:hasValue rdf:resource="#Dry" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  
  <owl:Class rdf:ID="OtherTomatoBasedFood">
    <rdfs:subClassOf rdf:resource="#EdibleThing" />
    <owl:disjointWith rdf:resource="#Pasta" />
    <owl:disjointWith rdf:resource="#Meat" />
    <owl:disjointWith rdf:resource="#Fowl" />
    <owl:disjointWith rdf:resource="#Seafood" />
    <owl:disjointWith rdf:resource="#Dessert" />
    <owl:disjointWith rdf:resource="#Fruit" />
  </owl:Class>
  
  <owl:Class rdf:ID="NonSweetFruitCourse">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#MealCourse" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasFood" />
        <owl:allValuesFrom rdf:resource="#NonSweetFruit" />
      </owl:Restriction>
    </owl:intersectionOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasFlavor" />
            <owl:hasValue rdf:resource="#Delicate" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasSugar" />
            <owl:hasValue rdf:resource="#OffDry" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  
  <owl:Class rdf:ID="SweetFruitCourse">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#MealCourse" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasFood" />
        <owl:allValuesFrom rdf:resource="#SweetFruit" />
      </owl:Restriction>
    </owl:intersectionOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasFlavor" />
            <owl:hasValue rdf:resource="#Moderate" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasSugar" />
            <owl:hasValue rdf:resource="#Sweet" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  
  <!-- changed so that Fruit can be unionOf 
  <owl:Class rdf:ID="NonSweetFruit">
    <rdfs:subClassOf rdf:resource="#Fruit" />
    <owl:disjointWith rdf:resource="#SweetFruit" />
  </owl:Class>
  -->
  
  <owl:Class rdf:ID="NonSweetFruit">
    <rdfs:subClassOf rdf:resource="#EdibleThing" />
    <owl:disjointWith rdf:resource="#SweetFruit" />
  </owl:Class>
  
  <owl:Class rdf:ID="NonSpicyRedMeatCourse">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#MealCourse" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasFood" />
        <owl:allValuesFrom rdf:resource="#NonSpicyRedMeat" />
      </owl:Restriction>
    </owl:intersectionOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasColor" />
            <owl:hasValue rdf:resource="#Red" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasBody" />
            <owl:hasValue rdf:resource="#Medium" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasSugar" />
            <owl:hasValue rdf:resource="#Dry" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;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>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  
  <owl:Class rdf:ID="NonSpicyRedMeat">
    <rdfs:subClassOf rdf:resource="#RedMeat" />
    <owl:disjointWith rdf:resource="#SpicyRedMeat" />
  </owl:Class>
  
  <owl:Class rdf:ID="NonRedMeatCourse">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#MealCourse" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasFood" />
        <owl:allValuesFrom rdf:resource="#NonRedMeat" />
      </owl:Restriction>
    </owl:intersectionOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasColor" />
            <owl:hasValue rdf:resource="#White" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasBody" />
            <owl:hasValue rdf:resource="#Medium" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasFlavor" />
            <owl:hasValue rdf:resource="#Strong" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasSugar" />
            <owl:hasValue rdf:resource="#Dry" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  
  <owl:Class rdf:ID="NonRedMeat">
    <rdfs:subClassOf rdf:resource="#Meat" />
    <owl:disjointWith rdf:resource="#RedMeat" />
  </owl:Class>
  
  <owl:Class rdf:ID="NonOysterShellfishCourse">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#MealCourse" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasFood" />
        <owl:allValuesFrom rdf:resource="#NonOysterShellfish" />
      </owl:Restriction>
    </owl:intersectionOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasSugar" />
            <owl:hasValue rdf:resource="#Dry" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  
  <owl:Class rdf:ID="NonOysterShellfish">
    <rdfs:subClassOf rdf:resource="#Shellfish" />
    <owl:disjointWith rdf:resource="#OysterShellfish" />
  </owl:Class>
  
  <owl:Class rdf:ID="NonBlandFishCourse">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#MealCourse" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasFood" />
        <owl:allValuesFrom rdf:resource="#NonBlandFish" />
      </owl:Restriction>
    </owl:intersectionOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasFlavor" />
            <owl:hasValue rdf:resource="#Moderate" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  
  <owl:Class rdf:ID="NonBlandFish">
    <rdfs:subClassOf rdf:resource="#Fish" />
  </owl:Class>
  
  <owl:Class rdf:ID="Meat">
    <rdfs:subClassOf rdf:resource="#EdibleThing" />
    <owl:disjointWith rdf:resource="#Fowl" />
    <owl:disjointWith rdf:resource="#Seafood" />
    <owl:disjointWith rdf:resource="#Dessert" />
    <owl:disjointWith rdf:resource="#Fruit" />
  </owl:Class>
  
  <owl:Class rdf:ID="MealCourse">
    <rdfs:subClassOf rdf:resource="#ConsumableThing" />
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasFood" />
        <owl:minCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:minCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:minCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:minCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom rdf:resource="#Wine" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <owl:disjointWith rdf:resource="#PotableLiquid" />
    <owl:disjointWith rdf:resource="#EdibleThing" />
  </owl:Class>
  
  <owl:Class rdf:ID="Meal">
    <rdfs:subClassOf rdf:resource="#ConsumableThing" />
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#course" />
        <owl:minCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:minCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#course" />
        <owl:allValuesFrom rdf:resource="#MealCourse" />
      </owl:Restriction>
    </rdfs:subClassOf>
    <owl:disjointWith rdf:resource="#MealCourse" />
    <owl:disjointWith rdf:resource="#PotableLiquid" />
    <owl:disjointWith rdf:resource="#EdibleThing" />
  </owl:Class>
  
  <owl:Class rdf:ID="LightMeatFowlCourse">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#MealCourse" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasFood" />
        <owl:allValuesFrom rdf:resource="#LightMeatFowl" />
      </owl:Restriction>
    </owl:intersectionOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasColor" />
            <owl:hasValue rdf:resource="#White" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasBody" />
            <owl:hasValue rdf:resource="#Medium" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasFlavor" />
            <owl:hasValue rdf:resource="#Moderate" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasSugar" />
            <owl:hasValue rdf:resource="#Dry" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  
  <owl:Class rdf:ID="LightMeatFowl">
    <rdfs:subClassOf rdf:resource="#Fowl" />
  </owl:Class>
  
  <owl:Class rdf:ID="FruitCourse">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#MealCourse" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasFood" />
        <owl:allValuesFrom rdf:resource="#Fruit" />
      </owl:Restriction>
    </owl:intersectionOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasColor" />
            <owl:hasValue rdf:resource="#White" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasBody" />
            <owl:hasValue rdf:resource="#Medium" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  
  <!--- Replaced so that we have a unionOf construct
        Aug 20 02 MKS, suggestion by R. Volz.  

  <owl:Class rdf:ID="Fruit">
    <rdfs:subClassOf rdf:resource="#EdibleThing" />
  </owl:Class>

  --> 
  
  <owl:Class rdf:ID="Fruit">
    <owl:unionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#SweetFruit" />
      <owl:Class rdf:about="#NonSweetFruit" />
    </owl:unionOf>
  </owl:Class>
  
  <owl:Class rdf:ID="Fowl">
    <rdfs:subClassOf rdf:resource="#EdibleThing" />
    <owl:disjointWith rdf:resource="#Seafood" />
    <owl:disjointWith rdf:resource="#Dessert" />
    <owl:disjointWith rdf:resource="#Fruit" />
  </owl:Class>
  
  <owl:Class rdf:ID="FishCourse">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#MealCourse" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasFood" />
        <owl:allValuesFrom rdf:resource="#Fish" />
      </owl:Restriction>
    </owl:intersectionOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasBody" />
            <owl:hasValue rdf:resource="#Medium" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasSugar" />
            <owl:hasValue rdf:resource="#Dry" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  
  <owl:Class rdf:ID="DessertCourse">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#MealCourse" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasFood" />
        <owl:allValuesFrom rdf:resource="#Dessert" />
      </owl:Restriction>
    </owl:intersectionOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasBody" />
            <owl:hasValue rdf:resource="#Full" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasFlavor" />
            <owl:hasValue rdf:resource="#Strong" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasSugar" />
            <owl:hasValue rdf:resource="#Sweet" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  
  <owl:Class rdf:ID="Dessert">
    <rdfs:subClassOf rdf:resource="#EdibleThing" />
    <owl:disjointWith rdf:resource="#Fruit" />
  </owl:Class>
  
  <!-- changed so that Fruit can be unionOf 
  <owl:Class rdf:ID="SweetFruit">
    <rdfs:subClassOf rdf:resource="#Fruit" />
  </owl:Class>
  -->
  <owl:Class rdf:ID="SweetFruit">
    <rdfs:subClassOf rdf:resource="#EdibleThing" />
  </owl:Class>
  
  <owl:Class rdf:ID="SweetDessertCourse">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#MealCourse" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasFood" />
        <owl:allValuesFrom rdf:resource="#SweetDessert" />
      </owl:Restriction>
    </owl:intersectionOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasColor" />
            <owl:hasValue rdf:resource="#White" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  
  <owl:Class rdf:ID="SweetDessert">
    <rdfs:subClassOf rdf:resource="#Dessert" />
  </owl:Class>
  
  <owl:Class rdf:ID="DarkMeatFowlCourse">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#MealCourse" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasFood" />
        <owl:allValuesFrom rdf:resource="#DarkMeatFowl" />
      </owl:Restriction>
    </owl:intersectionOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasColor" />
            <owl:hasValue rdf:resource="#Red" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasBody" />
            <owl:hasValue rdf:resource="#Light" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasFlavor" />
            <owl:hasValue rdf:resource="#Delicate" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasSugar" />
            <owl:hasValue rdf:resource="#Dry" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  
  <owl:Class rdf:ID="DarkMeatFowl">
    <rdfs:subClassOf rdf:resource="#Fowl" />
    <owl:disjointWith rdf:resource="#LightMeatFowl" />
  </owl:Class>
  
  <owl:Class rdf:ID="CheeseNutsDessertCourse">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#MealCourse" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasFood" />
        <owl:allValuesFrom rdf:resource="#CheeseNutsDessert" />
      </owl:Restriction>
    </owl:intersectionOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasColor" />
            <owl:hasValue rdf:resource="#Red" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  
  <owl:Class rdf:ID="CheeseNutsDessert">
    <rdfs:subClassOf rdf:resource="#Dessert" />
    <owl:disjointWith rdf:resource="#SweetDessert" />
  </owl:Class>
  
  <owl:Class rdf:ID="BlandFishCourse">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#MealCourse" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasFood" />
        <owl:allValuesFrom rdf:resource="#BlandFish" />
      </owl:Restriction>
    </owl:intersectionOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasFlavor" />
            <owl:hasValue rdf:resource="#Delicate" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  
  <owl:Class rdf:ID="BlandFish">
    <rdfs:subClassOf rdf:resource="#Fish" />
    <owl:disjointWith rdf:resource="#NonBlandFish" />
  </owl:Class>
  
  <owl:ObjectProperty rdf:ID="hasFood">
    <rdfs:domain rdf:resource="#MealCourse" />
    <rdfs:range rdf:resource="#EdibleThing" />
  </owl:ObjectProperty>
  
  <owl:Class rdf:ID="Fish">
    <rdfs:subClassOf rdf:resource="#Seafood" />
    <owl:disjointWith rdf:resource="#Shellfish" />
  </owl:Class>
  
  <owl:Class rdf:ID="SpicyRedMeat">
    <rdfs:subClassOf rdf:resource="#RedMeat" />
  </owl:Class>
  
  <owl:Class rdf:ID="ShellfishCourse">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#MealCourse" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasFood" />
        <owl:allValuesFrom rdf:resource="#Shellfish" />
      </owl:Restriction>
    </owl:intersectionOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;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>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasBody" />
            <owl:hasValue rdf:resource="#Full" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  
  <owl:Class rdf:ID="Shellfish">
    <rdfs:subClassOf rdf:resource="#Seafood" />
  </owl:Class>
  
  <owl:Class rdf:ID="SeafoodCourse">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#MealCourse" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasFood" />
        <owl:allValuesFrom rdf:resource="#Seafood" />
      </owl:Restriction>
    </owl:intersectionOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasColor" />
            <owl:hasValue rdf:resource="#White" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  
  <owl:Class rdf:ID="Seafood">
    <rdfs:subClassOf rdf:resource="#EdibleThing" />
    <owl:disjointWith rdf:resource="#Dessert" />
    <owl:disjointWith rdf:resource="#Fruit" />
  </owl:Class>
  
  <owl:Class rdf:ID="RedMeatCourse">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#MealCourse" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasFood" />
        <owl:allValuesFrom rdf:resource="#RedMeat" />
      </owl:Restriction>
    </owl:intersectionOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasColor" />
            <owl:hasValue rdf:resource="#Red" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  
  <owl:Class rdf:ID="RedMeat">
    <rdfs:subClassOf rdf:resource="#Meat" />
  </owl:Class>
  
  <SweetDessert rdf:ID="Cake" />
  
  <SweetFruit rdf:ID="Bananas" />
  
  <SweetFruit rdf:ID="MixedFruit" />
  
  <NonOysterShellfish rdf:ID="Mussels" />
  
  <CheeseNutsDessert rdf:ID="Nuts" />
  
  <OysterShellfish rdf:ID="Oysters" />
  
  <PastaWithLightCreamSauce rdf:ID="PastaWithWhiteClamSauce" />
  
  <SweetFruit rdf:ID="Peaches" />
  
  <SweetDessert rdf:ID="Pie" />
  
  <OtherTomatoBasedFood rdf:ID="Pizza" />
  
  <NonRedMeat rdf:ID="Pork" />
  
  <NonSpicyRedMeat rdf:ID="RoastBeef" />
  
  <BlandFish rdf:ID="Scrod" />
  
  <PastaWithNonSpicyRedSauce rdf:ID="SpaghettiWithTomatoSauce" />
  
  <NonSpicyRedMeat rdf:ID="Steak" />
  
  <NonBlandFish rdf:ID="Swordfish" />
  
  <EatingGrape rdf:ID="ThompsonSeedless" />
  
  <owl:Class rdf:ID="EatingGrape">
    <rdfs:subClassOf rdf:resource="#Grape" />
  </owl:Class>

  <NonBlandFish rdf:ID="Tuna" />
  
  <LightMeatFowl rdf:ID="Turkey" />
  
  <NonSpicyRedMeat rdf:ID="Veal" />
  
  <owl:Class rdf:ID="SpicyRedMeatCourse">
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#MealCourse" />
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasFood" />
        <owl:allValuesFrom rdf:resource="#SpicyRedMeat" />
      </owl:Restriction>
    </owl:intersectionOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasColor" />
            <owl:hasValue rdf:resource="#Red" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasBody" />
            <owl:hasValue rdf:resource="#Full" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasFlavor" />
            <owl:hasValue rdf:resource="#Moderate" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hasDrink" />
        <owl:allValuesFrom>
          <owl:Restriction>
            <owl:onProperty rdf:resource="&vin;hasSugar" />
            <owl:hasValue rdf:resource="#Dry" />
          </owl:Restriction>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  
  <SpicyRedMeat rdf:ID="BeefCurry" />
  
  <LightMeatFowl rdf:ID="Chicken" />
  
  <NonOysterShellfish rdf:ID="Clams" />
  
  <DarkMeatFowl rdf:ID="Duck" />
  
  <SpicyRedMeat rdf:ID="GarlickyRoast" />
  
  <DarkMeatFowl rdf:ID="Goose" />
  
  <BlandFish rdf:ID="Halibut" />
  
  <NonOysterShellfish rdf:ID="Crab" />
  
  <BlandFish rdf:ID="Flounder" />
  
  <NonOysterShellfish rdf:ID="Lobster" />
  
  <PastaWithHeavyCreamSauce rdf:ID="FettucineAlfRedo" />
  
  <PastaWithSpicyRedSauce rdf:ID="FraDiavolo" />
  
  <CheeseNutsDessert rdf:ID="Cheese" />
  
</rdf:RDF>
<miscellaneous/consistent002> rdf:type owl:Ontology .
<miscellaneous/consistent002> rdfs:comment """
      Derived from the DAML Wine ontology at 
      http://ontolingua.stanford.edu/doc/chimaera/ontologies/wines.daml
      Substantially modified.
    """ .
<miscellaneous/consistent002> owl:imports <miscellaneous/consistent001> .
food:ConsumableThing rdf:type owl:Class .
food:NonConsumableThing rdf:type owl:Class .
food:NonConsumableThing owl:complementOf food:ConsumableThing .
food:EdibleThing rdf:type owl:Class .
food:EdibleThing rdfs:subClassOf food:ConsumableThing .
food:PotableLiquid rdf:type owl:Class .
food:PotableLiquid rdfs:subClassOf food:ConsumableThing .
food:PotableLiquid owl:disjointWith food:EdibleThing .
food:Wine rdf:type owl:Class .
food:Wine owl:equivalentClass vin:Wine .
food:madeFromFruit rdf:type owl:ObjectProperty .
food:madeFromFruit rdfs:domain food:ConsumableThing .
food:madeFromFruit rdfs:range food:Fruit .
food:Juice rdf:type owl:Class .
food:Juice rdfs:subClassOf food:PotableLiquid .
_:a rdf:type owl:Restriction .
_:a owl:onProperty food:madeFromFruit .
_:a owl:minCardinality "1"^^xsd:nonNegativeInteger  .
food:Juice rdfs:subClassOf _:a .
food:hasDrink rdf:type owl:ObjectProperty .
food:hasDrink rdfs:domain food:MealCourse .
food:hasDrink rdfs:range food:PotableLiquid .
food:White rdf:type owl:Thing .
food:White owl:sameAs vin:White .
food:Rose rdf:type owl:Thing .
food:Rose owl:sameAs vin:Rose .
food:Red rdf:type owl:Thing .
food:Red owl:sameAs vin:Red .
food:Sweet rdf:type owl:Thing .
food:Sweet owl:sameAs vin:Sweet .
food:OffDry rdf:type owl:Thing .
food:OffDry owl:sameAs vin:OffDry .
food:Dry rdf:type owl:Thing .
food:Dry owl:sameAs vin:Dry .
food:Delicate rdf:type owl:Thing .
food:Delicate owl:sameAs vin:Delicate .
food:Moderate rdf:type owl:Thing .
food:Moderate owl:sameAs vin:Moderate .
food:Strong rdf:type owl:Thing .
food:Strong owl:sameAs vin:Strong .
food:Light rdf:type owl:Thing .
food:Light owl:sameAs vin:Light .
food:Medium rdf:type owl:Thing .
food:Medium owl:sameAs vin:Medium .
food:Full rdf:type owl:Thing .
food:Full owl:sameAs vin:Full .
food:course rdf:type owl:ObjectProperty .
food:course rdfs:domain food:Meal .
food:course rdfs:range food:MealCourse .
food:Grape rdf:type owl:Class .
food:Grape rdfs:subClassOf food:SweetFruit .
food:Pasta rdf:type owl:Class .
food:Pasta rdfs:subClassOf food:EdibleThing .
food:Pasta owl:disjointWith food:Meat .
food:Pasta owl:disjointWith food:Fowl .
food:Pasta owl:disjointWith food:Seafood .
food:Pasta owl:disjointWith food:Dessert .
food:Pasta owl:disjointWith food:Fruit .
food:PastaWithWhiteSauce rdf:type owl:Class .
food:PastaWithWhiteSauce rdfs:subClassOf food:Pasta .
food:PastaWithWhiteSauce owl:disjointWith food:PastaWithRedSauce .
food:PastaWithSpicyRedSauceCourse rdf:type owl:Class .
food:MealCourse rdf:type owl:Class .
_:c rdf:type owl:Restriction .
_:c owl:onProperty food:hasFood .
_:c owl:allValuesFrom food:PastaWithSpicyRedSauce .
_:e rdf:first _:c .
_:e rdf:rest rdf:nil .
_:g rdf:first food:MealCourse .
_:g rdf:rest _:e .
food:PastaWithSpicyRedSauceCourse owl:intersectionOf _:g .
_:i rdf:type owl:Restriction .
_:i owl:onProperty food:hasDrink .
_:k rdf:type owl:Restriction .
_:k owl:onProperty vin:hasColor .
_:k owl:hasValue food:Red .
_:i owl:allValuesFrom _:k .
food:PastaWithSpicyRedSauceCourse rdfs:subClassOf _:i .
_:m rdf:type owl:Restriction .
_:m owl:onProperty food:hasDrink .
_:o rdf:type owl:Restriction .
_:o owl:onProperty vin:hasBody .
_:o owl:hasValue food:Full .
_:m owl:allValuesFrom _:o .
food:PastaWithSpicyRedSauceCourse rdfs:subClassOf _:m .
_:q rdf:type owl:Restriction .
_:q owl:onProperty food:hasDrink .
_:s rdf:type owl:Restriction .
_:s owl:onProperty vin:hasFlavor .
_:s owl:hasValue food:Strong .
_:q owl:allValuesFrom _:s .
food:PastaWithSpicyRedSauceCourse rdfs:subClassOf _:q .
_:u rdf:type owl:Restriction .
_:u owl:onProperty food:hasDrink .
_:w rdf:type owl:Restriction .
_:w owl:onProperty vin:hasSugar .
_:w owl:hasValue food:Dry .
_:u owl:allValuesFrom _:w .
food:PastaWithSpicyRedSauceCourse rdfs:subClassOf _:u .
food:PastaWithSpicyRedSauce rdf:type owl:Class .
food:PastaWithSpicyRedSauce rdfs:subClassOf food:PastaWithRedSauce .
food:PastaWithRedSauce rdf:type owl:Class .
food:PastaWithRedSauce rdfs:subClassOf food:Pasta .
food:PastaWithNonSpicyRedSauceCourse rdf:type owl:Class .
food:MealCourse rdf:type owl:Class .
_:y rdf:type owl:Restriction .
_:y owl:onProperty food:hasFood .
_:y owl:allValuesFrom food:PastaWithNonSpicyRedSauce .
_:a1 rdf:first _:y .
_:a1 rdf:rest rdf:nil .
_:c1 rdf:first food:MealCourse .
_:c1 rdf:rest _:a1 .
food:PastaWithNonSpicyRedSauceCourse owl:intersectionOf _:c1 .
_:e1 rdf:type owl:Restriction .
_:e1 owl:onProperty food:hasDrink .
_:g1 rdf:type owl:Restriction .
_:g1 owl:onProperty vin:hasColor .
_:g1 owl:hasValue food:Red .
_:e1 owl:allValuesFrom _:g1 .
food:PastaWithNonSpicyRedSauceCourse rdfs:subClassOf _:e1 .
_:i1 rdf:type owl:Restriction .
_:i1 owl:onProperty food:hasDrink .
_:k1 rdf:type owl:Restriction .
_:k1 owl:onProperty vin:hasBody .
_:k1 owl:hasValue food:Medium .
_:i1 owl:allValuesFrom _:k1 .
food:PastaWithNonSpicyRedSauceCourse rdfs:subClassOf _:i1 .
_:m1 rdf:type owl:Restriction .
_:m1 owl:onProperty food:hasDrink .
_:o1 rdf:type owl:Restriction .
_:o1 owl:onProperty vin:hasFlavor .
_:o1 owl:hasValue food:Moderate .
_:m1 owl:allValuesFrom _:o1 .
food:PastaWithNonSpicyRedSauceCourse rdfs:subClassOf _:m1 .
_:q1 rdf:type owl:Restriction .
_:q1 owl:onProperty food:hasDrink .
_:s1 rdf:type owl:Restriction .
_:s1 owl:onProperty vin:hasSugar .
_:s1 owl:hasValue food:Dry .
_:q1 owl:allValuesFrom _:s1 .
food:PastaWithNonSpicyRedSauceCourse rdfs:subClassOf _:q1 .
food:PastaWithNonSpicyRedSauce rdf:type owl:Class .
food:PastaWithNonSpicyRedSauce rdfs:subClassOf food:PastaWithRedSauce .
food:PastaWithNonSpicyRedSauce owl:disjointWith food:PastaWithSpicyRedSauce .
food:PastaWithLightCreamSauce rdf:type owl:Class .
food:PastaWithLightCreamSauce rdfs:subClassOf food:PastaWithWhiteSauce .
food:PastaWithLightCreamSauce owl:disjointWith food:PastaWithHeavyCreamSauce .
food:PastaWithLightCreamCourse rdf:type owl:Class .
food:MealCourse rdf:type owl:Class .
_:u1 rdf:type owl:Restriction .
_:u1 owl:onProperty food:hasFood .
_:u1 owl:allValuesFrom food:PastaWithLightCreamSauce .
_:w1 rdf:first _:u1 .
_:w1 rdf:rest rdf:nil .
_:y1 rdf:first food:MealCourse .
_:y1 rdf:rest _:w1 .
food:PastaWithLightCreamCourse owl:intersectionOf _:y1 .
_:a2 rdf:type owl:Restriction .
_:a2 owl:onProperty food:hasDrink .
_:c2 rdf:type owl:Restriction .
_:c2 owl:onProperty vin:hasColor .
_:c2 owl:hasValue food:White .
_:a2 owl:allValuesFrom _:c2 .
food:PastaWithLightCreamCourse rdfs:subClassOf _:a2 .
_:e2 rdf:type owl:Restriction .
_:e2 owl:onProperty food:hasDrink .
_:g2 rdf:type owl:Restriction .
_:g2 owl:onProperty vin:hasBody .
_:g2 owl:hasValue food:Light .
_:e2 owl:allValuesFrom _:g2 .
food:PastaWithLightCreamCourse rdfs:subClassOf _:e2 .
_:i2 rdf:type owl:Restriction .
_:i2 owl:onProperty food:hasDrink .
_:k2 rdf:type owl:Restriction .
_:k2 owl:onProperty vin:hasFlavor .
_:k2 owl:hasValue food:Delicate .
_:i2 owl:allValuesFrom _:k2 .
food:PastaWithLightCreamCourse rdfs:subClassOf _:i2 .
_:m2 rdf:type owl:Restriction .
_:m2 owl:onProperty food:hasDrink .
_:o2 rdf:type owl:Restriction .
_:o2 owl:onProperty vin:hasSugar .
_:o2 owl:hasValue food:Dry .
_:m2 owl:allValuesFrom _:o2 .
food:PastaWithLightCreamCourse rdfs:subClassOf _:m2 .
food:PastaWithHeavyCreamSauce rdf:type owl:Class .
food:PastaWithHeavyCreamSauce rdfs:subClassOf food:PastaWithWhiteSauce .
food:PastaWithHeavyCreamCourse rdf:type owl:Class .
food:MealCourse rdf:type owl:Class .
_:q2 rdf:type owl:Restriction .
_:q2 owl:onProperty food:hasFood .
_:q2 owl:allValuesFrom food:PastaWithHeavyCreamSauce .
_:s2 rdf:first _:q2 .
_:s2 rdf:rest rdf:nil .
_:u2 rdf:first food:MealCourse .
_:u2 rdf:rest _:s2 .
food:PastaWithHeavyCreamCourse owl:intersectionOf _:u2 .
_:w2 rdf:type owl:Restriction .
_:w2 owl:onProperty food:hasDrink .
_:y2 rdf:type owl:Restriction .
_:y2 owl:onProperty vin:hasColor .
_:y2 owl:hasValue food:White .
_:w2 owl:allValuesFrom _:y2 .
food:PastaWithHeavyCreamCourse rdfs:subClassOf _:w2 .
_:a3 rdf:type owl:Restriction .
_:a3 owl:onProperty food:hasDrink .
_:c3 rdf:type owl:Restriction .
_:c3 owl:onProperty vin:hasBody .
_:c3 owl:hasValue food:Medium .
_:a3 owl:allValuesFrom _:c3 .
food:PastaWithHeavyCreamCourse rdfs:subClassOf _:a3 .
_:e3 rdf:type owl:Restriction .
_:e3 owl:onProperty food:hasDrink .
_:g3 rdf:type owl:Restriction .
_:g3 owl:onProperty vin:hasFlavor .
_:g3 owl:hasValue food:Moderate .
_:e3 owl:allValuesFrom _:g3 .
food:PastaWithHeavyCreamCourse rdfs:subClassOf _:e3 .
_:i3 rdf:type owl:Restriction .
_:i3 owl:onProperty food:hasDrink .
_:k3 rdf:type owl:Restriction .
_:k3 owl:onProperty vin:hasSugar .
_:k3 owl:hasValue food:Dry .
_:i3 owl:allValuesFrom _:k3 .
food:PastaWithHeavyCreamCourse rdfs:subClassOf _:i3 .
food:OysterShellfishCourse rdf:type owl:Class .
food:MealCourse rdf:type owl:Class .
_:m3 rdf:type owl:Restriction .
_:m3 owl:onProperty food:hasFood .
_:m3 owl:allValuesFrom food:OysterShellfish .
_:o3 rdf:first _:m3 .
_:o3 rdf:rest rdf:nil .
_:q3 rdf:first food:MealCourse .
_:q3 rdf:rest _:o3 .
food:OysterShellfishCourse owl:intersectionOf _:q3 .
_:s3 rdf:type owl:Restriction .
_:s3 owl:onProperty food:hasDrink .
_:u3 rdf:type owl:Restriction .
_:u3 owl:onProperty vin:hasSugar .
_:u3 owl:hasValue food:Sweet .
_:s3 owl:allValuesFrom _:u3 .
food:OysterShellfishCourse rdfs:subClassOf _:s3 .
food:OysterShellfish rdf:type owl:Class .
food:OysterShellfish rdfs:subClassOf food:Shellfish .
food:OtherTomatoBasedFoodCourse rdf:type owl:Class .
food:MealCourse rdf:type owl:Class .
_:w3 rdf:type owl:Restriction .
_:w3 owl:onProperty food:hasFood .
_:w3 owl:allValuesFrom food:OtherTomatoBasedFood .
_:y3 rdf:first _:w3 .
_:y3 rdf:rest rdf:nil .
_:a4 rdf:first food:MealCourse .
_:a4 rdf:rest _:y3 .
food:OtherTomatoBasedFoodCourse owl:intersectionOf _:a4 .
_:c4 rdf:type owl:Restriction .
_:c4 owl:onProperty food:hasDrink .
_:e4 rdf:type owl:Restriction .
_:e4 owl:onProperty vin:hasColor .
_:e4 owl:hasValue food:Red .
_:c4 owl:allValuesFrom _:e4 .
food:OtherTomatoBasedFoodCourse rdfs:subClassOf _:c4 .
_:g4 rdf:type owl:Restriction .
_:g4 owl:onProperty food:hasDrink .
_:i4 rdf:type owl:Restriction .
_:i4 owl:onProperty vin:hasBody .
_:i4 owl:hasValue food:Medium .
_:g4 owl:allValuesFrom _:i4 .
food:OtherTomatoBasedFoodCourse rdfs:subClassOf _:g4 .
_:k4 rdf:type owl:Restriction .
_:k4 owl:onProperty food:hasDrink .
_:m4 rdf:type owl:Restriction .
_:m4 owl:onProperty vin:hasFlavor .
_:m4 owl:hasValue food:Moderate .
_:k4 owl:allValuesFrom _:m4 .
food:OtherTomatoBasedFoodCourse rdfs:subClassOf _:k4 .
_:o4 rdf:type owl:Restriction .
_:o4 owl:onProperty food:hasDrink .
_:q4 rdf:type owl:Restriction .
_:q4 owl:onProperty vin:hasSugar .
_:q4 owl:hasValue food:Dry .
_:o4 owl:allValuesFrom _:q4 .
food:OtherTomatoBasedFoodCourse rdfs:subClassOf _:o4 .
food:OtherTomatoBasedFood rdf:type owl:Class .
food:OtherTomatoBasedFood rdfs:subClassOf food:EdibleThing .
food:OtherTomatoBasedFood owl:disjointWith food:Pasta .
food:OtherTomatoBasedFood owl:disjointWith food:Meat .
food:OtherTomatoBasedFood owl:disjointWith food:Fowl .
food:OtherTomatoBasedFood owl:disjointWith food:Seafood .
food:OtherTomatoBasedFood owl:disjointWith food:Dessert .
food:OtherTomatoBasedFood owl:disjointWith food:Fruit .
food:NonSweetFruitCourse rdf:type owl:Class .
food:MealCourse rdf:type owl:Class .
_:s4 rdf:type owl:Restriction .
_:s4 owl:onProperty food:hasFood .
_:s4 owl:allValuesFrom food:NonSweetFruit .
_:u4 rdf:first _:s4 .
_:u4 rdf:rest rdf:nil .
_:w4 rdf:first food:MealCourse .
_:w4 rdf:rest _:u4 .
food:NonSweetFruitCourse owl:intersectionOf _:w4 .
_:y4 rdf:type owl:Restriction .
_:y4 owl:onProperty food:hasDrink .
_:a5 rdf:type owl:Restriction .
_:a5 owl:onProperty vin:hasFlavor .
_:a5 owl:hasValue food:Delicate .
_:y4 owl:allValuesFrom _:a5 .
food:NonSweetFruitCourse rdfs:subClassOf _:y4 .
_:c5 rdf:type owl:Restriction .
_:c5 owl:onProperty food:hasDrink .
_:e5 rdf:type owl:Restriction .
_:e5 owl:onProperty vin:hasSugar .
_:e5 owl:hasValue food:OffDry .
_:c5 owl:allValuesFrom _:e5 .
food:NonSweetFruitCourse rdfs:subClassOf _:c5 .
food:SweetFruitCourse rdf:type owl:Class .
food:MealCourse rdf:type owl:Class .
_:g5 rdf:type owl:Restriction .
_:g5 owl:onProperty food:hasFood .
_:g5 owl:allValuesFrom food:SweetFruit .
_:i5 rdf:first _:g5 .
_:i5 rdf:rest rdf:nil .
_:k5 rdf:first food:MealCourse .
_:k5 rdf:rest _:i5 .
food:SweetFruitCourse owl:intersectionOf _:k5 .
_:m5 rdf:type owl:Restriction .
_:m5 owl:onProperty food:hasDrink .
_:o5 rdf:type owl:Restriction .
_:o5 owl:onProperty vin:hasFlavor .
_:o5 owl:hasValue food:Moderate .
_:m5 owl:allValuesFrom _:o5 .
food:SweetFruitCourse rdfs:subClassOf _:m5 .
_:q5 rdf:type owl:Restriction .
_:q5 owl:onProperty food:hasDrink .
_:s5 rdf:type owl:Restriction .
_:s5 owl:onProperty vin:hasSugar .
_:s5 owl:hasValue food:Sweet .
_:q5 owl:allValuesFrom _:s5 .
food:SweetFruitCourse rdfs:subClassOf _:q5 .
food:NonSweetFruit rdf:type owl:Class .
food:NonSweetFruit rdfs:subClassOf food:EdibleThing .
food:NonSweetFruit owl:disjointWith food:SweetFruit .
food:NonSpicyRedMeatCourse rdf:type owl:Class .
food:MealCourse rdf:type owl:Class .
_:u5 rdf:type owl:Restriction .
_:u5 owl:onProperty food:hasFood .
_:u5 owl:allValuesFrom food:NonSpicyRedMeat .
_:w5 rdf:first _:u5 .
_:w5 rdf:rest rdf:nil .
_:y5 rdf:first food:MealCourse .
_:y5 rdf:rest _:w5 .
food:NonSpicyRedMeatCourse owl:intersectionOf _:y5 .
_:a6 rdf:type owl:Restriction .
_:a6 owl:onProperty food:hasDrink .
_:c6 rdf:type owl:Restriction .
_:c6 owl:onProperty vin:hasColor .
_:c6 owl:hasValue food:Red .
_:a6 owl:allValuesFrom _:c6 .
food:NonSpicyRedMeatCourse rdfs:subClassOf _:a6 .
_:e6 rdf:type owl:Restriction .
_:e6 owl:onProperty food:hasDrink .
_:g6 rdf:type owl:Restriction .
_:g6 owl:onProperty vin:hasBody .
_:g6 owl:hasValue food:Medium .
_:e6 owl:allValuesFrom _:g6 .
food:NonSpicyRedMeatCourse rdfs:subClassOf _:e6 .
_:i6 rdf:type owl:Restriction .
_:i6 owl:onProperty food:hasDrink .
_:k6 rdf:type owl:Restriction .
_:k6 owl:onProperty vin:hasSugar .
_:k6 owl:hasValue food:Dry .
_:i6 owl:allValuesFrom _:k6 .
food:NonSpicyRedMeatCourse rdfs:subClassOf _:i6 .
_:m6 rdf:type owl:Restriction .
_:m6 owl:onProperty food:hasDrink .
_:o6 rdf:type owl:Restriction .
_:o6 owl:onProperty vin:hasFlavor .
_:q6 rdf:type owl:Class .
food:Strong rdf:type owl:Thing .
food:Moderate rdf:type owl:Thing .
_:s6 rdf:first food:Moderate .
_:s6 rdf:rest rdf:nil .
_:u6 rdf:first food:Strong .
_:u6 rdf:rest _:s6 .
_:q6 owl:oneOf _:u6 .
_:o6 owl:allValuesFrom _:q6 .
_:m6 owl:allValuesFrom _:o6 .
food:NonSpicyRedMeatCourse rdfs:subClassOf _:m6 .
food:NonSpicyRedMeat rdf:type owl:Class .
food:NonSpicyRedMeat rdfs:subClassOf food:RedMeat .
food:NonSpicyRedMeat owl:disjointWith food:SpicyRedMeat .
food:NonRedMeatCourse rdf:type owl:Class .
food:MealCourse rdf:type owl:Class .
_:w6 rdf:type owl:Restriction .
_:w6 owl:onProperty food:hasFood .
_:w6 owl:allValuesFrom food:NonRedMeat .
_:y6 rdf:first _:w6 .
_:y6 rdf:rest rdf:nil .
_:a7 rdf:first food:MealCourse .
_:a7 rdf:rest _:y6 .
food:NonRedMeatCourse owl:intersectionOf _:a7 .
_:c7 rdf:type owl:Restriction .
_:c7 owl:onProperty food:hasDrink .
_:e7 rdf:type owl:Restriction .
_:e7 owl:onProperty vin:hasColor .
_:e7 owl:hasValue food:White .
_:c7 owl:allValuesFrom _:e7 .
food:NonRedMeatCourse rdfs:subClassOf _:c7 .
_:g7 rdf:type owl:Restriction .
_:g7 owl:onProperty food:hasDrink .
_:i7 rdf:type owl:Restriction .
_:i7 owl:onProperty vin:hasBody .
_:i7 owl:hasValue food:Medium .
_:g7 owl:allValuesFrom _:i7 .
food:NonRedMeatCourse rdfs:subClassOf _:g7 .
_:k7 rdf:type owl:Restriction .
_:k7 owl:onProperty food:hasDrink .
_:m7 rdf:type owl:Restriction .
_:m7 owl:onProperty vin:hasFlavor .
_:m7 owl:hasValue food:Strong .
_:k7 owl:allValuesFrom _:m7 .
food:NonRedMeatCourse rdfs:subClassOf _:k7 .
_:o7 rdf:type owl:Restriction .
_:o7 owl:onProperty food:hasDrink .
_:q7 rdf:type owl:Restriction .
_:q7 owl:onProperty vin:hasSugar .
_:q7 owl:hasValue food:Dry .
_:o7 owl:allValuesFrom _:q7 .
food:NonRedMeatCourse rdfs:subClassOf _:o7 .
food:NonRedMeat rdf:type owl:Class .
food:NonRedMeat rdfs:subClassOf food:Meat .
food:NonRedMeat owl:disjointWith food:RedMeat .
food:NonOysterShellfishCourse rdf:type owl:Class .
food:MealCourse rdf:type owl:Class .
_:s7 rdf:type owl:Restriction .
_:s7 owl:onProperty food:hasFood .
_:s7 owl:allValuesFrom food:NonOysterShellfish .
_:u7 rdf:first _:s7 .
_:u7 rdf:rest rdf:nil .
_:w7 rdf:first food:MealCourse .
_:w7 rdf:rest _:u7 .
food:NonOysterShellfishCourse owl:intersectionOf _:w7 .
_:y7 rdf:type owl:Restriction .
_:y7 owl:onProperty food:hasDrink .
_:a8 rdf:type owl:Restriction .
_:a8 owl:onProperty vin:hasSugar .
_:a8 owl:hasValue food:Dry .
_:y7 owl:allValuesFrom _:a8 .
food:NonOysterShellfishCourse rdfs:subClassOf _:y7 .
food:NonOysterShellfish rdf:type owl:Class .
food:NonOysterShellfish rdfs:subClassOf food:Shellfish .
food:NonOysterShellfish owl:disjointWith food:OysterShellfish .
food:NonBlandFishCourse rdf:type owl:Class .
food:MealCourse rdf:type owl:Class .
_:c8 rdf:type owl:Restriction .
_:c8 owl:onProperty food:hasFood .
_:c8 owl:allValuesFrom food:NonBlandFish .
_:e8 rdf:first _:c8 .
_:e8 rdf:rest rdf:nil .
_:g8 rdf:first food:MealCourse .
_:g8 rdf:rest _:e8 .
food:NonBlandFishCourse owl:intersectionOf _:g8 .
_:i8 rdf:type owl:Restriction .
_:i8 owl:onProperty food:hasDrink .
_:k8 rdf:type owl:Restriction .
_:k8 owl:onProperty vin:hasFlavor .
_:k8 owl:hasValue food:Moderate .
_:i8 owl:allValuesFrom _:k8 .
food:NonBlandFishCourse rdfs:subClassOf _:i8 .
food:NonBlandFish rdf:type owl:Class .
food:NonBlandFish rdfs:subClassOf food:Fish .
food:Meat rdf:type owl:Class .
food:Meat rdfs:subClassOf food:EdibleThing .
food:Meat owl:disjointWith food:Fowl .
food:Meat owl:disjointWith food:Seafood .
food:Meat owl:disjointWith food:Dessert .
food:Meat owl:disjointWith food:Fruit .
food:MealCourse rdf:type owl:Class .
food:MealCourse rdfs:subClassOf food:ConsumableThing .
_:m8 rdf:type owl:Restriction .
_:m8 owl:onProperty food:hasFood .
_:m8 owl:minCardinality "1"^^xsd:nonNegativeInteger  .
food:MealCourse rdfs:subClassOf _:m8 .
_:o8 rdf:type owl:Restriction .
_:o8 owl:onProperty food:hasDrink .
_:o8 owl:minCardinality "1"^^xsd:nonNegativeInteger  .
food:MealCourse rdfs:subClassOf _:o8 .
_:q8 rdf:type owl:Restriction .
_:q8 owl:onProperty food:hasDrink .
_:q8 owl:allValuesFrom food:Wine .
food:MealCourse rdfs:subClassOf _:q8 .
food:MealCourse owl:disjointWith food:PotableLiquid .
food:MealCourse owl:disjointWith food:EdibleThing .
food:Meal rdf:type owl:Class .
food:Meal rdfs:subClassOf food:ConsumableThing .
_:s8 rdf:type owl:Restriction .
_:s8 owl:onProperty food:course .
_:s8 owl:minCardinality "1"^^xsd:nonNegativeInteger  .
food:Meal rdfs:subClassOf _:s8 .
_:u8 rdf:type owl:Restriction .
_:u8 owl:onProperty food:course .
_:u8 owl:allValuesFrom food:MealCourse .
food:Meal rdfs:subClassOf _:u8 .
food:Meal owl:disjointWith food:MealCourse .
food:Meal owl:disjointWith food:PotableLiquid .
food:Meal owl:disjointWith food:EdibleThing .
food:LightMeatFowlCourse rdf:type owl:Class .
food:MealCourse rdf:type owl:Class .
_:w8 rdf:type owl:Restriction .
_:w8 owl:onProperty food:hasFood .
_:w8 owl:allValuesFrom food:LightMeatFowl .
_:y8 rdf:first _:w8 .
_:y8 rdf:rest rdf:nil .
_:a9 rdf:first food:MealCourse .
_:a9 rdf:rest _:y8 .
food:LightMeatFowlCourse owl:intersectionOf _:a9 .
_:c9 rdf:type owl:Restriction .
_:c9 owl:onProperty food:hasDrink .
_:e9 rdf:type owl:Restriction .
_:e9 owl:onProperty vin:hasColor .
_:e9 owl:hasValue food:White .
_:c9 owl:allValuesFrom _:e9 .
food:LightMeatFowlCourse rdfs:subClassOf _:c9 .
_:g9 rdf:type owl:Restriction .
_:g9 owl:onProperty food:hasDrink .
_:i9 rdf:type owl:Restriction .
_:i9 owl:onProperty vin:hasBody .
_:i9 owl:hasValue food:Medium .
_:g9 owl:allValuesFrom _:i9 .
food:LightMeatFowlCourse rdfs:subClassOf _:g9 .
_:k9 rdf:type owl:Restriction .
_:k9 owl:onProperty food:hasDrink .
_:m9 rdf:type owl:Restriction .
_:m9 owl:onProperty vin:hasFlavor .
_:m9 owl:hasValue food:Moderate .
_:k9 owl:allValuesFrom _:m9 .
food:LightMeatFowlCourse rdfs:subClassOf _:k9 .
_:o9 rdf:type owl:Restriction .
_:o9 owl:onProperty food:hasDrink .
_:q9 rdf:type owl:Restriction .
_:q9 owl:onProperty vin:hasSugar .
_:q9 owl:hasValue food:Dry .
_:o9 owl:allValuesFrom _:q9 .
food:LightMeatFowlCourse rdfs:subClassOf _:o9 .
food:LightMeatFowl rdf:type owl:Class .
food:LightMeatFowl rdfs:subClassOf food:Fowl .
food:FruitCourse rdf:type owl:Class .
food:MealCourse rdf:type owl:Class .
_:s9 rdf:type owl:Restriction .
_:s9 owl:onProperty food:hasFood .
_:s9 owl:allValuesFrom food:Fruit .
_:u9 rdf:first _:s9 .
_:u9 rdf:rest rdf:nil .
_:w9 rdf:first food:MealCourse .
_:w9 rdf:rest _:u9 .
food:FruitCourse owl:intersectionOf _:w9 .
_:y9 rdf:type owl:Restriction .
_:y9 owl:onProperty food:hasDrink .
_:a10 rdf:type owl:Restriction .
_:a10 owl:onProperty vin:hasColor .
_:a10 owl:hasValue food:White .
_:y9 owl:allValuesFrom _:a10 .
food:FruitCourse rdfs:subClassOf _:y9 .
_:c10 rdf:type owl:Restriction .
_:c10 owl:onProperty food:hasDrink .
_:e10 rdf:type owl:Restriction .
_:e10 owl:onProperty vin:hasBody .
_:e10 owl:hasValue food:Medium .
_:c10 owl:allValuesFrom _:e10 .
food:FruitCourse rdfs:subClassOf _:c10 .
food:Fruit rdf:type owl:Class .
food:SweetFruit rdf:type owl:Class .
food:NonSweetFruit rdf:type owl:Class .
_:g10 rdf:first food:NonSweetFruit .
_:g10 rdf:rest rdf:nil .
_:i10 rdf:first food:SweetFruit .
_:i10 rdf:rest _:g10 .
food:Fruit owl:unionOf _:i10 .
food:Fowl rdf:type owl:Class .
food:Fowl rdfs:subClassOf food:EdibleThing .
food:Fowl owl:disjointWith food:Seafood .
food:Fowl owl:disjointWith food:Dessert .
food:Fowl owl:disjointWith food:Fruit .
food:FishCourse rdf:type owl:Class .
food:MealCourse rdf:type owl:Class .
_:k10 rdf:type owl:Restriction .
_:k10 owl:onProperty food:hasFood .
_:k10 owl:allValuesFrom food:Fish .
_:m10 rdf:first _:k10 .
_:m10 rdf:rest rdf:nil .
_:o10 rdf:first food:MealCourse .
_:o10 rdf:rest _:m10 .
food:FishCourse owl:intersectionOf _:o10 .
_:q10 rdf:type owl:Restriction .
_:q10 owl:onProperty food:hasDrink .
_:s10 rdf:type owl:Restriction .
_:s10 owl:onProperty vin:hasBody .
_:s10 owl:hasValue food:Medium .
_:q10 owl:allValuesFrom _:s10 .
food:FishCourse rdfs:subClassOf _:q10 .
_:u10 rdf:type owl:Restriction .
_:u10 owl:onProperty food:hasDrink .
_:w10 rdf:type owl:Restriction .
_:w10 owl:onProperty vin:hasSugar .
_:w10 owl:hasValue food:Dry .
_:u10 owl:allValuesFrom _:w10 .
food:FishCourse rdfs:subClassOf _:u10 .
food:DessertCourse rdf:type owl:Class .
food:MealCourse rdf:type owl:Class .
_:y10 rdf:type owl:Restriction .
_:y10 owl:onProperty food:hasFood .
_:y10 owl:allValuesFrom food:Dessert .
_:a11 rdf:first _:y10 .
_:a11 rdf:rest rdf:nil .
_:c11 rdf:first food:MealCourse .
_:c11 rdf:rest _:a11 .
food:DessertCourse owl:intersectionOf _:c11 .
_:e11 rdf:type owl:Restriction .
_:e11 owl:onProperty food:hasDrink .
_:g11 rdf:type owl:Restriction .
_:g11 owl:onProperty vin:hasBody .
_:g11 owl:hasValue food:Full .
_:e11 owl:allValuesFrom _:g11 .
food:DessertCourse rdfs:subClassOf _:e11 .
_:i11 rdf:type owl:Restriction .
_:i11 owl:onProperty food:hasDrink .
_:k11 rdf:type owl:Restriction .
_:k11 owl:onProperty vin:hasFlavor .
_:k11 owl:hasValue food:Strong .
_:i11 owl:allValuesFrom _:k11 .
food:DessertCourse rdfs:subClassOf _:i11 .
_:m11 rdf:type owl:Restriction .
_:m11 owl:onProperty food:hasDrink .
_:o11 rdf:type owl:Restriction .
_:o11 owl:onProperty vin:hasSugar .
_:o11 owl:hasValue food:Sweet .
_:m11 owl:allValuesFrom _:o11 .
food:DessertCourse rdfs:subClassOf _:m11 .
food:Dessert rdf:type owl:Class .
food:Dessert rdfs:subClassOf food:EdibleThing .
food:Dessert owl:disjointWith food:Fruit .
food:SweetFruit rdf:type owl:Class .
food:SweetFruit rdfs:subClassOf food:EdibleThing .
food:SweetDessertCourse rdf:type owl:Class .
food:MealCourse rdf:type owl:Class .
_:q11 rdf:type owl:Restriction .
_:q11 owl:onProperty food:hasFood .
_:q11 owl:allValuesFrom food:SweetDessert .
_:s11 rdf:first _:q11 .
_:s11 rdf:rest rdf:nil .
_:u11 rdf:first food:MealCourse .
_:u11 rdf:rest _:s11 .
food:SweetDessertCourse owl:intersectionOf _:u11 .
_:w11 rdf:type owl:Restriction .
_:w11 owl:onProperty food:hasDrink .
_:y11 rdf:type owl:Restriction .
_:y11 owl:onProperty vin:hasColor .
_:y11 owl:hasValue food:White .
_:w11 owl:allValuesFrom _:y11 .
food:SweetDessertCourse rdfs:subClassOf _:w11 .
food:SweetDessert rdf:type owl:Class .
food:SweetDessert rdfs:subClassOf food:Dessert .
food:DarkMeatFowlCourse rdf:type owl:Class .
food:MealCourse rdf:type owl:Class .
_:a12 rdf:type owl:Restriction .
_:a12 owl:onProperty food:hasFood .
_:a12 owl:allValuesFrom food:DarkMeatFowl .
_:c12 rdf:first _:a12 .
_:c12 rdf:rest rdf:nil .
_:e12 rdf:first food:MealCourse .
_:e12 rdf:rest _:c12 .
food:DarkMeatFowlCourse owl:intersectionOf _:e12 .
_:g12 rdf:type owl:Restriction .
_:g12 owl:onProperty food:hasDrink .
_:i12 rdf:type owl:Restriction .
_:i12 owl:onProperty vin:hasColor .
_:i12 owl:hasValue food:Red .
_:g12 owl:allValuesFrom _:i12 .
food:DarkMeatFowlCourse rdfs:subClassOf _:g12 .
_:k12 rdf:type owl:Restriction .
_:k12 owl:onProperty food:hasDrink .
_:m12 rdf:type owl:Restriction .
_:m12 owl:onProperty vin:hasBody .
_:m12 owl:hasValue food:Light .
_:k12 owl:allValuesFrom _:m12 .
food:DarkMeatFowlCourse rdfs:subClassOf _:k12 .
_:o12 rdf:type owl:Restriction .
_:o12 owl:onProperty food:hasDrink .
_:q12 rdf:type owl:Restriction .
_:q12 owl:onProperty vin:hasFlavor .
_:q12 owl:hasValue food:Delicate .
_:o12 owl:allValuesFrom _:q12 .
food:DarkMeatFowlCourse rdfs:subClassOf _:o12 .
_:s12 rdf:type owl:Restriction .
_:s12 owl:onProperty food:hasDrink .
_:u12 rdf:type owl:Restriction .
_:u12 owl:onProperty vin:hasSugar .
_:u12 owl:hasValue food:Dry .
_:s12 owl:allValuesFrom _:u12 .
food:DarkMeatFowlCourse rdfs:subClassOf _:s12 .
food:DarkMeatFowl rdf:type owl:Class .
food:DarkMeatFowl rdfs:subClassOf food:Fowl .
food:DarkMeatFowl owl:disjointWith food:LightMeatFowl .
food:CheeseNutsDessertCourse rdf:type owl:Class .
food:MealCourse rdf:type owl:Class .
_:w12 rdf:type owl:Restriction .
_:w12 owl:onProperty food:hasFood .
_:w12 owl:allValuesFrom food:CheeseNutsDessert .
_:y12 rdf:first _:w12 .
_:y12 rdf:rest rdf:nil .
_:a13 rdf:first food:MealCourse .
_:a13 rdf:rest _:y12 .
food:CheeseNutsDessertCourse owl:intersectionOf _:a13 .
_:c13 rdf:type owl:Restriction .
_:c13 owl:onProperty food:hasDrink .
_:e13 rdf:type owl:Restriction .
_:e13 owl:onProperty vin:hasColor .
_:e13 owl:hasValue food:Red .
_:c13 owl:allValuesFrom _:e13 .
food:CheeseNutsDessertCourse rdfs:subClassOf _:c13 .
food:CheeseNutsDessert rdf:type owl:Class .
food:CheeseNutsDessert rdfs:subClassOf food:Dessert .
food:CheeseNutsDessert owl:disjointWith food:SweetDessert .
food:BlandFishCourse rdf:type owl:Class .
food:MealCourse rdf:type owl:Class .
_:g13 rdf:type owl:Restriction .
_:g13 owl:onProperty food:hasFood .
_:g13 owl:allValuesFrom food:BlandFish .
_:i13 rdf:first _:g13 .
_:i13 rdf:rest rdf:nil .
_:k13 rdf:first food:MealCourse .
_:k13 rdf:rest _:i13 .
food:BlandFishCourse owl:intersectionOf _:k13 .
_:m13 rdf:type owl:Restriction .
_:m13 owl:onProperty food:hasDrink .
_:o13 rdf:type owl:Restriction .
_:o13 owl:onProperty vin:hasFlavor .
_:o13 owl:hasValue food:Delicate .
_:m13 owl:allValuesFrom _:o13 .
food:BlandFishCourse rdfs:subClassOf _:m13 .
food:BlandFish rdf:type owl:Class .
food:BlandFish rdfs:subClassOf food:Fish .
food:BlandFish owl:disjointWith food:NonBlandFish .
food:hasFood rdf:type owl:ObjectProperty .
food:hasFood rdfs:domain food:MealCourse .
food:hasFood rdfs:range food:EdibleThing .
food:Fish rdf:type owl:Class .
food:Fish rdfs:subClassOf food:Seafood .
food:Fish owl:disjointWith food:Shellfish .
food:SpicyRedMeat rdf:type owl:Class .
food:SpicyRedMeat rdfs:subClassOf food:RedMeat .
food:ShellfishCourse rdf:type owl:Class .
food:MealCourse rdf:type owl:Class .
_:q13 rdf:type owl:Restriction .
_:q13 owl:onProperty food:hasFood .
_:q13 owl:allValuesFrom food:Shellfish .
_:s13 rdf:first _:q13 .
_:s13 rdf:rest rdf:nil .
_:u13 rdf:first food:MealCourse .
_:u13 rdf:rest _:s13 .
food:ShellfishCourse owl:intersectionOf _:u13 .
_:w13 rdf:type owl:Restriction .
_:w13 owl:onProperty food:hasDrink .
_:y13 rdf:type owl:Restriction .
_:y13 owl:onProperty vin:hasFlavor .
_:a14 rdf:type owl:Class .
food:Moderate rdf:type owl:Thing .
food:Strong rdf:type owl:Thing .
_:c14 rdf:first food:Strong .
_:c14 rdf:rest rdf:nil .
_:e14 rdf:first food:Moderate .
_:e14 rdf:rest _:c14 .
_:a14 owl:oneOf _:e14 .
_:y13 owl:allValuesFrom _:a14 .
_:w13 owl:allValuesFrom _:y13 .
food:ShellfishCourse rdfs:subClassOf _:w13 .
_:g14 rdf:type owl:Restriction .
_:g14 owl:onProperty food:hasDrink .
_:i14 rdf:type owl:Restriction .
_:i14 owl:onProperty vin:hasBody .
_:i14 owl:hasValue food:Full .
_:g14 owl:allValuesFrom _:i14 .
food:ShellfishCourse rdfs:subClassOf _:g14 .
food:Shellfish rdf:type owl:Class .
food:Shellfish rdfs:subClassOf food:Seafood .
food:SeafoodCourse rdf:type owl:Class .
food:MealCourse rdf:type owl:Class .
_:k14 rdf:type owl:Restriction .
_:k14 owl:onProperty food:hasFood .
_:k14 owl:allValuesFrom food:Seafood .
_:m14 rdf:first _:k14 .
_:m14 rdf:rest rdf:nil .
_:o14 rdf:first food:MealCourse .
_:o14 rdf:rest _:m14 .
food:SeafoodCourse owl:intersectionOf _:o14 .
_:q14 rdf:type owl:Restriction .
_:q14 owl:onProperty food:hasDrink .
_:s14 rdf:type owl:Restriction .
_:s14 owl:onProperty vin:hasColor .
_:s14 owl:hasValue food:White .
_:q14 owl:allValuesFrom _:s14 .
food:SeafoodCourse rdfs:subClassOf _:q14 .
food:Seafood rdf:type owl:Class .
food:Seafood rdfs:subClassOf food:EdibleThing .
food:Seafood owl:disjointWith food:Dessert .
food:Seafood owl:disjointWith food:Fruit .
food:RedMeatCourse rdf:type owl:Class .
food:MealCourse rdf:type owl:Class .
_:u14 rdf:type owl:Restriction .
_:u14 owl:onProperty food:hasFood .
_:u14 owl:allValuesFrom food:RedMeat .
_:w14 rdf:first _:u14 .
_:w14 rdf:rest rdf:nil .
_:y14 rdf:first food:MealCourse .
_:y14 rdf:rest _:w14 .
food:RedMeatCourse owl:intersectionOf _:y14 .
_:a15 rdf:type owl:Restriction .
_:a15 owl:onProperty food:hasDrink .
_:c15 rdf:type owl:Restriction .
_:c15 owl:onProperty vin:hasColor .
_:c15 owl:hasValue food:Red .
_:a15 owl:allValuesFrom _:c15 .
food:RedMeatCourse rdfs:subClassOf _:a15 .
food:RedMeat rdf:type owl:Class .
food:RedMeat rdfs:subClassOf food:Meat .
food:Cake rdf:type food:SweetDessert .
food:Bananas rdf:type food:SweetFruit .
food:MixedFruit rdf:type food:SweetFruit .
food:Mussels rdf:type food:NonOysterShellfish .
food:Nuts rdf:type food:CheeseNutsDessert .
food:Oysters rdf:type food:OysterShellfish .
food:PastaWithWhiteClamSauce rdf:type food:PastaWithLightCreamSauce .
food:Peaches rdf:type food:SweetFruit .
food:Pie rdf:type food:SweetDessert .
food:Pizza rdf:type food:OtherTomatoBasedFood .
food:Pork rdf:type food:NonRedMeat .
food:RoastBeef rdf:type food:NonSpicyRedMeat .
food:Scrod rdf:type food:BlandFish .
food:SpaghettiWithTomatoSauce rdf:type food:PastaWithNonSpicyRedSauce .
food:Steak rdf:type food:NonSpicyRedMeat .
food:Swordfish rdf:type food:NonBlandFish .
food:ThompsonSeedless rdf:type food:EatingGrape .
food:EatingGrape rdf:type owl:Class .
food:EatingGrape rdfs:subClassOf food:Grape .
food:Tuna rdf:type food:NonBlandFish .
food:Turkey rdf:type food:LightMeatFowl .
food:Veal rdf:type food:NonSpicyRedMeat .
food:SpicyRedMeatCourse rdf:type owl:Class .
food:MealCourse rdf:type owl:Class .
_:e15 rdf:type owl:Restriction .
_:e15 owl:onProperty food:hasFood .
_:e15 owl:allValuesFrom food:SpicyRedMeat .
_:g15 rdf:first _:e15 .
_:g15 rdf:rest rdf:nil .
_:i15 rdf:first food:MealCourse .
_:i15 rdf:rest _:g15 .
food:SpicyRedMeatCourse owl:intersectionOf _:i15 .
_:k15 rdf:type owl:Restriction .
_:k15 owl:onProperty food:hasDrink .
_:m15 rdf:type owl:Restriction .
_:m15 owl:onProperty vin:hasColor .
_:m15 owl:hasValue food:Red .
_:k15 owl:allValuesFrom _:m15 .
food:SpicyRedMeatCourse rdfs:subClassOf _:k15 .
_:o15 rdf:type owl:Restriction .
_:o15 owl:onProperty food:hasDrink .
_:q15 rdf:type owl:Restriction .
_:q15 owl:onProperty vin:hasBody .
_:q15 owl:hasValue food:Full .
_:o15 owl:allValuesFrom _:q15 .
food:SpicyRedMeatCourse rdfs:subClassOf _:o15 .
_:s15 rdf:type owl:Restriction .
_:s15 owl:onProperty food:hasDrink .
_:u15 rdf:type owl:Restriction .
_:u15 owl:onProperty vin:hasFlavor .
_:u15 owl:hasValue food:Moderate .
_:s15 owl:allValuesFrom _:u15 .
food:SpicyRedMeatCourse rdfs:subClassOf _:s15 .
_:w15 rdf:type owl:Restriction .
_:w15 owl:onProperty food:hasDrink .
_:y15 rdf:type owl:Restriction .
_:y15 owl:onProperty vin:hasSugar .
_:y15 owl:hasValue food:Dry .
_:w15 owl:allValuesFrom _:y15 .
food:SpicyRedMeatCourse rdfs:subClassOf _:w15 .
food:BeefCurry rdf:type food:SpicyRedMeat .
food:Chicken rdf:type food:LightMeatFowl .
food:Clams rdf:type food:NonOysterShellfish .
food:Duck rdf:type food:DarkMeatFowl .
food:GarlickyRoast rdf:type food:SpicyRedMeat .
food:Goose rdf:type food:DarkMeatFowl .
food:Halibut rdf:type food:BlandFish .
food:Crab rdf:type food:NonOysterShellfish .
food:Flounder rdf:type food:BlandFish .
food:Lobster rdf:type food:NonOysterShellfish .
food:FettucineAlfRedo rdf:type food:PastaWithHeavyCreamSauce .
food:FraDiavolo rdf:type food:PastaWithSpicyRedSauce .
food:Cheese rdf:type food:CheeseNutsDessert .

DL Full Test d'inférence positive : 010
Description : (informatif) <miscellaneous/Manifest010#test>
Quel vin convient à tel aliment.
Le format N3 est informatif.
DL Prémisses : <miscellaneous/premises010>
<?xml version="1.0"?>


<rdf:RDF
  xml:base  = "http://www.w3.org/2002/03owlt/miscellaneous/premises010"
  xmlns:owl = "http://www.w3.org/2002/07/owl#"
  xmlns:rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#">

  <owl:Ontology rdf:about="">
    <owl:imports rdf:resource="http://www.w3.org/2002/03owlt/miscellaneous/consistent001"/>
    <owl:imports rdf:resource="http://www.w3.org/2002/03owlt/miscellaneous/consistent002"/>
  </owl:Ontology>
 
</rdf:RDF>
<miscellaneous/premises010> rdf:type owl:Ontology .
<miscellaneous/premises010> owl:imports <miscellaneous/consistent001> .
<miscellaneous/premises010> owl:imports <miscellaneous/consistent002> .
DL Conclusions : <miscellaneous/conclusions010>
<!DOCTYPE rdf:RDF [
     <!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#" >
   ]>
<!--
  Copyright World Wide Web Consortium, (Massachusetts Institute of
  Technology, European Research Consortium for Informatics and
  Mathematics, Keio University).

  All Rights Reserved.

  Please see the full Copyright clause at
  <http://www.w3.org/Consortium/Legal/copyright-software.html>

  $Id: misc-000-guide.html,v 1.9 2004/02/10 15:29:27 sandro Exp $
-->
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:owl="http://www.w3.org/2002/07/owl#" >
  <rdf:Description rdf:nodeID="A0">
    <rdf:first rdf:nodeID="A1"/>
    <rdf:rest rdf:nodeID="A2"/>
  </rdf:Description>
  <rdf:Description rdf:nodeID="A3">
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
    <owl:intersectionOf rdf:nodeID="A4"/>
  </rdf:Description>
  <rdf:Description rdf:nodeID="A5">
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
    <owl:hasValue rdf:resource="&vin;FoxenCheninBlanc"/>
    <owl:onProperty rdf:resource="&food;hasDrink"/>
  </rdf:Description>
  <rdf:Description rdf:nodeID="A6">
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
    <owl:hasValue rdf:resource="&food;Pie"/>
    <owl:onProperty rdf:resource="&food;hasFood"/>
  </rdf:Description>
  <rdf:Description rdf:nodeID="A7">
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
    <owl:intersectionOf rdf:nodeID="A8"/>
  </rdf:Description>
  <rdf:Description rdf:nodeID="A9">
    <rdf:first rdf:nodeID="A6"/>
    <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
  </rdf:Description>
  <rdf:Description rdf:nodeID="A10">
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
    <owl:hasValue rdf:resource="&vin;PageMillWineryCabernetSauvignon"/>
    <owl:onProperty rdf:resource="&food;hasDrink"/>
  </rdf:Description>
  <rdf:Description rdf:nodeID="A11">
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
    <owl:hasValue rdf:resource="&food;Halibut"/>
    <owl:onProperty rdf:resource="&food;hasFood"/>
  </rdf:Description>
  <rdf:Description rdf:nodeID="A12">
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
    <rdf:type rdf:nodeID="A7"/>
  </rdf:Description>
  <rdf:Description rdf:nodeID="A4">
    <rdf:first rdf:nodeID="A5"/>
    <rdf:rest rdf:nodeID="A9"/>
  </rdf:Description>
  <rdf:Description rdf:nodeID="A13">
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
    <rdf:type rdf:nodeID="A14"/>
  </rdf:Description>
  <rdf:Description rdf:nodeID="A15">
    <rdf:first rdf:nodeID="A11"/>
    <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
  </rdf:Description>
  <rdf:Description rdf:nodeID="A14">
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
    <owl:intersectionOf rdf:nodeID="A0"/>
  </rdf:Description>
  <rdf:Description rdf:nodeID="A8">
    <rdf:first rdf:nodeID="A10"/>
    <rdf:rest rdf:nodeID="A15"/>
  </rdf:Description>
  <rdf:Description rdf:nodeID="A1">
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
    <owl:hasValue rdf:resource="&vin;SchlossVolradTrochenbierenausleseRiesling"/>
    <owl:onProperty rdf:resource="&food;hasDrink"/>
  </rdf:Description>
  <rdf:Description rdf:nodeID="A16">
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
    <rdf:type rdf:nodeID="A3"/>
  </rdf:Description>
  <rdf:Description rdf:nodeID="A17">
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
    <owl:hasValue rdf:resource="&food;Lobster"/>
    <owl:onProperty rdf:resource="&food;hasFood"/>
  </rdf:Description>
  <rdf:Description rdf:nodeID="A2">
    <rdf:first rdf:nodeID="A17"/>
    <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
  </rdf:Description>
  <rdf:Description rdf:about="&food;hasFood">
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
  </rdf:Description>
  <rdf:Description rdf:about="&food;hasDrink">
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
  </rdf:Description>
  <rdf:Description rdf:about="&vin;FoxenCheninBlanc">
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
  </rdf:Description>
  <rdf:Description rdf:about="&food;Pie">
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
  </rdf:Description>
  <rdf:Description rdf:about="&vin;PageMillWineryCabernetSauvignon">
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
  </rdf:Description>
  <rdf:Description rdf:about="&food;Halibut">
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
  </rdf:Description>
  <rdf:Description rdf:about="&vin;SchlossVolradTrochenbierenausleseRiesling">
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
  </rdf:Description>
  <rdf:Description rdf:about="&food;Lobster">
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
  </rdf:Description>
</rdf:RDF>
_:a rdf:first _:b .
_:a rdf:rest _:e .
_:g rdf:type owl:Class .
_:g owl:intersectionOf _:i .
_:k rdf:type owl:Restriction .
_:k owl:hasValue <miscellaneous/consistent001#FoxenCheninBlanc> .
_:k owl:onProperty <miscellaneous/consistent002#hasDrink> .
_:m rdf:type owl:Restriction .
_:m owl:hasValue <miscellaneous/consistent002#Pie> .
_:m owl:onProperty <miscellaneous/consistent002#hasFood> .
_:o rdf:type owl:Class .
_:o owl:intersectionOf _:q .
_:s rdf:first _:m .
_:s rdf:rest rdf:nil .
_:u rdf:type owl:Restriction .
_:u owl:hasValue <miscellaneous/consistent001#PageMillWineryCabernetSauvignon> .
_:u owl:onProperty <miscellaneous/consistent002#hasDrink> .
_:w rdf:type owl:Restriction .
_:w owl:hasValue <miscellaneous/consistent002#Halibut> .
_:w owl:onProperty <miscellaneous/consistent002#hasFood> .
_:y rdf:type owl:Thing .
_:y rdf:type _:o .
_:i rdf:first _:k .
_:i rdf:rest _:s .
_:a1 rdf:type owl:Thing .
_:a1 rdf:type _:c1 .
_:e1 rdf:first _:w .
_:e1 rdf:rest rdf:nil .
_:c1 rdf:type owl:Class .
_:c1 owl:intersectionOf _:a .
_:q rdf:first _:u .
_:q rdf:rest _:e1 .
_:b rdf:type owl:Restriction .
_:b owl:hasValue <miscellaneous/consistent001#SchlossVolradTrochenbierenausleseRiesling> .
_:b owl:onProperty <miscellaneous/consistent002#hasDrink> .
_:g1 rdf:type owl:Thing .
_:g1 rdf:type _:g .
_:i1 rdf:type owl:Restriction .
_:i1 owl:hasValue <miscellaneous/consistent002#Lobster> .
_:i1 owl:onProperty <miscellaneous/consistent002#hasFood> .
_:e rdf:first _:i1 .
_:e rdf:rest rdf:nil .
<miscellaneous/consistent002#hasFood> rdf:type owl:ObjectProperty .
<miscellaneous/consistent002#hasDrink> rdf:type owl:ObjectProperty .
<miscellaneous/consistent001#FoxenCheninBlanc> rdf:type owl:Thing .
<miscellaneous/consistent002#Pie> rdf:type owl:Thing .
<miscellaneous/consistent001#PageMillWineryCabernetSauvignon> rdf:type owl:Thing .
<miscellaneous/consistent002#Halibut> rdf:type owl:Thing .
<miscellaneous/consistent001#SchlossVolradTrochenbierenausleseRiesling> rdf:type owl:Thing .
<miscellaneous/consistent002#Lobster> rdf:type owl:Thing .

DL Full Test d'inférence positive : 011
Description : (informatif) <miscellaneous/Manifest011#test>
Quel vin hasSugar OffDry.
Le format N3 est informatif.
Espaces de nommage :
@prefix vin: <http://www.w3.org/2002/03owlt/miscellaneous/consistent001#> .
DL Prémisses : <miscellaneous/premises011>
<?xml version="1.0"?>

<rdf:RDF
  xml:base  = "http://www.w3.org/2002/03owlt/miscellaneous/premises011"
  xmlns:owl = "http://www.w3.org/2002/07/owl#"
  xmlns:rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#">

  <owl:Ontology rdf:about="">
    <owl:imports rdf:resource="http://www.w3.org/2002/03owlt/miscellaneous/consistent001"/>
    <owl:imports rdf:resource="http://www.w3.org/2002/03owlt/miscellaneous/consistent002"/>
  </owl:Ontology>
 
</rdf:RDF>
<miscellaneous/premises011> rdf:type owl:Ontology .
<miscellaneous/premises011> owl:imports <miscellaneous/consistent001> .
<miscellaneous/premises011> owl:imports <miscellaneous/consistent002> .
Lite Conclusions : <miscellaneous/conclusions011>
<!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#" >
   ]>
   
<!--
  Copyright World Wide Web Consortium, (Massachusetts Institute of
  Technology, European Research Consortium for Informatics and
  Mathematics, Keio University).

  All Rights Reserved.

  Please see the full Copyright clause at
  <http://www.w3.org/Consortium/Legal/copyright-software.html>

  $Id: misc-000-guide.html,v 1.9 2004/02/10 15:29:27 sandro Exp $
-->
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:vin="&vin;" >
  <rdf:Description rdf:about="&vin;ClosDeLaPoussieSancerre">
    <vin:hasSugar rdf:resource="&vin;OffDry"/>
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
  </rdf:Description>
  <rdf:Description rdf:about="&vin;VentanaCheninBlanc">
    <vin:hasSugar rdf:resource="&vin;OffDry"/>
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
  </rdf:Description>
  <rdf:Description rdf:about="&vin;RoseDAnjou">
    <vin:hasSugar rdf:resource="&vin;OffDry"/>
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
  </rdf:Description>
  <rdf:Description rdf:about="&vin;CorbansDryWhiteRiesling">
    <vin:hasSugar rdf:resource="&vin;OffDry"/>
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
  </rdf:Description>
  <rdf:Description rdf:about="&vin;hasSugar">
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
  </rdf:Description>
  <rdf:Description rdf:about="&vin;OffDry">
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
  </rdf:Description>
</rdf:RDF>
vin:ClosDeLaPoussieSancerre vin:hasSugar vin:OffDry .
vin:ClosDeLaPoussieSancerre rdf:type owl:Thing .
vin:VentanaCheninBlanc vin:hasSugar vin:OffDry .
vin:VentanaCheninBlanc rdf:type owl:Thing .
vin:RoseDAnjou vin:hasSugar vin:OffDry .
vin:RoseDAnjou rdf:type owl:Thing .
vin:CorbansDryWhiteRiesling vin:hasSugar vin:OffDry .
vin:CorbansDryWhiteRiesling rdf:type owl:Thing .
vin:hasSugar rdf:type owl:ObjectProperty .
vin:OffDry rdf:type owl:Thing .


précédent  suivant  introduction  table des matières  index